[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

mihaip at chromium.org mihaip at chromium.org
Wed Dec 22 15:14:13 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 041a59c85b2e087c60c741eb9d7f6fd545a62371
Author: mihaip at chromium.org <mihaip at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Oct 29 08:08:10 2010 +0000

    2010-10-29  Mihai Parparita  <mihaip at chromium.org>
    
            Reviewed by Adam Barth.
    
            Support RegExp in V8 implementation of SerializedScriptValue
            https://bugs.webkit.org/show_bug.cgi?id=44809
    
            fast/loader/stateobjects/pushstate-object-types.html now passes.
    
            * platform/chromium/test_expectations.txt:
    2010-10-29  Mihai Parparita  <mihaip at chromium.org>
    
            Reviewed by Adam Barth.
    
            Support RegExp in V8 implementation of SerializedScriptValue
            https://bugs.webkit.org/show_bug.cgi?id=44809
    
            Add RegExp serialization/deserialization now that V8 provides API access
            to the RegExp type.
    
            * bindings/v8/SerializedScriptValue.cpp:
            (WebCore::ZigZag::Writer::writeRegExp):
            (WebCore::ZigZag::Serializer::writeRegExp):
            (WebCore::ZigZag::Serializer::doSerialize):
            (WebCore::ZigZag::Reader::read):
            (WebCore::ZigZag::Reader::readRegExp):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@70851 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 3366caf..83ac587 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,14 @@
+2010-10-29  Mihai Parparita  <mihaip at chromium.org>
+
+        Reviewed by Adam Barth.
+
+        Support RegExp in V8 implementation of SerializedScriptValue
+        https://bugs.webkit.org/show_bug.cgi?id=44809
+        
+        fast/loader/stateobjects/pushstate-object-types.html now passes.
+
+        * platform/chromium/test_expectations.txt:
+
 2010-10-29  David Hyatt  <hyatt at apple.com>
 
         Reviewed by Dan Bernstein.
diff --git a/LayoutTests/platform/chromium/test_expectations.txt b/LayoutTests/platform/chromium/test_expectations.txt
index 3fc20d0..ea881c5 100644
--- a/LayoutTests/platform/chromium/test_expectations.txt
+++ b/LayoutTests/platform/chromium/test_expectations.txt
@@ -2195,7 +2195,6 @@ BUG29167 MAC DEBUG : fast/dom/replaceChild.html = IMAGE PASS
 BUG29239 LINUX WIN : fast/css/variables/misplaced-import-test.html = FAIL
 
 // Failures from WebKit merge 51642:51681
-BUG29393 : fast/loader/stateobjects/pushstate-object-types.html = TEXT
 BUG29393 : fast/loader/stateobjects/state-api-on-detached-frame-crash.html = TEXT
 
 // Failures introduced by USE_NEW_BUILDER in Skia.
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 84ffed5..6473312 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,20 @@
+2010-10-29  Mihai Parparita  <mihaip at chromium.org>
+
+        Reviewed by Adam Barth.
+
+        Support RegExp in V8 implementation of SerializedScriptValue
+        https://bugs.webkit.org/show_bug.cgi?id=44809
+        
+        Add RegExp serialization/deserialization now that V8 provides API access
+        to the RegExp type.
+
+        * bindings/v8/SerializedScriptValue.cpp:
+        (WebCore::ZigZag::Writer::writeRegExp):
+        (WebCore::ZigZag::Serializer::writeRegExp):
+        (WebCore::ZigZag::Serializer::doSerialize):
+        (WebCore::ZigZag::Reader::read):
+        (WebCore::ZigZag::Reader::readRegExp):
+
 2010-10-13  MORITA Hajime  <morrita at google.com>
 
         Reviewed by David Hyatt.
diff --git a/WebCore/bindings/v8/SerializedScriptValue.cpp b/WebCore/bindings/v8/SerializedScriptValue.cpp
index ff92167..36fc1f6 100644
--- a/WebCore/bindings/v8/SerializedScriptValue.cpp
+++ b/WebCore/bindings/v8/SerializedScriptValue.cpp
@@ -82,6 +82,7 @@ enum SerializationTag {
     ArrayTag = '[',
     ObjectTag = '{',
     SparseArrayTag = '@',
+    RegExpTag = 'R',
 };
 
 static bool shouldCheckForCycles(int depth)
@@ -219,6 +220,14 @@ public:
         doWriteUint32(pixelDataLength);
         append(pixelData, pixelDataLength);
     }
+    
+    void writeRegExp(v8::Local<v8::String> pattern, v8::RegExp::Flags flags)
+    {
+        append(RegExpTag);
+        v8::String::Utf8Value patternUtf8Value(pattern);
+        doWriteString(*patternUtf8Value, patternUtf8Value.length());
+        doWriteUint32(static_cast<uint32_t>(flags));
+    }    
 
     void writeArray(uint32_t length)
     {
@@ -605,6 +614,12 @@ private:
         WTF::ByteArray* pixelArray = imageData->data()->data();
         m_writer.writeImageData(imageData->width(), imageData->height(), pixelArray->data(), pixelArray->length());
     }
+    
+    void writeRegExp(v8::Handle<v8::Value> value)
+    {
+        v8::Handle<v8::RegExp> regExp = value.As<v8::RegExp>();
+        m_writer.writeRegExp(regExp->GetSource(), regExp->GetFlags());
+    }
 
     static StateBase* newArrayState(v8::Handle<v8::Array> array, StateBase* next)
     {
@@ -656,6 +671,8 @@ Serializer::StateBase* Serializer::doSerialize(v8::Handle<v8::Value> value, Stat
         writeFileList(value);
     else if (V8ImageData::HasInstance(value))
         writeImageData(value);
+    else if (value->IsRegExp())
+        writeRegExp(value);
     else if (value->IsObject())
         return push(newObjectState(value.As<v8::Object>(), next));
     return 0;
@@ -751,6 +768,10 @@ public:
                 return false;
             break;
         }
+        case RegExpTag:
+            if (!readRegExp(value))
+                return false;
+            break;
         case ObjectTag: {
             uint32_t numProperties;
             if (!doReadUint32(&numProperties))
@@ -867,6 +888,18 @@ private:
         *value = toV8(imageData);
         return true;
     }
+    
+    bool readRegExp(v8::Handle<v8::Value>* value)
+    {
+        v8::Handle<v8::Value> pattern;
+        if (!readString(&pattern))
+            return false;
+        uint32_t flags;
+        if (!doReadUint32(&flags))
+            return false;
+        *value = v8::RegExp::New(pattern.As<v8::String>(), static_cast<v8::RegExp::Flags>(flags));
+        return true;
+    }
 
     bool readBlob(v8::Handle<v8::Value>* value)
     {

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list