| Differences between
and this patch
- a/ChangeLog +14 lines
Lines 1-3 a/ChangeLog_sec1
1
2011-10-12  Mark Hahnenberg  <mhahnenberg@apple.com>
2
3
        Rename virtual put to putVirtual
4
        https://bugs.webkit.org/show_bug.cgi?id=69851
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        Renamed virtual versions of put to putVirtual in prepration for 
9
        adding the static put to the MethodTable in ClassInfo since the 
10
        compiler gets mad if the virtual and static versions have the same 
11
        name.
12
13
        * Source/autotools/symbols.filter:
14
1
2011-10-12  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
15
2011-10-12  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
2
16
3
        Fix build with GLib 2.31
17
        Fix build with GLib 2.31
- a/Source/JavaScriptCore/API/JSCallbackObject.h -1 / +1 lines
Lines 181-187 private: a/Source/JavaScriptCore/API/JSCallbackObject.h_sec1
181
    virtual bool getOwnPropertySlot(ExecState*, const Identifier&, PropertySlot&);
181
    virtual bool getOwnPropertySlot(ExecState*, const Identifier&, PropertySlot&);
182
    virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
182
    virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
183
    
183
    
184
    virtual void put(ExecState*, const Identifier&, JSValue, PutPropertySlot&);
184
    virtual void putVirtual(ExecState*, const Identifier&, JSValue, PutPropertySlot&);
185
    static void put(JSCell*, ExecState*, const Identifier&, JSValue, PutPropertySlot&);
185
    static void put(JSCell*, ExecState*, const Identifier&, JSValue, PutPropertySlot&);
186
186
187
    virtual bool deleteProperty(ExecState*, const Identifier&);
187
    virtual bool deleteProperty(ExecState*, const Identifier&);
