Commit Graph

18556 Commits

Author SHA1 Message Date
chunyang.dai
62c546517f X87: Remove PropertyCell space
port 16c8485a35 (r27269).

original commit message:

  Replaces StoreGlobalCell / LoadGlobalCell with NamedField variants that use write barriers.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27395}
2015-03-24 10:10:59 +00:00
chunyang.dai
40de9c3f02 X87: Use platform specific stubs for vector-based Load/KeyedLoad.
port 34a1a76ddf (r27235)

original commit message:

  A hydrogen code stub is not the best approach because it builds a frame
  and doesn't have the technology to discard roots at tail call exits.
  Platform-specific stubs provide much better performance at this point.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27394}
2015-03-24 10:06:21 +00:00
jacob.bramley
a5ce9994a5 Revert "ARM64: use jssp for stack slots"
This reverts r21101. r21101 appears to be at fault for the ARM64
failures here: https://codereview.chromium.org/1023103003

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27393}
2015-03-24 09:51:35 +00:00
michael_dawson
f8183277c1 PPC: [es6] implement Reflect.apply() & Reflect.construct()
Port d21fd15467

Original commit message:
BUG=v8:3900
LOG=N

R=mbrandy@us.ibm.com, svenpanne@chromium.org, danno@chromium.org, jkummerow@chromium.org, dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27392}
2015-03-24 09:37:59 +00:00
michael_dawson
b051c7aabe PPC: [turbofan] Turn Math.clz32 into an inlinable builtin.
Port 3aa206b865

Original commit message:
R=dcarney@chromium.org, yangguo@chromium.org
BUG=v8:3952
LOG=n

R=mbrandy@us.ibm.com, svenpanne@chromium.org, danno@chromium.org, jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27391}
2015-03-24 09:31:45 +00:00
michael_dawson
833364a7de PPC: [es6] generate rest parameters correctly for subclass constructors
commit bef80fcfd7

Original commit message:
BUG=v8:3977
R=dslomov@chromium.org, arv@chromium.org
LOG=N

R=mbrandy@us.ibm.com, svenpanne@chromium.org, danno@chromium.org, jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27390}
2015-03-24 09:27:29 +00:00
yangguo
992751d0dc Revert of [es6] Object.getPrototypeOf should work with values (patchset #3 id:40001 of https://codereview.chromium.org/1014813003/)
Reason for revert:
Layout test failures. Please update layout test expectations before landing this, in order to not block the roll.

Original issue's description:
> [es6] Object.getPrototypeOf should work with values
>
> The final spec for Object.getPrototypeOf calls ToObject on the
> parameter, which means that it should only throw for null and
> undefined. For other non object values the prototype of the wrapper
> should be used.
>
> BUG=v8:3964
> LOG=N
> R=adamk, rossberg@chromium.org
>
> Committed: https://crrev.com/ea463a916bbe5994b0d2d04e8075058b373b2e2c
> Cr-Commit-Position: refs/heads/master@{#27354}

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

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

Cr-Commit-Position: refs/heads/master@{#27389}
2015-03-24 09:19:26 +00:00
michael_dawson
cff4fb97dc PPC: Serializer: serialize internal references via object visitor.
Port 7c149afb6c

Original commit message:

R=mbrandy@us.ibm.com, svenpanne@chromium.org, danno@chromium.org, jkummerow@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27388}
2015-03-24 09:16:54 +00:00
michael_dawson
0fe88cb04d PPC: Load from PropertyCells using PropertyCell::kValueOffset rather than Cell::kValueOffset
Port dda2bd6f4f

Original commit message:

R=mbrandy@us.ibm.com, svenpanne@chromium.org, danno@chromium.org, jkummerow@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27387}
2015-03-24 09:15:52 +00:00
jochen
d19d0be8a0 Remove calls to IdleNotification()
All users should use IdleNotificationDeadline() instead

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

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

Cr-Commit-Position: refs/heads/master@{#27386}
2015-03-24 08:30:02 +00:00
chunyang.dai
5703794412 X87: Remove kind field from StackHandler.
port 15f8213809 (r27263)

original commit message:

 This relands commit 96f79568a9.

 This makes the Isolate::Throw logic not depend on a prediction of
 whether an exception is caught or uncaught. Such a prediction is
 inherently undecidable because a finally block can decide between
 consuming or re-throwing an exception depending on arbitray control
 flow.

 There still is a conservative prediction mechanism in place that
 components like the debugger or tracing can use for reporting.

 With this change we can get rid of the StackHandler::kind field, a
 pre-requisite to do table-based lookups of exception handlers.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27385}
2015-03-24 08:08:19 +00:00
yurys
aca7895353 Save heap object tracking data in heap snapshot
Every time embedder calls v8::HeapProfiler::GetHeapStats we store next unuassigned heap object id and timestamp of the request. This patch serializes all that data into heap snapshot so that embedder can restore allocation timeline.

BUG=chromium:467222
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#27384}
2015-03-24 05:50:04 +00:00
akos.palfi
fe0d860ba8 MIPS64: VectorICs: keyed element loads were kicking out non-smi keys unnecessarily
Port 6689cc27eb

Original commit message:
Handlers should be in charge of this work. The change uncovered a bug in
vector-ics related to keyed loads into strings. It's important for
StringCharCodeAtGenerator, a helper used in full code and in
LoadIndexedStringStub (a handler) to protect the vector and slot registers
when it makes a runtime call to convert a HeapNumber to a Smi.

It's still possible for the handler to MISS after this call, perhaps due
to out of bounds access. In that case, the vector and slot registers need
to be delivered safely to the MISS handler.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27383}
2015-03-23 22:45:17 +00:00
michael_dawson
8d4c7fea0d PPC: Disinherit PropertyCell from Cell
Port 8c0d289772

