| Auto-Submit | +1 |
| Commit-Queue | +1 |
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Code-Review | +1 |
LGTM, modulo my OCD...
Thanks Olivier!
// https://tc39.es/ecma262/#sec-iteratorprototype.take```suggestion
// https://tc39.es/ecma262/#sec-iterator.prototype.take
```
// If numLimit is finite and numLimit > 𝔽(2^53 - 1), then```suggestion
// 7. If numLimit is finite and numLimit > 𝔽(2^53 - 1), then
```
// 7. Let integerLimit be ! ToIntegerOrInfinity(numLimit).```suggestion
// 8. Let integerLimit be ! ToIntegerOrInfinity(numLimit).
```
// 8. If integerLimit < 0, then```suggestion
// 9. If integerLimit < 0, then
```
// 9. Set iterated to ? GetIteratorDirect(O).```suggestion
// 10. Set iterated to ? GetIteratorDirect(O).
```
// Step 10 implemented in IteratorTakeHelperNext```suggestion
// Step 11 implemented in IteratorTakeHelperNext
```
// 11. Let result be CreateIteratorFromClosure(closure, "Iterator Helper",
// %IteratorHelperPrototype%).
// 12. Set result.[[UnderlyingIterator]] to iterated.
// 13. Return result.
return NewJSIteratorTakeHelper(iterated, integerLimit);```suggestion
// 12. Let result be CreateIteratorFromClosure(closure, "Iterator Helper",
// %IteratorHelperPrototype%).
// 13. Set result.[[UnderlyingIterator]] to iterated.
// 14. Return result.
return NewJSIteratorTakeHelper(iterated, integerLimit);
```
// https://tc39.es/ecma262/#sec-iteratorprototype.drop```suggestion
// https://tc39.es/ecma262/#sec-iterator.prototype.drop
```
// If numLimit is finite and numLimit > 𝔽(2^53 - 1), then```suggestion
// 7. If numLimit is finite and numLimit > 𝔽(2^53 - 1), then
```
// 7. Let integerLimit be ! ToIntegerOrInfinity(numLimit).```suggestion
// 8. Let integerLimit be ! ToIntegerOrInfinity(numLimit).
```
// 8. If integerLimit < 0, then```suggestion
// 9. If integerLimit < 0, then
```
// 9. Let iterated be ? GetIteratorDirect(O).```suggestion
// 10. Let iterated be ? GetIteratorDirect(O).
```
// Step 10 implemented in IteratorDropHelperNext```suggestion
// Step 11 implemented in IteratorDropHelperNext
```
// 11. Let result be CreateIteratorFromClosure(closure, "Iterator Helper",
// %IteratorHelperPrototype%).
// 12. Set result.[[UnderlyingIterator]] to iterated.
// 13. Return result.```suggestion
// 12. Let result be CreateIteratorFromClosure(closure, "Iterator Helper",
// %IteratorHelperPrototype%).
// 13. Set result.[[UnderlyingIterator]] to iterated.
// 14. Return result.
```
// Flags: --harmony-iterator-helpers
let closed = false;```suggestion
let closed = false;
```
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Auto-Submit | +1 |
| Commit-Queue | +2 |
thank you and sorry for being such a lazy person 😊
// https://tc39.es/ecma262/#sec-iteratorprototype.takeOlivier Flückiger```suggestion
// https://tc39.es/ecma262/#sec-iterator.prototype.take
```
Fix applied.
// If numLimit is finite and numLimit > 𝔽(2^53 - 1), then```suggestion
// 7. If numLimit is finite and numLimit > 𝔽(2^53 - 1), then
```
Fix applied.
// 7. Let integerLimit be ! ToIntegerOrInfinity(numLimit).```suggestion
// 8. Let integerLimit be ! ToIntegerOrInfinity(numLimit).
```
Fix applied.
```suggestion
// 9. If integerLimit < 0, then
```
Fix applied.
```suggestion
// 10. Set iterated to ? GetIteratorDirect(O).
```
Fix applied.
// Step 10 implemented in IteratorTakeHelperNext```suggestion
// Step 11 implemented in IteratorTakeHelperNext
```
Fix applied.
// 11. Let result be CreateIteratorFromClosure(closure, "Iterator Helper",
// %IteratorHelperPrototype%).
// 12. Set result.[[UnderlyingIterator]] to iterated.
// 13. Return result.
return NewJSIteratorTakeHelper(iterated, integerLimit);```suggestion
// 12. Let result be CreateIteratorFromClosure(closure, "Iterator Helper",
// %IteratorHelperPrototype%).
// 13. Set result.[[UnderlyingIterator]] to iterated.
// 14. Return result.
return NewJSIteratorTakeHelper(iterated, integerLimit);
```
Fix applied.
// https://tc39.es/ecma262/#sec-iteratorprototype.dropOlivier Flückiger```suggestion
// https://tc39.es/ecma262/#sec-iterator.prototype.drop
```
Fix applied.
// If numLimit is finite and numLimit > 𝔽(2^53 - 1), then```suggestion
// 7. If numLimit is finite and numLimit > 𝔽(2^53 - 1), then
```
Fix applied.
// 7. Let integerLimit be ! ToIntegerOrInfinity(numLimit).```suggestion
// 8. Let integerLimit be ! ToIntegerOrInfinity(numLimit).
```
Fix applied.
```suggestion
// 9. If integerLimit < 0, then
```
Fix applied.
```suggestion
// 10. Let iterated be ? GetIteratorDirect(O).
```
Done
// Step 10 implemented in IteratorDropHelperNext```suggestion
// Step 11 implemented in IteratorDropHelperNext
```
Fix applied.
// 11. Let result be CreateIteratorFromClosure(closure, "Iterator Helper",
// %IteratorHelperPrototype%).
// 12. Set result.[[UnderlyingIterator]] to iterated.
// 13. Return result.```suggestion
// 12. Let result be CreateIteratorFromClosure(closure, "Iterator Helper",
// %IteratorHelperPrototype%).
// 13. Set result.[[UnderlyingIterator]] to iterated.
// 14. Return result.
Olivier Flückiger```
Fix applied.
// Flags: --harmony-iterator-helpers
let closed = false;```suggestion
let closed = false;
```
Fix applied.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
2 is the latest approved patch-set.
The change was submitted with unreviewed changes in the following files:
```
The name of the file: test/mjsunit/harmony/iterator-take-drop-limit-range.js
Insertions: 0, Deletions: 2.
@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// Flags: --harmony-iterator-helpers
-
let closed = false;
function createMockIterator() {
return {
```
```
The name of the file: src/builtins/iterator-helpers.tq
Insertions: 20, Deletions: 20.
@@ -441,7 +441,7 @@
};
}
-// https://tc39.es/ecma262/#sec-iteratorprototype.take
+// https://tc39.es/ecma262/#sec-iterator.prototype.take
@incrementUseCounter('v8::Isolate::kIteratorMethods')
transitioning javascript builtin IteratorPrototypeTake(
js-implicit context: NativeContext, receiver: JSAny)(
@@ -472,29 +472,29 @@
// b. Return ? IteratorClose(iterated, error).
if (NumberIsNaN(numLimit)) goto RangeError(o);
- // If numLimit is finite and numLimit > 𝔽(2^53 - 1), then
+ // 7. If numLimit is finite and numLimit > 𝔽(2^53 - 1), then
// a. Let error be ThrowCompletion(a newly created RangeError object).
// b. Return ? IteratorClose(iterated, error).
if (!NumberIsSomeInfinity(numLimit) && numLimit > kMaxSafeInteger)
goto RangeError(o);
- // 7. Let integerLimit be ! ToIntegerOrInfinity(numLimit).
+ // 8. Let integerLimit be ! ToIntegerOrInfinity(numLimit).
const integerLimit = ToInteger_Inline(numLimit);
- // 8. If integerLimit < 0, then
+ // 9. If integerLimit < 0, then
// a. Let error be ThrowCompletion(a newly created RangeError object).
// b. Return ? IteratorClose(iterated, error).
if (integerLimit < 0) goto RangeError(o);
- // 9. Set iterated to ? GetIteratorDirect(O).
+ // 10. Set iterated to ? GetIteratorDirect(O).
const iterated = GetIteratorDirect(o);
- // Step 10 implemented in IteratorTakeHelperNext
+ // Step 11 implemented in IteratorTakeHelperNext
- // 11. Let result be CreateIteratorFromClosure(closure, "Iterator Helper",
- // %IteratorHelperPrototype%).
- // 12. Set result.[[UnderlyingIterator]] to iterated.
- // 13. Return result.
+ // 12. Let result be CreateIteratorFromClosure(closure, "Iterator Helper",
+ // %IteratorHelperPrototype%).
+ // 13. Set result.[[UnderlyingIterator]] to iterated.
+ // 14. Return result.
return NewJSIteratorTakeHelper(iterated, integerLimit);
} label RangeError(iteratorObject: JSReceiver) deferred {
IteratorCloseOnException(iteratorObject);
@@ -568,7 +568,7 @@
};
}
-// https://tc39.es/ecma262/#sec-iteratorprototype.drop
+// https://tc39.es/ecma262/#sec-iterator.prototype.drop
@incrementUseCounter('v8::Isolate::kIteratorMethods')
transitioning javascript builtin IteratorPrototypeDrop(
js-implicit context: NativeContext, receiver: JSAny)(
@@ -599,29 +599,29 @@
// b. Return ? IteratorClose(iterated, error).
if (NumberIsNaN(numLimit)) goto RangeError(o);
- // If numLimit is finite and numLimit > 𝔽(2^53 - 1), then
+ // 7. If numLimit is finite and numLimit > 𝔽(2^53 - 1), then
// a. Let error be ThrowCompletion(a newly created RangeError object).
// b. Return ? IteratorClose(iterated, error).
if (!NumberIsSomeInfinity(numLimit) && numLimit > kMaxSafeInteger)
goto RangeError(o);
- // 7. Let integerLimit be ! ToIntegerOrInfinity(numLimit).
+ // 8. Let integerLimit be ! ToIntegerOrInfinity(numLimit).
const integerLimit = ToInteger_Inline(numLimit);
- // 8. If integerLimit < 0, then
+ // 9. If integerLimit < 0, then
// a. Let error be ThrowCompletion(a newly created RangeError object).
// b. Return ? IteratorClose(iterated, error).
if (integerLimit < 0) goto RangeError(o);
- // 9. Let iterated be ? GetIteratorDirect(O).
+ // 10. Let iterated be ? GetIteratorDirect(O).
const iterated = GetIteratorDirect(o);
- // Step 10 implemented in IteratorDropHelperNext
+ // Step 11 implemented in IteratorDropHelperNext
- // 11. Let result be CreateIteratorFromClosure(closure, "Iterator Helper",
- // %IteratorHelperPrototype%).
- // 12. Set result.[[UnderlyingIterator]] to iterated.
- // 13. Return result.
+ // 12. Let result be CreateIteratorFromClosure(closure, "Iterator Helper",
+ // %IteratorHelperPrototype%).
+ // 13. Set result.[[UnderlyingIterator]] to iterated.
+ // 14. Return result.
return NewJSIteratorDropHelper(iterated, integerLimit);
} label RangeError(iteratorObject: JSReceiver) deferred {
IteratorCloseOnException(iteratorObject);
```
[iterator] Adapt Iterator Helpers to ECMA-262 PR 3776
Aligns Iterator.prototype.take and Iterator.prototype.drop with the
normative changes in https://github.com/tc39/ecma262/pull/3776.
Specifically, if numLimit is finite and strictly greater than 2^53 - 1
(kMaxSafeInteger), V8 now correctly closes the iterator and throws a
RangeError.
TAG=agy
CONV=df8a3037-745d-4141-afa0-f7f025cb3248
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |