OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // This file defines all of the flags. It is separated into different section, | 5 // This file defines all of the flags. It is separated into different section, |
6 // for Debug, Release, Logging and Profiling, etc. To add a new flag, find the | 6 // for Debug, Release, Logging and Profiling, etc. To add a new flag, find the |
7 // correct section, and use one of the DEFINE_ macros, without a trailing ';'. | 7 // correct section, and use one of the DEFINE_ macros, without a trailing ';'. |
8 // | 8 // |
9 // This include does not have a guard, because it is a template-style include, | 9 // This include does not have a guard, because it is a template-style include, |
10 // which can be included multiple times in different modes. It expects to have | 10 // which can be included multiple times in different modes. It expects to have |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
172 | 172 |
173 // Flags for language modes and experimental language features. | 173 // Flags for language modes and experimental language features. |
174 DEFINE_BOOL(use_strict, false, "enforce strict mode") | 174 DEFINE_BOOL(use_strict, false, "enforce strict mode") |
175 DEFINE_BOOL(use_strong, false, "enforce strong mode") | 175 DEFINE_BOOL(use_strong, false, "enforce strong mode") |
176 DEFINE_IMPLICATION(use_strong, use_strict) | 176 DEFINE_IMPLICATION(use_strong, use_strict) |
177 | 177 |
178 DEFINE_BOOL(strong_mode, false, "experimental strong language mode") | 178 DEFINE_BOOL(strong_mode, false, "experimental strong language mode") |
179 DEFINE_IMPLICATION(use_strong, strong_mode) | 179 DEFINE_IMPLICATION(use_strong, strong_mode) |
180 DEFINE_BOOL(strong_this, true, "don't allow 'this' to escape from constructors") | 180 DEFINE_BOOL(strong_this, true, "don't allow 'this' to escape from constructors") |
181 | 181 |
182 DEFINE_BOOL(es_staging, false, "enable all completed harmony features") | 182 DEFINE_BOOL(es_staging, false, |
| 183 "enable test-worthy harmony features (for internal use only)") |
183 DEFINE_BOOL(harmony, false, "enable all completed harmony features") | 184 DEFINE_BOOL(harmony, false, "enable all completed harmony features") |
184 DEFINE_BOOL(harmony_shipping, true, "enable all shipped harmony features") | 185 DEFINE_BOOL(harmony_shipping, true, "enable all shipped harmony features") |
185 DEFINE_IMPLICATION(harmony, es_staging) | |
186 DEFINE_IMPLICATION(es_staging, harmony) | 186 DEFINE_IMPLICATION(es_staging, harmony) |
187 | 187 |
188 DEFINE_BOOL(legacy_const, true, "legacy semantics for const in sloppy mode") | 188 DEFINE_BOOL(legacy_const, true, "legacy semantics for const in sloppy mode") |
189 // ES2015 const semantics are staged | 189 // ES2015 const semantics are staged |
190 DEFINE_NEG_IMPLICATION(es_staging, legacy_const) | 190 DEFINE_NEG_IMPLICATION(harmony, legacy_const) |
| 191 |
| 192 // Activate on ClusterFuzz. |
| 193 DEFINE_IMPLICATION(es_staging, harmony_destructuring) |
191 | 194 |
192 // Features that are still work in progress (behind individual flags). | 195 // Features that are still work in progress (behind individual flags). |
193 #define HARMONY_INPROGRESS(V) \ | 196 #define HARMONY_INPROGRESS(V) \ |
194 V(harmony_modules, "harmony modules") \ | 197 V(harmony_modules, "harmony modules") \ |
195 V(harmony_proxies, "harmony proxies") \ | 198 V(harmony_proxies, "harmony proxies") \ |
196 V(harmony_unicode_regexps, "harmony unicode regexps") \ | 199 V(harmony_unicode_regexps, "harmony unicode regexps") \ |
197 V(harmony_reflect, "harmony Reflect API") \ | 200 V(harmony_reflect, "harmony Reflect API") \ |
198 V(harmony_sloppy_function, "harmony sloppy function block scoping") \ | 201 V(harmony_sloppy_function, "harmony sloppy function block scoping") \ |
199 V(harmony_destructuring, "harmony destructuring") \ | 202 V(harmony_destructuring, "harmony destructuring") \ |
200 V(harmony_default_parameters, "harmony default parameters") \ | 203 V(harmony_default_parameters, "harmony default parameters") \ |
(...skipping 24 matching lines...) Expand all Loading... |
225 // esN directory. | 228 // esN directory. |
226 | 229 |
227 | 230 |
228 #define FLAG_INPROGRESS_FEATURES(id, description) \ | 231 #define FLAG_INPROGRESS_FEATURES(id, description) \ |
229 DEFINE_BOOL(id, false, "enable " #description " (in progress)") | 232 DEFINE_BOOL(id, false, "enable " #description " (in progress)") |
230 HARMONY_INPROGRESS(FLAG_INPROGRESS_FEATURES) | 233 HARMONY_INPROGRESS(FLAG_INPROGRESS_FEATURES) |
231 #undef FLAG_INPROGRESS_FEATURES | 234 #undef FLAG_INPROGRESS_FEATURES |
232 | 235 |
233 #define FLAG_STAGED_FEATURES(id, description) \ | 236 #define FLAG_STAGED_FEATURES(id, description) \ |
234 DEFINE_BOOL(id, false, "enable " #description) \ | 237 DEFINE_BOOL(id, false, "enable " #description) \ |
235 DEFINE_IMPLICATION(es_staging, id) | 238 DEFINE_IMPLICATION(harmony, id) |
236 HARMONY_STAGED(FLAG_STAGED_FEATURES) | 239 HARMONY_STAGED(FLAG_STAGED_FEATURES) |
237 #undef FLAG_STAGED_FEATURES | 240 #undef FLAG_STAGED_FEATURES |
238 | 241 |
239 #define FLAG_SHIPPING_FEATURES(id, description) \ | 242 #define FLAG_SHIPPING_FEATURES(id, description) \ |
240 DEFINE_BOOL(id, true, "enable " #description) \ | 243 DEFINE_BOOL(id, true, "enable " #description) \ |
241 DEFINE_NEG_NEG_IMPLICATION(harmony_shipping, id) | 244 DEFINE_NEG_NEG_IMPLICATION(harmony_shipping, id) |
242 HARMONY_SHIPPING(FLAG_SHIPPING_FEATURES) | 245 HARMONY_SHIPPING(FLAG_SHIPPING_FEATURES) |
243 #undef FLAG_SHIPPING_FEATURES | 246 #undef FLAG_SHIPPING_FEATURES |
244 | 247 |
245 | 248 |
(...skipping 869 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1115 #undef DEFINE_ALIAS_FLOAT | 1118 #undef DEFINE_ALIAS_FLOAT |
1116 #undef DEFINE_ALIAS_ARGS | 1119 #undef DEFINE_ALIAS_ARGS |
1117 | 1120 |
1118 #undef FLAG_MODE_DECLARE | 1121 #undef FLAG_MODE_DECLARE |
1119 #undef FLAG_MODE_DEFINE | 1122 #undef FLAG_MODE_DEFINE |
1120 #undef FLAG_MODE_DEFINE_DEFAULTS | 1123 #undef FLAG_MODE_DEFINE_DEFAULTS |
1121 #undef FLAG_MODE_META | 1124 #undef FLAG_MODE_META |
1122 #undef FLAG_MODE_DEFINE_IMPLICATIONS | 1125 #undef FLAG_MODE_DEFINE_IMPLICATIONS |
1123 | 1126 |
1124 #undef COMMA | 1127 #undef COMMA |
OLD | NEW |