Title: [126360] trunk/Source/WebCore
Revision
126360
Author
[email protected]
Date
2012-08-22 15:27:45 -0700 (Wed, 22 Aug 2012)

Log Message

[V8] Move precompileScript() from V8Proxy to ScriptSourceCode
https://bugs.webkit.org/show_bug.cgi?id=94701

Reviewed by Adam Barth.

To kill V8Proxy, we can move precompileScript() from V8Proxy
to ScriptSourceCode.

No tests. No change in behavior.

* bindings/v8/ScriptSourceCode.cpp:
(WebCore::ScriptSourceCode::precompileScript):
(WebCore):
* bindings/v8/ScriptSourceCode.h:
(ScriptSourceCode):
* bindings/v8/V8Proxy.cpp:
(WebCore::V8Proxy::evaluate):
* bindings/v8/V8Proxy.h:
(V8Proxy):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (126359 => 126360)


--- trunk/Source/WebCore/ChangeLog	2012-08-22 22:25:59 UTC (rev 126359)
+++ trunk/Source/WebCore/ChangeLog	2012-08-22 22:27:45 UTC (rev 126360)
@@ -1,3 +1,25 @@
+2012-08-22  Kentaro Hara  <[email protected]>
+
+        [V8] Move precompileScript() from V8Proxy to ScriptSourceCode
+        https://bugs.webkit.org/show_bug.cgi?id=94701
+
+        Reviewed by Adam Barth.
+
+        To kill V8Proxy, we can move precompileScript() from V8Proxy
+        to ScriptSourceCode.
+
+        No tests. No change in behavior.
+
+        * bindings/v8/ScriptSourceCode.cpp:
+        (WebCore::ScriptSourceCode::precompileScript):
+        (WebCore):
+        * bindings/v8/ScriptSourceCode.h:
+        (ScriptSourceCode):
+        * bindings/v8/V8Proxy.cpp:
+        (WebCore::V8Proxy::evaluate):
+        * bindings/v8/V8Proxy.h:
+        (V8Proxy):
+
 2012-08-22  Nikhil Bhargava  <[email protected]>
 
         Reduce Font.h includes across project -- improves RenderObject.h compile time

Modified: trunk/Source/WebCore/bindings/v8/ScriptSourceCode.cpp (126359 => 126360)


--- trunk/Source/WebCore/bindings/v8/ScriptSourceCode.cpp	2012-08-22 22:25:59 UTC (rev 126359)
+++ trunk/Source/WebCore/bindings/v8/ScriptSourceCode.cpp	2012-08-22 22:27:45 UTC (rev 126360)
@@ -26,10 +26,34 @@
 #include "config.h"
 #include "ScriptSourceCode.h"
 