- a/Source/JavaScriptCore/API/JSCallbackObjectFunctions.h -1 / +1 lines
Lines 201-207 bool JSCallbackObject<Parent>::getOwnPropertyDescriptor(ExecState* exec, const I a/Source/JavaScriptCore/API/JSCallbackObjectFunctions.h_sec1
201
}
201
}
202
202
203
template <class Parent>
203
template <class Parent>
204
void JSCallbackObject<Parent>::put(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
204
void JSCallbackObject<Parent>::putVirtual(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
205
{
205
{
206
    put(this, exec, propertyName, value, slot);
206
    put(this, exec, propertyName, value, slot);
207
}
207
}
- a/Source/JavaScriptCore/API/JSObjectRef.cpp -2 / +2 lines
Lines 277-283 void JSObjectSetProperty(JSContextRef ctx, JSObjectRef object, JSStringRef prope a/Source/JavaScriptCore/API/JSObjectRef.cpp_sec1
277
        jsObject->putWithAttributes(exec, name, jsValue, attributes);
277
        jsObject->putWithAttributes(exec, name, jsValue, attributes);
278
    else {
278
    else {
279
        PutPropertySlot slot;
279
        PutPropertySlot slot;
280
        jsObject->put(exec, name, jsValue, slot);
280
        jsObject->putVirtual(exec, name, jsValue, slot);
281
    }
281
    }
282
282
283
    if (exec->hadException()) {
283
    if (exec->hadException()) {
Lines 312-318 void JSObjectSetPropertyAtIndex(JSContextRef ctx, JSObjectRef object, unsigned p a/Source/JavaScriptCore/API/JSObjectRef.cpp_sec2
312
    JSObject* jsObject = toJS(object);
312
    JSObject* jsObject = toJS(object);
313
    JSValue jsValue = toJS(exec, value);
313
    JSValue jsValue = toJS(exec, value);
314
    
314
    
315
    jsObject->put(exec, propertyIndex, jsValue);
315
    jsObject->putVirtual(exec, propertyIndex, jsValue);
316
    if (exec->hadException()) {
316
    if (exec->hadException()) {
317
        if (exception)
317
        if (exception)
318
            *exception = toRef(exec, exec->exception());
318
            *exception = toRef(exec, exec->exception());
- a/Source/JavaScriptCore/ChangeLog +105 lines
Lines 1-3 a/Source/JavaScriptCore/ChangeLog_sec1
1
2011-10-12  Mark Hahnenberg  <mhahnenberg@apple.com>
2
3
        Rename virtual put to putVirtual
4
        https://bugs.webkit.org/show_bug.cgi?id=69851
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        Renamed virtual versions of put to putVirtual in prepration for 
9
        adding the static put to the MethodTable in ClassInfo since the 
10
        compiler gets mad if the virtual and static versions have the same 
11
        name.
12
13
        * API/JSCallbackObject.h:
14
        * API/JSCallbackObjectFunctions.h:
15
        (JSC::::putVirtual):
16
        * API/JSObjectRef.cpp:
17
        (JSObjectSetProperty):
18
        (JSObjectSetPropertyAtIndex):
19
        * JavaScriptCore.exp:
20
        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
21
        * debugger/DebuggerActivation.cpp:
22
        (JSC::DebuggerActivation::putVirtual):
23
        (JSC::DebuggerActivation::put):
24
        * debugger/DebuggerActivation.h:
25
        * dfg/DFGOperations.cpp:
26
        (JSC::DFG::putByVal):
27
        * interpreter/Interpreter.cpp:
28
        (JSC::Interpreter::execute):
29
        * jit/JITStubs.cpp:
30
        (JSC::DEFINE_STUB_FUNCTION):
31
        * jsc.cpp:
32
        (GlobalObject::finishCreation):
33
        * runtime/Arguments.cpp:
34
        (JSC::Arguments::putVirtual):
35
        * runtime/Arguments.h:
36
        * runtime/ArrayPrototype.cpp:
37
        (JSC::putProperty):
38
        (JSC::arrayProtoFuncConcat):
39
        (JSC::arrayProtoFuncPush):
40
        (JSC::arrayProtoFuncReverse):
41
        (JSC::arrayProtoFuncShift):
42
        (JSC::arrayProtoFuncSlice):
43
        (JSC::arrayProtoFuncSort):
44
        (JSC::arrayProtoFuncSplice):
45
        (JSC::arrayProtoFuncUnShift):
46
        (JSC::arrayProtoFuncFilter):
47
        (JSC::arrayProtoFuncMap):
48
        * runtime/JSActivation.cpp:
49
        (JSC::JSActivation::putVirtual):
50
        * runtime/JSActivation.h:
51
        * runtime/JSArray.cpp:
52
        (JSC::JSArray::putVirtual):
53
        (JSC::JSArray::putSlowCase):
54
        (JSC::JSArray::push):
55
        (JSC::JSArray::shiftCount):
56
        (JSC::JSArray::unshiftCount):
57
        * runtime/JSArray.h:
58
        * runtime/JSByteArray.cpp:
59
        (JSC::JSByteArray::putVirtual):
60
        * runtime/JSByteArray.h:
61
        * runtime/JSCell.cpp:
62
        (JSC::JSCell::putVirtual):
63
        (JSC::JSCell::put):
64
        * runtime/JSCell.h:
65
        * runtime/JSFunction.cpp:
66
        (JSC::JSFunction::putVirtual):
67
        * runtime/JSFunction.h:
68
        * runtime/JSGlobalObject.cpp:
69
        (JSC::JSGlobalObject::putVirtual):
70
        (JSC::JSGlobalObject::putWithAttributes):
71
        * runtime/JSGlobalObject.h:
72
        * runtime/JSNotAnObject.cpp:
73
        (JSC::JSNotAnObject::putVirtual):
74
        * runtime/JSNotAnObject.h:
75
        * runtime/JSONObject.cpp:
76
        (JSC::Walker::walk):
77
        * runtime/JSObject.cpp:
78
        (JSC::JSObject::putVirtual):
79
        (JSC::JSObject::put):
80
        (JSC::JSObject::defineOwnProperty):
81
        * runtime/JSObject.h:
82
        (JSC::JSValue::put):
83
        * runtime/JSStaticScopeObject.cpp:
84
        (JSC::JSStaticScopeObject::putVirtual):
85
        * runtime/JSStaticScopeObject.h:
86
        * runtime/Lookup.h:
87
        (JSC::lookupPut):
88
        * runtime/ObjectPrototype.cpp:
89
        (JSC::ObjectPrototype::putVirtual):
90
        * runtime/ObjectPrototype.h:
91
        * runtime/RegExpConstructor.cpp:
92
        (JSC::RegExpMatchesArray::fillArrayInstance):
93
        (JSC::RegExpConstructor::putVirtual):
94
        * runtime/RegExpConstructor.h:
95
        * runtime/RegExpMatchesArray.h:
96
        (JSC::RegExpMatchesArray::putVirtual):
97
        * runtime/RegExpObject.cpp:
98
        (JSC::RegExpObject::putVirtual):
99
        * runtime/RegExpObject.h:
100
        * runtime/StringObject.cpp:
101
        (JSC::StringObject::putVirtual):
102
        * runtime/StringObject.h:
103
        * runtime/StringPrototype.cpp:
104
        (JSC::stringProtoFuncSplit):
105
1
2011-10-12  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
106
2011-10-12  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
2
107
3
        Fix build with GLib 2.31
108
        Fix build with GLib 2.31
- a/Source/JavaScriptCore/JavaScriptCore.exp -6 / +6 lines
Lines 152-158 __ZN3JSC12StringObject18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_ a/Source/JavaScriptCore/JavaScriptCore.exp_sec1
152
__ZN3JSC12StringObject18getOwnPropertySlotEPNS_9ExecStateEjRNS_12PropertySlotE
152
__ZN3JSC12StringObject18getOwnPropertySlotEPNS_9ExecStateEjRNS_12PropertySlotE
153
__ZN3JSC12StringObject19getOwnPropertyNamesEPNS_9ExecStateERNS_17PropertyNameArrayENS_15EnumerationModeE
153
__ZN3JSC12StringObject19getOwnPropertyNamesEPNS_9ExecStateERNS_17PropertyNameArrayENS_15EnumerationModeE
154
__ZN3JSC12StringObject24getOwnPropertyDescriptorEPNS_9ExecStateERKNS_10IdentifierERNS_18PropertyDescriptorE
154
__ZN3JSC12StringObject24getOwnPropertyDescriptorEPNS_9ExecStateERKNS_10IdentifierERNS_18PropertyDescriptorE
155
__ZN3JSC12StringObject3putEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE
156
__ZN3JSC12StringObject6s_infoE
155
__ZN3JSC12StringObject6s_infoE
157
__ZN3JSC12StringObjectC2ERNS_12JSGlobalDataEPNS_9StructureE
156
__ZN3JSC12StringObjectC2ERNS_12JSGlobalDataEPNS_9StructureE
158
__ZN3JSC13JSFinalObject6s_infoE
157
__ZN3JSC13JSFinalObject6s_infoE
Lines 161-166 __ZN3JSC13SamplingFlags5startEv a/Source/JavaScriptCore/JavaScriptCore.exp_sec2
161
__ZN3JSC13SamplingFlags7s_flagsE
160
__ZN3JSC13SamplingFlags7s_flagsE
162
__ZN3JSC13StatementNode6setLocEii
161
__ZN3JSC13StatementNode6setLocEii
163
__ZN3JSC14JSGlobalObject10globalExecEv
162
__ZN3JSC14JSGlobalObject10globalExecEv
163
__ZN3JSC14JSGlobalObject10putVirtualEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE
164
__ZN3JSC14JSGlobalObject12defineGetterEPNS_9ExecStateERKNS_10IdentifierEPNS_8JSObjectEj
164
__ZN3JSC14JSGlobalObject12defineGetterEPNS_9ExecStateERKNS_10IdentifierEPNS_8JSObjectEj
165
__ZN3JSC14JSGlobalObject12defineSetterEPNS_9ExecStateERKNS_10IdentifierEPNS_8JSObjectEj
165
__ZN3JSC14JSGlobalObject12defineSetterEPNS_9ExecStateERKNS_10IdentifierEPNS_8JSObjectEj
166
__ZN3JSC14JSGlobalObject13clearRareDataEPNS_6JSCellE
166
__ZN3JSC14JSGlobalObject13clearRareDataEPNS_6JSCellE
Lines 169-175 __ZN3JSC14JSGlobalObject16addStaticGlobalsEPNS0_18GlobalPropertyInfoEi a/Source/JavaScriptCore/JavaScriptCore.exp_sec3
169
__ZN3JSC14JSGlobalObject17putWithAttributesEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueEj
169
__ZN3JSC14JSGlobalObject17putWithAttributesEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueEj
170
__ZN3JSC14JSGlobalObject18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
170
__ZN3JSC14JSGlobalObject18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
171
__ZN3JSC14JSGlobalObject24getOwnPropertyDescriptorEPNS_9ExecStateERKNS_10IdentifierERNS_18PropertyDescriptorE
171
__ZN3JSC14JSGlobalObject24getOwnPropertyDescriptorEPNS_9ExecStateERKNS_10IdentifierERNS_18PropertyDescriptorE
172
__ZN3JSC14JSGlobalObject3putEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE  
172
__ZN3JSC14JSGlobalObject3putEPNS_6JSCellEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE
173
__ZN3JSC14JSGlobalObject4initEPNS_8JSObjectE
173
__ZN3JSC14JSGlobalObject4initEPNS_8JSObjectE
174
__ZN3JSC14JSGlobalObject6s_infoE
174
__ZN3JSC14JSGlobalObject6s_infoE
175
__ZN3JSC14JSGlobalObjectD2Ev
175
__ZN3JSC14JSGlobalObjectD2Ev
Lines 256-269 __ZN3JSC4Yarr11YarrPatternC1ERKNS_7UStringEbbPPKc a/Source/JavaScriptCore/JavaScriptCore.exp_sec4
256
__ZN3JSC4Yarr11byteCompileERNS0_11YarrPatternEPN3WTF20BumpPointerAllocatorE
256
__ZN3JSC4Yarr11byteCompileERNS0_11YarrPatternEPN3WTF20BumpPointerAllocatorE
257
__ZN3JSC4Yarr9interpretEPNS0_15BytecodePatternERKNS_7UStringEjjPi
257
__ZN3JSC4Yarr9interpretEPNS0_15BytecodePatternERKNS_7UStringEjjPi
258
__ZN3JSC4callEPNS_9ExecStateENS_7JSValueENS_8CallTypeERKNS_8CallDataES2_RKNS_7ArgListE
258
__ZN3JSC4callEPNS_9ExecStateENS_7JSValueENS_8CallTypeERKNS_8CallDataES2_RKNS_7ArgListE
259
__ZN3JSC6JSCell10putVirtualEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE
260
__ZN3JSC6JSCell10putVirtualEPNS_9ExecStateEjNS_7JSValueE
259
__ZN3JSC6JSCell11getCallDataEPS0_RNS_8CallDataE
261
__ZN3JSC6JSCell11getCallDataEPS0_RNS_8CallDataE
260
__ZN3JSC6JSCell14deletePropertyEPNS_9ExecStateERKNS_10IdentifierE
262
__ZN3JSC6JSCell14deletePropertyEPNS_9ExecStateERKNS_10IdentifierE
261
__ZN3JSC6JSCell14deletePropertyEPNS_9ExecStateEj
263
__ZN3JSC6JSCell14deletePropertyEPNS_9ExecStateEj
262
__ZN3JSC6JSCell16getConstructDataERNS_13ConstructDataE
264
__ZN3JSC6JSCell16getConstructDataERNS_13ConstructDataE
263
__ZN3JSC6JSCell18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
265
__ZN3JSC6JSCell18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
264
__ZN3JSC6JSCell18getOwnPropertySlotEPNS_9ExecStateEjRNS_12PropertySlotE
266
__ZN3JSC6JSCell18getOwnPropertySlotEPNS_9ExecStateEjRNS_12PropertySlotE
265
__ZN3JSC6JSCell3putEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE
266
__ZN3JSC6JSCell3putEPNS_9ExecStateEjNS_7JSValueE  
267
__ZN3JSC6JSCell9getObjectEv
267
__ZN3JSC6JSCell9getObjectEv
268
__ZN3JSC6JSLock12DropAllLocksC1ENS_14JSLockBehaviorE
268
__ZN3JSC6JSLock12DropAllLocksC1ENS_14JSLockBehaviorE
269
__ZN3JSC6JSLock12DropAllLocksC1EPNS_9ExecStateE
269
__ZN3JSC6JSLock12DropAllLocksC1EPNS_9ExecStateE
Lines 304-309 __ZN3JSC8Debugger23recompileAllJSFunctionsEPNS_12JSGlobalDataE a/Source/JavaScriptCore/JavaScriptCore.exp_sec5
304
__ZN3JSC8Debugger6attachEPNS_14JSGlobalObjectE
304
__ZN3JSC8Debugger6attachEPNS_14JSGlobalObjectE
305
__ZN3JSC8Debugger6detachEPNS_14JSGlobalObjectE
305
__ZN3JSC8Debugger6detachEPNS_14JSGlobalObjectE
306
__ZN3JSC8DebuggerD2Ev
306
__ZN3JSC8DebuggerD2Ev
307
__ZN3JSC8JSObject10putVirtualEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE
308
__ZN3JSC8JSObject10putVirtualEPNS_9ExecStateEjNS_7JSValueE
307
__ZN3JSC8JSObject11hasInstanceEPNS_9ExecStateENS_7JSValueES3_
309
__ZN3JSC8JSObject11hasInstanceEPNS_9ExecStateENS_7JSValueES3_
308
__ZN3JSC8JSObject12defineGetterEPNS_9ExecStateERKNS_10IdentifierEPS0_j
310
__ZN3JSC8JSObject12defineGetterEPNS_9ExecStateERKNS_10IdentifierEPS0_j
309
__ZN3JSC8JSObject12defineSetterEPNS_9ExecStateERKNS_10IdentifierEPS0_j
311
__ZN3JSC8JSObject12defineSetterEPNS_9ExecStateERKNS_10IdentifierEPS0_j
Lines 329-336 __ZN3JSC8JSObject21getPropertyDescriptorEPNS_9ExecStateERKNS_10IdentifierERNS_18 a/Source/JavaScriptCore/JavaScriptCore.exp_sec6
329
__ZN3JSC8JSObject22fillGetterPropertySlotERNS_12PropertySlotEPNS_16WriteBarrierBaseINS_7UnknownEEE
331
__ZN3JSC8JSObject22fillGetterPropertySlotERNS_12PropertySlotEPNS_16WriteBarrierBaseINS_7UnknownEEE
330
__ZN3JSC8JSObject23allocatePropertyStorageERNS_12JSGlobalDataEmm
332
__ZN3JSC8JSObject23allocatePropertyStorageERNS_12JSGlobalDataEmm
331
__ZN3JSC8JSObject24getOwnPropertyDescriptorEPNS_9ExecStateERKNS_10IdentifierERNS_18PropertyDescriptorE
333
__ZN3JSC8JSObject24getOwnPropertyDescriptorEPNS_9ExecStateERKNS_10IdentifierERNS_18PropertyDescriptorE
332
__ZN3JSC8JSObject3putEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE
333
__ZN3JSC8JSObject3putEPNS_9ExecStateEjNS_7JSValueE
334
__ZN3JSC8JSObject3putEPNS_6JSCellEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE
334
__ZN3JSC8JSObject3putEPNS_6JSCellEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE
335
__ZN3JSC8JSObject6s_infoE
335
__ZN3JSC8JSObject6s_infoE
336
__ZN3JSC8JSString6s_infoE
336
__ZN3JSC8JSString6s_infoE
- a/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def -6 / +6 lines
Lines 271-284 EXPORTS a/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def_sec1
271
    ?protectedGlobalObjectCount@Heap@JSC@@QAEIXZ
271
    ?protectedGlobalObjectCount@Heap@JSC@@QAEIXZ
272
    ?protectedObjectCount@Heap@JSC@@QAEIXZ
272
    ?protectedObjectCount@Heap@JSC@@QAEIXZ
273
    ?protectedObjectTypeCounts@Heap@JSC@@QAE?AV?$PassOwnPtr@V?$HashCountedSet@PBDU?$PtrHash@PBD@WTF@@U?$HashTraits@PBD@2@@WTF@@@WTF@@XZ
273
    ?protectedObjectTypeCounts@Heap@JSC@@QAE?AV?$PassOwnPtr@V?$HashCountedSet@PBDU?$PtrHash@PBD@WTF@@U?$HashTraits@PBD@2@@WTF@@@WTF@@XZ
274
    ?put@JSCell@JSC@@UAEXPAVExecState@2@ABVIdentifier@2@VJSValue@2@AAVPutPropertySlot@2@@Z
274
    ?put@JSGlobalObject@JSC@@SAXPAVJSCell@2@PAVExecState@2@ABVIdentifier@2@VJSValue@2@AAVPutPropertySlot@2@@Z
275
    ?put@JSCell@JSC@@UAEXPAVExecState@2@IVJSValue@2@@Z
276
    ?put@JSGlobalObject@JSC@@UAEXPAVExecState@2@ABVIdentifier@2@VJSValue@2@AAVPutPropertySlot@2@@Z
277
    ?put@JSObject@JSC@@SAXPAVJSCell@2@PAVExecState@2@ABVIdentifier@2@VJSValue@2@AAVPutPropertySlot@2@@Z
275
    ?put@JSObject@JSC@@SAXPAVJSCell@2@PAVExecState@2@ABVIdentifier@2@VJSValue@2@AAVPutPropertySlot@2@@Z
278
    ?put@JSObject@JSC@@UAEXPAVExecState@2@ABVIdentifier@2@VJSValue@2@AAVPutPropertySlot@2@@Z
279
    ?put@JSObject@JSC@@UAEXPAVExecState@2@IVJSValue@2@@Z
280
    ?put@StringObject@JSC@@UAEXPAVExecState@2@ABVIdentifier@2@VJSValue@2@AAVPutPropertySlot@2@@Z
281
    ?putDirectInternal@JSObject@JSC@@AAE_NAAVJSGlobalData@2@ABVIdentifier@2@VJSValue@2@I_NAAVPutPropertySlot@2@PAVJSCell@2@@Z
276
    ?putDirectInternal@JSObject@JSC@@AAE_NAAVJSGlobalData@2@ABVIdentifier@2@VJSValue@2@I_NAAVPutPropertySlot@2@PAVJSCell@2@@Z
277
    ?putVirtual@JSCell@JSC@@UAEXPAVExecState@2@ABVIdentifier@2@VJSValue@2@AAVPutPropertySlot@2@@Z
278
    ?putVirtual@JSCell@JSC@@UAEXPAVExecState@2@IVJSValue@2@@Z
279
    ?putVirtual@JSGlobalObject@JSC@@UAEXPAVExecState@2@ABVIdentifier@2@VJSValue@2@AAVPutPropertySlot@2@@Z
280
    ?putVirtual@JSObject@JSC@@UAEXPAVExecState@2@ABVIdentifier@2@VJSValue@2@AAVPutPropertySlot@2@@Z
281
    ?putVirtual@JSObject@JSC@@UAEXPAVExecState@2@IVJSValue@2@@Z
282
    ?putWithAttributes@JSGlobalObject@JSC@@UAEXPAVExecState@2@ABVIdentifier@2@VJSValue@2@I@Z
282
    ?putWithAttributes@JSGlobalObject@JSC@@UAEXPAVExecState@2@ABVIdentifier@2@VJSValue@2@I@Z
283
    ?putWithAttributes@JSObject@JSC@@UAEXPAVExecState@2@ABVIdentifier@2@VJSValue@2@I@Z
283
    ?putWithAttributes@JSObject@JSC@@UAEXPAVExecState@2@ABVIdentifier@2@VJSValue@2@I@Z
284
    ?putWithAttributes@JSObject@JSC@@UAEXPAVExecState@2@ABVIdentifier@2@VJSValue@2@I_NAAVPutPropertySlot@2@@Z
284
    ?putWithAttributes@JSObject@JSC@@UAEXPAVExecState@2@ABVIdentifier@2@VJSValue@2@I_NAAVPutPropertySlot@2@@Z
- a/Source/JavaScriptCore/debugger/DebuggerActivation.cpp -2 / +2 lines
Lines 70-83 bool DebuggerActivation::getOwnPropertySlot(JSCell* cell, ExecState* exec, const a/Source/JavaScriptCore/debugger/DebuggerActivation.cpp_sec1
70
    return static_cast<DebuggerActivation*>(cell)->m_activation->getOwnPropertySlot(exec, propertyName, slot);
70
    return static_cast<DebuggerActivation*>(cell)->m_activation->getOwnPropertySlot(exec, propertyName, slot);
71
}
71
}
72
72
73
void DebuggerActivation::put(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
73
void DebuggerActivation::putVirtual(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
74
{
74
{
75
    put(this, exec, propertyName, value, slot);
75
    put(this, exec, propertyName, value, slot);
76
}
76
}
77
77
78
void DebuggerActivation::put(JSCell* cell, ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
78
void DebuggerActivation::put(JSCell* cell, ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
79
{
79
{
80
    static_cast<DebuggerActivation*>(cell)->m_activation->put(exec, propertyName, value, slot);
80
    static_cast<DebuggerActivation*>(cell)->m_activation->putVirtual(exec, propertyName, value, slot);
81
}
81
}
82
82
83
void DebuggerActivation::putWithAttributes(ExecState* exec, const Identifier& propertyName, JSValue value, unsigned attributes)
83
void DebuggerActivation::putWithAttributes(ExecState* exec, const Identifier& propertyName, JSValue value, unsigned attributes)
- a/Source/JavaScriptCore/debugger/DebuggerActivation.h -1 / +1 lines
Lines 45-51 namespace JSC { a/Source/JavaScriptCore/debugger/DebuggerActivation.h_sec1
45
        virtual UString className() const;
45
        virtual UString className() const;
46
        virtual bool getOwnPropertySlot(ExecState*, const Identifier& propertyName, PropertySlot&);
46
        virtual bool getOwnPropertySlot(ExecState*, const Identifier& propertyName, PropertySlot&);
47
        static bool getOwnPropertySlot(JSCell*, ExecState*, const Identifier& propertyName, PropertySlot&);
47
        static bool getOwnPropertySlot(JSCell*, ExecState*, const Identifier& propertyName, PropertySlot&);
48
        virtual void put(ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
48
        virtual void putVirtual(ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
49
        static void put(JSCell*, ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
49
        static void put(JSCell*, ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
50
        virtual void putWithAttributes(ExecState*, const Identifier& propertyName, JSValue, unsigned attributes);
50
        virtual void putWithAttributes(ExecState*, const Identifier& propertyName, JSValue, unsigned attributes);
51
        virtual bool deleteProperty(ExecState*, const Identifier& propertyName);
51
        virtual bool deleteProperty(ExecState*, const Identifier& propertyName);
- a/Source/JavaScriptCore/dfg/DFGOperations.cpp -4 / +4 lines
Lines 96-102 static inline void putByVal(ExecState* exec, JSValue baseValue, uint32_t index, a/Source/JavaScriptCore/dfg/DFGOperations.cpp_sec1
96
            return;
96
            return;
97
        }
97
        }
98
98
99
        array->JSArray::put(exec, index, value);
99
        JSArray::put(array, exec, index, value);
100
        return;
100
        return;
101
    }
101
    }
102
102
Lines 357-363 void DFG_OPERATION operationPutByValBeyondArrayBounds(ExecState* exec, JSArray* a/Source/JavaScriptCore/dfg/DFGOperations.cpp_sec2
357
{
357
{
358
    // We should only get here if index is outside the existing vector.
358
    // We should only get here if index is outside the existing vector.
359
    ASSERT(!array->canSetIndex(index));
359
    ASSERT(!array->canSetIndex(index));
360
    array->JSArray::put(exec, index, JSValue::decode(encodedValue));
360
    JSArray::put(array, exec, index, JSValue::decode(encodedValue));
361
}
361
}
362
362
363
EncodedJSValue DFG_OPERATION operationArrayPush(ExecState* exec, EncodedJSValue encodedValue, JSArray* array)
363
EncodedJSValue DFG_OPERATION operationArrayPush(ExecState* exec, EncodedJSValue encodedValue, JSArray* array)
Lines 374-386 EncodedJSValue DFG_OPERATION operationArrayPop(ExecState*, JSArray* array) a/Source/JavaScriptCore/dfg/DFGOperations.cpp_sec3
374
void DFG_OPERATION operationPutByIdStrict(ExecState* exec, EncodedJSValue encodedValue, JSCell* base, Identifier* propertyName)
374
void DFG_OPERATION operationPutByIdStrict(ExecState* exec, EncodedJSValue encodedValue, JSCell* base, Identifier* propertyName)
375
{
375
{
376
    PutPropertySlot slot(true);
376
    PutPropertySlot slot(true);
377
    base->put(exec, *propertyName, JSValue::decode(encodedValue), slot);
377
    base->putVirtual(exec, *propertyName, JSValue::decode(encodedValue), slot);
378
}
378
}
379
379
380
void DFG_OPERATION operationPutByIdNonStrict(ExecState* exec, EncodedJSValue encodedValue, JSCell* base, Identifier* propertyName)
380
void DFG_OPERATION operationPutByIdNonStrict(ExecState* exec, EncodedJSValue encodedValue, JSCell* base, Identifier* propertyName)
381
{
381
{
382
    PutPropertySlot slot(false);
382
    PutPropertySlot slot(false);
383
    base->put(exec, *propertyName, JSValue::decode(encodedValue), slot);
383
    base->putVirtual(exec, *propertyName, JSValue::decode(encodedValue), slot);
384
}
384
}
385
385
386
void DFG_OPERATION operationPutByIdDirectStrict(ExecState* exec, EncodedJSValue encodedValue, JSCell* base, Identifier* propertyName)
386
void DFG_OPERATION operationPutByIdDirectStrict(ExecState* exec, EncodedJSValue encodedValue, JSCell* base, Identifier* propertyName)
- a/Source/JavaScriptCore/interpreter/Interpreter.cpp -3 / +3 lines
Lines 791-797 JSValue Interpreter::execute(ProgramExecutable* program, CallFrame* callFrame, S a/Source/JavaScriptCore/interpreter/Interpreter.cpp_sec1
791
            if (JSONPPath.size() == 1 && JSONPPath[0].m_type == LiteralParser::JSONPPathEntryTypeDeclare) {
791
            if (JSONPPath.size() == 1 && JSONPPath[0].m_type == LiteralParser::JSONPPathEntryTypeDeclare) {
792
                if (globalObject->hasProperty(callFrame, JSONPPath[0].m_pathEntryName)) {
792
                if (globalObject->hasProperty(callFrame, JSONPPath[0].m_pathEntryName)) {
793
                    PutPropertySlot slot;
793
                    PutPropertySlot slot;
794
                    globalObject->put(callFrame, JSONPPath[0].m_pathEntryName, JSONPValue, slot);
794
                    globalObject->putVirtual(callFrame, JSONPPath[0].m_pathEntryName, JSONPValue, slot);
795
                } else
795
                } else
796
                    globalObject->putWithAttributes(callFrame, JSONPPath[0].m_pathEntryName, JSONPValue, DontEnum | DontDelete);
796
                    globalObject->putWithAttributes(callFrame, JSONPPath[0].m_pathEntryName, JSONPValue, DontEnum | DontDelete);
797
                // var declarations return undefined
797
                // var declarations return undefined
Lines 1251-1264 JSValue Interpreter::execute(EvalExecutable* eval, CallFrame* callFrame, JSValue a/Source/JavaScriptCore/interpreter/Interpreter.cpp_sec2
1251
            const Identifier& ident = codeBlock->variable(i);
1251
            const Identifier& ident = codeBlock->variable(i);
1252
            if (!variableObject->hasProperty(callFrame, ident)) {
1252
            if (!variableObject->hasProperty(callFrame, ident)) {
1253
                PutPropertySlot slot;
1253
                PutPropertySlot slot;
1254
                variableObject->put(callFrame, ident, jsUndefined(), slot);
1254
                variableObject->putVirtual(callFrame, ident, jsUndefined(), slot);
1255
            }
1255
            }
1256
        }
1256
        }
1257
1257
1258
        for (int i = 0; i < numFunctions; ++i) {
1258
        for (int i = 0; i < numFunctions; ++i) {
1259
            FunctionExecutable* function = codeBlock->functionDecl(i);
1259
            FunctionExecutable* function = codeBlock->functionDecl(i);
1260
            PutPropertySlot slot;
1260
            PutPropertySlot slot;
1261
            variableObject->put(callFrame, function->name(), function->make(callFrame, scopeChain), slot);
1261
            variableObject->putVirtual(callFrame, function->name(), function->make(callFrame, scopeChain), slot);
1262
        }
1262
        }
1263
    }
1263
    }
1264
1264
- a/Source/JavaScriptCore/jit/JITStubs.cpp -1 / +1 lines
Lines 2611-2617 DEFINE_STUB_FUNCTION(void, op_put_by_val) a/Source/JavaScriptCore/jit/JITStubs.cpp_sec1
2611
            if (jsArray->canSetIndex(i))
2611
            if (jsArray->canSetIndex(i))
2612
                jsArray->setIndex(*globalData, i, value);
2612
                jsArray->setIndex(*globalData, i, value);
2613
            else
2613
            else
2614
                jsArray->JSArray::put(callFrame, i, value);
2614
                JSArray::put(jsArray, callFrame, i, value);
2615
        } else if (isJSByteArray(globalData, baseValue) && asByteArray(baseValue)->canAccessIndex(i)) {
2615
        } else if (isJSByteArray(globalData, baseValue) && asByteArray(baseValue)->canAccessIndex(i)) {
2616
            JSByteArray* jsByteArray = asByteArray(baseValue);
2616
            JSByteArray* jsByteArray = asByteArray(baseValue);
2617
            ctiPatchCallByReturnAddress(callFrame->codeBlock(), STUB_RETURN_ADDRESS, FunctionPtr(cti_op_put_by_val_byte_array));
2617
            ctiPatchCallByReturnAddress(callFrame->codeBlock(), STUB_RETURN_ADDRESS, FunctionPtr(cti_op_put_by_val_byte_array));
- a/Source/JavaScriptCore/jsc.cpp -1 / +1 lines
Lines 182-188 protected: a/Source/JavaScriptCore/jsc.cpp_sec1
182
182
183
        JSObject* array = constructEmptyArray(globalExec());
183
        JSObject* array = constructEmptyArray(globalExec());
184
        for (size_t i = 0; i < arguments.size(); ++i)
184
        for (size_t i = 0; i < arguments.size(); ++i)
185
            array->put(globalExec(), i, jsString(globalExec(), arguments[i]));
185
            array->putVirtual(globalExec(), i, jsString(globalExec(), arguments[i]));
186
        putDirect(globalData, Identifier(globalExec(), "arguments"), array);
186
        putDirect(globalData, Identifier(globalExec(), "arguments"), array);
187
    }
187
    }
188
188
- a/Source/JavaScriptCore/runtime/Arguments.cpp -2 / +2 lines
Lines 263-269 void Arguments::getOwnPropertyNames(ExecState* exec, PropertyNameArray& property a/Source/JavaScriptCore/runtime/Arguments.cpp_sec1
263
    JSObject::getOwnPropertyNames(exec, propertyNames, mode);
263
    JSObject::getOwnPropertyNames(exec, propertyNames, mode);
264
}
264
}
265
265
266
void Arguments::put(ExecState* exec, unsigned i, JSValue value)
266
void Arguments::putVirtual(ExecState* exec, unsigned i, JSValue value)
267
{
267
{
268
    put(this, exec, i, value);
268
    put(this, exec, i, value);
269
}
269
}
Lines 283-289 void Arguments::put(JSCell* cell, ExecState* exec, unsigned i, JSValue value) a/Source/JavaScriptCore/runtime/Arguments.cpp_sec2
283
    JSObject::put(thisObject, exec, Identifier(exec, UString::number(i)), value, slot);
283
    JSObject::put(thisObject, exec, Identifier(exec, UString::number(i)), value, slot);
284
}
284
}
285
285
286
void Arguments::put(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
286
void Arguments::putVirtual(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
287
{
287
{
288
    put(this, exec, propertyName, value, slot);
288
    put(this, exec, propertyName, value, slot);
289
}
289
}
- a/Source/JavaScriptCore/runtime/Arguments.h -2 / +2 lines
Lines 130-138 namespace JSC { a/Source/JavaScriptCore/runtime/Arguments.h_sec1
130
        static bool getOwnPropertySlot(JSCell*, ExecState*, unsigned propertyName, PropertySlot&);
130
        static bool getOwnPropertySlot(JSCell*, ExecState*, unsigned propertyName, PropertySlot&);
131
        virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
131
        virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
132
        virtual void getOwnPropertyNames(ExecState*, PropertyNameArray&, EnumerationMode mode = ExcludeDontEnumProperties);
132
        virtual void getOwnPropertyNames(ExecState*, PropertyNameArray&, EnumerationMode mode = ExcludeDontEnumProperties);
133
        virtual void put(ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
133
        virtual void putVirtual(ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
134
        static void put(JSCell*, ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
134
        static void put(JSCell*, ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
135
        virtual void put(ExecState*, unsigned propertyName, JSValue);
135
        virtual void putVirtual(ExecState*, unsigned propertyName, JSValue);
136
        static void put(JSCell*, ExecState*, unsigned propertyName, JSValue);
136
        static void put(JSCell*, ExecState*, unsigned propertyName, JSValue);
137
        virtual bool deleteProperty(ExecState*, const Identifier& propertyName);
137
        virtual bool deleteProperty(ExecState*, const Identifier& propertyName);
138
        static bool deleteProperty(JSCell*, ExecState*, const Identifier& propertyName);
138
        static bool deleteProperty(JSCell*, ExecState*, const Identifier& propertyName);
- a/Source/JavaScriptCore/runtime/ArrayPrototype.cpp -20 / +20 lines
Lines 154-160 static JSValue getProperty(ExecState* exec, JSObject* obj, unsigned index) a/Source/JavaScriptCore/runtime/ArrayPrototype.cpp_sec1
154
static void putProperty(ExecState* exec, JSObject* obj, const Identifier& propertyName, JSValue value)
154
static void putProperty(ExecState* exec, JSObject* obj, const Identifier& propertyName, JSValue value)
155
{
155
{
156
    PutPropertySlot slot;
156
    PutPropertySlot slot;
157
    obj->put(exec, propertyName, value, slot);
157
    obj->putVirtual(exec, propertyName, value, slot);
158
}
158
}
159
159
160
static unsigned argumentClampedIndexFromStartOrEnd(ExecState* exec, int argument, unsigned length, unsigned undefinedValue = 0)
160
static unsigned argumentClampedIndexFromStartOrEnd(ExecState* exec, int argument, unsigned length, unsigned undefinedValue = 0)
Lines 357-367 EncodedJSValue JSC_HOST_CALL arrayProtoFuncConcat(ExecState* exec) a/Source/JavaScriptCore/runtime/ArrayPrototype.cpp_sec2
357
            JSObject* curObject = curArg.toObject(exec);
357
            JSObject* curObject = curArg.toObject(exec);
358
            for (unsigned k = 0; k < length; ++k) {
358
            for (unsigned k = 0; k < length; ++k) {
359
                if (JSValue v = getProperty(exec, curObject, k))
359
                if (JSValue v = getProperty(exec, curObject, k))
360
                    arr->put(exec, n, v);
360
                    arr->putVirtual(exec, n, v);
361
                n++;
361
                n++;
362
            }
362
            }
363
        } else {
363
        } else {
364
            arr->put(exec, n, curArg);
364
            arr->putVirtual(exec, n, curArg);
365
            n++;
365
            n++;
366
        }
366
        }
367
        if (i == argCount)
367
        if (i == argCount)
Lines 415-425 EncodedJSValue JSC_HOST_CALL arrayProtoFuncPush(ExecState* exec) a/Source/JavaScriptCore/runtime/ArrayPrototype.cpp_sec3
415
    for (unsigned n = 0; n < exec->argumentCount(); n++) {
415
    for (unsigned n = 0; n < exec->argumentCount(); n++) {
416
        // Check for integer overflow; where safe we can do a fast put by index.
416
        // Check for integer overflow; where safe we can do a fast put by index.
417
        if (length + n >= length)
417
        if (length + n >= length)
418
            thisObj->put(exec, length + n, exec->argument(n));
418
            thisObj->putVirtual(exec, length + n, exec->argument(n));
419
        else {
419
        else {
420
            PutPropertySlot slot;
420
            PutPropertySlot slot;
421
            Identifier propertyName(exec, JSValue(static_cast<int64_t>(length) + static_cast<int64_t>(n)).toString(exec));
421
            Identifier propertyName(exec, JSValue(static_cast<int64_t>(length) + static_cast<int64_t>(n)).toString(exec));
422
            thisObj->put(exec, propertyName, exec->argument(n), slot);
422
            thisObj->putVirtual(exec, propertyName, exec->argument(n), slot);
423
        }
423
        }
424
    }
424
    }
425
    JSValue newLength(static_cast<int64_t>(length) + static_cast<int64_t>(exec->argumentCount()));
425
    JSValue newLength(static_cast<int64_t>(length) + static_cast<int64_t>(exec->argumentCount()));
Lines 441-452 EncodedJSValue JSC_HOST_CALL arrayProtoFuncReverse(ExecState* exec) a/Source/JavaScriptCore/runtime/ArrayPrototype.cpp_sec4
441
        JSValue obj = getProperty(exec, thisObj, k);
441
        JSValue obj = getProperty(exec, thisObj, k);
442
442
443
        if (obj2)
443
        if (obj2)
444
            thisObj->put(exec, k, obj2);
444
            thisObj->putVirtual(exec, k, obj2);
445
        else
445
        else
446
            thisObj->deleteProperty(exec, k);
446
            thisObj->deleteProperty(exec, k);
447
447
448
        if (obj)
448
        if (obj)
449
            thisObj->put(exec, lk1, obj);
449
            thisObj->putVirtual(exec, lk1, obj);
450
        else
450
        else
451
            thisObj->deleteProperty(exec, lk1);
451
            thisObj->deleteProperty(exec, lk1);
452
    }
452
    }
Lines 471-477 EncodedJSValue JSC_HOST_CALL arrayProtoFuncShift(ExecState* exec) a/Source/JavaScriptCore/runtime/ArrayPrototype.cpp_sec5
471
        else {
471
        else {
472
            for (unsigned k = 1; k < length; k++) {
472
            for (unsigned k = 1; k < length; k++) {
473
                if (JSValue obj = getProperty(exec, thisObj, k))
473
                if (JSValue obj = getProperty(exec, thisObj, k))
474
                    thisObj->put(exec, k - 1, obj);
474
                    thisObj->putVirtual(exec, k - 1, obj);
475
                else
475
                else
476
                    thisObj->deleteProperty(exec, k - 1);
476
                    thisObj->deleteProperty(exec, k - 1);
477
            }
477
            }
Lines 500-506 EncodedJSValue JSC_HOST_CALL arrayProtoFuncSlice(ExecState* exec) a/Source/JavaScriptCore/runtime/ArrayPrototype.cpp_sec6
500
    unsigned n = 0;
500
    unsigned n = 0;
501
    for (unsigned k = begin; k < end; k++, n++) {
501
    for (unsigned k = begin; k < end; k++, n++) {
502
        if (JSValue v = getProperty(exec, thisObj, k))
502
        if (JSValue v = getProperty(exec, thisObj, k))
503
            resObj->put(exec, n, v);
503
            resObj->putVirtual(exec, n, v);
504
    }
504
    }
505
    resObj->setLength(n);
505
    resObj->setLength(n);
506
    return JSValue::encode(result);
506
    return JSValue::encode(result);
Lines 559-566 EncodedJSValue JSC_HOST_CALL arrayProtoFuncSort(ExecState* exec) a/Source/JavaScriptCore/runtime/ArrayPrototype.cpp_sec7
559
        }
559
        }
560
        // Swap themin and i
560
        // Swap themin and i
561
        if (themin > i) {
561
        if (themin > i) {
562
            thisObj->put(exec, i, minObj);
562
            thisObj->putVirtual(exec, i, minObj);
563
            thisObj->put(exec, themin, iObj);
563
            thisObj->putVirtual(exec, themin, iObj);
564
        }
564
        }
565
    }
565
    }
566
    return JSValue::encode(thisObj);
566
    return JSValue::encode(thisObj);
Lines 607-613 EncodedJSValue JSC_HOST_CALL arrayProtoFuncSplice(ExecState* exec) a/Source/JavaScriptCore/runtime/ArrayPrototype.cpp_sec8
607
            else {
607
            else {
608
                for (unsigned k = begin; k < length - deleteCount; ++k) {
608
                for (unsigned k = begin; k < length - deleteCount; ++k) {
609
                    if (JSValue v = getProperty(exec, thisObj, k + deleteCount))
609
                    if (JSValue v = getProperty(exec, thisObj, k + deleteCount))
610
                        thisObj->put(exec, k + additionalArgs, v);
610
                        thisObj->putVirtual(exec, k + additionalArgs, v);
611
                    else
611
                    else
612
                        thisObj->deleteProperty(exec, k + additionalArgs);
612
                        thisObj->deleteProperty(exec, k + additionalArgs);
613
                }
613
                }
Lines 620-626 EncodedJSValue JSC_HOST_CALL arrayProtoFuncSplice(ExecState* exec) a/Source/JavaScriptCore/runtime/ArrayPrototype.cpp_sec9
620
            else {
620
            else {
621
                for (unsigned k = length - deleteCount; k > begin; --k) {
621
                for (unsigned k = length - deleteCount; k > begin; --k) {
622
                    if (JSValue obj = getProperty(exec, thisObj, k + deleteCount - 1))
622
                    if (JSValue obj = getProperty(exec, thisObj, k + deleteCount - 1))
623
                        thisObj->put(exec, k + additionalArgs - 1, obj);
623
                        thisObj->putVirtual(exec, k + additionalArgs - 1, obj);
624
                    else
624
                    else
625
                        thisObj->deleteProperty(exec, k + additionalArgs - 1);
625
                        thisObj->deleteProperty(exec, k + additionalArgs - 1);
626
                }
626
                }
Lines 628-634 EncodedJSValue JSC_HOST_CALL arrayProtoFuncSplice(ExecState* exec) a/Source/JavaScriptCore/runtime/ArrayPrototype.cpp_sec10
628
        }
628
        }
629
    }
629
    }
630
    for (unsigned k = 0; k < additionalArgs; ++k)
630
    for (unsigned k = 0; k < additionalArgs; ++k)
631
        thisObj->put(exec, k + begin, exec->argument(k + 2));
631
        thisObj->putVirtual(exec, k + begin, exec->argument(k + 2));
632
632
633
    putProperty(exec, thisObj, exec->propertyNames().length, jsNumber(length - deleteCount + additionalArgs));
633
    putProperty(exec, thisObj, exec->propertyNames().length, jsNumber(length - deleteCount + additionalArgs));
634
    return JSValue::encode(result);
634
    return JSValue::encode(result);
Lines 650-663 EncodedJSValue JSC_HOST_CALL arrayProtoFuncUnShift(ExecState* exec) a/Source/JavaScriptCore/runtime/ArrayPrototype.cpp_sec11
650
        else {
650
        else {
651
            for (unsigned k = length; k > 0; --k) {
651
            for (unsigned k = length; k > 0; --k) {
652
                if (JSValue v = getProperty(exec, thisObj, k - 1))
652
                if (JSValue v = getProperty(exec, thisObj, k - 1))
653
                    thisObj->put(exec, k + nrArgs - 1, v);
653
                    thisObj->putVirtual(exec, k + nrArgs - 1, v);
654
                else
654
                else
655
                    thisObj->deleteProperty(exec, k + nrArgs - 1);
655
                    thisObj->deleteProperty(exec, k + nrArgs - 1);
656
            }
656
            }
657
        }
657
        }
658
    }
658
    }
659
    for (unsigned k = 0; k < nrArgs; ++k)
659
    for (unsigned k = 0; k < nrArgs; ++k)
660
        thisObj->put(exec, k, exec->argument(k));
660
        thisObj->putVirtual(exec, k, exec->argument(k));
661
    JSValue result = jsNumber(length + nrArgs);
661
    JSValue result = jsNumber(length + nrArgs);
662
    putProperty(exec, thisObj, exec->propertyNames().length, result);
662
    putProperty(exec, thisObj, exec->propertyNames().length, result);
663
    return JSValue::encode(result);
663
    return JSValue::encode(result);
Lines 696-702 EncodedJSValue JSC_HOST_CALL arrayProtoFuncFilter(ExecState* exec) a/Source/JavaScriptCore/runtime/ArrayPrototype.cpp_sec12
696
            
696
            
697
            JSValue result = cachedCall.call();
697
            JSValue result = cachedCall.call();
698
            if (result.toBoolean(exec))
698
            if (result.toBoolean(exec))
699
                resultArray->put(exec, filterIndex++, v);
699
                resultArray->putVirtual(exec, filterIndex++, v);
700
        }
700
        }
701
        if (k == length)
701
        if (k == length)
702
            return JSValue::encode(resultArray);
702
            return JSValue::encode(resultArray);
Lines 717-723 EncodedJSValue JSC_HOST_CALL arrayProtoFuncFilter(ExecState* exec) a/Source/JavaScriptCore/runtime/ArrayPrototype.cpp_sec13
717
717
718
        JSValue result = call(exec, function, callType, callData, applyThis, eachArguments);
718
        JSValue result = call(exec, function, callType, callData, applyThis, eachArguments);
719
        if (result.toBoolean(exec))
719
        if (result.toBoolean(exec))
720
            resultArray->put(exec, filterIndex++, v);
720
            resultArray->putVirtual(exec, filterIndex++, v);
721
    }
721
    }
722
    return JSValue::encode(resultArray);
722
    return JSValue::encode(resultArray);
723
}
723
}
Lines 752-758 EncodedJSValue JSC_HOST_CALL arrayProtoFuncMap(ExecState* exec) a/Source/JavaScriptCore/runtime/ArrayPrototype.cpp_sec14
752
            cachedCall.setArgument(1, jsNumber(k));
752
            cachedCall.setArgument(1, jsNumber(k));
753
            cachedCall.setArgument(2, thisObj);
753
            cachedCall.setArgument(2, thisObj);
754
754
755
            resultArray->JSArray::put(exec, k, cachedCall.call());
755
            JSArray::put(resultArray, exec, k, cachedCall.call());
756
        }
756
        }
