diff --git a/test/staging/sm/extensions/ArrayBuffer-slice-arguments-detaching.js b/test/staging/sm/extensions/ArrayBuffer-slice-arguments-detaching.js index aa47eae28f..c6b1f3a85b 100644 --- a/test/staging/sm/extensions/ArrayBuffer-slice-arguments-detaching.js +++ b/test/staging/sm/extensions/ArrayBuffer-slice-arguments-detaching.js @@ -9,6 +9,7 @@ flags: description: | ArrayBuffer.prototype.slice shouldn't misbehave horribly if index-argument conversion detaches the ArrayBuffer being sliced esid: pending +features: [host-gc-required] ---*/ function testStart() diff --git a/test/staging/sm/extensions/DataView-construct-arguments-detaching.js b/test/staging/sm/extensions/DataView-construct-arguments-detaching.js index 7c62eec4a8..4263626604 100644 --- a/test/staging/sm/extensions/DataView-construct-arguments-detaching.js +++ b/test/staging/sm/extensions/DataView-construct-arguments-detaching.js @@ -9,6 +9,7 @@ flags: description: | new DataView(...) shouldn't misbehave horribly if index-argument conversion detaches the ArrayBuffer to be viewed esid: pending +features: [host-gc-required] ---*/ function testByteOffset() diff --git a/test/staging/sm/extensions/DataView-set-arguments-detaching.js b/test/staging/sm/extensions/DataView-set-arguments-detaching.js index 60d538186d..3b42b9d5d4 100644 --- a/test/staging/sm/extensions/DataView-set-arguments-detaching.js +++ b/test/staging/sm/extensions/DataView-set-arguments-detaching.js @@ -9,6 +9,7 @@ flags: description: | DataView.prototype.set* methods shouldn't misbehave horribly if index-argument conversion detaches the ArrayBuffer being modified esid: pending +features: [host-gc-required] ---*/ function testIndex() diff --git a/test/staging/sm/extensions/dataview.js b/test/staging/sm/extensions/dataview.js index af1836dbc5..0fba1559c5 100644 --- a/test/staging/sm/extensions/dataview.js +++ b/test/staging/sm/extensions/dataview.js @@ -9,6 +9,7 @@ flags: description: | DataView tests esid: pending +features: [host-gc-required] ---*/ function test(sharedMem) { diff --git a/test/staging/sm/extensions/recursion.js b/test/staging/sm/extensions/recursion.js index 9aa4dbefca..0828f6221d 100644 --- a/test/staging/sm/extensions/recursion.js +++ b/test/staging/sm/extensions/recursion.js @@ -9,6 +9,7 @@ flags: description: | Handle infinite recursion esid: pending +features: [host-gc-required] ---*/ function eval() { eval(); } diff --git a/test/staging/sm/extensions/regress-650753.js b/test/staging/sm/extensions/regress-650753.js index 2385ea7372..3695c787cd 100644 --- a/test/staging/sm/extensions/regress-650753.js +++ b/test/staging/sm/extensions/regress-650753.js @@ -9,6 +9,7 @@ flags: description: | pending esid: pending +features: [host-gc-required] ---*/ var x = {}, h = new WeakMap; h.set(x, null); diff --git a/test/staging/sm/extensions/typedarray-set-detach.js b/test/staging/sm/extensions/typedarray-set-detach.js index 0304e3a204..29aca33688 100644 --- a/test/staging/sm/extensions/typedarray-set-detach.js +++ b/test/staging/sm/extensions/typedarray-set-detach.js @@ -9,6 +9,7 @@ flags: description: | Uint8Array.prototype.set issues when this array changes during setting esid: pending +features: [host-gc-required] ---*/ var ab = new ArrayBuffer(200); diff --git a/test/staging/sm/extensions/weakmap.js b/test/staging/sm/extensions/weakmap.js index 5ad1b48777..803d71e0d1 100644 --- a/test/staging/sm/extensions/weakmap.js +++ b/test/staging/sm/extensions/weakmap.js @@ -9,6 +9,7 @@ flags: description: | js weak maps esid: pending +features: [host-gc-required] ---*/ test(); diff --git a/test/staging/sm/generators/gen-with-call-obj.js b/test/staging/sm/generators/gen-with-call-obj.js index 3734d03ea4..808f03db18 100644 --- a/test/staging/sm/generators/gen-with-call-obj.js +++ b/test/staging/sm/generators/gen-with-call-obj.js @@ -7,6 +7,7 @@ flags: description: | pending esid: pending +features: [host-gc-required] ---*/ var foo; diff --git a/test/staging/sm/generators/iteration.js b/test/staging/sm/generators/iteration.js index fb4f3e3458..1ee0041404 100644 --- a/test/staging/sm/generators/iteration.js +++ b/test/staging/sm/generators/iteration.js @@ -8,6 +8,7 @@ flags: description: | pending esid: pending +features: [host-gc-required] ---*/ // This file was written by Andy Wingo and originally // contributed to V8 as generators-objects.js, available here: diff --git a/test/staging/sm/object/clear-dictionary-accessor-getset.js b/test/staging/sm/object/clear-dictionary-accessor-getset.js index 7ec50eb984..19905fb4fc 100644 --- a/test/staging/sm/object/clear-dictionary-accessor-getset.js +++ b/test/staging/sm/object/clear-dictionary-accessor-getset.js @@ -9,6 +9,7 @@ flags: description: | Properly handle GC of a dictionary accessor property whose [[Get]] or [[Set]] has been changed to |undefined| esid: pending +features: [host-gc-required] ---*/ function test(field) diff --git a/test/staging/sm/regress/regress-1507322-deep-weakmap.js b/test/staging/sm/regress/regress-1507322-deep-weakmap.js index 2f8da0c515..493d4d13de 100644 --- a/test/staging/sm/regress/regress-1507322-deep-weakmap.js +++ b/test/staging/sm/regress/regress-1507322-deep-weakmap.js @@ -7,6 +7,7 @@ flags: description: | pending esid: pending +features: [host-gc-required] ---*/ function TestGC2(m) { var head = new Object; diff --git a/test/staging/sm/regress/regress-592556-c35.js b/test/staging/sm/regress/regress-592556-c35.js index accb2cfc63..f27c6d6720 100644 --- a/test/staging/sm/regress/regress-592556-c35.js +++ b/test/staging/sm/regress/regress-592556-c35.js @@ -9,20 +9,21 @@ flags: description: | pending esid: pending +features: [host-gc-required] ---*/ - -var obj = {a: 0, b: 1, c: 2}; -delete obj.b; // switch to dictionary mode -Object.defineProperty(obj, 'g', - {get: function () { return -1; }, configurable: true}); -for (var i = 3; i < 20; i++) - obj['x' + i] = i; // get property table -for (var i = 3; i < 20; i++) - delete obj['x' + i]; // add to freelist -delete obj.g; // must update lastProp->freeslot, to avoid assertion - -// extra junk to try to hit the assertion, if freeslot is not updated -$262.gc(); -obj.d = 3; -obj.e = 4; - + +var obj = {a: 0, b: 1, c: 2}; +delete obj.b; // switch to dictionary mode +Object.defineProperty(obj, 'g', + {get: function () { return -1; }, configurable: true}); +for (var i = 3; i < 20; i++) + obj['x' + i] = i; // get property table +for (var i = 3; i < 20; i++) + delete obj['x' + i]; // add to freelist +delete obj.g; // must update lastProp->freeslot, to avoid assertion + +// extra junk to try to hit the assertion, if freeslot is not updated +$262.gc(); +obj.d = 3; +obj.e = 4; + diff --git a/test/staging/sm/regress/regress-596103.js b/test/staging/sm/regress/regress-596103.js index 558b9d4a0d..36a46af894 100644 --- a/test/staging/sm/regress/regress-596103.js +++ b/test/staging/sm/regress/regress-596103.js @@ -9,6 +9,7 @@ flags: description: | pending esid: pending +features: [host-gc-required] ---*/ for (var u = 0; u < 3; ++u) { var y = []; diff --git a/test/staging/sm/statements/for-in-with-gc-and-unvisited-deletion.js b/test/staging/sm/statements/for-in-with-gc-and-unvisited-deletion.js index ff8d7fb00d..e78fc11200 100644 --- a/test/staging/sm/statements/for-in-with-gc-and-unvisited-deletion.js +++ b/test/staging/sm/statements/for-in-with-gc-and-unvisited-deletion.js @@ -9,6 +9,7 @@ flags: description: | Don't mishandle deletion of a property from the internal iterator created for a for-in loop, when a gc occurs just after it esid: pending +features: [host-gc-required] ---*/ function testOneDeletion()