Ignore:
Timestamp:
Oct 24, 2007, 11:38:35 PM (18 years ago)
Author:
eseidel
Message:

2007-10-24 Eric Seidel <[email protected]>

Reviewed by Maciej.


Add a JSGlobalObject class and remove the InterpreterMap
http://bugs.webkit.org/show_bug.cgi?id=15681


This required making JSCallbackObject a template class to allow for
JSGlobalObjects with JSCallbackObject functionality.


SunSpider claims this was a 0.5% speedup.

  • API/JSCallbackObject.cpp: (KJS::):
  • API/JSCallbackObject.h:
  • API/JSCallbackObjectFunctions.h: Copied from API/JSCallbackObject.cpp. (KJS::::JSCallbackObject): (KJS::::init): (KJS::::~JSCallbackObject): (KJS::::initializeIfNeeded): (KJS::::className): (KJS::::getOwnPropertySlot): (KJS::::put): (KJS::::deleteProperty): (KJS::::implementsConstruct): (KJS::::construct): (KJS::::implementsHasInstance): (KJS::::hasInstance): (KJS::::implementsCall): (KJS::::callAsFunction): (KJS::::getPropertyNames): (KJS::::toNumber): (KJS::::toString): (KJS::::setPrivate): (KJS::::getPrivate): (KJS::::inherits): (KJS::::cachedValueGetter): (KJS::::staticValueGetter): (KJS::::staticFunctionGetter): (KJS::::callbackGetter):
  • API/JSClassRef.cpp: (OpaqueJSClass::prototype):
  • API/JSContextRef.cpp: (JSGlobalContextCreate):
  • API/JSObjectRef.cpp: (JSObjectMake): (JSObjectGetPrivate): (JSObjectSetPrivate):
  • API/JSValueRef.cpp: (JSValueIsObjectOfClass):
  • JavaScriptCore.exp:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bindings/c/c_utility.cpp: (KJS::Bindings::convertValueToNPVariant):
  • bindings/jni/jni_jsobject.cpp:
  • bindings/objc/objc_utility.mm: (KJS::Bindings::convertValueToObjcValue):
  • kjs/Context.cpp: (KJS::Context::Context):
  • kjs/ExecState.cpp: (KJS::ExecState::lexicalInterpreter):
  • kjs/JSGlobalObject.h: Added. (KJS::JSGlobalObject::JSGlobalObject): (KJS::JSGlobalObject::isGlobalObject): (KJS::JSGlobalObject::interpreter): (KJS::JSGlobalObject::setInterpreter):
  • kjs/array_instance.cpp:
  • kjs/context.h:
  • kjs/function.cpp: (KJS::FunctionImp::callAsFunction): (KJS::GlobalFuncImp::callAsFunction):
  • kjs/interpreter.cpp: (KJS::Interpreter::Interpreter): (KJS::Interpreter::init): (KJS::Interpreter::~Interpreter): (KJS::Interpreter::globalObject): (KJS::Interpreter::initGlobalObject): (KJS::Interpreter::evaluate):
  • kjs/interpreter.h:
  • kjs/lookup.h: (KJS::cacheGlobalObject):
  • kjs/object.h: (KJS::JSObject::isGlobalObject):
  • kjs/testkjs.cpp:
File:
1 edited

