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 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
162 FLAG_ALIAS(STRING, const char*, alias, nam) | 162 FLAG_ALIAS(STRING, const char*, alias, nam) |
163 #define DEFINE_ALIAS_ARGS(alias, nam) FLAG_ALIAS(ARGS, JSArguments, alias, nam) | 163 #define DEFINE_ALIAS_ARGS(alias, nam) FLAG_ALIAS(ARGS, JSArguments, alias, nam) |
164 | 164 |
165 // | 165 // |
166 // Flags in all modes. | 166 // Flags in all modes. |
167 // | 167 // |
168 #define FLAG FLAG_FULL | 168 #define FLAG FLAG_FULL |
169 | 169 |
170 // Flags for language modes and experimental language features. | 170 // Flags for language modes and experimental language features. |
171 DEFINE_BOOL(use_strict, false, "enforce strict mode") | 171 DEFINE_BOOL(use_strict, false, "enforce strict mode") |
| 172 DEFINE_BOOL(use_strong, false, "enforce strong mode") |
| 173 DEFINE_IMPLICATION(use_strong, use_strict) |
| 174 |
| 175 DEFINE_BOOL(strong_mode, false, "experimental strong language mode") |
| 176 DEFINE_IMPLICATION(use_strong, strong_mode) |
172 | 177 |
173 DEFINE_BOOL(es_staging, false, "enable all completed harmony features") | 178 DEFINE_BOOL(es_staging, false, "enable all completed harmony features") |
174 DEFINE_BOOL(harmony, false, "enable all completed harmony features") | 179 DEFINE_BOOL(harmony, false, "enable all completed harmony features") |
175 DEFINE_BOOL(harmony_shipping, true, "enable all shipped harmony fetaures") | 180 DEFINE_BOOL(harmony_shipping, true, "enable all shipped harmony fetaures") |
176 DEFINE_IMPLICATION(harmony, es_staging) | 181 DEFINE_IMPLICATION(harmony, es_staging) |
177 DEFINE_IMPLICATION(es_staging, harmony) | 182 DEFINE_IMPLICATION(es_staging, harmony) |
178 | 183 |
179 // Features that are still work in progress (behind individual flags). | 184 // Features that are still work in progress (behind individual flags). |
180 #define HARMONY_INPROGRESS(V) \ | 185 #define HARMONY_INPROGRESS(V) \ |
181 V(harmony_modules, "harmony modules (implies block scoping)") \ | 186 V(harmony_modules, "harmony modules (implies block scoping)") \ |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
254 DEFINE_IMPLICATION(track_double_fields, track_fields) | 259 DEFINE_IMPLICATION(track_double_fields, track_fields) |
255 DEFINE_IMPLICATION(track_heap_object_fields, track_fields) | 260 DEFINE_IMPLICATION(track_heap_object_fields, track_fields) |
256 DEFINE_IMPLICATION(track_computed_fields, track_fields) | 261 DEFINE_IMPLICATION(track_computed_fields, track_fields) |
257 DEFINE_BOOL(track_field_types, true, "track field types") | 262 DEFINE_BOOL(track_field_types, true, "track field types") |
258 DEFINE_IMPLICATION(track_field_types, track_fields) | 263 DEFINE_IMPLICATION(track_field_types, track_fields) |
259 DEFINE_IMPLICATION(track_field_types, track_heap_object_fields) | 264 DEFINE_IMPLICATION(track_field_types, track_heap_object_fields) |
260 DEFINE_BOOL(smi_binop, true, "support smi representation in binary operations") | 265 DEFINE_BOOL(smi_binop, true, "support smi representation in binary operations") |
261 DEFINE_BOOL(vector_ics, false, "support vector-based ics") | 266 DEFINE_BOOL(vector_ics, false, "support vector-based ics") |
262 DEFINE_BOOL(experimental_classes, false, | 267 DEFINE_BOOL(experimental_classes, false, |
263 "experimental new semantics for super() calls") | 268 "experimental new semantics for super() calls") |
264 DEFINE_BOOL(strong_mode, false, "experimental strong language mode") | |
265 DEFINE_IMPLICATION(experimental_classes, harmony_classes) | 269 DEFINE_IMPLICATION(experimental_classes, harmony_classes) |
266 DEFINE_IMPLICATION(experimental_classes, harmony_object_literals) | 270 DEFINE_IMPLICATION(experimental_classes, harmony_object_literals) |
267 | 271 |
268 // Flags for optimization types. | 272 // Flags for optimization types. |
269 DEFINE_BOOL(optimize_for_size, false, | 273 DEFINE_BOOL(optimize_for_size, false, |
270 "Enables optimizations which favor memory size over execution " | 274 "Enables optimizations which favor memory size over execution " |
271 "speed.") | 275 "speed.") |
272 | 276 |
273 DEFINE_VALUE_IMPLICATION(optimize_for_size, max_semi_space_size, 1) | 277 DEFINE_VALUE_IMPLICATION(optimize_for_size, max_semi_space_size, 1) |
274 | 278 |
(...skipping 746 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1021 #undef DEFINE_ALIAS_FLOAT | 1025 #undef DEFINE_ALIAS_FLOAT |
1022 #undef DEFINE_ALIAS_ARGS | 1026 #undef DEFINE_ALIAS_ARGS |
1023 | 1027 |
1024 #undef FLAG_MODE_DECLARE | 1028 #undef FLAG_MODE_DECLARE |
1025 #undef FLAG_MODE_DEFINE | 1029 #undef FLAG_MODE_DEFINE |
1026 #undef FLAG_MODE_DEFINE_DEFAULTS | 1030 #undef FLAG_MODE_DEFINE_DEFAULTS |
1027 #undef FLAG_MODE_META | 1031 #undef FLAG_MODE_META |
1028 #undef FLAG_MODE_DEFINE_IMPLICATIONS | 1032 #undef FLAG_MODE_DEFINE_IMPLICATIONS |
1029 | 1033 |
1030 #undef COMMA | 1034 #undef COMMA |
OLD | NEW |