| Index: src/objects.h
|
| diff --git a/src/objects.h b/src/objects.h
|
| index 021ad4cc76fcad76c3e847d6804120fdd3c5068f..df7d95d722b0ceb39574f420c11aa460aa8a1053 100644
|
| --- a/src/objects.h
|
| +++ b/src/objects.h
|
| @@ -3173,18 +3173,25 @@ class ScopeInfo : public FixedArray {
|
| // Return the mode of the given context local.
|
| VariableMode context_local_mode(int var);
|
|
|
| + // Return the initialization flag of the given context local.
|
| + InitializationFlag context_local_init_flag(int var);
|
| +
|
| // Lookup support for serialized scope info. Returns the
|
| // the stack slot index for a given slot name if the slot is
|
| // present; otherwise returns a value < 0. The name must be a symbol
|
| // (canonicalized).
|
| int StackSlotIndex(String* name);
|
|
|
| - // Lookup support for serialized scope info. Returns the
|
| - // context slot index for a given slot name if the slot is present; otherwise
|
| - // returns a value < 0. The name must be a symbol (canonicalized).
|
| - // If the slot is present and mode != NULL, sets *mode to the corresponding
|
| - // mode for that variable.
|
| - int ContextSlotIndex(String* name, VariableMode* mode = NULL);
|
| + // Lookup support for serialized scope info. Returns the context slot index
|
| + // for a given slot name if the slot is present; otherwise returns a
|
| + // value < 0. The name must be a symbol (canonicalized).
|
| + // If the slot is present
|
| + // 1. and mode != NULL, sets *mode to the mode of that variable.
|
| + // 2. and init_flag != NULL, sets *init_flag to the initialization flag of
|
| + // that variable.
|
| + int ContextSlotIndex(String* name,
|
| + VariableMode* mode = NULL,
|
| + InitializationFlag* init_flag = NULL);
|
|
|
| // Lookup support for serialized scope info. Returns the
|
| // parameter index for a given parameter name if the parameter is present;
|
| @@ -3257,10 +3264,11 @@ class ScopeInfo : public FixedArray {
|
| // index starting with Context::MIN_CONTEXT_SLOTS. One slot is used per
|
| // context local, so in total this part occupies num_context_locals()
|
| // slots in the array.
|
| - // 4. ContextLocalModeEntries:
|
| - // Contains the variable modes corresponding to the context locals in
|
| - // ContextLocalNameEntries. One slot is used per context local, so in total
|
| - // this part occupies num_context_locals() slots in the array.
|
| + // 4. ContextLocalInfoEntries:
|
| + // Contains the variable modes and initialization flags corresponding to
|
| + // the context locals in ContextLocalNameEntries. One slot is used per
|
| + // context local, so in total this part occupies num_context_locals()
|
| + // slots in the array.
|
| // 5. FunctionNameEntryIndex:
|
| // If the scope belongs to a named function expression this part contains
|
| // information about the function variable. It always occupies two array
|
| @@ -3269,7 +3277,7 @@ class ScopeInfo : public FixedArray {
|
| int ParameterEntriesIndex();
|
| int StackLocalEntriesIndex();
|
| int ContextLocalNameEntriesIndex();
|
| - int ContextLocalModeEntriesIndex();
|
| + int ContextLocalInfoEntriesIndex();
|
| int FunctionNameEntryIndex();
|
|
|
| // Location of the function variable for named function expressions.
|
| @@ -3286,6 +3294,11 @@ class ScopeInfo : public FixedArray {
|
| class StrictModeField: public BitField<bool, 4, 1> {};
|
| class FunctionVariableField: public BitField<FunctionVariableInfo, 5, 2> {};
|
| class FunctionVariableMode: public BitField<VariableMode, 7, 3> {};
|
| +
|
| + // BitFields representing the encoded information for context locals in the
|
| + // ContextLocalInfoEntries part.
|
| + class ContextLocalMode: public BitField<VariableMode, 0, 3> {};
|
| + class ContextLocalInitFlag: public BitField<InitializationFlag, 3, 1> {};
|
| };
|
|
|
|
|
|
|