Skip to content
  • rniwa@webkit.org's avatar
    JSString should remember AtomicString · 85e57d89
    rniwa@webkit.org authored
    https://bugs.webkit.org/show_bug.cgi?id=117386
    
    Reviewed by Geoffrey Garen.
    
    Source/JavaScriptCore:
    
    Added JSValue::toAtomicString and JSString::atomicString. These two functions allow WebCore to update
    JSString's m_value to set isAtomic flag and avoid the AtomicStringTable lookups in subsequent attempts
    to obtain the AtomicString of the same value.
    
    * runtime/JSCJSValue.h:
    * runtime/JSString.h:
    (JSC::JSString::atomicString):
    (JSC::JSValue::toAtomicString):
    
    Source/WebCore:
    
    Added "Atomic" attribute as a WebKit extension to WebIDL, and deployed it in Element.idl and Node.idl so that
    the binding code can use newly added JSValue::toAtomic to update JSString's m_value.
    
    * bindings/js/JSDOMBinding.cpp:
    (WebCore::valueToAtomicStringWithNullCheck): Added.
    (WebCore::valueToAtomicStringWithUndefinedOrNullCheck): Added.
    
    * bindings/js/JSDOMBinding.h:
    
    * bindings/scripts/CodeGeneratorJS.pm:
    (GetNativeTypeFromSignature): Return const AtomicString& when either Atomic attribute is specified or the type is
    Reflect. Note that setAttribute and getAttribute both use AtomicString for all arguments.
    (JSValueToNative): Use AtomicString equivalents when possible when converting DOMString to a WebCore object.
    
    * bindings/scripts/IDLAttributes.txt: Added "Atomic" attribute.
    
    * bindings/scripts/test/JS/JSTestObj.cpp: Baselined test cases.
    (WebCore::setJSTestObjReflectedStringAttr):
    (WebCore::setJSTestObjReflectedURLAttr):
    (WebCore::setJSTestObjReflectedCustomURLAttr):
    
    * dom/Document.idl:
    * dom/Element.idl:
    * dom/Node.idl:
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@151978 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    85e57d89