Legend:

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

    r26995 r27022  
    232232                93F0B3AC09BB4DC00068FCE3 /* Parser.h in Headers */ = {isa = PBXBuildFile; fileRef = 93F0B3AA09BB4DC00068FCE3 /* Parser.h */; };
    233233                95C18D490C90E82600E72F73 /* JSRetainPtr.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C18D3E0C90E7EF00E72F73 /* JSRetainPtr.h */; settings = {ATTRIBUTES = (Private, ); }; };
     234                A8E894320CD0602400367179 /* JSCallbackObjectFunctions.h in Headers */ = {isa = PBXBuildFile; fileRef = A8E894310CD0602400367179 /* JSCallbackObjectFunctions.h */; };
     235                A8E894340CD0603F00367179 /* JSGlobalObject.h in Headers */ = {isa = PBXBuildFile; fileRef = A8E894330CD0603F00367179 /* JSGlobalObject.h */; };
    234236                BCF655590A2049710038A194 /* MathExtras.h in Headers */ = {isa = PBXBuildFile; fileRef = BCF6553B0A2048DE0038A194 /* MathExtras.h */; settings = {ATTRIBUTES = (Private, ); }; };
    235237                D212022B0AD4310D00ED79B6 /* DateMath.h in Headers */ = {isa = PBXBuildFile; fileRef = D21202290AD4310C00ED79B6 /* DateMath.h */; };
     
    587589                93F1981A08245AAE001E9ABC /* keywords.table */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = text; path = keywords.table; sourceTree = "<group>"; tabWidth = 8; };
    588590                95C18D3E0C90E7EF00E72F73 /* JSRetainPtr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSRetainPtr.h; sourceTree = "<group>"; };
     591                A8E894310CD0602400367179 /* JSCallbackObjectFunctions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCallbackObjectFunctions.h; sourceTree = "<group>"; };
     592                A8E894330CD0603F00367179 /* JSGlobalObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSGlobalObject.h; sourceTree = "<group>"; };
    589593                BCF6553B0A2048DE0038A194 /* MathExtras.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MathExtras.h; sourceTree = "<group>"; };
    590594                D21202280AD4310C00ED79B6 /* DateMath.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = DateMath.cpp; sourceTree = "<group>"; };
     
    771775                                14ABDF5E0A437FEF00ECCA01 /* JSCallbackObject.cpp */,
    772776                                14ABDF5D0A437FEF00ECCA01 /* JSCallbackObject.h */,
     777                                A8E894310CD0602400367179 /* JSCallbackObjectFunctions.h */,
    773778                                1440FCE20A51E46B0005F061 /* JSClassRef.cpp */,
    774779                                1440FCE10A51E46B0005F061 /* JSClassRef.h */,
     
    780785                                1482B74C0A43032800517CFC /* JSStringRef.cpp */,
    781786                                1482B74B0A43032800517CFC /* JSStringRef.h */,
     787                                146AAB370B66A94400E55F16 /* JSStringRefCF.cpp */,
    782788                                146AAB2A0B66A84900E55F16 /* JSStringRefCF.h */,
    783                                 146AAB370B66A94400E55F16 /* JSStringRefCF.cpp */,
    784789                                14BD5A2B0A3E91F600BAF59C /* JSValueRef.cpp */,
    785790                                1482B6EA0A4300B300517CFC /* JSValueRef.h */,
     
    946951                        isa = PBXGroup;
    947952                        children = (
    948                                 65C7A1710A8EAACB00FA37EA /* JSWrapperObject.cpp */,
    949                                 65EA73620BAE35D1001BB560 /* CommonIdentifiers.cpp */,
    950                                 65EA73630BAE35D1001BB560 /* CommonIdentifiers.h */,
    951                                 65C7A1720A8EAACB00FA37EA /* JSWrapperObject.h */,
    952                                 65400C0F0A69BAF200509887 /* PropertyNameArray.cpp */,
    953                                 65400C100A69BAF200509887 /* PropertyNameArray.h */,
     953                                659126BC0BDD1728001921FB /* AllInOneFile.cpp */,
     954                                93ADFCE60CCBD7AC00D30B08 /* array_instance.cpp */,
    954955                                938772E5038BFE19008635CE /* array_instance.h */,
    955                                 93ADFCE60CCBD7AC00D30B08 /* array_instance.cpp */,
    956                                 659126BC0BDD1728001921FB /* AllInOneFile.cpp */,
    957956                                F692A84D0255597D01FF60F7 /* array_object.cpp */,
    958957                                F692A84E0255597D01FF60F7 /* array_object.h */,
     
    961960                                F692A8520255597D01FF60F7 /* collector.cpp */,
    962961                                F692A8530255597D01FF60F7 /* collector.h */,
     962                                5DBD18A90C54018700C15EAE /* CollectorHeapIntrospector.cpp */,
    963963                                5DBD18AA0C54018700C15EAE /* CollectorHeapIntrospector.h */,
    964                                 5DBD18A90C54018700C15EAE /* CollectorHeapIntrospector.cpp */,
     964                                65EA73620BAE35D1001BB560 /* CommonIdentifiers.cpp */,
     965                                65EA73630BAE35D1001BB560 /* CommonIdentifiers.h */,
    965966                                F5BB2BC5030F772101FCFE1D /* completion.h */,
    966967                                F68EBB8C0255D4C601FF60F7 /* config.h */,
     
    978979                                F692A85A0255597D01FF60F7 /* error_object.cpp */,
    979980                                F692A85B0255597D01FF60F7 /* error_object.h */,
     981                                14BD53F40A3E12D800BAF59C /* ExecState.cpp */,
     982                                14BD53F30A3E12D800BAF59C /* ExecState.h */,
    980983                                9364B273045B7D6C00A9CAC1 /* fpconst.cpp */,
    981984                                F692A85E0255597D01FF60F7 /* function.cpp */,
     
    991994                                F692A8640255597D01FF60F7 /* interpreter.h */,
    992995                                F5C290E60284F98E018635CA /* JavaScriptCorePrefix.h */,
     996                                A8E894330CD0603F00367179 /* JSGlobalObject.h */,
    993997                                14760863099C633800437128 /* JSImmediate.cpp */,
    994998                                1483B589099BC1950016E4F0 /* JSImmediate.h */,
     
    9961000                                65EA4C9A092AF9E20093D800 /* JSLock.h */,
    9971001                                14ABB454099C2A0F00E2A24F /* JSType.h */,
     1002                                65C7A1710A8EAACB00FA37EA /* JSWrapperObject.cpp */,
     1003                                65C7A1720A8EAACB00FA37EA /* JSWrapperObject.h */,
    9981004                                93F1981A08245AAE001E9ABC /* keywords.table */,
    9991005                                F692A8650255597D01FF60F7 /* lexer.cpp */,
     
    10221028                                65621E6B089E859700760F35 /* property_slot.cpp */,
    10231029                                65621E6C089E859700760F35 /* property_slot.h */,
     1030                                65400C0F0A69BAF200509887 /* PropertyNameArray.cpp */,
     1031                                65400C100A69BAF200509887 /* PropertyNameArray.h */,
    10241032                                65C02FBB0637462A003E7EE6 /* protect.h */,
    10251033                                F692A87D0255597D01FF60F7 /* regexp.cpp */,
     
    10271035                                F692A87B0255597D01FF60F7 /* regexp_object.cpp */,
    10281036                                F692A87C0255597D01FF60F7 /* regexp_object.h */,
     1037                                14BD534A0A3E0AEA00BAF59C /* SavedBuiltins.h */,
    10291038                                9374D3A8038D9D74008635CE /* scope_chain.cpp */,
    10301039                                9374D3A7038D9D74008635CE /* scope_chain.h */,
     
    10361045                                F692A8870255597D01FF60F7 /* value.cpp */,
    10371046                                14ABB36E099C076400E2A24F /* value.h */,
    1038                                 14BD534A0A3E0AEA00BAF59C /* SavedBuiltins.h */,
    1039                                 14BD53F30A3E12D800BAF59C /* ExecState.h */,
    1040                                 14BD53F40A3E12D800BAF59C /* ExecState.cpp */,
    10411047                        );
    10421048                        path = kjs;
     
    12571263                                938C4F6C0CA06BCE00D9310A /* DisallowCType.h in Headers */,
    12581264                                5186111E0CC824900081412B /* Deque.h in Headers */,
     1265                                A8E894320CD0602400367179 /* JSCallbackObjectFunctions.h in Headers */,
     1266                                A8E894340CD0603F00367179 /* JSGlobalObject.h in Headers */,
    12591267                        );
    12601268                        runOnlyForDeploymentPostprocessing = 0;
     
    13721380                        isa = PBXProject;
    13731381                        buildConfigurationList = 149C277108902AFE008A9EFC /* Build configuration list for PBXProject "JavaScriptCore" */;
    1374                         compatibilityVersion = "Xcode 2.4";
    13751382                        hasScannedForEncodings = 1;
    13761383                        mainGroup = 0867D691FE84028FC02AAC07 /* JavaScriptCore */;
Note: See TracChangeset for help on using the changeset viewer.