diff options
author | Steve Block <steveblock@google.com> | 2011-05-25 08:15:24 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-05-25 08:15:24 -0700 |
commit | fa91a01aee5d4a80ca6c80f722116b850f09996c (patch) | |
tree | f72740e60d3c3d4f0ab144e88c03d1f134944ce3 /Source/JavaScriptCore/runtime/PropertySlot.h | |
parent | 96f37d6d1b390f6690858789706ee6ec25bc1677 (diff) | |
parent | feebf8e7a79ad68b04a1a948e2b8078d6e5f0048 (diff) | |
download | external_webkit-fa91a01aee5d4a80ca6c80f722116b850f09996c.zip external_webkit-fa91a01aee5d4a80ca6c80f722116b850f09996c.tar.gz external_webkit-fa91a01aee5d4a80ca6c80f722116b850f09996c.tar.bz2 |
Merge changes I78ff6a85,Ic85c6405,Ibf903baa,I3a0459db,I35140385,I54790419,I6bfe5d24,Ia9f39b83,I5bcecd5a,I1de96683,I543c6810,I8a5b0878,I0ae670bf,Ide4d58dc,I28ebaf3d,I499d6631,Ie5090e0d,I6d3e5f1f
* changes:
Merge WebKit at r78450: Update ThirdPartyProject.prop
Merge WebKit at r78450: Add new Font::canExpandAroundIdeographsInComplexText()
Merge WebKit at r78450: Add new ChromeClient::selectItemAlignmentFollowsMenuWritingDirection()
Merge WebKit at r78450: FrameLoaderClient::didRunInsecureContent() signature changed
Merge WebKit at r78450: HTMLAreaElement::getRect() renamed
Merge WebKit at r78450: FrameLoader::url() removed
Merge WebKit at r78450: HTMLParserQuirks removed
Merge WebKit at r78450: TextRun::padding() renamed
Merge WebKit at r78450: Use new FontMetrics
Merge WebKit at r78450: GraphicsContext current path removed
Merge WebKit at r78450: TransformationMatrix multiply methods renamed and meaning changed
Merge WebKit at r78450: FontCustomPlatformData::fontPlatformData() signature changed
Merge WebKit at r78450: IntRect::bottom()/right() renamed
Merge WebKit at r78450: Fix remaining conflicts
Merge WebKit at r78450: Fix conflicts due to new ENABLE_WEB_ARCHIVE guard
Merge WebKit at r78450: Fix conflicts in media controls
Merge WebKit at r78450: Fix Makefiles
Merge WebKit at r78450: Initial merge by git.
Diffstat (limited to 'Source/JavaScriptCore/runtime/PropertySlot.h')
-rw-r--r-- | Source/JavaScriptCore/runtime/PropertySlot.h | 50 |
1 files changed, 17 insertions, 33 deletions
diff --git a/Source/JavaScriptCore/runtime/PropertySlot.h b/Source/JavaScriptCore/runtime/PropertySlot.h index de9ddc9..cdda6ff 100644 --- a/Source/JavaScriptCore/runtime/PropertySlot.h +++ b/Source/JavaScriptCore/runtime/PropertySlot.h @@ -32,8 +32,7 @@ namespace JSC { class ExecState; class JSObject; -#define JSC_VALUE_SLOT_MARKER 0 -#define JSC_REGISTER_SLOT_MARKER reinterpret_cast<GetValueFunc>(1) +#define JSC_VALUE_MARKER 0 #define INDEX_GETTER_MARKER reinterpret_cast<GetValueFunc>(2) #define GETTER_FUNCTION_MARKER reinterpret_cast<GetValueFunc>(3) @@ -67,10 +66,8 @@ namespace JSC { JSValue getValue(ExecState* exec, const Identifier& propertyName) const { - if (m_getValue == JSC_VALUE_SLOT_MARKER) - return *m_data.valueSlot; - if (m_getValue == JSC_REGISTER_SLOT_MARKER) - return (*m_data.registerSlot).jsValue(); + if (m_getValue == JSC_VALUE_MARKER) + return m_value; if (m_getValue == INDEX_GETTER_MARKER) return m_getIndexValue(exec, slotBase(), index()); if (m_getValue == GETTER_FUNCTION_MARKER) @@ -80,10 +77,8 @@ namespace JSC { JSValue getValue(ExecState* exec, unsigned propertyName) const { - if (m_getValue == JSC_VALUE_SLOT_MARKER) - return *m_data.valueSlot; - if (m_getValue == JSC_REGISTER_SLOT_MARKER) - return (*m_data.registerSlot).jsValue(); + if (m_getValue == JSC_VALUE_MARKER) + return m_value; if (m_getValue == INDEX_GETTER_MARKER) return m_getIndexValue(exec, m_slotBase, m_data.index); if (m_getValue == GETTER_FUNCTION_MARKER) @@ -100,41 +95,32 @@ namespace JSC { return m_offset; } - void setValueSlot(JSValue* valueSlot) + void setValue(JSValue slotBase, JSValue value) { - ASSERT(valueSlot); - clearBase(); + ASSERT(value); clearOffset(); - m_getValue = JSC_VALUE_SLOT_MARKER; - m_data.valueSlot = valueSlot; - } - - void setValueSlot(JSValue slotBase, JSValue* valueSlot) - { - ASSERT(valueSlot); - m_getValue = JSC_VALUE_SLOT_MARKER; + m_getValue = JSC_VALUE_MARKER; m_slotBase = slotBase; - m_data.valueSlot = valueSlot; + m_value = value; } - void setValueSlot(JSValue slotBase, JSValue* valueSlot, size_t offset) + void setValue(JSValue slotBase, JSValue value, size_t offset) { - ASSERT(valueSlot); - m_getValue = JSC_VALUE_SLOT_MARKER; + ASSERT(value); + m_getValue = JSC_VALUE_MARKER; m_slotBase = slotBase; - m_data.valueSlot = valueSlot; + m_value = value; m_offset = offset; m_cachedPropertyType = Value; } - + void setValue(JSValue value) { ASSERT(value); clearBase(); clearOffset(); - m_getValue = JSC_VALUE_SLOT_MARKER; + m_getValue = JSC_VALUE_MARKER; m_value = value; - m_data.valueSlot = &m_value; } void setRegisterSlot(Register* registerSlot) @@ -142,8 +128,8 @@ namespace JSC { ASSERT(registerSlot); clearBase(); clearOffset(); - m_getValue = JSC_REGISTER_SLOT_MARKER; - m_data.registerSlot = registerSlot; + m_getValue = JSC_VALUE_MARKER; + m_value = registerSlot->jsValue(); } void setCustom(JSValue slotBase, GetValueFunc getValue) @@ -251,8 +237,6 @@ namespace JSC { JSValue m_slotBase; union { JSObject* getterFunc; - JSValue* valueSlot; - Register* registerSlot; unsigned index; } m_data; |