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:
Kingsley Yung 2025-09-05 16:00:07 +08:00 committed by GitHub
parent ebc1282c7a
commit b29eab0ffe
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
19 changed files with 694 additions and 178 deletions

View file

@ -1,11 +1,117 @@
[key_valid.any.worker.html]
expected: CRASH
[Valid key - new Date()]
expected: FAIL
[Valid key - new Date(0)]
expected: FAIL
[Valid key - [\]]
expected: FAIL
[Valid key - new Array()]
expected: FAIL
[Valid key - ["undefined"\]]
expected: FAIL
[Valid key - Infinity]
expected: FAIL
[Valid key - -Infinity]
expected: FAIL
[Valid key - 0]
expected: FAIL
[Valid key - 1.5]
expected: FAIL
[Valid key - 3e38]
expected: FAIL
[Valid key - 3e-38]
expected: FAIL
[Valid key - "foo"]
expected: FAIL
[Valid key - "\\n"]
expected: FAIL
[Valid key - ""]
expected: FAIL
[Valid key - "\\""]
expected: FAIL
[Valid key - "\\u1234"]
expected: FAIL
[Valid key - "\\u0000"]
expected: FAIL
[Valid key - "NaN"]
expected: FAIL
[key_valid.any.serviceworker.html]
expected: ERROR
[key_valid.any.html]
expected: CRASH
[Valid key - new Date()]
expected: FAIL
[Valid key - new Date(0)]
expected: FAIL
[Valid key - [\]]
expected: FAIL
[Valid key - new Array()]
expected: FAIL
[Valid key - ["undefined"\]]
expected: FAIL
[Valid key - Infinity]
expected: FAIL
[Valid key - -Infinity]
expected: FAIL
[Valid key - 0]
expected: FAIL
[Valid key - 1.5]
expected: FAIL
[Valid key - 3e38]
expected: FAIL
[Valid key - 3e-38]
expected: FAIL
[Valid key - "foo"]
expected: FAIL
[Valid key - "\\n"]
expected: FAIL
[Valid key - ""]
expected: FAIL
[Valid key - "\\""]
expected: FAIL
[Valid key - "\\u1234"]
expected: FAIL
[Valid key - "\\u0000"]
expected: FAIL
[Valid key - "NaN"]
expected: FAIL
[key_valid.any.sharedworker.html]
expected: ERROR