1. 05 Apr, 2012 1 commit
    • benjamin@webkit.org's avatar
      Speed up the conversion from JSValue to String for bulk operations · 8063cc71
      benjamin@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=83243
      
      Patch by Benjamin Poulain <bpoulain@apple.com> on 2012-04-05
      Reviewed by Geoffrey Garen.
      
      When making operations on primitive types, we loose some time converting
      values to JSString in order to extract the string.
      
      This patch speeds up some basic Array operations by avoiding the creation
      of intermediary JSString when possible.
      
      For the cases where we need to convert a lot of JSValue in a tight loop,
      an inline conversion is used.
      
      * runtime/ArrayPrototype.cpp:
      (JSC::arrayProtoFuncToString):
      (JSC::arrayProtoFuncToLocaleString):
      (JSC::arrayProtoFuncJoin):
      (JSC::arrayProtoFuncPush):
      (JSC::arrayProtoFuncSort):
      * runtime/CommonIdentifiers.h:
      * runtime/JSArray.cpp:
      (JSC::JSArray::sort):
      * runtime/JSString.h:
      (JSC::JSValue::toUString):
      (JSC):
      (JSC::inlineJSValueNotStringtoUString):
      (JSC::JSValue::toUStringInline):
      * runtime/JSValue.cpp:
      (JSC::JSValue::toUStringSlowCase):
      (JSC):
      * runtime/JSValue.h:
      (JSValue):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@113396 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8063cc71
  2. 20 Mar, 2012 1 commit
    • benjamin@webkit.org's avatar
      Cache the type string of JavaScript object · 25ecbabb
      benjamin@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=81446
      
      Patch by Benjamin Poulain <bpoulain@apple.com> on 2012-03-20
      Reviewed by Geoffrey Garen.
      
      Instead of creating the JSString every time, we create
      lazily the strings in JSGlobalData.
      
      This avoid the construction of the StringImpl and of the JSString,
      which gives some performance improvements.
      
      * runtime/CommonIdentifiers.h:
      * runtime/JSValue.cpp:
      (JSC::JSValue::toStringSlowCase):
      * runtime/Operations.cpp:
      (JSC::jsTypeStringForValue):
      * runtime/SmallStrings.cpp:
      (JSC::SmallStrings::SmallStrings):
      (JSC::SmallStrings::finalizeSmallStrings):
      (JSC::SmallStrings::initialize):
      (JSC):
      * runtime/SmallStrings.h:
      (SmallStrings):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@111433 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      25ecbabb
  3. 27 Feb, 2012 1 commit
    • barraclough@apple.com's avatar
      RegExp lastIndex should behave as a regular property · 46406a91
      barraclough@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=79446
      
      Reviewed by Sam Weinig.
      
      lastIndex should be a regular data descriptor, with the attributes configurable:false,
      enumerable:false, writable:true. As such, it should be possible to reconfigure writable
      as false. If the lastIndex property is reconfigured to be read-only, we should respect
      this correctly.
      
      Source/JavaScriptCore: 
      
      * runtime/CommonIdentifiers.h:
          - Removed some unused identifiers, added lastIndex.
      * runtime/RegExpObject.cpp:
      (JSC::RegExpObject::getOwnPropertySlot):
          - lastIndex is no longer a static value, provided specific handling.
      (JSC::RegExpObject::getOwnPropertyDescriptor):
          - lastIndex is no longer a static value, provided specific handling.
      (JSC::RegExpObject::deleteProperty):
          - lastIndex is no longer a static value, provided specific handling.
      (JSC::RegExpObject::getOwnPropertyNames):
          - lastIndex is no longer a static value, provided specific handling.
      (JSC::RegExpObject::getPropertyNames):
          - lastIndex is no longer a static value, provided specific handling.
      (JSC::reject):
          - helper function for defineOwnProperty.
      (JSC::RegExpObject::defineOwnProperty):
          - lastIndex is no longer a static value, provided specific handling.
      (JSC::RegExpObject::put):
          - lastIndex is no longer a static value, provided specific handling.
      (JSC::RegExpObject::match):
          - Pass setLastIndex an ExecState, so it can throw if read-only.
      * runtime/RegExpObject.h:
      (JSC::RegExpObject::setLastIndex):
          - Pass setLastIndex an ExecState, so it can throw if read-only.
      (RegExpObjectData):
          - Added lastIndexIsWritable.
      * runtime/RegExpPrototype.cpp:
      (JSC::regExpProtoFuncCompile):
          - Pass setLastIndex an ExecState, so it can throw if read-only.
      
      LayoutTests: 
      
      * fast/regex/lastIndex-expected.txt: Added.
      * fast/regex/lastIndex.html: Added.
      * fast/regex/script-tests/lastIndex.js: Added.
          - Added test cases for correct handling of lastIndex.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@109008 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      46406a91
  4. 17 Feb, 2012 1 commit
    • oliver@apple.com's avatar
      Implement Error.stack · ddf4b487
      oliver@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=66994
      
      Reviewed by Gavin Barraclough.
      
      Source/JavaScriptCore:
      
      Implement support for stack traces on exception objects.  This is a rewrite
      of the core portion of the last stack walking logic, but the mechanical work
      of adding the information to an exception comes from the original work by
      Juan Carlos Montemayor Elosua.
      
      * interpreter/Interpreter.cpp:
      (JSC::getCallerInfo):
      (JSC):
      (JSC::getSourceURLFromCallFrame):
      (JSC::getStackFrameCodeType):
      (JSC::Interpreter::getStackTrace):
      (JSC::Interpreter::throwException):
      (JSC::Interpreter::privateExecute):
      * interpreter/Interpreter.h:
      (JSC):
      (StackFrame):
      (JSC::StackFrame::toString):
      (Interpreter):
      * jsc.cpp:
      (GlobalObject::finishCreation):
      (functionJSCStack):
      * parser/Nodes.h:
      (JSC::FunctionBodyNode::setInferredName):
      * parser/Parser.h:
      (JSC::::parse):
      * runtime/CommonIdentifiers.h:
      * runtime/Error.cpp:
      (JSC::addErrorInfo):
      * runtime/Error.h:
      (JSC):
      
      LayoutTests:
      
      Add testcases for producing a stack trace on exception objects.
      
      * fast/js/exception-properties-expected.txt:
      * fast/js/script-tests/exception-properties.js:
      * fast/js/script-tests/stack-trace.js: Added.
      (printStack):
      (hostThrower):
      (callbacker):
      (outer):
      (inner):
      (evaler):
      (normalOuter):
      (normalInner):
      (scripterInner):
      (scripterOuter):
      (selfRecursive1):
      (selfRecursive2):
      (selfRecursive3):
      (throwError):
      (object.get getter1.o.valueOf):
      (object.get getter1):
      (object.get getter2):
      (object.get getter3.o2.valueOf):
      (object.get getter3):
      (object.nonInlineable.callCount):
      (object.nonInlineable):
      (object.inlineable):
      (yetAnotherInlinedCall):
      (makeInlinableCall):
      (.try.g):
      (h):
      (mapTest):
      (mapTestDriver):
      (dfgFunction):
      (try.f):
      * fast/js/stack-trace-expected.txt: Added.
      * fast/js/stack-trace.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@108112 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ddf4b487
  5. 16 Feb, 2012 2 commits
    • ossy@webkit.org's avatar
      Unreviewed. Rolling out r107980, because it broke 32 bit platforms. · e412a79a
      ossy@webkit.org authored
      Source/JavaScriptCore:
      
      * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
      * interpreter/Interpreter.cpp:
      (JSC::Interpreter::throwException):
      (JSC::Interpreter::privateExecute):
      * interpreter/Interpreter.h:
      (JSC):
      (Interpreter):
      * jsc.cpp:
      (GlobalObject::finishCreation):
      * parser/Nodes.h:
      (JSC::FunctionBodyNode::setInferredName):
      * parser/Parser.h:
      (JSC::::parse):
      * runtime/CommonIdentifiers.h:
      * runtime/Error.cpp:
      (JSC::addErrorInfo):
      * runtime/Error.h:
      (JSC):
      
      LayoutTests:
      
      * fast/js/exception-properties-expected.txt:
      * fast/js/script-tests/exception-properties.js:
      * fast/js/script-tests/stack-trace.js: Removed.
      * fast/js/stack-trace-expected.txt: Removed.
      * fast/js/stack-trace.html: Removed.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@108036 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e412a79a
    • oliver@apple.com's avatar
      Implement Error.stack · 49d0475c
      oliver@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=66994
      
      Reviewed by Gavin Barraclough.
      
      Source/JavaScriptCore:
      
      Implement support for stack traces on exception objects.  This is a rewrite
      of the core portion of the last stack walking logic, but the mechanical work
      of adding the information to an exception comes from the original work by
      Juan Carlos Montemayor Elosua.
      
      * interpreter/Interpreter.cpp:
      (JSC::getCallerInfo):
      (JSC):
      (JSC::getSourceURLFromCallFrame):
      (JSC::getStackFrameCodeType):
      (JSC::Interpreter::getStackTrace):
      (JSC::Interpreter::throwException):
      (JSC::Interpreter::privateExecute):
      * interpreter/Interpreter.h:
      (JSC):
      (StackFrame):
      (JSC::StackFrame::toString):
      (Interpreter):
      * jsc.cpp:
      (GlobalObject::finishCreation):
      (functionJSCStack):
      * parser/Nodes.h:
      (JSC::FunctionBodyNode::setInferredName):
      * parser/Parser.h:
      (JSC::::parse):
      * runtime/CommonIdentifiers.h:
      * runtime/Error.cpp:
      (JSC::addErrorInfo):
      * runtime/Error.h:
      (JSC):
      
      LayoutTests:
      
      Add testcases for producing a stack trace on exception objects.
      
      * fast/js/exception-properties-expected.txt:
      * fast/js/script-tests/exception-properties.js:
      * fast/js/script-tests/stack-trace.js: Added.
      (printStack):
      (hostThrower):
      (callbacker):
      (outer):
      (inner):
      (evaler):
      (normalOuter):
      (normalInner):
      (scripterInner):
      (scripterOuter):
      (selfRecursive1):
      (selfRecursive2):
      (selfRecursive3):
      (throwError):
      (object.get getter1.o.valueOf):
      (object.get getter1):
      (object.get getter2):
      (object.get getter3.o2.valueOf):
      (object.get getter3):
      (object.nonInlineable.callCount):
      (object.nonInlineable):
      (object.inlineable):
      (yetAnotherInlinedCall):
      (makeInlinableCall):
      (.try.g):
      (h):
      (mapTest):
      (mapTestDriver):
      (dfgFunction):
      (try.f):
      * fast/js/stack-trace-expected.txt: Added.
      * fast/js/stack-trace.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@107980 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      49d0475c
  6. 01 Feb, 2012 1 commit
    • ossy@webkit.org's avatar
      Implement Error.stack · 0d2b6111
      ossy@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=66994
      
      Unreviewed, rolling out r106407.
      
      Source/JavaScriptCore:
      
      * JavaScriptCore.exp:
      * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
      * interpreter/AbstractPC.cpp:
      (JSC::AbstractPC::AbstractPC):
      * interpreter/Interpreter.cpp:
      (JSC::Interpreter::throwException):
      * interpreter/Interpreter.h:
      (JSC):
      (Interpreter):
      * jsc.cpp:
      (GlobalObject::finishCreation):
      * parser/Parser.h:
      (JSC::::parse):
      * runtime/CommonIdentifiers.h:
      * runtime/Error.cpp:
      (JSC::addErrorInfo):
      * runtime/Error.h:
      (JSC):
      
      LayoutTests:
      
      * fast/js/exception-properties-expected.txt:
      * fast/js/script-tests/exception-properties.js:
      * fast/js/script-tests/stack-trace.js: Removed.
      * fast/js/stack-trace-expected.txt: Removed.
      * fast/js/stack-trace.html: Removed.
      * platform/chromium/test_expectations.txt:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@106454 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0d2b6111
  7. 31 Jan, 2012 1 commit
    • oliver@apple.com's avatar
      Implement Error.stack · 435c2e23
      oliver@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=66994
      
      Source/JavaScriptCore:
      
      Reviewed by Gavin Barraclough.
      
      Original patch by Juan Carlos Montemayor Elosua:
          This patch utilizes topCallFrame to create a stack trace when
          an error is thrown. Users will also be able to use the stack()
          command in jsc to get arrays with stack trace information.
      
      Modified to be correct on ToT, with a variety of correctness,
      performance, and security improvements.
      
      * JavaScriptCore.exp:
      * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
      * interpreter/Interpreter.cpp:
      (JSC::getCallerLine):
      (JSC::getSourceURLFromCallFrame):
      (JSC::getStackFrameCodeType):
      (JSC::Interpreter::getStackTrace):
      (JSC::Interpreter::throwException):
      * interpreter/Interpreter.h:
      (JSC::StackFrame::toString):
      * jsc.cpp:
      (GlobalObject::finishCreation):
      (functionJSCStack):
      * parser/Parser.h:
      (JSC::Parser::parse):
      * runtime/CommonIdentifiers.h:
      * runtime/Error.cpp:
      (JSC::addErrorInfo):
      * runtime/Error.h:
      
      LayoutTests:
      
      Reviewed by Gavin Barraclough
      
      Original patch by Juan Carlos Montemayor Elosua.
      
      Unit tests that contain both normal and special cases for stack trace
      generation.
      
      * fast/js/exception-properties-expected.txt:
      * fast/js/script-tests/exception-properties.js:
      * fast/js/script-tests/stack-trace.js: Added.
      (printStack):
      (hostThrower):
      (callbacker):
      (outer):
      (inner):
      (evaler):
      (normalOuter):
      (normalInner):
      (scripterInner):
      (scripterOuter):
      * fast/js/stack-trace-expected.txt: Added.
      * fast/js/stack-trace.html: Added.
      * platform/chromium/test_expectations.txt:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@106407 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      435c2e23
  8. 18 Oct, 2011 1 commit
    • ggaren@apple.com's avatar
      Switched ropes from malloc memory to GC memory · fbf6d9a0
      ggaren@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=70364
      
      Reviewed by Gavin Barraclough.
      
      ~1% SunSpider speedup. Neutral elsewhere. Removes one cause for strings
      having C++ destructors.
      
      * heap/MarkStack.cpp:
      (JSC::visitChildren): Call the JSString visitChildren function now,
      since it's no longer a no-op.
      
      * runtime/JSString.cpp:
      (JSC::JSString::~JSString): Moved this destructor out of line because
      it's called virtually, so there's no value to inlining.
      
      (JSC::JSString::RopeBuilder::expand): Switched RopeBuilder to be a thin
      initializing wrapper around JSString. JSString now represents ropes
      directly, rather than relying on an underlying malloc object.
      
      (JSC::JSString::visitChildren): Visit our rope fibers, since they're GC
      objects now.
      
      (JSC::JSString::resolveRope):
      (JSC::JSString::resolveRopeSlowCase):
      (JSC::JSString::outOfMemory): Updated for operating on JSStrings instead
      of malloc objects.
      
      (JSC::JSString::replaceCharacter): Removed optimizations for substringing
      ropes and replacing subsections of ropes. We want to reimplement versions
      of these optimizations in the future, but this patch already has good
      performance without them.
      
      * runtime/JSString.h:
      (JSC::RopeBuilder::JSString):
      (JSC::RopeBuilder::finishCreation):
      (JSC::RopeBuilder::createNull):
      (JSC::RopeBuilder::create):
      (JSC::RopeBuilder::createHasOtherOwner):
      (JSC::jsSingleCharacterString):
      (JSC::jsSingleCharacterSubstring):
      (JSC::jsNontrivialString):
      (JSC::jsString):
      (JSC::jsSubstring):
      (JSC::jsOwnedString): Lots of mechanical changes here. The two important
      things are: (1) The fibers in JSString::m_fibers are JSStrings now, not
      malloc objects; (2) I simplified the JSString constructor interface to
      only accept PassRefPtr<StringImpl>, instead of variations on that like
      UString, reducing refcount churn.
      
      * runtime/JSValue.h:
      * runtime/JSValue.cpp:
      (JSC::JSValue::toPrimitiveString): Updated this function to return a
      JSString instead of a UString, since that's what clients want now.
      
      * runtime/Operations.cpp:
      (JSC::jsAddSlowCase):
      * runtime/Operations.h:
      (JSC::jsString):
      * runtime/SmallStrings.cpp:
      (JSC::SmallStrings::createEmptyString): Updated for interface changes above.
      
      * runtime/StringConstructor.cpp:
      (JSC::constructWithStringConstructor):
      * runtime/StringObject.h:
      (JSC::StringObject::create): Don't create a new JSString if we already
      have a JSString.
      
      * runtime/StringPrototype.cpp:
      (JSC::stringProtoFuncConcat): Updated for interface changes above.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@97827 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fbf6d9a0
  9. 27 Sep, 2011 2 commits
    • commit-queue@webkit.org's avatar
      Unreviewed, rolling out r96131. · 3b381c1e
      commit-queue@webkit.org authored
      http://trac.webkit.org/changeset/96131
      https://bugs.webkit.org/show_bug.cgi?id=68927
      
      It made 18+ tests crash on all platform (Requested by
      Ossy_night on #webkit).
      
      Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2011-09-27
      
      Source/JavaScriptCore:
      
      * JavaScriptCore.exp:
      * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
      * interpreter/Interpreter.cpp:
      (JSC::Interpreter::throwException):
      * interpreter/Interpreter.h:
      * jsc.cpp:
      (GlobalObject::finishCreation):
      * parser/Parser.h:
      (JSC::Parser::parse):
      * runtime/CommonIdentifiers.h:
      * runtime/Error.cpp:
      (JSC::addErrorInfo):
      * runtime/Error.h:
      
      LayoutTests:
      
      * fast/js/exception-properties-expected.txt:
      * fast/js/script-tests/exception-properties.js:
      * fast/js/script-tests/stack-trace.js: Removed.
      * fast/js/stack-trace-expected.txt: Removed.
      * fast/js/stack-trace.html: Removed.
      * platform/chromium/test_expectations.txt:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96146 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3b381c1e
    • commit-queue@webkit.org's avatar
      Implement Error.stack · f177874f
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=66994
      
      Patch by Juan Carlos Montemayor Elosua <j.mont@me.com> on 2011-09-27
      Reviewed by Oliver Hunt.
      
      Source/JavaScriptCore:
      
      This patch utilizes topCallFrame to create a stack trace when
      an error is thrown. Users will also be able to use the stack()
      command in jsc to get arrays with stack trace information.
      
      * JavaScriptCore.exp:
      * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
      * interpreter/Interpreter.cpp:
      (JSC::getCallerLine):
      (JSC::getSourceURLFromCallFrame):
      (JSC::getStackFrameCodeType):
      (JSC::Interpreter::getStackTrace):
      (JSC::Interpreter::throwException):
      * interpreter/Interpreter.h:
      (JSC::StackFrame::toString):
      * jsc.cpp:
      (GlobalObject::finishCreation):
      (functionJSCStack):
      * parser/Parser.h:
      (JSC::Parser::parse):
      * runtime/CommonIdentifiers.h:
      * runtime/Error.cpp:
      (JSC::addErrorInfo):
      * runtime/Error.h:
      
      LayoutTests:
      
      Unit tests that contain both normal and special cases for stack trace
      generation.
      
      * fast/js/exception-properties-expected.txt:
      * fast/js/script-tests/exception-properties.js:
      * fast/js/script-tests/stack-trace.js: Added.
      (printStack):
      (hostThrower):
      (callbacker):
      (outer):
      (inner):
      (evaler):
      (normalOuter):
      (normalInner):
      (scripterInner):
      (scripterOuter):
      * fast/js/stack-trace-expected.txt: Added.
      * fast/js/stack-trace.html: Added.
      * platform/chromium/test_expectations.txt:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96131 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f177874f
  10. 22 Sep, 2011 1 commit
    • barraclough@apple.com's avatar
      Implement Function.prototype.bind · 22215665
      barraclough@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=26382
      
      Reviewed by Sam Weinig.
      
      Source/JavaScriptCore: 
      
      This patch provides a basic functional implementation
      for Function.bind. It should (hopefully!) be fully
      functionally correct, and the bound functions can be
      called to quickly (since they are a subclass of
      JSFunction, not InternalFunction), but we'll probably
      want to follow up with some optimization work to keep
      bound calls in JIT code.
      
      * JavaScriptCore.JSVALUE32_64only.exp:
      * JavaScriptCore.JSVALUE64only.exp:
      * JavaScriptCore.exp:
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * jit/JITStubs.cpp:
      (JSC::JITThunks::hostFunctionStub):
      * jit/JITStubs.h:
      * jsc.cpp:
      (GlobalObject::addFunction):
      * runtime/CommonIdentifiers.h:
      * runtime/ConstructData.h:
      * runtime/Executable.h:
      (JSC::NativeExecutable::NativeExecutable):
      * runtime/FunctionPrototype.cpp:
      (JSC::FunctionPrototype::addFunctionProperties):
      (JSC::functionProtoFuncBind):
      * runtime/FunctionPrototype.h:
      * runtime/JSBoundFunction.cpp: Added.
      (JSC::boundFunctionCall):
      (JSC::boundFunctionConstruct):
      (JSC::JSBoundFunction::create):
      (JSC::JSBoundFunction::hasInstance):
      (JSC::JSBoundFunction::getOwnPropertySlot):
      (JSC::JSBoundFunction::getOwnPropertyDescriptor):
      (JSC::JSBoundFunction::JSBoundFunction):
      (JSC::JSBoundFunction::finishCreation):
      * runtime/JSBoundFunction.h: Added.
      (JSC::JSBoundFunction::targetFunction):
      (JSC::JSBoundFunction::boundThis):
      (JSC::JSBoundFunction::boundArgs):
      (JSC::JSBoundFunction::createStructure):
      * runtime/JSFunction.cpp:
      (JSC::JSFunction::create):
      (JSC::JSFunction::finishCreation):
      (JSC::createDescriptorForThrowingProperty):
      (JSC::JSFunction::getOwnPropertySlot):
      * runtime/JSFunction.h:
      * runtime/JSGlobalData.cpp:
      (JSC::JSGlobalData::getHostFunction):
      * runtime/JSGlobalData.h:
      * runtime/JSGlobalObject.cpp:
      (JSC::JSGlobalObject::reset):
      (JSC::JSGlobalObject::visitChildren):
      * runtime/JSGlobalObject.h:
      (JSC::JSGlobalObject::boundFunctionStructure):
      * runtime/Lookup.cpp:
      (JSC::setUpStaticFunctionSlot):
      
      Source/WebCore: 
      
      Test: fast/js/function-bind.html
      
      * bindings/js/JSDOMBinding.cpp:
      (WebCore::objectToStringFunctionGetter):
      * bindings/js/JSDOMWindowCustom.cpp:
      (WebCore::nonCachingStaticFunctionGetter):
      * bindings/js/JSHistoryCustom.cpp:
      (WebCore::nonCachingStaticBackFunctionGetter):
      (WebCore::nonCachingStaticForwardFunctionGetter):
      (WebCore::nonCachingStaticGoFunctionGetter):
      * bindings/js/JSLocationCustom.cpp:
      (WebCore::nonCachingStaticReplaceFunctionGetter):
      (WebCore::nonCachingStaticReloadFunctionGetter):
      (WebCore::nonCachingStaticAssignFunctionGetter):
          - Function::create no longer requires functionStructure() to be passed.
      
      LayoutTests: 
      
      We now pass Function.bind tests.
      
      * fast/js/Object-getOwnPropertyNames-expected.txt:
      * fast/js/basic-strict-mode-expected.txt:
      * fast/js/function-bind-expected.txt: Added.
      * fast/js/function-bind.html: Added.
      * fast/js/mozilla/strict/15.3.4.5-expected.txt:
      * fast/js/script-tests/function-bind.js: Added.
      * ietestcenter/Javascript/15.2.3.3-4-38-expected.txt:
      * ietestcenter/Javascript/15.3.4.5-0-1-expected.txt:
      * ietestcenter/Javascript/15.3.4.5-0-2-expected.txt:
      * ietestcenter/Javascript/15.3.4.5-13.b-1-expected.txt:
      * ietestcenter/Javascript/15.3.4.5-13.b-2-expected.txt:
      * ietestcenter/Javascript/15.3.4.5-13.b-3-expected.txt:
      * ietestcenter/Javascript/15.3.4.5-13.b-4-expected.txt:
      * ietestcenter/Javascript/15.3.4.5-13.b-5-expected.txt:
      * ietestcenter/Javascript/15.3.4.5-15-1-expected.txt:
      * ietestcenter/Javascript/15.3.4.5-15-2-expected.txt:
      * ietestcenter/Javascript/15.3.4.5-16-1-expected.txt:
      * ietestcenter/Javascript/15.3.4.5-2-1-expected.txt:
      * ietestcenter/Javascript/15.3.4.5-2-2-expected.txt:
      * ietestcenter/Javascript/15.3.4.5-2-3-expected.txt:
      * ietestcenter/Javascript/15.3.4.5-2-4-expected.txt:
      * ietestcenter/Javascript/15.3.4.5-2-5-expected.txt:
      * ietestcenter/Javascript/15.3.4.5-2-6-expected.txt:
      * ietestcenter/Javascript/15.3.4.5-2-7-expected.txt:
      * ietestcenter/Javascript/15.3.4.5-2-8-expected.txt:
      * ietestcenter/Javascript/15.3.4.5-2-9-expected.txt:
      * ietestcenter/Javascript/15.3.4.5-8-1-expected.txt:
      * ietestcenter/Javascript/15.3.4.5-8-2-expected.txt:
      * ietestcenter/Javascript/15.3.4.5-9-1-expected.txt:
      * ietestcenter/Javascript/15.3.4.5-9-2-expected.txt:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@95751 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      22215665
  11. 16 Jun, 2011 1 commit
    • barraclough@apple.com's avatar
      https://bugs.webkit.org/show_bug.cgi?id=53014 · 93e9016d
      barraclough@apple.com authored
      ES5 strict mode keyword restrictions aren't implemented
      
      Reviewed by Oliver Hunt.
      
      The following are future restricted words is strict mode code:
          implements, interface, let, package, private, protected, public, static, yield
      
      Source/JavaScriptCore: 
      
      * parser/JSParser.h:
          - Add RESERVED_IF_STRICT token.
      * parser/Keywords.table:
          - Add new future restricted words.
      * parser/Lexer.cpp:
      (JSC::Lexer::parseIdentifier):
          - Check for RESERVED_IF_STRICT; in nonstrict code this is converted to IDENT.
      (JSC::Lexer::lex):
          - Pass strictMode flag to parseIdentifier.
      * parser/Lexer.h:
          - parseIdentifier needs a strictMode flag.
      * runtime/CommonIdentifiers.h:
          - Add identifiers for new reserved words.
      
      LayoutTests: 
      
      * fast/js/keywords-and-reserved_words-expected.txt: Added.
      * fast/js/keywords-and-reserved_words.html: Added.
      * fast/js/script-tests/keywords-and-reserved_words.js: Added.
      (isKeyword):
      (isStrictKeyword):
      (classifyIdentifier):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@89109 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      93e9016d
  12. 04 Jun, 2011 1 commit
    • oliver@apple.com's avatar
      2011-06-03 Oliver Hunt <oliver@apple.com> · 77099a66
      oliver@apple.com authored
              Reviewed by Maciej Stachowiak.
      
              Lexer needs to provide Identifier for reserved words
              https://bugs.webkit.org/show_bug.cgi?id=62086
      
              Alas it is necessary to provide an Identifier reference for keywords
              so that we can do the right thing when they're used in object literals.
              We now keep Identifiers for all reserved words in the CommonIdentifiers
              structure so that we can access them without a hash lookup.
      
              * KeywordLookupGenerator.py:
              * parser/Lexer.cpp:
              (JSC::Lexer::parseIdentifier):
              * parser/Lexer.h:
              * runtime/CommonIdentifiers.cpp:
              (JSC::CommonIdentifiers::CommonIdentifiers):
              * runtime/CommonIdentifiers.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@88094 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      77099a66
  13. 04 Mar, 2011 1 commit
    • barraclough@apple.com's avatar
      Bug 55736 - Implement seal/freeze/preventExtensions for normal object types. · dd993107
      barraclough@apple.com authored
      Provide basic functionallity from section 15.2.4 of ECMA-262.
      This support will need expanding to cover arrays, too.
      
      Reviewed by Sam Weinig.
      
      Source/JavaScriptCore: 
      
      Shows a 0.5% progression on SunSpidey, this seems to be due to changing
      ObjectConstructor to use a static table.
      
      * DerivedSources.make:
      * JavaScriptCore.exp:
      * interpreter/CallFrame.h:
      (JSC::ExecState::objectConstructorTable):
          Add a static table for ObjectConstructor.
      * runtime/CommonIdentifiers.h:
      * runtime/JSGlobalData.cpp:
      (JSC::JSGlobalData::JSGlobalData):
      (JSC::JSGlobalData::~JSGlobalData):
          Add a static table for ObjectConstructor.
      * runtime/JSGlobalData.h:
      * runtime/JSGlobalObject.cpp:
      (JSC::JSGlobalObject::reset):
          Add a static table for ObjectConstructor.
      * runtime/JSObject.cpp:
      (JSC::JSObject::seal):
      (JSC::JSObject::freeze):
      (JSC::JSObject::preventExtensions):
          Transition the object's structure.
      (JSC::JSObject::defineOwnProperty):
          Check isExtensible.
      * runtime/JSObject.h:
      (JSC::JSObject::isSealed):
      (JSC::JSObject::isFrozen):
      (JSC::JSObject::isExtensible):
          These wrap method on structure.
      (JSC::JSObject::putDirectInternal):
          Check isExtensible.
      * runtime/ObjectConstructor.cpp:
      (JSC::ObjectConstructor::ObjectConstructor):
      (JSC::ObjectConstructor::getOwnPropertySlot):
      (JSC::ObjectConstructor::getOwnPropertyDescriptor):
          Change ObjectConstructor to use a static table.
      (JSC::objectConstructorSeal):
      (JSC::objectConstructorFreeze):
      (JSC::objectConstructorPreventExtensions):
      (JSC::objectConstructorIsSealed):
      (JSC::objectConstructorIsFrozen):
      (JSC::objectConstructorIsExtensible):
          Add new methods on Object.
      * runtime/ObjectConstructor.h:
      (JSC::ObjectConstructor::createStructure):
      * runtime/Structure.cpp:
      (JSC::Structure::Structure):
          init/propagate  m_preventExtensions
      (JSC::Structure::sealTransition):
      (JSC::Structure::freezeTransition):
      (JSC::Structure::preventExtensionsTransition):
          transition the structure, materializing the property map, setting m_preventExtensions & changing attributes.
      (JSC::Structure::isSealed):
      (JSC::Structure::isFrozen):
          check attributes to detect if object is sealed/frozen.
      * runtime/Structure.h:
      (JSC::Structure::isExtensible):
          checks the m_preventExtensions flag.
      
      LayoutTests: 
      
      Update results - many more tests PASS.
      Also adds a new testcase.
      
      * fast/js/Object-getOwnPropertyNames-expected.txt:
      * fast/js/script-tests/Object-getOwnPropertyNames.js:
      * ietestcenter/Javascript/15.2.3.10-0-1-expected.txt:
      * ietestcenter/Javascript/15.2.3.10-0-2-expected.txt:
      * ietestcenter/Javascript/15.2.3.10-1-expected.txt:
      * ietestcenter/Javascript/15.2.3.10-2-expected.txt:
      * ietestcenter/Javascript/15.2.3.11-0-1-expected.txt:
      * ietestcenter/Javascript/15.2.3.11-0-2-expected.txt:
      * ietestcenter/Javascript/15.2.3.11-1-expected.txt:
      * ietestcenter/Javascript/15.2.3.11-4-1-expected.txt:
      * ietestcenter/Javascript/15.2.3.11-4-10-expected.txt:
      * ietestcenter/Javascript/15.2.3.11-4-11-expected.txt:
      * ietestcenter/Javascript/15.2.3.11-4-12-expected.txt:
      * ietestcenter/Javascript/15.2.3.11-4-13-expected.txt:
      * ietestcenter/Javascript/15.2.3.11-4-14-expected.txt:
      * ietestcenter/Javascript/15.2.3.11-4-15-expected.txt:
      * ietestcenter/Javascript/15.2.3.11-4-16-expected.txt:
      * ietestcenter/Javascript/15.2.3.11-4-17-expected.txt:
      * ietestcenter/Javascript/15.2.3.11-4-18-expected.txt:
      * ietestcenter/Javascript/15.2.3.11-4-19-expected.txt:
      * ietestcenter/Javascript/15.2.3.11-4-2-expected.txt:
      * ietestcenter/Javascript/15.2.3.11-4-20-expected.txt:
      * ietestcenter/Javascript/15.2.3.11-4-21-expected.txt:
      * ietestcenter/Javascript/15.2.3.11-4-22-expected.txt:
      * ietestcenter/Javascript/15.2.3.11-4-23-expected.txt:
      * ietestcenter/Javascript/15.2.3.11-4-24-expected.txt:
      * ietestcenter/Javascript/15.2.3.11-4-25-expected.txt:
      * ietestcenter/Javascript/15.2.3.11-4-26-expected.txt:
      * ietestcenter/Javascript/15.2.3.11-4-27-expected.txt:
      * ietestcenter/Javascript/15.2.3.11-4-3-expected.txt:
      * ietestcenter/Javascript/15.2.3.11-4-4-expected.txt:
      * ietestcenter/Javascript/15.2.3.11-4-5-expected.txt:
      * ietestcenter/Javascript/15.2.3.11-4-6-expected.txt:
      * ietestcenter/Javascript/15.2.3.11-4-7-expected.txt:
      * ietestcenter/Javascript/15.2.3.11-4-8-expected.txt:
      * ietestcenter/Javascript/15.2.3.11-4-9-expected.txt:
      * ietestcenter/Javascript/15.2.3.12-0-1-expected.txt:
      * ietestcenter/Javascript/15.2.3.12-0-2-expected.txt:
      * ietestcenter/Javascript/15.2.3.12-1-expected.txt:
      * ietestcenter/Javascript/15.2.3.12-3-1-expected.txt:
      * ietestcenter/Javascript/15.2.3.12-3-10-expected.txt:
      * ietestcenter/Javascript/15.2.3.12-3-11-expected.txt:
      * ietestcenter/Javascript/15.2.3.12-3-12-expected.txt:
      * ietestcenter/Javascript/15.2.3.12-3-13-expected.txt:
      * ietestcenter/Javascript/15.2.3.12-3-14-expected.txt:
      * ietestcenter/Javascript/15.2.3.12-3-15-expected.txt:
      * ietestcenter/Javascript/15.2.3.12-3-16-expected.txt:
      * ietestcenter/Javascript/15.2.3.12-3-17-expected.txt:
      * ietestcenter/Javascript/15.2.3.12-3-18-expected.txt:
      * ietestcenter/Javascript/15.2.3.12-3-19-expected.txt:
      * ietestcenter/Javascript/15.2.3.12-3-2-expected.txt:
      * ietestcenter/Javascript/15.2.3.12-3-20-expected.txt:
      * ietestcenter/Javascript/15.2.3.12-3-21-expected.txt:
      * ietestcenter/Javascript/15.2.3.12-3-22-expected.txt:
      * ietestcenter/Javascript/15.2.3.12-3-23-expected.txt:
      * ietestcenter/Javascript/15.2.3.12-3-24-expected.txt:
      * ietestcenter/Javascript/15.2.3.12-3-25-expected.txt:
      * ietestcenter/Javascript/15.2.3.12-3-26-expected.txt:
      * ietestcenter/Javascript/15.2.3.12-3-27-expected.txt:
      * ietestcenter/Javascript/15.2.3.12-3-3-expected.txt:
      * ietestcenter/Javascript/15.2.3.12-3-4-expected.txt:
      * ietestcenter/Javascript/15.2.3.12-3-5-expected.txt:
      * ietestcenter/Javascript/15.2.3.12-3-6-expected.txt:
      * ietestcenter/Javascript/15.2.3.12-3-7-expected.txt:
      * ietestcenter/Javascript/15.2.3.12-3-8-expected.txt:
      * ietestcenter/Javascript/15.2.3.12-3-9-expected.txt:
      * ietestcenter/Javascript/15.2.3.13-0-1-expected.txt:
      * ietestcenter/Javascript/15.2.3.13-0-2-expected.txt:
      * ietestcenter/Javascript/15.2.3.13-0-3-expected.txt:
      * ietestcenter/Javascript/15.2.3.13-1-expected.txt:
      * ietestcenter/Javascript/15.2.3.13-2-1-expected.txt:
      * ietestcenter/Javascript/15.2.3.13-2-10-expected.txt:
      * ietestcenter/Javascript/15.2.3.13-2-11-expected.txt:
      * ietestcenter/Javascript/15.2.3.13-2-12-expected.txt:
      * ietestcenter/Javascript/15.2.3.13-2-13-expected.txt:
      * ietestcenter/Javascript/15.2.3.13-2-14-expected.txt:
      * ietestcenter/Javascript/15.2.3.13-2-15-expected.txt:
      * ietestcenter/Javascript/15.2.3.13-2-16-expected.txt:
      * ietestcenter/Javascript/15.2.3.13-2-17-expected.txt:
      * ietestcenter/Javascript/15.2.3.13-2-18-expected.txt:
      * ietestcenter/Javascript/15.2.3.13-2-19-expected.txt:
      * ietestcenter/Javascript/15.2.3.13-2-2-expected.txt:
      * ietestcenter/Javascript/15.2.3.13-2-20-expected.txt:
      * ietestcenter/Javascript/15.2.3.13-2-21-expected.txt:
      * ietestcenter/Javascript/15.2.3.13-2-3-expected.txt:
      * ietestcenter/Javascript/15.2.3.13-2-4-expected.txt:
      * ietestcenter/Javascript/15.2.3.13-2-5-expected.txt:
      * ietestcenter/Javascript/15.2.3.13-2-6-expected.txt:
      * ietestcenter/Javascript/15.2.3.13-2-7-expected.txt:
      * ietestcenter/Javascript/15.2.3.13-2-8-expected.txt:
      * ietestcenter/Javascript/15.2.3.13-2-9-expected.txt:
      * ietestcenter/Javascript/15.2.3.14-2-4-expected.txt:
      * ietestcenter/Javascript/15.2.3.14-2-5-expected.txt:
      * ietestcenter/Javascript/15.2.3.14-2-6-expected.txt:
      * ietestcenter/Javascript/15.2.3.3-4-20-expected.txt:
      * ietestcenter/Javascript/15.2.3.3-4-21-expected.txt:
      * ietestcenter/Javascript/15.2.3.3-4-22-expected.txt:
      * ietestcenter/Javascript/15.2.3.3-4-23-expected.txt:
      * ietestcenter/Javascript/15.2.3.3-4-24-expected.txt:
      * ietestcenter/Javascript/15.2.3.3-4-25-expected.txt:
      * ietestcenter/Javascript/15.2.3.4-4-2-expected.txt:
      * ietestcenter/Javascript/15.2.3.6-4-1-expected.txt:
      * ietestcenter/Javascript/15.2.3.8-0-1-expected.txt:
      * ietestcenter/Javascript/15.2.3.8-0-2-expected.txt:
      * ietestcenter/Javascript/15.2.3.8-1-expected.txt:
      * ietestcenter/Javascript/15.2.3.9-0-1-expected.txt:
      * ietestcenter/Javascript/15.2.3.9-0-2-expected.txt:
      * ietestcenter/Javascript/15.2.3.9-1-expected.txt:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@80378 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      dd993107
  14. 20 Jan, 2011 1 commit
    • ossy@webkit.org's avatar
      Refactoring of the custom allocation framework · 95c1bc42
      ossy@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=49897
      
      Patch by Zoltan Horvath <zoltan@webkit.org> on 2011-01-20
      Reviewed by Csaba Osztrogonác.
      
      Source/JavaScriptCore:
      
      Inheriting from FastAllocBase can result in objects getting larger (bug #33896, #46589).
      The modification replaces Noncopyable and FastAllocBase classes and these inherits with their
      equivalent macro implementation at the necessary places.
      
      * wtf/FastAllocBase.h: Turn FastAllocBase's implementation into a macro.
      
      Source/WebCore:
      
      Inheriting from FastAllocBase can result in objects getting larger (bug #33896, #46589).
      The modification replaces Noncopyable and FastAllocBase classes and these inherits with their
      equivalent macro implementation at the necessary places.
      
      Source/WebKit:
      
      Inheriting from FastAllocBase can result in objects getting larger (bug #33896, #46589).
      The modification replaces Noncopyable and FastAllocBase classes and these inherits with their
      equivalent macro implementation at the necessary places.
      
      Source/WebKit2:
      
      Inheriting from FastAllocBase can result in objects getting larger (bug #33896, #46589).
      The modification replaces Noncopyable and FastAllocBase classes and these inherits with their
      equivalent macro implementation at the necessary places.
      
      Tools:
      
      Inheriting from FastAllocBase can result in objects getting larger (bug #33896, #46589).
      The modification replaces Noncopyable and FastAllocBase classes and these inherits with their
      equivalent macro implementation at the necessary places.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@76248 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      95c1bc42
  15. 01 Jan, 2011 1 commit
    • abarth@webkit.org's avatar
      Move JavaScriptCore to Source · 76da8fc1
      abarth@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=51604
      
      Reviewed by Eric Seidel.
      
      Update references to JavaScriptCore to point to the new location.
      
      * Android.mk:
      * CMakeLists.txt:
      * DerivedSources.pro:
      * GNUmakefile.am:
      * Makefile:
      * WebKit.pri:
      * WebKit.pro:
      * wscript:
      
      Tools: 
      
      Update references to JavaScriptCore to point to the new location.
      
      * BuildSlaveSupport/build.webkit.org-config/master.cfg:
      * DumpRenderTree/qt/DumpRenderTree.pro:
      * DumpRenderTree/qt/ImageDiff.pro:
      * DumpRenderTree/qt/TestNetscapePlugin/TestNetscapePlugin.pro:
      * DumpRenderTree/wscript:
      * Scripts/build-jsc:
      * Scripts/build-webkit:
      * Scripts/do-file-rename:
      * Scripts/do-webcore-rename:
      * Scripts/run-javascriptcore-tests:
      * Scripts/update-javascriptcore-test-results:
      * Scripts/webkitdirs.pm:
      * Scripts/webkitpy/common/config/build_unittest.py:
      * Scripts/webkitpy/style/checker.py:
      * Scripts/webkitpy/style/checker_unittest.py:
      * Scripts/webkitpy/style/checkers/cpp_unittest.py:
      * WebKitTestRunner/InjectedBundle/qt/InjectedBundle.pro:
      * WebKitTestRunner/qt/WebKitTestRunner.pro:
      * wx/build/settings.py:
      
      WebCore: 
      
      Update references to JavaScriptCore.
      
      * Android.derived.jscbindings.mk:
      * Android.v8bindings.mk:
      * CMakeLists.txt:
      * WebCore.gyp/WebCore.gyp:
      * WebCore.pro:
        - These changes are subtle and might not be 100% correct.
      * move-js-headers.sh:
      
      WebKit/chromium: 
      
      * WebKit.gyp:
        - Point to JavaScriptCore in its new location.
      
      WebKit/gtk: 
      
      * GNUmakefile.am:
      * docs/GNUmakefile.am:
        - Point to JavaScriptCore in its new location.
      
      WebKit/qt: 
      
      * WebKit_pch.h:
      * docs/qtwebkit.qdocconf:
        - Point to JavaScriptCore in its new location.
      
      WebKit/win: 
      
      * WebKit.vcproj/WebKit.sln:
        - Point to JavaScriptCore in its new location.
      
      WebKit/wx: 
      
      * bindings/python/wscript:
      * wscript:
        - Point to JavaScriptCore in its new location.
      
      WebKit2: 
      
      * WebKit2.pro:
        - Point to JavaScriptCore in its new location.
      
      Websites/bugs.webkit.org: 
      
      * PrettyPatch/PrettyPatch.rb:
        - Remove reference to JavaScriptCore as a source directory.
      
      Websites/webkit.org: 
      
      * coding/assertion-guidelines.html:
        - Update documentation to point to the new location of
          JavaScriptCore.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@74855 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      76da8fc1
  16. 11 Oct, 2010 1 commit
    • oliver@apple.com's avatar
      2010-10-01 Oliver Hunt <oliver@apple.com> · 5930185c
      oliver@apple.com authored
              Reviewed by Gavin Barraclough.
      
              [ES5] Implement strict mode
              https://bugs.webkit.org/show_bug.cgi?id=10701
      
              Initial strict mode implementation.  This is the simplest
              implementation that could possibly work and adds (hopefully)
              all of the restrictions required by strict mode.  There are
              a number of inefficiencies, especially in the handling of
              arguments and eval as smart implementations would make this
              patch more complicated.
      
              The SyntaxChecker AST builder has become somewhat more complex
              as strict mode does require more parse tree information to
              validate the syntax.
      
              Summary of major changes to the parser:
                  * We track when we enter strict mode (this may come as a surprise)
                  * Strict mode actually requires a degree of AST knowledge to validate
                    so the SyntaxChecker now produces values that can be used to distinguish
                    "node" types.
                  * We now track variables that are written to.  We do this to
                    statically identify writes to global properties that don't exist
                    and abort at that point.  This should actually make it possible
                    to optimise some other cases in the future but for now it's
                    purely for validity checking.  Currently writes are only tracked
                    in strict mode code.
                  * Labels are now tracked as it is now a syntax error to jump to a label
                    that does not exist (or to use break, continue, or return in a context
                    where they would be invalid).
      
              Runtime changes:
                  * In order to get correct hanlding of the Arguments object all
                    strict mode functions that reference arguments create and tearoff
                    the arguments object on entry.  This is not strictly necessary
                    but was the least work necessary to get the correct behaviour.
                  * PutPropertySlot now tracks whether it is being used for a strict
                    mode write, and if so Object::put will throw when a write can't be
                    completed.
                  * StrictEvalActivation was added as an "activation" object for strict
                    mode eval (so that strict eval does not introduce new variables into
                    the containing scope).
      
              * CMakeLists.txt:
              * GNUmakefile.am:
              * JavaScriptCore.exp:
              * JavaScriptCore.pro:
              * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * bytecode/CodeBlock.cpp:
              (JSC::CodeBlock::dump):
              (JSC::CodeBlock::CodeBlock):
              (JSC::CodeBlock::reparseForExceptionInfoIfNecessary):
              * bytecode/CodeBlock.h:
              (JSC::CodeBlock::isStrictMode):
              * bytecode/EvalCodeCache.h:
              (JSC::EvalCodeCache::get):
              * bytecode/Opcode.h:
              * bytecompiler/BytecodeGenerator.cpp:
              (JSC::BytecodeGenerator::BytecodeGenerator):
              (JSC::BytecodeGenerator::createArgumentsIfNecessary):
              (JSC::BytecodeGenerator::emitReturn):
              * bytecompiler/BytecodeGenerator.h:
              (JSC::BytecodeGenerator::isStrictMode):
              (JSC::BytecodeGenerator::makeFunction):
              * debugger/Debugger.cpp:
              (JSC::evaluateInGlobalCallFrame):
              * debugger/DebuggerCallFrame.cpp:
              (JSC::DebuggerCallFrame::evaluate):
              * interpreter/Interpreter.cpp:
              (JSC::Interpreter::callEval):
              (JSC::Interpreter::unwindCallFrame):
              (JSC::Interpreter::execute):
              (JSC::Interpreter::privateExecute):
              * jit/JIT.cpp:
              (JSC::JIT::privateCompileMainPass):
              (JSC::JIT::privateCompileSlowCases):
              * jit/JIT.h:
              * jit/JITOpcodes.cpp:
              (JSC::JIT::emit_op_get_pnames):
              (JSC::JIT::emit_op_convert_this_strict):
              (JSC::JIT::emitSlow_op_convert_this_strict):
              * jit/JITOpcodes32_64.cpp:
              (JSC::JIT::emit_op_get_pnames):
              * jit/JITStubs.cpp:
              (JSC::DEFINE_STUB_FUNCTION):
              * jit/JITStubs.h:
              * parser/ASTBuilder.h:
              (JSC::ASTBuilder::createFunctionBody):
              (JSC::ASTBuilder::isResolve):
              * parser/JSParser.cpp:
              (JSC::JSParser::next):
              (JSC::JSParser::startLoop):
              (JSC::JSParser::endLoop):
              (JSC::JSParser::startSwitch):
              (JSC::JSParser::endSwitch):
              (JSC::JSParser::setStrictMode):
              (JSC::JSParser::strictMode):
              (JSC::JSParser::isValidStrictMode):
              (JSC::JSParser::declareParameter):
              (JSC::JSParser::breakIsValid):
              (JSC::JSParser::pushLabel):
              (JSC::JSParser::popLabel):
              (JSC::JSParser::hasLabel):
              (JSC::JSParser::DepthManager::DepthManager):
              (JSC::JSParser::DepthManager::~DepthManager):
              (JSC::JSParser::Scope::Scope):
              (JSC::JSParser::Scope::startSwitch):
              (JSC::JSParser::Scope::endSwitch):
              (JSC::JSParser::Scope::startLoop):
              (JSC::JSParser::Scope::endLoop):
              (JSC::JSParser::Scope::inLoop):
              (JSC::JSParser::Scope::breakIsValid):
              (JSC::JSParser::Scope::pushLabel):
              (JSC::JSParser::Scope::popLabel):
              (JSC::JSParser::Scope::hasLabel):
              (JSC::JSParser::Scope::isFunction):
              (JSC::JSParser::Scope::declareVariable):
              (JSC::JSParser::Scope::declareWrite):
              (JSC::JSParser::Scope::deleteProperty):
              (JSC::JSParser::Scope::declareParameter):
              (JSC::JSParser::Scope::setNeedsFullActivation):
              (JSC::JSParser::Scope::collectFreeVariables):
              (JSC::JSParser::Scope::getUncapturedWrittenVariables):
              (JSC::JSParser::Scope::getDeletedVariables):
              (JSC::JSParser::Scope::setStrictMode):
              (JSC::JSParser::Scope::strictMode):
              (JSC::JSParser::Scope::isValidStrictMode):
              (JSC::JSParser::pushScope):
              (JSC::JSParser::popScope):
              (JSC::JSParser::declareVariable):
              (JSC::JSParser::declareWrite):
              (JSC::JSParser::deleteProperty):
              (JSC::jsParse):
              (JSC::JSParser::JSParser):
              (JSC::JSParser::parseProgram):
              (JSC::JSParser::parseSourceElements):
              (JSC::JSParser::parseDoWhileStatement):
              (JSC::JSParser::parseWhileStatement):
              (JSC::JSParser::parseVarDeclarationList):
              (JSC::JSParser::parseConstDeclarationList):
              (JSC::JSParser::parseForStatement):
              (JSC::JSParser::parseBreakStatement):
              (JSC::JSParser::parseContinueStatement):
              (JSC::JSParser::parseReturnStatement):
              (JSC::JSParser::parseWithStatement):
              (JSC::JSParser::parseSwitchStatement):
              (JSC::JSParser::parseSwitchClauses):
              (JSC::JSParser::parseSwitchDefaultClause):
              (JSC::JSParser::parseTryStatement):
              (JSC::JSParser::parseBlockStatement):
              (JSC::JSParser::parseStatement):
              (JSC::JSParser::parseFormalParameters):
              (JSC::JSParser::parseFunctionBody):
              (JSC::JSParser::parseFunctionInfo):
              (JSC::JSParser::parseFunctionDeclaration):
              (JSC::JSParser::parseExpressionOrLabelStatement):
              (JSC::JSParser::parseIfStatement):
              (JSC::JSParser::parseExpression):
              (JSC::JSParser::parseAssignmentExpression):
              (JSC::JSParser::parseConditionalExpression):
              (JSC::JSParser::parseBinaryExpression):
              (JSC::JSParser::parseStrictObjectLiteral):
              (JSC::JSParser::parsePrimaryExpression):
              (JSC::JSParser::parseMemberExpression):
              (JSC::JSParser::parseUnaryExpression):
              * parser/JSParser.h:
              * parser/Lexer.cpp:
              (JSC::Lexer::parseString):
              (JSC::Lexer::lex):
              * parser/Lexer.h:
              (JSC::Lexer::isReparsing):
              * parser/Nodes.cpp:
              (JSC::ScopeNode::ScopeNode):
              (JSC::FunctionBodyNode::FunctionBodyNode):
              (JSC::FunctionBodyNode::create):
              * parser/Nodes.h:
              (JSC::ScopeNode::isStrictMode):
              * parser/Parser.cpp:
              (JSC::Parser::parse):
              * parser/Parser.h:
              (JSC::Parser::parse):
              * parser/SyntaxChecker.h:
              (JSC::SyntaxChecker::SyntaxChecker):
              (JSC::SyntaxChecker::makeFunctionCallNode):
              (JSC::SyntaxChecker::appendToComma):
              (JSC::SyntaxChecker::createCommaExpr):
              (JSC::SyntaxChecker::makeAssignNode):
              (JSC::SyntaxChecker::makePrefixNode):
              (JSC::SyntaxChecker::makePostfixNode):
              (JSC::SyntaxChecker::makeTypeOfNode):
              (JSC::SyntaxChecker::makeDeleteNode):
              (JSC::SyntaxChecker::makeNegateNode):
              (JSC::SyntaxChecker::makeBitwiseNotNode):
              (JSC::SyntaxChecker::createLogicalNot):
              (JSC::SyntaxChecker::createUnaryPlus):
              (JSC::SyntaxChecker::createVoid):
              (JSC::SyntaxChecker::thisExpr):
              (JSC::SyntaxChecker::createResolve):
              (JSC::SyntaxChecker::createObjectLiteral):
              (JSC::SyntaxChecker::createArray):
              (JSC::SyntaxChecker::createNumberExpr):
              (JSC::SyntaxChecker::createString):
              (JSC::SyntaxChecker::createBoolean):
              (JSC::SyntaxChecker::createNull):
              (JSC::SyntaxChecker::createBracketAccess):
              (JSC::SyntaxChecker::createDotAccess):
              (JSC::SyntaxChecker::createRegex):
              (JSC::SyntaxChecker::createNewExpr):
              (JSC::SyntaxChecker::createConditionalExpr):
              (JSC::SyntaxChecker::createAssignResolve):
              (JSC::SyntaxChecker::createFunctionExpr):
              (JSC::SyntaxChecker::createFunctionBody):
              (JSC::SyntaxChecker::appendBinaryExpressionInfo):
              (JSC::SyntaxChecker::operatorStackPop):
              * runtime/Arguments.cpp:
              (JSC::Arguments::createStrictModeCallerIfNecessary):
              (JSC::Arguments::createStrictModeCalleeIfNecessary):
              (JSC::Arguments::getOwnPropertySlot):
              (JSC::Arguments::getOwnPropertyDescriptor):
              (JSC::Arguments::put):
              (JSC::Arguments::deleteProperty):
              * runtime/Arguments.h:
              (JSC::Arguments::Arguments):
              * runtime/CommonIdentifiers.cpp:
              (JSC::CommonIdentifiers::CommonIdentifiers):
              * runtime/CommonIdentifiers.h:
              * runtime/Error.cpp:
              (JSC::StrictModeTypeErrorFunction::StrictModeTypeErrorFunction):
              (JSC::StrictModeTypeErrorFunction::constructThrowTypeError):
              (JSC::StrictModeTypeErrorFunction::getConstructData):
              (JSC::StrictModeTypeErrorFunction::callThrowTypeError):
              (JSC::StrictModeTypeErrorFunction::getCallData):
              (JSC::createTypeErrorFunction):
              * runtime/Error.h:
              * runtime/Executable.cpp:
              (JSC::EvalExecutable::EvalExecutable):
              (JSC::ProgramExecutable::ProgramExecutable):
              (JSC::FunctionExecutable::FunctionExecutable):
              (JSC::EvalExecutable::compileInternal):
              (JSC::ProgramExecutable::checkSyntax):
              (JSC::ProgramExecutable::compileInternal):
              (JSC::FunctionExecutable::compileForCallInternal):
              (JSC::FunctionExecutable::compileForConstructInternal):
              (JSC::FunctionExecutable::reparseExceptionInfo):
              (JSC::EvalExecutable::reparseExceptionInfo):
              (JSC::FunctionExecutable::fromGlobalCode):
              (JSC::ProgramExecutable::reparseExceptionInfo):
              * runtime/Executable.h:
              (JSC::ScriptExecutable::ScriptExecutable):
              (JSC::ScriptExecutable::isStrictMode):
              (JSC::EvalExecutable::create):
              (JSC::FunctionExecutable::create):
              * runtime/JSActivation.cpp:
              (JSC::JSActivation::toStrictThisObject):
              * runtime/JSActivation.h:
              * runtime/JSFunction.cpp:
              (JSC::createDescriptorForThrowingProperty):
              (JSC::JSFunction::getOwnPropertySlot):
              (JSC::JSFunction::getOwnPropertyDescriptor):
              (JSC::JSFunction::put):
              * runtime/JSGlobalData.cpp:
              (JSC::JSGlobalData::JSGlobalData):
              * runtime/JSGlobalData.h:
              * runtime/JSGlobalObject.cpp:
              (JSC::JSGlobalObject::reset):
              * runtime/JSGlobalObject.h:
              (JSC::JSGlobalObject::internalFunctionStructure):
              * runtime/JSGlobalObjectFunctions.cpp:
              (JSC::globalFuncEval):
              * runtime/JSObject.cpp:
              (JSC::JSObject::put):
              (JSC::JSObject::toStrictThisObject):
              (JSC::throwTypeError):
              * runtime/JSObject.h:
              (JSC::JSObject::isStrictModeFunction):
              (JSC::JSObject::putDirectInternal):
              (JSC::JSObject::putDirect):
              (JSC::JSValue::putDirect):
              (JSC::JSValue::toStrictThisObject):
              * runtime/JSStaticScopeObject.cpp:
              (JSC::JSStaticScopeObject::toStrictThisObject):
              * runtime/JSStaticScopeObject.h:
              * runtime/JSValue.h:
              * runtime/JSZombie.h:
              (JSC::JSZombie::toStrictThisObject):
              * runtime/PutPropertySlot.h:
              (JSC::PutPropertySlot::PutPropertySlot):
              (JSC::PutPropertySlot::isStrictMode):
              * runtime/StrictEvalActivation.cpp: Added.
              (JSC::StrictEvalActivation::StrictEvalActivation):
              (JSC::StrictEvalActivation::deleteProperty):
              (JSC::StrictEvalActivation::toThisObject):
              (JSC::StrictEvalActivation::toStrictThisObject):
              * runtime/StrictEvalActivation.h: Added.
      2010-10-01  Oliver Hunt  <oliver@apple.com>
      
              Reviewed by Gavin Barraclough.
      
              [ES5] Implement strict mode
              https://bugs.webkit.org/show_bug.cgi?id=10701
      
              Tests for the many different behaviours we get in strict mode.
      
              * fast/js/basic-strict-mode-expected.txt: Added.
              * fast/js/basic-strict-mode.html: Added.
              * fast/js/script-tests/basic-strict-mode.js: Added.
              (testThis):
              (testGlobalAccess):
      2010-10-01  Oliver Hunt  <oliver@apple.com>
      
              Reviewed by Gavin Barraclough.
      
              [ES5] Implement strict mode
              https://bugs.webkit.org/show_bug.cgi?id=10701
      
              Test: fast/js/basic-strict-mode.html
      
              Override toStrictThisObject on the domwindow so that
              it correctly provides the shell object when used as this
              in a strict mode function.
      
              * bindings/js/JSDOMWindowBase.cpp:
              (WebCore::JSDOMWindowBase::toStrictThisObject):
              * bindings/js/JSDOMWindowBase.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@69516 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5930185c
  17. 09 Mar, 2010 1 commit
    • barraclough@apple.com's avatar
      This caused a performance regression, by breaking the code · 448a8d3d
      barraclough@apple.com authored
      generator's logic to calculate the skip level for resolving
      variables (traced by rdar:7683350)  Reverting for now.
      
      Reviewed by NOBODY (reverting r54510).
      
      * parser/Grammar.y:
      * parser/NodeConstructors.h:
      (JSC::ContinueNode::ContinueNode):
      (JSC::BreakNode::BreakNode):
      (JSC::ForInNode::ForInNode):
      * runtime/CommonIdentifiers.cpp:
      (JSC::CommonIdentifiers::CommonIdentifiers):
      * runtime/CommonIdentifiers.h:
      * runtime/FunctionPrototype.cpp:
      (JSC::FunctionPrototype::FunctionPrototype):
      * runtime/Identifier.cpp:
      (JSC::Identifier::add):
      * runtime/PropertyNameArray.cpp:
      (JSC::PropertyNameArray::add):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@55751 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      448a8d3d
  18. 08 Feb, 2010 1 commit
    • barraclough@apple.com's avatar
      Use an empty identifier instead of a null identifier for parse · 419c15b2
      barraclough@apple.com authored
      tokens without an identifier.
      
      Reviewed by Sam Weinig.
      
      This helps encapsulate the null UStringImpl within UString.
      
      * parser/Grammar.y:
      * parser/NodeConstructors.h:
      (JSC::ContinueNode::ContinueNode):
      (JSC::BreakNode::BreakNode):
      (JSC::ForInNode::ForInNode):
      * runtime/CommonIdentifiers.cpp:
      (JSC::CommonIdentifiers::CommonIdentifiers):
      * runtime/CommonIdentifiers.h:
      * runtime/FunctionPrototype.cpp:
      (JSC::FunctionPrototype::FunctionPrototype):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@54510 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      419c15b2
  19. 12 Jan, 2010 1 commit
    • eric@webkit.org's avatar
      2010-01-12 Kent Hansen <kent.hansen@nokia.com> · c293f4c8
      eric@webkit.org authored
              Reviewed by Geoffrey Garen.
      
              [ES5] Implement Object.getOwnPropertyNames
              https://bugs.webkit.org/show_bug.cgi?id=32242
      
              Add an extra argument to getPropertyNames() and getOwnPropertyNames()
              (and all reimplementations thereof) that indicates whether non-enumerable
              properties should be added.
      
              * API/JSCallbackObject.h:
              * API/JSCallbackObjectFunctions.h:
              (JSC::::getOwnPropertyNames):
              * JavaScriptCore.exp:
              * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
              * debugger/DebuggerActivation.cpp:
              (JSC::DebuggerActivation::getOwnPropertyNames):
              * debugger/DebuggerActivation.h:
              * runtime/Arguments.cpp:
              (JSC::Arguments::getOwnPropertyNames):
              * runtime/Arguments.h:
              * runtime/CommonIdentifiers.h:
              * runtime/JSArray.cpp:
              (JSC::JSArray::getOwnPropertyNames):
              * runtime/JSArray.h:
              * runtime/JSByteArray.cpp:
              (JSC::JSByteArray::getOwnPropertyNames):
              * runtime/JSByteArray.h:
              * runtime/JSFunction.cpp:
              (JSC::JSFunction::getOwnPropertyNames):
              * runtime/JSFunction.h:
              * runtime/JSNotAnObject.cpp:
              (JSC::JSNotAnObject::getOwnPropertyNames):
              * runtime/JSNotAnObject.h:
              * runtime/JSObject.cpp:
              (JSC::getClassPropertyNames):
              (JSC::JSObject::getPropertyNames):
              (JSC::JSObject::getOwnPropertyNames):
              * runtime/JSObject.h:
              * runtime/JSVariableObject.cpp:
              (JSC::JSVariableObject::getOwnPropertyNames):
              * runtime/JSVariableObject.h:
              * runtime/ObjectConstructor.cpp:
              (JSC::ObjectConstructor::ObjectConstructor):
              (JSC::objectConstructorGetOwnPropertyNames):
              * runtime/RegExpMatchesArray.h:
              (JSC::RegExpMatchesArray::getOwnPropertyNames):
              * runtime/StringObject.cpp:
              (JSC::StringObject::getOwnPropertyNames):
              * runtime/StringObject.h:
              * runtime/Structure.cpp: Rename getEnumerablePropertyNames() to getPropertyNames(), which takes an extra argument.
              (JSC::Structure::getPropertyNames):
              * runtime/Structure.h:
              (JSC::):
      2010-01-12  Kent Hansen  <kent.hansen@nokia.com>
      
              Reviewed by Geoffrey Garen.
      
              [ES5] Implement Object.getOwnPropertyNames
              https://bugs.webkit.org/show_bug.cgi?id=32242
      
              Add new argument to the reimplementation of getOwnPropertyNames().
      
              * UserObjectImp.cpp:
              (UserObjectImp::getOwnPropertyNames):
              * UserObjectImp.h:
      2010-01-12  Kent Hansen  <kent.hansen@nokia.com>
      
              Reviewed by Geoffrey Garen.
      
              [ES5] Implement Object.getOwnPropertyNames
              https://bugs.webkit.org/show_bug.cgi?id=32242
      
              Add tests for Object.getOwnPropertyNames(o), both standard usage and cross origin.
      
              * fast/js/Object-getOwnPropertyNames-expected.txt: Added.
              * fast/js/Object-getOwnPropertyNames.html: Added.
              * fast/js/script-tests/Object-getOwnPropertyNames.js: Added.
              * http/tests/security/cross-frame-access-enumeration-expected.txt:
              * http/tests/security/cross-frame-access-enumeration.html:
      2010-01-12  Kent Hansen  <kent.hansen@nokia.com>
      
              Reviewed by Geoffrey Garen.
      
              [ES5] Implement Object.getOwnPropertyNames
              https://bugs.webkit.org/show_bug.cgi?id=32242
      
              Add new argument to reimplementations of getPropertyNames()
              and getOwnPropertyNames(), and update the JS bindings generator.
      
              Test: fast/js/Object-getOwnPropertyNames.html
      
              * bindings/js/JSDOMWindowCustom.cpp:
              (WebCore::JSDOMWindow::getPropertyNames):
              (WebCore::JSDOMWindow::getOwnPropertyNames):
              * bindings/js/JSDOMWindowShell.cpp:
              (WebCore::JSDOMWindowShell::getPropertyNames):
              (WebCore::JSDOMWindowShell::getOwnPropertyNames):
              * bindings/js/JSDOMWindowShell.h:
              * bindings/js/JSHistoryCustom.cpp:
              (WebCore::JSHistory::getOwnPropertyNames):
              * bindings/js/JSLocationCustom.cpp:
              (WebCore::JSLocation::getOwnPropertyNames):
              * bindings/js/JSQuarantinedObjectWrapper.cpp:
              (WebCore::JSQuarantinedObjectWrapper::getPropertyNames):
              (WebCore::JSQuarantinedObjectWrapper::getOwnPropertyNames):
              * bindings/js/JSQuarantinedObjectWrapper.h:
              * bindings/js/JSStorageCustom.cpp:
              (WebCore::JSStorage::getOwnPropertyNames):
              * bindings/scripts/CodeGeneratorJS.pm:
              * bridge/runtime_array.cpp:
              (JSC::RuntimeArray::getOwnPropertyNames):
              * bridge/runtime_array.h:
              * bridge/runtime_object.cpp:
              (JSC::RuntimeObjectImp::getPropertyNames):
              (JSC::RuntimeObjectImp::getOwnPropertyNames):
              * bridge/runtime_object.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@53170 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c293f4c8
  20. 19 Sep, 2009 2 commits
  21. 18 Sep, 2009 1 commit
  22. 12 Sep, 2009 1 commit
    • oliver@apple.com's avatar
      [ES5] Implement Object.keys · d1f19755
      oliver@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=29170
      
      Reviewed by Maciej Stachowiak.
      
      This patch basically requires two separate steps, the first is to split getPropertyNames
      into two functions -- getOwnPropertyNames and getPropertyNames, basically making them behave
      in the same way as getOwnPropertySlot and getPropertySlot.  In essence getOwnPropertyNames
      produces the list of properties on an object excluding its prototype chain and getPropertyNames
      just iterates the the object and its prototype chain calling getOwnPropertyNames at each level.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48336 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d1f19755
  23. 26 Aug, 2009 1 commit
    • oliver@apple.com's avatar
      [ES5] Implement getOwnPropertyDescriptor · 4b4f785d
      oliver@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=28724
      
      Reviewed by Gavin Barraclough.
      
      JavaScriptCore:
      Implement the core runtime support for getOwnPropertyDescriptor.
      This adds a virtual getOwnPropertyDescriptor method to every class
      that implements getOwnPropertySlot that shadows the behaviour of
      getOwnPropertySlot.  The alternative would be to make getOwnPropertySlot
      (or PropertySlots in general) provide property attribute information,
      but quick testing showed this to be a regression.
      
      WebCore:
      Implement the WebCore side of getOwnPropertyDescriptor.  This
      requires a custom implementation of getOwnPropertyDescriptor
      for every class with a custom implementation of getOwnPropertySlot.
      
      The bindings generator has been updated to generate appropriate
      versions of getOwnPropertyDescriptor for the general case where
      a custom getOwnPropertyDescriptor is not needed.  ES5 is vague
      about how getOwnPropertyDescriptor should work in the context of
      "host" functions with polymorphic [[GetOwnProperty]], so it seems
      okay that occasionally we "guess" what attributes -- eg. determining
      whether a property is writable.
      
      Test: fast/js/getOwnPropertyDescriptor.html
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@47780 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4b4f785d
  24. 14 Aug, 2009 1 commit
  25. 09 Aug, 2009 1 commit
  26. 14 Jul, 2009 1 commit
    • bfulgham@webkit.org's avatar
      JavaScriptCore: · 8a8a2f45
      bfulgham@webkit.org authored
      2009-07-14  Zoltan Horvath  <hzoltan@inf.u-szeged.hu>
      
              Reviewed by Darin Adler.
      
              Change all Noncopyable inheriting visibility to public.
              https://bugs.webkit.org/show_bug.cgi?id=27225
      
              Change all Noncopyable inheriting visibility to public because
              it is needed to the custom allocation framework (bug #20422).
      
              * bytecode/SamplingTool.h:
              * bytecompiler/RegisterID.h:
              * interpreter/CachedCall.h:
              * interpreter/RegisterFile.h:
              * parser/Lexer.h:
              * parser/Parser.h:
              * runtime/ArgList.h:
              * runtime/BatchedTransitionOptimizer.h:
              * runtime/Collector.h:
              * runtime/CommonIdentifiers.h:
              * runtime/JSCell.h:
              * runtime/JSGlobalObject.h:
              * runtime/JSLock.h:
              * runtime/JSONObject.cpp:
              * runtime/SmallStrings.cpp:
              * runtime/SmallStrings.h:
              * wtf/CrossThreadRefCounted.h:
              * wtf/GOwnPtr.h:
              * wtf/Locker.h:
              * wtf/MessageQueue.h:
              * wtf/OwnArrayPtr.h:
              * wtf/OwnFastMallocPtr.h:
              * wtf/OwnPtr.h:
              * wtf/RefCounted.h:
              * wtf/ThreadSpecific.h:
              * wtf/Threading.h:
              * wtf/Vector.h:
              * wtf/unicode/Collator.h:
      
      WebCore:
      
      2009-07-14  Zoltan Horvath  <hzoltan@inf.u-szeged.hu>
      
              Reviewed by Darin Adler.
      
              Change all Noncopyable inheriting visibility to public.
              https://bugs.webkit.org/show_bug.cgi?id=27225
      
              Change all Noncopyable inheriting visibility to public because
              it is needed to the custom allocation framework (bug #20422).
      
              * bindings/js/GCController.h:
              * bindings/js/WorkerScriptController.h:
              * bindings/v8/V8DOMMap.cpp:
              (WebCore::):
              * bridge/runtime.h:
              * css/CSSSelector.h:
              * css/CSSSelectorList.h:
              * css/CSSStyleSelector.h:
              * dom/ClassNames.h:
              * dom/MessagePortChannel.h:
              * dom/XMLTokenizerLibxml2.cpp:
              * dom/XMLTokenizerScope.h:
              * editing/ReplaceSelectionCommand.cpp:
              * editing/SelectionController.h:
              * editing/TextIterator.cpp:
              * history/PageCache.h:
              * html/CanvasRenderingContext2D.h:
              * html/HTMLParser.h:
              * html/HTMLParserQuirks.h:
              * html/PreloadScanner.h:
              * loader/Cache.h:
              * loader/CrossOriginPreflightResultCache.h:
              * loader/FrameLoader.h:
              * loader/ProgressTracker.h:
              * loader/ThreadableLoader.h:
              * loader/appcache/ApplicationCacheGroup.h:
              * loader/archive/ArchiveResourceCollection.h:
              * loader/icon/IconDatabase.h:
              * loader/icon/IconLoader.h:
              * loader/icon/PageURLRecord.h:
              * loader/loader.h:
              * page/ContextMenuController.h:
              * page/EventHandler.h:
              * page/FrameTree.h:
              * page/Page.h:
              * page/PageGroup.h:
              * page/PageGroupLoadDeferrer.h:
              * page/mac/EventHandlerMac.mm:
              * platform/AutodrainedPool.h:
              * platform/ContextMenu.h:
              * platform/EventLoop.h:
              * platform/HostWindow.h:
              * platform/Pasteboard.h:
              * platform/PurgeableBuffer.h:
              * platform/RunLoopTimer.h:
              * platform/ThreadGlobalData.h:
              * platform/ThreadTimers.h:
              * platform/Timer.h:
              * platform/TreeShared.h:
              * platform/graphics/FontData.h:
              * platform/graphics/GlyphWidthMap.h:
              * platform/graphics/GraphicsContext.h:
              * platform/graphics/ImageBuffer.h:
              * platform/graphics/ImageSource.h:
              * platform/graphics/MediaPlayer.h:
              * platform/graphics/skia/GraphicsContextPlatformPrivate.h:
              * platform/graphics/skia/PlatformContextSkia.h:
              * platform/graphics/win/QTMovieWin.cpp:
              * platform/mac/LocalCurrentGraphicsContext.h:
              * platform/network/FormDataBuilder.h:
              * platform/network/ResourceHandleInternal.h:
              * platform/network/soup/ResourceHandleSoup.cpp:
              * platform/text/StringBuffer.h:
              * platform/text/TextCodec.h:
              * platform/win/WindowMessageBroadcaster.h:
              * rendering/CounterNode.h:
              * rendering/LayoutState.h:
              * rendering/RenderFrameSet.h:
              * rendering/RenderView.h:
              * rendering/TransformState.h:
              * svg/SVGAnimatedProperty.h:
              * svg/SynchronizableTypeWrapper.h:
              * workers/WorkerMessagingProxy.h:
              * workers/WorkerRunLoop.cpp:
              * xml/XPathExpressionNode.h:
              * xml/XPathParser.h:
              * xml/XPathPredicate.h:
              * xml/XPathStep.h:
      
      WebKit/gtk:
      
      2009-07-14  Zoltan Horvath  <hzoltan@inf.u-szeged.hu>
      
              Reviewed by Darin Adler.
      
              Change all Noncopyable inheriting visibility to public.
              https://bugs.webkit.org/show_bug.cgi?id=27225
      
              Change all Noncopyable inheriting visibility to public because
              it is needed to the custom allocation framework (bug #20422).
      
              * webkit/webkitdownload.cpp:
      
      WebKit/win:
      
      2009-07-14  Zoltan Horvath  <hzoltan@inf.u-szeged.hu>
      
              Reviewed by Darin Adler.
      
              Change all Noncopyable inheriting visibility to public.
              https://bugs.webkit.org/show_bug.cgi?id=27225
      
              Change all Noncopyable inheriting visibility to public because
              it is needed to the custom allocation framework (bug #20422).
      
              * COMEnumVariant.h:
              * WebDatabaseManager.cpp:
              * WebInspector.h:
              * WebLocalizableStrings.cpp:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@45891 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8a8a2f45
  27. 22 Jun, 2009 1 commit
  28. 18 Jun, 2009 1 commit
    • darin@apple.com's avatar
      JavaScriptCore: · c46cfaf6
      darin@apple.com authored
      2009-06-17  Darin Adler  <darin@apple.com>
      
              Reviewed by Oliver Hunt.
      
              Bug 26429: Make JSON.stringify non-recursive so it can handle objects
              of arbitrary complexity
              https://bugs.webkit.org/show_bug.cgi?id=26429
      
              For marking I decided not to use gcProtect, because this is inside the engine
              so it's easy enough to just do marking. And that darned gcProtect does locking!
              Oliver tried to convince me to used MarkedArgumentBuffer, but the constructor
              for that class says "FIXME: Remove all clients of this API, then remove this API."
      
              * runtime/Collector.cpp:
              (JSC::Heap::collect): Add a call to JSONObject::markStringifiers.
      
              * runtime/CommonIdentifiers.cpp:
              (JSC::CommonIdentifiers::CommonIdentifiers): Added emptyIdentifier.
              * runtime/CommonIdentifiers.h: Ditto.
      
              * runtime/JSGlobalData.cpp:
              (JSC::JSGlobalData::JSGlobalData): Initialize firstStringifierToMark to 0.
              * runtime/JSGlobalData.h: Added firstStringifierToMark.
      
              * runtime/JSONObject.cpp: Cut down the includes to the needed ones only.
              (JSC::unwrapNumberOrString): Added. Helper for unwrapping number and string
              objects to get their number and string values.
              (JSC::ReplacerPropertyName::ReplacerPropertyName): Added. The class is used
              to wrap an identifier or integer so we don't have to do any work unless we
              actually call a replacer.
              (JSC::ReplacerPropertyName::value): Added.
              (JSC::gap): Added. Helper function for the Stringifier constructor.
              (JSC::PropertyNameForFunctionCall::PropertyNameForFunctionCall): Added.
              The class is used to wrap an identifier or integer so we don't have to
              allocate a number or string until we actually call toJSON or a replacer.
              (JSC::PropertyNameForFunctionCall::asJSValue): Added.
              (JSC::Stringifier::Stringifier): Updated and moved out of the class
              definition. Added code to hook this into a singly linked list for marking.
              (JSC::Stringifier::~Stringifier): Remove from the singly linked list.
              (JSC::Stringifier::mark): Mark all the objects in the holder stacks.
              (JSC::Stringifier::stringify): Updated.
              (JSC::Stringifier::appendQuotedString): Tweaked and streamlined a bit.
              (JSC::Stringifier::toJSON): Renamed from toJSONValue.
              (JSC::Stringifier::appendStringifiedValue): Renamed from stringify.
              Added code to use the m_holderStack to do non-recursive stringify of
              objects and arrays. This code also uses the timeout checker since in
              pathological cases it could be slow even without calling into the
              JavaScript virtual machine.
              (JSC::Stringifier::willIndent): Added.
              (JSC::Stringifier::indent): Added.
              (JSC::Stringifier::unindent): Added.
              (JSC::Stringifier::startNewLine): Added.
              (JSC::Stringifier::Holder::Holder): Added.
              (JSC::Stringifier::Holder::appendNextProperty): Added. This is the
              function that handles the format of arrays and objects.
              (JSC::JSONObject::getOwnPropertySlot): Moved this down to the bottom
              of the file so the JSONObject class is not interleaved with the
              Stringifier class.
              (JSC::JSONObject::markStringifiers): Added. Calls mark.
              (JSC::JSONProtoFuncStringify): Streamlined the code here. The code
              to compute the gap string is now a separate function.
      
              * runtime/JSONObject.h: Made everything private. Added markStringifiers.
      
      LayoutTests:
      
      2009-06-17  Darin Adler  <darin@apple.com>
      
              Reviewed by Oliver Hunt.
      
              Bug 26429: Make JSON.stringify non-recursive so it can handle objects
              of arbitrary complexity
              https://bugs.webkit.org/show_bug.cgi?id=26429
      
              * fast/js/JSON-stringify-expected.txt: Updated.
              * fast/js/resources/JSON-stringify.js: Changed the infinite object and
              infinite array tests to instead just test something a fixed number of
              levels deep. Otherwise we end up with an infinite loop in the test,
              which would lead to the slow-script dialog in the production web browser.
              Also raised the number from 512 to 2048 since there's no fixed limit any more.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44813 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c46cfaf6
  29. 09 Jun, 2009 3 commits
  30. 29 Apr, 2009 1 commit
  31. 14 Apr, 2009 1 commit
  32. 05 Nov, 2008 1 commit
    • cwzwarich@webkit.org's avatar
      2008-11-05 Cameron Zwarich <zwarich@apple.com> · 858b2b61
      cwzwarich@webkit.org authored
              Not reviewed.
      
              Fix the build for case-sensitive build systems.
      
              * API/JSBase.cpp:
              * API/JSObjectRef.cpp:
              * runtime/CommonIdentifiers.h:
              * runtime/Identifier.cpp:
              * runtime/InitializeThreading.cpp:
              * runtime/InternalFunction.h:
              * runtime/JSString.h:
              * runtime/Lookup.h:
              * runtime/PropertyNameArray.h:
              * runtime/PropertySlot.h:
              * runtime/StructureID.cpp:
              * runtime/StructureID.h:
              * runtime/UString.cpp:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@38138 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      858b2b61
  33. 04 Nov, 2008 1 commit
    • cwzwarich@webkit.org's avatar
      2008-11-03 Cameron Zwarich <zwarich@apple.com> · b91210c0
      cwzwarich@webkit.org authored
              Rubber-stamped by Maciej Stachowiak.
      
              Move more files into the runtime subdirectory of JavaScriptCore.
      
              JavaScriptCore:
      
              * API/JSBase.cpp:
              * API/JSCallbackConstructor.cpp:
              * API/JSCallbackFunction.cpp:
              * API/JSClassRef.cpp:
              * API/OpaqueJSString.cpp:
              * GNUmakefile.am:
              * JavaScriptCore.pri:
              * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * JavaScriptCoreSources.bkl:
              * kjs/AllInOneFile.cpp:
              * kjs/ArgList.cpp: Removed.
              * kjs/ArgList.h: Removed.
              * kjs/Arguments.cpp: Removed.
              * kjs/Arguments.h: Removed.
              * kjs/BatchedTransitionOptimizer.h: Removed.
              * kjs/CollectorHeapIterator.h: Removed.
              * kjs/CommonIdentifiers.cpp: Removed.
              * kjs/CommonIdentifiers.h: Removed.
              * kjs/ExecState.cpp: Removed.
              * kjs/ExecState.h: Removed.
              * kjs/GetterSetter.cpp: Removed.
              * kjs/GetterSetter.h: Removed.
              * kjs/InitializeThreading.cpp: Removed.
              * kjs/InitializeThreading.h: Removed.
              * kjs/JSActivation.cpp: Removed.
              * kjs/JSActivation.h: Removed.
              * kjs/JSGlobalData.cpp: Removed.
              * kjs/JSGlobalData.h: Removed.
              * kjs/JSLock.cpp: Removed.
              * kjs/JSLock.h: Removed.
              * kjs/JSStaticScopeObject.cpp: Removed.
              * kjs/JSStaticScopeObject.h: Removed.
              * kjs/JSType.h: Removed.
              * kjs/PropertyNameArray.cpp: Removed.
              * kjs/PropertyNameArray.h: Removed.
              * kjs/ScopeChain.cpp: Removed.
              * kjs/ScopeChain.h: Removed.
              * kjs/ScopeChainMark.h: Removed.
              * kjs/SymbolTable.h: Removed.
              * kjs/Tracing.d: Removed.
              * kjs/Tracing.h: Removed.
              * runtime/ArgList.cpp: Copied from kjs/ArgList.cpp.
              * runtime/ArgList.h: Copied from kjs/ArgList.h.
              * runtime/Arguments.cpp: Copied from kjs/Arguments.cpp.
              * runtime/Arguments.h: Copied from kjs/Arguments.h.
              * runtime/BatchedTransitionOptimizer.h: Copied from kjs/BatchedTransitionOptimizer.h.
              * runtime/CollectorHeapIterator.h: Copied from kjs/CollectorHeapIterator.h.
              * runtime/CommonIdentifiers.cpp: Copied from kjs/CommonIdentifiers.cpp.
              * runtime/CommonIdentifiers.h: Copied from kjs/CommonIdentifiers.h.
              * runtime/ExecState.cpp: Copied from kjs/ExecState.cpp.
              * runtime/ExecState.h: Copied from kjs/ExecState.h.
              * runtime/GetterSetter.cpp: Copied from kjs/GetterSetter.cpp.
              * runtime/GetterSetter.h: Copied from kjs/GetterSetter.h.
              * runtime/InitializeThreading.cpp: Copied from kjs/InitializeThreading.cpp.
              * runtime/InitializeThreading.h: Copied from kjs/InitializeThreading.h.
              * runtime/JSActivation.cpp: Copied from kjs/JSActivation.cpp.
              * runtime/JSActivation.h: Copied from kjs/JSActivation.h.
              * runtime/JSGlobalData.cpp: Copied from kjs/JSGlobalData.cpp.
              * runtime/JSGlobalData.h: Copied from kjs/JSGlobalData.h.
              * runtime/JSLock.cpp: Copied from kjs/JSLock.cpp.
              * runtime/JSLock.h: Copied from kjs/JSLock.h.
              * runtime/JSStaticScopeObject.cpp: Copied from kjs/JSStaticScopeObject.cpp.
              * runtime/JSStaticScopeObject.h: Copied from kjs/JSStaticScopeObject.h.
              * runtime/JSType.h: Copied from kjs/JSType.h.
              * runtime/PropertyNameArray.cpp: Copied from kjs/PropertyNameArray.cpp.
              * runtime/PropertyNameArray.h: Copied from kjs/PropertyNameArray.h.
              * runtime/ScopeChain.cpp: Copied from kjs/ScopeChain.cpp.
              * runtime/ScopeChain.h: Copied from kjs/ScopeChain.h.
              * runtime/ScopeChainMark.h: Copied from kjs/ScopeChainMark.h.
              * runtime/SymbolTable.h: Copied from kjs/SymbolTable.h.
              * runtime/Tracing.d: Copied from kjs/Tracing.d.
              * runtime/Tracing.h: Copied from kjs/Tracing.h.
      
              WebCore:
      
              * ForwardingHeaders/kjs/ArgList.h: Removed.
              * ForwardingHeaders/kjs/CollectorHeapIterator.h: Removed.
              * ForwardingHeaders/kjs/ExecState.h: Removed.
              * ForwardingHeaders/kjs/InitializeThreading.h: Removed.
              * ForwardingHeaders/kjs/JSGlobalData.h: Removed.
              * ForwardingHeaders/kjs/JSLock.h: Removed.
              * ForwardingHeaders/kjs/SymbolTable.h: Removed.
              * ForwardingHeaders/runtime/ArgList.h: Copied from ForwardingHeaders/kjs/ArgList.h.
              * ForwardingHeaders/runtime/CollectorHeapIterator.h: Copied from ForwardingHeaders/kjs/CollectorHeapIterator.h.
              * ForwardingHeaders/runtime/ExecState.h: Copied from ForwardingHeaders/kjs/ExecState.h.
              * ForwardingHeaders/runtime/InitializeThreading.h: Copied from ForwardingHeaders/kjs/InitializeThreading.h.
              * ForwardingHeaders/runtime/JSGlobalData.h: Copied from ForwardingHeaders/kjs/JSGlobalData.h.
              * ForwardingHeaders/runtime/JSLock.h: Copied from ForwardingHeaders/kjs/JSLock.h.
              * ForwardingHeaders/runtime/SymbolTable.h: Copied from ForwardingHeaders/kjs/SymbolTable.h.
              * bindings/js/GCController.cpp:
              * bindings/js/JSCustomPositionCallback.cpp:
              * bindings/js/JSCustomPositionErrorCallback.cpp:
              * bindings/js/JSCustomSQLStatementCallback.cpp:
              * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
              * bindings/js/JSCustomSQLTransactionCallback.cpp:
              * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
              * bindings/js/JSCustomVoidCallback.cpp:
              * bindings/js/JSCustomXPathNSResolver.cpp:
              * bindings/js/JSDOMWindowBase.cpp:
              * bindings/js/JSEventCustom.cpp:
              * bindings/js/JSEventListener.cpp:
              * bindings/js/JSNodeFilterCondition.cpp:
              * bindings/js/ScheduledAction.cpp:
              * bindings/js/ScriptController.cpp:
              * bindings/js/ScriptControllerMac.mm:
              * bindings/objc/WebScriptObject.mm:
              * bridge/NP_jsobject.cpp:
              * bridge/c/c_class.cpp:
              * bridge/c/c_instance.cpp:
              * bridge/c/c_runtime.cpp:
              * bridge/c/c_utility.cpp:
              * bridge/jni/jni_class.cpp:
              * bridge/jni/jni_instance.cpp:
              * bridge/jni/jni_jsobject.mm:
              * bridge/jni/jni_objc.mm:
              * bridge/jni/jni_runtime.cpp:
              * bridge/jni/jni_runtime.h:
              * bridge/jni/jni_utility.cpp:
              * bridge/npruntime.cpp:
              * bridge/objc/objc_instance.mm:
              * bridge/objc/objc_runtime.mm:
              * bridge/objc/objc_utility.mm:
              * bridge/runtime.cpp:
              * dom/Document.cpp:
              * dom/Node.cpp:
              * dom/NodeFilter.cpp:
              * dom/NodeIterator.cpp:
              * dom/TreeWalker.cpp:
              * history/CachedPage.cpp:
              * inspector/InspectorController.cpp:
              * inspector/JavaScriptCallFrame.cpp:
              * inspector/JavaScriptCallFrame.h:
              * inspector/JavaScriptDebugServer.cpp:
              * inspector/JavaScriptProfileNode.cpp:
              * loader/FrameLoader.cpp:
              * loader/icon/IconDatabase.cpp:
              * page/Console.cpp:
              * page/Page.cpp:
              * page/mac/FrameMac.mm:
              * plugins/PluginView.cpp:
              * plugins/gtk/PluginViewGtk.cpp:
              * plugins/qt/PluginViewQt.cpp:
              * plugins/win/PluginViewWin.cpp:
              * storage/Database.cpp:
              * xml/XMLHttpRequest.cpp:
      
              WebKit/gtk:
      
              * webkit/webkitprivate.cpp:
      
              WebKit/mac:
      
              * ForwardingHeaders/kjs/JSLock.h: Removed.
              * ForwardingHeaders/kjs/SymbolTable.h: Removed.
              * ForwardingHeaders/runtime/JSLock.h: Copied from ForwardingHeaders/kjs/JSLock.h.
              * ForwardingHeaders/runtime/SymbolTable.h: Copied from ForwardingHeaders/kjs/SymbolTable.h.
              * Misc/WebCoreStatistics.mm:
              * Plugins/WebBaseNetscapePluginStream.mm:
              * Plugins/WebBaseNetscapePluginView.mm:
              * Plugins/WebPluginController.mm:
              * WebView/WebFrame.mm:
              * WebView/WebScriptDebugDelegate.mm:
              * WebView/WebView.mm:
      
              WebKit/qt:
      
              * Api/qwebpage.cpp:
      
              WebKit/win:
      
              * WebJavaScriptCollector.cpp:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@38087 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b91210c0
  34. 07 Sep, 2008 2 commits
    • cwzwarich@webkit.org's avatar
      2008-09-07 Cameron Zwarich <cwzwarich@uwaterloo.ca> · 951b1454
      cwzwarich@webkit.org authored
              Reviewed by Oliver Hunt.
      
              Bug 20711: Change KJS prefix on preprocessor macros to JSC
              <https://bugs.webkit.org/show_bug.cgi?id=20711>
      
              JavaScriptCore:
      
              * kjs/CommonIdentifiers.cpp:
              (JSC::CommonIdentifiers::CommonIdentifiers):
              * kjs/CommonIdentifiers.h:
              * kjs/PropertySlot.h:
              (JSC::PropertySlot::getValue):
              (JSC::PropertySlot::putValue):
              (JSC::PropertySlot::setValueSlot):
              (JSC::PropertySlot::setValue):
              (JSC::PropertySlot::setRegisterSlot):
              * kjs/lookup.h:
              * kjs/nodes.cpp:
              * kjs/nodes.h:
              (JSC::Node::):
              (JSC::ExpressionNode::):
              (JSC::StatementNode::):
              (JSC::NullNode::):
              (JSC::BooleanNode::):
              (JSC::NumberNode::):
              (JSC::ImmediateNumberNode::):
              (JSC::StringNode::):
              (JSC::RegExpNode::):
              (JSC::ThisNode::):
              (JSC::ResolveNode::):
              (JSC::ElementNode::):
              (JSC::ArrayNode::):
              (JSC::PropertyNode::):
              (JSC::PropertyListNode::):
              (JSC::ObjectLiteralNode::):
              (JSC::BracketAccessorNode::):
              (JSC::DotAccessorNode::):
              (JSC::ArgumentListNode::):
              (JSC::ArgumentsNode::):
              (JSC::NewExprNode::):
              (JSC::EvalFunctionCallNode::):
              (JSC::FunctionCallValueNode::):
              (JSC::FunctionCallResolveNode::):
              (JSC::FunctionCallBracketNode::):
              (JSC::FunctionCallDotNode::):
              (JSC::PrePostResolveNode::):
              (JSC::PostfixResolveNode::):
              (JSC::PostfixBracketNode::):
              (JSC::PostfixDotNode::):
              (JSC::PostfixErrorNode::):
              (JSC::DeleteResolveNode::):
              (JSC::DeleteBracketNode::):
              (JSC::DeleteDotNode::):
              (JSC::DeleteValueNode::):
              (JSC::VoidNode::):
              (JSC::TypeOfResolveNode::):
              (JSC::TypeOfValueNode::):
              (JSC::PrefixResolveNode::):
              (JSC::PrefixBracketNode::):
              (JSC::PrefixDotNode::):
              (JSC::PrefixErrorNode::):
              (JSC::UnaryPlusNode::):
              (JSC::NegateNode::):
              (JSC::BitwiseNotNode::):
              (JSC::LogicalNotNode::):
              (JSC::MultNode::):
              (JSC::DivNode::):
              (JSC::ModNode::):
              (JSC::AddNode::):
              (JSC::SubNode::):
              (JSC::LeftShiftNode::):
              (JSC::RightShiftNode::):
              (JSC::UnsignedRightShiftNode::):
              (JSC::LessNode::):
              (JSC::GreaterNode::):
              (JSC::LessEqNode::):
              (JSC::GreaterEqNode::):
              (JSC::ThrowableBinaryOpNode::):
              (JSC::InstanceOfNode::):
              (JSC::InNode::):
              (JSC::EqualNode::):
              (JSC::NotEqualNode::):
              (JSC::StrictEqualNode::):
              (JSC::NotStrictEqualNode::):
              (JSC::BitAndNode::):
              (JSC::BitOrNode::):
              (JSC::BitXOrNode::):
              (JSC::LogicalOpNode::):
              (JSC::ConditionalNode::):
              (JSC::ReadModifyResolveNode::):
              (JSC::AssignResolveNode::):
              (JSC::ReadModifyBracketNode::):
              (JSC::AssignBracketNode::):
              (JSC::AssignDotNode::):
              (JSC::ReadModifyDotNode::):
              (JSC::AssignErrorNode::):
              (JSC::CommaNode::):
              (JSC::VarDeclCommaNode::):
              (JSC::ConstDeclNode::):
              (JSC::ConstStatementNode::):
              (JSC::EmptyStatementNode::):
              (JSC::DebuggerStatementNode::):
              (JSC::ExprStatementNode::):
              (JSC::VarStatementNode::):
              (JSC::IfNode::):
              (JSC::IfElseNode::):
              (JSC::DoWhileNode::):
              (JSC::WhileNode::):
              (JSC::ForNode::):
              (JSC::ContinueNode::):
              (JSC::BreakNode::):
              (JSC::ReturnNode::):
              (JSC::WithNode::):
              (JSC::LabelNode::):
              (JSC::ThrowNode::):
              (JSC::TryNode::):
              (JSC::ParameterNode::):
              (JSC::ScopeNode::):
              (JSC::ProgramNode::):
              (JSC::EvalNode::):
              (JSC::FunctionBodyNode::):
              (JSC::FuncExprNode::):
              (JSC::FuncDeclNode::):
              (JSC::CaseClauseNode::):
              (JSC::ClauseListNode::):
              (JSC::CaseBlockNode::):
              (JSC::SwitchNode::):
      
              WebCore:
      
              * bindings/js/JSEventTargetBase.h:
              * bindings/js/JSHTMLInputElementBase.cpp:
              * bindings/js/JSHTMLInputElementBase.h:
              * bindings/scripts/CodeGeneratorJS.pm:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36264 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      951b1454
    • cwzwarich@webkit.org's avatar
      2008-09-07 Cameron Zwarich <cwzwarich@uwaterloo.ca> · 3f782f6a
      cwzwarich@webkit.org authored
              Reviewed by Maciej Stachowiak.
      
              Bug 20704: Replace the KJS namespace
              <https://bugs.webkit.org/show_bug.cgi?id=20704>
      
              Rename the KJS namespace to JSC. There are still some uses of KJS in
              preprocessor macros and comments, but these will also be changed some
              time in the near future. There are also some uses in the names of JNI
              functions, but I will check if these are safe to change as well.
      
              JavaScriptCore:
      
              * API/APICast.h:
              (toJS):
              (toRef):
              (toGlobalRef):
              * API/JSBase.cpp:
              * API/JSCallbackConstructor.cpp:
              * API/JSCallbackConstructor.h:
              * API/JSCallbackFunction.cpp:
              * API/JSCallbackFunction.h:
              * API/JSCallbackObject.cpp:
              * API/JSCallbackObject.h:
              * API/JSCallbackObjectFunctions.h:
              * API/JSClassRef.cpp:
              (OpaqueJSClass::staticValues):
              (OpaqueJSClass::staticFunctions):
              * API/JSClassRef.h:
              * API/JSContextRef.cpp:
              * API/JSObjectRef.cpp:
              * API/JSProfilerPrivate.cpp:
              * API/JSStringRef.cpp:
              * API/JSValueRef.cpp:
              (JSValueGetType):
              * API/OpaqueJSString.cpp:
              * API/OpaqueJSString.h:
              * JavaScriptCore.Debug.exp:
              * JavaScriptCore.base.exp:
              * VM/CTI.cpp:
              (JSC::):
              * VM/CTI.h:
              * VM/CodeBlock.cpp:
              * VM/CodeBlock.h:
              * VM/CodeGenerator.cpp:
              * VM/CodeGenerator.h:
              * VM/ExceptionHelpers.cpp:
              * VM/ExceptionHelpers.h:
              * VM/Instruction.h:
              * VM/JSPropertyNameIterator.cpp:
              * VM/JSPropertyNameIterator.h:
              * VM/LabelID.h:
              * VM/Machine.cpp:
              * VM/Machine.h:
              * VM/Opcode.cpp:
              * VM/Opcode.h:
              * VM/Register.h:
              (WTF::):
              * VM/RegisterFile.cpp:
              * VM/RegisterFile.h:
              * VM/RegisterID.h:
              (WTF::):
              * VM/SamplingTool.cpp:
              * VM/SamplingTool.h:
              * VM/SegmentedVector.h:
              * kjs/ArgList.cpp:
              * kjs/ArgList.h:
              * kjs/Arguments.cpp:
              * kjs/Arguments.h:
              * kjs/ArrayConstructor.cpp:
              * kjs/ArrayConstructor.h:
              * kjs/ArrayPrototype.cpp:
              * kjs/ArrayPrototype.h:
              * kjs/BatchedTransitionOptimizer.h:
              * kjs/BooleanConstructor.cpp:
              * kjs/BooleanConstructor.h:
              * kjs/BooleanObject.cpp:
              * kjs/BooleanObject.h:
              * kjs/BooleanPrototype.cpp:
              * kjs/BooleanPrototype.h:
              * kjs/CallData.cpp:
              * kjs/CallData.h:
              * kjs/ClassInfo.h:
              * kjs/CommonIdentifiers.cpp:
              * kjs/CommonIdentifiers.h:
              * kjs/ConstructData.cpp:
              * kjs/ConstructData.h:
              * kjs/DateConstructor.cpp:
              * kjs/DateConstructor.h:
              * kjs/DateInstance.cpp:
              (JSC::DateInstance::msToGregorianDateTime):
              * kjs/DateInstance.h:
              * kjs/DateMath.cpp:
              * kjs/DateMath.h:
              * kjs/DatePrototype.cpp:
              * kjs/DatePrototype.h:
              * kjs/DebuggerCallFrame.cpp:
              * kjs/DebuggerCallFrame.h:
              * kjs/Error.cpp:
              * kjs/Error.h:
              * kjs/ErrorConstructor.cpp:
              * kjs/ErrorConstructor.h:
              * kjs/ErrorInstance.cpp:
              * kjs/ErrorInstance.h:
              * kjs/ErrorPrototype.cpp:
              * kjs/ErrorPrototype.h:
              * kjs/ExecState.cpp:
              * kjs/ExecState.h:
              * kjs/FunctionConstructor.cpp:
              * kjs/FunctionConstructor.h:
              * kjs/FunctionPrototype.cpp:
              * kjs/FunctionPrototype.h:
              * kjs/GetterSetter.cpp:
              * kjs/GetterSetter.h:
              * kjs/GlobalEvalFunction.cpp:
              * kjs/GlobalEvalFunction.h:
              * kjs/IndexToNameMap.cpp:
              * kjs/IndexToNameMap.h:
              * kjs/InitializeThreading.cpp:
              * kjs/InitializeThreading.h:
              * kjs/InternalFunction.cpp:
              * kjs/InternalFunction.h:
              (JSC::InternalFunction::InternalFunction):
              * kjs/JSActivation.cpp:
              * kjs/JSActivation.h:
              * kjs/JSArray.cpp:
              * kjs/JSArray.h:
              * kjs/JSCell.cpp:
              * kjs/JSCell.h:
              * kjs/JSFunction.cpp:
              * kjs/JSFunction.h:
              (JSC::JSFunction::JSFunction):
              * kjs/JSGlobalData.cpp:
              (JSC::JSGlobalData::JSGlobalData):
              * kjs/JSGlobalData.h:
              * kjs/JSGlobalObject.cpp:
              * kjs/JSGlobalObject.h:
              * kjs/JSGlobalObjectFunctions.cpp:
              * kjs/JSGlobalObjectFunctions.h:
              * kjs/JSImmediate.cpp:
              * kjs/JSImmediate.h:
              * kjs/JSLock.cpp:
              * kjs/JSLock.h:
              * kjs/JSNotAnObject.cpp:
              * kjs/JSNotAnObject.h:
              * kjs/JSNumberCell.cpp:
              * kjs/JSNumberCell.h:
              * kjs/JSObject.cpp:
              * kjs/JSObject.h:
              * kjs/JSStaticScopeObject.cpp:
              * kjs/JSStaticScopeObject.h:
              * kjs/JSString.cpp:
              * kjs/JSString.h:
              * kjs/JSType.h:
              * kjs/JSValue.cpp:
              * kjs/JSValue.h:
              * kjs/JSVariableObject.cpp:
              * kjs/JSVariableObject.h:
              * kjs/JSWrapperObject.cpp:
              * kjs/JSWrapperObject.h:
              * kjs/LabelStack.cpp:
              * kjs/LabelStack.h:
              * kjs/MathObject.cpp:
              * kjs/MathObject.h:
              * kjs/NativeErrorConstructor.cpp:
              * kjs/NativeErrorConstructor.h:
              * kjs/NativeErrorPrototype.cpp:
              * kjs/NativeErrorPrototype.h:
              * kjs/NodeInfo.h:
              * kjs/NumberConstructor.cpp:
              * kjs/NumberConstructor.h:
              * kjs/NumberObject.cpp:
              * kjs/NumberObject.h:
              * kjs/NumberPrototype.cpp:
              * kjs/NumberPrototype.h:
              * kjs/ObjectConstructor.cpp:
              * kjs/ObjectConstructor.h:
              * kjs/ObjectPrototype.cpp:
              * kjs/ObjectPrototype.h:
              * kjs/Parser.cpp:
              * kjs/Parser.h:
              * kjs/PropertyMap.cpp:
              (JSC::PropertyMapStatisticsExitLogger::~PropertyMapStatisticsExitLogger):
              * kjs/PropertyMap.h:
              * kjs/PropertyNameArray.cpp:
              * kjs/PropertyNameArray.h:
              * kjs/PropertySlot.cpp:
              * kjs/PropertySlot.h:
              * kjs/PrototypeFunction.cpp:
              * kjs/PrototypeFunction.h:
              * kjs/PutPropertySlot.h:
              * kjs/RegExpConstructor.cpp:
              * kjs/RegExpConstructor.h:
              * kjs/RegExpObject.cpp:
              * kjs/RegExpObject.h:
              * kjs/RegExpPrototype.cpp:
              * kjs/RegExpPrototype.h:
              * kjs/ScopeChain.cpp:
              * kjs/ScopeChain.h:
              * kjs/ScopeChainMark.h:
              * kjs/Shell.cpp:
              (jscmain):
              * kjs/SmallStrings.cpp:
              * kjs/SmallStrings.h:
              * kjs/SourceProvider.h:
              * kjs/SourceRange.h:
              * kjs/StringConstructor.cpp:
              * kjs/StringConstructor.h:
              * kjs/StringObject.cpp:
              * kjs/StringObject.h:
              * kjs/StringObjectThatMasqueradesAsUndefined.h:
              * kjs/StringPrototype.cpp:
              * kjs/StringPrototype.h:
              * kjs/StructureID.cpp:
              * kjs/StructureID.h:
              * kjs/SymbolTable.h:
              * kjs/collector.cpp:
              * kjs/collector.h:
              * kjs/completion.h:
              * kjs/create_hash_table:
              * kjs/debugger.cpp:
              * kjs/debugger.h:
              * kjs/dtoa.cpp:
              * kjs/dtoa.h:
              * kjs/grammar.y:
              * kjs/identifier.cpp:
              * kjs/identifier.h:
              (JSC::Identifier::equal):
              * kjs/interpreter.cpp:
              * kjs/interpreter.h:
              * kjs/lexer.cpp:
              (JSC::Lexer::Lexer):
              (JSC::Lexer::clear):
              (JSC::Lexer::makeIdentifier):
              * kjs/lexer.h:
              * kjs/lookup.cpp:
              * kjs/lookup.h:
              * kjs/nodes.cpp:
              * kjs/nodes.h:
              * kjs/nodes2string.cpp:
              * kjs/operations.cpp:
              * kjs/operations.h:
              * kjs/protect.h:
              * kjs/regexp.cpp:
              * kjs/regexp.h:
              * kjs/ustring.cpp:
              * kjs/ustring.h:
              (JSC::operator!=):
              (JSC::IdentifierRepHash::hash):
              (WTF::):
              * masm/MacroAssembler.h:
              * masm/MacroAssemblerWin.cpp:
              * masm/X86Assembler.h:
              * pcre/pcre_exec.cpp:
              * profiler/CallIdentifier.h:
              (WTF::):
              * profiler/HeavyProfile.cpp:
              * profiler/HeavyProfile.h:
              * profiler/Profile.cpp:
              * profiler/Profile.h:
              * profiler/ProfileGenerator.cpp:
              * profiler/ProfileGenerator.h:
              * profiler/ProfileNode.cpp:
              * profiler/ProfileNode.h:
              * profiler/Profiler.cpp:
              * profiler/Profiler.h:
              * profiler/TreeProfile.cpp:
              * profiler/TreeProfile.h:
              * wrec/WREC.cpp:
              * wrec/WREC.h:
              * wtf/AVLTree.h:
      
              WebCore:
      
              * WebCore.base.exp:
              * bindings/js/GCController.cpp:
              * bindings/js/JSAttrCustom.cpp:
              * bindings/js/JSAudioConstructor.cpp:
              * bindings/js/JSAudioConstructor.h:
              (WebCore::JSAudioConstructor::classInfo):
              * bindings/js/JSCSSRuleCustom.cpp:
              * bindings/js/JSCSSStyleDeclarationCustom.cpp:
              * bindings/js/JSCSSValueCustom.cpp:
              * bindings/js/JSCanvasPixelArrayCustom.cpp:
              * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
              * bindings/js/JSClipboardCustom.cpp:
              * bindings/js/JSConsoleCustom.cpp:
              * bindings/js/JSCustomSQLStatementCallback.cpp:
              (WebCore::JSCustomSQLStatementCallback::handleEvent):
              * bindings/js/JSCustomSQLStatementCallback.h:
              (WebCore::JSCustomSQLStatementCallback::create):
              * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
              (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
              * bindings/js/JSCustomSQLStatementErrorCallback.h:
              (WebCore::JSCustomSQLStatementErrorCallback::create):
              * bindings/js/JSCustomSQLTransactionCallback.cpp:
              (WebCore::JSCustomSQLTransactionCallback::handleEvent):
              * bindings/js/JSCustomSQLTransactionCallback.h:
              (WebCore::JSCustomSQLTransactionCallback::create):
              * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
              (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
              * bindings/js/JSCustomSQLTransactionErrorCallback.h:
              (WebCore::JSCustomSQLTransactionErrorCallback::create):
              * bindings/js/JSCustomVoidCallback.cpp:
              (WebCore::JSCustomVoidCallback::handleEvent):
              * bindings/js/JSCustomVoidCallback.h:
              (WebCore::JSCustomVoidCallback::create):
              * bindings/js/JSCustomXPathNSResolver.cpp:
              (WebCore::JSCustomXPathNSResolver::create):
              * bindings/js/JSCustomXPathNSResolver.h:
              * bindings/js/JSDOMApplicationCacheCustom.cpp:
              (WebCore::JSDOMApplicationCache::dispatchEvent):
              * bindings/js/JSDOMBinding.cpp:
              (WebCore::jsOwnedStringOrNull):
              * bindings/js/JSDOMBinding.h:
              (WebCore::DOMObject::DOMObject):
              (WebCore::cacheDOMObject):
              (WebCore::cacheSVGDOMObject):
              (WebCore::DOMExceptionTranslator::DOMExceptionTranslator):
              (WebCore::toJS):
              * bindings/js/JSDOMWindowBase.cpp:
              * bindings/js/JSDOMWindowBase.h:
              (WebCore::JSDOMWindowBase::classInfo):
              (WebCore::JSDOMWindowBase::d):
              * bindings/js/JSDOMWindowCustom.cpp:
              (WebCore::JSDOMWindow::getPropertyAttributes):
              * bindings/js/JSDOMWindowCustom.h:
              (WebCore::asJSDOMWindow):
              (WebCore::JSDOMWindow::customGetOwnPropertySlot):
              (WebCore::JSDOMWindow::customPut):
              (WebCore::JSDOMWindowBase::allowsAccessFrom):
              (WebCore::JSDOMWindowBase::allowsAccessFromNoErrorMessage):
              * bindings/js/JSDOMWindowShell.cpp:
              (WebCore::JSDOMWindowShell::getPropertyAttributes):
              * bindings/js/JSDOMWindowShell.h:
              (WebCore::JSDOMWindowShell::classInfo):
              * bindings/js/JSDatabaseCustom.cpp:
              * bindings/js/JSDocumentCustom.cpp:
              * bindings/js/JSDocumentFragmentCustom.cpp:
              * bindings/js/JSElementCustom.cpp:
              * bindings/js/JSEventCustom.cpp:
              * bindings/js/JSEventListener.cpp:
              * bindings/js/JSEventListener.h:
              (WebCore::JSUnprotectedEventListener::create):
              (WebCore::JSEventListener::create):
              * bindings/js/JSEventTargetBase.cpp:
              * bindings/js/JSEventTargetBase.h:
              (WebCore::JSEventTargetBase::getValueProperty):
              (WebCore::JSEventTargetBase::putValueProperty):
              (WebCore::JSEventTargetBase::getOwnPropertySlot):
              (WebCore::JSEventTargetBase::put):
              (WebCore::JSEventTargetPrototype::JSEventTargetPrototype):
              (WebCore::JSEventTargetPrototype::self):
              (WebCore::JSEventTargetPrototype::getOwnPropertySlot):
              (WebCore::JSEventTargetPrototype::classInfo):
              * bindings/js/JSEventTargetNode.cpp:
              * bindings/js/JSEventTargetNode.h:
              (WebCore::JSEventTargetNode::getOwnPropertySlot):
              (WebCore::JSEventTargetNode::getValueProperty):
              (WebCore::JSEventTargetNode::put):
              (WebCore::JSEventTargetNode::putValueProperty):
              * bindings/js/JSHTMLAllCollection.h:
              (WebCore::JSHTMLAllCollection::JSHTMLAllCollection):
              (WebCore::JSHTMLAllCollection::toBoolean):
              * bindings/js/JSHTMLAppletElementCustom.cpp:
              * bindings/js/JSHTMLCollectionCustom.cpp:
              * bindings/js/JSHTMLDocumentCustom.cpp:
              * bindings/js/JSHTMLElementCustom.cpp:
              * bindings/js/JSHTMLEmbedElementCustom.cpp:
              * bindings/js/JSHTMLFormElementCustom.cpp:
              * bindings/js/JSHTMLFrameElementCustom.cpp:
              * bindings/js/JSHTMLFrameSetElementCustom.cpp:
              * bindings/js/JSHTMLIFrameElementCustom.cpp:
              * bindings/js/JSHTMLInputElementBase.cpp:
              (WebCore::JSHTMLInputElementBase::JSHTMLInputElementBase):
              (WebCore::JSHTMLInputElementBase::getOwnPropertySlot):
              * bindings/js/JSHTMLInputElementBase.h:
              (WebCore::JSHTMLInputElementBase::classInfo):
              * bindings/js/JSHTMLObjectElementCustom.cpp:
              * bindings/js/JSHTMLOptionElementConstructor.cpp:
              * bindings/js/JSHTMLOptionElementConstructor.h:
              (WebCore::JSHTMLOptionElementConstructor::classInfo):
              * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
              * bindings/js/JSHTMLSelectElementCustom.cpp:
              (WebCore::selectIndexSetter):
              (WebCore::JSHTMLSelectElement::indexSetter):
              * bindings/js/JSHTMLSelectElementCustom.h:
              * bindings/js/JSHistoryCustom.cpp:
              * bindings/js/JSImageConstructor.cpp:
              * bindings/js/JSImageConstructor.h:
              (WebCore::JSImageConstructor::classInfo):
              * bindings/js/JSInspectedObjectWrapper.cpp:
              * bindings/js/JSInspectedObjectWrapper.h:
              (WebCore::JSInspectedObjectWrapper::wrapOutgoingValue):
              (WebCore::JSInspectedObjectWrapper::classInfo):
              * bindings/js/JSInspectorCallbackWrapper.cpp:
              * bindings/js/JSInspectorCallbackWrapper.h:
              (WebCore::JSInspectorCallbackWrapper::classInfo):
              (WebCore::JSInspectorCallbackWrapper::wrapOutgoingValue):
              * bindings/js/JSJavaScriptCallFrameCustom.cpp:
              * bindings/js/JSLocationCustom.cpp:
              * bindings/js/JSMimeTypeArrayCustom.cpp:
              * bindings/js/JSNSResolver.cpp:
              * bindings/js/JSNSResolver.h:
              (WebCore::JSNSResolver::create):
              * bindings/js/JSNamedNodeMapCustom.cpp:
              * bindings/js/JSNamedNodesCollection.cpp:
              (WebCore::JSNamedNodesCollection::JSNamedNodesCollection):
              * bindings/js/JSNamedNodesCollection.h:
              (WebCore::JSNamedNodesCollection::classInfo):
              * bindings/js/JSNavigatorCustom.cpp:
              * bindings/js/JSNodeCustom.cpp:
              * bindings/js/JSNodeFilterCondition.cpp:
              (WebCore::JSNodeFilterCondition::acceptNode):
              * bindings/js/JSNodeFilterCondition.h:
              (WebCore::JSNodeFilterCondition::create):
              * bindings/js/JSNodeFilterCustom.cpp:
              * bindings/js/JSNodeIteratorCustom.cpp:
              * bindings/js/JSNodeListCustom.cpp:
              * bindings/js/JSPluginArrayCustom.cpp:
              * bindings/js/JSPluginCustom.cpp:
              * bindings/js/JSPluginElementFunctions.cpp:
              (WebCore::getRuntimeObject):
              * bindings/js/JSPluginElementFunctions.h:
              * bindings/js/JSQuarantinedObjectWrapper.cpp:
              (WebCore::JSQuarantinedObjectWrapper::construct):
              (WebCore::JSQuarantinedObjectWrapper::call):
              * bindings/js/JSQuarantinedObjectWrapper.h:
              (WebCore::JSQuarantinedObjectWrapper::unwrappedObject):
              (WebCore::JSQuarantinedObjectWrapper::unwrappedGlobalObject):
              (WebCore::JSQuarantinedObjectWrapper::className):
              * bindings/js/JSRGBColor.cpp:
              * bindings/js/JSRGBColor.h:
              (WebCore::JSRGBColor::classInfo):
              * bindings/js/JSSQLResultSetRowListCustom.cpp:
              * bindings/js/JSSQLTransactionCustom.cpp:
              * bindings/js/JSSVGLazyEventListener.cpp:
              * bindings/js/JSSVGLazyEventListener.h:
              * bindings/js/JSSVGLengthCustom.cpp:
              * bindings/js/JSSVGMatrixCustom.cpp:
              (WebCore::JSSVGMatrix::inverse):
              (WebCore::JSSVGMatrix::rotateFromVector):
              * bindings/js/JSSVGPathSegCustom.cpp:
              * bindings/js/JSSVGPathSegListCustom.cpp:
              (WebCore::JSSVGPathSegList::initialize):
              (WebCore::JSSVGPathSegList::getItem):
              (WebCore::JSSVGPathSegList::insertItemBefore):
              (WebCore::JSSVGPathSegList::replaceItem):
              (WebCore::JSSVGPathSegList::removeItem):
              (WebCore::JSSVGPathSegList::appendItem):
              * bindings/js/JSSVGPointListCustom.cpp:
              * bindings/js/JSSVGTransformListCustom.cpp:
              * bindings/js/JSStorageCustom.cpp:
              * bindings/js/JSStyleSheetCustom.cpp:
              * bindings/js/JSStyleSheetListCustom.cpp:
              * bindings/js/JSTextCustom.cpp:
              * bindings/js/JSTreeWalkerCustom.cpp:
              * bindings/js/JSXMLHttpRequestConstructor.cpp:
              * bindings/js/JSXMLHttpRequestConstructor.h:
              (WebCore::JSXMLHttpRequestConstructor::classInfo):
              * bindings/js/JSXMLHttpRequestCustom.cpp:
              * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
              * bindings/js/JSXSLTProcessorConstructor.cpp:
              * bindings/js/JSXSLTProcessorConstructor.h:
              (WebCore::JSXSLTProcessorConstructor::classInfo):
              * bindings/js/JSXSLTProcessorCustom.cpp:
              * bindings/js/ScheduledAction.cpp:
              * bindings/js/ScheduledAction.h:
              * bindings/js/ScriptController.cpp:
              (WebCore::ScriptController::attachDebugger):
              (WebCore::ScriptController::windowScriptNPObject):
              * bindings/js/ScriptController.h:
              * bindings/js/ScriptControllerGtk.cpp:
              (WebCore::ScriptController::createScriptInstanceForWidget):
              * bindings/js/ScriptControllerMac.mm:
              (WebCore::ScriptController::createScriptInstanceForWidget):
              (WebCore::ScriptController::windowScriptObject):
              (WebCore::ScriptController::clearPlatformScriptObjects):
              (WebCore::updateRenderingForBindings):
              (WebCore::ScriptController::initJavaJSBindings):
              * bindings/js/ScriptControllerQt.cpp:
              (WebCore::ScriptController::createScriptInstanceForWidget):
              * bindings/js/ScriptControllerWin.cpp:
              (WebCore::ScriptController::createScriptInstanceForWidget):
              * bindings/js/ScriptControllerWx.cpp:
              (WebCore::ScriptController::createScriptInstanceForWidget):
              * bindings/js/StringSourceProvider.h:
              (WebCore::StringSourceProvider::getRange):
              * bindings/objc/DOM.mm:
              (-[DOMNode JSC::Bindings::]):
              * bindings/objc/DOMInternal.h:
              * bindings/objc/DOMInternal.mm:
              (-[WebScriptObject _initializeScriptDOMNodeImp]):
              * bindings/objc/DOMUtility.mm:
              (JSC::createDOMWrapper):
              (WebCore::createDOMWrapper):
              * bindings/objc/WebScriptObject.mm:
              (WebCore::createJSWrapper):
              (-[WebScriptObject _initWithJSObject:JSC::originRootObject:JSC::Bindings::rootObject:JSC::Bindings::]):
              * bindings/objc/WebScriptObjectPrivate.h:
              * bindings/scripts/CodeGeneratorJS.pm:
              * bridge/NP_jsobject.cpp:
              * bridge/NP_jsobject.h:
              * bridge/c/c_class.cpp:
              * bridge/c/c_class.h:
              * bridge/c/c_instance.cpp:
              * bridge/c/c_instance.h:
              * bridge/c/c_runtime.cpp:
              * bridge/c/c_runtime.h:
              * bridge/c/c_utility.cpp:
              * bridge/c/c_utility.h:
              * bridge/jni/jni_class.cpp:
              * bridge/jni/jni_class.h:
              * bridge/jni/jni_instance.cpp:
              * bridge/jni/jni_instance.h:
              * bridge/jni/jni_jsobject.h:
              * bridge/jni/jni_jsobject.mm:
              (JavaJSObject::call):
              (JavaJSObject::convertJObjectToValue):
              * bridge/jni/jni_objc.mm:
              (JSC::Bindings::dispatchJNICall):
              * bridge/jni/jni_runtime.cpp:
              * bridge/jni/jni_runtime.h:
              * bridge/jni/jni_utility.cpp:
              * bridge/jni/jni_utility.h:
              * bridge/npruntime.cpp:
              (_NPN_GetStringIdentifier):
              * bridge/objc/WebScriptObject.h:
              * bridge/objc/objc_class.h:
              * bridge/objc/objc_class.mm:
              * bridge/objc/objc_instance.h:
              * bridge/objc/objc_instance.mm:
              * bridge/objc/objc_runtime.h:
              * bridge/objc/objc_runtime.mm:
              * bridge/objc/objc_utility.h:
              * bridge/objc/objc_utility.mm:
              * bridge/qt/qt_class.cpp:
              * bridge/qt/qt_class.h:
              * bridge/qt/qt_instance.cpp:
              * bridge/qt/qt_instance.h:
              * bridge/qt/qt_runtime.cpp:
              (JSC::Bindings::convertQVariantToValue):
              (JSC::Bindings::):
              * bridge/qt/qt_runtime.h:
              * bridge/runtime.cpp:
              * bridge/runtime.h:
              * bridge/runtime_array.cpp:
              * bridge/runtime_array.h:
              * bridge/runtime_method.cpp:
              * bridge/runtime_method.h:
              * bridge/runtime_object.cpp:
              * bridge/runtime_object.h:
              * bridge/runtime_root.cpp:
              (JSC::Bindings::RootObject::invalidate):
              (JSC::Bindings::RootObject::gcProtect):
              (JSC::Bindings::RootObject::gcUnprotect):
              * bridge/runtime_root.h:
              * bridge/testbindings.cpp:
              * bridge/testbindings.mm:
              * bridge/testqtbindings.cpp:
              * dom/Document.cpp:
              (WebCore::Document::~Document):
              * dom/NSResolver.h:
              * dom/Node.cpp:
              (WebCore::Node::setDocument):
              (WebCore::ResolveNamespaceFunctor::ResolveNamespaceFunctor):
              (WebCore::resolveNamespacesForSelector):
              (WebCore::Node::querySelector):
              (WebCore::Node::querySelectorAll):
              * dom/Node.h:
              * dom/NodeFilter.cpp:
              * dom/NodeFilter.h:
              * dom/NodeFilterCondition.cpp:
              * dom/NodeFilterCondition.h:
              * dom/NodeIterator.cpp:
              * dom/NodeIterator.h:
              * dom/Traversal.cpp:
              * dom/Traversal.h:
              * dom/TreeWalker.cpp:
              * dom/TreeWalker.h:
              * dom/make_names.pl:
              * history/CachedPage.cpp:
              * history/CachedPage.h:
              * html/HTMLPlugInElement.cpp:
              (WebCore::HTMLPlugInElement::getInstance):
              * html/HTMLPlugInElement.h:
              * loader/FrameLoader.cpp:
              * loader/FrameLoader.h:
              * loader/icon/IconDatabase.cpp:
              (WebCore::iconDatabase):
              * page/Console.cpp:
              * page/Console.h:
              * page/InspectorController.cpp:
              (WebCore::XMLHttpRequestResource::XMLHttpRequestResource):
              (WebCore::XMLHttpRequestResource::~XMLHttpRequestResource):
              (WebCore::InspectorResource::setXMLHttpRequestProperties):
              (WebCore::InspectorResource::sourceString):
              (WebCore::getResourceDocumentNode):
              (WebCore::search):
              (WebCore::InspectorController::focusNode):
              (WebCore::InspectorController::inspectedWindowScriptObjectCleared):
              (WebCore::InspectorController::addDatabaseScriptResource):
              (WebCore::InspectorController::resourceRetrievedByXMLHttpRequest):
              * page/InspectorController.h:
              (WebCore::InspectorController::profiles):
              * page/JavaScriptCallFrame.cpp:
              (WebCore::JavaScriptCallFrame::scopeChain):
              * page/JavaScriptCallFrame.h:
              (WebCore::JavaScriptCallFrame::create):
              (WebCore::JavaScriptCallFrame::update):
              * page/JavaScriptDebugListener.h:
              * page/JavaScriptDebugServer.cpp:
              (WebCore::dispatchDidParseSource):
              * page/JavaScriptDebugServer.h:
              * page/JavaScriptProfile.cpp:
              * page/JavaScriptProfile.h:
              * page/JavaScriptProfileNode.cpp:
              (WebCore::getTotalTime):
              (WebCore::getSelfTime):
              (WebCore::getTotalPercent):
              (WebCore::getSelfPercent):
              (WebCore::getNumberOfCalls):
              (WebCore::getChildren):
              (WebCore::getVisible):
              * page/JavaScriptProfileNode.h:
              * page/Page.cpp:
              (WebCore::Page::setDebuggerForAllPages):
              (WebCore::Page::setDebugger):
              * page/Page.h:
              (WebCore::Page::debugger):
              * page/mac/FrameMac.mm:
              * platform/KURL.h:
              (WebCore::KURL::operator JSC::UString):
              * platform/text/AtomicString.cpp:
              (WebCore::AtomicString::add):
              (WebCore::AtomicString::find):
              * platform/text/AtomicString.h:
              (WebCore::AtomicString::AtomicString):
              * platform/text/PlatformString.h:
              * platform/text/String.cpp:
              (WebCore::charactersToDouble):
              * platform/win/BString.cpp:
              * platform/win/BString.h:
              * plugins/MimeTypeArray.h:
              * plugins/Plugin.h:
              * plugins/PluginArray.h:
              * plugins/PluginView.cpp:
              (WebCore::PluginView::start):
              (WebCore::PluginView::performRequest):
              (WebCore::PluginView::bindingInstance):
              * plugins/PluginView.h:
              * plugins/gtk/PluginViewGtk.cpp:
              (WebCore::PluginView::paint):
              (WebCore::PluginView::handleKeyboardEvent):
              (WebCore::PluginView::handleMouseEvent):
              (WebCore::PluginView::setNPWindowRect):
              (WebCore::PluginView::stop):
              (WebCore::PluginView::init):
              * plugins/qt/PluginViewQt.cpp:
              (WebCore::PluginView::setNPWindowRect):
              (WebCore::PluginView::stop):
              (WebCore::PluginView::init):
              * plugins/win/PluginViewWin.cpp:
              (WebCore::PluginView::dispatchNPEvent):
              (WebCore::PluginView::handleKeyboardEvent):
              (WebCore::PluginView::handleMouseEvent):
              (WebCore::PluginView::setNPWindowRect):
              (WebCore::PluginView::stop):
              * storage/Database.cpp:
              (WebCore::Database::Database):
              * xml/XMLHttpRequest.cpp:
              (WebCore::XMLHttpRequest::responseText):
              (WebCore::XMLHttpRequest::loadRequestAsynchronously):
              (WebCore::XMLHttpRequest::clearResponse):
              (WebCore::XMLHttpRequest::dropProtection):
              (WebCore::XMLHttpRequest::didFinishLoading):
              (WebCore::XMLHttpRequest::didReceiveData):
              * xml/XMLHttpRequest.h:
      
              WebKit/gtk:
      
              * webkit/webkitprivate.cpp:
              (webkit_init):
      
              WebKit/mac:
      
              * Misc/WebCoreStatistics.mm:
              * Plugins/WebBaseNetscapePluginStream.mm:
              (-[WebBaseNetscapePluginStream wantsAllStreams]):
              * Plugins/WebBaseNetscapePluginView.mm:
              (-[WebBaseNetscapePluginView sendEvent:isDrawRect:]):
              (-[WebBaseNetscapePluginView setWindowIfNecessary]):
              (-[WebBaseNetscapePluginView start]):
              (-[WebBaseNetscapePluginView createPluginScriptableObject]):
              (-[WebBaseNetscapePluginView evaluateJavaScriptPluginRequest:]):
              (-[WebBaseNetscapePluginView webFrame:didFinishLoadWithReason:]):
              (-[WebBaseNetscapePluginView loadPluginRequest:]):
              (-[WebBaseNetscapePluginView _printedPluginBitmap]):
              * Plugins/WebPluginController.mm:
              (+[WebPluginController plugInViewWithArguments:fromPluginPackage:]):
              (-[WebPluginController startAllPlugins]):
              (-[WebPluginController stopAllPlugins]):
              (-[WebPluginController addPlugin:]):
              (-[WebPluginController destroyPlugin:]):
              (-[WebPluginController destroyAllPlugins]):
              * WebView/WebFrame.mm:
              * WebView/WebScriptDebugDelegate.mm:
              * WebView/WebScriptDebugger.h:
              * WebView/WebScriptDebugger.mm:
              * WebView/WebView.mm:
              (-[WebViewPrivate init]):
      
              WebKit/qt:
              
              * Api/qwebframe.cpp:
              (QWebFrame::addToJavaScriptWindowObject):
              (QWebFrame::evaluateJavaScript):
      
              WebKit/win:
      
              * WebCoreStatistics.cpp:
              * WebJavaScriptCollector.cpp:
              * WebScriptCallFrame.cpp:
              (WebScriptCallFrame::jsValueToString):
              * WebScriptCallFrame.h:
              (WebScriptCallFrame::state):
              * WebView.cpp:
              (WebView::WebView):
              (WebView::stringByEvaluatingJavaScriptFromString):
      
              WebKit/wx:
      
              * WebFrame.cpp:
              (wxWebFrame::RunScript):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36263 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3f782f6a