Ignore:
Timestamp:
Jan 28, 2009, 2:54:21 PM (16 years ago)
Author:
[email protected]
Message:

JavaScriptCore:

2009-01-28 Sam Weinig <[email protected]>

Reviewed by Geoff Garen.

Fix for <rdar://problem/6129678>
REGRESSION (Safari 3-4): Local variable not accessible from Dashcode console or variables view

Iterating the properties of activation objects accessed through the WebKit debugging
APIs was broken by forced conversion of JSActivation to the global object. To fix this,
we use a proxy activation object that acts more like a normal JSObject.

  • debugger/DebuggerActivation.cpp: Added. (JSC::DebuggerActivation::DebuggerActivation): (JSC::DebuggerActivation::mark): (JSC::DebuggerActivation::className): (JSC::DebuggerActivation::getOwnPropertySlot): (JSC::DebuggerActivation::put): (JSC::DebuggerActivation::putWithAttributes): (JSC::DebuggerActivation::deleteProperty): (JSC::DebuggerActivation::getPropertyNames): (JSC::DebuggerActivation::getPropertyAttributes): (JSC::DebuggerActivation::defineGetter): (JSC::DebuggerActivation::defineSetter): (JSC::DebuggerActivation::lookupGetter): (JSC::DebuggerActivation::lookupSetter):
  • debugger/DebuggerActivation.h: Added. Proxy JSActivation object for Debugging.
  • runtime/JSActivation.h: (JSC::JSActivation::isActivationObject): Added.
  • runtime/JSObject.h: (JSC::JSObject::isActivationObject): Added.

WebCore:

2009-01-28 Sam Weinig <[email protected]>

Reviewed by Geoff Garen.

Add forwarding header.

  • ForwardingHeaders/debugger/DebuggerActivation.h: Added.

WebKit/mac:

2009-01-28 Sam Weinig <[email protected]>

Reviewed by Geoff Garen.

