Title: [135922] trunk/Source/WebCore
Revision
135922
Author
[email protected]
Date
2012-11-27 14:29:46 -0800 (Tue, 27 Nov 2012)

Log Message

[V8] Replace toWebCoreString()/toWebCoreAtomicString() in CodeGeneratorV8.pm with V8StringResource
https://bugs.webkit.org/show_bug.cgi?id=103391

Reviewed by Adam Barth.

This is an incremental effort for fixing bug 103331.
I confirmed that this patch causes no performance regression
for the micro benchmarks (https://bugs.webkit.org/attachment.cgi?id=176178).

No tests. No change in behavior.

* bindings/scripts/CodeGeneratorV8.pm:
(GenerateNormalAttrSetter):
(GenerateEventListenerCallback):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore::TestEventTargetV8Internal::addEventListenerCallback):
(WebCore::TestEventTargetV8Internal::removeEventListenerCallback):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::addEventListenerCallback):
(WebCore::TestObjV8Internal::removeEventListenerCallback):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (135921 => 135922)


--- trunk/Source/WebCore/ChangeLog	2012-11-27 22:23:24 UTC (rev 135921)
+++ trunk/Source/WebCore/ChangeLog	2012-11-27 22:29:46 UTC (rev 135922)
@@ -1,3 +1,26 @@
+2012-11-27  Kentaro Hara  <[email protected]>
+
+        [V8] Replace toWebCoreString()/toWebCoreAtomicString() in CodeGeneratorV8.pm with V8StringResource
+        https://bugs.webkit.org/show_bug.cgi?id=103391
+
+        Reviewed by Adam Barth.
+
+        This is an incremental effort for fixing bug 103331.
+        I confirmed that this patch causes no performance regression
+        for the micro benchmarks (https://bugs.webkit.org/attachment.cgi?id=176178).
+
+        No tests. No change in behavior.
+
+        * bindings/scripts/CodeGeneratorV8.pm:
+        (GenerateNormalAttrSetter):
+        (GenerateEventListenerCallback):
+        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
+        (WebCore::TestEventTargetV8Internal::addEventListenerCallback):
+        (WebCore::TestEventTargetV8Internal::removeEventListenerCallback):
+        * bindings/scripts/test/V8/V8TestObj.cpp:
+        (WebCore::TestObjV8Internal::addEventListenerCallback):
+        (WebCore::TestObjV8Internal::removeEventListenerCallback):
+
 2012-11-27  Alexandru Chiculita  <[email protected]>
 
         [CSS Regions] Elements using transforms are not repainted correctly when rendered in a region

Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm (135921 => 135922)


--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm	2012-11-27 22:23:24 UTC (rev 135921)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm	2012-11-27 22:29:46 UTC (rev 135922)
@@ -1222,8 +1222,8 @@
             my $namespace = $codeGenerator->NamespaceForAttributeName($interfaceName, $contentAttributeName);
             AddToImplIncludes("${namespace}.h");
             push(@implContentDecls, "    Element* imp = V8Element::toNative(info.Holder());\n");
-            push(@implContentDecls, "    AtomicString v = toWebCoreAtomicStringWithNullCheck(value);\n");
-            push(@implContentDecls, "    imp->setAttribute(${namespace}::${contentAttributeName}Attr, v);\n");
+            push(@implContentDecls, "    V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<WithNullCheck>, stringResource, value);\n");
+            push(@implContentDecls, "    imp->setAttribute(${namespace}::${contentAttributeName}Attr, stringResource);\n");
             push(@implContentDecls, "}\n\n");
             push(@implContentDecls, "#endif // ${conditionalString}\n\n") if $conditionalString;
             return;
@@ -1374,7 +1374,8 @@
     INC_STATS("DOM.${interfaceName}.${functionName}EventListener()");
     RefPtr<EventListener> listener = V8DOMWrapper::getEventListener(args[1], false, ListenerFind${lookupType});
     if (listener) {
-        V8${interfaceName}::toNative(args.Holder())->${functionName}EventListener(toWebCoreAtomicString(args[0]), listener${passRefPtrHandling}, args[2]->BooleanValue());
+        V8TRYCATCH_FOR_V8STRINGRESOURCE(V8StringResource<WithNullCheck>, stringResource, args[0]);
+        V8${interfaceName}::toNative(args.Holder())->${functionName}EventListener(stringResource, listener${passRefPtrHandling}, args[2]->BooleanValue());
 END
     if ($requiresHiddenDependency) {
         push(@implContentDecls, <<END);

Modified: trunk/Source/WebCore/bindings/scripts/test/V8/V8TestEventTarget.cpp (135921 => 135922)


--- trunk/Source/WebCore/bindings/scripts/test/V8/V8TestEventTarget.cpp	2012-11-27 22:23:24 UTC (rev 135921)
+++ trunk/Source/WebCore/bindings/scripts/test/V8/V8TestEventTarget.cpp	2012-11-27 22:29:46 UTC (rev 135922)
@@ -65,7 +65,8 @@
     INC_STATS("DOM.TestEventTarget.addEventListener()");
     RefPtr<EventListener> listener = V8DOMWrapper::getEventListener(args[1], false, ListenerFindOrCreate);
     if (listener) {
-        V8TestEventTarget::toNative(args.Holder())->addEventListener(toWebCoreAtomicString(args[0]), listener, args[2]->BooleanValue());
+        V8TRYCATCH_FOR_V8STRINGRESOURCE(V8StringResource<WithNullCheck>, stringResource, args[0]);
+        V8TestEventTarget::toNative(args.Holder())->addEventListener(stringResource, listener, args[2]->BooleanValue());
         createHiddenDependency(args.Holder(), args[1], V8TestEventTarget::eventListenerCacheIndex);
     }
     return v8Undefined();
@@ -76,7 +77,8 @@
     INC_STATS("DOM.TestEventTarget.removeEventListener()");
     RefPtr<EventListener> listener = V8DOMWrapper::getEventListener(args[1], false, ListenerFindOnly);
     if (listener) {
-        V8TestEventTarget::toNative(args.Holder())->removeEventListener(toWebCoreAtomicString(args[0]), listener.get(), args[2]->BooleanValue());
+        V8TRYCATCH_FOR_V8STRINGRESOURCE(V8StringResource<WithNullCheck>, stringResource, args[0]);
+        V8TestEventTarget::toNative(args.Holder())->removeEventListener(stringResource, listener.get(), args[2]->BooleanValue());
         removeHiddenDependency(args.Holder(), args[1], V8TestEventTarget::eventListenerCacheIndex);
     }
     return v8Undefined();

Modified: trunk/Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp (135921 => 135922)


--- trunk/Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp	2012-11-27 22:23:24 UTC (rev 135921)
+++ trunk/Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp	2012-11-27 22:29:46 UTC (rev 135922)
@@ -1203,7 +1203,8 @@
     INC_STATS("DOM.TestObj.addEventListener()");
     RefPtr<EventListener> listener = V8DOMWrapper::getEventListener(args[1], false, ListenerFindOrCreate);
     if (listener) {
-        V8TestObj::toNative(args.Holder())->addEventListener(toWebCoreAtomicString(args[0]), listener, args[2]->BooleanValue());
+        V8TRYCATCH_FOR_V8STRINGRESOURCE(V8StringResource<WithNullCheck>, stringResource, args[0]);
+        V8TestObj::toNative(args.Holder())->addEventListener(stringResource, listener, args[2]->BooleanValue());
         createHiddenDependency(args.Holder(), args[1], V8TestObj::eventListenerCacheIndex);
     }
     return v8Undefined();
@@ -1214,7 +1215,8 @@
     INC_STATS("DOM.TestObj.removeEventListener()");
     RefPtr<EventListener> listener = V8DOMWrapper::getEventListener(args[1], false, ListenerFindOnly);
     if (listener) {
-        V8TestObj::toNative(args.Holder())->removeEventListener(toWebCoreAtomicString(args[0]), listener.get(), args[2]->BooleanValue());
+        V8TRYCATCH_FOR_V8STRINGRESOURCE(V8StringResource<WithNullCheck>, stringResource, args[0]);
+        V8TestObj::toNative(args.Holder())->removeEventListener(stringResource, listener.get(), args[2]->BooleanValue());
         removeHiddenDependency(args.Holder(), args[1], V8TestObj::eventListenerCacheIndex);
     }
     return v8Undefined();
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to