Commit Graph

3964 Commits

Author SHA1 Message Date
ishell@chromium.org
3d824f020d Fix for the compilation failure due to multi-line comments in test-migrations.cc
TBR=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26668}
2015-02-16 15:50:06 +00:00
ishell
35841b5055 Property reconfiguring implemented.
Previous approach for property reconfiguration was to create a free-floating map with generalized representations of all fields. This patch does it right.

When property is reconfigured either by changing its kind (kData <-> kAccessor) or its attributes it implies creation of a new branch in transition tree. If such a branch already existed before reconfiguration then it should be merged with the old (or source) branch of the transition tree. Merging procedure includes all the heavy machinery such as property location changes (kDescriptor -> kField), field representation/field type generalization, map deprecation, etc.

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

Cr-Commit-Position: refs/heads/master@{#26667}
2015-02-16 15:25:54 +00:00
verwaest
a1f7b01ccf Remove prototype key from the prototype transitions since its also embedded in the target map.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26662}
2015-02-16 13:10:06 +00:00
ishell
6834d3abdf ifdefs around LayoutDescriptor::IsConsistenWithMap() removed.
This avoids potential mess with different compilation modes.

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

Cr-Commit-Position: refs/heads/master@{#26656}
2015-02-16 11:29:49 +00:00
yangguo
e66d39a6be Revert "Fix JSArrayBufferView visitor template to fix ARM build."
and "Just visit young array buffers during scavenge. Additionally keep the views in new space in a separate global list and move them to the corresponding array buffers when they get promoted."

This reverts commit 295ab27830
and commit bd61a85faf.

TBR=hpayer@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#26653}
2015-02-16 09:21:02 +00:00
chunyang.dai
a10ed727bc X87: Assembler support for internal references.
port 5c119485b4 (r26478).

original commit message:

  Assembler support for internal references.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26648}
2015-02-15 06:50:11 +00:00
arv
765e002a4f Fix lazy parsing for functions that use super.
The preparser needs to log the usage of super properties and then update
the scope when we create the function later.

BUG=v8:3888
LOG=N
R=dslomov@chromium.org, marja

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

Cr-Commit-Position: refs/heads/master@{#26642}
2015-02-13 18:35:09 +00:00
loislo
2cfebcf92e Fix compilation for the case dcheck_always_on=1.
It is a default option for some try bots.

otherwise compilation fails on
DCHECK(layout_descriptor->IsConsistentWithMap(*map));

BUG=none
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26636}
2015-02-13 10:29:30 +00:00
Erik Arvidsson
1dcce1c8ef Make super() a syntax error in base class constructor
BUG=v8:3330
LOG=N
R=dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26633}
2015-02-12 23:04:54 +00:00
loislo
d23ab23b05 CPUProfiler: Push deopt reason further to ProfileNode.
1) create beefy RelocInfo table when cpu profiler is active, so if a function
was optimized when profiler was active RelocInfo would get separate DeoptInfo
for the each deopt case.

2) push DeoptInfo from CodeEntry to ProfileNode.
When deopt happens we put the info collected on #1 into CodeEntry and record stack sample.
On the sampling thread we grab the deopt data and append it to the corresponding ProfileNode deopts list.

Sample profile dump.
[Top down]:
    0  (root) 0 #1
    1     29 #2
    1      test 29 #3
    2        opt_function 29 #4
    2          opt_function 29 #5
                   deopted at 118 with reason 'not a heap number'
                   deopted at 137 with reason 'division by zero'

BUG=452067
LOG=n

