mirror of
https://github.com/tc39/test262.git
synced 2025-07-20 20:44:43 +02:00
[test262] Add staging tests for isSubsetOf set method
This CL adds three tests to staging directory of test262. Bug: v8:13556 Change-Id: Id6e468a0fa29528350a10c94e9dd19c2835788e8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5055866 Reviewed-by: Liviu Rau <liviurau@chromium.org> Commit-Queue: Liviu Rau <liviurau@google.com> Cr-Commit-Position: refs/heads/main@{#91139}
This commit is contained in:
parent
2060494f28
commit
467a0fe68f
24
test/staging/set-is-subset-on-set-like.js
Normal file
24
test/staging/set-is-subset-on-set-like.js
Normal file
@ -0,0 +1,24 @@
|
||||
// Copyright (C) 2023 the V8 project authors. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
/*---
|
||||
description: Test isSubsetOf set method on a set like with equal size.
|
||||
features: [set-methods]
|
||||
---*/
|
||||
|
||||
const SetLike = {
|
||||
arr: [42, 44, 45],
|
||||
size: 3,
|
||||
keys() {
|
||||
return this.arr[Symbol.iterator]();
|
||||
},
|
||||
has(key) {
|
||||
return this.arr.indexOf(key) != -1;
|
||||
}
|
||||
};
|
||||
|
||||
const firstSet = new Set();
|
||||
firstSet.add(42);
|
||||
firstSet.add(43);
|
||||
firstSet.add(45);
|
||||
|
||||
assert.sameValue(firstSet.isSubsetOf(SetLike), false);
|
25
test/staging/set-is-subset-table-receiver-cleared.js
Normal file
25
test/staging/set-is-subset-table-receiver-cleared.js
Normal file
@ -0,0 +1,25 @@
|
||||
// Copyright (C) 2023 the V8 project authors. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
/*---
|
||||
description: Test isSubsetOf set method receiver is cleared.
|
||||
features: [set-methods]
|
||||
---*/
|
||||
|
||||
const firstSet = new Set();
|
||||
firstSet.add(42);
|
||||
firstSet.add(43);
|
||||
|
||||
const otherSet = new Set();
|
||||
otherSet.add(42);
|
||||
otherSet.add(43);
|
||||
otherSet.add(47);
|
||||
|
||||
Object.defineProperty(otherSet, 'size', {
|
||||
get: function() {
|
||||
firstSet.clear();
|
||||
return 3;
|
||||
},
|
||||
|
||||
});
|
||||
|
||||
assert.sameValue(firstSet.isSubsetOf(otherSet), true);
|
29
test/staging/set-is-subset-table-transition.js
Normal file
29
test/staging/set-is-subset-table-transition.js
Normal file
@ -0,0 +1,29 @@
|
||||
// Copyright (C) 2023 the V8 project authors. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
/*---
|
||||
description: Test isSubsetOf set method after table transition in receiver.
|
||||
features: [set-methods]
|
||||
---*/
|
||||
|
||||
const firstSet = new Set();
|
||||
firstSet.add(42);
|
||||
firstSet.add(43);
|
||||
firstSet.add(44);
|
||||
|
||||
const setLike = {
|
||||
size: 5,
|
||||
keys() {
|
||||
return [1, 2, 3, 4, 5].keys();
|
||||
},
|
||||
has(key) {
|
||||
if (key == 42) {
|
||||
// Cause a table transition in the receiver.
|
||||
firstSet.clear();
|
||||
}
|
||||
// Return true so we keep iterating the transitioned receiver.
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
assert.sameValue(firstSet.isSubsetOf(setLike), true);
|
||||
assert.sameValue(firstSet.size, 0);
|
Loading…
x
Reference in New Issue
Block a user