757
    }
757
    }
758
    for (; k < length && !exec->hadException(); ++k) {
758
    for (; k < length && !exec->hadException(); ++k) {
Lines 773-779 EncodedJSValue JSC_HOST_CALL arrayProtoFuncMap(ExecState* exec) a/Source/JavaScriptCore/runtime/ArrayPrototype.cpp_sec15
773
            return JSValue::encode(jsUndefined());
773
            return JSValue::encode(jsUndefined());
774
774
775
        JSValue result = call(exec, function, callType, callData, applyThis, eachArguments);
775
        JSValue result = call(exec, function, callType, callData, applyThis, eachArguments);
776
        resultArray->put(exec, k, result);
776
        resultArray->putVirtual(exec, k, result);
777
    }
777
    }
778
778
779
    return JSValue::encode(resultArray);
779
    return JSValue::encode(resultArray);
- a/Source/JavaScriptCore/runtime/JSActivation.cpp -1 / +1 lines
Lines 169-175 bool JSActivation::getOwnPropertySlot(JSCell* cell, ExecState* exec, const Ident a/Source/JavaScriptCore/runtime/JSActivation.cpp_sec1
169
    return false;
169
    return false;
170
}
170
}
171
171
172
void JSActivation::put(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
172
void JSActivation::putVirtual(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
173
{
173
{
174
    put(this, exec, propertyName, value, slot);
174
    put(this, exec, propertyName, value, slot);
175
}
175
}
- a/Source/JavaScriptCore/runtime/JSActivation.h -1 / +1 lines
Lines 65-71 namespace JSC { a/Source/JavaScriptCore/runtime/JSActivation.h_sec1
65
        static bool getOwnPropertySlot(JSCell*, ExecState*, const Identifier&, PropertySlot&);
65
        static bool getOwnPropertySlot(JSCell*, ExecState*, const Identifier&, PropertySlot&);
66
        virtual void getOwnPropertyNames(ExecState*, PropertyNameArray&, EnumerationMode);
66
        virtual void getOwnPropertyNames(ExecState*, PropertyNameArray&, EnumerationMode);
67
67
68
        virtual void put(ExecState*, const Identifier&, JSValue, PutPropertySlot&);
68
        virtual void putVirtual(ExecState*, const Identifier&, JSValue, PutPropertySlot&);
69
        static void put(JSCell*, ExecState*, const Identifier&, JSValue, PutPropertySlot&);
69
        static void put(JSCell*, ExecState*, const Identifier&, JSValue, PutPropertySlot&);
70
70
71
        virtual void putWithAttributes(ExecState*, const Identifier&, JSValue, unsigned attributes);
71
        virtual void putWithAttributes(ExecState*, const Identifier&, JSValue, unsigned attributes);
- a/Source/JavaScriptCore/runtime/JSArray.cpp -6 / +6 lines
Lines 334-340 bool JSArray::getOwnPropertyDescriptor(ExecState* exec, const Identifier& proper a/Source/JavaScriptCore/runtime/JSArray.cpp_sec1
334
    return JSObject::getOwnPropertyDescriptor(exec, propertyName, descriptor);
334
    return JSObject::getOwnPropertyDescriptor(exec, propertyName, descriptor);
335
}
335
}
336
336
337
void JSArray::put(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
337
void JSArray::putVirtual(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
338
{
338
{
339
    put(this, exec, propertyName, value, slot);
339
    put(this, exec, propertyName, value, slot);
340
}
340
}
Lines 363-369 void JSArray::put(JSCell* cell, ExecState* exec, const Identifier& propertyName, a/Source/JavaScriptCore/runtime/JSArray.cpp_sec2
363
    JSObject::put(thisObject, exec, propertyName, value, slot);
363
    JSObject::put(thisObject, exec, propertyName, value, slot);
364
}
364
}
365
365
366
void JSArray::put(ExecState* exec, unsigned i, JSValue value)
366
void JSArray::putVirtual(ExecState* exec, unsigned i, JSValue value)
367
{
367
{
368
    put(this, exec, i, value);
368
    put(this, exec, i, value);
369
}
369
}
Lines 406-412 NEVER_INLINE void JSArray::putSlowCase(ExecState* exec, unsigned i, JSValue valu a/Source/JavaScriptCore/runtime/JSArray.cpp_sec3
406
    if (i >= MIN_SPARSE_ARRAY_INDEX) {
406
    if (i >= MIN_SPARSE_ARRAY_INDEX) {
407
        if (i > MAX_ARRAY_INDEX) {
407
        if (i > MAX_ARRAY_INDEX) {
408
            PutPropertySlot slot;
408
            PutPropertySlot slot;
409
            put(exec, Identifier::from(exec, i), value, slot);
409
            putVirtual(exec, Identifier::from(exec, i), value, slot);
410
            return;
410
            return;
411
        }
411
        }
412
412
Lines 781-787 void JSArray::push(ExecState* exec, JSValue value) a/Source/JavaScriptCore/runtime/JSArray.cpp_sec4
781
    ArrayStorage* storage = m_storage;
781
    ArrayStorage* storage = m_storage;
782
782
783
    if (UNLIKELY(storage->m_length == 0xFFFFFFFFu)) {
783
    if (UNLIKELY(storage->m_length == 0xFFFFFFFFu)) {
784
        put(exec, storage->m_length, value);
784
        putVirtual(exec, storage->m_length, value);
785
        throwError(exec, createRangeError(exec, "Invalid array length"));
785
        throwError(exec, createRangeError(exec, "Invalid array length"));
786
        return;
786
        return;
787
    }
787
    }
Lines 835-841 void JSArray::shiftCount(ExecState* exec, int count) a/Source/JavaScriptCore/runtime/JSArray.cpp_sec5
835
                PropertySlot slot(this);
835
                PropertySlot slot(this);
836
                JSValue p = prototype();
836
                JSValue p = prototype();
837
                if ((!p.isNull()) && (asObject(p)->getPropertySlot(exec, i, slot)))
837
                if ((!p.isNull()) && (asObject(p)->getPropertySlot(exec, i, slot)))
838
                    put(exec, i, slot.getValue(exec, i));
838
                    putVirtual(exec, i, slot.getValue(exec, i));
839
            }
839
            }
840
        }
840
        }
841
841
Lines 884-890 void JSArray::unshiftCount(ExecState* exec, int count) a/Source/JavaScriptCore/runtime/JSArray.cpp_sec6
884
                PropertySlot slot(this);
884
                PropertySlot slot(this);
885
                JSValue p = prototype();
885
                JSValue p = prototype();
886
                if ((!p.isNull()) && (asObject(p)->getPropertySlot(exec, i, slot)))
886
                if ((!p.isNull()) && (asObject(p)->getPropertySlot(exec, i, slot)))
887
                    put(exec, i, slot.getValue(exec, i));
887
                    putVirtual(exec, i, slot.getValue(exec, i));
888
            }
888
            }
889
        }
889
        }
890
    }
890
    }