Committed: https://crrev.com/ce8701b247d3c6604f24f17a90c02d17b4417f54
Cr-Commit-Position: refs/heads/master@{#26615}

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

Cr-Commit-Position: refs/heads/master@{#26630}
2015-02-12 19:51:37 +00:00
mstarzinger
d202d79a6a Add missing FrameState to JSTypedLoweringTester::Binop.
R=titzer@chromium.org
TEST=cctest/test-js-typed-lowering

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

Cr-Commit-Position: refs/heads/master@{#26626}
2015-02-12 17:08:53 +00:00
rossberg
eecde44f82 Properly thread language mode to compilation cache
Fixes the TSAN issue.

R=mstarzinger@chromium.org
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26623}
2015-02-12 16:29:54 +00:00
jarin
8bd0bd522e [turbofan] Make the representation type component independent of the semantic component.
R=rossberg@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26621}
2015-02-12 15:21:33 +00:00
jochen
58deea0ad0 Make it possible to define arguments for CompileFunctionInContext
Also make sure that the function body really produces only one function literal.

LOG=y
BUG=none
R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26617}
2015-02-12 14:39:03 +00:00
loislo
cb6ea146dc Revert of CPUProfiler: Push deopt reason further to ProfileNode. (patchset #1 id:1 of https://codereview.chromium.org/919953002/)
Reason for revert:
static initializers broke the build

Original issue's description:
> CPUProfiler: Push deopt reason further to ProfileNode.
>
> 1) create beefy RelocInfo table when cpu profiler is active, so if a function
> was optimized when profiler was active RelocInfo would get separate DeoptInfo
> for the each deopt case.
>
> 2) push DeoptInfo from CodeEntry to ProfileNode.
> When deopt happens we put the info collected on #1 into CodeEntry and record stack sample.
> On the sampling thread we grab the deopt data and append it to the corresponding ProfileNode deopts list.
>
> Sample profile dump.
> [Top down]:
>     0  (root) 0 #1
>     1     29 #2
>     5      test 29 #3
>     3        opt_function 29 #4
>                  deopted at 52 with reason 'not a heap number'
>                  deopted at 71 with reason 'division by zero'
>
> BUG=452067
> LOG=n
>
> Committed: https://crrev.com/ce8701b247d3c6604f24f17a90c02d17b4417f54
> Cr-Commit-Position: refs/heads/master@{#26615}

TBR=jarin@chromium.org,svenpanne@chromium.org,yurys@chromium.org,alph@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=452067

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

Cr-Commit-Position: refs/heads/master@{#26616}
2015-02-12 14:36:37 +00:00
loislo
ce8701b247 CPUProfiler: Push deopt reason further to ProfileNode.
1) create beefy RelocInfo table when cpu profiler is active, so if a function
was optimized when profiler was active RelocInfo would get separate DeoptInfo
for the each deopt case.

2) push DeoptInfo from CodeEntry to ProfileNode.
When deopt happens we put the info collected on #1 into CodeEntry and record stack sample.
On the sampling thread we grab the deopt data and append it to the corresponding ProfileNode deopts list.

Sample profile dump.
[Top down]:
    0  (root) 0 #1
    1     29 #2
    5      test 29 #3
    3        opt_function 29 #4
                 deopted at 52 with reason 'not a heap number'
                 deopted at 71 with reason 'division by zero'

BUG=452067
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26615}
2015-02-12 13:25:17 +00:00
ulan
b79b985988 Use weak cells in dependent code.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26614}
2015-02-12 13:21:13 +00:00
marja
df0cb9999f Parsing: Make Parser not know about Isolate during background parsing.
Parser must be able to operate independent of Isolate and the V8 heap during
parsing. After the heap-independent phase, there is a heap dependent phase,
during which we internalize strings, handle errors, etc.

This makes Isolate (also via CompilationInfo) unaccessible during parsing, and
thus decreases the probability of accidental code changes which would add
heap-dependent operations into the heap-independent phase.

Since Isolate is also accessible via CompilationInfo, now CompilationInfo is
only passed to the entry points of parsing, and not stored in Parser.

R=rossberg@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26612}
2015-02-12 13:02:44 +00:00
svenpanne
222001ace4 Removed one bogus CompilationInfo constructor.
Use a fake code stub instead, basically following the null object pattern.

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

