summaryrefslogtreecommitdiffstats
path: root/src/frame-element.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/frame-element.h')
-rw-r--r--src/frame-element.h24
1 files changed, 8 insertions, 16 deletions
diff --git a/src/frame-element.h b/src/frame-element.h
index ae5d6a1b..0c7d0103 100644
--- a/src/frame-element.h
+++ b/src/frame-element.h
@@ -106,20 +106,9 @@ class FrameElement BASE_EMBEDDED {
return result;
}
- // Static indirection table for handles to constants. If a frame
- // element represents a constant, the data contains an index into
- // this table of handles to the actual constants.
- typedef ZoneList<Handle<Object> > ZoneObjectList;
-
- static ZoneObjectList* ConstantList();
-
static bool ConstantPoolOverflowed() {
- return !DataField::is_valid(ConstantList()->length());
- }
-
- // Clear the constants indirection table.
- static void ClearConstantList() {
- ConstantList()->Clear();
+ return !DataField::is_valid(
+ Isolate::Current()->frame_element_constant_list()->length());
}
bool is_synced() const { return SyncedField::decode(value_); }
@@ -164,7 +153,8 @@ class FrameElement BASE_EMBEDDED {
Handle<Object> handle() const {
ASSERT(is_constant());
- return ConstantList()->at(DataField::decode(value_));
+ return Isolate::Current()->frame_element_constant_list()->
+ at(DataField::decode(value_));
}
int index() const {
@@ -232,12 +222,14 @@ class FrameElement BASE_EMBEDDED {
// Used to construct constant elements.
FrameElement(Handle<Object> value, SyncFlag is_synced, TypeInfo info) {
+ ZoneObjectList* constant_list =
+ Isolate::Current()->frame_element_constant_list();
value_ = TypeField::encode(CONSTANT)
| CopiedField::encode(false)
| SyncedField::encode(is_synced != NOT_SYNCED)
| TypeInfoField::encode(info.ToInt())
- | DataField::encode(ConstantList()->length());
- ConstantList()->Add(value);
+ | DataField::encode(constant_list->length());
+ constant_list->Add(value);
}
Type type() const { return TypeField::decode(value_); }