Fix for <rdar://problem/6129678>
REGRESSION (Safari 3-4): Local variable not accessible from Dashcode console or variables view

  • WebView/WebScriptDebugDelegate.mm: (-[WebScriptCallFrame scopeChain]): Wrap JSActivations in DebuggerActivations.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj

    r40055 r40332  
    151151                969A072C0ED1CE6900F1F681 /* SegmentedVector.h in Headers */ = {isa = PBXBuildFile; fileRef = 969A07290ED1CE6900F1F681 /* SegmentedVector.h */; };
    152152                969A07960ED1D3AE00F1F681 /* CodeBlock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 969A07900ED1D3AE00F1F681 /* CodeBlock.cpp */; };
    153                 969A07970ED1D3AE00F1F681 /* CodeBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = 969A07910ED1D3AE00F1F681 /* CodeBlock.h */; };
     153                969A07970ED1D3AE00F1F681 /* CodeBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = 969A07910ED1D3AE00F1F681 /* CodeBlock.h */; settings = {ATTRIBUTES = (); }; };
    154154                969A07980ED1D3AE00F1F681 /* EvalCodeCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 969A07920ED1D3AE00F1F681 /* EvalCodeCache.h */; };
    155155                969A07990ED1D3AE00F1F681 /* Instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = 969A07930ED1D3AE00F1F681 /* Instruction.h */; };
     
    214214                BC18C4140E16F5CD00B34460 /* JavaScriptCore.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CAA8B4B0D32C39A0041BCFF /* JavaScriptCore.h */; settings = {ATTRIBUTES = (Public, ); }; };
    215215                BC18C4150E16F5CD00B34460 /* JavaScriptCorePrefix.h in Headers */ = {isa = PBXBuildFile; fileRef = F5C290E60284F98E018635CA /* JavaScriptCorePrefix.h */; };
    216                 BC18C4160E16F5CD00B34460 /* JSActivation.h in Headers */ = {isa = PBXBuildFile; fileRef = 14DA818E0D99FD2000B0A4FB /* JSActivation.h */; };
     216                BC18C4160E16F5CD00B34460 /* JSActivation.h in Headers */ = {isa = PBXBuildFile; fileRef = 14DA818E0D99FD2000B0A4FB /* JSActivation.h */; settings = {ATTRIBUTES = (); }; };
    217217                BC18C4170E16F5CD00B34460 /* JSArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 938772E5038BFE19008635CE /* JSArray.h */; settings = {ATTRIBUTES = (Private, ); }; };
    218218                BC18C4180E16F5CD00B34460 /* JSBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 142711380A460BBB0080EEEA /* JSBase.h */; settings = {ATTRIBUTES = (Public, ); }; };
     
    313313                BC257DF40E1F53740016B6C9 /* PrototypeFunction.h in Headers */ = {isa = PBXBuildFile; fileRef = BC257DF20E1F53740016B6C9 /* PrototypeFunction.h */; settings = {ATTRIBUTES = (Private, ); }; };
    314314                BC3046070E1F497F003232CF /* Error.h in Headers */ = {isa = PBXBuildFile; fileRef = BC3046060E1F497F003232CF /* Error.h */; settings = {ATTRIBUTES = (Private, ); }; };
     315                BC3135640F302FA3003DFD3A /* DebuggerActivation.h in Headers */ = {isa = PBXBuildFile; fileRef = BC3135620F302FA3003DFD3A /* DebuggerActivation.h */; settings = {ATTRIBUTES = (Private, ); }; };
     316                BC3135650F302FA3003DFD3A /* DebuggerActivation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC3135630F302FA3003DFD3A /* DebuggerActivation.cpp */; };
    315317                BC6AAAE50E1F426500AD87D8 /* ClassInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = BC6AAAE40E1F426500AD87D8 /* ClassInfo.h */; settings = {ATTRIBUTES = (Private, ); }; };
    316318                BC756FC90E2031B200DE7D12 /* JSGlobalObjectFunctions.h in Headers */ = {isa = PBXBuildFile; fileRef = BC756FC70E2031B200DE7D12 /* JSGlobalObjectFunctions.h */; };
     
    717719                BC2680E60E16D52300A06E92 /* NumberConstructor.lut.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NumberConstructor.lut.h; sourceTree = "<group>"; };
    718720                BC3046060E1F497F003232CF /* Error.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Error.h; sourceTree = "<group>"; };
     721                BC3135620F302FA3003DFD3A /* DebuggerActivation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DebuggerActivation.h; sourceTree = "<group>"; };
     722                BC3135630F302FA3003DFD3A /* DebuggerActivation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DebuggerActivation.cpp; sourceTree = "<group>"; };
    719723                BC337BDE0E1AF0B80076918A /* GetterSetter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GetterSetter.h; sourceTree = "<group>"; };
    720724                BC337BEA0E1B00CB0076918A /* Error.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Error.cpp; sourceTree = "<group>"; };
     
    10351039                                149559ED0DDCDDF700648087 /* DebuggerCallFrame.cpp */,
    10361040                                1480DB9B0DDC227F003CFDF2 /* DebuggerCallFrame.h */,
     1041                                BC3135630F302FA3003DFD3A /* DebuggerActivation.cpp */,
     1042                                BC3135620F302FA3003DFD3A /* DebuggerActivation.h */,
    10371043                        );
    10381044                        path = debugger;
     
    17011707                                BC18C4720E16F5CD00B34460 /* ucpinternal.h in Headers */,
    17021708                                A7A1F7AD0F252B3C00E184E2 /* ByteArray.h in Headers */,
     1709                                BC3135640F302FA3003DFD3A /* DebuggerActivation.h in Headers */,
    17031710                        );
    17041711                        runOnlyForDeploymentPostprocessing = 0;
     
    20522059                                93E26BD408B1514100F85226 /* pcre_xclass.cpp in Sources */,
    20532060                                A7A1F7AC0F252B3C00E184E2 /* ByteArray.cpp in Sources */,
     2061                                BC3135650F302FA3003DFD3A /* DebuggerActivation.cpp in Sources */,
    20542062                        );
    20552063                        runOnlyForDeploymentPostprocessing = 0;
Note: See TracChangeset for help on using the changeset viewer.