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 3937 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3948 // must be an internalized string. | 3948 // must be an internalized string. |
3949 int FunctionContextSlotIndex(String* name, VariableMode* mode); | 3949 int FunctionContextSlotIndex(String* name, VariableMode* mode); |
3950 | 3950 |
3951 // Lookup support for serialized scope info. Returns the receiver context | 3951 // Lookup support for serialized scope info. Returns the receiver context |
3952 // slot index if scope has a "this" binding, and the binding is | 3952 // slot index if scope has a "this" binding, and the binding is |
3953 // context-allocated. Otherwise returns a value < 0. | 3953 // context-allocated. Otherwise returns a value < 0. |
3954 int ReceiverContextSlotIndex(); | 3954 int ReceiverContextSlotIndex(); |
3955 | 3955 |
3956 FunctionKind function_kind(); | 3956 FunctionKind function_kind(); |
3957 | 3957 |
3958 // Copies all the context locals into an object used to materialize a scope. | |
3959 static void CopyContextLocalsToScopeObject(Handle<ScopeInfo> scope_info, | |
3960 Handle<Context> context, | |
3961 Handle<JSObject> scope_object); | |
3962 | |
3963 | |
3964 static Handle<ScopeInfo> Create(Isolate* isolate, Zone* zone, Scope* scope); | 3958 static Handle<ScopeInfo> Create(Isolate* isolate, Zone* zone, Scope* scope); |
3965 static Handle<ScopeInfo> CreateGlobalThisBinding(Isolate* isolate); | 3959 static Handle<ScopeInfo> CreateGlobalThisBinding(Isolate* isolate); |
3966 | 3960 |
3967 // Serializes empty scope info. | 3961 // Serializes empty scope info. |
3968 static ScopeInfo* Empty(Isolate* isolate); | 3962 static ScopeInfo* Empty(Isolate* isolate); |
3969 | 3963 |
3970 #ifdef DEBUG | 3964 #ifdef DEBUG |
3971 void Print(); | 3965 void Print(); |
3972 #endif | 3966 #endif |
3973 | 3967 |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4089 : public BitField<bool, AsmFunctionField::kNext, 1> {}; | 4083 : public BitField<bool, AsmFunctionField::kNext, 1> {}; |
4090 class FunctionKindField | 4084 class FunctionKindField |
4091 : public BitField<FunctionKind, IsSimpleParameterListField::kNext, 8> {}; | 4085 : public BitField<FunctionKind, IsSimpleParameterListField::kNext, 8> {}; |
4092 | 4086 |
4093 // BitFields representing the encoded information for context locals in the | 4087 // BitFields representing the encoded information for context locals in the |
4094 // ContextLocalInfoEntries part. | 4088 // ContextLocalInfoEntries part. |
4095 class ContextLocalMode: public BitField<VariableMode, 0, 3> {}; | 4089 class ContextLocalMode: public BitField<VariableMode, 0, 3> {}; |
4096 class ContextLocalInitFlag: public BitField<InitializationFlag, 3, 1> {}; | 4090 class ContextLocalInitFlag: public BitField<InitializationFlag, 3, 1> {}; |
4097 class ContextLocalMaybeAssignedFlag | 4091 class ContextLocalMaybeAssignedFlag |
4098 : public BitField<MaybeAssignedFlag, 4, 1> {}; | 4092 : public BitField<MaybeAssignedFlag, 4, 1> {}; |
| 4093 |
| 4094 friend class ScopeIterator; |
4099 }; | 4095 }; |
4100 | 4096 |
4101 | 4097 |
4102 // The cache for maps used by normalized (dictionary mode) objects. | 4098 // The cache for maps used by normalized (dictionary mode) objects. |
4103 // Such maps do not have property descriptors, so a typical program | 4099 // Such maps do not have property descriptors, so a typical program |
4104 // needs very limited number of distinct normalized maps. | 4100 // needs very limited number of distinct normalized maps. |
4105 class NormalizedMapCache: public FixedArray { | 4101 class NormalizedMapCache: public FixedArray { |
4106 public: | 4102 public: |
4107 static Handle<NormalizedMapCache> New(Isolate* isolate); | 4103 static Handle<NormalizedMapCache> New(Isolate* isolate); |
4108 | 4104 |
(...skipping 6432 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10541 } else { | 10537 } else { |
10542 value &= ~(1 << bit_position); | 10538 value &= ~(1 << bit_position); |
10543 } | 10539 } |
10544 return value; | 10540 return value; |
10545 } | 10541 } |
10546 }; | 10542 }; |
10547 | 10543 |
10548 } } // namespace v8::internal | 10544 } } // namespace v8::internal |
10549 | 10545 |
10550 #endif // V8_OBJECTS_H_ | 10546 #endif // V8_OBJECTS_H_ |
OLD | NEW |