Cr-Commit-Position: refs/heads/master@{#26610}
2015-02-12 12:57:19 +00:00
danno
e87c0bac35 Remove redundant source position information in RelocInfo
Previously, emitting two more more unique source positions at the same pc would
generate two or more RelocInfo entries. Now, only the last emitted source
position for any pc is added to the RelocInfo.

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

Cr-Commit-Position: refs/heads/master@{#26608}
2015-02-12 12:15:31 +00:00
Ben L. Titzer
d9790bc7ed Inline the ParseInfo structure as parameters to the Parser constructor.
R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26606}
2015-02-12 11:57:11 +00:00
hpayer
bd61a85faf Just visit young array buffers during scavenge. Additionally keep the views in new space in a separate global list and move them to the corresponding array buffers when they get promoted.
This reduces young generation garbage collections when many array buffers are allocated.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26605}
2015-02-12 10:00:44 +00:00
svenpanne
d1b5aa0716 Removed most of the bogus CompilationInfo constructor calls.
A CompilationInfo constructed from just an Isolate* and a Zone* is in
weird an inconsistent state (calling e.g. flags() on it will crash),
so we need to avoid them. This CL removes almost all of them, the
remaining 2 call sites in (for testing only) will be handled in a
separate CL. Things which have been changed:

  * Linkage is basically a decorator for CallDescriptor now.

  * ChangeLowering doesn't need Linkage at all.

  * JSGenericLowering doesn't need a full CompilationInfo*, just a
    single flag.

  * JSContextSpecializer doesn't need the full CompilationInfo, just a
    Context.

  * Removed unused CompilationInfo from SimplifiedLoweringTester.

This nicely decouples things already a bit more, but there's still
work to do...

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

Cr-Commit-Position: refs/heads/master@{#26580}
2015-02-11 14:12:15 +00:00
titzer
31637fb396 [turbofan] Use heavy-handed graph duplication to do loop peeling for OSR.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26576}
2015-02-11 13:26:45 +00:00
yangguo
12e1b959d2 Fix NewStringRangeError failure due to failing malloc.
R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26575}
2015-02-11 12:06:29 +00:00
yangguo
8aae1b3096 Throw on range error when creating a string via API.
R=jkummerow@chromium.org
BUG=v8:3853
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#26574}
2015-02-11 10:21:25 +00:00
dcarney
79417664b2 remove undetectable strings
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26571}
2015-02-11 09:28:12 +00:00
dcarney
307d2bdd81 add transitions for global properties in ics
R=verwaest@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26569}
2015-02-11 09:15:33 +00:00
svenpanne
41e74ad4e8 Relaxed parameter types a bit.
Somehow these changes didn't make it into https://codereview.chromium.org/915583002 ... :-/

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

Cr-Commit-Position: refs/heads/master@{#26567}
2015-02-11 08:52:38 +00:00
loislo
754cc1a9e4 Remove obsolete method ProfileTree::AddPathFromStart and the corresponding test.
BUG=
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26565}
2015-02-11 07:27:09 +00:00
arv
68e4897586 Remove Function.prototype.toMethod
Function.prototype.toMethod was removed from ES6.

This removes the function and updates the tests to either
use %ToMethod or a dedicated syntax (using concise method
or a class).

BUG=v8:3330
LOG=N
R=dslomov@chromium.org, adamk

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

Cr-Commit-Position: refs/heads/master@{#26559}
2015-02-10 22:13:43 +00:00
arv
9acfd4fe08 super is only allowed in methods, accessors and constructor
super() is only allowed in a class constructor.
super.p is allowed in methods, accessors and constructors.

The parser now checks the FunctionState to see what kind of function
we are currently inside.

BUG=v8:3330
LOG=N
R=dslomov@chromium.org, marja@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26557}
2015-02-10 19:51:39 +00:00
adamk
a18b797fd9 Enable compiling mjsunit tests as ES6 modules
Adding the line "// MODULE" to an mjsunit file will now cause
run-tests.py to prefix the test case with "--module" in the
d8 commandline.

d8 has itself been updated to treat files preceded with "--module" as
modules (that is, it compiles them with ScriptCompiler::CompileModule,
and turns on --harmony-modules).

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

Cr-Commit-Position: refs/heads/master@{#26555}
2015-02-10 19:11:55 +00:00
vogelheim
2ea8df76ba Fix cctest + unittest to work with an external snapshot.
To do so, extract startup_data_util from d8 and use it those executables.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26547}
2015-02-10 15:38:09 +00:00
marja
5d68529be2 Parsing: Make Scope not know about Isolate.
Scope, like Parser, must be able to operate independent of Isolate and the V8
heap (for background parsing). After the heap-independent phase, there is a heap
dependent phase, during which we do operations such as scope anaylysis.