+#include "CachedMetadata.h"
+#include "CachedScript.h"
 #include "V8Binding.h"
 
 namespace WebCore {
 
+PassOwnPtr<v8::ScriptData> ScriptSourceCode::precompileScript(v8::Handle<v8::String> code, CachedScript* cachedScript)
+{
+    // A pseudo-randomly chosen ID used to store and retrieve V8 ScriptData from
+    // the CachedScript. If the format changes, this ID should be changed too.
+    static const unsigned dataTypeID = 0xECC13BD7;
+
+    // Very small scripts are not worth the effort to preparse.
+    static const int minPreparseLength = 1024;
+
+    if (!cachedScript || code->Length() < minPreparseLength)
+        return nullptr;
+
+    CachedMetadata* cachedMetadata = cachedScript->cachedMetadata(dataTypeID);
+    if (cachedMetadata)
+        return adoptPtr(v8::ScriptData::New(cachedMetadata->data(), cachedMetadata->size()));
+
+    OwnPtr<v8::ScriptData> scriptData = adoptPtr(v8::ScriptData::PreCompile(code));
+    cachedScript->setCachedMetadata(dataTypeID, scriptData->Data(), scriptData->Length());
+
+    return scriptData.release();
+}
+
 v8::Handle<v8::Script> ScriptSourceCode::compileScript(v8::Handle<v8::String> code, const String& fileName, const TextPosition& scriptStartPosition, v8::ScriptData* scriptData)
 {
     v8::Handle<v8::String> name = v8String(fileName);

Modified: trunk/Source/WebCore/bindings/v8/ScriptSourceCode.h (126359 => 126360)


--- trunk/Source/WebCore/bindings/v8/ScriptSourceCode.h	2012-08-22 22:25:59 UTC (rev 126359)
+++ trunk/Source/WebCore/bindings/v8/ScriptSourceCode.h	2012-08-22 22:27:45 UTC (rev 126360)
@@ -36,6 +36,7 @@
 #include "KURL.h"
 #include "PlatformString.h"
 #include <v8.h>
+#include <wtf/PassOwnPtr.h>
 #include <wtf/text/TextPosition.h>
 
 namespace WebCore {
@@ -73,6 +74,7 @@
     int startLine() const { return m_startPosition.m_line.oneBasedInt(); }
     const TextPosition& startPosition() const { return m_startPosition; }
 
+    static PassOwnPtr<v8::ScriptData> precompileScript(v8::Handle<v8::String>, CachedScript*);
     static v8::Handle<v8::Script> compileScript(v8::Handle<v8::String>, const String&, const TextPosition&, v8::ScriptData* = 0);
 
 private:

Modified: trunk/Source/WebCore/bindings/v8/V8Proxy.cpp (126359 => 126360)


--- trunk/Source/WebCore/bindings/v8/V8Proxy.cpp	2012-08-22 22:25:59 UTC (rev 126359)
+++ trunk/Source/WebCore/bindings/v8/V8Proxy.cpp	2012-08-22 22:27:45 UTC (rev 126360)
@@ -94,28 +94,6 @@
     windowShell()->destroyGlobal();
 }
 
-PassOwnPtr<v8::ScriptData> V8Proxy::precompileScript(v8::Handle<v8::String> code, CachedScript* cachedScript)
-{
-    // A pseudo-randomly chosen ID used to store and retrieve V8 ScriptData from
-    // the CachedScript. If the format changes, this ID should be changed too.
-    static const unsigned dataTypeID = 0xECC13BD7;
-
-    // Very small scripts are not worth the effort to preparse.
-    static const int minPreparseLength = 1024;
-
-    if (!cachedScript || code->Length() < minPreparseLength)
-        return nullptr;
-
-    CachedMetadata* cachedMetadata = cachedScript->cachedMetadata(dataTypeID);
-    if (cachedMetadata)
-        return adoptPtr(v8::ScriptData::New(cachedMetadata->data(), cachedMetadata->size()));
-
-    OwnPtr<v8::ScriptData> scriptData = adoptPtr(v8::ScriptData::PreCompile(code));
-    cachedScript->setCachedMetadata(dataTypeID, scriptData->Data(), scriptData->Length());
-
-    return scriptData.release();
-}
-
 v8::Local<v8::Value> V8Proxy::evaluate(const ScriptSourceCode& source, Node* node)
 {
     ASSERT(v8::Context::InContext());
@@ -138,7 +116,7 @@
 #if PLATFORM(CHROMIUM)
         TRACE_EVENT_BEGIN0("v8", "v8.compile");
 #endif
-        OwnPtr<v8::ScriptData> scriptData = precompileScript(code, source.cachedScript());
+        OwnPtr<v8::ScriptData> scriptData = ScriptSourceCode::precompileScript(code, source.cachedScript());
 
         // NOTE: For compatibility with WebCore, ScriptSourceCode's line starts at
         // 1, whereas v8 starts at 0.

Modified: trunk/Source/WebCore/bindings/v8/V8Proxy.h (126359 => 126360)


--- trunk/Source/WebCore/bindings/v8/V8Proxy.h	2012-08-22 22:25:59 UTC (rev 126359)
+++ trunk/Source/WebCore/bindings/v8/V8Proxy.h	2012-08-22 22:27:45 UTC (rev 126360)
@@ -117,8 +117,6 @@
         IsolatedWorldSecurityOriginMap& isolatedWorldSecurityOrigins() { return m_isolatedWorldSecurityOrigins; }
 
     private:
-        PassOwnPtr<v8::ScriptData> precompileScript(v8::Handle<v8::String>, CachedScript*);
-
         Frame* m_frame;
 
         // The isolated worlds we are tracking for this frame. We hold them alive
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to