Skip to content

Commit

Permalink
implement .entries method based on comment in issue #5
Browse files Browse the repository at this point in the history
  • Loading branch information
xgbuils committed Jan 22, 2017
1 parent 43495fb commit d8be67d
Showing 1 changed file with 19 additions and 7 deletions.
26 changes: 19 additions & 7 deletions src/iterum-builder.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,29 @@ var errorHandler = require('./core/error-handler.js')

function IterumBuilder (options) {
var constructors = options.constructors
function Iterum (generator, ...args) {
function Iterum (iterable, ...args) {
if (!(this instanceof Iterum)) {
return new Iterum(generator, ...args)
return new Iterum(iterable, ...args)
}
const entries = iterable.entries
//argumentsVerify([['Function', Iterum]], arguments, errorHandler, 'Iterum')
if (generator instanceof Iterum) {
this[Symbol.iterator] = generator[Symbol.iterator]
} else if (typeof generator === 'function') {
this[Symbol.iterator] = transformGenerator(generator, args, this)
if (iterable instanceof Iterum) {
this[Symbol.iterator] = iterable[Symbol.iterator]
} else if (typeof iterable === 'function') {
this[Symbol.iterator] = transformGenerator(iterable, args, this)
} else {
this[Symbol.iterator] = transformGenerator(generator[Symbol.iterator], args, generator)
this[Symbol.iterator] = transformGenerator(iterable[Symbol.iterator], args, iterable)
}
this.entries = typeof entries === 'function'
? entries.bind(iterable)
: defaultEntries
}

function* defaultEntries () {
let index = 0
for (let val of this) {
yield [index, val]
++index
}
}

Expand Down

0 comments on commit d8be67d

Please sign in to comment.