Chromium Code Reviews| Index: src/flag-definitions.h |
| diff --git a/src/flag-definitions.h b/src/flag-definitions.h |
| index c2abd0f5a1553ddf5a2bb031f71e14f7d234c80b..b47a52afd004cd579a424135df1fd31a732ddb41 100644 |
| --- a/src/flag-definitions.h |
| +++ b/src/flag-definitions.h |
| @@ -126,6 +126,8 @@ struct MaybeBoolFlag { |
| #endif |
| #define DEFINE_BOOL(nam, def, cmt) FLAG(BOOL, bool, nam, def, cmt) |
| +#define DEFINE_BOOL_READONLY(nam, def, cmt) \ |
| + FLAG_READONLY(BOOL, bool, nam, def, cmt) |
| #define DEFINE_MAYBE_BOOL(nam, cmt) \ |
| FLAG(MAYBE_BOOL, MaybeBoolFlag, nam, {false COMMA false}, cmt) |
| #define DEFINE_INT(nam, def, cmt) FLAG(INT, int, nam, def, cmt) |
| @@ -147,39 +149,55 @@ struct MaybeBoolFlag { |
| // Flags for language modes and experimental language features. |
| DEFINE_BOOL(use_strict, false, "enforce strict mode") |
| -DEFINE_BOOL(es_staging, false, "enable upcoming ES6+ features") |
| -DEFINE_BOOL(harmony_scoping, false, "enable harmony block scoping") |
| -DEFINE_BOOL(harmony_modules, false, |
| - "enable harmony modules (implies block scoping)") |
| -DEFINE_BOOL(harmony_proxies, false, "enable harmony proxies") |
| -DEFINE_BOOL(harmony_numeric_literals, false, |
| - "enable harmony numeric literals (0o77, 0b11)") |
| -DEFINE_BOOL(harmony_strings, false, "enable harmony string") |
| -DEFINE_BOOL(harmony_arrays, false, "enable harmony arrays") |
| -DEFINE_BOOL(harmony_arrow_functions, false, "enable harmony arrow functions") |
| -DEFINE_BOOL(harmony_classes, false, "enable harmony classes") |
| -DEFINE_BOOL(harmony_object_literals, false, |
| - "enable harmony object literal extensions") |
| -DEFINE_BOOL(harmony_regexps, false, "enable regexp-related harmony features") |
| +DEFINE_BOOL(es_staging, false, "enable upcoming ES6+ features") |
| DEFINE_BOOL(harmony, false, "enable all harmony features (except proxies)") |
| +DEFINE_IMPLICATION(harmony, es_staging) |
| -DEFINE_IMPLICATION(harmony, harmony_scoping) |
| -DEFINE_IMPLICATION(harmony, harmony_modules) |
| -// TODO(rossberg): Reenable when problems are sorted out. |
| -// DEFINE_IMPLICATION(harmony, harmony_proxies) |
| -DEFINE_IMPLICATION(harmony, harmony_strings) |
| -DEFINE_IMPLICATION(harmony, harmony_arrays) |
| -DEFINE_IMPLICATION(harmony, harmony_arrow_functions) |
| -DEFINE_IMPLICATION(harmony, harmony_classes) |
| -DEFINE_IMPLICATION(harmony, harmony_object_literals) |
| -DEFINE_IMPLICATION(harmony, harmony_regexps) |
| +#define HARMONY_FEATURES(V) \ |
| + V(scoping, "harmony block scoping") \ |
|
rossberg
2014/10/20 13:14:27
I'd prefer not to strip the harmony_ prefix from t
Dmitry Lomov (no reviews)
2014/10/20 13:32:53
Done.
|
| + V(modules, "harmony modules (implies block scoping)") \ |
| + V(strings, "harmony strings") \ |
| + V(classes, "harmony classes") \ |
| + V(object_literals, "harmony object literal extensions") \ |
| + V(regexps, "reg-exp related harmony features") \ |
| + V(arrow_functions, "harmony arrow functions") |
| + |
| +#define STAGED_FEATURES(V) \ |
| + V(numeric_literals, "harmony numeric literals (0o77, 0b11)") |
| + |
| +#define SHIPPING_FEATURES(V) \ |
| + V(arrays, "harmony arrays") |
| + |
| +#define FLAG_FEATURES(id, description) \ |
| + DEFINE_BOOL(harmony_##id, false, "enable " #description) \ |
| + DEFINE_IMPLICATION(harmony, harmony_##id) |
| + |
| +HARMONY_FEATURES(FLAG_FEATURES) |
| +STAGED_FEATURES(FLAG_FEATURES) |
| +#undef FLAG_FEATURES |
| + |
| +#define FLAG_STAGED_FEATURES(id, description) \ |
| + DEFINE_IMPLICATION(es_staging, harmony_##id) |
| + |
| +STAGED_FEATURES(FLAG_STAGED_FEATURES) |
| +#undef FLAG_STAGED_FEATURES |
| + |
| +#define FLAG_SHIPPING_FEATURES(id, description) \ |
| + DEFINE_BOOL_READONLY(harmony_##id, true, "enable " #description) |
| + |
| +SHIPPING_FEATURES(FLAG_SHIPPING_FEATURES) |
| +#undef FLAG_SHIPPING_FEATURES |
| + |
| +// Feature dependencies. |
| DEFINE_IMPLICATION(harmony_modules, harmony_scoping) |
| DEFINE_IMPLICATION(harmony_classes, harmony_scoping) |
| DEFINE_IMPLICATION(harmony_classes, harmony_object_literals) |
| -DEFINE_IMPLICATION(harmony, es_staging) |
| -DEFINE_IMPLICATION(es_staging, harmony_numeric_literals) |
| +DEFINE_BOOL(harmony_proxies, false, "enable harmony proxies") |
| +// TODO(rossberg): Reenable when problems are sorted out. |
| +// DEFINE_IMPLICATION(harmony, harmony_proxies) |
| + |
| // Flags for experimental implementation features. |
| DEFINE_BOOL(compiled_keyed_generic_loads, false, |