Original commit message:

R=mbrandy@us.ibm.com, svenpanne@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27382}
2015-03-23 21:41:55 +00:00
michael_dawson
890c0eac21 PPC: Remove kind field from StackHandler.
Port 15f8213809

Original commit message:
This relands commit 96f79568a9.

This makes the Isolate::Throw logic not depend on a prediction of
whether an exception is caught or uncaught. Such a prediction is
inherently undecidable because a finally block can decide between
consuming or re-throwing an exception depending on arbitray control
flow.

There still is a conservative prediction mechanism in place that
components like the debugger or tracing can use for reporting.

With this change we can get rid of the StackHandler::kind field, a
pre-requisite to do table-based lookups of exception handlers.

R=mbrandy@us.ibm.com, yangguo@chromium.org, svenpanne@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27381}
2015-03-23 21:32:56 +00:00
michael_dawson
c277e7efad PPC: Remove PropertyCell space
Port 16c8485a35

Original commit message:
Replaces StoreGlobalCell / LoadGlobalCell with NamedField variants that use write barriers.

R=mbrandy@us.ibm.com, svenpanne@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27380}
2015-03-23 21:31:43 +00:00
verwaest
1b16678f25 Properly handle non-JSFunction constructors in CanRetainOtherContext
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27379}
2015-03-23 19:24:58 +00:00
mstarzinger
11fb202f96 Move CompilationInfo::this_has_uses to HGraph::this_has_uses.
R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27378}
2015-03-23 19:11:29 +00:00
mvstanton
6689cc27eb VectorICs: keyed element loads were kicking out non-smi keys unnecessarily
Handlers should be in charge of this work. The change uncovered a bug in
vector-ics related to keyed loads into strings. It's important for
StringCharCodeAtGenerator, a helper used in full code and in
LoadIndexedStringStub (a handler) to protect the vector and slot registers
when it makes a runtime call to convert a HeapNumber to a Smi.

It's still possible for the handler to MISS after this call, perhaps due
to out of bounds access. In that case, the vector and slot registers need
to be delivered safely to the MISS handler.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27377}
2015-03-23 18:50:23 +00:00
mstarzinger
7421c7f598 Remove dangerous constructor from CompilationInfoWithZone.
This removes the stub-based constructor from CompilationInfoWithZone
as this class is more than a pure convenience class and only by chance
doesn't have an effect in the destructor.

R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27376}
2015-03-23 17:30:45 +00:00
ulan
f42e09aef2 Acquire a lock before checking for GC interrupt in JSON parser.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27375}
2015-03-23 17:16:14 +00:00
kozyatinskiy
b563ceac0f [V8] Removed SourceLocationRestrict
This method uses in messages.js in GetSourceLine and GetPositionInLine. This methods uses in v8::Message API methods and there is no documentation about it.
Method looks obsolete.
One of the strange side effect is shown by attached issue.

