mirror of
https://github.com/servo/servo.git
synced 2025-09-30 08:39:16 +01:00
script: Re-implement evaluate_key_path_on_value in IndexedDB (#38847)
The current implementation of evaluate_key_path_on_value was translated from gecko, and it is incomplete. The unimplemented part occurs many crashes in WPT tests. This PR re-implements it according to the spec. It should eliminate many crashed WPT tests, and increase the code readability. Testing: Update WPT test expectation Fixes: #38817 partially, and #25325 --------- Signed-off-by: Kingsley Yung <kingsley@kkoyung.dev>
This commit is contained in:
parent
ebc1282c7a
commit
b29eab0ffe
19 changed files with 694 additions and 178 deletions
127
tests/wpt/meta/IndexedDB/keygenerator.any.js.ini
vendored
127
tests/wpt/meta/IndexedDB/keygenerator.any.js.ini
vendored
|
@ -1,5 +1,67 @@
|
|||
[keygenerator.any.html]
|
||||
expected: CRASH
|
||||
[Keygenerator - starts at one, and increments by one]
|
||||
expected: FAIL
|
||||
|
||||
[Keygenerator - increments by one from last set key]
|
||||
expected: FAIL
|
||||
|
||||
[Keygenerator - don't increment when new key is not bigger than current]
|
||||
expected: FAIL
|
||||
|
||||
[Keygenerator ConstraintError when using same id as already generated]
|
||||
expected: FAIL
|
||||
|
||||
[Key generator vs. explicit key 53 bits]
|
||||
expected: FAIL
|
||||
|
||||
[Key generator vs. explicit key greater than 53 bits, less than 64 bits]
|
||||
expected: FAIL
|
||||
|
||||
[Key generator vs. explicit key greater than 53 bits, less than 64 bits (negative)]
|
||||
expected: FAIL
|
||||
|
||||
[Key generator vs. explicit key 63 bits]
|
||||
expected: FAIL
|
||||
|
||||
[Key generator vs. explicit key 63 bits (negative)]
|
||||
expected: FAIL
|
||||
|
||||
[Key generator vs. explicit key 64 bits]
|
||||
expected: FAIL
|
||||
|
||||
[Key generator vs. explicit key 64 bits (negative)]
|
||||
expected: FAIL
|
||||
|
||||
[Key generator vs. explicit key greater than 64 bits, but still finite]
|
||||
expected: FAIL
|
||||
|
||||
[Key generator vs. explicit key greater than 64 bits, but still finite (negative)]
|
||||
expected: FAIL
|
||||
|
||||
[Key generator vs. explicit key equal to Infinity]
|
||||
expected: FAIL
|
||||
|
||||
[Key generator vs. explicit key equal to -Infinity]
|
||||
expected: FAIL
|
||||
|
||||
[Key is injected into value - single segment path]
|
||||
expected: FAIL
|
||||
|
||||
[Key is injected into value - multi-segment path]
|
||||
expected: FAIL
|
||||
|
||||
[Key is injected into value - multi-segment path, partially populated]
|
||||
expected: FAIL
|
||||
|
||||
[Keygenerator overflow]
|
||||
expected: FAIL
|
||||
|
||||
[put() throws if key cannot be injected - single segment path]
|
||||
expected: FAIL
|
||||
|
||||
[put() throws if key cannot be injected - multi-segment path]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[keygenerator.any.serviceworker.html]
|
||||
expected: ERROR
|
||||
|
@ -8,4 +70,65 @@
|
|||
expected: ERROR
|
||||
|
||||
[keygenerator.any.worker.html]
|
||||
expected: CRASH
|
||||
[Keygenerator - starts at one, and increments by one]
|
||||
expected: FAIL
|
||||
|
||||
[Keygenerator - increments by one from last set key]
|
||||
expected: FAIL
|
||||
|
||||
[Keygenerator - don't increment when new key is not bigger than current]
|
||||
expected: FAIL
|
||||
|
||||
[Keygenerator ConstraintError when using same id as already generated]
|
||||
expected: FAIL
|
||||
|
||||
[Key generator vs. explicit key 53 bits]
|
||||
expected: FAIL
|
||||
|
||||
[Key generator vs. explicit key greater than 53 bits, less than 64 bits]
|
||||
expected: FAIL
|
||||
|
||||
[Key generator vs. explicit key greater than 53 bits, less than 64 bits (negative)]
|
||||
expected: FAIL
|
||||
|
||||
[Key generator vs. explicit key 63 bits]
|
||||
expected: FAIL
|
||||
|
||||
[Key generator vs. explicit key 63 bits (negative)]
|
||||
expected: FAIL
|
||||
|
||||
[Key generator vs. explicit key 64 bits]
|
||||
expected: FAIL
|
||||
|
||||
[Key generator vs. explicit key 64 bits (negative)]
|
||||
expected: FAIL
|
||||
|
||||
[Key generator vs. explicit key greater than 64 bits, but still finite]
|
||||
expected: FAIL
|
||||
|
||||
[Key generator vs. explicit key greater than 64 bits, but still finite (negative)]
|
||||
expected: FAIL
|
||||
|
||||
[Key generator vs. explicit key equal to Infinity]
|
||||
expected: FAIL
|
||||
|
||||
[Key generator vs. explicit key equal to -Infinity]
|
||||
expected: FAIL
|
||||
|
||||
[Key is injected into value - single segment path]
|
||||
expected: FAIL
|
||||
|
||||
[Key is injected into value - multi-segment path]
|
||||
expected: FAIL
|
||||
|
||||
[Key is injected into value - multi-segment path, partially populated]
|
||||
expected: FAIL
|
||||
|
||||
[Keygenerator overflow]
|
||||
expected: FAIL
|
||||
|
||||
[put() throws if key cannot be injected - single segment path]
|
||||
expected: FAIL
|
||||
|
||||
[put() throws if key cannot be injected - multi-segment path]
|
||||
expected: FAIL
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue