Adding a failing test, per #183
Fix Map/Set iteration after delete.

Back up off of a deleted list element before continuing the iteration.
This ensures that newly added elements don't get skipped (because the
deleted element has a stale 'next' pointer).

Also reimplement Map.forEach() in terms of Map.entries(), ensuring that
we don't have to keep multiple iteration routines in sync.

Finally, add tests for Set that parallel the mutation-during-iteration
tests for Map, ensuring that this problem stays fixed in the future
for both Map and Set.

Closes: #183
Merge pull request #184 from cscott/gh-183

Fix Map/Set iteration after delete.
Map.prototype.size and Set.prototype.size should throw TypeError.

Closes #176.
Merge pull request #185 from cscott/gh-176

Map.prototype.size and Set.prototype.size should throw TypeError. Closes #176.
Delete Makefile
Don't use "in" operator where a typeof foo check can be used.

Signed-off-by: Rick Waldron <waldron.rick@gmail.com>
Merge pull request #187 from rwaldron/no-in-op

Don't use "in" operator where a typeof foo check can be used.
Update ArrayIterator to match es6 spec; support iterators in Array.from().

All the iterator functions in the es6 spec now return an object with `value`
and `done` fields.  Update the `ArrayIterator` implementation to match the
latest spec.

Add an implementation of `StringIterator`, based on the es6 spec.

Make `Array.from()` support our shimmed iterator implementations (including
`Map`, `Set`, `String`, and `Array`).  This also makes
`Array.from('\ud800\udc00')` compliant, since the spec says this should
return a single-element array.

Closes #182
Merge pull request #188 from cscott/gh-182

Update ArrayIterator to match es6 spec; support iterators in Array.from().
Automatically rewritten for npm.