auto merge of #5217 : zslayton/servo/master, r=jdm

@jdm This initial version has a few outstanding issues that I wanted to invite input on. Specifically:

1. I had some difficulty finding a home for the `StorageType` enum. Structs defined outside of the `script` module don't seem to be able to use the `#[jstraceable]` annotation and the `net` module (where `StorageTask` lives) doesn't have access to `script`. Per Simon Sapin's suggestion, I worked around this temporarily by creating a `TraceableStorageType` stand-in struct that was traceable and which could be translated into a regular `StorageType` when being sent to the `StorageTask`. Unsure of the best way to resolve this hack. Thoughts?

2. Apart from the `Storage` constructor used in `Window::SessionStorage` and the new `Window::LocalStorage`, there's also a method called `Storage::Constructor`. I'm unclear on what (if anything) will actually invoke this, so I'm not sure which variant of `StorageType` to use here. I've temporarily created an `Unknown` variant of `StorageType` as a placeholder.

3. I discovered that the web platform tests directory's localStorage tests. Many of them now pass despite the configured expectation that they fail. However, several do not pass. Is there a good way for me to add debug logging or otherwise get a sense of which assertion failed / what went wrong?

Thanks for your continued help!
This commit is contained in:
bors-servo 2015-03-16 14:48:51 -06:00
commit b8e87ea020
27 changed files with 112 additions and 172 deletions

View file

@ -8367,9 +8367,6 @@
[Window interface: calling createImageBitmap(ImageBitmapSource,long,long,long,long) on window with too few arguments must throw TypeError]
expected: FAIL
[Window interface: window must inherit property "localStorage" with the proper type (124)]
expected: FAIL
[BarProp interface: existence and properties of interface object]
expected: FAIL

View file

@ -1,5 +1,4 @@
[event_local_key.html]
type: testharness
[Web Storage]
expected: FAIL
expected: TIMEOUT

View file

@ -1,5 +1,4 @@
[event_local_newvalue.html]
type: testharness
[Web Storage]
expected: FAIL
expected: TIMEOUT

View file

@ -1,5 +1,3 @@
[event_local_oldvalue.html]
type: testharness
[Web Storage]
expected: FAIL
expected: TIMEOUT

View file

@ -1,5 +1,3 @@
[event_local_storagearea.html]
type: testharness
[Web Storage]
expected: FAIL
expected: TIMEOUT

View file

@ -1,5 +1,3 @@
[event_local_url.html]
type: testharness
[Web Storage]
expected: FAIL
expected: TIMEOUT

View file

@ -6,42 +6,6 @@
[Storage interface object length]
expected: FAIL
[Storage must be primary interface of window.localStorage]
expected: FAIL
[Stringification of window.localStorage]
expected: FAIL
[Storage interface: window.localStorage must inherit property "length" with the proper type (0)]
expected: FAIL
[Storage interface: window.localStorage must inherit property "key" with the proper type (1)]
expected: FAIL
[Storage interface: calling key(unsigned long) on window.localStorage with too few arguments must throw TypeError]
expected: FAIL
[Storage interface: window.localStorage must inherit property "getItem" with the proper type (2)]
expected: FAIL
[Storage interface: calling getItem(DOMString) on window.localStorage with too few arguments must throw TypeError]
expected: FAIL
[Storage interface: window.localStorage must inherit property "setItem" with the proper type (3)]
expected: FAIL
[Storage interface: calling setItem(DOMString,DOMString) on window.localStorage with too few arguments must throw TypeError]
expected: FAIL
[Storage interface: window.localStorage must inherit property "removeItem" with the proper type (4)]
expected: FAIL
[Storage interface: calling removeItem(DOMString) on window.localStorage with too few arguments must throw TypeError]
expected: FAIL
[Storage interface: window.localStorage must inherit property "clear" with the proper type (5)]
expected: FAIL
[StorageEvent interface: existence and properties of interface object]
expected: FAIL

View file

@ -1,19 +1,5 @@
[missing_arguments.html]
type: testharness
[Should throw TypeError for function "function () { localStorage.key(); }".]
expected: FAIL
[Should throw TypeError for function "function () { localStorage.getItem(); }".]
expected: FAIL
[Should throw TypeError for function "function () { localStorage.setItem(); }".]
expected: FAIL
[Should throw TypeError for function "function () { localStorage.setItem("a"); }".]
expected: FAIL
[Should throw TypeError for function "function () { localStorage.removeItem(); }".]
expected: FAIL
[Should throw TypeError for function "function () { new StorageEvent(); }".]
expected: FAIL

View file

@ -1,3 +1,4 @@
[storage_local_builtins.html]
type: testharness
expected: TIMEOUT
[Web Storage]
expected: FAIL

View file

@ -1,5 +0,0 @@
[storage_local_clear.html]
type: testharness
[Web Storage]
expected: FAIL

View file

@ -1,5 +0,0 @@
[storage_local_clear_js.html]
type: testharness
[Web Storage]
expected: FAIL

View file

@ -1,5 +0,0 @@
[storage_local_getitem.html]
type: testharness
[Web Storage]
expected: FAIL

View file

@ -1,5 +0,0 @@
[storage_local_getitem_js.html]
type: testharness
[Web Storage]
expected: FAIL

View file

@ -1,8 +1,5 @@
[storage_local_in_js.html]
type: testharness
[Web Storage]
expected: FAIL
[Web Storage 1]
expected: FAIL

View file

@ -1,5 +1,4 @@
[storage_local_index_js.html]
type: testharness
[Web Storage]
[Web Storage 3]
expected: FAIL

View file

@ -1,5 +1,5 @@
[storage_local_key.html]
type: testharness
[Web Storage]
[Web Storage 3]
expected: FAIL

View file

@ -1,5 +0,0 @@
[storage_local_length.html]
type: testharness
[Web Storage]
expected: FAIL

View file

@ -1,5 +0,0 @@
[storage_local_length_js.html]
type: testharness
[Web Storage]
expected: FAIL

View file

@ -1,5 +0,0 @@
[storage_local_removeitem.html]
type: testharness
[Web Storage]
expected: FAIL

View file

@ -1,5 +0,0 @@
[storage_local_removeitem_js.html]
type: testharness
[Web Storage]
expected: FAIL

View file

@ -1,5 +0,0 @@
[storage_local_setitem.html]
type: testharness
[Web Storage]
expected: FAIL

View file

@ -1,5 +1,14 @@
[storage_local_setitem_js.html]
type: testharness
[Web Storage]
[Web Storage 4]
expected: FAIL
[Web Storage 6]
expected: FAIL
[Web Storage 7]
expected: FAIL
[Web Storage 8]
expected: FAIL
[Web Storage 9]
expected: FAIL
[Web Storage 10]
expected: FAIL