Sha256: d5a26b415fea1dd05bbd6cf94a5f8f23d803d735089a1eb4eae44185b574b5bd

Contents?: true

Size: 1.72 KB

Versions: 19

Compression:

Stored size: 1.72 KB

Contents

'use strict';
var path = require('../internals/path');
var aFunction = require('../internals/a-function');
var anObject = require('../internals/an-object');
var create = require('../internals/object-create');
var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
var redefineAll = require('../internals/redefine-all');
var wellKnownSymbol = require('../internals/well-known-symbol');
var InternalStateModule = require('../internals/internal-state');

var setInternalState = InternalStateModule.set;
var getInternalState = InternalStateModule.get;

var TO_STRING_TAG = wellKnownSymbol('toStringTag');

var $return = function (value) {
  var iterator = getInternalState(this).iterator;
  var $$return = iterator['return'];
  return $$return === undefined ? { done: true, value: value } : anObject($$return.call(iterator, value));
};

var $throw = function (value) {
  var iterator = getInternalState(this).iterator;
  var $$throw = iterator['throw'];
  if ($$throw === undefined) throw value;
  return $$throw.call(iterator, value);
};

module.exports = function (nextHandler, IS_ITERATOR) {
  var IteratorProxy = function Iterator(state) {
    state.next = aFunction(state.iterator.next);
    state.done = false;
    setInternalState(this, state);
  };

  IteratorProxy.prototype = redefineAll(create(path.Iterator.prototype), {
    next: function next() {
      var state = getInternalState(this);
      var result = state.done ? undefined : nextHandler.apply(state, arguments);
      return { done: state.done, value: result };
    },
    'return': $return,
    'throw': $throw
  });

  if (!IS_ITERATOR) {
    createNonEnumerableProperty(IteratorProxy.prototype, TO_STRING_TAG, 'Generator');
  }

  return IteratorProxy;
};

Version data entries

19 entries across 18 versions & 7 rubygems

Version Path
optimacms-0.1.61 spec/dummy/node_modules/core-js/internals/iterator-create-proxy.js
disco_app-0.18.0 test/dummy/node_modules/core-js/internals/create-iterator-proxy.js
disco_app-0.18.2 test/dummy/node_modules/core-js/internals/create-iterator-proxy.js
tang-0.2.1 spec/tang_app/node_modules/core-js/internals/iterator-create-proxy.js
groonga-client-model-6.0.0 test/apps/rails6.1.3/node_modules/core-js/internals/iterator-create-proxy.js
groonga-client-model-6.0.0 test/apps/rails6.0.3.5/node_modules/core-js/internals/iterator-create-proxy.js
ruby2js-4.0.4 lib/tasks/testrails/node_modules/core-js/internals/iterator-create-proxy.js
ruby2js-4.0.3 lib/tasks/testrails/node_modules/core-js/internals/iterator-create-proxy.js
tang-0.2.0 spec/tang_app/node_modules/core-js/internals/iterator-create-proxy.js
tang-0.1.0 spec/tang_app/node_modules/core-js/internals/iterator-create-proxy.js
tang-0.0.9 spec/tang_app/node_modules/core-js/internals/iterator-create-proxy.js
enju_library-0.3.8 spec/dummy/node_modules/core-js/internals/iterator-create-proxy.js
condenser-0.3 lib/condenser/processors/node_modules/core-js-pure/internals/iterator-create-proxy.js
condenser-0.2 lib/condenser/processors/node_modules/core-js-pure/internals/iterator-create-proxy.js
condenser-0.1 lib/condenser/processors/node_modules/core-js-pure/internals/iterator-create-proxy.js
condenser-0.0.12 lib/condenser/processors/node_modules/core-js-pure/internals/iterator-create-proxy.js
condenser-0.0.11 lib/condenser/processors/node_modules/core-js-pure/internals/iterator-create-proxy.js
condenser-0.0.10 lib/condenser/processors/node_modules/core-js-pure/internals/iterator-create-proxy.js
condenser-0.0.9 lib/condenser/processors/node_modules/core-js-pure/internals/iterator-create-proxy.js