BUG=chromium:468781
R=yangguo@chromium.org
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#27374}
2015-03-23 16:33:19 +00:00
dcarney
0a835afb29 [turbofan] add non fixed slot constraint to register allocator
R=jarin@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27373}
2015-03-23 16:03:21 +00:00
caitpotter88
24a9b8815e [es5] call ToString() on argument in String.prototype.concat() fast case
15.5.4.6 5.b requires each part to be converted using ToString(). This also needs to occur in the single argument fast-case.

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

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

Cr-Commit-Position: refs/heads/master@{#27372}
2015-03-23 15:07:46 +00:00
titzer
0389c28ddf Move this_has_uses from ParseInfo back into CompilationInfo and renumber CompilationInfo flags.
R=svenpanne@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27369}
2015-03-23 14:48:23 +00:00
mstarzinger
d6085f277c Make compiler more acceptive wrt Isolate::use_crankshaft.
This allows using %OptimizeFunctionOnNextCall and friends even when
Crankshaft is disabled. Note that this should only affect code paths
that are not relevant to performance. By now we have a single bailout
point in place within OptimizedCompileJob::CreateGraph that ensures
Crankshaft is only used when enabled and supported.

R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27367}
2015-03-23 14:25:53 +00:00
titzer
d931700b81 [turbofan] Fix control reducer bug with walking non-control edges during ConnectNTL phase.
R=jarin@chromium.org
BUG=chromium:469605
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#27366}
2015-03-23 14:08:25 +00:00
michael_dawson
8977d6c973 PPC: Use platform specific stubs for vector-based Load/KeyedLoad.
Port 34a1a76ddf

Original commit message:
A hydrogen code stub is not the best approach because it builds a frame
and doesn't have the technology to discard roots at tail call exits.
Platform-specific stubs provide much better performance at this point.

R=verwaest@chromium.org, mbrandy@us.ibm.com

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27365}
2015-03-23 13:25:22 +00:00
ulan
fdc1745e33 Respect old space allocation limit in PagedSpace::AllocateRaw.
BUG=v8:3976
LOG=NO

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

