* Add EnumerateObjectProperties tests for builtins which use it
* Add tests for EnumerateObjectProperties for for-in
* Add feature flag for for-in-order
A conforming implementation of ECMAScript may provide additional types, values, objects, properties, and functions beyond those described in this specification. In particular, a conforming implementation of ECMAScript may provide properties not described in this specification, and values for those properties, for objects that are described in this specification.
Ref #2433
* Defer making [[ProxyTarget]] non-extensible
* Fix typo in method name
* Add last Object.keys with Proxy invariant test
* Add Object.getOwnPropertySymbols with Proxy invariants tests
* Add Object.getOwnPropertyNames with Proxy invariants tests
* Replace "es6id" with "esid" in Object.getOwnPropertySymbols tests
* Make Proxy [[HasProperty]] in prototype test more robust
* Add integer index Proxy [[HasProperty]] in prototype test
* Add integer index Proxy [[Set]] in prototype test
* Remove duplicate test
The behavior under test is verified by another file in Test262:
test/language/expressions/compound-assignment/S11.13.2_A2.1_T3.3.js
That version is preferable because it does not depend on `eval` and
because it supports both strict and non-strict mode.
* Remove overly-permissive test
By asserting only the presence of an "own" property, this test can be
satisfied from both strict mode code and non-strict mode code.
The following test verifies the presence of the "own" property and the
associated descriptor's values in strict mode:
test/language/arguments-object/10.6-13-c-3-s.js
That subsumes the semantics verified by this test, making it
superfluous. Remove the test.
* Remove overly-permissive test
By asserting only the absence of a syntax error, this test can be
satisfied from both strict mode code and non-strict mode code.
The following test verifies the runtime behavior of accessing the
property in strict mode code:
test/language/arguments-object/10.6-13-c-1-s.js
That subsumes the semantics verified by this test, making it
superfluous. Remove the test.
* Remove duplicate test
The behavior under test is verified by another file in Test262:
test/built-ins/Math/prop-desc.js
That version is preferable because it follows the test suite's
convention for testing property descriptors and because it supports both
strict and non-strict mode.
* Remove duplicate test
The behavior under test is verified by two separate files:
test/language/statements/function/line-terminator-non-strict.js
test/language/statements/function/line-terminator-strict.js
These files differ only in their usage of the `noStrict`/`onlyStrict`
metadata. Because tests are intended to be interpreted in both modes by
default, these can be expressed with a single file that does not limit
the permissible modes.
Prior to this patch, the modified test would pass if no exception was
produced. Use the `assert.throws` utility function to concisely express
the expectation more completely.
Prior to this commit, the descriptors of the constructor properties of
the global object were verified inconsistently, many independent
assertions occured in the same file, and that file test was poorly
located.
Restructure the relevant tests to improve coverage, follow convention,
and promote discoverability.
Prior to this commit, the descriptors of the function properties of the
global object were verified inconsistently, many independent assertions
occured in the same file, and that file test was poorly located.
Restructure the relevant tests to improve coverage, follow convention,
and promote discoverability.
Prior to this commit, the enumerability of the value properties of the
global object were only verified in strict mode, the assertions occured
in the same file, and that file test was poorly located.
Restructure the relevant tests to improve coverage, follow convention,
and promote discoverability.
The modified tests are equally valid in strict mode and outside of
strict mode. Remove the flag which limits their use to only one of these
two contexts. Rename tests using the legacy ES5-based naming scheme to
remove the pattern which designates strict mode.
The `$DETACHBUFFER` function is the preferred mechanism for detaching
array buffers.
Likewise, `verifyNotWritable` is the preferred mechanism for asserting
lack of writability.
The values defined by the referenced files are not used by these tests.
This makes their inclusion superfluous, which needlessly increases the
time to execute the tests and may confuse some readers.
* Rename "Object/proto-from-ctor.js" test
* Add missing "Symbol" features
* Add Intl.Collator test
* Add Intl.DateTimeFormat test
* Add Intl.NumberFormat test
* Add Intl.PluralRules test
* Rename & improve "length" test
* Use verifyProperty in "name" test
* Rename & improve property descriptor test
* Remove duplicated test
https://github.com/tc39/test262/blob/master/test/built-ins/Object/prototype/toString/proxy-array.js
* Rename proxy value test
* Rename & improve String object unwrapping test
* Rename & improve Number object unwrapping test
* Rename & improve Boolean object unwrapping test
* Rename & merge replacer returns undefined tests
* Rename & merge replacer function tests
* Rename replacer array revoked proxy test
* Add cross-realm replacer array revoked proxy test
* Add array proxy replacer test
* Add replacer array keys order test
* Add empty replacer array test
* Add non-finite numbers serialization test
* Add replacer array abrupt completion test
* Add replacer array with duplicates test
* Add replacer array ignores undefined test
* Add replacer array unwraps strings test
* Add replacer array unwraps numbers test
* Rename & merge circular object tests
* Add circular array test
* Rename & merge top-level primitives tests
* Rename string escape tests
* Rename BigInt tests
* Rename & improve function value test
* Add replacer function abrupt test
* Rename & merge wrong space type tests
* Rename float number space test
* Rename & improve Number object space test
* Rename & improve String object space test
* Rename basic numeric space test
* Rename string space slice test
* Add replacer array numbers test
* Add toJSON abrupt completions test
* Add not callable toJSON test
* Add toJSON call arguments test
* Add replacer array wrong types test
* Rename & improve string space test
* Rename & improve replacer wrong type test
* Add built-in object requirements test
* Add basic toJSON result test
* Add abrupt array value test
* Add abrupt object value test
* Rename & merge space number clamp tests
* Add replacer function wrapper test
* Add symbol value test
* Add negative zero value test
* Add replacer function & toJSON test
* Add circular object from toJSON test
* Add circular array from toJSON test
* Add circular object from replacer test
* Add circular array from replacer test
* Add replacer function arguments test
* Split & improve proxy value test
* Split & improve revoked proxy value test
* Move proxies with non-string toStringTag to separate file
* Add coverage for async proxy functions
* Add coverage for built-ins with non-string toStringTag
* Move async proxy function tests to new file