Commit Graph

27 Commits

Author SHA1 Message Date
wingo@igalia.com
bf8e802f1a Add @@iterator, .entries(), .values(), .keys() support to typed arrays
R=arv@chromium.org, rossberg@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21999 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 08:46:53 +00:00
wingo@igalia.com
699bc8f73d Add @@iterator support for strings
R=rossberg@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21994 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 07:43:14 +00:00
adamk@chromium.org
257adcf0ed Map/Set: Implement constructor parameter handling
When an iterable object is passed in as the argument to the Map and Set
constructor the elements of the iterable object are used to populate the
Map and Set.

http://people.mozilla.org/~jorendorff/es6-draft.html#sec-map-iterable
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-set-iterable

BUG=v8:3398
LOG=Y
R=rossberg@chromium.org

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

Patch from Erik Arvidsson <arv@chromium.org>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21950 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-23 18:05:57 +00:00
verwaest@chromium.org
d06afb3ce0 Remove AccessControl from AccessorPairs, as it's an invalid usecase of AllCan*
BUG=
R=dcarney@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21918 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-23 09:02:16 +00:00
jkummerow@chromium.org
6e29768eb6 Have one, long-lived map for bound functions.
This avoids creating a new map for every bound function. Bonus: some cleanup in Runtime_FunctionBindArguments.

R=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21839 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 12:19:04 +00:00
wingo@igalia.com
dfb1c7dc9e For-of calls [Symbol.iterator]() on RHS to get iterator
R=rossberg@chromium.org
BUG=http://code.google.com/p/v8/issues/detail?id=2735
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21820 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 17:31:54 +00:00
wingo@igalia.com
8e165acbdf Add @@iterator for generator objects
R=arv@chromium.org, rossberg@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21797 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 08:53:07 +00:00
yangguo@chromium.org
dc7fe989ae Do not clear mirror cache when fetching loaded scripts.
R=yurys@chromium.org
BUG=376534
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21737 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-10 09:42:41 +00:00
yangguo@chromium.org
feed21b6d5 Add option to disable MirrorCache.
R=yurys@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21644 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 14:27:19 +00:00
adamk@chromium.org
509a1a405c ES6: Add support for values/keys/entries for Map and Set
This allows code like this:

  var map = new Map();
  map.set(1, 'One');
  ...
  var iter = map.values();
  var res;
  while (!(res = iter.next()).done) {
    print(res.value);
  }

BUG=v8:1793
LOG=Y
R=mstarzinger@chromium.org

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

Patch from Erik Arvidsson <arv@chromium.org>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21615 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 00:34:01 +00:00
jkummerow@chromium.org
f6a249c6d0 Inlined optimized runtime functions: expose Runtime versions for direct testing, skip Hydrogen versions
R=dslomov@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21585 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-30 17:07:38 +00:00
mstarzinger@chromium.org
fd21e8f56f Add Seq[One,Two]ByteString to runtime test generator.
R=dcarney@chromium.org, jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21557 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-28 09:52:38 +00:00
yangguo@chromium.org
32f433c12e Fix leak in debug mirror cache.
When fetching loaded scripts, mirror objects are created and cached.
If the cache is not cleared, it holds script objects alive.

This also fixes a minor issue with script unloading.

R=ulan@chromium.org
BUG=376534
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21477 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-26 07:05:56 +00:00
ishell@chromium.org
7c55f645d5 Cleanup after inobject slack tracking improvement.
1) %SetExpectedNumberOfProperties() function removed.
2) Obsolete SharedFunctionInfo::BeforeVisitingPointers() removed.

R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21464 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-23 12:55:57 +00:00
jkummerow@chromium.org
d6a05b729c Harden a few builtins
Introducing BUILTIN_ASSERT, builtins' equivalent of RUNTIME_ASSERT.

R=rossberg@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21439 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 13:59:37 +00:00
yangguo@chromium.org
d9736047b7 Implement Mirror object for Symbols.
R=rossberg@chromium.org, yurys@chromium.org
BUG=v8:3290
LOG=Y

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21414 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-21 15:13:50 +00:00
adamk@chromium.org
50f5a79590 Use SameValueZero for Map and Set
Instead of normalizing the keys we use SameValueZero for the actual
comparison.

BUG=v8:1622
LOG=Y
R=mstarzinger@chromium.org

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

Patch from Erik Arvidsson <arv@chromium.org>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21400 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-21 08:47:02 +00:00
adamk@chromium.org
70c3a714a1 ES6 Map/Set iterators/forEach improvements
This changes how Map/Set interacts with its iterators. When the
underlying table is rehashed or cleared, we create a new table (like
before) but we add a reference from the old table to the new table. We
also add an array describing how to transition the iterator from the
old table to the new table.

When Next is called on the iterator it checks if there is a newer table
that it should transition to. If there is, it updates the index based
on the previously recorded changes and finally changes itself to point
at the new table.

With these changes Map/Set no longer keeps the iterators alive. Also,
as before, the iterators keep the underlying table(s) alive but not the
actual Map/Set.

BUG=v8:1793
LOG=Y
R=mstarzinger@chromium.org, rossberg@chromium.org

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

Patch from Erik Arvidsson <arv@chromium.org>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21389 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-20 14:22:05 +00:00
adamk@chromium.org
62e09a3534 Fix fuzzable JS function count after r21356
TBR=dcarney@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21357 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-19 08:19:54 +00:00
adamk@chromium.org
35b8b0b27a Move microtask queueing logic from JavaScript to C++
This avoids the appearence of a leak due to storing a JSObject
as the microtask_state in the strong root list, and allows callers
to call Isolate::RunMicrotasks() without having any v8::Context
available (as at least Blink has interest in doing).

The queue is now a strong root, represented as a FixedArray of JSFunctions
(or empty_fixed_array, if it's empty); it doubles in size when it needs to grow.
The number of elements in the queue is stored in Isolate::pending_microtask_count().

LOG=Y
R=dcarney@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21356 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-19 07:57:04 +00:00
jkummerow@chromium.org
8407277cc0 Harden builtins BuildResultFromMatchInfo and URIDecodeOctets
R=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21343 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-16 13:43:19 +00:00
jkummerow@chromium.org
5843a3359c Add builtin detector to generate-runtime-tests.py
R=dslomov@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21342 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-16 13:23:32 +00:00
jkummerow@chromium.org
48c39e57b2 Expand C++ macros in tools/generate-runtime-tests.py to increase coverage
R=dslomov@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21340 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-16 13:16:08 +00:00
jkummerow@chromium.org
56c0eeb5e4 Add randomized test generation capability to tools/generate-runtime-tests.py
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21307 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-14 12:54:34 +00:00
jkummerow@chromium.org
e7a34f3fd9 Harden runtime functions (part 6).
Also blacklist LiveEdit-related functions from generated runtime tests.

R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21259 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-12 09:37:26 +00:00
adamk@chromium.org
fb991aafe3 Updated runtime function counts after r21243
TBR=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21245 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-09 18:28:11 +00:00
jkummerow@chromium.org
9866670c26 Add test case generator for runtime functions
R=dslomov@chromium.org, machenbach@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21199 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-08 13:11:59 +00:00