This CL makes the phases explicit by not telling Scope about the Isolate too
early (during the heap-independent phase, Scope should know nothing about
Isolate). This decreases the probability of accidental code changes which would
add heap-dependent operations into the heap-independent phase.

R=rossberg@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26546}
2015-02-10 14:39:21 +00:00
loislo
86cae1633c Propagate DeoptInfo to cpu-profiler
1) Deoptimizer::Reason was replaced with Deoptimizer::DeoptInfo
because it also has raw position. Also the old name clashes with DeoptReason enum.

2) c_entry_fp assignment call was added to EntryGenerator::Generate
So we can calculate sp and have a chance to record the stack for the deopting function.
btw it makes the test stable.

3) new kind of CodeEvents was added to cpu-profiler

4) GetDeoptInfo method was extracted from PrintDeoptLocation.
So it could be reused in cpu profiler.

BUG=452067
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26545}
2015-02-10 14:33:00 +00:00
balazs.kilvady
e094f909fc MIPS: Assembler support for internal references.
Port 49cbe537e7

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26534}
2015-02-09 20:50:03 +00:00
jochen
30674bdeb4 Introduce a compile method that takes context extensions
BUG=chromium:456192
R=yangguo@chromium.org
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#26530}
2015-02-09 15:16:33 +00:00
yangguo
7819c593e8 Add payload checksum to code cache data.
R=jochen@chromium.org
BUG=chromium:441896
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26529}
2015-02-09 14:49:47 +00:00
dcarney
6f97beb51e [turbofan] make zone allocation of InstructionOperand explicit
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26528}
2015-02-09 14:20:19 +00:00
dcarney
313b24dbc2 add support for all can read interceptors
R=verwaest@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26522}
2015-02-09 11:33:50 +00:00
bmeurer
feb2890711 [turbofan] Initial support for Switch.
Adds Switch and Case operators to TurboFan and handles them
appropriately in instruction selection and code generation.

BUG=v8:3872
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26515}
2015-02-09 08:56:12 +00:00
arv
64abe65210 Allow eval and arguments as property names
We incorrectly disallowed eval and arguments in accessor and method
names. This was because we checked the name inside the
ParseFunctionLiteral. We now flag accessors so that lazy parsing of
these functions are treated correctly.

BUG=v8:1984
R=adamk, dslomov@chromium.org
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26497}
2015-02-06 18:04:21 +00:00
adamk
70079dab13 Add basic compilation support for modules
This adds an "experimental" API hook (v8::ScriptCompiler::CompileModule)
allowing compilation of modules. The code gen is incredibly basic: the
module body is represented by a Block in the AST. But this at least gets
more of the pipeline working, and opens the door to writing mjsunit tests
(once d8 is modified to support module compilation).

BUG=v8:1569
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26496}
2015-02-06 17:52:38 +00:00
loislo
fb73392bfd Simplify cpu-profiler test code with help of wrappers.
BTW: a few fixes for string comparison

BUG=none
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26495}
2015-02-06 16:51:07 +00:00
marja
5c56665059 PreParser / Parser consistency: Make PreParser aware of Zone and AstValueFactory.
Previously it just had hacks to have NULLs instead of them and pretended to know
nothing about Zone. The hacks provide no real benefit (probably historically
based on some weird misconception about the relationship between Zone and
Isolate), and make it harder for the PreParser to start to know more about
variables and scoping.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26494}
2015-02-06 15:58:47 +00:00
yangguo
7f4d207c8b Add hash fields to code cache header.
R=jochen@chromium.org
BUG=chromium:441896
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26490}
2015-02-06 15:20:52 +00:00
titzer
c6c1d8ffd6 [turbofan] Fix loop analysis bug with certain phi structures.
R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26489}
2015-02-06 15:19:51 +00:00
bmeurer
008f4732f7 [x64] Assembler support for internal references and RIP relative addressing.
R=dcarney@chromium.org
BUG=v8:3872
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26486}
2015-02-06 12:48:52 +00:00
Dan Carney
878963a8a5 split interceptor tests off of test-api
BUG=
R=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26484}
2015-02-06 12:08:07 +00:00
dcarney
996fa7d36e [turbofan] Remove global InstructionOperand caches.
Review URL: https://codereview.chromium.org/904693002

