Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3)

Side by Side Diff: src/flag-definitions.h

Issue 693153004: Remove --harmony implications for incomplete features (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/bootstrapper.cc ('k') | test/mjsunit/harmony/classes.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 149
150 // 150 //
151 // Flags in all modes. 151 // Flags in all modes.
152 // 152 //
153 #define FLAG FLAG_FULL 153 #define FLAG FLAG_FULL
154 154
155 // Flags for language modes and experimental language features. 155 // Flags for language modes and experimental language features.
156 DEFINE_BOOL(use_strict, false, "enforce strict mode") 156 DEFINE_BOOL(use_strict, false, "enforce strict mode")
157 157
158 DEFINE_BOOL(es_staging, false, "enable upcoming ES6+ features") 158 DEFINE_BOOL(es_staging, false, "enable upcoming ES6+ features")
159 DEFINE_BOOL(harmony, false, "enable all harmony features (except proxies)") 159 DEFINE_BOOL(harmony, false, "enable all completed harmony features")
160 DEFINE_IMPLICATION(harmony, es_staging) 160 DEFINE_IMPLICATION(harmony, es_staging)
161 // TODO(rossberg): activate once we have staged scoping:
162 // DEFINE_IMPLICATION(es_staging, harmony)
161 163
162 #define HARMONY_FEATURES(V) \ 164 // Features that are still work in progress (behind individual flags).
165 #define HARMONY_INPROGRESS(V) \
163 V(harmony_scoping, "harmony block scoping") \ 166 V(harmony_scoping, "harmony block scoping") \
164 V(harmony_modules, "harmony modules (implies block scoping)") \ 167 V(harmony_modules, "harmony modules (implies block scoping)") \
165 V(harmony_arrays, "harmony arrays") \ 168 V(harmony_arrays, "harmony arrays") \
166 V(harmony_classes, "harmony classes") \ 169 V(harmony_classes, "harmony classes") \
167 V(harmony_object_literals, "harmony object literal extensions") \ 170 V(harmony_object_literals, "harmony object literal extensions") \
168 V(harmony_regexps, "reg-exp related harmony features") \ 171 V(harmony_regexps, "reg-exp related harmony features") \
169 V(harmony_arrow_functions, "harmony arrow functions") \ 172 V(harmony_arrow_functions, "harmony arrow functions") \
170 V(harmony_tostring, "harmony Symbol.toStringTag") 173 V(harmony_tostring, "harmony Symbol.toStringTag") \
174 V(harmony_proxies, "harmony proxies")
171 175
172 #define STAGED_FEATURES(V) \ 176 // Features that are complete (but still behind --harmony/es-staging flag).
177 #define HARMONY_STAGED(V) \
173 V(harmony_strings, "harmony strings") \ 178 V(harmony_strings, "harmony strings") \
174 V(harmony_numeric_literals, "harmony numeric literals (0o77, 0b11)") 179 V(harmony_numeric_literals, "harmony numeric literals")
175 180
176 #define SHIPPING_FEATURES(V) 181 // Features that are shipping (turned on by default, but internal flag remains).
182 #define HARMONY_SHIPPING(V)
177 183
178 #define FLAG_FEATURES(id, description) \ 184 // Once a shipping feature has proved stable in the wild, it will be dropped
185 // from HARMONY_SHIPPING, all occurrences of the FLAG_ variable are removed,
186 // and associated tests are moved from the harmony directory to the appropriate
187 // esN directory.
188
189
190 #define FLAG_INPROGRESS_FEATURES(id, description) \
191 DEFINE_BOOL(id, false, "enable " #description)
192 HARMONY_INPROGRESS(FLAG_INPROGRESS_FEATURES)
193 #undef FLAG_INPROGRESS_FEATURES
194
195 // TODO(rossberg): temporary, remove once we have staged scoping.
196 // After that, --harmony will be synonymous to --es-staging.
197 DEFINE_IMPLICATION(harmony, harmony_scoping)
198
199 #define FLAG_STAGED_FEATURES(id, description) \
179 DEFINE_BOOL(id, false, "enable " #description) \ 200 DEFINE_BOOL(id, false, "enable " #description) \
180 DEFINE_IMPLICATION(harmony, id) 201 DEFINE_IMPLICATION(es_staging, id)
181 202 HARMONY_STAGED(FLAG_STAGED_FEATURES)
182 HARMONY_FEATURES(FLAG_FEATURES)
183 STAGED_FEATURES(FLAG_FEATURES)
184 #undef FLAG_FEATURES
185
186 #define FLAG_STAGED_FEATURES(id, description) DEFINE_IMPLICATION(es_staging, id)
187
188 STAGED_FEATURES(FLAG_STAGED_FEATURES)
189 #undef FLAG_STAGED_FEATURES 203 #undef FLAG_STAGED_FEATURES
190 204
191 #define FLAG_SHIPPING_FEATURES(id, description) \ 205 #define FLAG_SHIPPING_FEATURES(id, description) \
192 DEFINE_BOOL_READONLY(id, true, "enable " #description) 206 DEFINE_BOOL_READONLY(id, true, "enable " #description)
207 HARMONY_SHIPPING(FLAG_SHIPPING_FEATURES)
208 #undef FLAG_SHIPPING_FEATURES
193 209
194 SHIPPING_FEATURES(FLAG_SHIPPING_FEATURES)
195 #undef FLAG_SHIPPING_FEATURES
196 210
197 // Feature dependencies. 211 // Feature dependencies.
198 DEFINE_IMPLICATION(harmony_modules, harmony_scoping) 212 DEFINE_IMPLICATION(harmony_modules, harmony_scoping)
199 DEFINE_IMPLICATION(harmony_classes, harmony_scoping) 213 DEFINE_IMPLICATION(harmony_classes, harmony_scoping)
200 DEFINE_IMPLICATION(harmony_classes, harmony_object_literals) 214 DEFINE_IMPLICATION(harmony_classes, harmony_object_literals)
201 215
202 DEFINE_BOOL(harmony_proxies, false, "enable harmony proxies")
203 // TODO(rossberg): Reenable when problems are sorted out.
204 // DEFINE_IMPLICATION(harmony, harmony_proxies)
205
206 216
207 // Flags for experimental implementation features. 217 // Flags for experimental implementation features.
208 DEFINE_BOOL(compiled_keyed_generic_loads, false, 218 DEFINE_BOOL(compiled_keyed_generic_loads, false,
209 "use optimizing compiler to generate keyed generic load stubs") 219 "use optimizing compiler to generate keyed generic load stubs")
210 DEFINE_BOOL(clever_optimizations, true, 220 DEFINE_BOOL(clever_optimizations, true,
211 "Optimize object size, Array shift, DOM strings and string +") 221 "Optimize object size, Array shift, DOM strings and string +")
212 // TODO(hpayer): We will remove this flag as soon as we have pretenuring 222 // TODO(hpayer): We will remove this flag as soon as we have pretenuring
213 // support for specific allocation sites. 223 // support for specific allocation sites.
214 DEFINE_BOOL(pretenuring_call_new, false, "pretenure call new") 224 DEFINE_BOOL(pretenuring_call_new, false, "pretenure call new")
215 DEFINE_BOOL(allocation_site_pretenuring, true, 225 DEFINE_BOOL(allocation_site_pretenuring, true,
(...skipping 744 matching lines...) Expand 10 before | Expand all | Expand 10 after
960 #undef DEFINE_ALIAS_FLOAT 970 #undef DEFINE_ALIAS_FLOAT
961 #undef DEFINE_ALIAS_ARGS 971 #undef DEFINE_ALIAS_ARGS
962 972
963 #undef FLAG_MODE_DECLARE 973 #undef FLAG_MODE_DECLARE
964 #undef FLAG_MODE_DEFINE 974 #undef FLAG_MODE_DEFINE
965 #undef FLAG_MODE_DEFINE_DEFAULTS 975 #undef FLAG_MODE_DEFINE_DEFAULTS
966 #undef FLAG_MODE_META 976 #undef FLAG_MODE_META
967 #undef FLAG_MODE_DEFINE_IMPLICATIONS 977 #undef FLAG_MODE_DEFINE_IMPLICATIONS
968 978
969 #undef COMMA 979 #undef COMMA
OLDNEW
« no previous file with comments | « src/bootstrapper.cc ('k') | test/mjsunit/harmony/classes.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698