adamk
24e982816f
Fix spread array inside array literal
...
During parsing, we now keep track of the first spread seen in an array
literal (if any), and make use of that information when creating the
FixedArray backing store representing the constant elements for array
literal materialization.
The old code tried to do this by setting the generated JSArray's length
in ArrayLiteral::BuildConstantElements(), but that Array length is never
read by the rest of the literal materialization code (it always uses
the length of the FixedArray backing store).
BUG=v8:4298
LOG=n
Review URL: https://codereview.chromium.org/1225223004
Cr-Commit-Position: refs/heads/master@{#29684}
2015-07-15 15:16:13 +00:00
arv
353b40e980
[es6] Remove harmony-classes flag
...
Move class tests to es6 directory
BUG=v8:3330
LOG=N
R=adamk
Review URL: https://codereview.chromium.org/1213813003
Cr-Commit-Position: refs/heads/master@{#29336}
2015-06-26 21:16:58 +00:00
wingo
e7a62c2485
Support rest parameters in arrow functions
...
R=dslomov@chromium.org , rossberg@chromium.org
LOG=Y
BUG=v8:2700
Review URL: https://codereview.chromium.org/1178523002
Cr-Commit-Position: refs/heads/master@{#28908}
2015-06-10 16:11:31 +00:00
mstarzinger
68beef53c3
Fix arrow functions requiring context without slots.
...
This fixes a corner-case where arrow functions that require a context
allocate none, because there are no additional slots allocated. Note
that this didn't happen with true function scopes because they always
had at least the receiver slot.
The outcome was a context chain that no longer was in sync with the
scope chain, hence context slot loads were bogus. This is observable
using the DYNAMIC_LOCAL optimization in all compilers.
R=rossberg@chromium.org ,wingo@igalia.com
TEST=mjsunit/harmony/regress/regress-4160
BUG=v8:4160
LOG=N
Review URL: https://codereview.chromium.org/1146063006
Cr-Commit-Position: refs/heads/master@{#28788}
2015-06-03 11:32:31 +00:00
wingo
d5fd58165c
Function scopes only must have a context if they call sloppy eval
...
A strict arrow function with no parameters and no variable bindings
won't need a context object because it will never have any
locals. (This is unlike strict normal functions, which do have
"arguments" and "this" locals.)
R=rossberg@chromium.org
BUG=v8:4056
LOG=N
Review URL: https://codereview.chromium.org/1093183003
Cr-Commit-Position: refs/heads/master@{#28031}
2015-04-23 13:19:54 +00:00
rossberg
d0e20d8221
[harmony] Move some regression tests to the right place
...
TBR=dslomov@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1027693003
Cr-Commit-Position: refs/heads/master@{#27339}
2015-03-20 11:03:14 +00:00
dslomov
92138c73a7
Remove --harmony-scoping flag.
...
We have been shipping harmony scoping for 2 Chrome releases now (M41
and M42). Time to remove the flag.
R=rossberg@chromium.org
LOG=Y
Review URL: https://codereview.chromium.org/1007783002
Cr-Commit-Position: refs/heads/master@{#27187}
2015-03-13 15:15:57 +00:00
dslomov
1604bd46bf
Implement subclassing Arrays.
...
R=mvstanton@chromium.org ,arv@chromium.org,rossberg@chromium.org
BUG=v8:3930
LOG=Y
Committed: https://crrev.com/6898da1a28d64d1fb2962804ba566f6d618ffc70
Cr-Commit-Position: refs/heads/master@{#26960}
Committed: https://crrev.com/8d29cc11a56e77297792fe100986a80b65de0051
Cr-Commit-Position: refs/heads/master@{#26963}
Committed: https://crrev.com/0705045b50a29cf1273e9e6b86fe6a627d8dcb43
Cr-Commit-Position: refs/heads/master@{#26966}
Review URL: https://codereview.chromium.org/975463002
Cr-Commit-Position: refs/heads/master@{#26972}
2015-03-03 18:45:02 +00:00
dslomov
9ff21de548
Revert of Implement subclassing Arrays. (patchset #8 id:130001 of https://codereview.chromium.org/975463002/ )
...
Reason for revert:
Arm compilation again.
Aaaarrrrrghhhhhh!!!
Original issue's description:
> Implement subclassing Arrays.
>
> R=mvstanton@chromium.org ,arv@chromium.org,rossberg@chromium.org
> BUG=v8:3930
> LOG=Y
>
> Committed: https://crrev.com/6898da1a28d64d1fb2962804ba566f6d618ffc70
> Cr-Commit-Position: refs/heads/master@{#26960}
>
> Committed: https://crrev.com/8d29cc11a56e77297792fe100986a80b65de0051
> Cr-Commit-Position: refs/heads/master@{#26963}
>
> Committed: https://crrev.com/0705045b50a29cf1273e9e6b86fe6a627d8dcb43
> Cr-Commit-Position: refs/heads/master@{#26966}
TBR=arv@chromium.org ,mvstanton@chromium.org,rossberg@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3930
Review URL: https://codereview.chromium.org/976693002
Cr-Commit-Position: refs/heads/master@{#26969}
2015-03-03 17:48:12 +00:00
dslomov
0705045b50
Implement subclassing Arrays.
...
R=mvstanton@chromium.org ,arv@chromium.org,rossberg@chromium.org
BUG=v8:3930
LOG=Y
Committed: https://crrev.com/6898da1a28d64d1fb2962804ba566f6d618ffc70
Cr-Commit-Position: refs/heads/master@{#26960}
Committed: https://crrev.com/8d29cc11a56e77297792fe100986a80b65de0051
Cr-Commit-Position: refs/heads/master@{#26963}
Review URL: https://codereview.chromium.org/975463002
Cr-Commit-Position: refs/heads/master@{#26966}
2015-03-03 17:14:14 +00:00
dslomov
7bf9ef1e39
Revert of Implement subclassing Arrays. (patchset #7 id:110001 of https://codereview.chromium.org/975463002/ )
...
Reason for revert:
Arm buildre complains again (why v8_linux_arm_dbg does not complain?)
Original issue's description:
> Implement subclassing Arrays.
>
> R=mvstanton@chromium.org ,arv@chromium.org,rossberg@chromium.org
> BUG=v8:3930
> LOG=Y
>
> Committed: https://crrev.com/6898da1a28d64d1fb2962804ba566f6d618ffc70
> Cr-Commit-Position: refs/heads/master@{#26960}
>
> Committed: https://crrev.com/8d29cc11a56e77297792fe100986a80b65de0051
> Cr-Commit-Position: refs/heads/master@{#26963}
TBR=arv@chromium.org ,mvstanton@chromium.org,rossberg@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3930
Review URL: https://codereview.chromium.org/974963002
Cr-Commit-Position: refs/heads/master@{#26965}
2015-03-03 16:41:52 +00:00
dslomov
8d29cc11a5
Implement subclassing Arrays.
...
R=mvstanton@chromium.org ,arv@chromium.org,rossberg@chromium.org
BUG=v8:3930
LOG=Y
Committed: https://crrev.com/6898da1a28d64d1fb2962804ba566f6d618ffc70
Cr-Commit-Position: refs/heads/master@{#26960}
Review URL: https://codereview.chromium.org/975463002
Cr-Commit-Position: refs/heads/master@{#26963}
2015-03-03 16:10:41 +00:00
mvstanton
01e2ba6e19
Revert of Implement subclassing Arrays. (patchset #6 id:90001 of https://codereview.chromium.org/975463002/ )
...
Reason for revert:
ARM build failure...
Original issue's description:
> Implement subclassing Arrays.
>
> R=mvstanton@chromium.org ,arv@chromium.org,rossberg@chromium.org
> BUG=v8:3930
> LOG=Y
>
> Committed: https://crrev.com/6898da1a28d64d1fb2962804ba566f6d618ffc70
> Cr-Commit-Position: refs/heads/master@{#26960}
TBR=arv@chromium.org ,rossberg@chromium.org,dslomov@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3930
Review URL: https://codereview.chromium.org/975693002
Cr-Commit-Position: refs/heads/master@{#26961}
2015-03-03 14:56:09 +00:00
dslomov
6898da1a28
Implement subclassing Arrays.
...
R=mvstanton@chromium.org ,arv@chromium.org,rossberg@chromium.org
BUG=v8:3930
LOG=Y
Review URL: https://codereview.chromium.org/975463002
Cr-Commit-Position: refs/heads/master@{#26960}
2015-03-03 13:40:39 +00:00
dslomov
290ee378ea
Disallow subclassing Arrays.
...
R=rossberg@chromium.org ,arv@chromium.org
BUG=v8:3930
LOG=Y
Committed: https://crrev.com/87f3e08e72510ee5544e82bb7ad39b2b5f001ad3
Cr-Commit-Position: refs/heads/master@{#26925}
Review URL: https://codereview.chromium.org/962263002
Cr-Commit-Position: refs/heads/master@{#26931}
2015-02-28 00:28:35 +00:00
dslomov
65abdb7e4e
Revert of Regression test for v8:3930. (patchset #1 id:1 of https://codereview.chromium.org/961353002/ )
...
Reason for revert:
Fails on nosnap builds
Original issue's description:
> Regression test for v8:3930.
>
> R=arv@chromium.org ,rossberg@chromium.org
> BUG=v8:3930
> LOG=N
>
> Committed: https://crrev.com/48fb3e83c5882e9818bc1e0a035864b465602aca
> Cr-Commit-Position: refs/heads/master@{#26926}
TBR=arv@chromium.org ,rossberg@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3930
Review URL: https://codereview.chromium.org/965043002
Cr-Commit-Position: refs/heads/master@{#26929}
2015-02-27 22:24:41 +00:00
dslomov
48fb3e83c5
Regression test for v8:3930.
...
R=arv@chromium.org ,rossberg@chromium.org
BUG=v8:3930
LOG=N
Review URL: https://codereview.chromium.org/961353002
Cr-Commit-Position: refs/heads/master@{#26926}
2015-02-27 21:21:43 +00:00
rossberg
68c8073a51
Remove effectful assertion
...
R=mstarzinger@chromium.org
BUG=461520
LOG=N
Review URL: https://codereview.chromium.org/955973003
Cr-Commit-Position: refs/heads/master@{#26857}
2015-02-25 15:34:21 +00:00
Dmitry Lomov
7866f00508
Remove --experimental-classes flag and related dead code.
...
R=arv@chromium.org
BUG=v8:3834
LOG=N
Review URL: https://codereview.chromium.org/919643008
Cr-Commit-Position: refs/heads/master@{#26631}
2015-02-12 20:07:15 +00:00
dcarney
9896fab0df
fix transition of typedarrays in ics
...
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/904423002
Cr-Commit-Position: refs/heads/master@{#26518}
2015-02-09 09:50:15 +00:00
dslomov
275e088abe
Fix assertion in full codegen for holed 'this'.
...
R=rossberg@chromium.org
BUG=chromium:455141
LOG=N
Review URL: https://codereview.chromium.org/902563002
Cr-Commit-Position: refs/heads/master@{#26423}
2015-02-04 12:14:33 +00:00
Adam Klein
986e7cefe1
Ensure class prototype objects have the right Map::constructor field
...
The null constructor they had previously could be observed as crashes in
the V8 API's Object::CreationContext() method and in Object.observe.
BUG=v8:3750
LOG=n
R=arv@chromium.org , dslomov@chromium.org
Review URL: https://codereview.chromium.org/787763005
Cr-Commit-Position: refs/heads/master@{#25757}
2014-12-10 18:25:55 +00:00
dslomov
bd04e6cdad
Fix the order of context binding/simulate insertion for BlockContexts.
...
R=jarin@chromium.org
BUG=v8:3741
LOG=N
Review URL: https://codereview.chromium.org/762393008
Cr-Commit-Position: refs/heads/master@{#25684}
2014-12-05 13:06:50 +00:00
dslomov
6ac4de87a8
harmony-scoping: make assignment to 'const' a late error.
...
Per TC39 Nov 2014 decision.
This patch also changes behavior for "legacy const": assignments to sloppy const in strict mode is now also a type error. This fixes v8:2243 and also brings us in compliance with other engines re assignment to function names (see updated webkit test), but might have bigger implications.
That change can easily be reverted by changing Variable::IsSignallingAssignmentToConst.
BUG=v8:3713,v8:2243
LOG=N
Review URL: https://codereview.chromium.org/749633002
Cr-Commit-Position: refs/heads/master@{#25516}
2014-11-26 11:21:23 +00:00
dslomov
f1d8668e38
harmony-scoping: Catch variable should be VAR, not LET
...
R=rossberg@chromium.org
BUG=v8:2858
LOG=N
Review URL: https://codereview.chromium.org/748113003
Cr-Commit-Position: refs/heads/master@{#25503}
2014-11-25 14:48:39 +00:00
adamk
b17eaaa575
Fix desugaring of let bindings in for loops to handle continue properly
...
This requires putting the original loop's body inside an inner for loop (with
the same labels as the original loop) and re-binding the temp variables in its
"next" expression. A second flag is added to the desugared code to ensure the
loop body executes at most once per loop.
BUG=v8:3683
LOG=y
Review URL: https://codereview.chromium.org/720863002
Cr-Commit-Position: refs/heads/master@{#25363}
2014-11-14 19:33:23 +00:00
rossberg@chromium.org
0b9a70ade3
Remove --harmony implications for incomplete features
...
This is in preparation for making --harmony and --es-staging synonyms.
The only remaining difference currently is block-scoping, which is still
implied by --harmony, to avoid regressing on a long-available feature.
Also removes the special-casing of --harmony-proxies.
R=adamk@chromium.org
BUG=
Review URL: https://codereview.chromium.org/693153004
Cr-Commit-Position: refs/heads/master@{#25115}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25115 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-04 16:05:44 +00:00
adamk@chromium.org
71fbe7d4ec
Ensure that JSProxy::Fix gives the generated JSObject map a constructor
...
All JSObjects in V8 either have a map()->constructor() field or are
JSFunctions. JSProxy::Fix, however, was not enforcing this, and
Object.observe's use of JSObject::GetCreationContext() exposed this.
Note that this is not Object.observe-specific: the API call
v8::Object::CreationContext() also would have revealed this bug.
This patch chooses Object as a reasonable constructor to put on the
newly-fixed object's map. Note that this has no effect on the "constructor"
property in JS. In doing so, I've also tightened up the code underlying
JSProxy::Fix to only support JSObject and JSFunction as possible output
types.
BUG=405844
LOG=N
R=rossberg@chromium.org , verwaest@chromium.org
Review URL: https://codereview.chromium.org/505303004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23466 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-27 15:54:23 +00:00
wingo@igalia.com
edfd4cdd33
Stage ES6 generators
...
R=dslomov@chromium.org
BUG=
Review URL: https://codereview.chromium.org/479543003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23272 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-21 12:06:25 +00:00
wingo@igalia.com
cebddb662e
Enable ES6 iteration by default
...
This enables for-of, as well as @@iterator implementations for strings
and arrays.
R=rossberg@chromium.org
BUG=v8:2214
LOG=Y
Review URL: https://codereview.chromium.org/446023002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22980 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-07 16:42:14 +00:00
adamk@chromium.org
bcf8b05072
Enable ES6 Map and Set by default
...
In doing so also remove all references to the --harmony-collections flag.
Due to the way context snapshotting works, it's not possible to simply
enable the flag by default.
Depends on ES6 Symbols: https://codereview.chromium.org/421313004
BUG=v8:1622
LOG=Y
R=arv@chromium.org , rossberg@chromium.org
Review URL: https://codereview.chromium.org/427723002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22889 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-05 19:37:32 +00:00
rossberg@chromium.org
23753270ba
Fix several issues with ES6 redeclaration checks
...
R=ulan@chromium.org
BUG=v8:3426
LOG=Y
Review URL: https://codereview.chromium.org/377513006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22298 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-09 11:35:05 +00:00
rossberg@chromium.org
417610e24a
Stage ES6 symbols
...
R=yangguo@chromium.org
BUG=
Review URL: https://codereview.chromium.org/286133002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21344 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-16 14:42:02 +00:00
rossberg@chromium.org
ae0a36ee32
Re^3-land "Ship promises and weak collections"
...
R=jochen@chromium.org
BUG=
Review URL: https://codereview.chromium.org/266243003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21173 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-06 14:48:34 +00:00
wingo@igalia.com
2194f3f858
Move bug 3280 regression test to mjsunit/harmony
...
R=yangguo@chromium.org
BUG=
Review URL: https://codereview.chromium.org/248483004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20913 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-23 15:01:30 +00:00
jochen@chromium.org
b7039334ae
Revert 20313 - "Ship promises and weak collections"
...
> R=mstarzinger@chromium.org
> BUG=
>
> Committed: https://code.google.com/p/v8/source/detail?r=20211
>
> Review URL: https://codereview.chromium.org/206163004
R=rossberg@chromium.org
TBR=rossberg@chromium.org
LOG=y
BUG=n
Review URL: https://codereview.chromium.org/219303002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20353 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-31 12:40:32 +00:00
rossberg@chromium.org
826cf64fd3
Ship promises and weak collections
...
R=mstarzinger@chromium.org
BUG=
Committed: https://code.google.com/p/v8/source/detail?r=20211
Review URL: https://codereview.chromium.org/206163004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20313 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-27 16:42:34 +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
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
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