* Add tests for abrupt completions during JSON.parse
Due to the use of the IsArray abstract operation, observing many of the
targeted semantics requires the use of a Proxy exotic object. Mark the
tests that require this unrelated ES2015 feature using a dedicated
"features" flag.
* Express JSON syntax tests with multiple assertions
When written with a single assertion, this test verifies only that "one
or more" of the Unicode points produces a SyntaxError. Re-factor the
test so that parsing behavior for each code point can be tested in
isolation.
* Re-introduce assertion
ECMAScript edition 2016 relies on the Unicode standard at version 8.0.0.
As part of a larger effort to update Test262 accordingly, the assertion
for the SyntaxError resulting from the use of the Mongolian Vowel
Separator (U+180E) was removed. However, ECMA-401 (The JSON Data
Interchange Format) continues to describe "insignificant whitespace" as
follows:
> Insignificant whitespace is allowed before or after any token.
> The whitespace characters are: character tabulation (U+0009),
> line feed (U+000A), carriage return (U+000D), and space
> (U+0020)
And because ECMA262 specifies step 2 of the `JSON.parse` algorithm as
follows:
> 2. Parse JText interpreted as UTF-16 encoded Unicode points (6.1.4) as
> a JSON text as specified in ECMA-404. Throw a SyntaxError exception
> if JText is not a valid JSON text as defined in that specification.
...the use of U+180E between JSON tokens should continue to produce a
SyntaxError, regardless of ECMA262's updated Unicode standard.
* fixup! Express JSON syntax tests with multiple assertions
This function is equivalent to `$ERROR` (which is automatically included
in test environments). Remove the harness file that defines the
function, remove references to the file from test `includes` lists, and
update scripts to instead invoke the `$ERROR` function.