Cr-Commit-Position: refs/heads/master@{#26479}
2015-02-06 09:00:50 +00:00
bmeurer
5c119485b4 [ia32] Assembler support for internal references.
BUG=v8:3872
LOG=n
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26478}
2015-02-06 08:51:51 +00:00
Benedikt Meurer
49cbe537e7 [arm] Assembler support for internal references.
BUG=v8:3872
LOG=n
R=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26475}
2015-02-06 07:21:23 +00:00
ulan
3cd88975a1 Remove IC age from Code.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26468}
2015-02-05 16:40:43 +00:00
dslomov
8241147f46 Protect against uninitialized lexical variables at top-level.
R=rossberg@chromium.org
BUG=chromium:452510
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#26466}
2015-02-05 16:35:24 +00:00
marja
d21b9a1422 Add strong mode.
It doesn't do anything for now, but it implies strict mode. Added tests to
test-parsing.cc to test that.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26460}
2015-02-05 14:11:47 +00:00
danno
f184ff0650 [turbofan]: Improved source position information
Make sure the initial graph is fully populated with source position information and automatically propagate that information down through newly allocated nodes during reduction passes in the most unobtrusive way that's currently possible.

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

Cr-Commit-Position: refs/heads/master@{#26459}
2015-02-05 13:16:55 +00:00
yurys
a559367956 Add NativeWeakMap to v8.h
A new map wich references its keys weakly is added to v8.h. Internally it uses the same storage as JSWeakMap but doesn't depend on the JavaScript part of WeakMap implementation in weak-collection.js, hence it can be instantiated without entering any context.

BUG=chromium:437416
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#26451}
2015-02-05 09:40:27 +00:00
marja
0e3b5386ae Scanner / Unicode decoding: use size_t instead of unsigned.
size_t is the correct data type for this purpose. Our APIs (in particular
ExternalSourceStream::GetMoreData) are already using it, and there were some
static_casts to convert between them.

This CL doesn't intend to fix all of V8, just the minimal sense-making part
around scanner character streams.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26449}
2015-02-05 07:54:34 +00:00
marja
39010859f8 test-parsing.cc: Test fix.
The syntax of this test snippet was so wrong ("function function") that it
wasn't testing what it was supposed to test.

