Chromium Code Reviews| Index: src/v8globals.h |
| diff --git a/src/v8globals.h b/src/v8globals.h |
| index 7179454b43cefa9ed45b3ffc473cd40f87202787..b51ad0510b6cf2333945a848ff54e5b9dd65cc6c 100644 |
| --- a/src/v8globals.h |
| +++ b/src/v8globals.h |
| @@ -549,6 +549,43 @@ enum VariableMode { |
| }; |
| +// ES6 Draft Rev3 10.2 specifies declarative environment records with mutable |
| +// and immutable bindings that can be in two states: initialized and |
| +// uninitialized. In ES5 only immutable bindings have these two states. When |
| +// accessing a binding, it needs to be checked for initialization. However in |
| +// the following cases the binding is initialized immediately after creation |
| +// so the initialization check can always be skipped: |
| +// 1. Var declared local variables. |
| +// var foo; |
| +// 2. A local variable introduced by a function declaration. |
| +// function foo() {} |
| +// 3. Parameters |
| +// function x(foo) {} |
| +// 4. Catch bound variables. |
| +// try {} catch (foo) {} |
| +// 6. Function variables of named function expressions. |
| +// var x = function foo() {} |
| +// 7. Implicit binding of 'this'. |
| +// 8. Implicit binding of 'arguments' in functions. |
| +// |
| +// ES5 specified object environment records which are introduced by ES elements |
| +// such as Program and WithStatement that associate identifier bindings with the |
| +// properties of some object. In the specification only mutable bindings exists |
|
Jakob Kummerow
2011/10/31 12:44:34
nit: s/exists/exist/
Steven
2011/10/31 14:28:29
Done.
|
| +// (which may be non-writable) and have no distinct initialization step. However |
| +// V8 allows const declarations in global code with distinct creation and |
| +// initialization steps which are represented by non-writable properties in the |
| +// global object. As a result also these bindings need to be checked for |
| +// initialization. |
| +// |
| +// The following enum specifies a flag that indicates if the binding needs a |
| +// distinct initialization step (NEEDS_INITIALIZATION) or if the binding is |
| +// immediately initialized upon creation (CREATED_INITIALIZED). |
| +enum InitializationFlag { |
| + NEEDS_INITIALIZATION, |
| + CREATED_INITIALIZED |
| +}; |
| + |
| + |
| enum ClearExceptionFlag { |
| KEEP_EXCEPTION, |
| CLEAR_EXCEPTION |