Commit Graph

21184 Commits

Author SHA1 Message Date
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
arv
d273636e01 TF: Add support for [[HomeObject]]
BUG=None
LOG=N
R=mstarzinger@chromium.org, dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26641}
2015-02-13 18:34:00 +00:00
bratell
cc36222776 Make the statistics generation data driven.
StatisticsExtension::GetCounters() has grown to repeat a lot of code
so to make it more maintainable and generate less machine code,
make it data driven. This makes a 64 bit Linux build 50 KB smaller.

Total change: -51677 bytes
==========================
  1 shrunk, for a net change of -51677 bytes (64222 bytes before, 12545 bytes after) across 1 sources
  279691 unchanged, totalling 51423668 bytes

Per-source Analysis:

-------------------------------------------------------------------------------------------------------------------
 -51677 - Source: /home/bratell/src/chromium/src/v8/src/extensions/statistics-extension.cc - (gained 0, lost 51677)
-------------------------------------------------------------------------------------------------------------------
  Shrunk symbols:
     -51677: v8::internal::StatisticsExtension::GetCounters(v8::FunctionCallbackInfo<v8::Value> const&) type=t, (was 64222 bytes, now 12545 bytes)

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26640}
2015-02-13 10:57:05 +00:00
loislo
a82d3dc8f9 Move identical code from platform specific assemblers to assembler.cc
BUG=none
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26639}
2015-02-13 10:45:36 +00:00
Ross McIlroy
1da1e34788 Protect access to the external_snapshot_blob global with a lock.
The external_snapshot_blob is a global and might be accessed from multiple
threads.  Protect it with a lock.

BUG=457656
LOG=N
R=vogelheim@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26638}
2015-02-13 10:35:58 +00:00
Sven Panne
e9fd6b0836 Refactored the final parts of the TurboFan pipeline a bit.
This removed some inconsistent/duplicated code and made the testing
side entrance much simpler: Now it simply constructs a pipeline and
hands off to the "tail" of the normal pipeline.

R=danno@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26637}
2015-02-13 10:35:34 +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
Akos Palfi
db13f0847b MIPS: new classes: no longer experimental.
Port 2707d4c9f4

Original commit message:
This CL fixes tests that no longer valid and also fixes two issues:
1. 'super()' in non derived constructors.
2. Failure to step into derived constructors.

BUG=
R=paul.lind@imgtec.com

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

Cr-Commit-Position: refs/heads/master@{#26635}
2015-02-13 01:26:20 +00:00
Akos Palfi
58d8e169f1 MIPS: new classes: implement correct check for uninitialized this in 'super()'
Port fdcf3e59ba

BUG=
R=paul.lind@imgtec.com

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

Cr-Commit-Position: refs/heads/master@{#26634}
2015-02-13 01:22:40 +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
Erik Arvidsson
fd5a0de2af Fix location of super syntax errors
BUG=v8:3885
LOG=N
R=adamk@chromium.org, dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26632}
2015-02-12 20:53:17 +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
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
machenbach
44bc8646c3 Create v8 roll branches in refs/heads.
This is needed as normal chromium checkouts don't fetch
branch-heads.

These branches will also be replicated by GitHub and are
fetched when cloning from the repository.

The expected object size will be the same or smaller than
before as we currently push the same information onto the
candidates branch (which already is in refs/heads). The only
difference is the increasing number of refs in refs/heads.

BUG=chromium:451975
TBR=tandrii@chromium.org
NOTRY=true
LOG=n

TEST=./script_test.py
TEST=tools/release/create_release.py -r machenbach@chromium.org -a machenbach@chromium.org --dry-run

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

Cr-Commit-Position: refs/heads/master@{#26629}
2015-02-12 18:34:32 +00:00
Dmitry Lomov
2707d4c9f4 new classes: no longer experimental.
This CL fixes tests that no longer valid and also fixes two issues:
1. 'super()' in non derived constructors.
2. Failure to step into derived constructors.

R=arv@chromium.org, yurys@chromium.org
BUG=v8:3834
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#26628}
2015-02-12 18:06:52 +00:00
ishell@chromium.org
d4cb046b19 Fix for the compilation issue in shared mode introduced by r26624
TBR=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26627}
2015-02-12 17:27:22 +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
yangguo
515d260634 Mark pages created during bootstrapping as never-evacuate.
This is to ensure that immutable immortal objects created during
bootstrapping are not relocated.

R=hpayer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26625}
2015-02-12 16:47:56 +00:00
ishell
2e54397ca3 Enable layout descriptor consistency checks in heap verification mode.
Review URL: https://codereview.chromium.org/917743004

Cr-Commit-Position: refs/heads/master@{#26624}
2015-02-12 16:40:41 +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
ulan
1291400fbb Fix GCMole after b79b985988
NOTREECHECKS=true
BUG=
TBR=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26622}
2015-02-12 16:00:38 +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
marja
30c71859ed Parser / PreParser: trivial unifications
(To minimize the diff of actually interesting unifications.)

