Commit Graph

18017 Commits

Author SHA1 Message Date
dusan.milosavljevic
85ed0097d5 Make SNaN verification universal for all arches.
The mips HW prior to revision 5 has opposite encoding for NaNs.

TEST=mjsunit/regress/*, regress-1167, regress-undefined-nan2
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26568}
2015-02-11 09:05:26 +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
dslomov
8e4ec9dd13 Revert of new classes: implement new.target passing to superclass constructor. (patchset #9 id:150001 of https://codereview.chromium.org/908883002/)
Reason for revert:
Breaks Linux64 release

Original issue's description:
> new classes: implement new.target passing to superclass constructor.
>
> R=arv@chromium.org,rossberg@chromium.org
> BUG=v8:3834
> LOG=N
>
> Committed: https://crrev.com/8aed43e82c6d2742fe5988603cb8841324cc942b
> Cr-Commit-Position: refs/heads/master@{#26560}

TBR=arv@chromium.org,rossberg@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3834

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

Cr-Commit-Position: refs/heads/master@{#26561}
2015-02-11 01:36:32 +00:00
dslomov
8aed43e82c new classes: implement new.target passing to superclass constructor.
R=arv@chromium.org,rossberg@chromium.org
BUG=v8:3834
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26560}
2015-02-11 01:23:11 +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
rossberg
5cd84502bf [strong] Introduce --use-strong flag
R=marja@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26556}
2015-02-10 19:13:01 +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
balazs.kilvady
661668f7ab MIPS64: Propagate DeoptInfo to cpu-profiler
Port 86cae1633c

Original commit message:
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/907383003

Cr-Commit-Position: refs/heads/master@{#26554}
2015-02-10 19:10:48 +00:00
balazs.kilvady
4dbfde3711 MIPS: Parsing: Make Scope not know about Isolate.
Port 5d68529be2

Original commit message:
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.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26553}
2015-02-10 19:09:41 +00:00
machenbach
1e4ebb6d5e Revert of Fix IsWeakObjectInOptimizedCode predicate to also include property cells. (patchset #1 id:1 of https://codereview.chromium.org/909123002/)
Reason for revert:
Seems to fail several slow asserts (not on the try server):
http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20debug/builds/1841

Original issue's description:
> Fix IsWeakObjectInOptimizedCode predicate to also include property cells.
>
> BUG=v8:3882
> LOG=NO
>
> Committed: https://crrev.com/f8c404849dd01b538e52d95412225c06a0101808
> Cr-Commit-Position: refs/heads/master@{#26549}

TBR=dcarney@chromium.org,ulan@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3882

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

Cr-Commit-Position: refs/heads/master@{#26551}
2015-02-10 16:58:51 +00:00
ishell
3d7936479e Revert of Temporarily disable double fields unboxing. (patchset #1 id:1 of https://codereview.chromium.org/893843004/)
Reason for revert:
Experiment is over, turning it on back.

Original issue's description:
> Temporarily disable double fields unboxing.
>
> Committed: https://crrev.com/51c59ede18831d1c1a1d70fa9fa456f946ac486b
> Cr-Commit-Position: refs/heads/master@{#26492}

TBR=jochen@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#26550}
2015-02-10 16:42:27 +00:00
ulan
f8c404849d Fix IsWeakObjectInOptimizedCode predicate to also include property cells.
BUG=v8:3882
LOG=NO

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

Cr-Commit-Position: refs/heads/master@{#26549}
2015-02-10 16:09:24 +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
marja
0ca9bef37f Get rid of PreParserScope.
It's unnecessary; PreParser can just use normal Scopes for the things it needs
to track. Note: the only functionalities of PreParserScope were keeping track of
the scope stack, and for each scope, the scope type and language mode. Those are
now done by Scope. PreParser doesn't yet put variables into scopes (that will be
done in a follow up).

R=rossberg@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26544}
2015-02-10 13:27:25 +00:00
svenpanne
6e4e43b652 Massage the CodeStub class hierarchy a bit.
Several tiny changes for the upcoming TurboFan-genrated handlers/stubs:

   * Relaxed the type of code_stub().

   * Made GetCodeKind() public, it effectly was like this, anyway.

   * Const-corrected GetStubType().

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

Cr-Commit-Position: refs/heads/master@{#26542}
2015-02-10 11:46:04 +00:00
yangguo
bee9a0accb Correctly pointer-align code cache payload.
R=jochen@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26541}
2015-02-10 11:20:37 +00:00
chunyang.dai
68db76e1b6 Fix the MachineSignature* parameters change for turbofan unsupported platform.
this issue is introduced by 30787d4e56.
   (https://codereview.chromium.org/874693006).

   original commit message:

    Const-corrected some MachineSignature* parameters.

    Recipe: Add "const" to RawMachineAssembler constructor, fix breakage.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26538}
2015-02-10 08:56:10 +00:00
akos.palfi
0b692450c3 MIPS: [turbofan] Initial support for Switch.
Port feb2890711

Original commit message:
Adds Switch and Case operators to TurboFan and handles them
appropriately in instruction selection and code generation.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26535}
2015-02-10 04:02:38 +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
chunyang.dai
07c6814d0f Add dummy implementation for turbofan unsupported platform.
This function is defined in feb2890711.
   (https://codereview.chromium.org/892513003).

   original commit message:
    [turbofan] Initial support for Switch.

    Adds Switch and Case operators to TurboFan and handles them
    appropriately in instruction selection and code generation.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26533}
2015-02-09 18:43:21 +00:00
jochen
4357bef53b Add a flag to over approximate the weak closure during GC
BUG=v8:3862
R=hpayer@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26532}
2015-02-09 16:26:03 +00:00
yangguo
32ad0a3b3d Add DCHECKs to back reference deserialization.
R=jochen@chromium.org
BUG=chromium:441896
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26531}
2015-02-09 15:19:31 +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
chunyang.dai
ebb77c37ed X87: Externalize deoptimization reasons.
port 2491a639bf (r26463)

original commit message:

   Externalize deoptimization reasons.
   1) The hardcoded strings were converted into DeoptReason enum.

   2) Deopt comment were converted into a pair location and deopt reason entries so
      the deopt reason tracking mode would less affect the size of the RelocInfo table and heap.

   3) DeoptReason entry in RelocInfo reuses kCommentTag value and generates short entry in RelocInfo table.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26526}
2015-02-09 14:10:17 +00:00
mstarzinger
215e6bcb00 Remove dependency on v8.h from TurboFan.
R=bmeurer@chromium.org
TEST=presubmit

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

Cr-Commit-Position: refs/heads/master@{#26525}
2015-02-09 13:13:28 +00:00
dcarney
4045b72ce3 [turbofan] remove one level of indirection in phi inputs
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26524}
2015-02-09 13:02:53 +00:00
titzer
4c302ca290 Make it easier to test OSR with %OptimizeOsr() runtime call.
This call triggers OSR for the current function. And also allows explicitly testing OSR on the top-level code.

R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26523}
2015-02-09 12:47:43 +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
693e633b5c [x64] Fix strict aliasing error with GCC.
BUG=v8:3872
LOG=n
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26521}
2015-02-09 10:44:06 +00:00
cdai2
8a144cd4c0 X87: Remove the obsolete OverwriteMode optimization.
port 634b0f20f4 (r26454).

original commit message:

BUG=
R=weiliang.lin@intel.com

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

Cr-Commit-Position: refs/heads/master@{#26520}
2015-02-09 10:28:04 +00:00
cdai2
f77e016e59 X87: Fix assertion in full codegen for holed 'this'
port 275e088abe (r26423)

original commit message:

BUG=
R=weiliang.lin@intel.com

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

Cr-Commit-Position: refs/heads/master@{#26519}
2015-02-09 10:25:25 +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
cdai2
7280426acb X87: Retry "Use a WeakCell in the CallIC type vector."
port 6fc97a1965 (r26420)

original commit message:

  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.

BUG=
R=weiliang.lin@intel.com

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

Cr-Commit-Position: refs/heads/master@{#26517}
2015-02-09 09:29:45 +00:00
yangguo
161efc42bf Correctly clean up natives sources on tear down.
R=ulan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26516}
2015-02-09 09:04:57 +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
cdai2
4ee5161962 X87: Introduce LanguageMode, drop StrictMode.
port c7851da4ae (r26419)

original commit message:

  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=
R=weiliang.lin@intel.com

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

Cr-Commit-Position: refs/heads/master@{#26514}
2015-02-09 08:50:08 +00:00
akos.palfi
525c1794f2 Fix build with GCC 4.6.
Fix build with GCC 4.6 after 158a87659f.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26513}
2015-02-09 08:11:21 +00:00
cdai2
91d9054350 X87: new classes: special construct stub for derived classs and TDZ for this.
port 6f97a4948f (r26409)

original commit message:

   new classes: special construct stub for derived classs and TDZ for `this`.

BUG=
R=weiliang.lin@intel.com

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

Cr-Commit-Position: refs/heads/master@{#26512}
2015-02-09 08:06:10 +00:00
cdai2
e10291d843 X87: Super Constructor Calls need to use a vector slot, not an ic slot.
port 64f81870ee (r26414)

original commit message:

  Super Constructor Calls need to use a vector slot, not an ic slot.

  The Ast Call node is accustomed to using a vector IC slot for the
  cases when it uses a CallIC. The super constructor work alters this
  somewhat by using a CallConstructStub instead, however the
  CallConstructStub expects a vector slot and not a vector ic slot.
  This distinction needs to be maintained because slots and ic slots
  have different clearing strategies and are handled differently.

BUG=
R=weiliang.lin@intel.com

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

Cr-Commit-Position: refs/heads/master@{#26511}
2015-02-09 08:00:29 +00:00
ben
a02d97e342 Fix --max_old_space_size=4096 integer overflow.
BUG=v8:3857
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26510}
2015-02-09 07:01:02 +00:00
cdai2
b2e15510a8 X87: Megamorphic KeyedLoadIC needs special handling for vector ics
port 16843e239d (r26381)

original commit message:

  Megamorphic KeyedLoadIC needs special handling for vector ics.

  When --vector-ics is true, we still tail-call to the hand-written
  megamorphic KeyedLoadIC (formerly "generic"). Now that this code uses
  the megamorphic cache, it needs to deal properly with the vector and
  slot registers. Achieve this with a sentinel vectors/slot combo.

BUG=
R=weiliang.lin@intel.com

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

Cr-Commit-Position: refs/heads/master@{#26508}
2015-02-09 06:34:31 +00:00
chunyang.dai
13d6a96a8f X87: Reland "Initial switch to Chromium-style CHECK_* and DCHECK_* macros
port c65ae4f10c (r26346).

   fix one spelling error introduced by this CL.

original commit message:
  Reland "Initial switch to Chromium-style CHECK_* and DCHECK_* macros.".

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26507}
2015-02-09 06:08:58 +00:00
cdai2
f50a556bd0 X87: Continue learning for calls in crankshaft.
port 7d363783e1.

original commit message:

  Continue learning for calls in crankshaft.

  The type feedback vector makes this easy to do.
  This is a re-land of https://codereview.chromium.org/868453005/
  with a fix for the DCHECK failure.

BUG=
R=weiliang.lin@intel.com

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

Cr-Commit-Position: refs/heads/master@{#26506}
2015-02-09 05:19:21 +00:00
chunyang.dai
6a66a78d70 X87: Add MEGAMORPHIC state support for KeyedLoadIC
port 491eb81780 (r26345)

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26505}
2015-02-07 09:31:18 +00:00
chunyang.dai
30e02390f1 X87: Initial switch to Chromium-style CHECK_* and DCHECK_* macros
port 0deaa4b629 (r26340)

     (code change in full-codegen-x87.cc is covered by r26340 ).

original commit message:

   Initial switch to Chromium-style CHECK_* and DCHECK_* macros.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26504}
2015-02-07 09:10:00 +00:00
chunyang.dai
db379e19c8 X87: fix performance regression on intel call api stubs
port b18ad51079 (r26291)

original commit message:

  additionally, make the interface match the JSFunction interface

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26503}
2015-02-07 08:43:57 +00:00
chunyang.dai
27361ec6c8 X87: Use a trampoline stub to load the type feedback vector for CallICs
port 2a567faa3e (r26290)

original commit message:

  Use a trampoline stub to load the type feedback vector for CallICs.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26502}
2015-02-07 07:52:37 +00:00
cdai2
3c56b02674 X87: Remove the dependency of Zone on Isolate
port c7b09aac31 (r26252)

original commit message:

    Along the way:
    - Thread isolate parameter explicitly through code that used to
      rely on getting it from the zone.
    - Canonicalize the parameter position of isolate and zone for
      affected code
    - Change Hydrogen New<> instruction templates to automatically
      pass isolate

BUG=
R=weiliang.lin@intel.com

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

Cr-Commit-Position: refs/heads/master@{#26501}
2015-02-07 06:22:47 +00:00
cdai2
bd4476a623 X87: new classes: change semantics of super(...) call and add new.target to construct stub.
port 22ce08ade6 (r26227)
original commit message:

  new classes: change semantics of super(...) call and add new.target to construct stub.

BUG=
R=weiliang.lin@intel.com

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

Cr-Commit-Position: refs/heads/master@{#26500}
2015-02-07 06:21:21 +00:00
arv
8a809a9c86 Rename ParseSourceElements in preparser too
BUG=None
R=adamk
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26498}
2015-02-06 23:26:35 +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
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
titzer
d9892bbd5a [turbofan] OSR loops assign all local variables.
R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26493}
2015-02-06 15:57:12 +00:00
ishell
51c59ede18 Temporarily disable double fields unboxing.
Review URL: https://codereview.chromium.org/893843004

Cr-Commit-Position: refs/heads/master@{#26492}
2015-02-06 15:50:39 +00:00
jochen
0c43274394 Check that we're called on a valid heap during idle notifications
BUG=chromium:425035
R=dcarney@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26491}
2015-02-06 15:36:21 +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
mstarzinger
c699a87be9 Make the Linkage::NeedsFrameState list more intuitive.
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26488}
2015-02-06 15:07:24 +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
svenpanne
30787d4e56 Const-corrected some MachineSignature* parameters.
Recipe: Add "const" to RawMachineAssembler constructor, fix breakage.

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

Cr-Commit-Position: refs/heads/master@{#26485}
2015-02-06 12:18:51 +00:00
dslomov
158a87659f new classes: assert that constructors are not callable and rewrite 'return;'
R=arv@chromium.org
BUG=v8:3834
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26483}
2015-02-06 10:35:13 +00:00
yangguo
a44511d413 Allocate typed array for rempio2 result.
R=svenpanne@chromium.org
BUG=chromium:441896
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26482}
2015-02-06 09:55:07 +00:00
dcarney
e64810b5a5 cleanup api-natives a bit
R=verwaest@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26481}
2015-02-06 09:44:58 +00:00
danno
6efd03c434 Remove unused path in FieldIndex code
Review URL: https://codereview.chromium.org/898283003

Cr-Commit-Position: refs/heads/master@{#26480}
2015-02-06 09:43:59 +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
cdai2
a3ac322a2a X87: Double field values need sNaN -> qNaN canonicalization.
Fix the failure introduced by 0381acf7b3 (r26213).

  When storing Double field to external double array, we need to do special
  qNaN --> sNan recovery on X87 port.

BUG=
R=weiliang.lin@intel.com

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

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

Committed: 49cbe537e7

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

Cr-Commit-Position: refs/heads/master@{#26476}
2015-02-06 07:39:48 +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
akos.palfi
1ffaf13b2d MIPS64: Externalize deoptimization reasons.
Port 2491a639bf

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26473}
2015-02-05 23:55:15 +00:00
Erik Arvidsson
b67b3c5401 Accessor functions should have no prototype property
This also removes some convenience functions that were not used.

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

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

Cr-Commit-Position: refs/heads/master@{#26472}
2015-02-05 23:34:28 +00:00
michael_dawson
308d913a92 Contribution of PowerPC port (continuation of 422063005) - PPC dir update
Contribution of PowerPC port (continuation of 422063005, 817143002 and 866843003)
This patch brings the ppc directories up to date with our repo. We have
removed 5 individual optimizations which require changes in both the ppc and common
directories so they can be more easily reviewed on their own in subsequent patches.

Subsequent patches will cover:
- individual optimizations for PPC (5)
- remaining AIX changes not resolved by 4.8 compiler (4.8 is only recently available
for AIX)
- incremental updates required to ppc directories due to platform specific changes
made in google repos while we complete the above steps.

With the update there are still some timeouts seen when run in simulated mode which
may be a result of the missing optimizations.  Once we have the optimizations in
we will review the simulation results and address/exclude tests as necessary so that
the simulated runs are clean.

	new file:   src/compiler/ppc/code-generator-ppc.cc
	new file:   src/compiler/ppc/instruction-codes-ppc.h
	new file:   src/compiler/ppc/instruction-selector-ppc.cc
	new file:   src/compiler/ppc/linkage-ppc.cc
	modified:   src/ic/ppc/handler-compiler-ppc.cc
	modified:   src/ic/ppc/ic-compiler-ppc.cc
	modified:   src/ic/ppc/ic-ppc.cc
	modified:   src/ic/ppc/stub-cache-ppc.cc
	modified:   src/ppc/assembler-ppc.cc
	modified:   src/ppc/assembler-ppc.h
	modified:   src/ppc/builtins-ppc.cc
	modified:   src/ppc/code-stubs-ppc.cc
	modified:   src/ppc/code-stubs-ppc.h
	modified:   src/ppc/codegen-ppc.cc
	modified:   src/ppc/constants-ppc.h
	modified:   src/ppc/deoptimizer-ppc.cc
	modified:   src/ppc/disasm-ppc.cc
	modified:   src/ppc/full-codegen-ppc.cc
	modified:   src/ppc/interface-descriptors-ppc.cc
	modified:   src/ppc/lithium-codegen-ppc.cc
	modified:   src/ppc/lithium-codegen-ppc.h
	modified:   src/ppc/lithium-ppc.cc
	modified:   src/ppc/lithium-ppc.h
	modified:   src/ppc/macro-assembler-ppc.cc
	modified:   src/ppc/macro-assembler-ppc.h
	modified:   src/ppc/regexp-macro-assembler-ppc.cc
	modified:   src/ppc/regexp-macro-assembler-ppc.h
	modified:   src/ppc/simulator-ppc.cc
	modified:   src/ppc/simulator-ppc.h
	new file:   test/unittests/compiler/ppc/instruction-selector-ppc-unittest.cc

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

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26471}
2015-02-05 19:02:07 +00:00
balazs.kilvady
0d035dc259 MIPS64: Perform receiver patching for sloppy mode in high-level IR.
Port 9e0865069f

TEST=cctest/test-run-jscalls/ReceiverPatching
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26470}
2015-02-05 17:17:43 +00:00
Dusan Milosavljevic
c03a5ca12c MIPS:[turbofan] Reland "Improve unordered comparisons for boolean materialization.".
BUG=
R=paul.lind@imgtec.com

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

Cr-Commit-Position: refs/heads/master@{#26469}
2015-02-05 16:51:34 +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
balazs.kilvady
4831e7b7c9 MIPS: Remove the obsolete OverwriteMode optimization.
Port 634b0f20f4

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26467}
2015-02-05 16:36:34 +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
ulan
015e7865a0 Fix Code::VerifyEmbeddedObjects.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26465}
2015-02-05 15:25:34 +00:00
mvstanton
0e8d97c17b CallIC MISS handler doesn't need receiver.
Looking up and passing this argument is unnecessary.

R=ulan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26464}
2015-02-05 15:11:06 +00:00
loislo
2491a639bf Externalize deoptimization reasons.
1) The hardcoded strings were converted into DeoptReason enum.

2) Deopt comment were converted into a pair location and deopt reason entries so
the deopt reason tracking mode would less affect the size of the RelocInfo table and heap.

3) DeoptReason entry in RelocInfo reuses kCommentTag value and generates short entry in RelocInfo table.

BUG=452067
LOG=n

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

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

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

Cr-Commit-Position: refs/heads/master@{#26463}
2015-02-05 14:51:58 +00:00
svenpanne
197ed66714 Tiny simplification of FieldIndex::ForInObjectOffset.
Review URL: https://codereview.chromium.org/884163004

Cr-Commit-Position: refs/heads/master@{#26462}
2015-02-05 14:19:43 +00:00
marja
299b369cc9 Split --harmony-unicode and --harmony-unicode-regexps.
This way we can ship \u{..} escapes in strings / identifiers before shipping /u
regexps.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26461}
2015-02-05 14:17:09 +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
mstarzinger
df986d08b7 Fix try-finally for dead AST-branches in TurboFan.
R=jarin@chromium.org
TEST=mjsunit/regress/regress-crbug-455644
BUG=chromium:455644
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26458}
2015-02-05 12:29:33 +00:00
bmeurer
368a503cc1 Revert of Externalize deoptimization reasons. (patchset #7 id:120001 of https://codereview.chromium.org/874323003/)
Reason for revert:
This CL breaks RelocInfo::INTERNAL_REFERENCE (and maybe others that come after DEOPT_REASON), which is currently (mostly) unused on tip-of-tree, but will be used for jump tables soon(ish) and should therefore work. It seems to be a problem with implicitly assumptions about the number of reloc info modes. Needs further investigation.

Original issue's description:
> Externalize deoptimization reasons.
>
> 1) The hardcoded strings were converted into DeoptReason enum.
>
> 2) Deopt comment were converted into a pair location and deopt reason entries so
> the deopt reason tracking mode would less affect the size of the RelocInfo table and heap.
>
> 3) DeoptReason entry in RelocInfo reuses kCommentTag value and generates short entry in RelocInfo table.
>
> BUG=452067
> LOG=n
>
> Committed: https://crrev.com/c49820e45b57f128a98690940875c049f612dde6
> Cr-Commit-Position: refs/heads/master@{#26434}
>
> Committed: https://crrev.com/ec42e002da03adb2db968dd5b7453341ddc59a5c
> Cr-Commit-Position: refs/heads/master@{#26448}

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

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

Cr-Commit-Position: refs/heads/master@{#26457}
2015-02-05 12:03:26 +00:00
ulan
87c79df973 Remove flush_monomorphic_ics flag.
Since v8:3629 is fixed, ICs and handlers do not retain objects.

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

Cr-Commit-Position: refs/heads/master@{#26455}
2015-02-05 11:45:52 +00:00
Benedikt Meurer
634b0f20f4 Remove the obsolete OverwriteMode optimization.
R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26454}
2015-02-05 10:39:28 +00:00
jkummerow
bfe7f4af14 Fix HConstant(double, ...) constructor
It must always populate int32_value_, even if that's lossy, because other code (specifically, constant folding for truncating operations) relies on it.

BUG=v8:3865
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#26453}
2015-02-05 10:28:13 +00:00
mstarzinger
8fa3d991e1 Correctly report some internal OOM conditions.
R=hpayer@chromium.org
BUG=chromium:454615
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26452}
2015-02-05 09:51:59 +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
ulan
b7d27ea583 Add a flag to track detached contexts.
When embedder detaches the global objects, its context must be garbage
collected eventually.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26450}
2015-02-05 09:35:59 +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
loislo
ec42e002da Externalize deoptimization reasons.
1) The hardcoded strings were converted into DeoptReason enum.

2) Deopt comment were converted into a pair location and deopt reason entries so
the deopt reason tracking mode would less affect the size of the RelocInfo table and heap.

3) DeoptReason entry in RelocInfo reuses kCommentTag value and generates short entry in RelocInfo table.

BUG=452067
LOG=n

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

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

Cr-Commit-Position: refs/heads/master@{#26448}
2015-02-05 06:25:18 +00:00
Benedikt Meurer
9dff8185dd Revert "[turbofan] Make Factory::NewNumber() always return the minus_zero_value."
This reverts commit f578d35ba8 because
(immutable) heap numbers are surprisingly mutable in V8. Someone else
might want to cleanup the mess, otherwise we'll just keep it this way.

TBR=jkummerow@chromium.org
BUG=chromium:454894
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#26447}
2015-02-05 04:58:49 +00:00
Weiliang Lin
c397d2951f x87: Use signaling NaN for holes in fixed double arrays.
Port 9eace97bba

BUG=
R=chunyang.dai@intel.com

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

Cr-Commit-Position: refs/heads/master@{#26445}
2015-02-05 02:53:57 +00:00
paul.lind
a18dee6bba Revert "MIPS:[turbofan] Improve unordered comparisons for boolean materialization."
Reason for revert:
Fails mjsunit/asm/embenchen/box2d

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26444}
2015-02-04 21:28:55 +00:00
paul.lind
fdce3e6f2f MIPS: Calls to the CallIC miss handler looked up the receiver incorrectly.
Port 13b97b6214

Original commit message:
On platforms that don't push the return address on the stack at time of call, there was an error.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26443}
2015-02-04 21:27:46 +00:00
caitpotter88
49ef549807 templates: Don't check IsLineTerminator() if character is negative
BUG=455212
LOG=N
R=arv@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26442}
2015-02-04 21:05:48 +00:00
arv
cd661fdc27 Fix issue with multiple properties and emit store.
We used to have a parse error for conflicting property keys. This check
was removed to match ES6 (SpiderMonkey & Chakra already made this change).
Since this check was removed we ended up with a few new cases when
generating code. For example, accessors always generated code even if
those should have been shadowed by a data property.

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

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

Cr-Commit-Position: refs/heads/master@{#26441}
2015-02-04 20:44:12 +00:00
arv
59525f07df Add macro for getting a PropertyAttributes for the runtime functions
Motivation: Cleanup

BUG=None
R=adamk
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26440}
2015-02-04 18:22:36 +00:00
mvstanton
13b97b6214 Calls to the CallIC miss handler looked up the receiver incorrectly.
On platforms that don't push the return address on the stack at time of call, there was an error.

R=ulan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26439}
2015-02-04 17:46:06 +00:00
balazs.kilvady
8c3a408e41 MIPS: Fix assertion in full codegen for holed 'this'.
Port 275e088abe

BUG=chromium:455141
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26438}
2015-02-04 17:35:16 +00:00
arv
176b68d11a Class methods should be non enumerable
Class methods and accessors (both prototype and static) should be
non enumerable.

BUG=v8:3330
LOG=Y
R=dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26437}
2015-02-04 17:23:17 +00:00
ulan
f0511a8d80 Make functions contexts in optimized code weak.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26436}
2015-02-04 17:13:56 +00:00
loislo
bfc5d83bd0 Revert of Externalize deoptimization reasons. (patchset #6 id:100001 of https://codereview.chromium.org/874323003/)
Reason for revert:
it broke the build

Original issue's description:
> Externalize deoptimization reasons.
>
> 1) The hardcoded strings were converted into DeoptReason enum.
>
> 2) Deopt comment were converted into a pair location and deopt reason entries so
> the deopt reason tracking mode would less affect the size of the RelocInfo table and heap.
>
> 3) DeoptReason entry in RelocInfo reuses kCommentTag value and generates short entry in RelocInfo table.
>
> BUG=452067
> LOG=n
>
> Committed: https://crrev.com/c49820e45b57f128a98690940875c049f612dde6
> Cr-Commit-Position: refs/heads/master@{#26434}

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

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

Cr-Commit-Position: refs/heads/master@{#26435}
2015-02-04 16:48:34 +00:00
loislo
c49820e45b Externalize deoptimization reasons.
1) The hardcoded strings were converted into DeoptReason enum.

2) Deopt comment were converted into a pair location and deopt reason entries so
the deopt reason tracking mode would less affect the size of the RelocInfo table and heap.

3) DeoptReason entry in RelocInfo reuses kCommentTag value and generates short entry in RelocInfo table.

BUG=452067
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26434}
2015-02-04 16:35:30 +00:00
balazs.kilvady
3b400fcb9b MIPS: Retry "Use a WeakCell in the CallIC type vector."
Port 6fc97a1965

Original commit message:
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.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26432}
2015-02-04 16:05:16 +00:00
balazs.kilvady
ff0c70380a MIPS: Introduce LanguageMode, drop StrictMode.
Port c7851da4ae

Original commit message:
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/890413003

Cr-Commit-Position: refs/heads/master@{#26431}
2015-02-04 15:14:54 +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
dcarney
b235f0b1e1 try to fix windows after r26424
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26427}
2015-02-04 13:15:46 +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
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
Dusan Milosavljevic
8f9a62d312 MIPS:[turbofan] Improve unordered comparisons for boolean materialization.
TEST=
BUG=
R=paul.lind@imgtec.com

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

Cr-Commit-Position: refs/heads/master@{#26422}
2015-02-04 10:52:27 +00:00
titzer
d923864c79 [turbofan] Make ContextScope a proper encapsulation of the current context.
R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26421}
2015-02-04 09:59:55 +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
akos.palfi
f37047cdbe MIPS64: Super Constructor Calls need to use a vector slot, not an ic slot.
Port 64f81870ee

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26418}
2015-02-04 01:58:04 +00:00
akos.palfi
6b30ef8e3e MIPS: new classes: special construct stub for derived classs and TDZ for this.
Port 6f97a4948f

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26417}
2015-02-04 01:52:12 +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
mvstanton
64f81870ee Super Constructor Calls need to use a vector slot, not an ic slot.
The Ast Call node is accustomed to using a vector IC slot for the
cases when it uses a CallIC. The super constructor work alters this
somewhat by using a CallConstructStub instead, however the
CallConstructStub expects a vector slot and not a vector ic slot.
This distinction needs to be maintained because slots and ic slots
have different clearing strategies and are handled differently.

R=dslomov@chromium.org
BUG=
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26414}
2015-02-03 19:16:47 +00:00
jarin
4f786befb7 Infer HConstant::NotInNewSpace only if the supplied handle is null.
BUG=chromium:449291
LOG=n
R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26413}
2015-02-03 17:48:35 +00:00
ulan
cd203cd629 Verify that code stubs and full code do not have pointers that can retain
context.

BUG=v8:3629
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26412}
2015-02-03 17:46:31 +00:00
caitpotter88
858b9b6a7e Update harmony Object.prototype.toString to 2/2/2015 spec
- Removes special handling of non-string @@toStringTag values (use builtinTag)
- Removes special handling of @@toStringTags which match [[Class]] names (remove ~ prefix)

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

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

Cr-Commit-Position: refs/heads/master@{#26411}
2015-02-03 17:45:20 +00:00
ishell
a6d0e6a78f Check the slots being adding to the SlotsBuffer.
Related to crbug/454297.

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

Cr-Commit-Position: refs/heads/master@{#26410}
2015-02-03 17:44:12 +00:00
dslomov
6f97a4948f new classes: special construct stub for derived classs and TDZ for this.
R=arv@chromium.org,rossberg@chromium.org
BUG=v8:3834
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26409}
2015-02-03 17:43:03 +00:00
Daniel Vogelheim
8bb468c454 Partial revert of crrev.com/900553003, to unbreak arm64 build.
R=verwaest@chromium.org
BUG=454625
NOTREECHECKS=true

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

Cr-Commit-Position: refs/heads/master@{#26407}
2015-02-03 17:04:05 +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
verwaest
fea7ddb640 Reset inlining limits due to overly long compilation times in Speedometer, Dart2JS
BUG=454625
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#26405}
2015-02-03 15:03:01 +00:00
Benedikt Meurer
d8cfbc633d [turbofan] Split pure nodes in the scheduler if beneficial.
If a (pure) node has two or more uses, but there exists a path from the
common dominator of these uses to end, which does not contain a use,
then we split the node such that no unnecessary computation takes place.
Note however, that this only applies if the node cannot be hoisted out
of a loop.

BUG=v8:3864
LOG=n
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26404}
2015-02-03 14:51:08 +00:00
bmeurer
1feee1c6fc [turbofan] Parameter nodes are not idempotent.
R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26403}
2015-02-03 14:45:39 +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
791deaa271 Move nested classes of AstGraphBuilder into cc file.
R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26400}
2015-02-03 14:22:28 +00:00
danno
21cdb967a4 [turbofan]: Small visualizer cleanup and fix for string handling
R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26399}
2015-02-03 13:11:00 +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
ulan
edb70555ff Use weak cell to embed property cell in StoreGlobal.
BUG=v8:3629
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26396}
2015-02-03 11:27: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
bmeurer
f6e02e195c Compute the same hash for all NaN values.
Both SameValue and SameValueZero consider different NaNs equal, so we
better assign the same hash value to all NaNs.

BUG=v8:3859
LOG=y
R=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26391}
2015-02-03 06:29:18 +00:00
verwaest
9cce4ff285 Clear pending exception on stack overflow in the parser
BUG=450960
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26390}
2015-02-03 06:22:36 +00:00
fedor
a0d0c4333d tools: fix postmortem generator
BUG=
R=danno

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

Cr-Commit-Position: refs/heads/master@{#26389}
2015-02-02 21:21:54 +00:00
balazs.kilvady
d834db864f MIPS: Use weak cell to embed known map in CompareIC
Port 246a749a6f

BUG=v8:3663
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26388}
2015-02-02 19:45:12 +00:00
titzer
2379d34bdc [turbofan] Put StructuredGraphBuilder out of its misery and merge its remnants back into the AstGraphBuilder.
R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26387}
2015-02-02 19:10:02 +00:00
ulan
246a749a6f Use weak cell to embed known map in CompareIC
BUG=v8:3663
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26386}
2015-02-02 17:57:49 +00:00
ulan
34b72eca35 Fetch global object from jsproxy prototype instead of embedding it in StoreGlobal.
BUG=v8:3629
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26385}
2015-02-02 17:56:49 +00:00
balazs.kilvady
6019cbf9df MIPS64: Megamorphic KeyedLoadIC needs special handling for vector ics.
Port 16843e239d

Original commit message:
When --vector-ics is true, we still tail-call to the hand-written
megamorphic KeyedLoadIC (formerly "generic"). Now that this code uses
the megamorphic cache, it needs to deal properly with the vector and
slot registers. Achieve this with a sentinel vectors/slot combo.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26384}
2015-02-02 17:50:22 +00:00
titzer
9df88454c0 Initialize CompilationInfo::osr_expr_stack_height correctly.
R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26382}
2015-02-02 14:30:07 +00:00
mvstanton
16843e239d Megamorphic KeyedLoadIC needs special handling for vector ics.
When --vector-ics is true, we still tail-call to the hand-written
megamorphic KeyedLoadIC (formerly "generic"). Now that this code uses
the megamorphic cache, it needs to deal properly with the vector and
slot registers. Achieve this with a sentinel vectors/slot combo.

R=dcarney@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26381}
2015-02-02 13:55:21 +00:00
verwaest
1de7dff2ef Check global object behind global proxy for extensibility
BUG=454091
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#26380}
2015-02-02 12:49:12 +00:00
ulan
81c4a42221 Use weak cells in CheckPropertyCell.
BUG=v8:3629
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26379}
2015-02-02 12:47:58 +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
titzer
219018d155 [turbofan] Fix OSR into functions where the expression stack is not empty.
R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26376}
2015-02-02 10:20:08 +00:00
paul.lind
1ea1141c81 MIPS64: Fix bugs after hole-nan value change.
TEST=mjsunit/regress/regress-undefined-nan{2,3}, mjsunit/elements-transition, mjsunit/elide-double-hole-check-*
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26374}
2015-02-02 00:00:26 +00:00
Yang Guo
b856e87859 Revert of Fix --max_old_space_size=4096 integer overflow. (patchset #1 id:1 of https://codereview.chromium.org/890563003/)
Reason for revert:
Win64 compile failure.

Original issue's description:
> Fix --max_old_space_size=4096 integer overflow.
>
> R=yangguo@chromium.org
>
> Committed: https://crrev.com/6253aa8908c55535473ddbe1db8e5a6f5e559b73
> Cr-Commit-Position: refs/heads/master@{#26371}

TBR=svenpanne@chromium.org,ben@strongloop.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#26372}
2015-02-01 08:08:47 +00:00
Yang Guo
6253aa8908 Fix --max_old_space_size=4096 integer overflow.
R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26371}
2015-01-31 20:45:46 +00:00
dcarney
bbde91bfc3 add maps and sets to zone containers
R=bmeurer@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26370}
2015-01-31 14:35:08 +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
f6f56de8e3 Add param_after_rest error message after r26362
BUG=v8:2159
LOG=N
R=marja@chromium.org, arv@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26366}
2015-01-30 17:18:57 +00:00
Dusan Milosavljevic
bddf5eeb39 MIPS: Fix bug in elements transition code for smi to double transitions.
This fixes intermittent sin-cos test failures when corrupted values are returned
for referent sin and cos functions in test which require factorial value
to be calculated.

TEST=mjsunit/sin-cos
BUG=
R=balazs.kilvady@imgtec.com

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

Cr-Commit-Position: refs/heads/master@{#26365}
2015-01-30 16:48:40 +00:00
ulan
5e4951b899 Do not embed interceptor in handler.
BUG=v8:3629
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26363}
2015-01-30 16:34:52 +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
mvstanton
3df0a9ae77 CallIC used an invalid mechanism to detect if it was in optimized code.
BUG=453481
LOG=N
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26361}
2015-01-30 15:07:14 +00:00
ulan
a113ce28bf Do not embedd store callback in handler.
BUG=v8:3629
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26360}
2015-01-30 14:54:56 +00:00
jarin
da90aabc07 Always emit bailout id for inlining property access (even for keyed access).
R=ulan@chromium.org
BUG=chromium:453805
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26359}
2015-01-30 14:35:43 +00:00
ulan
3ea4ca9dbf Load callback data from weak cell instead of embedding it in handler.
BUG=v8:3629
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26358}
2015-01-30 14:31:28 +00:00
jarin
0cd991ebc0 Do not inline array push for arrays with dictionary mode elements.
BUG=chromium:452878
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26357}
2015-01-30 13:51:43 +00:00
titzer
e25a0f7e4e [turbofan] Fix usage of ThisFunction parameter in OSR.
R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26355}
2015-01-30 13:09:44 +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
balazs.kilvady
29953afd09 MIPS: Add MEGAMORPHIC state support for KeyedLoadIC.
Port 491eb81780

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26353}
2015-01-30 12:45:18 +00:00
dcarney
74c00e93c5 update vector ics to handle megamorphic keyed loads
R=mvstanton@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26352}
2015-01-30 12:41:08 +00:00
hpayer
11aa116f1f Visit code objects in native contexts only during full GCs.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26351}
2015-01-30 11:26:43 +00:00
dcarney
6149d5ec76 [turbofan] cleanup MoveOptimizer a little
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26350}
2015-01-30 10:58:38 +00:00
Dan Carney
75c1c0df50 fix gcc after r26345
BUG=
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26349}
2015-01-30 10:12:24 +00:00
mstarzinger
66b1648fcf Avoid using ProcessArguments for static calls.
R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26348}
2015-01-30 09:56:19 +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
hpayer
9b60e89482 Collect phantom callback data only once during gc. For scavenges, just consider the young handles referenced by young generation.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26344}
2015-01-30 08:23:07 +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
Benedikt Meurer
6a4c0a3bae Make GCC happy again.
R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26341}
2015-01-30 06:56:47 +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
balazs.kilvady
c12d79257e MIPS: Fix 'Load API accessor from descriptor instead of embedding it in handler.'
Fix a typo in 6ea31f7eee

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26335}
2015-01-29 18:33:53 +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
titzer
11311c083a [turbofan] Fix OSR compilations of for-in.
R=mstarzinger@chromium.org
LOG=Y
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26333}
2015-01-29 17:40: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
ulan
b98f27f592 Load API holder from prototype chain instead embedding it in handler.
BUG=v8:3629
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26331}
2015-01-29 17:18:50 +00:00