- Revision
- 128482
- Author
- [email protected]
- Date
- 2012-09-13 11:05:03 -0700 (Thu, 13 Sep 2012)
Log Message
IndexedDB: Properties of IDBKeyRange should default to undefined
https://bugs.webkit.org/show_bug.cgi?id=96401
Reviewed by Adam Barth.
Source/WebCore:
Per the IndexedDB spec, properties of IDBKeyRange should be |undefined| if
not set (i.e. range.upper if created with lowerBound(), and vice versa), rather
than null.
Test: storage/indexeddb/keyrange.html
* bindings/v8/custom/V8IDBKeyCustom.cpp:
(WebCore::toV8): Since IDBKeyRange is the only place where possibly-null
keys are returned to script, change the JS value from null to undefined.
And call v8Undefined(). It's faster.
* bindings/js/custom/JSIDBKeyCustom.cpp:
(WebCore::toJS): Ditto.
LayoutTests:
Update test expectations.
* storage/indexeddb/keyrange-expected.txt:
* storage/indexeddb/resources/keyrange.js:
(checkLowerBoundKeyRange):
(checkUpperBoundKeyRange):
Modified Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (128481 => 128482)
--- trunk/LayoutTests/ChangeLog 2012-09-13 18:03:02 UTC (rev 128481)
+++ trunk/LayoutTests/ChangeLog 2012-09-13 18:05:03 UTC (rev 128482)
@@ -1,3 +1,17 @@
+2012-09-13 Joshua Bell <[email protected]>
+
+ IndexedDB: Properties of IDBKeyRange should default to undefined
+ https://bugs.webkit.org/show_bug.cgi?id=96401
+
+ Reviewed by Adam Barth.
+
+ Update test expectations.
+
+ * storage/indexeddb/keyrange-expected.txt:
+ * storage/indexeddb/resources/keyrange.js:
+ (checkLowerBoundKeyRange):
+ (checkUpperBoundKeyRange):
+
2012-09-13 Lauro Neto <[email protected]>
[Qt][WK2] fast/forms/access-key-for-all-elements.html fails
Modified: trunk/LayoutTests/storage/indexeddb/keyrange-expected.txt (128481 => 128482)
--- trunk/LayoutTests/storage/indexeddb/keyrange-expected.txt 2012-09-13 18:03:02 UTC (rev 128481)
+++ trunk/LayoutTests/storage/indexeddb/keyrange-expected.txt 2012-09-13 18:05:03 UTC (rev 128482)
@@ -42,92 +42,92 @@
IDBKeyRange.lowerBound(10,true)
PASS keyRange.lower is 10
PASS keyRange.lowerOpen is true
-PASS keyRange.upper is null
+PASS keyRange.upper is undefined.
PASS keyRange.upperOpen is true
IDBKeyRange.lowerBound(11,false)
PASS keyRange.lower is 11
PASS keyRange.lowerOpen is false
-PASS keyRange.upper is null
+PASS keyRange.upper is undefined.
PASS keyRange.upperOpen is true
IDBKeyRange.lowerBound(12,undefined)
PASS keyRange.lower is 12
PASS keyRange.lowerOpen is false
-PASS keyRange.upper is null
+PASS keyRange.upper is undefined.
PASS keyRange.upperOpen is true
IDBKeyRange.lowerBound(10.1,true)
PASS keyRange.lower is 10.1
PASS keyRange.lowerOpen is true
-PASS keyRange.upper is null
+PASS keyRange.upper is undefined.
PASS keyRange.upperOpen is true
IDBKeyRange.lowerBound(11.2,false)
PASS keyRange.lower is 11.2
PASS keyRange.lowerOpen is false
-PASS keyRange.upper is null
+PASS keyRange.upper is undefined.
PASS keyRange.upperOpen is true
IDBKeyRange.lowerBound(12.3,undefined)
PASS keyRange.lower is 12.3
PASS keyRange.lowerOpen is false
-PASS keyRange.upper is null
+PASS keyRange.upper is undefined.
PASS keyRange.upperOpen is true
IDBKeyRange.lowerBound('aa',true)
PASS keyRange.lower is 'aa'
PASS keyRange.lowerOpen is true
-PASS keyRange.upper is null
+PASS keyRange.upper is undefined.
PASS keyRange.upperOpen is true
IDBKeyRange.lowerBound('ab',false)
PASS keyRange.lower is 'ab'
PASS keyRange.lowerOpen is false
-PASS keyRange.upper is null
+PASS keyRange.upper is undefined.
PASS keyRange.upperOpen is true
IDBKeyRange.lowerBound('ac',undefined)
PASS keyRange.lower is 'ac'
PASS keyRange.lowerOpen is false
-PASS keyRange.upper is null
+PASS keyRange.upper is undefined.
PASS keyRange.upperOpen is true
IDBKeyRange.upperBound(20,true)
PASS keyRange.upper is 20
PASS keyRange.upperOpen is true
-PASS keyRange.lower is null
+PASS keyRange.lower is undefined.
PASS keyRange.lowerOpen is true
IDBKeyRange.upperBound(21,false)
PASS keyRange.upper is 21
PASS keyRange.upperOpen is false
-PASS keyRange.lower is null
+PASS keyRange.lower is undefined.
PASS keyRange.lowerOpen is true
IDBKeyRange.upperBound(22,undefined)
PASS keyRange.upper is 22
PASS keyRange.upperOpen is false
-PASS keyRange.lower is null
+PASS keyRange.lower is undefined.
PASS keyRange.lowerOpen is true
IDBKeyRange.upperBound(20.2,true)
PASS keyRange.upper is 20.2
PASS keyRange.upperOpen is true
-PASS keyRange.lower is null
+PASS keyRange.lower is undefined.
PASS keyRange.lowerOpen is true
IDBKeyRange.upperBound(21.3,false)
PASS keyRange.upper is 21.3
PASS keyRange.upperOpen is false
-PASS keyRange.lower is null
+PASS keyRange.lower is undefined.
PASS keyRange.lowerOpen is true
IDBKeyRange.upperBound(22.4,undefined)
PASS keyRange.upper is 22.4
PASS keyRange.upperOpen is false
-PASS keyRange.lower is null
+PASS keyRange.lower is undefined.
PASS keyRange.lowerOpen is true
IDBKeyRange.upperBound('ba',true)
PASS keyRange.upper is 'ba'
PASS keyRange.upperOpen is true
-PASS keyRange.lower is null
+PASS keyRange.lower is undefined.
PASS keyRange.lowerOpen is true
IDBKeyRange.upperBound('bb',false)
PASS keyRange.upper is 'bb'
PASS keyRange.upperOpen is false
-PASS keyRange.lower is null
+PASS keyRange.lower is undefined.
PASS keyRange.lowerOpen is true
IDBKeyRange.upperBound('bc',undefined)
PASS keyRange.upper is 'bc'
PASS keyRange.upperOpen is false
-PASS keyRange.lower is null
+PASS keyRange.lower is undefined.
PASS keyRange.lowerOpen is true
IDBKeyRange.bound(30,40, undefined, undefined)
PASS keyRange.lower is 30
Modified: trunk/LayoutTests/storage/indexeddb/resources/keyrange.js (128481 => 128482)
--- trunk/LayoutTests/storage/indexeddb/resources/keyrange.js 2012-09-13 18:03:02 UTC (rev 128481)
+++ trunk/LayoutTests/storage/indexeddb/resources/keyrange.js 2012-09-13 18:05:03 UTC (rev 128482)
@@ -21,7 +21,7 @@
if (open === undefined)
open = false;
shouldBe("keyRange.lowerOpen", "" + open);
- shouldBeNull("keyRange.upper");
+ shouldBeUndefined("keyRange.upper");
shouldBeTrue("keyRange.upperOpen");
}
@@ -32,7 +32,7 @@
if (open === undefined)
open = false;
shouldBe("keyRange.upperOpen", "" + open);
- shouldBeNull("keyRange.lower");
+ shouldBeUndefined("keyRange.lower");
shouldBeTrue("keyRange.lowerOpen");
}
Modified: trunk/Source/WebCore/ChangeLog (128481 => 128482)
--- trunk/Source/WebCore/ChangeLog 2012-09-13 18:03:02 UTC (rev 128481)
+++ trunk/Source/WebCore/ChangeLog 2012-09-13 18:05:03 UTC (rev 128482)
@@ -1,3 +1,23 @@
+2012-09-13 Joshua Bell <[email protected]>
+
+ IndexedDB: Properties of IDBKeyRange should default to undefined
+ https://bugs.webkit.org/show_bug.cgi?id=96401
+
+ Reviewed by Adam Barth.
+
+ Per the IndexedDB spec, properties of IDBKeyRange should be |undefined| if
+ not set (i.e. range.upper if created with lowerBound(), and vice versa), rather
+ than null.
+
+ Test: storage/indexeddb/keyrange.html
+
+ * bindings/v8/custom/V8IDBKeyCustom.cpp:
+ (WebCore::toV8): Since IDBKeyRange is the only place where possibly-null
+ keys are returned to script, change the JS value from null to undefined.
+ And call v8Undefined(). It's faster.
+ * bindings/js/custom/JSIDBKeyCustom.cpp:
+ (WebCore::toJS): Ditto.
+
2012-09-13 Sami Kyostila <[email protected]>
Refactor paint overflow clipping
Modified: trunk/Source/WebCore/bindings/js/JSIDBKeyCustom.cpp (128481 => 128482)
--- trunk/Source/WebCore/bindings/js/JSIDBKeyCustom.cpp 2012-09-13 18:03:02 UTC (rev 128481)
+++ trunk/Source/WebCore/bindings/js/JSIDBKeyCustom.cpp 2012-09-13 18:05:03 UTC (rev 128482)
@@ -40,7 +40,7 @@
JSValue toJS(ExecState* exec, JSDOMGlobalObject* globalObject, IDBKey* key)
{
if (!key)
- return jsNull();
+ return jsUndefined();
switch (key->type()) {
case IDBKey::ArrayType:
Modified: trunk/Source/WebCore/bindings/v8/custom/V8IDBKeyCustom.cpp (128481 => 128482)
--- trunk/Source/WebCore/bindings/v8/custom/V8IDBKeyCustom.cpp 2012-09-13 18:03:02 UTC (rev 128481)
+++ trunk/Source/WebCore/bindings/v8/custom/V8IDBKeyCustom.cpp 2012-09-13 18:05:03 UTC (rev 128482)
@@ -41,13 +41,13 @@
v8::Handle<v8::Value> toV8(IDBKey* key, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
{
if (!key)
- return v8NullWithCheck(isolate);
+ return v8Undefined();
switch (key->type()) {
case IDBKey::InvalidType:
case IDBKey::MinType:
ASSERT_NOT_REACHED();
- return v8::Undefined();
+ return v8Undefined();
case IDBKey::NumberType:
return v8::Number::New(key->number());
case IDBKey::StringType:
@@ -64,7 +64,7 @@
}
ASSERT_NOT_REACHED();
- return v8::Undefined();
+ return v8Undefined();
}
} // namespace WebCore