diff options
author | Robin Burchell <[email protected]> | 2017-02-06 10:31:13 +0100 |
---|---|---|
committer | Robin Burchell <[email protected]> | 2017-02-07 10:14:37 +0000 |
commit | 411dd9531adbf0500005cf76eff8822c720c28b8 (patch) | |
tree | fa37ea766cd48d8935dbbeec7d7882cad2226bb9 /tests | |
parent | d6280f7729bfad1f28be56e6a8619d4d57387002 (diff) |
ObjectPrototype: Improve ES6 compliance
* getPrototypeOf: Per 19.1.2.9, we should ToObject(O), and ReturnIfAbrupt
* getOwnPropertyDescriptor: Per 19.1.2.6, we should ToObject(O), and ReturnIfAbrupt
* getOwnPropertyNames: Per 19.1.2.8.1, we should ToObject(O) and ReturnIfAbrupt
* seal: Per 1.9.2.17, if Type(O) is not Object, return O
* freeze: Per 1.9.2.5, if Type(O) is not Object, return O
* preventExtensions: Per 19.1.2.15, if Type(O) is not Object, return O
* isSealed: Per 19.1.2.13, if Type(O) is not Object, return true
* isFrozen: Per 19.1.2.12, if Type(O) is not Object, return true
* isExtensible: Per 19.1.2.11, if Type(O) is not Object, return false
* keys: Per 19.1.2.14, we should ToObject(O), and ReturnIfAbrupt
This improves the ES6 passrate for test/built-ins/Object/ quite a bit, before:
=== Summary ===
- Ran 6144 tests
- Passed 5719 tests (93.1%)
- Failed 425 tests (6.9%)
After:
=== Summary ===
- Ran 6144 tests
- Passed 5769 tests (93.9%)
- Failed 375 tests (6.1%)
... and also fixes numerous tests in other areas. Most of the missing
failures seem to be down to missing Object.assign & Symbol. It does regress on
some ES5 tests that specifically check for the ES5 spec behavior.
Change-Id: I039a223060c79c5bf4f5b041ad1ec4dc1afd5932
Reviewed-by: Simon Hausmann <[email protected]>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/manual/v4/TestExpectations | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/manual/v4/TestExpectations b/tests/manual/v4/TestExpectations index 3d0ffd7116..27498de473 100644 --- a/tests/manual/v4/TestExpectations +++ b/tests/manual/v4/TestExpectations @@ -134,6 +134,45 @@ S15.10.6.4_A9 failing 15.2.3.9-1-2 failing 15.2.3.9-1-3 failing 15.2.3.9-1-4 failing +# es6: Object.preventExtensions(O) on a non-object, no longer TypeError +15.2.3.10-1 failing +15.2.3.10-1-3 failing +15.2.3.10-1-4 failing +# es6: Object.isSealed(O) on a non-object, no longer TypeError +15.2.3.11-1 +# es6: Object.isFrozen(O) on a non-object, no longer TypeError +15.2.3.12-1 +15.2.3.12-1-3 +15.2.3.12-1-4 +# es6: Object.isExtensible(O) on a non-object, no longer TypeError +15.2.3.13-1 +15.2.3.13-1-3 +15.2.3.13-1-4 +# es6: Object.keys(O) on a non-object, no longer TypeError +15.2.3.14-1-1 +15.2.3.14-1-2 +15.2.3.14-1-3 +15.2.3.14-1 +15.2.3.14-2 +15.2.3.14-3 +# es6: Object.getOwnPropertyDescriptor(O) on a non-object, no longer TypeError +15.2.3.3-1 +15.2.3.3-1-3 +15.2.3.3-1-4 +# es6: Object.getPrototypeOf(O) on a non-object, no longer TypeError +15.2.3.2-1 +15.2.3.2-1-3 +15.2.3.2-1-4 +# es6: Object.getOwnPropertyNames(O) on a non-object, no longer TypeError +15.2.3.4-1 +15.2.3.4-1-4 +15.2.3.4-1-5 +# es6: Object.seal(O) on a non-object, no longer TypeError +15.2.3.8-1 +15.2.3.8-1-1 +15.2.3.8-1-2 +15.2.3.8-1-3 +15.2.3.8-1-4 # es6: Date.prototype is no longer a DateObject 15.9.5.40_1 failing |