Diff
Modified: trunk/JSTests/ChangeLog (259031 => 259032)
--- trunk/JSTests/ChangeLog 2020-03-26 04:28:40 UTC (rev 259031)
+++ trunk/JSTests/ChangeLog 2020-03-26 04:29:26 UTC (rev 259032)
@@ -1,3 +1,20 @@
+2020-03-25 Ross Kirsling <ross.kirsl...@sony.com>
+
+ Unreviewed, reimport test262 once more to make bot green.
+
+ * test262/expectations.yaml:
+ * test262/harness/assert.js:
+ * test262/harness/propertyHelper.js:
+ * test262/latest-changes-summary.txt:
+ * test262/test/built-ins/JSON/stringify/replacer-function-stack-overflow.js: Removed.
+ * test262/test/built-ins/JSON/stringify/value-tojson-stack-overflow.js: Removed.
+ * test262/test/built-ins/NativeErrors/AggregateError/newtarget-is-undefined.js: Added.
+ * test262/test/built-ins/RegExp/prototype/Symbol.replace/poisoned-stdlib.js:
+ * test262/test/harness/assert-samevalue-zeros.js:
+ * test262/test/language/expressions/class/elements/private-field-after-optional-chain.js: Added.
+ * test262/test/language/statements/class/elements/private-field-after-optional-chain.js: Added.
+ * test262/test262-Revision.txt:
+
2020-03-25 Alexey Shvayka <shvaikal...@gmail.com>
RegExp.prototype[@@replace] relies on globals and doesn't perform ToLength
Modified: trunk/JSTests/test262/expectations.yaml (259031 => 259032)
--- trunk/JSTests/test262/expectations.yaml 2020-03-26 04:28:40 UTC (rev 259031)
+++ trunk/JSTests/test262/expectations.yaml 2020-03-26 04:29:26 UTC (rev 259032)
@@ -1086,12 +1086,6 @@
test/built-ins/JSON/parse/reviver-object-non-configurable-prop-create.js:
default: 'Test262Error: Expected SameValue(«22», «2») to be true'
strict mode: 'Test262Error: Expected SameValue(«22», «2») to be true'
-test/built-ins/JSON/stringify/replacer-function-stack-overflow.js:
- default: 'Exception: _javascript_ execution terminated.'
- strict mode: 'Exception: _javascript_ execution terminated.'
-test/built-ins/JSON/stringify/value-tojson-stack-overflow.js:
- default: 'Exception: _javascript_ execution terminated.'
- strict mode: 'Exception: _javascript_ execution terminated.'
test/built-ins/Map/proto-from-ctor-realm.js:
default: 'Test262Error: Expected SameValue(«[object Map]», «[object Map]») to be true'
strict mode: 'Test262Error: Expected SameValue(«[object Map]», «[object Map]») to be true'
@@ -1655,11 +1649,11 @@
default: 'Test262Error: Expected SameValue(«�», «null») to be true'
strict mode: 'Test262Error: Expected SameValue(«�», «null») to be true'
test/built-ins/RegExp/prototype/Symbol.search/set-lastindex-init-samevalue.js:
- default: 'Test262Error: Expected SameValue(«0», «0») to be true'
- strict mode: 'Test262Error: Expected SameValue(«0», «0») to be true'
+ default: 'Test262Error: Expected SameValue(«-0», «0») to be true'
+ strict mode: 'Test262Error: Expected SameValue(«-0», «0») to be true'
test/built-ins/RegExp/prototype/Symbol.search/set-lastindex-restore-samevalue.js:
- default: 'Test262Error: Expected SameValue(«0», «0») to be true'
- strict mode: 'Test262Error: Expected SameValue(«0», «0») to be true'
+ default: 'Test262Error: Expected SameValue(«-0», «0») to be true'
+ strict mode: 'Test262Error: Expected SameValue(«-0», «0») to be true'
test/built-ins/RegExp/prototype/Symbol.search/u-lastindex-advance.js:
default: 'Test262Error: Expected SameValue(«1», «-1») to be true'
strict mode: 'Test262Error: Expected SameValue(«1», «-1») to be true'
@@ -3231,12 +3225,6 @@
test/language/global-code/script-decl-var-err.js:
default: 'Test262Error: Expected a TypeError to be thrown but no exception was thrown at all'
strict mode: 'Test262Error: Expected a TypeError to be thrown but no exception was thrown at all'
-test/language/identifiers/part-unicode-12.0.0-escaped.js:
- default: "SyntaxError: Invalid unicode escape in identifier: '_\\u0EBA'"
- strict mode: "SyntaxError: Invalid unicode escape in identifier: '_\\u0EBA'"
-test/language/identifiers/part-unicode-12.0.0.js:
- default: "SyntaxError: Invalid character '\\u0eba'"
- strict mode: "SyntaxError: Invalid character '\\u0eba'"
test/language/identifiers/part-unicode-13.0.0-escaped.js:
default: "SyntaxError: Invalid unicode escape in identifier: '_\\u0B55'"
strict mode: "SyntaxError: Invalid unicode escape in identifier: '_\\u0B55'"
@@ -3243,12 +3231,6 @@
test/language/identifiers/part-unicode-13.0.0.js:
default: "SyntaxError: Invalid character '\\u0b55'"
strict mode: "SyntaxError: Invalid character '\\u0b55'"
-test/language/identifiers/start-unicode-12.0.0-escaped.js:
- default: "SyntaxError: Invalid unicode escape in identifier: '\\u0E86'"
- strict mode: "SyntaxError: Invalid unicode escape in identifier: '\\u0E86'"
-test/language/identifiers/start-unicode-12.0.0.js:
- default: "SyntaxError: Invalid character '\\u0e86'"
- strict mode: "SyntaxError: Invalid character '\\u0e86'"
test/language/identifiers/start-unicode-13.0.0-escaped.js:
default: "SyntaxError: Invalid unicode escape in identifier: '\\u08BE'"
strict mode: "SyntaxError: Invalid unicode escape in identifier: '\\u08BE'"
Modified: trunk/JSTests/test262/harness/assert.js (259031 => 259032)
--- trunk/JSTests/test262/harness/assert.js 2020-03-26 04:28:40 UTC (rev 259031)
+++ trunk/JSTests/test262/harness/assert.js 2020-03-26 04:29:26 UTC (rev 259032)
@@ -96,6 +96,10 @@
assert._toString = function (value) {
try {
+ if (value === 0 && 1 / value === -Infinity) {
+ return '-0';
+ }
+
return String(value);
} catch (err) {
if (err.name === 'TypeError') {
Modified: trunk/JSTests/test262/harness/propertyHelper.js (259031 => 259032)
--- trunk/JSTests/test262/harness/propertyHelper.js 2020-03-26 04:28:40 UTC (rev 259031)
+++ trunk/JSTests/test262/harness/propertyHelper.js 2020-03-26 04:29:26 UTC (rev 259032)
@@ -139,8 +139,9 @@
return a === b;
}
+var __isArray = Array.isArray;
function isWritable(obj, name, verifyProp, value) {
- var unlikelyValue = Array.isArray(obj) && name === "length" ?
+ var unlikelyValue = __isArray(obj) && name === "length" ?
Math.pow(2, 32) - 1 :
"unlikelyValue";
var newValue = value || unlikelyValue;
Modified: trunk/JSTests/test262/latest-changes-summary.txt (259031 => 259032)
--- trunk/JSTests/test262/latest-changes-summary.txt 2020-03-26 04:28:40 UTC (rev 259031)
+++ trunk/JSTests/test262/latest-changes-summary.txt 2020-03-26 04:29:26 UTC (rev 259032)
@@ -1,5 +1,9 @@
+M harness/assert.js
M harness/propertyHelper.js
+D test/built-ins/JSON/stringify/replacer-function-stack-overflow.js
+D test/built-ins/JSON/stringify/value-tojson-stack-overflow.js
A test/built-ins/NativeErrors/AggregateError/newtarget-is-undefined.js
-M test/built-ins/Proxy/set/trap-is-undefined.js
+M test/built-ins/RegExp/prototype/Symbol.replace/poisoned-stdlib.js
+M test/harness/assert-samevalue-zeros.js
A test/language/expressions/class/elements/private-field-after-optional-chain.js
A test/language/statements/class/elements/private-field-after-optional-chain.js
\ No newline at end of file
Deleted: trunk/JSTests/test262/test/built-ins/JSON/stringify/replacer-function-stack-overflow.js (259031 => 259032)
--- trunk/JSTests/test262/test/built-ins/JSON/stringify/replacer-function-stack-overflow.js 2020-03-26 04:28:40 UTC (rev 259031)
+++ trunk/JSTests/test262/test/built-ins/JSON/stringify/replacer-function-stack-overflow.js 2020-03-26 04:29:26 UTC (rev 259032)
@@ -1,35 +0,0 @@
-// Copyright (C) 2020 Alexey Shvayka. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-/*---
-esid: sec-json.stringify
-description: >
- Stack overflow due to infinite recursion in replacer throws an expected error.
----*/
-
-var getStackOverflowError = function() {
- try {
- return getStackOverflowError();
- } catch (err) {
- return err;
- }
-};
-
-var StackOverflowError = getStackOverflowError().constructor;
-
-var obj = {};
-var objReplacer = function() {
- return {key: obj};
-};
-
-assert.throws(StackOverflowError, function() {
- JSON.stringify(null, objReplacer);
-});
-
-var arr = [];
-var arrReplacer = function() {
- return [arr];
-};
-
-assert.throws(StackOverflowError, function() {
- JSON.stringify(null, arrReplacer);
-});
Deleted: trunk/JSTests/test262/test/built-ins/JSON/stringify/value-tojson-stack-overflow.js (259031 => 259032)
--- trunk/JSTests/test262/test/built-ins/JSON/stringify/value-tojson-stack-overflow.js 2020-03-26 04:28:40 UTC (rev 259031)
+++ trunk/JSTests/test262/test/built-ins/JSON/stringify/value-tojson-stack-overflow.js 2020-03-26 04:29:26 UTC (rev 259032)
@@ -1,35 +0,0 @@
-// Copyright (C) 2020 Alexey Shvayka. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-/*---
-esid: sec-json.stringify
-description: >
- Stack overflow due to infinite recursion in toJSON throws an expected error.
----*/
-
-var getStackOverflowError = function() {
- try {
- return getStackOverflowError();
- } catch (err) {
- return err;
- }
-};
-
-var StackOverflowError = getStackOverflowError().constructor;
-
-var obj = {};
-obj.toJSON = function() {
- return {key: obj};
-};
-
-assert.throws(StackOverflowError, function() {
- JSON.stringify(obj);
-});
-
-var arr = [];
-arr.toJSON = function() {
- return [arr];
-};
-
-assert.throws(StackOverflowError, function() {
- JSON.stringify(arr);
-});
Added: trunk/JSTests/test262/test/built-ins/NativeErrors/AggregateError/newtarget-is-undefined.js (0 => 259032)
--- trunk/JSTests/test262/test/built-ins/NativeErrors/AggregateError/newtarget-is-undefined.js (rev 0)
+++ trunk/JSTests/test262/test/built-ins/NativeErrors/AggregateError/newtarget-is-undefined.js 2020-03-26 04:29:26 UTC (rev 259032)
@@ -0,0 +1,19 @@
+// Copyright (C) 2020 Rick Waldron. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-aggregate-error
+description: >
+ NewTarget is undefined
+info: |
+ AggregateError ( errors, message )
+
+ 1. If NewTarget is undefined, let newTarget be the active function object, else let newTarget be NewTarget.
+
+features: [AggregateError]
+---*/
+
+var obj = AggregateError([], '');
+
+assert.sameValue(Object.getPrototypeOf(obj), AggregateError.prototype);
+assert(obj instanceof AggregateError);
Modified: trunk/JSTests/test262/test/built-ins/RegExp/prototype/Symbol.replace/poisoned-stdlib.js (259031 => 259032)
--- trunk/JSTests/test262/test/built-ins/RegExp/prototype/Symbol.replace/poisoned-stdlib.js 2020-03-26 04:28:40 UTC (rev 259031)
+++ trunk/JSTests/test262/test/built-ins/RegExp/prototype/Symbol.replace/poisoned-stdlib.js 2020-03-26 04:29:26 UTC (rev 259032)
@@ -4,11 +4,12 @@
esid: sec-regexp.prototype-@@replace
description: >
Both functional and pattern replacement performs as expected with poisoned stdlib.
-features: [Symbol.replace, regexp-named-groups]
+features: [Symbol.iterator, Symbol.replace, regexp-named-groups]
---*/
assert(delete Array.prototype.concat);
assert(delete Array.prototype.push);
+assert(delete Array.prototype[Symbol.iterator]);
assert(delete Function.prototype.apply);
assert(delete String.prototype.charAt);
assert(delete String.prototype.charCodeAt);
Modified: trunk/JSTests/test262/test/harness/assert-samevalue-zeros.js (259031 => 259032)
--- trunk/JSTests/test262/test/harness/assert-samevalue-zeros.js 2020-03-26 04:28:40 UTC (rev 259031)
+++ trunk/JSTests/test262/test/harness/assert-samevalue-zeros.js 2020-03-26 04:29:26 UTC (rev 259032)
@@ -18,6 +18,7 @@
'" was thrown.'
);
}
+ assert.notSameValue(err.message.indexOf('-0'), -1);
}
if (threw === false) {
Added: trunk/JSTests/test262/test/language/expressions/class/elements/private-field-after-optional-chain.js (0 => 259032)
--- trunk/JSTests/test262/test/language/expressions/class/elements/private-field-after-optional-chain.js (rev 0)
+++ trunk/JSTests/test262/test/language/expressions/class/elements/private-field-after-optional-chain.js 2020-03-26 04:29:26 UTC (rev 259032)
@@ -0,0 +1,44 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/private-field-after-optional-chain.case
+// - src/class-elements/default/cls-expr.template
+/*---
+description: OptionalChain.PrivateIdentifier is a valid syntax (field definitions in a class _expression_)
+esid: prod-FieldDefinition
+features: [class-fields-private, optional-chaining, class]
+flags: [generated]
+info: |
+ Updated Productions
+
+ OptionalChain[Yield, Await] :
+ `?.` `[` _expression_[+In, ?Yield, ?Await] `]`
+ `?.` IdentifierName
+ `?.` Arguments[?Yield, ?Await]
+ `?.` TemplateLiteral[?Yield, ?Await, +Tagged]
+ OptionalChain[?Yield, ?Await] `[` _expression_[+In, ?Yield, ?Await] `]`
+ OptionalChain[?Yield, ?Await] `.` IdentifierName
+ OptionalChain[?Yield, ?Await] Arguments[?Yield, ?Await]
+ OptionalChain[?Yield, ?Await] TemplateLiteral[?Yield, ?Await, +Tagged]
+ OptionalChain[?Yield, ?Await] `.` PrivateIdentifier
+
+---*/
+
+
+var C = class {
+ #f = 'Test262';
+
+ method(o) {
+ return o?.c.#f;
+ }
+}
+
+let c = new C();
+let o = {c: c};
+assert.sameValue(c.method(o), 'Test262');
+
+assert.sameValue(c.method(null), undefined);
+assert.sameValue(c.method(undefined), undefined);
+
+o = {c: new Object()};
+assert.throws(TypeError, function() {
+ c.method(o);
+}, 'accessed private field from an ordinary object');
Added: trunk/JSTests/test262/test/language/statements/class/elements/private-field-after-optional-chain.js (0 => 259032)
--- trunk/JSTests/test262/test/language/statements/class/elements/private-field-after-optional-chain.js (rev 0)
+++ trunk/JSTests/test262/test/language/statements/class/elements/private-field-after-optional-chain.js 2020-03-26 04:29:26 UTC (rev 259032)
@@ -0,0 +1,44 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/private-field-after-optional-chain.case
+// - src/class-elements/default/cls-decl.template
+/*---
+description: OptionalChain.PrivateIdentifier is a valid syntax (field definitions in a class declaration)
+esid: prod-FieldDefinition
+features: [class-fields-private, optional-chaining, class]
+flags: [generated]
+info: |
+ Updated Productions
+
+ OptionalChain[Yield, Await] :
+ `?.` `[` _expression_[+In, ?Yield, ?Await] `]`
+ `?.` IdentifierName
+ `?.` Arguments[?Yield, ?Await]
+ `?.` TemplateLiteral[?Yield, ?Await, +Tagged]
+ OptionalChain[?Yield, ?Await] `[` _expression_[+In, ?Yield, ?Await] `]`
+ OptionalChain[?Yield, ?Await] `.` IdentifierName
+ OptionalChain[?Yield, ?Await] Arguments[?Yield, ?Await]
+ OptionalChain[?Yield, ?Await] TemplateLiteral[?Yield, ?Await, +Tagged]
+ OptionalChain[?Yield, ?Await] `.` PrivateIdentifier
+
+---*/
+
+
+class C {
+ #f = 'Test262';
+
+ method(o) {
+ return o?.c.#f;
+ }
+}
+
+let c = new C();
+let o = {c: c};
+assert.sameValue(c.method(o), 'Test262');
+
+assert.sameValue(c.method(null), undefined);
+assert.sameValue(c.method(undefined), undefined);
+
+o = {c: new Object()};
+assert.throws(TypeError, function() {
+ c.method(o);
+}, 'accessed private field from an ordinary object');
Modified: trunk/JSTests/test262/test262-Revision.txt (259031 => 259032)
--- trunk/JSTests/test262/test262-Revision.txt 2020-03-26 04:28:40 UTC (rev 259031)
+++ trunk/JSTests/test262/test262-Revision.txt 2020-03-26 04:29:26 UTC (rev 259032)
@@ -1,2 +1,2 @@
-test262 remote url: g...@github.com:tc39/test262.git
-test262 revision: dfc7ecc6785e8adb4476ad77f4e0e6f62285bd62
+test262 remote url: https://github.com/tc39/test262.git
+test262 revision: 96cf75770ecc70438b00f431c266b834e41b91ce