| 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 |