mirror of
https://github.com/tc39/test262.git
synced 2025-07-28 16:34:27 +02:00
Update tests for FinalizationGroup#register (#2424)
FinalizationGroup#register should throw if called with target and holdings being the same value. This change happenend in: https://github.com/tc39/proposal-weakrefs/pull/165
This commit is contained in:
parent
aa9ba4b58f
commit
43b0c7650d
@ -9,18 +9,13 @@ info: |
|
|||||||
|
|
||||||
1. Let finalizationGroup be the this value.
|
1. Let finalizationGroup be the this value.
|
||||||
2. If Type(finalizationGroup) is not Object, throw a TypeError exception.
|
2. If Type(finalizationGroup) is not Object, throw a TypeError exception.
|
||||||
3. If Type(target) is not Object, throw a TypeError exception.
|
3. If finalizationGroup does not have a [[Cells]] internal slot, throw a TypeError exception.
|
||||||
4. If finalizationGroup does not have a [[Cells]] internal slot, throw a TypeError exception.
|
4. If Type(target) is not Object, throw a TypeError exception.
|
||||||
5. If Type(unregisterToken) is not Object,
|
5. If SameValue(target, holdings), throw a TypeError exception.
|
||||||
a. If unregisterToken is not undefined, throw a TypeError exception.
|
|
||||||
b. Set unregisterToken to empty.
|
|
||||||
6. Let cell be the Record { [[Target]] : target, [[Holdings]]: holdings, [[UnregisterToken]]: unregisterToken }.
|
|
||||||
7. Append cell to finalizationGroup.[[Cells]].
|
|
||||||
8. Return undefined.
|
|
||||||
features: [FinalizationGroup]
|
features: [FinalizationGroup]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var fg = new FinalizationGroup(function() {});
|
var fg = new FinalizationGroup(function() {});
|
||||||
|
|
||||||
var target = {};
|
var target = {};
|
||||||
assert.sameValue(fg.register(target, target), undefined);
|
assert.throws(TypeError, () => fg.register(target, target));
|
||||||
|
@ -9,20 +9,22 @@ info: |
|
|||||||
|
|
||||||
1. Let finalizationGroup be the this value.
|
1. Let finalizationGroup be the this value.
|
||||||
2. If Type(finalizationGroup) is not Object, throw a TypeError exception.
|
2. If Type(finalizationGroup) is not Object, throw a TypeError exception.
|
||||||
3. If Type(target) is not Object, throw a TypeError exception.
|
3. If finalizationGroup does not have a [[Cells]] internal slot, throw a TypeError exception.
|
||||||
4. If finalizationGroup does not have a [[Cells]] internal slot, throw a TypeError exception.
|
4. If Type(target) is not Object, throw a TypeError exception.
|
||||||
5. If Type(unregisterToken) is not Object,
|
5. If SameValue(target, holdings), throw a TypeError exception.
|
||||||
|
6. If Type(unregisterToken) is not Object,
|
||||||
a. If unregisterToken is not undefined, throw a TypeError exception.
|
a. If unregisterToken is not undefined, throw a TypeError exception.
|
||||||
b. Set unregisterToken to empty.
|
b. Set unregisterToken to empty.
|
||||||
6. Let cell be the Record { [[Target]] : target, [[Holdings]]: holdings, [[UnregisterToken]]: unregisterToken }.
|
7. Let cell be the Record { [[Target]] : target, [[Holdings]]: holdings, [[UnregisterToken]]: unregisterToken }.
|
||||||
7. Append cell to finalizationGroup.[[Cells]].
|
8. Append cell to finalizationGroup.[[Cells]].
|
||||||
8. Return undefined.
|
9. Return undefined.
|
||||||
features: [FinalizationGroup]
|
features: [FinalizationGroup]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var fn = function() {};
|
var fn = function() {};
|
||||||
var fg = new FinalizationGroup(fn);
|
var fg = new FinalizationGroup(fn);
|
||||||
|
var holdings = {};
|
||||||
|
|
||||||
assert.sameValue(fg.register(fg), undefined, 'Register itself');
|
assert.sameValue(fg.register(fg), undefined, 'Register itself');
|
||||||
assert.sameValue(fg.register(fg, fg), undefined, 'Register itself with holdings');
|
assert.sameValue(fg.register(fg, holdings), undefined, 'Register itself with holdings');
|
||||||
assert.sameValue(fg.register(fg, fg, fg), undefined, 'Register itself with holdings and unregisterToken');
|
assert.sameValue(fg.register(fg, holdings, fg), undefined, 'Register itself with holdings and unregisterToken');
|
||||||
|
@ -9,18 +9,19 @@ info: |
|
|||||||
|
|
||||||
1. Let finalizationGroup be the this value.
|
1. Let finalizationGroup be the this value.
|
||||||
2. If Type(finalizationGroup) is not Object, throw a TypeError exception.
|
2. If Type(finalizationGroup) is not Object, throw a TypeError exception.
|
||||||
3. If Type(target) is not Object, throw a TypeError exception.
|
3. If finalizationGroup does not have a [[Cells]] internal slot, throw a TypeError exception.
|
||||||
4. If finalizationGroup does not have a [[Cells]] internal slot, throw a TypeError exception.
|
4. If Type(target) is not Object, throw a TypeError exception.
|
||||||
5. If Type(unregisterToken) is not Object,
|
5. If SameValue(target, holdings), throw a TypeError exception.
|
||||||
|
6. If Type(unregisterToken) is not Object,
|
||||||
a. If unregisterToken is not undefined, throw a TypeError exception.
|
a. If unregisterToken is not undefined, throw a TypeError exception.
|
||||||
b. Set unregisterToken to empty.
|
b. Set unregisterToken to empty.
|
||||||
6. Let cell be the Record { [[Target]] : target, [[Holdings]]: holdings, [[UnregisterToken]]: unregisterToken }.
|
7. Let cell be the Record { [[Target]] : target, [[Holdings]]: holdings, [[UnregisterToken]]: unregisterToken }.
|
||||||
7. Append cell to finalizationGroup.[[Cells]].
|
8. Append cell to finalizationGroup.[[Cells]].
|
||||||
8. Return undefined.
|
9. Return undefined.
|
||||||
features: [FinalizationGroup]
|
features: [FinalizationGroup]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var fg = new FinalizationGroup(function() {});
|
var fg = new FinalizationGroup(function() {});
|
||||||
|
|
||||||
var target = {};
|
var target = {};
|
||||||
assert.sameValue(fg.register(target, target, target), undefined);
|
assert.throws(TypeError, () => fg.register(target, target, target));
|
||||||
|
@ -11,7 +11,7 @@ info: |
|
|||||||
1. If NewTarget is undefined, throw a TypeError exception.
|
1. If NewTarget is undefined, throw a TypeError exception.
|
||||||
2. If IsCallable(cleanupCallback) is false, throw a TypeError exception.
|
2. If IsCallable(cleanupCallback) is false, throw a TypeError exception.
|
||||||
...
|
...
|
||||||
features: [FinalizationGroup]
|
features: [FinalizationGroup, WeakRef]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
assert.sameValue(
|
assert.sameValue(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user