R=rossberg@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26433}
2015-02-04 16:31:47 +00:00
yurys
1f7e3b3483 Revert of Add WeakKeyMap to v8.h (patchset #2 id:20001 of https://codereview.chromium.org/891473005/)
Reason for revert:
Revert this patch due to shared win build compilation failure

http://build.chromium.org/p/client.v8/builders/V8%20Win32%20-%20nosnap%20-%20shared/builds/5030/steps/compile/logs/stdio

Original issue's description:
> Add WeakKeyMap to v8.h
>
> A new map wich references its keys weakly is added to v8.h. Internally it uses the same storage as JSWeakMap but doesn't depend on the JavaScript part of WeakMap implementation in weak-collection.js, hence it can be instantiated without entering any context.
>
> BUG=chromium:437416
> LOG=Y
>
> Committed: https://crrev.com/ee7ed39ac8327124e74dd7ad5f1de0dede988cb7
> Cr-Commit-Position: refs/heads/master@{#26425}

TBR=jochen@chromium.org,mstarzinger@chromium.org,rossberg@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:437416

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

Cr-Commit-Position: refs/heads/master@{#26430}
2015-02-04 15:12:52 +00:00
yurys
e225675ea6 Revert of Simplify WeakMap and WeakSet tests slightly. (patchset #1 id:1 of https://codereview.chromium.org/903463002/)
Reason for revert:
Revert this patch as the original CL has to be reverted to due to shared win build failure

http://build.chromium.org/p/client.v8/builders/V8%20Win32%20-%20nosnap%20-%20shared/builds/5030/steps/compile/logs/stdio

Original issue's description:
> Simplify WeakMap and WeakSet tests slightly.
>
> R=rossberg@chromium.org
> TEST=cctest/test-weakmaps,cctest/test-weaksets
>
> Committed: https://crrev.com/a90d7a871da19d33e93c8779186408c8d1615cac
> Cr-Commit-Position: refs/heads/master@{#26428}

TBR=rossberg@chromium.org,mstarzinger@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#26429}
2015-02-04 15:11:38 +00:00
mstarzinger
a90d7a871d Simplify WeakMap and WeakSet tests slightly.
R=rossberg@chromium.org
TEST=cctest/test-weakmaps,cctest/test-weaksets

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

Cr-Commit-Position: refs/heads/master@{#26428}
2015-02-04 13:37:02 +00:00
dcarney
8064582626 Move the contents of api-natives.js to c++
R=verwaest@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26426}
2015-02-04 13:01:44 +00:00
yurys
ee7ed39ac8 Add WeakKeyMap to v8.h
A new map wich references its keys weakly is added to v8.h. Internally it uses the same storage as JSWeakMap but doesn't depend on the JavaScript part of WeakMap implementation in weak-collection.js, hence it can be instantiated without entering any context.

BUG=chromium:437416
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#26425}
2015-02-04 12:53:05 +00:00
dcarney
4116900d8f [turbofan] Don't allocate UnallocatedOperands in Zone memory during instruction selection
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26424}
2015-02-04 12:39:07 +00:00
mvstanton
6fc97a1965 Retry "Use a WeakCell in the CallIC type vector."
The first try failed because I needed to make a better distinction
between clearing ICs according to policy at GC time or unconditional
clearing (say, via %ClearFunctionTypeFeedback).

It was also blocked by an issue in super constructor calls.
This fix (https://codereview.chromium.org/892113002/) needs to land
before checking in this CL.

R=ulan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26420}
2015-02-04 09:46:22 +00:00
marja
c7851da4ae Introduce LanguageMode, drop StrictMode.
This enables adding more language modes in the future.

For maximum flexibility, LanguageMode is a bitmask, so we're not restricted to
use a sequence of language modes which are progressively stricter, but we can
express the language mode as combination of features.

For now, LanguageMode can only be "sloppy" or "strict", and there are
STATIC_ASSERTS in places which need to change when more modes are added.

LanguageMode is a bit like the old LanguageMode when "extended" mode was still
around (see https://codereview.chromium.org/8417035 and
https://codereview.chromium.org/181543002 ) except that it's transmitted through
all the layers (there's no StrictModeFlag).

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26419}
2015-02-04 09:34:26 +00:00
caitpotter88
600474ad44 Fix test-api/ObjectProtoToStringES6
Fixes tree closure caused by r26415

BUG=v8:3502
R=arv@chromium.org
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26416}
2015-02-03 22:18:21 +00:00
caitpotter88
b5c43674f9 Update harmony ObjectProtoToString() to 2/2/2015 spec
Applies to API implementation of O.p.toString

- Removes special handling of non-string @@toStringTag values (use builtinTag)
- Removes special handling of @@toStringTags which match [[Class]] names (remove ~ prefix)
- Add tests for non-string @@toStringTag values in test-api.cc

BUG=v8:3502
R=arv@chromium.org
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26415}
2015-02-03 21:05:25 +00:00
mstarzinger
9d6f55b08a Turn throws into basic block terminators.
R=bmeurer@chromium.org
TEST=cctest/test-run-jsexceptions/Throw

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

Cr-Commit-Position: refs/heads/master@{#26406}
2015-02-03 15:22:55 +00:00
yurys
aeec653f49 Revert of Add WeakMap to v8.h (patchset #3 id:40001 of https://codereview.chromium.org/886473005/)
Reason for revert:
Broke compilation on component build http://build.chromium.org/p/client.v8/builders/V8%20Win32%20-%20nosnap%20-%20shared/builds/5007/steps/compile/logs/stdio

Original issue's description:
> Add WeakMap to v8.h
>
> A new map wich references its keys weakly is added to v8.h. Internally it uses the same storage as JSWeakMap but doesn't depend on the JavaScript part of WeakMap implementation in weak-collection.js, hence it can be instantiated without entering any context.
>
> BUG=chromium:437416
> LOG=Y
>
> Committed: https://crrev.com/37d4c57630636f21e3add8d3d1c7c978ff5fc8e0
> Cr-Commit-Position: refs/heads/master@{#26401}

TBR=jochen@chromium.org,mstarzinger@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:437416

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

Cr-Commit-Position: refs/heads/master@{#26402}
2015-02-03 14:42:49 +00:00
yurys
37d4c57630 Add WeakMap to v8.h
A new map wich references its keys weakly is added to v8.h. Internally it uses the same storage as JSWeakMap but doesn't depend on the JavaScript part of WeakMap implementation in weak-collection.js, hence it can be instantiated without entering any context.

BUG=chromium:437416
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#26401}
2015-02-03 14:28:20 +00:00
mstarzinger
77d612691d First stab at try-catch and try-finally in TurboFan.
R=titzer@chromium.org,jarin@chromium.org
TEST=cctest/test-run-jsexceptions

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

Cr-Commit-Position: refs/heads/master@{#26398}
2015-02-03 13:10:01 +00:00
dcarney
70bba702e0 follow up named interceptor miss with api callback getter
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26395}
2015-02-03 10:56:27 +00:00
ishell
ba8409d2f6 Avoid issuing write barriers for unboxed double fields in Heap::CopyJSObject().
Review URL: https://codereview.chromium.org/880043003

Cr-Commit-Position: refs/heads/master@{#26394}
2015-02-03 10:28:33 +00:00
kozyatinskiy
4e9e1eedf1 [V8] Added line, column and script symbols for SyntaxError
For exception in promise we generate v8::Message API object from exception object. And in cases of Syntax or Reference Error we don't have enough information in exception object - we can't restore Error location from top stack frame.
In this patch three aditional private fields introduced for exception object. In case of Syntax Error we store line, column and script on Exception object and receive this information when restoring message.

BUG=443140
LOG=Y
R=yurys@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26393}
2015-02-03 08:57:36 +00:00
dcarney
81091e62b9 [turbofan] push virtual register field down to InstructionOperand
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26377}
2015-02-02 11:38:46 +00:00
balazs.kilvady
eaa2c63a96 MIPS: Remove unnecessary printf lines from assembler tests.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26368}
2015-01-30 19:43:45 +00:00
balazs.kilvady
320d42e58a MIPS: Reland "Initial switch to Chromium-style CHECK_* and DCHECK_* macros.".
Port c65ae4f10c

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26367}
2015-01-30 19:13:38 +00:00
caitpotter88
9355457b55 Implement parsing of ES6 Rest Parameters
BUG=v8:2159
LOG=N
R=marja@chromium.org, arv@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26362}
2015-01-30 15:21:50 +00:00
bmeurer
5d12b2855d Fix the test-code-stubs tests.
R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26356}
2015-01-30 13:36:13 +00:00
ishell
32fe247d91 Layout descriptor sharing issue fixed.
BUG=chromium:437713, v8:3832
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#26354}
2015-01-30 12:55:25 +00:00
Benedikt Meurer
cba14fbef7 Make GCC happy with test-cpu-profiler.
TBR=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26347}
2015-01-30 09:49:09 +00:00
bmeurer
c65ae4f10c Reland "Initial switch to Chromium-style CHECK_* and DCHECK_* macros.".
R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26346}
2015-01-30 09:29:41 +00:00
dcarney
491eb81780 Add MEGAMORPHIC state support for KeyedLoadIC
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26345}
2015-01-30 09:17:16 +00:00
michael_dawson
f1ba8d8f86 Contribution of PowerPC port (continuation of 422063005) - AIX Common1
Contribution of PowerPC port (continuation of 422063005 and 817143002). This patch covers
the key changes needed to the common files needed to support AIX. Subsequent
patches will cover:
- changes to update the ppc directories so they are current with the changes
in the rest of the project.
- remaining AIX changes not resolved by 4.8 compiler
- individual optimizations for PPC

