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'); |
- |
-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); |
- |
-}) |