dslomov@chromium.org
f66af4feb4
Refactor optimized in hydrogen only runtime functions.
...
This splits all runtime function into 3 categories:
1) RUNTIME: implemented in runtime and called from both full and optimized code.
2) RUNTIME_HIDDEN: implemented in runtime, never called directly from JS builtins.
3) INLINE: inlined in both full and optimized code
4) INLINE_OPTIMIZED: inlined in optimized code, implemented in runtime for full code.
R=yangguo@chromium.org , yannguo@chromium.org
Review URL: https://codereview.chromium.org/209353006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20252 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-25 14:26:55 +00:00
rossberg@chromium.org
2e1b16de2a
Revert "Ship promises and weak collections"
...
Reason: breaks Blink layout tests.
R=machenbach@chromium.org
BUG=
Review URL: https://codereview.chromium.org/210853003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20233 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-25 10:57:52 +00:00
rossberg@chromium.org
33be68c2fa
Ship promises and weak collections
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/206163004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20211 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 16:59:04 +00:00
rossberg@chromium.org
6704bbce82
Spec adjustments for well-known symbols
...
R=arv@chromium.org , mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/208423013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20204 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 15:45:52 +00:00
jochen@chromium.org
2ce0bebba1
Rename A64 port to ARM64 port
...
BUG=354405
R=ulan@chromium.org , rodolph.perfetta@arm.com
LOG=y
Review URL: https://codereview.chromium.org/207823003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20148 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-21 09:28:26 +00:00
rossberg@chromium.org
b3b6987b27
Reland "Implement ES6 symbol registry and predefined symbols"
...
Only change relative to original CL is the updated assertion condition at objects-inl.h:2119
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/204913006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20136 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 16:13:09 +00:00
rossberg@chromium.org
1088fbd1e7
Revert "Implement ES6 symbol registry and predefined symbols"
...
TBR=yangguo@chromium.org
BUG=
Review URL: https://codereview.chromium.org/204353004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20121 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 12:56:41 +00:00
rossberg@chromium.org
0f71f61799
Implement ES6 symbol registry and predefined symbols
...
R=mstarzinger@chromium.org , arv@chromium.org
BUG=
LOG=Y
Review URL: https://codereview.chromium.org/203243004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20118 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 12:26:27 +00:00
rossberg@chromium.org
58d623f228
Stage ES6 promises and weak collections
...
Split collections flag into weak and non-weak.
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/201593004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20019 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-18 09:57:14 +00:00
yangguo@chromium.org
4e390c64f1
Harmony: move math features to es-staging.
...
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/195123002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19886 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 09:51:59 +00:00
adamk@chromium.org
8bd05193c7
Reland "Enable Object.observe by default" again
...
This re-re-re-lands enabling Object.observe. The Chromium tests that
failed last time this was rolled into Chromium have been disabled in
https://src.chromium.org/viewvc/chrome?view=revision&revision=256706
This patch should be safe to merge once that lands.
BUG=v8:2409
LOG=Y
TBR=rossberg@chromium.org ,dslomov@chromium.org,rafaelw@chromium.org
Review URL: https://codereview.chromium.org/198383002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19868 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 00:20:06 +00:00
dslomov@chromium.org
f6dac13dcb
Revert "Enable Object.observe by default"
...
This reverts commit r19734 for breeaking ChromiumOS browser tests.
'OpenSpecialTypes/FileManagerBrowserTest.Test/3' started to time out,
bisecting the roll led to this change.
http://build.chromium.org/p/chromium.chromiumos/builders/Linux%20ChromiumOS%20Tests%20%282%29/builds/22224
TBR=rafaelw@chromium.org ,rossberg@chromium.org
BUG=v8:2409
LOG=Y
Review URL: https://codereview.chromium.org/195123005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19816 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 18:15:44 +00:00
rossberg@chromium.org
3f702d4bf9
Mode clean-up pt 1: rename classic/non-strict mode to sloppy mode
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/177683002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19799 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 14:39:08 +00:00
rossberg@chromium.org
710ee827b5
Promise.all and Promise.race should reject non-array parameter.
...
Promise.all and Promise.race should reject the returned Promise if an
invalid parameter is given.
Since they don't support iterable now, they should reject the Promise
if a non-array parameter is given.
BUG=347453
LOG=Y
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/182613003
Patch from Yutaka Hirano <yhirano@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19754 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-10 12:01:06 +00:00
rafaelw@chromium.org
6503dfb72b
Reland "Enable Object.observe by default"
...
Original Issue: https://codereview.chromium.org/183683022/
TBR=rossberg
BUG=v8:2409
LOG=Y
Review URL: https://codereview.chromium.org/189513010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19736 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-08 04:41:06 +00:00
rafaelw@chromium.org
0cc44c14e5
Revert "Enable Object.observe by default"
...
TBR=rossberg
BUG=
Review URL: https://codereview.chromium.org/190853007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19735 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-08 03:54:42 +00:00
rafaelw@chromium.org
dcf9842e07
Enable Object.observe by default
...
R=rossberg@chromium.org , rossberg
BUG=v8:2409
LOG=Y
Review URL: https://codereview.chromium.org/183683022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19734 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-08 02:47:53 +00:00
rossberg@chromium.org
5543263c19
Move all Harmony-only tests to harmony/
...
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/178583005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19622 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-28 14:26:32 +00:00
rossberg@chromium.org
0d34254f8d
Upgrade Symbol implementation to match current ES6 behavior.
...
Refresh the implementation of Symbols to catch up with what the
specification now mandates:
* The global Symbol() function manufactures new Symbol values,
optionally with a string description attached.
* Invoking Symbol() as a constructor will now throw.
* ToString() over Symbol values still throws, and
Object.prototype.toString() stringifies like before.
* A Symbol value is wrapped in a Symbol object either implicitly if
it is the receiver, or explicitly done via Object(symbolValue) or
(new Object(symbolValue).)
* The Symbol.prototype.toString() method no longer throws on Symbol
wrapper objects (nor Symbol values.) Ditto for Symbol.prototype.valueOf().
* Symbol.prototype.toString() stringifies as "Symbol("<description>"),
valueOf() returns the wrapper's Symbol value.
* ToPrimitive() over Symbol wrapper objects now throws.
Overall, this provides a stricter separation between Symbol values and
wrapper objects than before, and the explicit fetching out of the
description (nee name) via the "name" property is no longer supported
(by the spec nor the implementation.)
Adjusted existing Symbol test files to fit current, adding some extra
tests for new/changed behavior.
LOG=N
R=arv@chromium.org , rossberg@chromium.org , arv, rossberg
BUG=v8:3053
Review URL: https://codereview.chromium.org/118553003
Patch from Sigbjorn Finne <sigbjornf@opera.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19490 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-19 14:19:42 +00:00
yangguo@chromium.org
139134acc2
Harmony: optimize Math.clz32.
...
R=svenpanne@chromium.org
BUG=v8:2938
LOG=N
Review URL: https://codereview.chromium.org/172133003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19487 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-19 13:51:49 +00:00
yangguo@chromium.org
84cf85598d
Harmony: implement Math.cbrt, Math.expm1 and Math.log1p.
...
BUG=v8:2938
LOG=N
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/163563003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19486 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-19 13:49:59 +00:00
yangguo@chromium.org
be7b023a5c
Harmony: implement Math.clz32
...
R=dslomov@chromium.org , svenpanne@chromium.org
BUG=v8:2938
LOG=N
Review URL: https://codereview.chromium.org/169783002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19435 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-18 10:49:35 +00:00
yangguo@chromium.org
9ffe004ae4
Harmony: implement Math.fround.
...
R=jarin@chromium.org
BUG=v8:2938
LOG=N
Review URL: https://codereview.chromium.org/169513002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19433 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-18 10:43:06 +00:00
rafaelw@chromium.org
6b5a4cdef2
V8 Microtask Queue & API
...
This patch generalizes Object.observe callbacks and promise resolution into a FIFO queue called a "microtask queue".
It also exposes new V8 API which exposes the microtask queue to the embedder. In particular, it allows the embedder to
-schedule a microtask (EnqueueExternalMicrotask)
-run the microtask queue (RunMicrotasks)
-control whether the microtask queue is run automatically within V8 when the last script exits (SetAutorunMicrotasks).
R=dcarney@chromium.org , rossberg@chromium.org , dcarney, rossberg, svenpanne
BUG=
Review URL: https://codereview.chromium.org/154283002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19344 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-12 22:04:19 +00:00
ulan@chromium.org
e95bc7eec8
Merge experimental/a64 to bleeding_edge.
...
BUG=v8:3113
LOG=Y
R=jochen@chromium.org , rmcilroy@chromium.org , rodolph.perfetta@arm.com
Review URL: https://codereview.chromium.org/148293020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19311 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-12 09:19:30 +00:00
yangguo@chromium.org
0870702436
Harmony: fix spec violation in Math.cosh.
...
R=jarin@chromium.org
BUG=v8:3141
LOG=N
Review URL: https://codereview.chromium.org/159353003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19272 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-11 11:48:32 +00:00
rossberg@chromium.org
e8175a3e9f
Revert "Make Function.length and Function.name configurable properties."
...
Plenty of test failures on test262, Mozilla, Webkit. Will have to investigate.
TBR=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/139983003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19203 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-07 15:29:18 +00:00
rossberg@chromium.org
7317b71f02
Make Function.length and Function.name configurable properties.
...
ES6 makes the Function object properties "length" and "name"
configurable; switch the implementation over to follow that.
Doing so exposed a problem in the handling of non-writable, but
configurable properties backed by foreign callback accessors
internally. As an optimization, if such an accessor property is
re-defined with a new value, its setter was passed the new value
directly, keeping the property as an accessor property. However, this
is not correct should the property be non-writable, as its setter will
then simply ignore the updated value. Adjust the enabling logic for
this optimization accordingly, along with adding a test.
LOG=N
R=rossberg@chromium.org , rossberg
BUG=v8:3045
Review URL: https://codereview.chromium.org/116083006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19200 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-07 14:55:30 +00:00
rafaelw@chromium.org
41039c4f13
Revert "Implement Microtask Delivery Queue"
...
TBR=adamk,rossberg
BUG=
Review URL: https://codereview.chromium.org/150103012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19176 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-07 01:08:50 +00:00
rafaelw@chromium.org
7de9fc0a12
Implement Microtask Delivery Queue
...
R=rossberg@chromium.org , rossberg
BUG=
Review URL: https://codereview.chromium.org/131413008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19084 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-04 19:58:49 +00:00
svenpanne@chromium.org
abe807db7f
ES6: Map and Set needs to normalize minus zero
...
BUG=v8:3069
LOG=Y
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/147143003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18892 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 07:27:05 +00:00
ishell@chromium.org
1776dffa56
Make String.prototype.{starts,ends}With
throw when passing a regular expression
...
Contributed by Mathias Bynens <mathiasb@opera.com>.
TEST=mjsunit/harmony
BUG=v8:3070
LOG=Y
R=arv@chromium.org , ishell@chromium.org
Review URL: https://codereview.chromium.org/120683002
Patch from Mathias Bynens <mathiasb@opera.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18870 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-28 10:31:05 +00:00
mstarzinger@chromium.org
4d338985b9
Closed generator returns a completed object instead of throwing a error
...
From ES6 rev20 draft, closed generator returns completed object (the
value is `undefined` and done is `true`).
Since a error thrown in generator is propagated to the caller without
setting status of a thrown generator to "completed", once a generator is
suspended by a error, status becomes "executing" forever. This is filed
as v8:3096
LOG=N
BUG=v8:3097
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/136003003
Patch from Yusuke Suzuki <yusukesuzuki@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18591 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-14 15:19:34 +00:00
verwaest@chromium.org
f2245a9cf9
Make the strict-mode calling convention for contextual calls the default one.
...
BUG=
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/131663003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18581 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-14 12:04:10 +00:00
rossberg@chromium.org
014a86ef8c
ES6: Add Object.getOwnPropertySymbols
...
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.getownpropertysymbols
This allows you to get the symbols used as property keys for an object.
var object = {};
var sym = Symbol();
object[sym] = 42;
assert(Object.getOwnPropertySymbols(object)[0] === sym);
This is only available with --harmony-symbols
BUG=v8:3049
R=rossberg@chromium.org , rossberg
LOG=Y
Review URL: https://codereview.chromium.org/108083005
Patch from Erik Arvidsson <arv@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18520 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-09 15:57:30 +00:00
rossberg@chromium.org
3286bc71e3
Promises: some adaptations to spec
...
- Rename Promise.{resolved,rejected,deferred} to Promise.{resolve,reject,defer}
- Rename Promise.one to Promise.race
- Make all failures asynchronous, EXCEPT type errors for resolver
- Disallow non-construct call to Promise constructor
- Don't make combinators go through public this.defer
Also, don't bother using IsCallable.
R=dslomov@chromium.org , yhirano@chromium.org
BUG=
Review URL: https://codereview.chromium.org/99573002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18515 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-09 13:00:56 +00:00
verwaest@chromium.org
4615e9edac
Reland v8:18458 "Load the global proxy from the context of the target function."
...
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/104013008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18462 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-07 10:46:39 +00:00
rossberg@chromium.org
2879f2104c
Revert "Load the global proxy from the context of the target function."
...
This reverts commit https://code.google.com/p/v8/source/detail?r=18458 , since it exhibits a bug that breaks some tests.
TBR=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/93863006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18461 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-07 09:55:25 +00:00
verwaest@chromium.org
5b40c38679
Load the global proxy from the context of the target function.
...
BUG=
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/111613003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18458 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-07 08:21:17 +00:00
yangguo@chromium.org
8c10fc6aee
Harmony: implement math.hypot.
...
R=jarin@chromium.org
BUG=v8:2938
LOG=N
Review URL: https://codereview.chromium.org/118303002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18407 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-23 11:13:39 +00:00
yangguo@chromium.org
2e2676a843
Harmony: implement Math.log2 and Math.log10.
...
R=jarin@chromium.org
BUG=v8:2938
LOG=N
Review URL: https://codereview.chromium.org/119093006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18406 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-23 10:54:47 +00:00
yangguo@chromium.org
34f0b745b8
Reland "Implement hyperbolic math functions for ES6."
...
BUG=v8:2938
LOG=N
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/104173002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18258 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-05 12:36:42 +00:00
yangguo@chromium.org
3e689544af
Revert "Implement hyperbolic math functions for ES6."
...
BUG=
Review URL: https://codereview.chromium.org/104003002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18248 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-04 08:53:17 +00:00
yangguo@chromium.org
d1e0c338f3
Implement hyperbolic math functions for ES6.
...
R=jarin@chromium.org
BUG=v8:2938
LOG=Y
Review URL: https://codereview.chromium.org/102023003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18245 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-04 08:32:18 +00:00
rossberg@chromium.org
e943623b12
Harmony promises
...
Based on prototype at
https://github.com/rossberg-chromium/js-promise
which informed the latest spec draft version at
https://github.com/domenic/promises-unwrapping/blob/master/README.md
Activated by --harmony-promises.
Feature complete with respect to the draft spec, plus the addition of .when and .deferred methods. Final naming and other possible deviations from the current draft will hopefully be resolved soon after the next TC39 meeting.
This CL also generalises the Object.observe delivery loop into a simplistic microtask loop. Currently, all observer events are delivered before invoking any promise handler in a single fixpoint iteration. It's not clear yet what the final semantics is supposed to be (should there be a global event ordering?), but it will probably require a more thorough event loop abstraction inside V8 once we get there.
R=dslomov@chromium.org , yhirano@chromium.org
BUG=
Review URL: https://codereview.chromium.org/64223010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18113 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-27 17:21:40 +00:00
yangguo@chromium.org
afd8e5a305
Speed up long-running test cases.
...
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/85163003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18070 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-26 11:32:39 +00:00
yangguo@chromium.org
aa3518a0f3
Make sure files end with exactly one new line and police this in presubmit.
...
The changes are (excluding presubmit.py) mechanical. I added the following
lines after the check and iterated the presubmit script until all errors
went away:
f = open(name, "w");
if contents.endswith('\n\n'):
f.write(contents[0:-1])
else:
f.write(contents + '\n')
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/82803005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18017 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 13:50:39 +00:00
dslomov@chromium.org
6749e57f47
Fix data view accessors to throw execptions on offsets bigger than size_t.
...
R=jkummerow@chromium.org
BUG=v8:3013
LOG=Y
Review URL: https://codereview.chromium.org/74583003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17840 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-18 15:16:22 +00:00
dslomov@chromium.org
cb6e8b334d
Revert "Fix data view accessors to throw execptions on offsets bigger than size_t."
...
This reverts commit r17838 for breaking arm build.
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/75213005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17839 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-18 15:05:05 +00:00
dslomov@chromium.org
dd5c7ec89e
Fix data view accessors to throw execptions on offsets bigger than size_t.
...
R=jkummerow@chromium.org
BUG=v8:3013
LOG=Y
Review URL: https://codereview.chromium.org/74583003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17838 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-18 14:58:16 +00:00
rafaelw@chromium.org
bdf78a7ad3
Reland [Object.observe] Don't force normalization of elements for observed objects
...
Original Issue: https://codereview.chromium.org/29353003/
Note that this version of the patch includes logic for bailing out of compiled ArrayPush/ArrayPop calls if the array is observed (see stub-cache-*)
R=danno@chromium.org
BUG=v8:2946
LOG=N
Review URL: https://codereview.chromium.org/68343016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17769 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-14 21:47:39 +00:00
rossberg@chromium.org
cec8383cff
Provide private symbols through internal APIs
...
Adds a notion of private symbols, mainly intended for internal use, especially, self-hosting of built-in types that would otherwise require new C++ classes.
On the JS side (i.e., in built-ins), private properties can be created and accessed through a set of macros:
NEW_PRIVATE(print_name)
HAS_PRIVATE(obj, sym)
GET_PRIVATE(obj, sym)
SET_PRIVATE(obj, sym, val)
DELETE_PRIVATE(obj, sym)
In the V8 API, they are accessible via a new class Private, and respective HasPrivate/Get/Private/SetPrivate/DeletePrivate methods on calss Object.
These APIs are designed and restricted such that their implementation can later be replaced by whatever ES7+ will officially provide.
R=yangguo@chromium.org
BUG=
Review URL: https://codereview.chromium.org/48923002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17683 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-13 10:34:06 +00:00
rafaelw@chromium.org
13f722cae4
[Object.observe] rename intrinsic change record types for consitency.
...
Note the spec now reflects the updated naming:
http://wiki.ecmascript.org/doku.php?id=harmony:observe_spec_changes
R=rossberg@chromium.org , rossberg
BUG=v8:2940
Review URL: https://codereview.chromium.org/46043020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17520 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-06 12:14:24 +00:00
rafaelw@chromium.org
e78081ca1c
Make Object.freeze/seal/preventExtensions observable
...
Note: spec has been updated here: http://wiki.ecmascript.org/doku.php?id=harmony:observe_spec_changes .
R=rossberg@chromium.org , rossberg
BUG=v8:2975,v8:2941
Review URL: https://codereview.chromium.org/47703003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17481 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 12:25:32 +00:00
rafaelw@chromium.org
4a8319c7c6
[Object.observe] Implement implicit notification from performChange
...
R=arv@chromium.org , rossberg@chromium.org , rossberg
BUG=v8:2942
Review URL: https://codereview.chromium.org/36313002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17476 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 11:23:08 +00:00
yangguo@chromium.org
2d6dab1f2e
Harmony: implement Math.trunc.
...
BUG=v8:2938
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/28793002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17286 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-21 11:15:11 +00:00
yangguo@chromium.org
575438518c
Harmony: implement Math.sign.
...
R=dslomov@chromium.org
BUG=v8:2938
Review URL: https://codereview.chromium.org/28723002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17279 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-21 09:16:31 +00:00
rafaelw@chromium.org
ce2c9b1db1
Prevent changes to hidden properties from being observable via Object.observe
...
This addresses the leak that mstarzinger points out (https://codereview.chromium.org/26390003/ ) and includes the test.
Note that this adds a test that observing changes to the empty-string property remains possible.
BUG=
R=mstarzinger@chromium.org , rossberg@chromium.org
Review URL: https://codereview.chromium.org/26592012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17257 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-17 20:49:45 +00:00
dslomov@chromium.org
380d0ca582
Implement ArrayBuffer.isView.
...
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/25700010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17121 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-10 08:36:44 +00:00
rossberg@chromium.org
94c4c596e0
Array "splice" changeRecords should be emitted after the performChange has completed (per spec)
...
R=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/23434008
Patch from Rafael Weinstein <rafaelw@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16704 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-13 08:13:02 +00:00
rossberg@chromium.org
f99298bf5d
Allow implicit conversion of acceptList values to string during Object.observe
...
R=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/23464058
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16703 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-13 08:09:39 +00:00
rossberg@chromium.org
efd71c9999
performChange no longer takes a |receiver| argument.
...
The spec omits the receiver arg with the idea arrow functions with lexical |this| will obviate the need for it.
BUG=
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/23727006
Patch from Rafael Weinstein <rafaelw@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16644 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-11 10:52:20 +00:00
verwaest@chromium.org
e5afd32129
Fix Object.freeze, Object.observe wrt CountOperation and CompoundAssignment.
...
BUG=2774,2779
R=adamk@chromium.org
Review URL: https://chromiumcodereview.appspot.com/22562004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16111 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 18:45:41 +00:00
rossberg@chromium.org
92bd4d1f2d
I found this working on
...
https://codereview.chromium.org/19541010/
The main problem is that if you called Object.getNotifier(obj) on an object, %SetObserved(object) would never get called on it, and thus it would be unobservable (new test added for this).
Additionally, Runtime::SetObserved was asserting obj->IsJSObject() which would fail if called on a proxy.
It just happens that our existing test always called getNotifier() before Object.observe on proxies, and thus we never previously attempted to transition the map of a proxy.
Both issues are now fixed and properly tested.
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/21891008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16074 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 13:49:10 +00:00
dslomov@chromium.org
45f4b685bf
Update Array Iterator to use numeric indexes
...
At the last face-to-face meeting it was decided that we should use
numeric indexes for the Array Iterator values.
https://github.com/rwldrn/tc39-notes/blob/master/es6/2013-07/july-24.md#514-keys-entries-return-numbers-for-array-index-properties
BUG=v8:2818
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/21180008
Patch from Erik Arvidsson <arv@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16072 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 13:10:07 +00:00
mstarzinger@chromium.org
c87abd1117
Add new Harmony methods to Array.prototype object.
...
Array.prototype.find
Array.prototype.findIndex
http://people.mozilla.org/~jorendorff/es6-draft.html
BUG=v8:2776,v8:2777
TEST=mjsunit/harmony/array-find,mjsunit/harmony/array-findindex
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/21079003
Patch from Ioseb Dzmanashvili <ioseb.dzmanashvili@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16025 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 10:57:48 +00:00
hpayer@chromium.org
286fc963b2
Disable test in object observe because of bug 2774.
...
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/21495004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16017 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 06:40:50 +00:00
dslomov@chromium.org
f62ffeef31
Calling Map etc without new should throw TypeError
...
Even though we do not yet allow Map, Set, WeakMap and WeakSet to be
subclassed we need to ensure that we do not allow them to be [[Call]]ed
to allow them to be subclassed in the future.
BUG=v8:2819
R=dslomov@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/21400002
Patch from Erik Arvidsson <arv@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16006 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 09:18:28 +00:00
mstarzinger@chromium.org
0627d433b0
Add new Harmony methods to String.prototype object.
...
String.prototype.repeat
String.prototype.startsWith
String.prototype.endsWith
String.prototype.contains
http://people.mozilla.org/~jorendorff/es6-draft.html
BUG=v8:2796,v8:2797,v8:2798,v8:2799
TEST=mjsunit/string-repeat,mjsunit/string-startswith,mjsunit/string-endswith,mjsunit/string-contains
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/21014007
Patch from Ioseb Dzmanashvili <ioseb.dzmanashvili@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15960 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 16:33:08 +00:00
dslomov@chromium.org
a418b36b75
Make DataView setters throw when only offset is provided.
...
Also fix typo in error message id.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/20030004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15865 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 17:35:15 +00:00
mstarzinger@chromium.org
232c55854f
Add test case for issue 2793 about experimental natives.
...
R=yangguo@chromium.org
BUG=v8:2793
Review URL: https://codereview.chromium.org/19948002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15810 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 18:18:55 +00:00
yangguo@chromium.org
cd41cb9b6d
Turn on parallel recompilation for tests that assert optimization status.
...
R=mvstanton@chromium.org
BUG=
Review URL: https://codereview.chromium.org/19807002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15793 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 09:16:33 +00:00
mstarzinger@chromium.org
ce81b0d3a8
ES6: Implement WeakSet
...
WeakSets work similar to ordinary Sets but the value (which must be an
object) is held weakly.
This is available under --harmony-collections
BUG=v8:2785
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/19678023
Patch from Erik Arvidsson <arv@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15792 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 08:32:24 +00:00
rossberg@chromium.org
ac2b8c04f3
Proxies: Make 'with' work, plus minor other fixes
...
Also fixes internal exception handling in several places of the runtime.
R=yangguo@chromium.org
BUG=v8:1543
Review URL: https://codereview.chromium.org/19384004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15781 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 14:07:23 +00:00
rossberg@chromium.org
83d9e6e7ee
Add support for explicit octal and binary integer literals
...
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-7.8.3
ES6 extends the numeric literals to support explicit support
for binary and octal literals using the following syntax:
0b10101
0o777
This is currently behind the flag, --harmony-numeric-literals
BUG=2783
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/19300002
Patch from Erik Arvidsson <arv@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15772 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 09:57:35 +00:00
dslomov@chromium.org
517cbe4dd3
Add BYTES_PER_ELEMENT property to constructors of typed arrays.
...
ES6 does not prescribe it, but both Blink and Firefox have it.
Also does a small rename of parameter in test.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/19562002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15712 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 11:16:07 +00:00
dslomov@chromium.org
11a38ed875
Throw if first argument to TypedArray.set is a number.
...
Further refinement to semantics that I have missed in previous change.
Both Blink and Firefox are permissive with arguments to .set method.
However, when first argument to "set" is a number, all implementations
throw, so that users know that
a.set(0,27)
does not assign 27 to 0th element of a, not 0 to 27th element of a.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/19210002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15684 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-16 08:11:30 +00:00
dslomov@chromium.org
1c2d005b3c
Use corerct conversions for DataView accessors.
...
We now use DoubleTo(U)Int32 that follows ES specification.
R=titzer@chromium.org ,rossberg@chromium.org
Review URL: https://codereview.chromium.org/18703007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15659 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-15 09:32:15 +00:00
dslomov@chromium.org
a6419e3e47
This does not match ES6 spec but is the behavior in both Firefox and WebKit/Blink.
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/19086003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15655 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-15 07:43:46 +00:00
rossberg@chromium.org
3d9586c431
This adds the following array iterator methods:
...
Array.prototype.values
Array.prototype.keys
Array.prototype.entries
These all return an Array Iterator object which has a next
method.
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-15.4.5
BUG=v8:2722
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/16848004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15620 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 11:20:54 +00:00
dslomov@chromium.org
5eb63e483d
Change DataView accessors behavior for insufficient args.
...
ES6 spec for DataView is not fully finished, but Blink, WebKit and
Firefox agree in that for DataView use of getters/setters with no
arguments should result in exceptions, while undefined offset argument
is the same as zero.
R=bmeurer@chromium.org , rossberg@chromium.org
Review URL: https://codereview.chromium.org/18313007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15607 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 16:18:59 +00:00
verwaest@chromium.org
22d7a85519
Unify Count Operation assignment with other assignments
...
This relands 15578, disables 1 test in harmony observe re bug v8:2774
R=dslomov@chromium.org
Review URL: https://chromiumcodereview.appspot.com/18452013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15588 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 12:02:18 +00:00
dslomov@chromium.org
cfa91762ac
Allow parameterless typed array constructors.
...
ES6 spec tacitly allows them, and they are allowed in Firefox and in
WebKit/Blink.
R=bmeurer@chromium.org ,rossberg@chromium.org
Review URL: https://codereview.chromium.org/18769005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15579 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-09 19:34:21 +00:00
mstarzinger@chromium.org
493d1f1c21
Implement WeakMap.prototype.clear function.
...
R=rossberg@chromium.org
BUG=v8:2753
TEST=mjsunit/harmony/collections
Review URL: https://codereview.chromium.org/18352002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15421 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 13:56:48 +00:00
dslomov@chromium.org
ef189ecd82
Do not allow invocation of ArrayBuffer and array buffer views' constructors as functions.
...
ES6 bug 695 (https://bugs.ecmascript.org/show_bug.cgi?id=695 ).
This never worked in WebKit, so no compatibility issues.
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/17904007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15346 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-27 07:42:08 +00:00
dslomov@chromium.org
e6e0ee0708
Update typed arrays behavior to match ES6 rev 15. Remove TO_POSITIVE_INTEGER and throw on negative length arguments.
...
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/17572009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15298 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-24 13:58:52 +00:00
dslomov@chromium.org
91eb5f8d25
DataView implementation.
...
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/17153011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15269 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-21 13:02:38 +00:00
wingo@igalia.com
f7ba3a7bb1
Fix stack frame reconstruction for generators with formal arguments
...
The formal parameter count was always being treated as an untagged
integer, but it is actually a Smi on ia32 and arm.
R=mstarzinger@chromium.org
BUG=v8:2355
TEST=mjsunit/harmony/generators-iteration
Review URL: https://codereview.chromium.org/17485002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15230 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 10:48:34 +00:00
wingo@igalia.com
d73dace0f5
Delegating yield does not re-box result objects
...
Delegating yield (yield*) should just pass on the iterator results it
receives instead of re-boxing them.
R=rossberg@chromium.org
TEST=mjsunit/harmony/generators-iteration
BUG=
Review URL: https://codereview.chromium.org/16695006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15113 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-13 10:57:11 +00:00
wingo@igalia.com
cc27c4c41b
GeneratorFunction() makes generator instances
...
The current specification has GeneratorFunction() be like Function(),
except that it makes generator instances. This commit implements that
behavior. It also fills in a piece of the implementation where
otherwise calling GeneratorFunction or GeneratorFunctionPrototype would
cause an abort because they have no code.
R=mstarzinger@chromium.org
TEST=mjsunit/harmony/generators-iteration
TEST=mjsunit/harmony/generators-runtime
BUG=v8:2355,v8:2680
Review URL: https://codereview.chromium.org/15218004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15084 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-12 12:52:16 +00:00
wingo@igalia.com
1fb2f4b358
For-of statements do not permit initializers.
...
R=rossberg@chromium.org
BUG=v8:2720
Review URL: https://codereview.chromium.org/16739008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15082 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-12 12:37:44 +00:00
wingo@igalia.com
5760c7b598
Disable --harmony -> --harmony-generators implication
...
A GC-related bug has started showing up after r15060 that unfortunately
I haven't been able to reproduce. Disable generators by default for the
Canary push.
R=danno@chromium.org
BUG=
Review URL: https://codereview.chromium.org/16638011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15065 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-11 14:45:17 +00:00
wingo@igalia.com
f88bca9576
Generator object "next" method takes optional send value
...
Update the generators implementation to make "next" also do the job of
what was previously called "send" by taking an optional argument.
Remove send, and do a bunch of renamings.
R=rossberg@chromium.org
BUG=v8:2355, v8:2715
Review URL: https://codereview.chromium.org/16136011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15028 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-10 09:26:18 +00:00
wingo@igalia.com
b29a78fb02
Baseline for-of implementation
...
Add full-codegen support for the ES6 for-of iteration statement.
R=mstarzinger@chromium.org , rossberg@chromium.org
TEST=mjsunit/harmony/iteration-semantics
BUG=v8:2214
Review URL: https://codereview.chromium.org/15288011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15002 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-07 11:12:21 +00:00
wingo@igalia.com
cb0d146862
Add initial parser support for harmony iteration
...
This commit adds initial parser support for harmony iteration.
Specifically, it will parse:
for (x of y) {}
for (let x of y) {}
for (var x of y) {}
The semantics are still unimplemented.
TEST=mjsunit/harmony/for-of-syntax
BUG=v8:2214
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/15300018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14984 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-06 14:38:26 +00:00
adamk@chromium.org
de92d0b0e0
Array.observe emit splices for array length change and update index >= length
...
R=adamk@chromium.org , rossberg@chromium.org
Review URL: https://codereview.chromium.org/15504002
Patch from Rafael Weinstein <rafaelw@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14944 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-04 23:58:49 +00:00
adamk@chromium.org
09c489ea93
Re-land: Implement ObservedArrayPop, ObservedArrayShift, ObservedArrayUnshift & ObservedArraySplice
...
Original issue: https://codereview.chromium.org/15331002/
Broke mozilla/js1_5/Array/regress-451483.js, which ends up attempting to call %IsObserved() on a non-object.
IsObserved now checks for JSReceiver and returns false rather than crashing.
R=adamk@chromium.org , rossberg@chromium.org
Review URL: https://codereview.chromium.org/15777007
Patch from Rafael Weinstein <rafaelw@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14888 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-29 17:26:05 +00:00
rossberg@chromium.org
ecb6bd2718
Revert "Implement ObservedArrayPop, ObservedArrayShift, ObservedArrayUnshift & ObservedArraySplice"
...
This reverts commit r14846.
Broke Mozilla test (see http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20shared/builds/3608/steps/Mozilla/logs/stdio ), e.g.:
=== mozilla/js1_5/Array/regress-451483 ===
--- stdout ---
BUGNUMBER: 451483
STATUS: [].splice.call(0) == []
/mnt/data/b/build/slave/v8-linux-shared/build/v8/test/mozilla/data/js1_5/Array/regress-451483.js:57: illegal access
var result = [].splice.call(0);
^
Command: /mnt/data/b/build/slave/v8-linux-shared/build/v8/out/Release/d8 --test --nobreak-on-abort --nodead-code-elimination --nofold-constants --expose-gc /mnt/data/b/build/slave/v8-linux-shared/build/v8/test/mozilla/mozilla-shell-emulation.js /mnt/data/b/build/slave/v8-linux-shared/build/v8/test/mozilla/data/shell.js /mnt/data/b/build/slave/v8-linux-shared/build/v8/test/mozilla/data/js1_5/shell.js /mnt/data/b/build/slave/v8-linux-shared/build/v8/test/mozilla/data/js1_5/Array/shell.js /mnt/data/b/build/slave/v8-linux-shared/build/v8/test/mozilla/data/js1_5/Array/regress-451483.js
TBR=rafaelw@chromium.org
BUG=
Review URL: https://codereview.chromium.org/16150003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14851 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-28 13:00:53 +00:00
rossberg@chromium.org
6fa987193e
Make (Object.)observed Arrays use SafeRemoveArrayHoles during sort
...
R=adamk,rossberg
BUG=
Review URL: https://codereview.chromium.org/15837006
Patch from Rafael Weinstein <rafaelw@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14847 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-28 11:23:59 +00:00
rossberg@chromium.org
c06dc9d010
Implement ObservedArrayPop, ObservedArrayShift, ObservedArrayUnshift & ObservedArraySplice
...
R=rossberg,adamk,arv
BUG=
Review URL: https://codereview.chromium.org/15331002
Patch from Rafael Weinstein <rafaelw@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14846 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-28 11:16:02 +00:00