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 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
175 DEFINE_BOOL(strong_mode, false, "experimental strong language mode") | 175 DEFINE_BOOL(strong_mode, false, "experimental strong language mode") |
176 DEFINE_IMPLICATION(use_strong, strong_mode) | 176 DEFINE_IMPLICATION(use_strong, strong_mode) |
177 | 177 |
178 DEFINE_BOOL(es_staging, false, "enable all completed harmony features") | 178 DEFINE_BOOL(es_staging, false, "enable all completed harmony features") |
179 DEFINE_BOOL(harmony, false, "enable all completed harmony features") | 179 DEFINE_BOOL(harmony, false, "enable all completed harmony features") |
180 DEFINE_BOOL(harmony_shipping, true, "enable all shipped harmony fetaures") | 180 DEFINE_BOOL(harmony_shipping, true, "enable all shipped harmony fetaures") |
181 DEFINE_IMPLICATION(harmony, es_staging) | 181 DEFINE_IMPLICATION(harmony, es_staging) |
182 DEFINE_IMPLICATION(es_staging, harmony) | 182 DEFINE_IMPLICATION(es_staging, harmony) |
183 | 183 |
184 // Features that are still work in progress (behind individual flags). | 184 // Features that are still work in progress (behind individual flags). |
185 #define HARMONY_INPROGRESS(V) \ | 185 #define HARMONY_INPROGRESS(V) \ |
186 V(harmony_modules, "harmony modules (implies block scoping)") \ | 186 V(harmony_modules, "harmony modules") \ |
187 V(harmony_arrays, "harmony array methods") \ | 187 V(harmony_arrays, "harmony array methods") \ |
188 V(harmony_array_includes, "harmony Array.prototype.includes") \ | 188 V(harmony_array_includes, "harmony Array.prototype.includes") \ |
189 V(harmony_regexps, "harmony regular expression extensions") \ | 189 V(harmony_regexps, "harmony regular expression extensions") \ |
190 V(harmony_arrow_functions, "harmony arrow functions") \ | 190 V(harmony_arrow_functions, "harmony arrow functions") \ |
191 V(harmony_proxies, "harmony proxies") \ | 191 V(harmony_proxies, "harmony proxies") \ |
192 V(harmony_sloppy, "harmony features in sloppy mode") \ | 192 V(harmony_sloppy, "harmony features in sloppy mode") \ |
193 V(harmony_unicode, "harmony unicode escapes") \ | 193 V(harmony_unicode, "harmony unicode escapes") \ |
194 V(harmony_unicode_regexps, "harmony unicode regexps") \ | 194 V(harmony_unicode_regexps, "harmony unicode regexps") \ |
195 V(harmony_rest_parameters, "harmony rest parameters") \ | 195 V(harmony_rest_parameters, "harmony rest parameters") |
196 | 196 |
197 // Features that are complete (but still behind --harmony/es-staging flag). | 197 // Features that are complete (but still behind --harmony/es-staging flag). |
198 #define HARMONY_STAGED(V) \ | 198 #define HARMONY_STAGED(V) \ |
199 V(harmony_computed_property_names, "harmony computed property names") \ | 199 V(harmony_computed_property_names, "harmony computed property names") \ |
200 V(harmony_tostring, "harmony toString") | 200 V(harmony_tostring, "harmony toString") |
201 | 201 |
202 // Features that are shipping (turned on by default, but internal flag remains). | 202 // Features that are shipping (turned on by default, but internal flag remains). |
203 #define HARMONY_SHIPPING(V) \ | 203 #define HARMONY_SHIPPING(V) \ |
204 V(harmony_numeric_literals, "harmony numeric literals") \ | 204 V(harmony_numeric_literals, "harmony numeric literals") \ |
205 V(harmony_strings, "harmony string methods") \ | 205 V(harmony_strings, "harmony string methods") \ |
206 V(harmony_scoping, "harmony block scoping") \ | 206 V(harmony_templates, "harmony template literals") \ |
207 V(harmony_templates, "harmony template literals") \ | 207 V(harmony_classes, "harmony classes (implies object literal extension)") \ |
208 V(harmony_classes, \ | 208 V(harmony_object_literals, "harmony object literal extensions") |
209 "harmony classes (implies block scoping & object literal extension)") \ | |
210 V(harmony_object_literals, "harmony object literal extensions") \ | |
211 | 209 |
212 // Once a shipping feature has proved stable in the wild, it will be dropped | 210 // Once a shipping feature has proved stable in the wild, it will be dropped |
213 // from HARMONY_SHIPPING, all occurrences of the FLAG_ variable are removed, | 211 // from HARMONY_SHIPPING, all occurrences of the FLAG_ variable are removed, |
214 // and associated tests are moved from the harmony directory to the appropriate | 212 // and associated tests are moved from the harmony directory to the appropriate |
215 // esN directory. | 213 // esN directory. |
216 | 214 |
217 | 215 |
218 #define FLAG_INPROGRESS_FEATURES(id, description) \ | 216 #define FLAG_INPROGRESS_FEATURES(id, description) \ |
219 DEFINE_BOOL(id, false, "enable " #description " (in progress)") | 217 DEFINE_BOOL(id, false, "enable " #description " (in progress)") |
220 HARMONY_INPROGRESS(FLAG_INPROGRESS_FEATURES) | 218 HARMONY_INPROGRESS(FLAG_INPROGRESS_FEATURES) |
221 #undef FLAG_INPROGRESS_FEATURES | 219 #undef FLAG_INPROGRESS_FEATURES |
222 | 220 |
223 #define FLAG_STAGED_FEATURES(id, description) \ | 221 #define FLAG_STAGED_FEATURES(id, description) \ |
224 DEFINE_BOOL(id, false, "enable " #description) \ | 222 DEFINE_BOOL(id, false, "enable " #description) \ |
225 DEFINE_IMPLICATION(es_staging, id) | 223 DEFINE_IMPLICATION(es_staging, id) |
226 HARMONY_STAGED(FLAG_STAGED_FEATURES) | 224 HARMONY_STAGED(FLAG_STAGED_FEATURES) |
227 #undef FLAG_STAGED_FEATURES | 225 #undef FLAG_STAGED_FEATURES |
228 | 226 |
229 #define FLAG_SHIPPING_FEATURES(id, description) \ | 227 #define FLAG_SHIPPING_FEATURES(id, description) \ |
230 DEFINE_BOOL(id, true, "enable " #description) \ | 228 DEFINE_BOOL(id, true, "enable " #description) \ |
231 DEFINE_NEG_NEG_IMPLICATION(harmony_shipping, id) | 229 DEFINE_NEG_NEG_IMPLICATION(harmony_shipping, id) |
232 HARMONY_SHIPPING(FLAG_SHIPPING_FEATURES) | 230 HARMONY_SHIPPING(FLAG_SHIPPING_FEATURES) |
233 #undef FLAG_SHIPPING_FEATURES | 231 #undef FLAG_SHIPPING_FEATURES |
234 | 232 |
235 | 233 |
236 // Feature dependencies. | 234 // Feature dependencies. |
237 DEFINE_IMPLICATION(harmony_modules, harmony_scoping) | |
238 DEFINE_IMPLICATION(harmony_classes, harmony_scoping) | |
239 DEFINE_IMPLICATION(harmony_classes, harmony_object_literals) | 235 DEFINE_IMPLICATION(harmony_classes, harmony_object_literals) |
240 DEFINE_IMPLICATION(harmony_unicode_regexps, harmony_unicode) | 236 DEFINE_IMPLICATION(harmony_unicode_regexps, harmony_unicode) |
241 | 237 |
242 | 238 |
243 // Flags for experimental implementation features. | 239 // Flags for experimental implementation features. |
244 DEFINE_BOOL(compiled_keyed_generic_loads, false, | 240 DEFINE_BOOL(compiled_keyed_generic_loads, false, |
245 "use optimizing compiler to generate keyed generic load stubs") | 241 "use optimizing compiler to generate keyed generic load stubs") |
246 // TODO(hpayer): We will remove this flag as soon as we have pretenuring | 242 // TODO(hpayer): We will remove this flag as soon as we have pretenuring |
247 // support for specific allocation sites. | 243 // support for specific allocation sites. |
248 DEFINE_BOOL(pretenuring_call_new, false, "pretenure call new") | 244 DEFINE_BOOL(pretenuring_call_new, false, "pretenure call new") |
(...skipping 788 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1037 #undef DEFINE_ALIAS_FLOAT | 1033 #undef DEFINE_ALIAS_FLOAT |
1038 #undef DEFINE_ALIAS_ARGS | 1034 #undef DEFINE_ALIAS_ARGS |
1039 | 1035 |
1040 #undef FLAG_MODE_DECLARE | 1036 #undef FLAG_MODE_DECLARE |
1041 #undef FLAG_MODE_DEFINE | 1037 #undef FLAG_MODE_DEFINE |
1042 #undef FLAG_MODE_DEFINE_DEFAULTS | 1038 #undef FLAG_MODE_DEFINE_DEFAULTS |
1043 #undef FLAG_MODE_META | 1039 #undef FLAG_MODE_META |
1044 #undef FLAG_MODE_DEFINE_IMPLICATIONS | 1040 #undef FLAG_MODE_DEFINE_IMPLICATIONS |
1045 | 1041 |
1046 #undef COMMA | 1042 #undef COMMA |
OLD | NEW |