R=rossberg@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26620}
2015-02-12 15:12:45 +00:00
rossberg
dff690ec07 [strong] no sloppy equality
R=marja@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26619}
2015-02-12 15:10:04 +00:00
chunyang.dai
e1c2e83888 X87: silence C++ compiler warnings.
To solence C++ compiler warnings because is_mutable_ is only for CHECK.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26618}
2015-02-12 14:40:07 +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
mstarzinger
9159c419e8 Fix missing visitation of FrameState in simplified lowering.
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26613}
2015-02-12 13:14:46 +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
bmeurer
3336d2e11e [turbofan] Merge node-aux-data-inl.h into node-aux-data.h.
Google style guide forbids -inl.h headers.

R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26611}
2015-02-12 13:01:29 +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
bmeurer
4465836c8a Fix invalid use of int in Zone.
Review URL: https://codereview.chromium.org/924453002

Cr-Commit-Position: refs/heads/master@{#26609}
2015-02-12 12:47:18 +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
hpayer
295ab27830 Fix JSArrayBufferView visitor template to fix ARM build.
NOTREECHECKS=true
TBR=ulan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26607}
2015-02-12 11:58:34 +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
mstarzinger
34c1db2fd7 Fix nasty off-by-one in the TurboFan JSON tracer.
R=danno@chromium.org
TEST=cctest/test-run-intrinsics/CallFunction

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

Cr-Commit-Position: refs/heads/master@{#26604}
2015-02-12 09:16:29 +00:00
cdai2
71784ec03c X87: new classes: implement correct check for uninitialized this in 'super()'
port fdcf3e59ba (r26599)

original commit message:

    new classes: implement correct check for uninitialized this in 'super()'

BUG=
R=weiliang.lin@intel.com

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

Cr-Commit-Position: refs/heads/master@{#26603}
2015-02-12 08:11:40 +00:00
bmeurer
42c30b8f39 [ycm] The YouCompleteMe configuration is not VIM specific.
Rename tools/vim/v8.ycm_extra_conf.py to .ycm_extra_conf.py, so every
YCM plugin (no matter if it's VIM or Emacs) should pick it up
automatically.

Also move the common tools/vim/ninja_output.py to tools/ninja/ as it's
also not related to VIM.

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

Cr-Commit-Position: refs/heads/master@{#26602}
2015-02-12 07:21:13 +00:00
cdai2
fb55eae323 X87: new classes: implement default constructors
port 9b158fa79a (r26594)

original commit message:

  new classes: implement default constructors

BUG=
R=weiliang.lin@intel.com

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

Cr-Commit-Position: refs/heads/master@{#26601}
2015-02-12 03:52:13 +00:00
dcarney
01d7be28a6 fix typo in mjsunit expectations
TBR=machenbach@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26600}
2015-02-11 21:29:35 +00:00
dslomov
fdcf3e59ba new classes: implement correct check for uninitialized this in 'super()'
R=arv@chromium.org
BUG=v8:3834
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26599}
2015-02-11 20:47:32 +00:00
akos.palfi
993a48f8c0 MIPS: new classes: implement default constructors.
Port 9b158fa79a

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26598}
2015-02-11 20:42:04 +00:00
akos.palfi
67f7b5b15c MIPS: new classes: implement new.target passing to superclass constructor.
Port bf49be39f3

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26597}
2015-02-11 19:54:31 +00:00
chunyang.dai
8be79b005d X87: new classes: implement new.target passing to superclass constructor
port bf49be39f3 (r26572)

original commit message:

   new classes: implement new.target passing to superclass constructor

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26596}
2015-02-11 17:41:58 +00:00
chunyang.dai
464f76b734 Copy the corresponding opt_count_and_bailout_reason info when invoking Runtime_SetCode.
This error is exposed by this CL:  https://codereview.chromium.org/817293005.

   This CL set all Buildin JS function to optimization_disabled.
   And set the bailout reason to "kBuiltinFunctionCannotBeOptimized". But in Runtime_SetCode() function.
   It copied the the compiler_hints which include the "bool optimization_disabled" value,
   But the corresponding Bailout reason is not copied.
   This leads to the check error in "CompilationInfo::AbortOptimization(...)" function.

  This issue is exposed on turbofan unsupported X87 platform. Crankshaft is invoked to compile
 the typed array function Uint8Array.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26595}
2015-02-11 17:32:11 +00:00
dslomov
9b158fa79a new classes: implement default constructors.
R=arv@chromium.org,rossberg@chromium.org
BUG=v8:3834
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26594}
2015-02-11 17:23:00 +00:00
loislo
65b10efea1 Fix for arm64 after v8:r26448
The offensive cl is https://codereview.chromium.org/874323003/

Test:
./out/arm64.debug/d8 --test --random-seed=-235865360 --turbo-deoptimization --turbo-filter=* --always-opt --debug-code --verify-heap --gc-interval=500 --stress-compaction test/mjsunit/mjsunit.js test/mjsunit/regress/regress-builtinbust-7.js --trace-deopt

BUG=452067
TBR=dcarney, svenpanne
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26593}
2015-02-11 17:11:33 +00:00