diff --git a/spec.emu b/spec.emu
index d475853..f602c7a 100644
--- a/spec.emu
+++ b/spec.emu
@@ -16,7 +16,7 @@ copyright: false
1. Repeat, while _items_ is not empty,
1. Let _iter_ be the first element of _items_.
1. Remove the first element from _items_.
- 1. Let _iteratorRecord_ be ? GetIteratorFlattenable(_iter_, ~iterate-strings~).
+ 1. Let _iteratorRecord_ be ? GetIteratorFlattenable(_iter_, ~reject-strings~).
1. Let _innerAlive_ be *true*.
1. Repeat, while _innerAlive_ is *true*,
1. Let _innerValue_ be ? IteratorStepValue(_iteratorRecord_).
diff --git a/src/index.ts b/src/index.ts
index 88b7679..63bca7f 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -4,8 +4,6 @@ if (typeof Iterator === 'undefined' || Iterator == null) {
globalThis.Iterator = function() {};
}
-const IteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([].values()))
-
function getIteratorFlattenable(obj: IteratorOrIterable, stringHandling: 'iterate-strings' | 'reject-strings'): Iterator
function getIteratorFlattenable(obj: any, stringHandling: 'iterate-strings' | 'reject-strings'): Iterator
function getIteratorFlattenable(obj: any, stringHandling: 'iterate-strings' | 'reject-strings'): Iterator {
@@ -44,10 +42,10 @@ function* concatImpl(...iterators: Array): Generator {
try {
for (; i < iterators.length; ++i) {
let iter = iterators[i];
- yield* liftIterator(getIteratorFlattenable(iter, 'iterate-strings'));
+ yield* liftIterator(getIteratorFlattenable(iter, 'reject-strings'));
}
} finally {
- let err = null, hasErr = false;;
+ let err = null, hasErr = false;
for (++i; i < iterators.length; ++i) {
try {
let obj = iterators[i];
diff --git a/test/index.mjs b/test/index.mjs
index 71917d7..931a617 100644
--- a/test/index.mjs
+++ b/test/index.mjs
@@ -30,10 +30,11 @@ test('concat', async t => {
);
});
-test('concat iterates strings', async t => {
- assert.deepEqual(
- Array.from(Iterator.concat("ab", "cd")),
- ["a", "b", "c", "d"],
+test('concat does not iterate strings', async t => {
+ let it = Iterator.concat("ab", "cd");
+ assert.throws(
+ () => Array.from(it),
+ TypeError,
);
});
@@ -142,4 +143,4 @@ test('closes later iterators', async t => {
concatted.return();
assert.deepEqual(returned, ['a', 'b', 'c']);
});
-});
\ No newline at end of file
+});