[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