This is based off of the GitHub repository
https://github.com/andrewlow/v8ppc

R=danno@chromium.org, svenpanne@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26343}
2015-01-30 08:02:08 +00:00
Benedikt Meurer
883852293a Revert "Make GCC happy again." and "Initial switch to Chromium-style CHECK_* and DCHECK_* macros.".
This reverts commit 6a4c0a3bae and commit
0deaa4b629 for breaking GCC bots.

TBR=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26342}
2015-01-30 07:19:57 +00:00
bmeurer
0deaa4b629 Initial switch to Chromium-style CHECK_* and DCHECK_* macros.
R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26340}
2015-01-30 06:25:36 +00:00
adamk
0c928d533a Implemented new syntax for ImportDeclarations
Also had to split ParseImportsList and ParseExportClause into separate
methods as they have different rules about reserved words and arguments/eval.

Added lots more test cases, including some export cases that were missed before
due to incorrect checking of reserved words.

BUG=v8:1569
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26338}
2015-01-30 03:27:06 +00:00
arv
13616615fd Lexical declarations should not be allowed in Statement
For example let and class should only be allowed inside function/block/script.

We have to continue to support const in statements in sloppy mode for backwards compatibility.

BUG=3831
LOG=Y
R=dslomov@chromium.org, adamk

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

