[V8] element.dataset.nonExistingKey should return undefined.
authortkent@chromium.org <tkent@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 27 Sep 2011 23:05:01 +0000 (23:05 +0000)
committertkent@chromium.org <tkent@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 27 Sep 2011 23:05:01 +0000 (23:05 +0000)
https://bugs.webkit.org/show_bug.cgi?id=68877

Reviewed by Nate Chapin.

Source/WebCore:

* bindings/v8/custom/V8DOMStringMapCustom.cpp:
(WebCore::V8DOMStringMap::namedPropertyGetter): Uses v8StringOrUndefined() instead of v8String().

LayoutTests:

* fast/dom/dataset-expected.txt: Updated.
* fast/dom/script-tests/dataset.js: Add a test case.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96166 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/fast/dom/dataset-expected.txt
LayoutTests/fast/dom/script-tests/dataset.js
Source/WebCore/ChangeLog
Source/WebCore/bindings/v8/custom/V8DOMStringMapCustom.cpp

index e22ec26..8ff2e5c 100644 (file)
@@ -1,3 +1,13 @@
+2011-09-27  Kent Tamura  <tkent@chromium.org>
+
+        [V8] element.dataset.nonExistingKey should return undefined.
+        https://bugs.webkit.org/show_bug.cgi?id=68877
+
+        Reviewed by Nate Chapin.
+
+        * fast/dom/dataset-expected.txt: Updated.
+        * fast/dom/script-tests/dataset.js: Add a test case.
+
 2011-09-27  Mihai Parparita  <mihaip@chromium.org>
 
         Chromium rebaseline after r96155.
index dedf628..4cb4a8e 100644 (file)
@@ -15,6 +15,7 @@ PASS testGet('data-foo--', 'foo--') is true
 PASS testGet('data-Foo', 'foo') is true
 PASS testGet('data-', '') is true
 PASS testGet('data-à', 'à') is true
+PASS document.body.dataset.nonExisting is undefined.
 
 PASS matchesNothingInDataset('dataFoo') is true
 
index 31f20b6..57c83b9 100644 (file)
@@ -19,6 +19,7 @@ shouldBeTrue("testGet('data-foo--', 'foo--')");
 shouldBeTrue("testGet('data-Foo', 'foo')"); // HTML lowercases all attributes.
 shouldBeTrue("testGet('data-', '')");
 shouldBeTrue("testGet('data-\xE0', '\xE0')");
+shouldBeUndefined("document.body.dataset.nonExisting");
 debug("");
 
 function matchesNothingInDataset(attr)
index 7997415..4b4952e 100644 (file)
@@ -1,3 +1,13 @@
+2011-09-27  Kent Tamura  <tkent@chromium.org>
+
+        [V8] element.dataset.nonExistingKey should return undefined.
+        https://bugs.webkit.org/show_bug.cgi?id=68877
+
+        Reviewed by Nate Chapin.
+
+        * bindings/v8/custom/V8DOMStringMapCustom.cpp:
+        (WebCore::V8DOMStringMap::namedPropertyGetter): Uses v8StringOrUndefined() instead of v8String().
+
 2011-09-23  Mark Hahnenberg  <mhahnenberg@apple.com>
 
         Add static version of JSCell::visitChildren
index cebfae3..73f30c4 100644 (file)
@@ -49,7 +49,7 @@ v8::Handle<v8::Integer> V8DOMStringMap::namedPropertyQuery(v8::Local<v8::String>
 v8::Handle<v8::Value> V8DOMStringMap::namedPropertyGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
 {
     INC_STATS("DOM.DOMStringMap.NamedPropertyGetter");
-    return v8String(V8DOMStringMap::toNative(info.Holder())->item(toWebCoreString(name)));
+    return v8StringOrUndefined(V8DOMStringMap::toNative(info.Holder())->item(toWebCoreString(name)));
 }
 
 v8::Handle<v8::Array> V8DOMStringMap::namedPropertyEnumerator(const v8::AccessorInfo& info)