Skip to content

Commit

Permalink
add test for primitive wrapper objects
Browse files Browse the repository at this point in the history
  • Loading branch information
michaelficarra committed Nov 22, 2024
1 parent a44a64d commit 00d973a
Showing 1 changed file with 43 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
// Copyright (C) 2024 Michael Ficarra. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
esid: sec-iterator.concat
description: >
Does not throw an error for iterable primitive wrapper objects
info: |
Iterator.concat ( ...items )
1. Let iterables be a new empty List.
2. For each element item of items, do
a. If item is not an Object, throw a TypeError exception.
...
features: [iterator-sequencing]
---*/

let desc = {
value: function() {
return {
next: function() {
return { done: true, value: undefined };
},
};
},
writable: false,
enumerable: false,
configurable: true,
};

Object.defineProperty(Boolean.prototype, Symbol.iterator, desc);
Object.defineProperty(Number.prototype, Symbol.iterator, desc);
Object.defineProperty(BigInt.prototype, Symbol.iterator, desc);
// NOTE: String.prototype already has a Symbol.iterator property
Object.defineProperty(Symbol.prototype, Symbol.iterator, desc);

Iterator.concat(
Object(true),
Object(123),
Object(123n),
Object("test"),
Object(Symbol()),
).next();

0 comments on commit 00d973a

Please sign in to comment.