Cr-Commit-Position: refs/heads/master@{#26337}
2015-01-30 03:10:13 +00:00
arv
b004b1d821 Move object literal checking into checker classes
This removes the duplicate property check from object literals.

Instead we repurpose the ObjectLiteralChecker into two cases, implemented
by two subclasses to ObjectLiteralCheckerBase called ObjectLiteralChecker
and ClassLiteralChecker.

The object literal checker now only checks for duplicate __proto__ fields in
object literals.

The class literal checker checks for duplicate constructors, non constructor
fields named constructor as well as static properties named prototype.

BUG=v8:3819
LOG=Y
R=adamk, dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26336}
2015-01-29 23:12:43 +00:00
machenbach
24bfa90b31 Revert of Use a WeakCell in the CallIC type vector. (patchset #4 id:80001 of https://codereview.chromium.org/881433002/)
Reason for revert:
Breaks a regression test on linux isloates, and linux with gcc 4.8.

Original issue's description:
> Use a WeakCell in the CallIC type vector.
>
> This allows us to clear the IC on a more sedate schedule, just
> like Load and Store ICs.
>
> R=ulan@chromium.org
> BUG=
>
> Committed: https://crrev.com/bcc79d33ca6d97d9ecfcfcf110a6ea84a0225389
> Cr-Commit-Position: refs/heads/master@{#26332}

TBR=ulan@chromium.org,mvstanton@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26334}
2015-01-29 18:01:23 +00:00
mvstanton
bcc79d33ca Use a WeakCell in the CallIC type vector.
This allows us to clear the IC on a more sedate schedule, just
like Load and Store ICs.

R=ulan@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26332}
2015-01-29 17:36:51 +00:00
dcarney
f5ca41450a store InstructionOperands directly in Instruction
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26329}
2015-01-29 16:00:19 +00:00
kozyatinskiy
eaae397c42 [V8] Added Script::is_debugger_script flag for embedders
In DevTools we need one more flag for script origin - is debugger script. We already have "is shared origin" flag. The new flag added by analogy with the old but new has accessor in script object.

R=yurys@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26324}
2015-01-29 14:01:33 +00:00
danno
328cf76e35 [turbofan] Improve JSON output
Review URL: https://codereview.chromium.org/882973002

Cr-Commit-Position: refs/heads/master@{#26323}
2015-01-29 12:15:14 +00:00
bmeurer
1df5fed50a [turbofan] Cleanup the NodeProperties.
R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26316}
2015-01-29 09:18:09 +00:00
bmeurer
d0f3e5302c Minor refactoring for Zone class and friends.
R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26315}
2015-01-29 07:41:52 +00:00
Adam Klein
f7dc15febe Implement ParseExportDeclaration per latest ES6 spec draft
One missing feature: anonymous function & class declarations
in "export default".

BUG=v8:1569
LOG=n
R=arv@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26313}
2015-01-28 19:18:48 +00:00