Changeset 77269 in webkit for trunk/Source/JavaScriptCore/runtime/PropertySlot.h
- Timestamp:
- Feb 1, 2011, 12:17:21 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/runtime/PropertySlot.h
r55564 r77269 33 33 class JSObject; 34 34 35 #define JSC_VALUE_SLOT_MARKER 0 36 #define JSC_REGISTER_SLOT_MARKER reinterpret_cast<GetValueFunc>(1) 35 #define JSC_VALUE_MARKER 0 37 36 #define INDEX_GETTER_MARKER reinterpret_cast<GetValueFunc>(2) 38 37 #define GETTER_FUNCTION_MARKER reinterpret_cast<GetValueFunc>(3) … … 68 67 JSValue getValue(ExecState* exec, const Identifier& propertyName) const 69 68 { 70 if (m_getValue == JSC_VALUE_SLOT_MARKER) 71 return *m_data.valueSlot; 72 if (m_getValue == JSC_REGISTER_SLOT_MARKER) 73 return (*m_data.registerSlot).jsValue(); 69 if (m_getValue == JSC_VALUE_MARKER) 70 return m_value; 74 71 if (m_getValue == INDEX_GETTER_MARKER) 75 72 return m_getIndexValue(exec, slotBase(), index()); … … 81 78 JSValue getValue(ExecState* exec, unsigned propertyName) const 82 79 { 83 if (m_getValue == JSC_VALUE_SLOT_MARKER) 84 return *m_data.valueSlot; 85 if (m_getValue == JSC_REGISTER_SLOT_MARKER) 86 return (*m_data.registerSlot).jsValue(); 80 if (m_getValue == JSC_VALUE_MARKER) 81 return m_value; 87 82 if (m_getValue == INDEX_GETTER_MARKER) 88 83 return m_getIndexValue(exec, m_slotBase, m_data.index); … … 101 96 } 102 97 103 void setValue Slot(JSValue* valueSlot)104 { 105 ASSERT(value Slot);106 clear Base();107 clearOffset();108 m_ getValue = JSC_VALUE_SLOT_MARKER;109 m_ data.valueSlot = valueSlot;98 void setValue(JSValue slotBase, JSValue value) 99 { 100 ASSERT(value); 101 clearOffset(); 102 m_getValue = JSC_VALUE_MARKER; 103 m_slotBase = slotBase; 104 m_value = value; 110 105 } 111 106 112 void setValueSlot(JSValue slotBase, JSValue* valueSlot) 113 { 114 ASSERT(valueSlot); 115 m_getValue = JSC_VALUE_SLOT_MARKER; 116 m_slotBase = slotBase; 117 m_data.valueSlot = valueSlot; 118 } 119 120 void setValueSlot(JSValue slotBase, JSValue* valueSlot, size_t offset) 121 { 122 ASSERT(valueSlot); 123 m_getValue = JSC_VALUE_SLOT_MARKER; 124 m_slotBase = slotBase; 125 m_data.valueSlot = valueSlot; 107 void setValue(JSValue slotBase, JSValue value, size_t offset) 108 { 109 ASSERT(value); 110 m_getValue = JSC_VALUE_MARKER; 111 m_slotBase = slotBase; 112 m_value = value; 126 113 m_offset = offset; 127 114 m_cachedPropertyType = Value; 128 115 } 129 116 130 117 void setValue(JSValue value) 131 118 { … … 133 120 clearBase(); 134 121 clearOffset(); 135 m_getValue = JSC_VALUE_ SLOT_MARKER;122 m_getValue = JSC_VALUE_MARKER; 136 123 m_value = value; 137 m_data.valueSlot = &m_value;138 124 } 139 125 … … 143 129 clearBase(); 144 130 clearOffset(); 145 m_getValue = JSC_ REGISTER_SLOT_MARKER;146 m_ data.registerSlot = registerSlot;131 m_getValue = JSC_VALUE_MARKER; 132 m_value = registerSlot->jsValue(); 147 133 } 148 134 … … 252 238 union { 253 239 JSObject* getterFunc; 254 JSValue* valueSlot;255 Register* registerSlot;256 240 unsigned index; 257 241 } m_data;
Note:
See TracChangeset
for help on using the changeset viewer.