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 #ifndef V8_OBJECTS_H_ | 5 #ifndef V8_OBJECTS_H_ |
6 #define V8_OBJECTS_H_ | 6 #define V8_OBJECTS_H_ |
7 | 7 |
8 #include <iosfwd> | 8 #include <iosfwd> |
9 | 9 |
10 #include "src/allocation.h" | 10 #include "src/allocation.h" |
(...skipping 4011 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4022 // slot index if the function name is present and context-allocated (named | 4022 // slot index if the function name is present and context-allocated (named |
4023 // function expressions, only), otherwise returns a value < 0. The name | 4023 // function expressions, only), otherwise returns a value < 0. The name |
4024 // must be an internalized string. | 4024 // must be an internalized string. |
4025 int FunctionContextSlotIndex(String* name, VariableMode* mode); | 4025 int FunctionContextSlotIndex(String* name, VariableMode* mode); |
4026 | 4026 |
4027 // Lookup support for serialized scope info. Returns the receiver context | 4027 // Lookup support for serialized scope info. Returns the receiver context |
4028 // slot index if scope has a "this" binding, and the binding is | 4028 // slot index if scope has a "this" binding, and the binding is |
4029 // context-allocated. Otherwise returns a value < 0. | 4029 // context-allocated. Otherwise returns a value < 0. |
4030 int ReceiverContextSlotIndex(); | 4030 int ReceiverContextSlotIndex(); |
4031 | 4031 |
4032 bool block_scope_is_class_scope(); | |
4033 FunctionKind function_kind(); | 4032 FunctionKind function_kind(); |
4034 | 4033 |
4035 // Copies all the context locals into an object used to materialize a scope. | 4034 // Copies all the context locals into an object used to materialize a scope. |
4036 static void CopyContextLocalsToScopeObject(Handle<ScopeInfo> scope_info, | 4035 static void CopyContextLocalsToScopeObject(Handle<ScopeInfo> scope_info, |
4037 Handle<Context> context, | 4036 Handle<Context> context, |
4038 Handle<JSObject> scope_object); | 4037 Handle<JSObject> scope_object); |
4039 | 4038 |
4040 | 4039 |
4041 static Handle<ScopeInfo> Create(Isolate* isolate, Zone* zone, Scope* scope); | 4040 static Handle<ScopeInfo> Create(Isolate* isolate, Zone* zone, Scope* scope); |
4042 static Handle<ScopeInfo> CreateGlobalThisBinding(Isolate* isolate); | 4041 static Handle<ScopeInfo> CreateGlobalThisBinding(Isolate* isolate); |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4150 class FunctionVariableField | 4149 class FunctionVariableField |
4151 : public BitField<VariableAllocationInfo, ReceiverVariableField::kNext, | 4150 : public BitField<VariableAllocationInfo, ReceiverVariableField::kNext, |
4152 2> {}; | 4151 2> {}; |
4153 class FunctionVariableMode | 4152 class FunctionVariableMode |
4154 : public BitField<VariableMode, FunctionVariableField::kNext, 3> {}; | 4153 : public BitField<VariableMode, FunctionVariableField::kNext, 3> {}; |
4155 class AsmModuleField : public BitField<bool, FunctionVariableMode::kNext, 1> { | 4154 class AsmModuleField : public BitField<bool, FunctionVariableMode::kNext, 1> { |
4156 }; | 4155 }; |
4157 class AsmFunctionField : public BitField<bool, AsmModuleField::kNext, 1> {}; | 4156 class AsmFunctionField : public BitField<bool, AsmModuleField::kNext, 1> {}; |
4158 class IsSimpleParameterListField | 4157 class IsSimpleParameterListField |
4159 : public BitField<bool, AsmFunctionField::kNext, 1> {}; | 4158 : public BitField<bool, AsmFunctionField::kNext, 1> {}; |
4160 class BlockScopeIsClassScopeField | |
4161 : public BitField<bool, IsSimpleParameterListField::kNext, 1> {}; | |
4162 class FunctionKindField | 4159 class FunctionKindField |
4163 : public BitField<FunctionKind, BlockScopeIsClassScopeField::kNext, 8> {}; | 4160 : public BitField<FunctionKind, IsSimpleParameterListField::kNext, 8> {}; |
4164 | 4161 |
4165 // BitFields representing the encoded information for context locals in the | 4162 // BitFields representing the encoded information for context locals in the |
4166 // ContextLocalInfoEntries part. | 4163 // ContextLocalInfoEntries part. |
4167 class ContextLocalMode: public BitField<VariableMode, 0, 3> {}; | 4164 class ContextLocalMode: public BitField<VariableMode, 0, 3> {}; |
4168 class ContextLocalInitFlag: public BitField<InitializationFlag, 3, 1> {}; | 4165 class ContextLocalInitFlag: public BitField<InitializationFlag, 3, 1> {}; |
4169 class ContextLocalMaybeAssignedFlag | 4166 class ContextLocalMaybeAssignedFlag |
4170 : public BitField<MaybeAssignedFlag, 4, 1> {}; | 4167 : public BitField<MaybeAssignedFlag, 4, 1> {}; |
4171 }; | 4168 }; |
4172 | 4169 |
4173 | 4170 |
(...skipping 6649 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10823 } else { | 10820 } else { |
10824 value &= ~(1 << bit_position); | 10821 value &= ~(1 << bit_position); |
10825 } | 10822 } |
10826 return value; | 10823 return value; |
10827 } | 10824 } |
10828 }; | 10825 }; |
10829 | 10826 |
10830 } } // namespace v8::internal | 10827 } } // namespace v8::internal |
10831 | 10828 |
10832 #endif // V8_OBJECTS_H_ | 10829 #endif // V8_OBJECTS_H_ |
OLD | NEW |