2010-01-28 Oliver Hunt <oliver@apple.com>
authoroliver@apple.com <oliver@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 28 Jan 2010 22:51:06 +0000 (22:51 +0000)
committeroliver@apple.com <oliver@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 28 Jan 2010 22:51:06 +0000 (22:51 +0000)
commit26a30cef7231a751af1f52652f203ffbd90cd617
tree837f79e86f8b80001218b00c7dc5bda18a6348f8
parentaf809a3164b92534105493310d01727708fb8eda
2010-01-28  Oliver Hunt  <oliver@apple.com>

        Reviewed by Gavin Barraclough.

        Simplify anonymous slot implementation
        https://bugs.webkit.org/show_bug.cgi?id=34282

        A class must now specify the number of slots it needs at construction time
        rather than later on with a transition.  This makes many things simpler,
        we no longer need to need an additional transition on object creation to
        add the anonymous slots, and we remove the need for a number of transition
        type checks.

        * API/JSCallbackConstructor.h:
        (JSC::JSCallbackConstructor::createStructure):
        * API/JSCallbackFunction.h:
        (JSC::JSCallbackFunction::createStructure):
        * API/JSCallbackObject.h:
        (JSC::JSCallbackObject::createStructure):
        * JavaScriptCore.exp:
        * debugger/DebuggerActivation.h:
        (JSC::DebuggerActivation::createStructure):
        * runtime/Arguments.h:
        (JSC::Arguments::createStructure):
        * runtime/BooleanObject.h:
        (JSC::BooleanObject::createStructure):
        * runtime/DateInstance.h:
        (JSC::DateInstance::createStructure):
        * runtime/DatePrototype.h:
        (JSC::DatePrototype::createStructure):
        * runtime/FunctionPrototype.h:
        (JSC::FunctionPrototype::createStructure):
        * runtime/GetterSetter.h:
        (JSC::GetterSetter::createStructure):
        * runtime/GlobalEvalFunction.h:
        (JSC::GlobalEvalFunction::createStructure):
        * runtime/InternalFunction.h:
        (JSC::InternalFunction::createStructure):
        * runtime/JSAPIValueWrapper.h:
        (JSC::JSAPIValueWrapper::createStructure):
        * runtime/JSActivation.h:
        (JSC::JSActivation::createStructure):
        * runtime/JSArray.h:
        (JSC::JSArray::createStructure):
        * runtime/JSByteArray.cpp:
        (JSC::JSByteArray::createStructure):
        * runtime/JSCell.h:
        (JSC::JSCell::createDummyStructure):
        * runtime/JSFunction.h:
        (JSC::JSFunction::createStructure):
        * runtime/JSGlobalObject.h:
        (JSC::JSGlobalObject::createStructure):
        * runtime/JSNotAnObject.h:
        (JSC::JSNotAnObject::createStructure):
        * runtime/JSONObject.h:
        (JSC::JSONObject::createStructure):
        * runtime/JSObject.h:
        (JSC::JSObject::createStructure):
        (JSC::JSObject::putAnonymousValue):
        (JSC::JSObject::getAnonymousValue):
        * runtime/JSPropertyNameIterator.h:
        (JSC::JSPropertyNameIterator::createStructure):
        * runtime/JSStaticScopeObject.h:
        (JSC::JSStaticScopeObject::createStructure):
        * runtime/JSString.h:
        (JSC::Fiber::createStructure):
        * runtime/JSVariableObject.h:
        (JSC::JSVariableObject::createStructure):
        * runtime/JSWrapperObject.h:
        (JSC::JSWrapperObject::createStructure):
        (JSC::JSWrapperObject::JSWrapperObject):
        * runtime/MathObject.h:
        (JSC::MathObject::createStructure):
        * runtime/NumberConstructor.h:
        (JSC::NumberConstructor::createStructure):
        * runtime/NumberObject.h:
        (JSC::NumberObject::createStructure):
        * runtime/RegExpConstructor.h:
        (JSC::RegExpConstructor::createStructure):
        * runtime/RegExpObject.h:
        (JSC::RegExpObject::createStructure):
        * runtime/StringObject.h:
        (JSC::StringObject::createStructure):
        * runtime/StringObjectThatMasqueradesAsUndefined.h:
        (JSC::StringObjectThatMasqueradesAsUndefined::createStructure):
        * runtime/Structure.cpp:
        (JSC::Structure::~Structure):
        (JSC::Structure::materializePropertyMap):
        * runtime/Structure.h:
        (JSC::Structure::create):
        (JSC::Structure::anonymousSlotCount):
        * runtime/StructureTransitionTable.h:
2010-01-28  Oliver Hunt  <oliver@apple.com>

        Reviewed by Gavin Barraclough.

        Simplify anonymous slot implementation
        https://bugs.webkit.org/show_bug.cgi?id=34282

        Update JSGlue Structure usage to pass the anonymous slot count.

        * UserObjectImp.h:
        (UserObjectImp::createStructure):
2010-01-28  Oliver Hunt  <oliver@apple.com>

        Reviewed by Gavin Barraclough.

        Simplify anonymous slot implementation
        https://bugs.webkit.org/show_bug.cgi?id=34282

        Update the WebCore JS DOM bindings to correctly pass and
        propagate the anonymous slot count information.

        * bindings/js/JSDOMBinding.h:
        (WebCore::DOMObjectWithGlobalPointer::createStructure):
        (WebCore::DOMConstructorObject::createStructure):
        * bindings/js/JSDOMWindowShell.h:
        (WebCore::JSDOMWindowShell::createStructure):
        * bindings/scripts/CodeGeneratorJS.pm:
        * bridge/objc/objc_runtime.h:
        (JSC::Bindings::ObjcFallbackObjectImp::createStructure):
        * bridge/runtime_array.h:
        (JSC::RuntimeArray::createStructure):
        * bridge/runtime_method.h:
        (JSC::RuntimeMethod::createStructure):
        * bridge/runtime_object.h:
        (JSC::RuntimeObjectImp::createStructure):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@54022 268f45cc-cd09-0410-ab3c-d52691b4dbfc
49 files changed:
JavaScriptCore/API/JSCallbackConstructor.h
JavaScriptCore/API/JSCallbackFunction.h
JavaScriptCore/API/JSCallbackObject.h
JavaScriptCore/ChangeLog
JavaScriptCore/JavaScriptCore.exp
JavaScriptCore/debugger/DebuggerActivation.h
JavaScriptCore/runtime/Arguments.h
JavaScriptCore/runtime/BooleanObject.h
JavaScriptCore/runtime/DateInstance.h
JavaScriptCore/runtime/DatePrototype.h
JavaScriptCore/runtime/FunctionPrototype.h
JavaScriptCore/runtime/GetterSetter.h
JavaScriptCore/runtime/GlobalEvalFunction.h
JavaScriptCore/runtime/InternalFunction.h
JavaScriptCore/runtime/JSAPIValueWrapper.h
JavaScriptCore/runtime/JSActivation.h
JavaScriptCore/runtime/JSArray.h
JavaScriptCore/runtime/JSByteArray.cpp
JavaScriptCore/runtime/JSCell.h
JavaScriptCore/runtime/JSFunction.h
JavaScriptCore/runtime/JSGlobalObject.h
JavaScriptCore/runtime/JSNotAnObject.h
JavaScriptCore/runtime/JSONObject.h
JavaScriptCore/runtime/JSObject.h
JavaScriptCore/runtime/JSPropertyNameIterator.h
JavaScriptCore/runtime/JSStaticScopeObject.h
JavaScriptCore/runtime/JSString.h
JavaScriptCore/runtime/JSVariableObject.h
JavaScriptCore/runtime/JSWrapperObject.h
JavaScriptCore/runtime/MathObject.h
JavaScriptCore/runtime/NumberConstructor.h
JavaScriptCore/runtime/NumberObject.h
JavaScriptCore/runtime/RegExpConstructor.h
JavaScriptCore/runtime/RegExpObject.h
JavaScriptCore/runtime/StringObject.h
JavaScriptCore/runtime/StringObjectThatMasqueradesAsUndefined.h
JavaScriptCore/runtime/Structure.cpp
JavaScriptCore/runtime/Structure.h
JavaScriptCore/runtime/StructureTransitionTable.h
JavaScriptGlue/ChangeLog
JavaScriptGlue/UserObjectImp.h
WebCore/ChangeLog
WebCore/bindings/js/JSDOMBinding.h
WebCore/bindings/js/JSDOMWindowShell.h
WebCore/bindings/scripts/CodeGeneratorJS.pm
WebCore/bridge/objc/objc_runtime.h
WebCore/bridge/runtime_array.h
WebCore/bridge/runtime_method.h
WebCore/bridge/runtime_object.h