Array.prototype.{every, filter, find, findIndex, forEach, map, some}: Use fresh primi...
authorsvenpanne@chromium.org <svenpanne@chromium.org>
Wed, 15 Oct 2014 09:11:32 +0000 (09:11 +0000)
committersvenpanne@chromium.org <svenpanne@chromium.org>
Wed, 15 Oct 2014 09:11:32 +0000 (09:11 +0000)
commite216ab1d40068a01a7f86146db2f6d81244bd0ae
tree8b50543f5a8586a955f27f7a65fc5ef7c66f2d91
parent985db1a3c86b34219dfae35ff1846425f70b6ac0
Array.prototype.{every, filter, find, findIndex, forEach, map, some}: Use fresh primitive wrapper for calls.

When the receiver is a primitive value, it's cast to an Object before entering the loop. Instead, it should be cast to an Object for each function call while in the loop.

BUG=v8:3536
LOG=Y
R=arv@chromium.org, svenpanne@chromium.org, wingo@igalia.com

Review URL: https://codereview.chromium.org/553413002

Patch from Diego Pino <dpino@igalia.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24620 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
src/array.js
src/collection.js
src/harmony-array.js
src/macros.py
test/mjsunit/array-iteration.js
test/mjsunit/es6/collections.js
test/mjsunit/harmony/array-find.js
test/mjsunit/harmony/array-findindex.js