mirror of https://github.com/tc39/test262.git
[v8-test262-automation] Updated curation log with latest revision sha's from export and changed files.
sourceRevisionAtLastExport: 9f893284 targetRevisionAtLastExport: 234933fe8a
This commit is contained in:
parent
25f3532881
commit
6a7f7fa3a9
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"sourceRevisionAtLastExport": "9f893284",
|
||||
"targetRevisionAtLastExport": "234933fe8a",
|
||||
"sourceRevisionAtLastExport": "4dc8ce93",
|
||||
"targetRevisionAtLastExport": "25f3532881",
|
||||
"curatedFiles": {}
|
||||
}
|
|
@ -471,7 +471,7 @@ TestCoverage(
|
|||
{"start":472,"end":503,"count":0},
|
||||
{"start":626,"end":653,"count":0},
|
||||
{"start":768,"end":803,"count":0},
|
||||
{"start":867,"end":868,"count":0}]
|
||||
{"start":867,"end":869,"count":0}]
|
||||
);
|
||||
|
||||
TestCoverage(
|
||||
|
@ -850,4 +850,46 @@ Util.escape("foo.bar"); // 0400
|
|||
{"start":268,"end":350,"count":0}]
|
||||
);
|
||||
|
||||
TestCoverage(
|
||||
"https://crbug.com/v8/8237",
|
||||
`
|
||||
!function() { // 0000
|
||||
if (true) // 0050
|
||||
while (false) return; else nop(); // 0100
|
||||
}(); // 0150
|
||||
!function() { // 0200
|
||||
if (true) l0: { break l0; } else // 0250
|
||||
if (nop()) { } // 0300
|
||||
}(); // 0350
|
||||
!function() { // 0400
|
||||
if (true) { if (false) { return; } // 0450
|
||||
} else if (nop()) { } }(); // 0500
|
||||
!function(){ // 0550
|
||||
if(true)while(false)return;else nop() // 0600
|
||||
}(); // 0650
|
||||
!function(){ // 0700
|
||||
if(true) l0:{break l0}else if (nop()){} // 0750
|
||||
}(); // 0800
|
||||
!function(){ // 0850
|
||||
if(true){if(false){return}}else // 0900
|
||||
if(nop()){} // 0950
|
||||
}(); // 1000
|
||||
`,
|
||||
[{"start":0,"end":1049,"count":1},
|
||||
{"start":1,"end":151,"count":1},
|
||||
{"start":118,"end":137,"count":0},
|
||||
{"start":201,"end":351,"count":1},
|
||||
{"start":277,"end":318,"count":0},
|
||||
{"start":401,"end":525,"count":1},
|
||||
{"start":475,"end":486,"count":0},
|
||||
{"start":503,"end":523,"count":0},
|
||||
{"start":551,"end":651,"count":1},
|
||||
{"start":622,"end":639,"count":0},
|
||||
{"start":701,"end":801,"count":1},
|
||||
{"start":773,"end":791,"count":0},
|
||||
{"start":851,"end":1001,"count":1},
|
||||
{"start":920,"end":928,"count":0},
|
||||
{"start":929,"end":965,"count":0}]
|
||||
);
|
||||
|
||||
%DebugToggleBlockCoverage(false);
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
// Copyright 2018 the V8 project authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Flags: --allow-natives-syntax --no-stress-opt
|
||||
|
||||
// This tests the interaction between the MapIterator protector and SetIterator
|
||||
// protector.
|
||||
|
||||
var map = new Map([[1,2], [2,3], [3,4]]);
|
||||
assertTrue(%MapIteratorProtector());
|
||||
|
||||
var set = new Set([1,2,3]);
|
||||
assertTrue(%SetIteratorProtector());
|
||||
|
||||
// This changes %IteratorPrototype%. No more tests should be run after this in
|
||||
// the same instance.
|
||||
var iterator = map.keys();
|
||||
// iterator object --> %MapIteratorPrototype% --> %IteratorPrototype%
|
||||
iterator.__proto__.__proto__[Symbol.iterator] =
|
||||
() => ({next: () => ({done: true})});
|
||||
|
||||
assertFalse(%MapIteratorProtector());
|
||||
assertEquals([[1,2], [2,3], [3,4]], [...map]);
|
||||
assertEquals([], [...map.entries()]);
|
||||
assertEquals([], [...map.keys()]);
|
||||
assertEquals([], [...map.values()]);
|
||||
assertEquals([], [...iterator]);
|
||||
|
||||
assertFalse(%SetIteratorProtector());
|
||||
assertEquals([1,2,3], [...set]);
|
||||
assertEquals([], [...set.entries()]);
|
||||
assertEquals([], [...set.keys()]);
|
||||
assertEquals([], [...set.values()]);
|
|
@ -0,0 +1,20 @@
|
|||
// Copyright 2018 the V8 project authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Flags: --allow-natives-syntax --no-stress-opt
|
||||
|
||||
var map = new Map([[1,2], [2,3], [3,4]]);
|
||||
assertTrue(%MapIteratorProtector());
|
||||
assertTrue(%SetIteratorProtector());
|
||||
|
||||
// This changes %MapPrototype%. No more tests should be run after this in the
|
||||
// same instance.
|
||||
map.__proto__[Symbol.iterator] = () => ({next: () => ({done: true})});
|
||||
|
||||
assertTrue(%MapIteratorProtector());
|
||||
assertTrue(%SetIteratorProtector());
|
||||
assertEquals([], [...map]);
|
||||
assertEquals([[1,2], [2,3], [3,4]], [...map.entries()]);
|
||||
assertEquals([1,2,3], [...map.keys()]);
|
||||
assertEquals([2,3,4], [...map.values()]);
|
|
@ -0,0 +1,22 @@
|
|||
// Copyright 2018 the V8 project authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Flags: --allow-natives-syntax --no-stress-opt
|
||||
|
||||
var map = new Map([[1,2], [2,3], [3,4]]);
|
||||
assertTrue(%MapIteratorProtector());
|
||||
assertTrue(%SetIteratorProtector());
|
||||
|
||||
// This changes %MapIteratorPrototype%. No more tests should be run after this
|
||||
// in the same instance.
|
||||
var iterator = map[Symbol.iterator]();
|
||||
iterator.__proto__.next = () => ({done: true});
|
||||
|
||||
assertFalse(%MapIteratorProtector());
|
||||
assertTrue(%SetIteratorProtector());
|
||||
assertEquals([], [...map]);
|
||||
assertEquals([], [...map.entries()]);
|
||||
assertEquals([], [...map.keys()]);
|
||||
assertEquals([], [...map.values()]);
|
||||
assertEquals([], [...iterator]);
|
|
@ -0,0 +1,22 @@
|
|||
// Copyright 2018 the V8 project authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Flags: --allow-natives-syntax --no-stress-opt
|
||||
|
||||
var map = new Map([[1,2], [2,3], [3,4]]);
|
||||
assertTrue(%MapIteratorProtector());
|
||||
assertTrue(%SetIteratorProtector());
|
||||
|
||||
// This changes %MapIteratorPrototype%. No more tests should be run after this
|
||||
// in the same instance.
|
||||
var iterator = map.keys();
|
||||
iterator.__proto__.next = () => ({done: true});
|
||||
|
||||
assertFalse(%MapIteratorProtector());
|
||||
assertTrue(%SetIteratorProtector());
|
||||
assertEquals([], [...map]);
|
||||
assertEquals([], [...map.entries()]);
|
||||
assertEquals([], [...map.keys()]);
|
||||
assertEquals([], [...map.values()]);
|
||||
assertEquals([], [...iterator]);
|
|
@ -0,0 +1,22 @@
|
|||
// Copyright 2018 the V8 project authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Flags: --allow-natives-syntax --no-stress-opt
|
||||
|
||||
var map = new Map([[1,2], [2,3], [3,4]]);
|
||||
assertTrue(%MapIteratorProtector());
|
||||
assertTrue(%SetIteratorProtector());
|
||||
|
||||
// This changes %MapIteratorPrototype%. No more tests should be run after this
|
||||
// in the same instance.
|
||||
var iterator = map.values();
|
||||
iterator.__proto__.next = () => ({done: true});
|
||||
|
||||
assertFalse(%MapIteratorProtector());
|
||||
assertTrue(%SetIteratorProtector());
|
||||
assertEquals([], [...map]);
|
||||
assertEquals([], [...map.entries()]);
|
||||
assertEquals([], [...map.keys()]);
|
||||
assertEquals([], [...map.values()]);
|
||||
assertEquals([], [...iterator]);
|
|
@ -0,0 +1,20 @@
|
|||
// Copyright 2018 the V8 project authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Flags: --allow-natives-syntax --no-stress-opt
|
||||
|
||||
var map = new Map([[1,2], [2,3], [3,4]]);
|
||||
assertTrue(%MapIteratorProtector());
|
||||
assertTrue(%SetIteratorProtector());
|
||||
|
||||
var iterator = map.values();
|
||||
iterator.next = () => ({done: true});
|
||||
|
||||
assertFalse(%MapIteratorProtector());
|
||||
assertTrue(%SetIteratorProtector());
|
||||
assertEquals([[1,2], [2,3], [3,4]], [...map]);
|
||||
assertEquals([[1,2], [2,3], [3,4]], [...map.entries()]);
|
||||
assertEquals([1,2,3], [...map.keys()]);
|
||||
assertEquals([2,3,4], [...map.values()]);
|
||||
assertEquals([], [...iterator]);
|
|
@ -0,0 +1,22 @@
|
|||
// Copyright 2018 the V8 project authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Flags: --allow-natives-syntax --no-stress-opt
|
||||
|
||||
var map = new Map([[1,2], [2,3], [3,4]]);
|
||||
assertTrue(%MapIteratorProtector());
|
||||
assertTrue(%SetIteratorProtector());
|
||||
|
||||
// This changes %MapIteratorPrototype%. No more tests should be run after this
|
||||
// in the same instance.
|
||||
var iterator = map.entries();
|
||||
iterator.__proto__.next = () => ({done: true});
|
||||
|
||||
assertFalse(%MapIteratorProtector());
|
||||
assertTrue(%SetIteratorProtector());
|
||||
assertEquals([], [...map]);
|
||||
assertEquals([], [...map.entries()]);
|
||||
assertEquals([], [...map.keys()]);
|
||||
assertEquals([], [...map.values()]);
|
||||
assertEquals([], [...iterator]);
|
|
@ -0,0 +1,32 @@
|
|||
// Copyright 2018 the V8 project authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Flags: --allow-natives-syntax --no-stress-opt
|
||||
|
||||
// This tests the interaction between the MapIterator protector and SetIterator
|
||||
// protector.
|
||||
|
||||
var map = new Map([[1,2], [2,3], [3,4]]);
|
||||
assertTrue(%MapIteratorProtector());
|
||||
|
||||
var set = new Set([1,2,3]);
|
||||
assertTrue(%SetIteratorProtector());
|
||||
|
||||
// This changes %MapIteratorPrototype%. No more tests should be run after this
|
||||
// in the same instance.
|
||||
var iterator = map.keys();
|
||||
iterator.__proto__[Symbol.iterator] = () => ({next: () => ({done: true})});
|
||||
|
||||
assertFalse(%MapIteratorProtector());
|
||||
assertEquals([[1,2], [2,3], [3,4]], [...map]);
|
||||
assertEquals([], [...map.entries()]);
|
||||
assertEquals([], [...map.keys()]);
|
||||
assertEquals([], [...map.values()]);
|
||||
assertEquals([], [...iterator]);
|
||||
|
||||
assertFalse(%SetIteratorProtector());
|
||||
assertEquals([1,2,3], [...set]);
|
||||
assertEquals([[1,1],[2,2],[3,3]], [...set.entries()]);
|
||||
assertEquals([1,2,3], [...set.keys()]);
|
||||
assertEquals([1,2,3], [...set.values()]);
|
|
@ -0,0 +1,30 @@
|
|||
// Copyright 2018 the V8 project authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Flags: --allow-natives-syntax --no-stress-opt
|
||||
|
||||
// This tests the interaction between the MapIterator protector and SetIterator
|
||||
// protector.
|
||||
|
||||
var map = new Map([[1,2], [2,3], [3,4]]);
|
||||
assertTrue(%MapIteratorProtector());
|
||||
|
||||
var set = new Set([1,2,3]);
|
||||
assertTrue(%SetIteratorProtector());
|
||||
|
||||
var iterator = map.keys();
|
||||
iterator[Symbol.iterator] = () => ({next: () => ({done: true})});
|
||||
|
||||
assertFalse(%MapIteratorProtector());
|
||||
assertEquals([[1,2], [2,3], [3,4]], [...map]);
|
||||
assertEquals([[1,2], [2,3], [3,4]], [...map.entries()]);
|
||||
assertEquals([1,2,3], [...map.keys()]);
|
||||
assertEquals([2,3,4], [...map.values()]);
|
||||
assertEquals([], [...iterator]);
|
||||
|
||||
assertFalse(%SetIteratorProtector());
|
||||
assertEquals([1,2,3], [...set]);
|
||||
assertEquals([[1,1],[2,2],[3,3]], [...set.entries()]);
|
||||
assertEquals([1,2,3], [...set.keys()]);
|
||||
assertEquals([1,2,3], [...set.values()]);
|
|
@ -0,0 +1,23 @@
|
|||
// Copyright 2018 the V8 project authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Flags: --allow-natives-syntax --no-stress-opt
|
||||
|
||||
var set = new Set([1,2,3]);
|
||||
|
||||
assertEquals([1,2,3], [...set]);
|
||||
assertEquals([[1,1],[2,2],[3,3]], [...set.entries()]);
|
||||
assertEquals([1,2,3], [...set.keys()]);
|
||||
assertEquals([1,2,3], [...set.values()]);
|
||||
assertTrue(%SetIteratorProtector());
|
||||
assertTrue(%MapIteratorProtector());
|
||||
|
||||
set[Symbol.iterator] = () => ({next: () => ({done: true})});
|
||||
|
||||
assertFalse(%SetIteratorProtector());
|
||||
assertTrue(%MapIteratorProtector());
|
||||
assertEquals([], [...set]);
|
||||
assertEquals([[1,1],[2,2],[3,3]], [...set.entries()]);
|
||||
assertEquals([1,2,3], [...set.keys()]);
|
||||
assertEquals([1,2,3], [...set.values()]);
|
|
@ -0,0 +1,34 @@
|
|||
// Copyright 2018 the V8 project authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Flags: --allow-natives-syntax --no-stress-opt
|
||||
|
||||
// This tests the interaction between the MapIterator protector and SetIterator
|
||||
// protector.
|
||||
|
||||
var map = new Map([[1,2], [2,3], [3,4]]);
|
||||
assertTrue(%MapIteratorProtector());
|
||||
|
||||
var set = new Set([1,2,3]);
|
||||
assertTrue(%SetIteratorProtector());
|
||||
|
||||
// This changes %IteratorPrototype%. No more tests should be run after this in
|
||||
// the same instance.
|
||||
var iterator = set.keys();
|
||||
// iterator object --> %SetIteratorPrototype% --> %IteratorPrototype%
|
||||
iterator.__proto__.__proto__[Symbol.iterator] =
|
||||
() => ({next: () => ({done: true})});
|
||||
|
||||
assertFalse(%MapIteratorProtector());
|
||||
assertEquals([[1,2], [2,3], [3,4]], [...map]);
|
||||
assertEquals([], [...map.entries()]);
|
||||
assertEquals([], [...map.keys()]);
|
||||
assertEquals([], [...map.values()]);
|
||||
|
||||
assertFalse(%SetIteratorProtector());
|
||||
assertEquals([], [...set.entries()]);
|
||||
assertEquals([1,2,3], [...set]);
|
||||
assertEquals([], [...set.keys()]);
|
||||
assertEquals([], [...set.values()]);
|
||||
assertEquals([], [...iterator]);
|
|
@ -0,0 +1,21 @@
|
|||
// Copyright 2018 the V8 project authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Flags: --allow-natives-syntax --no-stress-opt
|
||||
|
||||
var set = new Set([1,2,3]);
|
||||
|
||||
assertTrue(%SetIteratorProtector());
|
||||
assertTrue(%MapIteratorProtector());
|
||||
|
||||
// This changes %SetPrototype%. No more tests should be run after this in the
|
||||
// same instance.
|
||||
set.__proto__[Symbol.iterator] = () => ({next: () => ({done: true})});
|
||||
|
||||
assertFalse(%SetIteratorProtector());
|
||||
assertTrue(%MapIteratorProtector());
|
||||
assertEquals([], [...set]);
|
||||
assertEquals([[1,1],[2,2],[3,3]], [...set.entries()]);
|
||||
assertEquals([1,2,3], [...set.keys()]);
|
||||
assertEquals([1,2,3], [...set.values()]);
|
|
@ -0,0 +1,23 @@
|
|||
// Copyright 2018 the V8 project authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Flags: --allow-natives-syntax --no-stress-opt
|
||||
|
||||
var set = new Set([1,2,3]);
|
||||
|
||||
assertTrue(%SetIteratorProtector());
|
||||
assertTrue(%MapIteratorProtector());
|
||||
|
||||
// This changes %SetIteratorPrototype%. No more tests should be run after this
|
||||
// in the same instance.
|
||||
var iterator = set[Symbol.iterator]();
|
||||
iterator.__proto__.next = () => ({done: true});
|
||||
|
||||
assertFalse(%SetIteratorProtector());
|
||||
assertTrue(%MapIteratorProtector());
|
||||
assertEquals([], [...set]);
|
||||
assertEquals([], [...set.entries()]);
|
||||
assertEquals([], [...set.keys()]);
|
||||
assertEquals([], [...set.values()]);
|
||||
assertEquals([], [...iterator]);
|
|
@ -0,0 +1,23 @@
|
|||
// Copyright 2018 the V8 project authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Flags: --allow-natives-syntax --no-stress-opt
|
||||
|
||||
var set = new Set([1,2,3]);
|
||||
|
||||
assertTrue(%SetIteratorProtector());
|
||||
assertTrue(%MapIteratorProtector());
|
||||
|
||||
// This changes %SetIteratorPrototype%. No more tests should be run after this
|
||||
// in the same instance.
|
||||
var iterator = set.keys();
|
||||
iterator.__proto__.next = () => ({done: true});
|
||||
|
||||
assertFalse(%SetIteratorProtector());
|
||||
assertTrue(%MapIteratorProtector());
|
||||
assertEquals([], [...set]);
|
||||
assertEquals([], [...set.entries()]);
|
||||
assertEquals([], [...set.keys()]);
|
||||
assertEquals([], [...set.values()]);
|
||||
assertEquals([], [...iterator]);
|
|
@ -0,0 +1,23 @@
|
|||
// Copyright 2018 the V8 project authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Flags: --allow-natives-syntax --no-stress-opt
|
||||
|
||||
var set = new Set([1,2,3]);
|
||||
|
||||
assertTrue(%SetIteratorProtector());
|
||||
assertTrue(%MapIteratorProtector());
|
||||
|
||||
// This changes %SetIteratorPrototype%. No more tests should be run after this
|
||||
// in the same instance.
|
||||
var iterator = set.values();
|
||||
iterator.__proto__.next = () => ({done: true});
|
||||
|
||||
assertFalse(%SetIteratorProtector());
|
||||
assertTrue(%MapIteratorProtector());
|
||||
assertEquals([], [...set]);
|
||||
assertEquals([], [...set.entries()]);
|
||||
assertEquals([], [...set.keys()]);
|
||||
assertEquals([], [...set.values()]);
|
||||
assertEquals([], [...iterator]);
|
|
@ -0,0 +1,21 @@
|
|||
// Copyright 2018 the V8 project authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Flags: --allow-natives-syntax --no-stress-opt
|
||||
|
||||
var set = new Set([1,2,3]);
|
||||
|
||||
assertTrue(%SetIteratorProtector());
|
||||
assertTrue(%MapIteratorProtector());
|
||||
|
||||
var iterator = set.values();
|
||||
iterator.next = () => ({done: true});
|
||||
|
||||
assertFalse(%SetIteratorProtector());
|
||||
assertTrue(%MapIteratorProtector());
|
||||
assertEquals([1,2,3], [...set]);
|
||||
assertEquals([[1,1],[2,2],[3,3]], [...set.entries()]);
|
||||
assertEquals([1,2,3], [...set.keys()]);
|
||||
assertEquals([1,2,3], [...set.values()]);
|
||||
assertEquals([], [...iterator]);
|
|
@ -0,0 +1,23 @@
|
|||
// Copyright 2018 the V8 project authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Flags: --allow-natives-syntax --no-stress-opt
|
||||
|
||||
var set = new Set([1,2,3]);
|
||||
|
||||
assertTrue(%SetIteratorProtector());
|
||||
assertTrue(%MapIteratorProtector());
|
||||
|
||||
// This changes %SetIteratorPrototype%. No more tests should be run after this
|
||||
// in the same instance.
|
||||
var iterator = set.entries();
|
||||
iterator.__proto__.next = () => ({done: true});
|
||||
|
||||
assertFalse(%SetIteratorProtector());
|
||||
assertTrue(%MapIteratorProtector());
|
||||
assertEquals([], [...set]);
|
||||
assertEquals([], [...set.entries()]);
|
||||
assertEquals([], [...set.keys()]);
|
||||
assertEquals([], [...set.values()]);
|
||||
assertEquals([], [...iterator]);
|
|
@ -0,0 +1,31 @@
|
|||
// Copyright 2018 the V8 project authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Flags: --allow-natives-syntax --no-stress-opt
|
||||
|
||||
// This tests the interaction between the MapIterator protector and SetIterator
|
||||
// protector.
|
||||
|
||||
var map = new Map([[1,2], [2,3], [3,4]]);
|
||||
assertTrue(%MapIteratorProtector());
|
||||
|
||||
var set = new Set([1,2,3]);
|
||||
assertTrue(%SetIteratorProtector());
|
||||
|
||||
// This changes %SetIteratorPrototype%. No more tests should be run after this
|
||||
// in the same instance.
|
||||
var iterator = set.keys();
|
||||
iterator.__proto__[Symbol.iterator] = () => ({next: () => ({done: true})});
|
||||
|
||||
assertFalse(%MapIteratorProtector());
|
||||
assertEquals([[1,2], [2,3], [3,4]], [...map]);
|
||||
assertEquals([[1,2], [2,3], [3,4]], [...map.entries()]);
|
||||
assertEquals([1,2,3], [...map.keys()]);
|
||||
assertEquals([2,3,4], [...map.values()]);
|
||||
|
||||
assertFalse(%SetIteratorProtector());
|
||||
assertEquals([], [...set.entries()]);
|
||||
assertEquals([1,2,3], [...set]);
|
||||
assertEquals([], [...set.keys()]);
|
||||
assertEquals([], [...set.values()]);
|
|
@ -0,0 +1,31 @@
|
|||
|
||||
// Copyright 2018 the V8 project authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Flags: --allow-natives-syntax --no-stress-opt
|
||||
|
||||
// This tests the interaction between the MapIterator protector and SetIterator
|
||||
// protector.
|
||||
|
||||
var map = new Map([[1,2], [2,3], [3,4]]);
|
||||
assertTrue(%MapIteratorProtector());
|
||||
|
||||
var set = new Set([1,2,3]);
|
||||
assertTrue(%SetIteratorProtector());
|
||||
|
||||
var iterator = set.keys();
|
||||
iterator[Symbol.iterator] = () => ({next: () => ({done: true})});
|
||||
|
||||
assertFalse(%MapIteratorProtector());
|
||||
assertEquals([[1,2], [2,3], [3,4]], [...map]);
|
||||
assertEquals([[1,2], [2,3], [3,4]], [...map.entries()]);
|
||||
assertEquals([1,2,3], [...map.keys()]);
|
||||
assertEquals([2,3,4], [...map.values()]);
|
||||
|
||||
assertFalse(%SetIteratorProtector());
|
||||
assertEquals([[1,1],[2,2],[3,3]], [...set.entries()]);
|
||||
assertEquals([1,2,3], [...set]);
|
||||
assertEquals([1,2,3], [...set.keys()]);
|
||||
assertEquals([1,2,3], [...set.values()]);
|
||||
assertEquals([], [...iterator]);
|
|
@ -0,0 +1,11 @@
|
|||
// Copyright 2018 the V8 project authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Flags: --allow-natives-syntax --harmony-namespace-exports
|
||||
|
||||
var ns;
|
||||
import('modules-skip-13.js').then(x => ns = x);
|
||||
%RunMicrotasks();
|
||||
assertEquals(42, ns.default);
|
||||
assertEquals(ns, ns.self);
|
|
@ -0,0 +1,6 @@
|
|||
// Copyright 2018 the V8 project authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
export * as self from "./modules-skip-13.js";
|
||||
export default 42;
|
|
@ -467,6 +467,9 @@
|
|||
'regress/wasm/regress-694433': [SKIP],
|
||||
'es6/typedarray': [PASS, NO_VARIANTS],
|
||||
'regress/regress-752764': [PASS, NO_VARIANTS],
|
||||
|
||||
# BUG(v8:8294). Started flaking from seemingly unrelated commits, investigating.
|
||||
'object-seal': [SKIP],
|
||||
}], # 'tsan == True'
|
||||
|
||||
##############################################################################
|
||||
|
@ -796,6 +799,9 @@
|
|||
'es6/classes': [PASS, ['tsan', SKIP]],
|
||||
'regress/regress-1122': [PASS, ['tsan', SKIP]],
|
||||
|
||||
# Too slow with gc_stress on arm64.
|
||||
'messages': [PASS, ['gc_stress and arch == arm64', SKIP]],
|
||||
|
||||
# Slow on arm64 simulator: https://crbug.com/v8/7783
|
||||
'string-replace-gc': [PASS, ['arch == arm64 and simulator_run', SKIP]],
|
||||
|
||||
|
@ -892,4 +898,44 @@
|
|||
'wasm/asm-wasm-f64': [SKIP],
|
||||
}], # arch == x64
|
||||
|
||||
##############################################################################
|
||||
['arch == ia32 and embedded_builtins == True', {
|
||||
# TODO(v8:6666): Fix arguments adaptor trampoline
|
||||
'wasm/compiled-module-serialization': [SKIP],
|
||||
'asm/embenchen/copy': [SKIP],
|
||||
'wasm/embenchen/corrections': [SKIP],
|
||||
'asm/embenchen/primes': [SKIP],
|
||||
'asm/embenchen/corrections': [SKIP],
|
||||
'wasm/embenchen/copy': [SKIP],
|
||||
'asm/embenchen/fannkuch': [SKIP],
|
||||
'asm/embenchen/memops': [SKIP],
|
||||
'asm/embenchen/fasta': [SKIP],
|
||||
'wasm/embenchen/fannkuch': [SKIP],
|
||||
'asm/embenchen/zlib': [SKIP],
|
||||
'wasm/embenchen/fasta': [SKIP],
|
||||
'wasm/embenchen/primes': [SKIP],
|
||||
'wasm/embenchen/box2d': [SKIP],
|
||||
'asm/embenchen/box2d': [SKIP],
|
||||
'wasm/embenchen/memops': [SKIP],
|
||||
'wasm/embenchen/zlib': [SKIP],
|
||||
'asm/embenchen/lua_binarytrees': [SKIP],
|
||||
'wasm/embenchen/lua_binarytrees': [SKIP],
|
||||
'asm/sqlite3/sqlite': [SKIP],
|
||||
'asm/sqlite3/sqlite-safe-heap': [SKIP],
|
||||
'asm/sqlite3/sqlite-pointer-masking': [SKIP],
|
||||
'asm/poppler/poppler': [SKIP],
|
||||
'regress/wasm/regress-808848': [SKIP],
|
||||
'regress/wasm/regress-834624': [SKIP],
|
||||
'regress/wasm/regress-843563': [SKIP],
|
||||
'wasm/anyref': [SKIP],
|
||||
'wasm/exceptions-shared': [SKIP],
|
||||
'wasm/errors': [SKIP],
|
||||
'wasm/ffi-error': [SKIP],
|
||||
'wasm/gc-frame': [SKIP],
|
||||
'wasm/import-function': [SKIP],
|
||||
'wasm/ffi': [SKIP],
|
||||
'wasm/test-wasm-module-builder': [SKIP],
|
||||
'wasm/stackwalk': [SKIP],
|
||||
}], # arch == ia32 and embedded_builtins == True
|
||||
|
||||
]
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
// Copyright 2018 the V8 project authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// MODULE
|
||||
// Flags: --harmony-namespace-exports
|
||||
|
||||
import {foo} from "./modules-skip-8.js";
|
||||
assertEquals(42, foo.default);
|
||||
assertEquals(1, foo.get_a());
|
|
@ -0,0 +1,19 @@
|
|||
// Copyright 2018 the V8 project authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// MODULE
|
||||
// Flags: --harmony-namespace-exports
|
||||
|
||||
export * as self from "./modules-export-star-as2.js";
|
||||
export * as self_again from "./modules-export-star-as2.js";
|
||||
import {self as myself} from "./modules-export-star-as2.js";
|
||||
import {self_again as myself_again} from "./modules-export-star-as2.js";
|
||||
|
||||
assertEquals(["self", "self_again"], Object.keys(myself));
|
||||
assertEquals(myself, myself.self);
|
||||
assertEquals(myself_again, myself.self_again);
|
||||
assertEquals(myself, myself_again);
|
||||
|
||||
assertThrows(_ => self, ReferenceError);
|
||||
assertThrows(_ => self_again, ReferenceError);
|
|
@ -0,0 +1,15 @@
|
|||
// Copyright 2018 the V8 project authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// MODULE
|
||||
// Flags: --harmony-namespace-exports
|
||||
|
||||
let self = 42;
|
||||
export * as self from "./modules-export-star-as3.js";
|
||||
import {self as myself} from "./modules-export-star-as3.js";
|
||||
assertEquals(["self"], Object.keys(myself));
|
||||
assertEquals(myself, myself.self);
|
||||
assertEquals(42, self);
|
||||
self++;
|
||||
assertEquals(43, self);
|
|
@ -0,0 +1,11 @@
|
|||
// Copyright 2018 the V8 project authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// MODULE
|
||||
// Flags: --harmony-namespace-exports
|
||||
|
||||
import {a, b} from "./modules-skip-9.js";
|
||||
assertSame(a, b);
|
||||
assertEquals(42, a.default);
|
||||
assertEquals(1, a.a);
|
|
@ -0,0 +1,5 @@
|
|||
// Copyright 2018 the V8 project authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
export * as foo from "./modules-skip-1.js";
|
|
@ -0,0 +1,7 @@
|
|||
// Copyright 2018 the V8 project authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
import * as b from "./modules-skip-1.js";
|
||||
export {b};
|
||||
export * as a from "./modules-skip-1.js";
|
Loading…
Reference in New Issue