Cr-Commit-Position: refs/heads/master@{#27364}
2015-03-23 13:24:12 +00:00
aperez
9cbf6c7d7b Fix unintentional typo in Parser::ParseLazy() comments
BUG=
LOG=N
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#27363}
2015-03-23 11:38:12 +00:00
ulan
c56fa73699 Reland "Fix memory leak caused by field type in descriptor array."
BUG=v8:3877
LOG=NO

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

Cr-Commit-Position: refs/heads/master@{#27362}
2015-03-23 11:20:50 +00:00
jacob.bramley
b9ef7d4267 [ARM64] [turbofan] Support Float64Min and Float64Max.
ARM64 support for Float64Min and Float64Max machine operators
(https://codereview.chromium.org/998283002/) using fmin and fmax.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27361}
2015-03-23 10:25:23 +00:00
chunyang.dai
f8c4c12728 X87: Simplify pending message object handling.
port d4696c4841 (r27150)

original commit message:

  This moves the decision whether to report a message or not to when
  the pending exception is propagated instead of trying to preserve the
  decision in a ThreadLocalTop field.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27360}
2015-03-23 10:21:19 +00:00
cdai2
01f1348614 X87: Simplify pending message script handling.
port f71e262683 (r27127)

original commit message:

  Simplify pending message script handling.

  This removes the separate tracking of the pending message script,
  because that script is already stored in the message object and
  duplicating it in the ThreadLocalTop makes it more brittle.

BUG=
R=weiliang.lin@intel.com

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

Cr-Commit-Position: refs/heads/master@{#27358}
2015-03-23 09:27:50 +00:00
chunyang.dai
c1cf472f8c X87: Remove frame pointer from StackHandler.
port 36e69a916f (r27115)

original commit message:

 This reduces the size of the StackHandler by yet another word. We no
 longer need to keep track of the frame pointer, as the stack walk will
 be able to recalculate it.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27357}
2015-03-23 09:23:15 +00:00
chunyang.dai
113037d9f3 X87: [es6] Throw TypeError for computed static prototype property name
port 8d946b9c3f (r27106).

original commit message:

  [es6] Throw TypeError for computed static prototype property name

  The prototype of a class constructor function is read only. When we set
  computed property names we were ignoring this and we were overriding the
  property.

  Since the prototype is the only possible own read only property on the
  constructor function object we special case this so we do not have to
  check this for every property in the class literal.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27356}
2015-03-23 08:50:28 +00:00
arv
2184431f4c Use TO_OBJECT_INLINE a bit more
We were using ToObject in a lot of places where the common case is that
we already have an object. By changing to TO_OBJECT_INLINE we don't
have to go through 5 different if statements before falling through.

We were also calling ToObject too many times in DefineObjectProperty
where we already know that obj is an object.

BUG=None
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#27355}
2015-03-23 08:41:58 +00:00
arv
ea463a916b [es6] Object.getPrototypeOf should work with values
The final spec for Object.getPrototypeOf calls ToObject on the
parameter, which means that it should only throw for null and
undefined. For other non object values the prototype of the wrapper
should be used.

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

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

Cr-Commit-Position: refs/heads/master@{#27354}
2015-03-23 08:40:47 +00:00
cdai2
289ee15307 X87: Remove code object from StackHandler.
port e0aa8ebf93 (r27103).

original commit message:

  This reduces the size of the StackHandler by one word. We no longer
  need to keep track of the code object, as the stack walk finds it.

BUG=
R=weiliang.lin@intel.com

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

Cr-Commit-Position: refs/heads/master@{#27353}
2015-03-23 08:27:16 +00:00
caitpotter88
fd51f615eb [es6] remove --harmony-templates flag
BUG=v8:3230
R=dslomov@chromium.org, arv@chromium.org
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#27352}
2015-03-23 07:01:48 +00:00
balazs.kilvady
56d2ee0310 MIPS: Fix 'MIPS: Serializer: serialize internal references via object visitor.'
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27351}
2015-03-23 07:00:22 +00:00
balazs.kilvady
a5750db65e MIPS: [es6] generate rest parameters correctly for subclass constructors
Port bef80fcfd7

BUG=v8:3977
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#27349}
2015-03-23 06:58:09 +00:00
johan
a87e1dc343 MAP_NORESERVE was never implemented in FreeBSD as has been retired
as of https://reviews.freebsd.org/D848. This makes V8 build on
FreeBSD-current (and the forthcoming 11).

BUG=none
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27348}
2015-03-23 06:57:05 +00:00
akos.palfi
4f53c5b7f6 MIPS: Fix 'MIPS: [es6] implement Reflect.apply() & Reflect.construct()'
Port d21fd15467

TEST=mjsunit/harmony/reflect-construct
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27347}
2015-03-20 17:07:37 +00:00
Toon Verwaest
0f573464e6 Ensure we don't overflow in BCE
BUG=chromium:469148
LOG=y
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27346}
2015-03-20 16:43:05 +00:00
ishell
371ae8c7ad Revert of Allow compaction when incremental marking is on. (patchset #1 id:1 of https://codereview.chromium.org/1014263002/)
Reason for revert:
It seems to cause crbug/469146.

Original issue's description:
> Allow compaction when incremental marking is on.
>
> BUG=chromium:450824
> LOG=NO
>
> Committed: https://crrev.com/92f96e4e9a527fcb085b68f81ee14b26acdd4719
> Cr-Commit-Position: refs/heads/master@{#27267}

TBR=hpayer@chromium.org,ulan@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:450824

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

Cr-Commit-Position: refs/heads/master@{#27345}
2015-03-20 16:07:15 +00:00
caitpotter88
bef80fcfd7 [es6] generate rest parameters correctly for subclass constructors
BUG=v8:3977
R=dslomov@chromium.org, arv@chromium.org
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#27344}
2015-03-20 14:07:16 +00:00
balazs.kilvady
86a6b6ff91 MIPS: [turbofan] Turn Math.clz32 into an inlinable builtin.
Port 3aa206b865

BUG=v8:3952
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27343}
2015-03-20 14:05:36 +00:00
chunyang.dai
f395ccd6db X87: [turbofan] Implement throwing exceptions into TurboFan code.
port 1382879f29 (r27016).

oringinal commit message:

    [turbofan] Implement throwing exceptions into TurboFan code.

    This extends the stack unwinding logic to respect optimized frames
    and perform a lookup in the handler table to find handlers. It also
    contains fixes to the API call stubs to allow a stack walk while
    promoting scheduled exceptions.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27342}
2015-03-20 13:45:08 +00:00
bmeurer
ff89876bb9 [turbofan] Fix lowering of Math.max for integral inputs.
R=jarin@chromium.org
BUG=chromium:468162
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#27341}
2015-03-20 12:05:19 +00:00