- a/Source/JavaScriptCore/runtime/JSArray.h -2 / +2 lines
Lines 99-105 namespace JSC { a/Source/JavaScriptCore/runtime/JSArray.h_sec1
99
        virtual bool getOwnPropertySlot(ExecState*, unsigned propertyName, PropertySlot&);
99
        virtual bool getOwnPropertySlot(ExecState*, unsigned propertyName, PropertySlot&);
100
        static bool getOwnPropertySlot(JSCell*, ExecState*, unsigned propertyName, PropertySlot&);
100
        static bool getOwnPropertySlot(JSCell*, ExecState*, unsigned propertyName, PropertySlot&);
101
        virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
101
        virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
102
        virtual void put(ExecState*, unsigned propertyName, JSValue); // FIXME: Make protected and add setItem.
102
        virtual void putVirtual(ExecState*, unsigned propertyName, JSValue); // FIXME: Make protected and add setItem.
103
        static void put(JSCell*, ExecState*, unsigned propertyName, JSValue);
103
        static void put(JSCell*, ExecState*, unsigned propertyName, JSValue);
104
104
105
        static JS_EXPORTDATA const ClassInfo s_info;
105
        static JS_EXPORTDATA const ClassInfo s_info;
Lines 171-177 namespace JSC { a/Source/JavaScriptCore/runtime/JSArray.h_sec2
171
171
172
    protected:
172
    protected:
173
        static const unsigned StructureFlags = OverridesGetOwnPropertySlot | OverridesVisitChildren | OverridesGetPropertyNames | JSObject::StructureFlags;
173
        static const unsigned StructureFlags = OverridesGetOwnPropertySlot | OverridesVisitChildren | OverridesGetPropertyNames | JSObject::StructureFlags;
174
        virtual void put(ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
174
        virtual void putVirtual(ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
175
        static void put(JSCell*, ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
175
        static void put(JSCell*, ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
176
176
177
        virtual bool deleteProperty(ExecState*, const Identifier& propertyName);
177
        virtual bool deleteProperty(ExecState*, const Identifier& propertyName);
- a/Source/JavaScriptCore/runtime/JSByteArray.cpp -2 / +2 lines
Lines 97-103 bool JSByteArray::getOwnPropertySlot(JSCell* cell, ExecState* exec, unsigned pro a/Source/JavaScriptCore/runtime/JSByteArray.cpp_sec1
97
    return JSObject::getOwnPropertySlot(thisObject, exec, Identifier::from(exec, propertyName), slot);
97
    return JSObject::getOwnPropertySlot(thisObject, exec, Identifier::from(exec, propertyName), slot);
98
}
98
}
99
99
100
void JSByteArray::put(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
100
void JSByteArray::putVirtual(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
101
{
101
{
102
    put(this, exec, propertyName, value, slot);
102
    put(this, exec, propertyName, value, slot);
103
}
103
}
Lines 114-120 void JSByteArray::put(JSCell* cell, ExecState* exec, const Identifier& propertyN a/Source/JavaScriptCore/runtime/JSByteArray.cpp_sec2
114
    JSObject::put(thisObject, exec, propertyName, value, slot);
114
    JSObject::put(thisObject, exec, propertyName, value, slot);
115
}
115
}
116
116
117
void JSByteArray::put(ExecState* exec, unsigned propertyName, JSValue value)
117
void JSByteArray::putVirtual(ExecState* exec, unsigned propertyName, JSValue value)
118
{
118
{
119
    put(this, exec, propertyName, value);
119
    put(this, exec, propertyName, value);
120
}
120
}
- a/Source/JavaScriptCore/runtime/JSByteArray.h -2 / +2 lines
Lines 93-101 namespace JSC { a/Source/JavaScriptCore/runtime/JSByteArray.h_sec1
93
        virtual bool getOwnPropertySlot(JSC::ExecState*, unsigned propertyName, JSC::PropertySlot&);
93
        virtual bool getOwnPropertySlot(JSC::ExecState*, unsigned propertyName, JSC::PropertySlot&);
94
        static bool getOwnPropertySlot(JSC::JSCell*, JSC::ExecState*, unsigned propertyName, JSC::PropertySlot&);
94
        static bool getOwnPropertySlot(JSC::JSCell*, JSC::ExecState*, unsigned propertyName, JSC::PropertySlot&);
95
        virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
95
        virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
96
        virtual void put(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::JSValue, JSC::PutPropertySlot&);
96
        virtual void putVirtual(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::JSValue, JSC::PutPropertySlot&);
97
        static void put(JSC::JSCell*, JSC::ExecState*, const JSC::Identifier& propertyName, JSC::JSValue, JSC::PutPropertySlot&);
97
        static void put(JSC::JSCell*, JSC::ExecState*, const JSC::Identifier& propertyName, JSC::JSValue, JSC::PutPropertySlot&);
98
        virtual void put(JSC::ExecState*, unsigned propertyName, JSC::JSValue);
98
        virtual void putVirtual(JSC::ExecState*, unsigned propertyName, JSC::JSValue);
99
        static void put(JSC::JSCell*, JSC::ExecState*, unsigned propertyName, JSC::JSValue);
99
        static void put(JSC::JSCell*, JSC::ExecState*, unsigned propertyName, JSC::JSValue);
100
100
101
        virtual void getOwnPropertyNames(JSC::ExecState*, JSC::PropertyNameArray&, EnumerationMode mode = ExcludeDontEnumProperties);
101
        virtual void getOwnPropertyNames(JSC::ExecState*, JSC::PropertyNameArray&, EnumerationMode mode = ExcludeDontEnumProperties);
- a/Source/JavaScriptCore/runtime/JSCell.cpp -4 / +4 lines
Lines 103-126 bool JSCell::getOwnPropertySlot(JSCell* cell, ExecState* exec, unsigned identifi a/Source/JavaScriptCore/runtime/JSCell.cpp_sec1
103
    return true;
103
    return true;
104
}
104
}
105
105
106
void JSCell::put(ExecState* exec, const Identifier& identifier, JSValue value, PutPropertySlot& slot)
106
void JSCell::putVirtual(ExecState* exec, const Identifier& identifier, JSValue value, PutPropertySlot& slot)
107
{
107
{
108
    put(this, exec, identifier, value, slot);
108
    put(this, exec, identifier, value, slot);
109
}
109
}
110
110
111
void JSCell::put(JSCell* cell, ExecState* exec, const Identifier& identifier, JSValue value, PutPropertySlot& slot)
111
void JSCell::put(JSCell* cell, ExecState* exec, const Identifier& identifier, JSValue value, PutPropertySlot& slot)
112
{
112
{
113
    cell->toObject(exec, exec->lexicalGlobalObject())->put(exec, identifier, value, slot);
113
    cell->toObject(exec, exec->lexicalGlobalObject())->putVirtual(exec, identifier, value, slot);
114
}
114
}
115
115
116
void JSCell::put(ExecState* exec, unsigned identifier, JSValue value)
116
void JSCell::putVirtual(ExecState* exec, unsigned identifier, JSValue value)
117
{
117
{
118
    put(this, exec, identifier, value);
118
    put(this, exec, identifier, value);
119
}
119
}
120
120
121
void JSCell::put(JSCell* cell, ExecState* exec, unsigned identifier, JSValue value)
121
void JSCell::put(JSCell* cell, ExecState* exec, unsigned identifier, JSValue value)
122
{
122
{
123
    cell->toObject(exec, exec->lexicalGlobalObject())->put(exec, identifier, value);
123
    cell->toObject(exec, exec->lexicalGlobalObject())->putVirtual(exec, identifier, value);
124
}
124
}
125
125
126
bool JSCell::deleteProperty(ExecState* exec, const Identifier& identifier)
126
bool JSCell::deleteProperty(ExecState* exec, const Identifier& identifier)
- a/Source/JavaScriptCore/runtime/JSCell.h -2 / +2 lines
Lines 90-98 namespace JSC { a/Source/JavaScriptCore/runtime/JSCell.h_sec1
90
        // Object operations, with the toObject operation included.
90
        // Object operations, with the toObject operation included.
91
        const ClassInfo* classInfo() const;
91
        const ClassInfo* classInfo() const;
92
        const MethodTable* methodTable() const;
92
        const MethodTable* methodTable() const;
93
        virtual void put(ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
93
        virtual void putVirtual(ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
94
        static void put(JSCell*, ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
94
        static void put(JSCell*, ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
95
        virtual void put(ExecState*, unsigned propertyName, JSValue);
95
        virtual void putVirtual(ExecState*, unsigned propertyName, JSValue);
96
        static void put(JSCell*, ExecState*, unsigned propertyName, JSValue);
96
        static void put(JSCell*, ExecState*, unsigned propertyName, JSValue);
97
        
97
        
98
        virtual bool deleteProperty(ExecState*, const Identifier& propertyName);
98
        virtual bool deleteProperty(ExecState*, const Identifier& propertyName);
- a/Source/JavaScriptCore/runtime/JSFunction.cpp -1 / +1 lines
Lines 300-306 void JSFunction::getOwnPropertyNames(ExecState* exec, PropertyNameArray& propert a/Source/JavaScriptCore/runtime/JSFunction.cpp_sec1
300
    Base::getOwnPropertyNames(exec, propertyNames, mode);
300
    Base::getOwnPropertyNames(exec, propertyNames, mode);
301
}
301
}
302
302
303
void JSFunction::put(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
303
void JSFunction::putVirtual(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
304
{
304
{
305
    put(this, exec, propertyName, value, slot);
305
    put(this, exec, propertyName, value, slot);
306
}
306
}
- a/Source/JavaScriptCore/runtime/JSFunction.h -1 / +1 lines
Lines 143-149 namespace JSC { a/Source/JavaScriptCore/runtime/JSFunction.h_sec1
143
143
144
        bool isHostFunctionNonInline() const;
144
        bool isHostFunctionNonInline() const;
145
145
146
        virtual void put(ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
146
        virtual void putVirtual(ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
147
        static void put(JSCell*, ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
147
        static void put(JSCell*, ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
148
148
149
        virtual bool deleteProperty(ExecState*, const Identifier& propertyName);
149
        virtual bool deleteProperty(ExecState*, const Identifier& propertyName);
- a/Source/JavaScriptCore/runtime/JSGlobalObject.cpp -2 / +2 lines
Lines 135-141 void JSGlobalObject::init(JSObject* thisValue) a/Source/JavaScriptCore/runtime/JSGlobalObject.cpp_sec1
135
    reset(prototype());
135
    reset(prototype());
136
}
136
}
137
137
138
void JSGlobalObject::put(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
138
void JSGlobalObject::putVirtual(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
139
{
139
{
140
    put(this, exec, propertyName, value, slot);
140
    put(this, exec, propertyName, value, slot);
141
}
141
}
Lines 159-165 void JSGlobalObject::putWithAttributes(ExecState* exec, const Identifier& proper a/Source/JavaScriptCore/runtime/JSGlobalObject.cpp_sec2
159
159
160
    JSValue valueBefore = getDirect(exec->globalData(), propertyName);
160
    JSValue valueBefore = getDirect(exec->globalData(), propertyName);
161
    PutPropertySlot slot;
161
    PutPropertySlot slot;
162
    JSVariableObject::put(exec, propertyName, value, slot);
162
    JSVariableObject::put(this, exec, propertyName, value, slot);
163
    if (!valueBefore) {
163
    if (!valueBefore) {
164
        JSValue valueAfter = getDirect(exec->globalData(), propertyName);
164
        JSValue valueAfter = getDirect(exec->globalData(), propertyName);
165
        if (valueAfter)
165
        if (valueAfter)
- a/Source/JavaScriptCore/runtime/JSGlobalObject.h -1 / +1 lines
Lines 184-190 namespace JSC { a/Source/JavaScriptCore/runtime/JSGlobalObject.h_sec1
184
        static bool getOwnPropertySlot(JSCell*, ExecState*, const Identifier&, PropertySlot&);
184
        static bool getOwnPropertySlot(JSCell*, ExecState*, const Identifier&, PropertySlot&);
185
        virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
185
        virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
186
        virtual bool hasOwnPropertyForWrite(ExecState*, const Identifier&);
186
        virtual bool hasOwnPropertyForWrite(ExecState*, const Identifier&);
187
        virtual void put(ExecState*, const Identifier&, JSValue, PutPropertySlot&);
187
        virtual void putVirtual(ExecState*, const Identifier&, JSValue, PutPropertySlot&);
188
        static void put(JSCell*, ExecState*, const Identifier&, JSValue, PutPropertySlot&);
188
        static void put(JSCell*, ExecState*, const Identifier&, JSValue, PutPropertySlot&);
189
189
190
        virtual void putWithAttributes(ExecState*, const Identifier& propertyName, JSValue value, unsigned attributes);
190
        virtual void putWithAttributes(ExecState*, const Identifier& propertyName, JSValue value, unsigned attributes);
- a/Source/JavaScriptCore/runtime/JSNotAnObject.cpp -2 / +2 lines
Lines 86-92 bool JSNotAnObject::getOwnPropertyDescriptor(ExecState* exec, const Identifier&, a/Source/JavaScriptCore/runtime/JSNotAnObject.cpp_sec1
86
    return false;
86
    return false;
87
}
87
}
88
88
89
void JSNotAnObject::put(ExecState* exec, const Identifier& identifier, JSValue value, PutPropertySlot& slot)
89
void JSNotAnObject::putVirtual(ExecState* exec, const Identifier& identifier, JSValue value, PutPropertySlot& slot)
90
{
90
{
91
    put(this, exec, identifier, value, slot);
91
    put(this, exec, identifier, value, slot);
92
}
92
}
Lines 96-102 void JSNotAnObject::put(JSCell*, ExecState* exec, const Identifier& , JSValue, P a/Source/JavaScriptCore/runtime/JSNotAnObject.cpp_sec2
96
    ASSERT_UNUSED(exec, exec->hadException());
96
    ASSERT_UNUSED(exec, exec->hadException());
97
}
97
}
98
98
99
void JSNotAnObject::put(ExecState* exec, unsigned i, JSValue value)
99
void JSNotAnObject::putVirtual(ExecState* exec, unsigned i, JSValue value)
100
{
100
{
101
    put(this, exec, i, value);
101
    put(this, exec, i, value);
102
}
102
}
- a/Source/JavaScriptCore/runtime/JSNotAnObject.h -2 / +2 lines
Lines 76-85 namespace JSC { a/Source/JavaScriptCore/runtime/JSNotAnObject.h_sec1
76
        static bool getOwnPropertySlot(JSCell*, ExecState*, unsigned propertyName, PropertySlot&);
76
        static bool getOwnPropertySlot(JSCell*, ExecState*, unsigned propertyName, PropertySlot&);
77
        virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
77
        virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
78
78
79
        virtual void put(ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
79
        virtual void putVirtual(ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
80
        static void put(JSCell*, ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
80
        static void put(JSCell*, ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
81
81
82
        virtual void put(ExecState*, unsigned propertyName, JSValue);
82
        virtual void putVirtual(ExecState*, unsigned propertyName, JSValue);
83
        static void put(JSCell*, ExecState*, unsigned propertyName, JSValue);
83
        static void put(JSCell*, ExecState*, unsigned propertyName, JSValue);
84
84
85
        virtual bool deleteProperty(ExecState*, const Identifier& propertyName);
85
        virtual bool deleteProperty(ExecState*, const Identifier& propertyName);
- a/Source/JavaScriptCore/runtime/JSONObject.cpp -3 / +3 lines
Lines 715-721 NEVER_INLINE JSValue Walker::walk(JSValue unfiltered) a/Source/JavaScriptCore/runtime/JSONObject.cpp_sec1
715
                    if (isJSArray(&m_exec->globalData(), array) && array->canSetIndex(indexStack.last()))
715
                    if (isJSArray(&m_exec->globalData(), array) && array->canSetIndex(indexStack.last()))
716
                        array->setIndex(m_exec->globalData(), indexStack.last(), filteredValue);
716
                        array->setIndex(m_exec->globalData(), indexStack.last(), filteredValue);
717
                    else
717
                    else
718
                        array->put(m_exec, indexStack.last(), filteredValue);
718
                        array->putVirtual(m_exec, indexStack.last(), filteredValue);
719
                }
719
                }
720
                if (m_exec->hadException())
720
                if (m_exec->hadException())
721
                    return jsNull();
721
                    return jsNull();
Lines 779-785 NEVER_INLINE JSValue Walker::walk(JSValue unfiltered) a/Source/JavaScriptCore/runtime/JSONObject.cpp_sec2
779
                if (filteredValue.isUndefined())
779
                if (filteredValue.isUndefined())
780
                    object->deleteProperty(m_exec, prop);
780
                    object->deleteProperty(m_exec, prop);
781
                else
781
                else
782
                    object->put(m_exec, prop, filteredValue, slot);
782
                    object->putVirtual(m_exec, prop, filteredValue, slot);
783
                if (m_exec->hadException())
783
                if (m_exec->hadException())
784
                    return jsNull();
784
                    return jsNull();
785
                indexStack.last()++;
785
                indexStack.last()++;
Lines 810-816 NEVER_INLINE JSValue Walker::walk(JSValue unfiltered) a/Source/JavaScriptCore/runtime/JSONObject.cpp_sec3
810
    }
810
    }
811
    JSObject* finalHolder = constructEmptyObject(m_exec);
811
    JSObject* finalHolder = constructEmptyObject(m_exec);
812
    PutPropertySlot slot;
812
    PutPropertySlot slot;
813
    finalHolder->put(m_exec, m_exec->globalData().propertyNames->emptyIdentifier, outValue, slot);
813
    finalHolder->putVirtual(m_exec, m_exec->globalData().propertyNames->emptyIdentifier, outValue, slot);
814
    return callReviver(finalHolder, jsEmptyString(m_exec), outValue);
814
    return callReviver(finalHolder, jsEmptyString(m_exec), outValue);
815
}
815
}
816
816
- a/Source/JavaScriptCore/runtime/JSObject.cpp -4 / +4 lines
Lines 108-114 static void throwSetterError(ExecState* exec) a/Source/JavaScriptCore/runtime/JSObject.cpp_sec1
108
    throwError(exec, createTypeError(exec, "setting a property that has only a getter"));
108
    throwError(exec, createTypeError(exec, "setting a property that has only a getter"));
109
}
109
}
110
110
111
void JSObject::put(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
111
void JSObject::putVirtual(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
112
{
112
{
113
    put(this, exec, propertyName, value, slot);
113
    put(this, exec, propertyName, value, slot);
114
}
114
}
Lines 190-196 void JSObject::put(JSCell* cell, ExecState* exec, const Identifier& propertyName a/Source/JavaScriptCore/runtime/JSObject.cpp_sec2
190
    return;
190
    return;
191
}
191
}
192
192
193
void JSObject::put(ExecState* exec, unsigned propertyName, JSValue value)
193
void JSObject::putVirtual(ExecState* exec, unsigned propertyName, JSValue value)
194
{
194
{
195
    put(this, exec, propertyName, value);
195
    put(this, exec, propertyName, value);
196
}
196
}
Lines 198-204 void JSObject::put(ExecState* exec, unsigned propertyName, JSValue value) a/Source/JavaScriptCore/runtime/JSObject.cpp_sec3
198
void JSObject::put(JSCell* cell, ExecState* exec, unsigned propertyName, JSValue value)
198
void JSObject::put(JSCell* cell, ExecState* exec, unsigned propertyName, JSValue value)
199
{
199
{
200
    PutPropertySlot slot;
200
    PutPropertySlot slot;
201
    static_cast<JSObject*>(cell)->put(exec, Identifier::from(exec, propertyName), value, slot);
201
    static_cast<JSObject*>(cell)->putVirtual(exec, Identifier::from(exec, propertyName), value, slot);
202
}
202
}
203
203
204
void JSObject::putWithAttributes(JSGlobalData* globalData, const Identifier& propertyName, JSValue value, unsigned attributes, bool checkReadOnly, PutPropertySlot& slot)
204
void JSObject::putWithAttributes(JSGlobalData* globalData, const Identifier& propertyName, JSValue value, unsigned attributes, bool checkReadOnly, PutPropertySlot& slot)
Lines 763-769 bool JSObject::defineOwnProperty(ExecState* exec, const Identifier& propertyName a/Source/JavaScriptCore/runtime/JSObject.cpp_sec4
763
            if (!descriptor.value())
763
            if (!descriptor.value())
764
                return true;
764
                return true;
765
            PutPropertySlot slot;
765
            PutPropertySlot slot;
766
            put(exec, propertyName, descriptor.value(), slot);
766
            putVirtual(exec, propertyName, descriptor.value(), slot);
767
            if (exec->hadException())
767
            if (exec->hadException())
768
                return false;
768
                return false;
769
            return true;
769
            return true;
- a/Source/JavaScriptCore/runtime/JSObject.h -6 / +6 lines
Lines 107-115 namespace JSC { a/Source/JavaScriptCore/runtime/JSObject.h_sec1
107
        static bool getOwnPropertySlot(JSCell*, ExecState*, unsigned propertyName, PropertySlot&);
107
        static bool getOwnPropertySlot(JSCell*, ExecState*, unsigned propertyName, PropertySlot&);
108
        virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
108
        virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
109
109
110
        virtual void put(ExecState*, const Identifier& propertyName, JSValue value, PutPropertySlot&);
110
        virtual void putVirtual(ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
111
        static void put(JSCell*, ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
111
        static void put(JSCell*, ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
112
        virtual void put(ExecState*, unsigned propertyName, JSValue value);
112
        virtual void putVirtual(ExecState*, unsigned propertyName, JSValue);
113
        static void put(JSCell*, ExecState*, unsigned propertyName, JSValue);
113
        static void put(JSCell*, ExecState*, unsigned propertyName, JSValue);
114
114
115
        virtual void putWithAttributes(JSGlobalData*, const Identifier& propertyName, JSValue value, unsigned attributes, bool checkReadOnly, PutPropertySlot& slot);
115
        virtual void putWithAttributes(JSGlobalData*, const Identifier& propertyName, JSValue value, unsigned attributes, bool checkReadOnly, PutPropertySlot& slot);
Lines 809-818 inline JSValue JSValue::get(ExecState* exec, unsigned propertyName, PropertySlot a/Source/JavaScriptCore/runtime/JSObject.h_sec2
809
inline void JSValue::put(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
809
inline void JSValue::put(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
810
{
810
{
811
    if (UNLIKELY(!isCell())) {
811
    if (UNLIKELY(!isCell())) {
812
        synthesizeObject(exec)->put(exec, propertyName, value, slot);
812
        synthesizeObject(exec)->putVirtual(exec, propertyName, value, slot);
813
        return;
813
        return;
814
    }
814
    }
815
    asCell()->put(exec, propertyName, value, slot);
815
    asCell()->putVirtual(exec, propertyName, value, slot);
816
}
816
}
817
817
818
inline void JSValue::putDirect(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
818
inline void JSValue::putDirect(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
Lines 825-834 inline void JSValue::putDirect(ExecState* exec, const Identifier& propertyName, a/Source/JavaScriptCore/runtime/JSObject.h_sec3
825
inline void JSValue::put(ExecState* exec, unsigned propertyName, JSValue value)
825
inline void JSValue::put(ExecState* exec, unsigned propertyName, JSValue value)
826
{
826
{
827
    if (UNLIKELY(!isCell())) {
827
    if (UNLIKELY(!isCell())) {
828
        synthesizeObject(exec)->put(exec, propertyName, value);
828
        synthesizeObject(exec)->putVirtual(exec, propertyName, value);
829
        return;
829
        return;
830
    }
830
    }
831
    asCell()->put(exec, propertyName, value);
831
    asCell()->putVirtual(exec, propertyName, value);
832
}
832
}
833
833
834
ALWAYS_INLINE void JSObject::visitChildrenDirect(SlotVisitor& visitor)
834
ALWAYS_INLINE void JSObject::visitChildrenDirect(SlotVisitor& visitor)
- a/Source/JavaScriptCore/runtime/JSStaticScopeObject.cpp -1 / +1 lines
Lines 49-55 JSObject* JSStaticScopeObject::toThisObject(ExecState* exec) const a/Source/JavaScriptCore/runtime/JSStaticScopeObject.cpp_sec1
49
    return exec->globalThisValue();
49
    return exec->globalThisValue();
50
}
50
}
51
51
52
void JSStaticScopeObject::put(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
52
void JSStaticScopeObject::putVirtual(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
53
{
53
{
54
    put(this, exec, propertyName, value, slot);
54
    put(this, exec, propertyName, value, slot);
55
}
55
}
- a/Source/JavaScriptCore/runtime/JSStaticScopeObject.h -1 / +1 lines
Lines 46-52 namespace JSC{ a/Source/JavaScriptCore/runtime/JSStaticScopeObject.h_sec1
46
        virtual JSObject* toThisObject(ExecState*) const;
46
        virtual JSObject* toThisObject(ExecState*) const;
47
        virtual bool getOwnPropertySlot(ExecState*, const Identifier&, PropertySlot&);
47
        virtual bool getOwnPropertySlot(ExecState*, const Identifier&, PropertySlot&);
48
        static bool getOwnPropertySlot(JSCell*, ExecState*, const Identifier&, PropertySlot&);
48
        static bool getOwnPropertySlot(JSCell*, ExecState*, const Identifier&, PropertySlot&);
49
        virtual void put(ExecState*, const Identifier&, JSValue, PutPropertySlot&);
49
        virtual void putVirtual(ExecState*, const Identifier&, JSValue, PutPropertySlot&);
50
        static void put(JSCell*, ExecState*, const Identifier&, JSValue, PutPropertySlot&);
50
        static void put(JSCell*, ExecState*, const Identifier&, JSValue, PutPropertySlot&);
51
51
52
        void putWithAttributes(ExecState*, const Identifier&, JSValue, unsigned attributes);
52
        void putWithAttributes(ExecState*, const Identifier&, JSValue, unsigned attributes);
- a/Source/JavaScriptCore/runtime/Lookup.h -1 / +1 lines
Lines 352-358 namespace JSC { a/Source/JavaScriptCore/runtime/Lookup.h_sec1
352
    inline void lookupPut(ExecState* exec, const Identifier& propertyName, JSValue value, const HashTable* table, ThisImp* thisObj, PutPropertySlot& slot)
352
    inline void lookupPut(ExecState* exec, const Identifier& propertyName, JSValue value, const HashTable* table, ThisImp* thisObj, PutPropertySlot& slot)
353
    {
353
    {
354
        if (!lookupPut<ThisImp>(exec, propertyName, value, table, thisObj))
354
        if (!lookupPut<ThisImp>(exec, propertyName, value, table, thisObj))
355
            thisObj->ParentImp::put(exec, propertyName, value, slot); // not found: forward to parent
355
            ParentImp::put(thisObj, exec, propertyName, value, slot); // not found: forward to parent
356
    }
356
    }
357
357
358
} // namespace JSC
358
} // namespace JSC
- a/Source/JavaScriptCore/runtime/ObjectPrototype.cpp -1 / +1 lines
Lines 75-81 void ObjectPrototype::finishCreation(JSGlobalData& globalData, JSGlobalObject*) a/Source/JavaScriptCore/runtime/ObjectPrototype.cpp_sec1
75
    ASSERT(inherits(&s_info));
75
    ASSERT(inherits(&s_info));
76
}
76
}
77
77
78
void ObjectPrototype::put(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
78
void ObjectPrototype::putVirtual(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
79
{
79
{
80
    put(this, exec, propertyName, value, slot);
80
    put(this, exec, propertyName, value, slot);
81
}
81
}
- a/Source/JavaScriptCore/runtime/ObjectPrototype.h -1 / +1 lines
Lines 50-56 namespace JSC { a/Source/JavaScriptCore/runtime/ObjectPrototype.h_sec1
50
50
51
    private:
51
    private:
52
        ObjectPrototype(ExecState*, Structure*);
52
        ObjectPrototype(ExecState*, Structure*);
53
        virtual void put(ExecState*, const Identifier&, JSValue, PutPropertySlot&);
53
        virtual void putVirtual(ExecState*, const Identifier&, JSValue, PutPropertySlot&);
54
        static void put(JSCell*, ExecState*, const Identifier&, JSValue, PutPropertySlot&);
54
        static void put(JSCell*, ExecState*, const Identifier&, JSValue, PutPropertySlot&);
55
55
56
        virtual bool getOwnPropertySlot(ExecState*, const Identifier&, PropertySlot&);
56
        virtual bool getOwnPropertySlot(ExecState*, const Identifier&, PropertySlot&);
- a/Source/JavaScriptCore/runtime/RegExpConstructor.cpp -5 / +5 lines
Lines 148-161 void RegExpMatchesArray::fillArrayInstance(ExecState* exec) a/Source/JavaScriptCore/runtime/RegExpConstructor.cpp_sec1
148
    for (unsigned i = 0; i <= lastNumSubpatterns; ++i) {
148
    for (unsigned i = 0; i <= lastNumSubpatterns; ++i) {
149
        int start = d->lastOvector()[2 * i];
149
        int start = d->lastOvector()[2 * i];
150
        if (start >= 0)
150
        if (start >= 0)
151
            JSArray::put(exec, i, jsSubstring(exec, d->lastInput, start, d->lastOvector()[2 * i + 1] - start));
151
            JSArray::put(this, exec, i, jsSubstring(exec, d->lastInput, start, d->lastOvector()[2 * i + 1] - start));
152
        else
152
        else
153
            JSArray::put(exec, i, jsUndefined());
153
            JSArray::put(this, exec, i, jsUndefined());
154
    }
154
    }
155
155
156
    PutPropertySlot slot;
156
    PutPropertySlot slot;
157
    JSArray::put(exec, exec->propertyNames().index, jsNumber(d->lastOvector()[0]), slot);
157
    JSArray::put(this, exec, exec->propertyNames().index, jsNumber(d->lastOvector()[0]), slot);
158
    JSArray::put(exec, exec->propertyNames().input, jsString(exec, d->input), slot);
158
    JSArray::put(this, exec, exec->propertyNames().input, jsString(exec, d->input), slot);
159
159
160
    delete d;
160
    delete d;
161
    setSubclassData(0);
161
    setSubclassData(0);
Lines 292-298 JSValue regExpConstructorRightContext(ExecState* exec, JSValue slotBase, const I a/Source/JavaScriptCore/runtime/RegExpConstructor.cpp_sec2
292
    return asRegExpConstructor(slotBase)->getRightContext(exec);
292
    return asRegExpConstructor(slotBase)->getRightContext(exec);
293
}
293
}
294
294
295
void RegExpConstructor::put(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
295
void RegExpConstructor::putVirtual(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
296
{
296
{
297
    put(this, exec, propertyName, value, slot);
297
    put(this, exec, propertyName, value, slot);
298
}
298
}
- a/Source/JavaScriptCore/runtime/RegExpConstructor.h -1 / +1 lines
Lines 71-77 namespace JSC { a/Source/JavaScriptCore/runtime/RegExpConstructor.h_sec1
71
            return Structure::create(globalData, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), &s_info);
71
            return Structure::create(globalData, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), &s_info);
72
        }
72
        }
73
73
74
        virtual void put(ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
74
        virtual void putVirtual(ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
75
        static void put(JSCell*, ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
75
        static void put(JSCell*, ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
76
76
77
        virtual bool getOwnPropertySlot(ExecState*, const Identifier& propertyName, PropertySlot&);
77
        virtual bool getOwnPropertySlot(ExecState*, const Identifier& propertyName, PropertySlot&);
- a/Source/JavaScriptCore/runtime/RegExpMatchesArray.h -2 / +2 lines
Lines 76-82 namespace JSC { a/Source/JavaScriptCore/runtime/RegExpMatchesArray.h_sec1
76
            return JSArray::getOwnPropertyDescriptor(exec, propertyName, descriptor);
76
            return JSArray::getOwnPropertyDescriptor(exec, propertyName, descriptor);
77
        }
77
        }
78
78
79
        virtual void put(ExecState* exec, const Identifier& propertyName, JSValue v, PutPropertySlot& slot)
79
        virtual void putVirtual(ExecState* exec, const Identifier& propertyName, JSValue v, PutPropertySlot& slot)
80
        {
80
        {
81
            put(this, exec, propertyName, v, slot);
81
            put(this, exec, propertyName, v, slot);
82
        }
82
        }
Lines 89-95 namespace JSC { a/Source/JavaScriptCore/runtime/RegExpMatchesArray.h_sec2
89
            JSArray::put(thisObject, exec, propertyName, v, slot);
89
            JSArray::put(thisObject, exec, propertyName, v, slot);
90
        }
90
        }
91
        
91
        
92
        virtual void put(ExecState* exec, unsigned propertyName, JSValue v)
92
        virtual void putVirtual(ExecState* exec, unsigned propertyName, JSValue v)
93
        {
93
        {
94
            put(this, exec, propertyName, v);
94
            put(this, exec, propertyName, v);
95
        }
95
        }
- a/Source/JavaScriptCore/runtime/RegExpObject.cpp -1 / +1 lines
Lines 165-171 JSValue regExpObjectLastIndex(ExecState*, JSValue slotBase, const Identifier&) a/Source/JavaScriptCore/runtime/RegExpObject.cpp_sec1
165
    return asRegExpObject(slotBase)->getLastIndex();
165
    return asRegExpObject(slotBase)->getLastIndex();
166
}
166
}
167
167
168
void RegExpObject::put(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
168
void RegExpObject::putVirtual(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
169
{
169
{
170
    put(this, exec, propertyName, value, slot);
170
    put(this, exec, propertyName, value, slot);
171
}
171
}
- a/Source/JavaScriptCore/runtime/RegExpObject.h -1 / +1 lines
Lines 68-74 namespace JSC { a/Source/JavaScriptCore/runtime/RegExpObject.h_sec1
68
        virtual bool getOwnPropertySlot(ExecState*, const Identifier& propertyName, PropertySlot&);
68
        virtual bool getOwnPropertySlot(ExecState*, const Identifier& propertyName, PropertySlot&);
69
        static bool getOwnPropertySlot(JSCell*, ExecState*, const Identifier& propertyName, PropertySlot&);
69
        static bool getOwnPropertySlot(JSCell*, ExecState*, const Identifier& propertyName, PropertySlot&);
70
        virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
70
        virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
71
        virtual void put(ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
71
        virtual void putVirtual(ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
72
        static void put(JSCell*, ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
72
        static void put(JSCell*, ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
73
73
74
        static JS_EXPORTDATA const ClassInfo s_info;
74
        static JS_EXPORTDATA const ClassInfo s_info;
- a/Source/JavaScriptCore/runtime/StringObject.cpp -1 / +1 lines
Lines 74-80 bool StringObject::getOwnPropertyDescriptor(ExecState* exec, const Identifier& p a/Source/JavaScriptCore/runtime/StringObject.cpp_sec1
74
    return JSObject::getOwnPropertyDescriptor(exec, propertyName, descriptor);
74
    return JSObject::getOwnPropertyDescriptor(exec, propertyName, descriptor);
75
}
75
}
76
76
77
void StringObject::put(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
77
void StringObject::putVirtual(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
78
{
78
{
79
    put(this, exec, propertyName, value, slot);
79
    put(this, exec, propertyName, value, slot);
80
}
80
}
- a/Source/JavaScriptCore/runtime/StringObject.h -1 / +1 lines
Lines 52-58 namespace JSC { a/Source/JavaScriptCore/runtime/StringObject.h_sec1
52
        static bool getOwnPropertySlot(JSCell*, ExecState*, unsigned propertyName, PropertySlot&);
52
        static bool getOwnPropertySlot(JSCell*, ExecState*, unsigned propertyName, PropertySlot&);
53
        virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
53
        virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
54
54
55
        virtual void put(ExecState* exec, const Identifier& propertyName, JSValue, PutPropertySlot&);
55
        virtual void putVirtual(ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
56
        static void put(JSCell*, ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
56
        static void put(JSCell*, ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
57
57
58
        virtual bool deleteProperty(ExecState*, const Identifier& propertyName);
58
        virtual bool deleteProperty(ExecState*, const Identifier& propertyName);
- a/Source/JavaScriptCore/runtime/StringPrototype.cpp -9 / +9 lines
Lines 837-843 EncodedJSValue JSC_HOST_CALL stringProtoFuncSplit(ExecState* exec) a/Source/JavaScriptCore/runtime/StringPrototype.cpp_sec1
837
        if (separatorValue.isUndefined()) {
837
        if (separatorValue.isUndefined()) {
838
            // a. Call the [[DefineOwnProperty]] internal method of A with arguments "0",
838
            // a. Call the [[DefineOwnProperty]] internal method of A with arguments "0",
839
            //    Property Descriptor {[[Value]]: S, [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: true}, and false.
839
            //    Property Descriptor {[[Value]]: S, [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: true}, and false.
840
            result->put(exec, 0, jsStringWithReuse(exec, thisValue, input));
840
            result->putVirtual(exec, 0, jsStringWithReuse(exec, thisValue, input));
841
            // b. Return A.
841
            // b. Return A.
842
            return JSValue::encode(result);
842
            return JSValue::encode(result);
843
        }
843
        }
Lines 850-856 EncodedJSValue JSC_HOST_CALL stringProtoFuncSplit(ExecState* exec) a/Source/JavaScriptCore/runtime/StringPrototype.cpp_sec2
850
            //    Property Descriptor {[[Value]]: S, [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: true}, and false.
850
            //    Property Descriptor {[[Value]]: S, [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: true}, and false.
851
            // d. Return A.
851
            // d. Return A.
852
            if (reg->match(*globalData, input, 0) < 0)
852
            if (reg->match(*globalData, input, 0) < 0)
853
                result->put(exec, 0, jsStringWithReuse(exec, thisValue, input));
853
                result->putVirtual(exec, 0, jsStringWithReuse(exec, thisValue, input));
854
            return JSValue::encode(result);
854
            return JSValue::encode(result);
855
        }
855
        }
856
856
Lines 881-887 EncodedJSValue JSC_HOST_CALL stringProtoFuncSplit(ExecState* exec) a/Source/JavaScriptCore/runtime/StringPrototype.cpp_sec3
881
            //    through q (exclusive).
881
            //    through q (exclusive).
882
            // 2. Call the [[DefineOwnProperty]] internal method of A with arguments ToString(lengthA),
882
            // 2. Call the [[DefineOwnProperty]] internal method of A with arguments ToString(lengthA),
883
            //    Property Descriptor {[[Value]]: T, [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: true}, and false.
883
            //    Property Descriptor {[[Value]]: T, [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: true}, and false.
884
            result->put(exec, resultLength, jsSubstring(exec, input, position, matchPosition - position));
884
            result->putVirtual(exec, resultLength, jsSubstring(exec, input, position, matchPosition - position));
885
            // 3. Increment lengthA by 1.
885
            // 3. Increment lengthA by 1.
886
            // 4. If lengthA == lim, return A.
886
            // 4. If lengthA == lim, return A.
887
            if (++resultLength == limit)
887
            if (++resultLength == limit)
Lines 900-906 EncodedJSValue JSC_HOST_CALL stringProtoFuncSplit(ExecState* exec) a/Source/JavaScriptCore/runtime/StringPrototype.cpp_sec4
900
                //   ToString(lengthA), Property Descriptor {[[Value]]: cap[i], [[Writable]]:
900
                //   ToString(lengthA), Property Descriptor {[[Value]]: cap[i], [[Writable]]:
901
                //   true, [[Enumerable]]: true, [[Configurable]]: true}, and false.
901
                //   true, [[Enumerable]]: true, [[Configurable]]: true}, and false.
902
                int sub = ovector[i * 2];
902
                int sub = ovector[i * 2];
903
                result->put(exec, resultLength, sub < 0 ? jsUndefined() : jsSubstring(exec, input, sub, ovector[i * 2 + 1] - sub));
903
                result->putVirtual(exec, resultLength, sub < 0 ? jsUndefined() : jsSubstring(exec, input, sub, ovector[i * 2 + 1] - sub));
904
                // c Increment lengthA by 1.
904
                // c Increment lengthA by 1.
905
                // d If lengthA == lim, return A.
905
                // d If lengthA == lim, return A.
906
                if (++resultLength == limit)
906
                if (++resultLength == limit)
Lines 919-925 EncodedJSValue JSC_HOST_CALL stringProtoFuncSplit(ExecState* exec) a/Source/JavaScriptCore/runtime/StringPrototype.cpp_sec5
919
        if (separatorValue.isUndefined()) {
919
        if (separatorValue.isUndefined()) {
920
            // a.  Call the [[DefineOwnProperty]] internal method of A with arguments "0",
920
            // a.  Call the [[DefineOwnProperty]] internal method of A with arguments "0",
921
            //     Property Descriptor {[[Value]]: S, [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: true}, and false.
921
            //     Property Descriptor {[[Value]]: S, [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: true}, and false.
922
            result->put(exec, 0, jsStringWithReuse(exec, thisValue, input));
922
            result->putVirtual(exec, 0, jsStringWithReuse(exec, thisValue, input));
923
            // b.  Return A.
923
            // b.  Return A.
924
            return JSValue::encode(result);
924
            return JSValue::encode(result);
925
        }
925
        }
Lines 932-938 EncodedJSValue JSC_HOST_CALL stringProtoFuncSplit(ExecState* exec) a/Source/JavaScriptCore/runtime/StringPrototype.cpp_sec6
932
            //    Property Descriptor {[[Value]]: S, [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: true}, and false.
932
            //    Property Descriptor {[[Value]]: S, [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: true}, and false.
933
            // d. Return A.
933
            // d. Return A.
934
            if (!separator.isEmpty())
934
            if (!separator.isEmpty())
935
                result->put(exec, 0, jsStringWithReuse(exec, thisValue, input));
935
                result->putVirtual(exec, 0, jsStringWithReuse(exec, thisValue, input));
936
            return JSValue::encode(result);
936
            return JSValue::encode(result);
937
        }
937
        }
938
938
Lines 943-949 EncodedJSValue JSC_HOST_CALL stringProtoFuncSplit(ExecState* exec) a/Source/JavaScriptCore/runtime/StringPrototype.cpp_sec7
943
            ASSERT(limit);
943
            ASSERT(limit);
944
944
945
            do {
945
            do {
946
                result->put(exec, position, jsSingleCharacterSubstring(exec, input, position));
946
                result->putVirtual(exec, position, jsSingleCharacterSubstring(exec, input, position));
947
            } while (++position < limit);
947
            } while (++position < limit);
948
948
949
            return JSValue::encode(result);
949
            return JSValue::encode(result);
Lines 960-966 EncodedJSValue JSC_HOST_CALL stringProtoFuncSplit(ExecState* exec) a/Source/JavaScriptCore/runtime/StringPrototype.cpp_sec8
960
            //    through q (exclusive).
960
            //    through q (exclusive).
961
            // 2. Call the [[DefineOwnProperty]] internal method of A with arguments ToString(lengthA),
961
            // 2. Call the [[DefineOwnProperty]] internal method of A with arguments ToString(lengthA),
962
            //    Property Descriptor {[[Value]]: T, [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: true}, and false.
962
            //    Property Descriptor {[[Value]]: T, [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: true}, and false.
963
            result->put(exec, resultLength, jsSubstring(exec, input, position, matchPosition - position));
963
            result->putVirtual(exec, resultLength, jsSubstring(exec, input, position, matchPosition - position));
964
            // 3. Increment lengthA by 1.
964
            // 3. Increment lengthA by 1.
965
            // 4. If lengthA == lim, return A.
965
            // 4. If lengthA == lim, return A.
966
            if (++resultLength == limit)
966
            if (++resultLength == limit)
Lines 976-982 EncodedJSValue JSC_HOST_CALL stringProtoFuncSplit(ExecState* exec) a/Source/JavaScriptCore/runtime/StringPrototype.cpp_sec9
976
    //     through s (exclusive).
976
    //     through s (exclusive).
977
    // 15. Call the [[DefineOwnProperty]] internal method of A with arguments ToString(lengthA), Property Descriptor
977
    // 15. Call the [[DefineOwnProperty]] internal method of A with arguments ToString(lengthA), Property Descriptor
978
    //     {[[Value]]: T, [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: true}, and false.
978
    //     {[[Value]]: T, [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: true}, and false.
979
    result->put(exec, resultLength++, jsSubstring(exec, input, position, input.length() - position));
979
    result->putVirtual(exec, resultLength++, jsSubstring(exec, input, position, input.length() - position));
980
980
981
    // 16. Return A.
981
    // 16. Return A.
982
    return JSValue::encode(result);
982
    return JSValue::encode(result);
- a/Source/JavaScriptGlue/ChangeLog +18 lines
Lines 1-3 a/Source/JavaScriptGlue/ChangeLog_sec1
1
2011-10-12  Mark Hahnenberg  <mhahnenberg@apple.com>
2
3
        Rename virtual put to putVirtual
4
        https://bugs.webkit.org/show_bug.cgi?id=69851
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        Renamed virtual versions of put to putVirtual in prepration for 
9
        adding the static put to the MethodTable in ClassInfo since the 
10
        compiler gets mad if the virtual and static versions have the same 
11
        name.
12
13
        * JSValueWrapper.cpp:
14
        (JSValueWrapper::JSObjectSetProperty):
15
        * UserObjectImp.cpp:
16
        (UserObjectImp::putVirtual):
17
        * UserObjectImp.h:
18
1
2011-10-10  Mark Hahnenberg  <mhahnenberg@apple.com>
19
2011-10-10  Mark Hahnenberg  <mhahnenberg@apple.com>
2
20
3
        Remove getCallDataVirtual methods
21
        Remove getCallDataVirtual methods
- a/Source/JavaScriptGlue/JSValueWrapper.cpp -1 / +1 lines
Lines 136-142 void JSValueWrapper::JSObjectSetProperty(void *data, CFStringRef propertyName, J a/Source/JavaScriptGlue/JSValueWrapper.cpp_sec1
136
        JSValue value = JSObjectKJSValue((JSUserObject*)jsValue);
136
        JSValue value = JSObjectKJSValue((JSUserObject*)jsValue);
137
        JSObject *objValue = ptr->GetValue().toObject(exec);
137
        JSObject *objValue = ptr->GetValue().toObject(exec);
138
        PutPropertySlot slot;
138
        PutPropertySlot slot;
139
        objValue->put(exec, CFStringToIdentifier(propertyName, exec), value, slot);
139
        objValue->putVirtual(exec, CFStringToIdentifier(propertyName, exec), value, slot);
140
    }
140
    }
141
}
141
}
142
142
- a/Source/JavaScriptGlue/UserObjectImp.cpp -1 / +1 lines
Lines 152-158 bool UserObjectImp::getOwnPropertySlot(JSCell* cell, ExecState *exec, const Iden a/Source/JavaScriptGlue/UserObjectImp.cpp_sec1
152
    return JSObject::getOwnPropertySlot(thisObject, exec, propertyName, slot);
152
    return JSObject::getOwnPropertySlot(thisObject, exec, propertyName, slot);
153
}
153
}
154
154
155
void UserObjectImp::put(ExecState *exec, const Identifier &propertyName, JSValue value, PutPropertySlot& slot)
155
void UserObjectImp::putVirtual(ExecState *exec, const Identifier &propertyName, JSValue value, PutPropertySlot& slot)
156
{
156
{
157
    put(this, exec, propertyName, value, slot);
157
    put(this, exec, propertyName, value, slot);
158
}
158
}
- a/Source/JavaScriptGlue/UserObjectImp.h -1 / +1 lines
Lines 56-62 public: a/Source/JavaScriptGlue/UserObjectImp.h_sec1
56
    virtual JSValue callAsFunction(ExecState *exec);
56
    virtual JSValue callAsFunction(ExecState *exec);
57
    virtual bool getOwnPropertySlot(ExecState *, const Identifier&, PropertySlot&);
57
    virtual bool getOwnPropertySlot(ExecState *, const Identifier&, PropertySlot&);
58
    static bool getOwnPropertySlot(JSCell*, ExecState *, const Identifier&, PropertySlot&);
58
    static bool getOwnPropertySlot(JSCell*, ExecState *, const Identifier&, PropertySlot&);
59
    virtual void put(ExecState *exec, const Identifier &propertyName, JSValue value, PutPropertySlot&);
59
    virtual void putVirtual(ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
60
    static void put(JSCell*, ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
60
    static void put(JSCell*, ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
61
61
62
    JSValue toPrimitive(ExecState*, PreferredPrimitiveType preferredType = NoPreference) const;
62
    JSValue toPrimitive(ExecState*, PreferredPrimitiveType preferredType = NoPreference) const;
- a/Source/WebCore/ChangeLog +56 lines
Lines 1-3 a/Source/WebCore/ChangeLog_sec1
1
2011-10-12  Mark Hahnenberg  <mhahnenberg@apple.com>
2
3
        Rename virtual put to putVirtual
4
        https://bugs.webkit.org/show_bug.cgi?id=69851
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        No new tests.
9
10
        Renamed virtual versions of put to putVirtual in prepration for 
11
        adding the static put to the MethodTable in ClassInfo since the 
12
        compiler gets mad if the virtual and static versions have the same 
13
        name.
14
15
        * WebCore.exp.in:
16
        * bindings/js/JSDOMWindowCustom.cpp:
17
        (WebCore::JSDOMWindow::putVirtual):
18
        * bindings/js/JSDOMWindowShell.cpp:
19
        (WebCore::JSDOMWindowShell::putVirtual):
20
        * bindings/js/JSDOMWindowShell.h:
21
        * bindings/js/JSLocationCustom.cpp:
22
        (WebCore::JSLocation::putDelegate):
23
        * bindings/js/JSPluginElementFunctions.cpp:
24
        (WebCore::runtimeObjectCustomPut):
25
        * bindings/js/SerializedScriptValue.cpp:
26
        (WebCore::CloneDeserializer::putProperty):
27
        * bindings/objc/WebScriptObject.mm:
28
        (-[WebScriptObject setValue:forKey:]):
29
        (-[WebScriptObject setWebScriptValueAtIndex:value:]):
30
        * bindings/scripts/CodeGeneratorJS.pm:
31
        (GenerateHeader):
32
        (GenerateImplementation):
33
        * bindings/scripts/test/JS/JSTestObj.cpp:
34
        (WebCore::JSTestObj::putVirtual):
35
        * bindings/scripts/test/JS/JSTestObj.h:
36
        * bridge/NP_jsobject.cpp:
37
        (_NPN_SetProperty):
38
        * bridge/jni/jni_jsobject.mm:
39
        (JavaJSObject::setMember):
40
        (JavaJSObject::setSlot):
41
        * bridge/objc/objc_runtime.h:
42
        * bridge/objc/objc_runtime.mm:
43
        (JSC::Bindings::ObjcFallbackObjectImp::putVirtual):
44
        * bridge/qt/qt_instance.cpp:
45
        (JSC::Bindings::QtInstance::put):
46
        * bridge/qt/qt_runtime.cpp:
47
        (JSC::Bindings::convertQVariantToValue):
48
        * bridge/runtime_array.cpp:
49
        (JSC::RuntimeArray::putVirtual):
50
        * bridge/runtime_array.h:
51
        * bridge/runtime_object.cpp:
52
        (JSC::Bindings::RuntimeObject::putVirtual):
53
        * bridge/runtime_object.h:
54
        * bridge/testqtbindings.cpp:
55
        (main):
56
1
2011-10-12  Jian Li  <jianli@chromium.org>
57
2011-10-12  Jian Li  <jianli@chromium.org>
2
58
3
        Support passing optional filename when FormData.append() is used to
59
        Support passing optional filename when FormData.append() is used to
- a/Source/WebCore/WebCore.exp.in -4 / +4 lines
Lines 141-147 __ZN7WebCore10ClientRectC1Ev a/Source/WebCore/WebCore.exp.in_sec1
141
__ZN7WebCore10CredentialC1ERKN3WTF6StringES4_NS_21CredentialPersistenceE
141
__ZN7WebCore10CredentialC1ERKN3WTF6StringES4_NS_21CredentialPersistenceE
142
__ZN7WebCore10CredentialC1Ev
142
__ZN7WebCore10CredentialC1Ev
143
__ZN7WebCore10FloatPointC1ERKNS_8IntPointE
143
__ZN7WebCore10FloatPointC1ERKNS_8IntPointE
144
__ZN7WebCore10JSDocument3putEPN3JSC9ExecStateERKNS1_10IdentifierENS1_7JSValueERNS1_15PutPropertySlotE
144
__ZN7WebCore10JSDocument10putVirtualEPN3JSC9ExecStateERKNS1_10IdentifierENS1_7JSValueERNS1_15PutPropertySlotE
145
__ZN7WebCore10JSDocument6s_infoE
145
__ZN7WebCore10JSDocument6s_infoE
146
__ZN7WebCore10MouseEvent6createERKN3WTF12AtomicStringENS1_10PassRefPtrINS_9DOMWindowEEERKNS_18PlatformMouseEventEiNS5_INS_4NodeEEE
146
__ZN7WebCore10MouseEvent6createERKN3WTF12AtomicStringENS1_10PassRefPtrINS_9DOMWindowEEERKNS_18PlatformMouseEventEiNS5_INS_4NodeEEE
147
__ZN7WebCore10MouseEventC1ERKN3WTF12AtomicStringEbbNS1_10PassRefPtrINS_9DOMWindowEEEiiiiibbbbtNS5_INS_11EventTargetEEENS5_INS_9ClipboardEEEb
147
__ZN7WebCore10MouseEventC1ERKN3WTF12AtomicStringEbbNS1_10PassRefPtrINS_9DOMWindowEEEiiiiibbbbtNS5_INS_11EventTargetEEENS5_INS_9ClipboardEEEb
Lines 830-836 __ZN7WebCore6Editor6indentEv a/Source/WebCore/WebCore.exp.in_sec2
830
__ZN7WebCore6Editor7CommandC1Ev
830
__ZN7WebCore6Editor7CommandC1Ev
831
__ZN7WebCore6Editor7commandERKN3WTF6StringE
831
__ZN7WebCore6Editor7commandERKN3WTF6StringE
832
__ZN7WebCore6Editor7outdentEv
832
__ZN7WebCore6Editor7outdentEv
833
__ZN7WebCore6JSNode3putEPN3JSC9ExecStateERKNS1_10IdentifierENS1_7JSValueERNS1_15PutPropertySlotE
833
__ZN7WebCore6JSNode10putVirtualEPN3JSC9ExecStateERKNS1_10IdentifierENS1_7JSValueERNS1_15PutPropertySlotE
834
__ZN7WebCore6JSNode6s_infoE
834
__ZN7WebCore6JSNode6s_infoE
835
__ZN7WebCore6Region5uniteERKS0_
835
__ZN7WebCore6Region5uniteERKS0_
836
__ZN7WebCore6Region8subtractERKS0_
836
__ZN7WebCore6Region8subtractERKS0_
Lines 1044-1050 __ZN7WebCore9HTMLNames8videoTagE a/Source/WebCore/WebCore.exp.in_sec3
1044
__ZN7WebCore9HTMLNames9iframeTagE
1044
__ZN7WebCore9HTMLNames9iframeTagE
1045
__ZN7WebCore9HTMLNames9objectTagE
1045
__ZN7WebCore9HTMLNames9objectTagE
1046
__ZN7WebCore9HTMLNames9scriptTagE
1046
__ZN7WebCore9HTMLNames9scriptTagE
1047
__ZN7WebCore9JSElement3putEPN3JSC9ExecStateERKNS1_10IdentifierENS1_7JSValueERNS1_15PutPropertySlotE
1047
__ZN7WebCore9JSElement10putVirtualEPN3JSC9ExecStateERKNS1_10IdentifierENS1_7JSValueERNS1_15PutPropertySlotE
1048
__ZN7WebCore9JSElement6s_infoE
1048
__ZN7WebCore9JSElement6s_infoE
1049
__ZN7WebCore9PageCache11setCapacityEi
1049
__ZN7WebCore9PageCache11setCapacityEi
1050
__ZN7WebCore9PageCache27releaseAutoreleasedPagesNowEv
1050
__ZN7WebCore9PageCache27releaseAutoreleasedPagesNowEv
Lines 1687-1692 __ZN3JSC13RuntimeMethod24getOwnPropertyDescriptorEPNS_9ExecStateERKNS_10Identifi a/Source/WebCore/WebCore.exp.in_sec4
1687
__ZN3JSC13RuntimeMethod6s_infoE
1687
__ZN3JSC13RuntimeMethod6s_infoE
1688
__ZN3JSC13RuntimeMethodC2EPNS_14JSGlobalObjectEPNS_9StructureERN3WTF6VectorIPNS_8Bindings6MethodELm0EEE
1688
__ZN3JSC13RuntimeMethodC2EPNS_14JSGlobalObjectEPNS_9StructureERN3WTF6VectorIPNS_8Bindings6MethodELm0EEE
1689
__ZN3JSC8Bindings10RootObjectD1Ev
1689
__ZN3JSC8Bindings10RootObjectD1Ev
1690
__ZN3JSC8Bindings13RuntimeObject10putVirtualEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE
1690
__ZN3JSC8Bindings13RuntimeObject11getCallDataEPNS_6JSCellERNS_8CallDataE
1691
__ZN3JSC8Bindings13RuntimeObject11getCallDataEPNS_6JSCellERNS_8CallDataE
1691
__ZN3JSC8Bindings13RuntimeObject14deletePropertyEPNS_9ExecStateERKNS_10IdentifierE
1692
__ZN3JSC8Bindings13RuntimeObject14deletePropertyEPNS_9ExecStateERKNS_10IdentifierE
1692
__ZN3JSC8Bindings13RuntimeObject14finishCreationEPNS_14JSGlobalObjectE
1693
__ZN3JSC8Bindings13RuntimeObject14finishCreationEPNS_14JSGlobalObjectE
Lines 1694-1700 __ZN3JSC8Bindings13RuntimeObject16getConstructDataERNS_13ConstructDataE a/Source/WebCore/WebCore.exp.in_sec5
1694
__ZN3JSC8Bindings13RuntimeObject18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
1695
__ZN3JSC8Bindings13RuntimeObject18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
1695
__ZN3JSC8Bindings13RuntimeObject19getOwnPropertyNamesEPNS_9ExecStateERNS_17PropertyNameArrayENS_15EnumerationModeE
1696
__ZN3JSC8Bindings13RuntimeObject19getOwnPropertyNamesEPNS_9ExecStateERNS_17PropertyNameArrayENS_15EnumerationModeE
1696
__ZN3JSC8Bindings13RuntimeObject24getOwnPropertyDescriptorEPNS_9ExecStateERKNS_10IdentifierERNS_18PropertyDescriptorE
1697
__ZN3JSC8Bindings13RuntimeObject24getOwnPropertyDescriptorEPNS_9ExecStateERKNS_10IdentifierERNS_18PropertyDescriptorE
1697
__ZN3JSC8Bindings13RuntimeObject3putEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE
1698
__ZN3JSC8Bindings13RuntimeObject6s_infoE
1698
__ZN3JSC8Bindings13RuntimeObject6s_infoE
1699
__ZN3JSC8Bindings13RuntimeObjectC2EPNS_9ExecStateEPNS_14JSGlobalObjectEPNS_9StructureEN3WTF10PassRefPtrINS0_8InstanceEEE
1699
__ZN3JSC8Bindings13RuntimeObjectC2EPNS_9ExecStateEPNS_14JSGlobalObjectEPNS_9StructureEN3WTF10PassRefPtrINS0_8InstanceEEE
1700
__ZN3JSC8Bindings13RuntimeObjectD2Ev
1700
__ZN3JSC8Bindings13RuntimeObjectD2Ev
- a/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp -3 / +3 lines
Lines 338-344 bool JSDOMWindow::getOwnPropertyDescriptor(ExecState* exec, const Identifier& pr a/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp_sec1
338
    return Base::getOwnPropertyDescriptor(exec, propertyName, descriptor);
338
    return Base::getOwnPropertyDescriptor(exec, propertyName, descriptor);
339
}
339
}
340
340
341
void JSDOMWindow::put(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
341
void JSDOMWindow::putVirtual(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
342
{
342
{
343
    if (!impl()->frame())
343
    if (!impl()->frame())
344
        return;
344
        return;
Lines 346-352 void JSDOMWindow::put(ExecState* exec, const Identifier& propertyName, JSValue v a/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp_sec2
346
    // Optimization: access JavaScript global variables directly before involving the DOM.
346
    // Optimization: access JavaScript global variables directly before involving the DOM.
347
    if (JSGlobalObject::hasOwnPropertyForWrite(exec, propertyName)) {
347
    if (JSGlobalObject::hasOwnPropertyForWrite(exec, propertyName)) {
348
        if (allowsAccessFrom(exec))
348
        if (allowsAccessFrom(exec))
349
            JSGlobalObject::put(exec, propertyName, value, slot);
349
            JSGlobalObject::put(this, exec, propertyName, value, slot);
350
        return;
350
        return;
351
    }
351
    }
352
352
Lines 354-360 void JSDOMWindow::put(ExecState* exec, const Identifier& propertyName, JSValue v a/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp_sec3
354
        return;
354
        return;
355
355
356
    if (allowsAccessFrom(exec))
356
    if (allowsAccessFrom(exec))
357
        Base::put(exec, propertyName, value, slot);
357
        Base::put(this, exec, propertyName, value, slot);
358
}
358
}
359
359
360
bool JSDOMWindow::deleteProperty(ExecState* exec, const Identifier& propertyName)
360
bool JSDOMWindow::deleteProperty(ExecState* exec, const Identifier& propertyName)
- a/Source/WebCore/bindings/js/JSDOMWindowShell.cpp -2 / +2 lines
Lines 115-123 bool JSDOMWindowShell::getOwnPropertyDescriptor(ExecState* exec, const Identifie a/Source/WebCore/bindings/js/JSDOMWindowShell.cpp_sec1
115
    return m_window->getOwnPropertyDescriptor(exec, propertyName, descriptor);
115
    return m_window->getOwnPropertyDescriptor(exec, propertyName, descriptor);
116
}
116
}
117
117
118
void JSDOMWindowShell::put(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
118
void JSDOMWindowShell::putVirtual(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
119
{
119
{
120
    m_window->put(exec, propertyName, value, slot);
120
    m_window->putVirtual(exec, propertyName, value, slot);
121
}
121
}
122
122
123
void JSDOMWindowShell::putWithAttributes(ExecState* exec, const Identifier& propertyName, JSValue value, unsigned attributes)
123
void JSDOMWindowShell::putWithAttributes(ExecState* exec, const Identifier& propertyName, JSValue value, unsigned attributes)
- a/Source/WebCore/bindings/js/JSDOMWindowShell.h -1 / +1 lines
Lines 83-89 namespace WebCore { a/Source/WebCore/bindings/js/JSDOMWindowShell.h_sec1
83
        virtual bool getOwnPropertySlot(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::PropertySlot&);
83
        virtual bool getOwnPropertySlot(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::PropertySlot&);
84
        static bool getOwnPropertySlot(JSC::JSCell*, JSC::ExecState*, const JSC::Identifier& propertyName, JSC::PropertySlot&);
84
        static bool getOwnPropertySlot(JSC::JSCell*, JSC::ExecState*, const JSC::Identifier& propertyName, JSC::PropertySlot&);
85
        virtual bool getOwnPropertyDescriptor(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::PropertyDescriptor&);
85
        virtual bool getOwnPropertyDescriptor(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::PropertyDescriptor&);
86
        virtual void put(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::JSValue, JSC::PutPropertySlot&);
86
        virtual void putVirtual(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::JSValue, JSC::PutPropertySlot&);
87
        virtual void putWithAttributes(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::JSValue, unsigned attributes);
87
        virtual void putWithAttributes(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::JSValue, unsigned attributes);
88
        virtual bool deleteProperty(JSC::ExecState*, const JSC::Identifier& propertyName);
88
        virtual bool deleteProperty(JSC::ExecState*, const JSC::Identifier& propertyName);
89
        virtual void getPropertyNames(JSC::ExecState*, JSC::PropertyNameArray&, JSC::EnumerationMode mode = JSC::ExcludeDontEnumProperties);
89
        virtual void getPropertyNames(JSC::ExecState*, JSC::PropertyNameArray&, JSC::EnumerationMode mode = JSC::ExcludeDontEnumProperties);
- a/Source/WebCore/bindings/js/JSLocationCustom.cpp -1 / +1 lines
Lines 139-145 bool JSLocation::putDelegate(ExecState* exec, const Identifier& propertyName, JS a/Source/WebCore/bindings/js/JSLocationCustom.cpp_sec1
139
    const HashEntry* entry = JSLocation::s_info.propHashTable(exec)->entry(exec, propertyName);
139
    const HashEntry* entry = JSLocation::s_info.propHashTable(exec)->entry(exec, propertyName);
140
    if (!entry) {
140
    if (!entry) {
141
        if (sameDomainAccess)
141
        if (sameDomainAccess)
142
            JSObject::put(exec, propertyName, value, slot);
142
            JSObject::put(this, exec, propertyName, value, slot);
143
        return true;
143
        return true;
144
    }
144
    }
145
145
- a/Source/WebCore/bindings/js/JSPluginElementFunctions.cpp -1 / +1 lines
Lines 145-151 bool runtimeObjectCustomPut(ExecState* exec, const Identifier& propertyName, JSV a/Source/WebCore/bindings/js/JSPluginElementFunctions.cpp_sec1
145
        return 0;
145
        return 0;
146
    if (!scriptObject->hasProperty(exec, propertyName))
146
    if (!scriptObject->hasProperty(exec, propertyName))
147
        return false;
147
        return false;
148
    scriptObject->put(exec, propertyName, value, slot);
148
    scriptObject->putVirtual(exec, propertyName, value, slot);
149
    return true;
149
    return true;
150
}
150
}
151
151
- a/Source/WebCore/bindings/js/SerializedScriptValue.cpp -1 / +1 lines
Lines 1031-1037 private: a/Source/WebCore/bindings/js/SerializedScriptValue.cpp_sec1
1031
        if (array->canSetIndex(index))
1031
        if (array->canSetIndex(index))
1032
            array->setIndex(m_exec->globalData(), index, value);
1032
            array->setIndex(m_exec->globalData(), index, value);
1033
        else
1033
        else
1034
            array->put(m_exec, index, value);
1034
            array->putVirtual(m_exec, index, value);
1035
    }
1035
    }
1036
1036
1037
    void putProperty(JSObject* object, const Identifier& property, JSValue value)
1037
    void putProperty(JSObject* object, const Identifier& property, JSValue value)
- a/Source/WebCore/bindings/objc/WebScriptObject.mm -2 / +2 lines
Lines 349-355 static void getListFromNSArray(ExecState *exec, NSArray *array, RootObject* root a/Source/WebCore/bindings/objc/WebScriptObject.mm_sec1
349
    JSLock lock(SilenceAssertionsOnly);
349
    JSLock lock(SilenceAssertionsOnly);
350
350
351
    PutPropertySlot slot;
351
    PutPropertySlot slot;
352
    [self _imp]->put(exec, Identifier(exec, stringToUString(String(key))), convertObjcValueToValue(exec, &value, ObjcObjectType, [self _rootObject]), slot);
352
    [self _imp]->putVirtual(exec, Identifier(exec, stringToUString(String(key))), convertObjcValueToValue(exec, &value, ObjcObjectType, [self _rootObject]), slot);
353
353
354
    if (exec->hadException()) {
354
    if (exec->hadException()) {
355
        addExceptionToConsole(exec);
355
        addExceptionToConsole(exec);
Lines 486-492 static void getListFromNSArray(ExecState *exec, NSArray *array, RootObject* root a/Source/WebCore/bindings/objc/WebScriptObject.mm_sec2
486
    ASSERT(!exec->hadException());
486
    ASSERT(!exec->hadException());
487
487
488
    JSLock lock(SilenceAssertionsOnly);
488
    JSLock lock(SilenceAssertionsOnly);
489
    [self _imp]->put(exec, index, convertObjcValueToValue(exec, &value, ObjcObjectType, [self _rootObject]));
489
    [self _imp]->putVirtual(exec, index, convertObjcValueToValue(exec, &value, ObjcObjectType, [self _rootObject]));
490
490
491
    if (exec->hadException()) {
491
    if (exec->hadException()) {
492
        addExceptionToConsole(exec);
492
        addExceptionToConsole(exec);
- a/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm -6 / +6 lines
Lines 793-801 sub GenerateHeader a/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm_sec1
793
793
794
    # Getters
794
    # Getters
795
    if ($hasSetter) {
795
    if ($hasSetter) {
796
        push(@headerContent, "    virtual void put(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::JSValue, JSC::PutPropertySlot&);\n");
796
        push(@headerContent, "    virtual void putVirtual(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::JSValue, JSC::PutPropertySlot&);\n");
797
        push(@headerContent, "    static void put(JSC::JSCell*, JSC::ExecState*, const JSC::Identifier& propertyName, JSC::JSValue, JSC::PutPropertySlot&);\n");
797
        push(@headerContent, "    static void put(JSC::JSCell*, JSC::ExecState*, const JSC::Identifier& propertyName, JSC::JSValue, JSC::PutPropertySlot&);\n");
798
        push(@headerContent, "    virtual void put(JSC::ExecState*, unsigned propertyName, JSC::JSValue);\n") if $dataNode->extendedAttributes->{"HasCustomIndexSetter"};
798
        push(@headerContent, "    virtual void putVirtual(JSC::ExecState*, unsigned propertyName, JSC::JSValue);\n") if $dataNode->extendedAttributes->{"HasCustomIndexSetter"};
799
        push(@headerContent, "    static void put(JSC::JSCell*, JSC::ExecState*, unsigned propertyName, JSC::JSValue);\n") if $dataNode->extendedAttributes->{"HasCustomIndexSetter"};
799
        push(@headerContent, "    static void put(JSC::JSCell*, JSC::ExecState*, unsigned propertyName, JSC::JSValue);\n") if $dataNode->extendedAttributes->{"HasCustomIndexSetter"};
800
        push(@headerContent, "    bool putDelegate(JSC::ExecState*, const JSC::Identifier&, JSC::JSValue, JSC::PutPropertySlot&);\n") if $dataNode->extendedAttributes->{"DelegatingPutFunction"};
800
        push(@headerContent, "    bool putDelegate(JSC::ExecState*, const JSC::Identifier&, JSC::JSValue, JSC::PutPropertySlot&);\n") if $dataNode->extendedAttributes->{"DelegatingPutFunction"};
801
    }
801
    }
Lines 1050-1056 sub GenerateHeader a/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm_sec2
1050
        "        return JSC::Structure::create(globalData, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), &s_info);\n" .
1050
        "        return JSC::Structure::create(globalData, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), &s_info);\n" .
1051
        "    }\n");
1051
        "    }\n");
1052
    if ($dataNode->extendedAttributes->{"DelegatingPrototypePutFunction"}) {
1052
    if ($dataNode->extendedAttributes->{"DelegatingPrototypePutFunction"}) {
1053
        push(@headerContent, "    virtual void put(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::JSValue, JSC::PutPropertySlot&);\n");
1053
        push(@headerContent, "    virtual void putVirtual(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::JSValue, JSC::PutPropertySlot&);\n");
1054
        push(@headerContent, "    static void put(JSC::JSCell*, JSC::ExecState*, const JSC::Identifier& propertyName, JSC::JSValue, JSC::PutPropertySlot&);\n");
1054
        push(@headerContent, "    static void put(JSC::JSCell*, JSC::ExecState*, const JSC::Identifier& propertyName, JSC::JSValue, JSC::PutPropertySlot&);\n");
1055
        push(@headerContent, "    bool putDelegate(JSC::ExecState*, const JSC::Identifier&, JSC::JSValue, JSC::PutPropertySlot&);\n");
1055
        push(@headerContent, "    bool putDelegate(JSC::ExecState*, const JSC::Identifier&, JSC::JSValue, JSC::PutPropertySlot&);\n");
1056
    }
1056
    }
Lines 1473-1479 sub GenerateImplementation a/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm_sec3
1473
    }
1473
    }
1474
1474
1475
    if ($dataNode->extendedAttributes->{"DelegatingPrototypePutFunction"}) {
1475
    if ($dataNode->extendedAttributes->{"DelegatingPrototypePutFunction"}) {
1476
        push(@implContent, "void ${className}Prototype::put(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)\n");
1476
        push(@implContent, "void ${className}Prototype::putVirtual(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)\n");
1477
        push(@implContent, "{\n");
1477
        push(@implContent, "{\n");
1478
        push(@implContent, "    put(this, exec, propertyName, value, slot);\n");
1478
        push(@implContent, "    put(this, exec, propertyName, value, slot);\n");
1479
        push(@implContent, "}\n\n");
1479
        push(@implContent, "}\n\n");
Lines 1742-1748 sub GenerateImplementation a/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm_sec4
1742
1742
1743
        if ($hasSetter) {
1743
        if ($hasSetter) {
1744
            if (!$dataNode->extendedAttributes->{"CustomPutFunction"}) {
1744
            if (!$dataNode->extendedAttributes->{"CustomPutFunction"}) {
1745
                push(@implContent, "void ${className}::put(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)\n");
1745
                push(@implContent, "void ${className}::putVirtual(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)\n");
1746
                push(@implContent, "{\n");
1746
                push(@implContent, "{\n");
1747
                push(@implContent, "    put(this, exec, propertyName, value, slot);\n");
1747
                push(@implContent, "    put(this, exec, propertyName, value, slot);\n");
1748
                push(@implContent, "}\n\n");
1748
                push(@implContent, "}\n\n");
Lines 1773-1779 sub GenerateImplementation a/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm_sec5
1773
            }
1773
            }
1774
1774
1775
            if ($dataNode->extendedAttributes->{"HasCustomIndexSetter"}) {
1775
            if ($dataNode->extendedAttributes->{"HasCustomIndexSetter"}) {
1776
                push(@implContent, "void ${className}::put(ExecState* exec, unsigned propertyName, JSValue value)\n");
1776
                push(@implContent, "void ${className}::putVirtual(ExecState* exec, unsigned propertyName, JSValue value)\n");
1777
                push(@implContent, "{\n");
1777
                push(@implContent, "{\n");
1778
                push(@implContent, "    put(this, exec, propertyName, value);\n");
1778
                push(@implContent, "    put(this, exec, propertyName, value);\n");
1779
                push(@implContent, "}\n\n");
1779
                push(@implContent, "}\n\n");
- a/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp -1 / +1 lines
Lines 761-767 JSValue jsTestObjConstructor(ExecState* exec, JSValue slotBase, const Identifier a/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp_sec1
761
    return JSTestObj::getConstructor(exec, domObject->globalObject());
761
    return JSTestObj::getConstructor(exec, domObject->globalObject());
762
}
762
}
763
763
764
void JSTestObj::put(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
764
void JSTestObj::putVirtual(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
765
{
765
{
766
    put(this, exec, propertyName, value, slot);
766
    put(this, exec, propertyName, value, slot);
767
}
767
}
- a/Source/WebCore/bindings/scripts/test/JS/JSTestObj.h -1 / +1 lines
Lines 42-48 public: a/Source/WebCore/bindings/scripts/test/JS/JSTestObj.h_sec1
42
    static JSC::JSObject* createPrototype(JSC::ExecState*, JSC::JSGlobalObject*);
42
    static JSC::JSObject* createPrototype(JSC::ExecState*, JSC::JSGlobalObject*);
43
    virtual bool getOwnPropertySlot(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::PropertySlot&);
43
    virtual bool getOwnPropertySlot(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::PropertySlot&);
44
    virtual bool getOwnPropertyDescriptor(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::PropertyDescriptor&);
44
    virtual bool getOwnPropertyDescriptor(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::PropertyDescriptor&);
45
    virtual void put(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::JSValue, JSC::PutPropertySlot&);
45
    virtual void putVirtual(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::JSValue, JSC::PutPropertySlot&);
46
    static void put(JSC::JSCell*, JSC::ExecState*, const JSC::Identifier& propertyName, JSC::JSValue, JSC::PutPropertySlot&);
46
    static void put(JSC::JSCell*, JSC::ExecState*, const JSC::Identifier& propertyName, JSC::JSValue, JSC::PutPropertySlot&);
47
    static const JSC::ClassInfo s_info;
47
    static const JSC::ClassInfo s_info;
48
48
- a/Source/WebCore/bridge/NP_jsobject.cpp -2 / +2 lines
Lines 337-345 bool _NPN_SetProperty(NPP, NPObject* o, NPIdentifier propertyName, const NPVaria a/Source/WebCore/bridge/NP_jsobject.cpp_sec1
337
337
338
        if (i->isString()) {
338
        if (i->isString()) {
339
            PutPropertySlot slot;
339
            PutPropertySlot slot;
340
            obj->imp->put(exec, identifierFromNPIdentifier(exec, i->string()), convertNPVariantToValue(exec, variant, rootObject), slot);
340
            obj->imp->putVirtual(exec, identifierFromNPIdentifier(exec, i->string()), convertNPVariantToValue(exec, variant, rootObject), slot);
341
        } else
341
        } else
342
            obj->imp->put(exec, i->number(), convertNPVariantToValue(exec, variant, rootObject));
342
            obj->imp->putVirtual(exec, i->number(), convertNPVariantToValue(exec, variant, rootObject));
343
        exec->clearException();
343
        exec->clearException();
344
        return true;
344
        return true;
345
    }
345
    }
- a/Source/WebCore/bridge/jni/jni_jsobject.mm -2 / +2 lines
Lines 348-354 void JavaJSObject::setMember(jstring memberName, jobject value) const a/Source/WebCore/bridge/jni/jni_jsobject.mm_sec1
348
348
349
    JSLock lock(SilenceAssertionsOnly);
349
    JSLock lock(SilenceAssertionsOnly);
350
    PutPropertySlot slot;
350
    PutPropertySlot slot;
351
    _imp->put(exec, Identifier(exec, JavaString(memberName).impl()), convertJObjectToValue(exec, value), slot);
351
    _imp->putVirtual(exec, Identifier(exec, JavaString(memberName).impl()), convertJObjectToValue(exec, value), slot);
352
}
352
}
353
353
354
354
Lines 393-399 void JavaJSObject::setSlot(jint index, jobject value) const a/Source/WebCore/bridge/jni/jni_jsobject.mm_sec2
393
393
394
    ExecState* exec = rootObject->globalObject()->globalExec();
394
    ExecState* exec = rootObject->globalObject()->globalExec();
395
    JSLock lock(SilenceAssertionsOnly);
395
    JSLock lock(SilenceAssertionsOnly);
396
    _imp->put(exec, (unsigned)index, convertJObjectToValue(exec, value));
396
    _imp->putVirtual(exec, (unsigned)index, convertJObjectToValue(exec, value));
397
}
397
}
398
398
399
399
- a/Source/WebCore/bridge/objc/objc_runtime.h -1 / +1 lines
Lines 126-132 private: a/Source/WebCore/bridge/objc/objc_runtime.h_sec1
126
    virtual bool getOwnPropertySlot(ExecState*, const Identifier&, PropertySlot&);
126
    virtual bool getOwnPropertySlot(ExecState*, const Identifier&, PropertySlot&);
127
    static bool getOwnPropertySlot(JSCell*, ExecState*, const Identifier&, PropertySlot&);
127
    static bool getOwnPropertySlot(JSCell*, ExecState*, const Identifier&, PropertySlot&);
128
    virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
128
    virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
129
    virtual void put(ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
129
    virtual void putVirtual(ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
130
    static void put(JSCell*, ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
130
    static void put(JSCell*, ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
131
    static CallType getCallData(JSCell*, CallData&);
131
    static CallType getCallData(JSCell*, CallData&);
132
    virtual bool deleteProperty(ExecState*, const Identifier& propertyName);
132
    virtual bool deleteProperty(ExecState*, const Identifier& propertyName);
- a/Source/WebCore/bridge/objc/objc_runtime.mm -1 / +1 lines
Lines 224-230 bool ObjcFallbackObjectImp::getOwnPropertyDescriptor(ExecState*, const Identifie a/Source/WebCore/bridge/objc/objc_runtime.mm_sec1
224
    return true;
224
    return true;
225
}
225
}
226
226
227
void ObjcFallbackObjectImp::put(ExecState*, const Identifier&, JSValue, PutPropertySlot&)
227
void ObjcFallbackObjectImp::putVirtual(ExecState*, const Identifier&, JSValue, PutPropertySlot&)
228
{
228
{
229
}
229
}
230
230
- a/Source/WebCore/bridge/qt/qt_instance.cpp -1 / +1 lines
Lines 158-164 bool QtInstance::getOwnPropertySlot(JSObject* object, ExecState* exec, const Ide a/Source/WebCore/bridge/qt/qt_instance.cpp_sec1
158
158
159
void QtInstance::put(JSObject* object, ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
159
void QtInstance::put(JSObject* object, ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
160
{
160
{
161
    object->JSObject::put(exec, propertyName, value, slot);
161
    JSObject::put(object, exec, propertyName, value, slot);
162
}
162
}
163
163
164
void QtInstance::removeCachedMethod(JSObject* method)
164
void QtInstance::removeCachedMethod(JSObject* method)
- a/Source/WebCore/bridge/qt/qt_runtime.cpp -1 / +1 lines
Lines 960-966 JSValue convertQVariantToValue(ExecState* exec, PassRefPtr<RootObject> root, con a/Source/WebCore/bridge/qt/qt_runtime.cpp_sec1
960
            JSValue val = convertQVariantToValue(exec, root.get(), i.value());
960
            JSValue val = convertQVariantToValue(exec, root.get(), i.value());
961
            if (val) {
961
            if (val) {
962
                PutPropertySlot slot;
962
                PutPropertySlot slot;
963
                ret->put(exec, Identifier(exec, reinterpret_cast_ptr<const UChar *>(s.constData()), s.length()), val, slot);
963
                ret->putVirtual(exec, Identifier(exec, reinterpret_cast_ptr<const UChar *>(s.constData()), s.length()), val, slot);
964
                // ### error case?
964
                // ### error case?
965
            }
965
            }
966
            ++i;
966
            ++i;
- a/Source/WebCore/bridge/runtime_array.cpp -2 / +2 lines
Lines 142-148 bool RuntimeArray::getOwnPropertySlot(JSCell* cell, ExecState *exec, unsigned in a/Source/WebCore/bridge/runtime_array.cpp_sec1
142
    return JSObject::getOwnPropertySlot(thisObject, exec, index, slot);
142
    return JSObject::getOwnPropertySlot(thisObject, exec, index, slot);
143
}
143
}
144
144
145
void RuntimeArray::put(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
145
void RuntimeArray::putVirtual(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
146
{
146
{
147
    put(this, exec, propertyName, value, slot);
147
    put(this, exec, propertyName, value, slot);
148
}
148
}
Lines 165-171 void RuntimeArray::put(JSCell* cell, ExecState* exec, const Identifier& property a/Source/WebCore/bridge/runtime_array.cpp_sec2
165
    JSObject::put(thisObject, exec, propertyName, value, slot);
165
    JSObject::put(thisObject, exec, propertyName, value, slot);
166
}
166
}
167
167
168
void RuntimeArray::put(ExecState* exec, unsigned index, JSValue value)
168
void RuntimeArray::putVirtual(ExecState* exec, unsigned index, JSValue value)
169
{
169
{
170
    put(this, exec, index, value);
170
    put(this, exec, index, value);
171
}
171
}
- a/Source/WebCore/bridge/runtime_array.h -2 / +2 lines
Lines 55-63 public: a/Source/WebCore/bridge/runtime_array.h_sec1
55
    virtual bool getOwnPropertySlot(ExecState*, unsigned, PropertySlot&);
55
    virtual bool getOwnPropertySlot(ExecState*, unsigned, PropertySlot&);
56
    static bool getOwnPropertySlot(JSCell*, ExecState*, unsigned, PropertySlot&);
56
    static bool getOwnPropertySlot(JSCell*, ExecState*, unsigned, PropertySlot&);
57
    virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
57
    virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
58
    virtual void put(ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
58
    virtual void putVirtual(ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
59
    static void put(JSCell*, ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
59
    static void put(JSCell*, ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
60
    virtual void put(ExecState*, unsigned propertyName, JSValue);
60
    virtual void putVirtual(ExecState*, unsigned propertyName, JSValue);
61
    static void put(JSCell*, ExecState*, unsigned propertyName, JSValue);
61
    static void put(JSCell*, ExecState*, unsigned propertyName, JSValue);
62
    
62
    
63
    virtual bool deleteProperty(ExecState* exec, const Identifier &propertyName);
63
    virtual bool deleteProperty(ExecState* exec, const Identifier &propertyName);
- a/Source/WebCore/bridge/runtime_object.cpp -1 / +1 lines
Lines 216-222 bool RuntimeObject::getOwnPropertyDescriptor(ExecState *exec, const Identifier& a/Source/WebCore/bridge/runtime_object.cpp_sec1
216
    return instance->getOwnPropertyDescriptor(this, exec, propertyName, descriptor);
216
    return instance->getOwnPropertyDescriptor(this, exec, propertyName, descriptor);
217
}
217
}
218
218
219
void RuntimeObject::put(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
219
void RuntimeObject::putVirtual(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
220
{
220
{
221
    put(this, exec, propertyName, value, slot);
221
    put(this, exec, propertyName, value, slot);
222
}
222
}
- a/Source/WebCore/bridge/runtime_object.h -1 / +1 lines
Lines 48-54 public: a/Source/WebCore/bridge/runtime_object.h_sec1
48
    virtual bool getOwnPropertySlot(ExecState*, const Identifier& propertyName, PropertySlot&);
48
    virtual bool getOwnPropertySlot(ExecState*, const Identifier& propertyName, PropertySlot&);
49
    static bool getOwnPropertySlot(JSCell*, ExecState*, const Identifier& propertyName, PropertySlot&);
49
    static bool getOwnPropertySlot(JSCell*, ExecState*, const Identifier& propertyName, PropertySlot&);
50
    virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier& propertyName, PropertyDescriptor&);
50
    virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier& propertyName, PropertyDescriptor&);
51
    virtual void put(ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
51
    virtual void putVirtual(ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
52
    static void put(JSCell*, ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
52
    static void put(JSCell*, ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
53
    virtual bool deleteProperty(ExecState*, const Identifier& propertyName);
53
    virtual bool deleteProperty(ExecState*, const Identifier& propertyName);
54
    static bool deleteProperty(JSCell*, ExecState*, const Identifier& propertyName);
54
    static bool deleteProperty(JSCell*, ExecState*, const Identifier& propertyName);
- a/Source/WebCore/bridge/testqtbindings.cpp -1 / +1 lines
Lines 104-110 int main(int argc, char** argv) a/Source/WebCore/bridge/testqtbindings.cpp_sec1
104
        
104
        
105
        MyObject* myObject = new MyObject;
105
        MyObject* myObject = new MyObject;
106
        
106
        
107
        global->put(exec, Identifier("myInterface"), Instance::createRuntimeObject(Instance::QtLanguage, (void*)myObject));
107
        global->putVirtual(exec, Identifier("myInterface"), Instance::createRuntimeObject(Instance::QtLanguage, (void*)myObject));
108
        
108
        
109
        
109
        
110
        if (code) {
110
        if (code) {
- a/Source/WebKit/efl/ChangeLog +15 lines
Lines 1-3 a/Source/WebKit/efl/ChangeLog_sec1
1
2011-10-12  Mark Hahnenberg  <mhahnenberg@apple.com>
2
3
        Rename virtual put to putVirtual
4
        https://bugs.webkit.org/show_bug.cgi?id=69851
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        Renamed virtual versions of put to putVirtual in prepration for 
9
        adding the static put to the MethodTable in ClassInfo since the 
10
        compiler gets mad if the virtual and static versions have the same 
11
        name.
12
13
        * ewk/ewk_view.cpp:
14
        (ewk_view_js_object_add):
15
1
2011-10-10  Raphael Kubo da Costa  <kubo@profusion.mobi>
16
2011-10-10  Raphael Kubo da Costa  <kubo@profusion.mobi>
2
17
3
        [EFL] Do not cache a frame's contents size.
18
        [EFL] Do not cache a frame's contents size.
- a/Source/WebKit/efl/ewk/ewk_view.cpp -1 / +1 lines
Lines 3654-3660 Eina_Bool ewk_view_js_object_add(Evas_Object* o, Ewk_JS_Object* obj, const char* a/Source/WebKit/efl/ewk/ewk_view.cpp_sec1
3654
    JSC::Identifier id = JSC::Identifier(exec, obj_name);
3654
    JSC::Identifier id = JSC::Identifier(exec, obj_name);
3655
3655
3656
    JSC::PutPropertySlot slot;
3656
    JSC::PutPropertySlot slot;
3657
    window->put(exec, id, runtimeObject, slot);
3657
    window->putVirtual(exec, id, runtimeObject, slot);
3658
    return EINA_TRUE;
3658
    return EINA_TRUE;
3659
#else
3659
#else
3660
    return EINA_FALSE;
3660
    return EINA_FALSE;
- a/Source/WebKit/mac/ChangeLog +15 lines
Lines 1-3 a/Source/WebKit/mac/ChangeLog_sec1
1
2011-10-12  Mark Hahnenberg  <mhahnenberg@apple.com>
2
3
        Rename virtual put to putVirtual
4
        https://bugs.webkit.org/show_bug.cgi?id=69851
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        Renamed virtual versions of put to putVirtual in prepration for 
9
        adding the static put to the MethodTable in ClassInfo since the 
10
        compiler gets mad if the virtual and static versions have the same 
11
        name.
12
13
        * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
14
        (WebKit::NetscapePluginInstanceProxy::setProperty):
15
1
2011-10-10  Nate Chapin  <japhet@chromium.org>
16
2011-10-10  Nate Chapin  <japhet@chromium.org>
2
17
3
        Use a CachedImageClient instead of CachedResourceClient
18
        Use a CachedImageClient instead of CachedResourceClient
- a/Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm -2 / +2 lines
Lines 1060-1066 bool NetscapePluginInstanceProxy::setProperty(uint32_t objectID, const Identifie a/Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm_sec1
1060
1060
1061
    JSValue value = demarshalValue(exec, valueData, valueLength);
1061
    JSValue value = demarshalValue(exec, valueData, valueLength);
1062
    PutPropertySlot slot;
1062
    PutPropertySlot slot;
1063
    object->put(exec, propertyName, value, slot);
1063
    object->putVirtual(exec, propertyName, value, slot);
1064
    
1064
    
1065
    exec->clearException();
1065
    exec->clearException();
1066
    return true;
1066
    return true;
Lines 1085-1091 bool NetscapePluginInstanceProxy::setProperty(uint32_t objectID, unsigned proper a/Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm_sec2
1085
    JSLock lock(SilenceAssertionsOnly);    
1085
    JSLock lock(SilenceAssertionsOnly);    
1086
    
1086
    
1087
    JSValue value = demarshalValue(exec, valueData, valueLength);
1087
    JSValue value = demarshalValue(exec, valueData, valueLength);
1088
    object->put(exec, propertyName, value);
1088
    object->putVirtual(exec, propertyName, value);
1089
    
1089
    
1090
    exec->clearException();
1090
    exec->clearException();
1091
    return true;
1091
    return true;
- a/Source/WebKit/qt/Api/qwebframe.cpp -1 / +1 lines
Lines 688-694 void QWebFrame::addToJavaScriptWindowObject(const QString &name, QObject *object a/Source/WebKit/qt/Api/qwebframe.cpp_sec1
688
            JSC::Bindings::QtInstance::getQtInstance(object, root, ownership)->createRuntimeObject(exec);
688
            JSC::Bindings::QtInstance::getQtInstance(object, root, ownership)->createRuntimeObject(exec);
689
689
690
    JSC::PutPropertySlot slot;
690
    JSC::PutPropertySlot slot;
691
    window->put(exec, JSC::Identifier(exec, reinterpret_cast_ptr<const UChar*>(name.constData()), name.length()), runtimeObject, slot);
691
    window->putVirtual(exec, JSC::Identifier(exec, reinterpret_cast_ptr<const UChar*>(name.constData()), name.length()), runtimeObject, slot);
692
#elif USE(V8)
692
#elif USE(V8)
693
    QScriptEngine* engine = d->frame->script()->qtScriptEngine();
693
    QScriptEngine* engine = d->frame->script()->qtScriptEngine();
694
    if (!engine)
694
    if (!engine)
- a/Source/WebKit/qt/ChangeLog +15 lines
Lines 1-3 a/Source/WebKit/qt/ChangeLog_sec1
1
2011-10-12  Mark Hahnenberg  <mhahnenberg@apple.com>
2
3
        Rename virtual put to putVirtual
4
        https://bugs.webkit.org/show_bug.cgi?id=69851
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        Renamed virtual versions of put to putVirtual in prepration for 
9
        adding the static put to the MethodTable in ClassInfo since the 
10
        compiler gets mad if the virtual and static versions have the same 
11
        name.
12
13
        * Api/qwebframe.cpp:
14
        (QWebFrame::addToJavaScriptWindowObject):
15
1
2011-10-11  Simon Fraser  <simon.fraser@apple.com>
16
2011-10-11  Simon Fraser  <simon.fraser@apple.com>
2
17
3
        Make custom scrollbar theme for use in DRT, to reduce pixel diffs between platforms
18
        Make custom scrollbar theme for use in DRT, to reduce pixel diffs between platforms
- a/Source/WebKit2/ChangeLog +19 lines
Lines 1-3 a/Source/WebKit2/ChangeLog_sec1
1
2011-10-12  Mark Hahnenberg  <mhahnenberg@apple.com>
2
3
        Rename virtual put to putVirtual
4
        https://bugs.webkit.org/show_bug.cgi?id=69851
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        Renamed virtual versions of put to putVirtual in prepration for 
9
        adding the static put to the MethodTable in ClassInfo since the 
10
        compiler gets mad if the virtual and static versions have the same 
11
        name.
12
13
        * WebProcess/Plugins/Netscape/JSNPObject.cpp:
14
        (WebKit::JSNPObject::putVirtual):
15
        (WebKit::JSNPObject::put):
16
        * WebProcess/Plugins/Netscape/JSNPObject.h:
17
        * WebProcess/Plugins/Netscape/NPJSObject.cpp:
18
        (WebKit::NPJSObject::setProperty):
19
1
2011-10-12  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
20
2011-10-12  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
2
21
3
        [Qt][WK2] Move qweberror* out of API/qt
22
        [Qt][WK2] Move qweberror* out of API/qt
- a/Source/WebKit2/WebProcess/Plugins/Netscape/JSNPObject.cpp -8 / +14 lines
Lines 312-346 bool JSNPObject::getOwnPropertyDescriptor(ExecState* exec, const Identifier& pro a/Source/WebKit2/WebProcess/Plugins/Netscape/JSNPObject.cpp_sec1
312
    return false;
312
    return false;
313
}
313
}
314
314
315
void JSNPObject::put(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot&)
315
void JSNPObject::putVirtual(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
316
{
316
{
317
    ASSERT_GC_OBJECT_INHERITS(this, &s_info);
317
    put(this, exec, propertyName, value, slot);
318
    if (!m_npObject) {
318
}
319
320
void JSNPObject::put(JSCell* cell, ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot&)
321
{
322
    JSNPObject* thisObject = static_cast<JSNPObject*>(cell);
323
    ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info);
324
    if (!thisObject->m_npObject) {
319
        throwInvalidAccessError(exec);
325
        throwInvalidAccessError(exec);
320
        return;
326
        return;
321
    }
327
    }
322
328
323
    NPIdentifier npIdentifier = npIdentifierFromIdentifier(propertyName);
329
    NPIdentifier npIdentifier = npIdentifierFromIdentifier(propertyName);
324
    
330
    
325
    if (!m_npObject->_class->hasProperty || !m_npObject->_class->hasProperty(m_npObject, npIdentifier)) {
331
    if (!thisObject->m_npObject->_class->hasProperty || !thisObject->m_npObject->_class->hasProperty(thisObject->m_npObject, npIdentifier)) {
326
        // FIXME: Should we throw an exception here?
332
        // FIXME: Should we throw an exception here?
327
        return;
333
        return;
328
    }
334
    }
329
335
330
    if (!m_npObject->_class->setProperty)
336
    if (!thisObject->m_npObject->_class->setProperty)
331
        return;
337
        return;
332
338
333
    NPVariant variant;
339
    NPVariant variant;
334
    m_objectMap->convertJSValueToNPVariant(exec, value, variant);
340
    thisObject->m_objectMap->convertJSValueToNPVariant(exec, value, variant);
335
341
336
    // Calling NPClass::setProperty will call into plug-in code, and there's no telling what the plug-in can do.
342
    // Calling NPClass::setProperty will call into plug-in code, and there's no telling what the plug-in can do.
337
    // (including destroying the plug-in). Because of this, we make sure to keep the plug-in alive until 
343
    // (including destroying the plug-in). Because of this, we make sure to keep the plug-in alive until 
338
    // the call has finished.
344
    // the call has finished.
339
    NPRuntimeObjectMap::PluginProtector protector(m_objectMap);
345
    NPRuntimeObjectMap::PluginProtector protector(thisObject->m_objectMap);
340
346
341
    {
347
    {
342
        JSLock::DropAllLocks dropAllLocks(SilenceAssertionsOnly);
348
        JSLock::DropAllLocks dropAllLocks(SilenceAssertionsOnly);
343
        m_npObject->_class->setProperty(m_npObject, npIdentifier, &variant);
349
        thisObject->m_npObject->_class->setProperty(thisObject->m_npObject, npIdentifier, &variant);
344
350
345
        NPRuntimeObjectMap::moveGlobalExceptionToExecState(exec);
351
        NPRuntimeObjectMap::moveGlobalExceptionToExecState(exec);
346
352
- a/Source/WebKit2/WebProcess/Plugins/Netscape/JSNPObject.h -1 / +2 lines
Lines 86-92 private: a/Source/WebKit2/WebProcess/Plugins/Netscape/JSNPObject.h_sec1
86
    virtual bool getOwnPropertySlot(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::PropertySlot&);
86
    virtual bool getOwnPropertySlot(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::PropertySlot&);
87
    static bool getOwnPropertySlot(JSC::JSCell*, JSC::ExecState*, const JSC::Identifier& propertyName, JSC::PropertySlot&);
87
    static bool getOwnPropertySlot(JSC::JSCell*, JSC::ExecState*, const JSC::Identifier& propertyName, JSC::PropertySlot&);
88
    virtual bool getOwnPropertyDescriptor(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::PropertyDescriptor&);
88
    virtual bool getOwnPropertyDescriptor(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::PropertyDescriptor&);
89
    virtual void put(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::JSValue, JSC::PutPropertySlot&);
89
    virtual void putVirtual(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::JSValue, JSC::PutPropertySlot&);
90
    static void put(JSC::JSCell*, JSC::ExecState*, const JSC::Identifier& propertyName, JSC::JSValue, JSC::PutPropertySlot&);
90
91
91
    virtual bool deleteProperty(JSC::ExecState*, const JSC::Identifier& propertyName);
92
    virtual bool deleteProperty(JSC::ExecState*, const JSC::Identifier& propertyName);
92
    virtual bool deleteProperty(JSC::ExecState*, unsigned propertyName);
93
    virtual bool deleteProperty(JSC::ExecState*, unsigned propertyName);
- a/Source/WebKit2/WebProcess/Plugins/Netscape/NPJSObject.cpp -2 / +2 lines
Lines 188-196 bool NPJSObject::setProperty(NPIdentifier propertyName, const NPVariant* value) a/Source/WebKit2/WebProcess/Plugins/Netscape/NPJSObject.cpp_sec1
188
    JSValue jsValue = m_objectMap->convertNPVariantToJSValue(exec, m_objectMap->globalObject(), *value);
188
    JSValue jsValue = m_objectMap->convertNPVariantToJSValue(exec, m_objectMap->globalObject(), *value);
189
    if (identifierRep->isString()) {
189
    if (identifierRep->isString()) {
190
        PutPropertySlot slot;
190
        PutPropertySlot slot;
191
        m_jsObject->put(exec, identifierFromIdentifierRep(exec, identifierRep), jsValue, slot);
191
        m_jsObject->putVirtual(exec, identifierFromIdentifierRep(exec, identifierRep), jsValue, slot);
192
    } else
192
    } else
193
        m_jsObject->put(exec, identifierRep->number(), jsValue);
193
        m_jsObject->putVirtual(exec, identifierRep->number(), jsValue);
194
    exec->clearException();
194
    exec->clearException();
195
    
195
    
196
    return true;
196
    return true;
- a/Source/autotools/symbols.filter -3 / +3 lines
Lines 33-39 _ZN7WebCore5RangeD1Ev; a/Source/autotools/symbols.filter_sec1
33
_ZN7WebCore8Document36updateLayoutIgnorePendingStylesheetsEv;
33
_ZN7WebCore8Document36updateLayoutIgnorePendingStylesheetsEv;
34
_ZN7WebCore9HTMLNames8inputTagE;
34
_ZN7WebCore9HTMLNames8inputTagE;
35
_ZN7WebCore9HTMLNames11textareaTagE;
35
_ZN7WebCore9HTMLNames11textareaTagE;
36
_ZN7WebCore10JSDocument3putEPN3JSC9ExecStateERKNS1_10IdentifierENS1_7JSValueERNS1_15PutPropertySlotE;
36
_ZN7WebCore10JSDocument10putVirtualEPN3JSC9ExecStateERKNS1_10IdentifierENS1_7JSValueERNS1_15PutPropertySlotE;
37
_ZN7WebCore10JSDocument6s_infoE;
37
_ZN7WebCore10JSDocument6s_infoE;
38
_ZN7WebCore10toDocumentEN3JSC7JSValueE;
38
_ZN7WebCore10toDocumentEN3JSC7JSValueE;
39
_ZN7WebCore10ClientRectC1Ev;
39
_ZN7WebCore10ClientRectC1Ev;
Lines 54-66 _ZN7WebCore20ShadowContentElement6createEPNS_8DocumentE; a/Source/autotools/symbols.filter_sec2
54
_ZN7WebCore21getCachedDOMStructureEPNS_17JSDOMGlobalObjectEPKN3JSC9ClassInfoE;
54
_ZN7WebCore21getCachedDOMStructureEPNS_17JSDOMGlobalObjectEPKN3JSC9ClassInfoE;
55
_ZN7WebCore22externalRepresentationEPNS_7ElementEj;
55
_ZN7WebCore22externalRepresentationEPNS_7ElementEj;
56
_ZN7WebCore24DocumentMarkerController10markersForEPNS_4NodeE;
56
_ZN7WebCore24DocumentMarkerController10markersForEPNS_4NodeE;
57
_ZN7WebCore6JSNode10putVirtualEPN3JSC9ExecStateERKNS1_10IdentifierENS1_7JSValueERNS1_15PutPropertySlotE;
57
_ZN7WebCore6JSNode20visitChildrenVirtualERN3JSC11SlotVisitorE;
58
_ZN7WebCore6JSNode20visitChildrenVirtualERN3JSC11SlotVisitorE;
58
_ZN7WebCore6JSNode3putEPN3JSC9ExecStateERKNS1_10IdentifierENS1_7JSValueERNS1_15PutPropertySlotE;
59
_ZN7WebCore6JSNode6s_infoE;
59
_ZN7WebCore6JSNode6s_infoE;
60
_ZN7WebCore6toNodeEN3JSC7JSValueE;
60
_ZN7WebCore6toNodeEN3JSC7JSValueE;
61
_ZN7WebCore7Element16ensureShadowRootEv;
61
_ZN7WebCore7Element16ensureShadowRootEv;
62
_ZN7WebCore7Element16removeShadowRootEv;
62
_ZN7WebCore7Element16removeShadowRootEv;
63
_ZN7WebCore9JSElement3putEPN3JSC9ExecStateERKNS1_10IdentifierENS1_7JSValueERNS1_15PutPropertySlotE;
63
_ZN7WebCore9JSElement10putVirtualEPN3JSC9ExecStateERKNS1_10IdentifierENS1_7JSValueERNS1_15PutPropertySlotE;
64
_ZN7WebCore9JSElement6s_infoE;
64
_ZN7WebCore9JSElement6s_infoE;
65
_ZN7WebCore9toElementEN3JSC7JSValueE;
65
_ZN7WebCore9toElementEN3JSC7JSValueE;
66
_ZNK7WebCore16HTMLInputElement14suggestedValueEv;
66
_ZNK7WebCore16HTMLInputElement14suggestedValueEv;

Return to Bug 69851