Chromium Code Reviews| Index: src/js/string-iterator.js |
| diff --git a/src/js/string-iterator.js b/src/js/string-iterator.js |
| deleted file mode 100644 |
| index 2319e5a67950714c06a28c21edb67a45d9fbe3b1..0000000000000000000000000000000000000000 |
| --- a/src/js/string-iterator.js |
| +++ /dev/null |
| @@ -1,98 +0,0 @@ |
| -// Copyright 2014 the V8 project authors. All rights reserved. |
| -// Use of this source code is governed by a BSD-style license that can be |
| -// found in the LICENSE file. |
| - |
| -(function(global, utils) { |
| - |
| -"use strict"; |
| - |
| -%CheckIsBootstrapping(); |
| - |
| -// ------------------------------------------------------------------- |
| -// Imports |
| - |
| -var GlobalString = global.String; |
| -var IteratorPrototype = utils.ImportNow("IteratorPrototype"); |
| -var iteratorSymbol = utils.ImportNow("iterator_symbol"); |
| -var stringIteratorIteratedStringSymbol = |
| - utils.ImportNow("string_iterator_iterated_string_symbol"); |
| -var stringIteratorNextIndexSymbol = |
| - utils.ImportNow("string_iterator_next_index_symbol"); |
| -var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol"); |
| - |
| -// ------------------------------------------------------------------- |
| - |
| -function StringIterator() {} |
| - |
| - |
| -// 21.1.5.1 CreateStringIterator Abstract Operation |
| -function CreateStringIterator(string) { |
| - CHECK_OBJECT_COERCIBLE(string, 'String.prototype[Symbol.iterator]'); |
| - var s = TO_STRING(string); |
| - var iterator = new StringIterator; |
| - SET_PRIVATE(iterator, stringIteratorIteratedStringSymbol, s); |
| - SET_PRIVATE(iterator, stringIteratorNextIndexSymbol, 0); |
| - return iterator; |
| -} |
| - |
| - |
| -// ES6 section 21.1.5.2.1 %StringIteratorPrototype%.next ( ) |
| -function StringIteratorNext() { |
| - var iterator = this; |
| - var value = UNDEFINED; |
| - var done = true; |
| - |
| - if (!IS_RECEIVER(iterator) || |
| - !HAS_DEFINED_PRIVATE(iterator, stringIteratorNextIndexSymbol)) { |
| - throw %make_type_error(kIncompatibleMethodReceiver, |
| - 'String Iterator.prototype.next'); |
| - } |
| - |
| - var s = GET_PRIVATE(iterator, stringIteratorIteratedStringSymbol); |
| - if (!IS_UNDEFINED(s)) { |
| - var position = GET_PRIVATE(iterator, stringIteratorNextIndexSymbol); |
| - var length = TO_UINT32(s.length); |
| - if (position >= length) { |
| - SET_PRIVATE(iterator, stringIteratorIteratedStringSymbol, UNDEFINED); |
| - } else { |
| - var first = %_StringCharCodeAt(s, position); |
| - value = %_StringCharFromCode(first); |
| - done = false; |
| - position++; |
| - |
| - if (first >= 0xD800 && first <= 0xDBFF && position < length) { |
| - var second = %_StringCharCodeAt(s, position); |
| - if (second >= 0xDC00 && second <= 0xDFFF) { |
| - value += %_StringCharFromCode(second); |
| - position++; |
| - } |
| - } |
| - |
| - SET_PRIVATE(iterator, stringIteratorNextIndexSymbol, position); |
| - } |
| - } |
| - return %_CreateIterResultObject(value, done); |
| -} |
| - |
| - |
| -// 21.1.3.27 String.prototype [ @@iterator ]( ) |
| -function StringPrototypeIterator() { |
| - return CreateStringIterator(this); |
| -} |
| - |
| -//------------------------------------------------------------------- |
| - |
| -%FunctionSetPrototype(StringIterator, {__proto__: IteratorPrototype}); |
| -%FunctionSetInstanceClassName(StringIterator, 'String Iterator'); |
|
caitp
2016/09/15 19:02:39
not doing this might cause layout test failures, b
Benedikt Meurer
2016/09/16 03:16:37
Acknowledged.
|
| - |
| -utils.InstallFunctions(StringIterator.prototype, DONT_ENUM, [ |
| - 'next', StringIteratorNext |
| -]); |
| -%AddNamedProperty(StringIterator.prototype, toStringTagSymbol, |
| - "String Iterator", READ_ONLY | DONT_ENUM); |
| - |
| -utils.SetFunctionName(StringPrototypeIterator, iteratorSymbol); |
| -%AddNamedProperty(GlobalString.prototype, iteratorSymbol, |
| - StringPrototypeIterator, DONT_ENUM); |
| - |
| -}) |