Commit Graph

40204 Commits

Author SHA1 Message Date
ulan
ee41ee6bd7 [heap] Color object black on unsafe layout change.
This is a part of synchronization protocol with the concurrent marking.

BUG=chromium:694255

Review-Url: https://codereview.chromium.org/2872323002
Cr-Commit-Position: refs/heads/master@{#45262}
2017-05-11 15:34:04 +00:00
Michael Lippautz
7a88f72946 Revert "Revert "Revert "Revert "[global-handles] Remove dead code""""
This reverts commit 682d5369b8.

Reason for revert: Didn't see that this was the Reland... now we should be in good state.

Original change's description:
> Revert "Revert "Revert "[global-handles] Remove dead code"""
> 
> This reverts commit c836a95e87.
> 
> Reason for revert: I don't think this was related.
> 
> Original change's description:
> > Revert "Revert "[global-handles] Remove dead code""
> > 
> > This reverts commit 58020872dc.
> > 
> > Reason for revert: Turned out to be a bot issue, reverting the revert. 
> > 
> > Original change's description:
> > > Revert "[global-handles] Remove dead code"
> > > 
> > > This reverts commit e2890c19a7.
> > > 
> > > Reason for revert: Looks like this CL causes slowdown on multiple builders, Check tests timeout and raise exceptions on the bot. Possible it is a bot issue as well, see tracking bug - https://bugs.chromium.org/p/chromium/issues/detail?id=720606
> > > 
> > > Original change's description:
> > > > [global-handles] Remove dead code
> > > > 
> > > > Bug: chromium:720477
> > > > Change-Id: I090168c575c41b7038af5dfba6cd8973d1154c51
> > > > Reviewed-on: https://chromium-review.googlesource.com/501790
> > > > Reviewed-by: Hannes Payer <hpayer@chromium.org>
> > > > Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> > > > Cr-Commit-Position: refs/heads/master@{#45241}
> > > 
> > > TBR=hpayer@chromium.org,mlippautz@chromium.org,jochen@chromium.org
> > > NOPRESUBMIT=true
> > > NOTREECHECKS=true
> > > NOTRY=true
> > > Bug: chromium:720477
> > > 
> > > Change-Id: I92f40d8c4dbfdb5208b3068648612e8c5b97fb20
> > > Reviewed-on: https://chromium-review.googlesource.com/502029
> > > Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
> > > Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
> > > Cr-Commit-Position: refs/heads/master@{#45243}
> > 
> > TBR=hpayer@chromium.org,gdeepti@chromium.org,mlippautz@chromium.org,jochen@chromium.org,v8-reviews@googlegroups.com
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > Bug: chromium:720477
> > 
> > Change-Id: I70e190e0c27074228a8128aa849e5a419af915e8
> > Reviewed-on: https://chromium-review.googlesource.com/502030
> > Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
> > Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#45244}
> 
> TBR=hpayer@chromium.org,gdeepti@chromium.org,mlippautz@chromium.org,jochen@chromium.org,v8-reviews@googlegroups.com
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> Bug: chromium:720477
> 
> Change-Id: If3e4abea51d87546e25076b906a4c91e5ccf947b
> Reviewed-on: https://chromium-review.googlesource.com/503007
> Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
> Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#45246}

TBR=hpayer@chromium.org,gdeepti@chromium.org,mlippautz@chromium.org,jochen@chromium.org,v8-reviews@googlegroups.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Bug: chromium:720477

Change-Id: Id7dc886cc20b3b36ca5bb643686fe4fe2e98a3a7
Reviewed-on: https://chromium-review.googlesource.com/503008
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45261}
2017-05-11 14:26:37 +00:00
Clemens Hammacher
651c4e9a5a [wasm] Remove impossible TODO
std::vector can never store const types, as the stored type has to be
either copy-constructable or move-constructable.
std::vector<const X> does not compile and makes no sense if you think
about it.
Thus remove the TODO to use such a vector.

R=ahaas@chromium.org

Change-Id: Ieb00a31872f04c720d2ef90b70452c18e79f0a5d
Reviewed-on: https://chromium-review.googlesource.com/503148
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45260}
2017-05-11 14:24:34 +00:00
gsathya
c8b77e9614 Reland [interpreter] Add intrinsics for map/set instance type checks
BUG=v8:6261, v8:6278, v8:6344

Review-Url: https://codereview.chromium.org/2868343002
Cr-Original-Commit-Position: refs/heads/master@{#45236}
Committed: 55a610ba24
Review-Url: https://codereview.chromium.org/2868343002
Cr-Commit-Position: refs/heads/master@{#45259}
2017-05-11 14:15:45 +00:00
Michael Lippautz
ece19e99b1 [heap] MinorMC: Use HeapVisitor instead of StaticNewSpacevisitor
Bug: chromium:651354
Change-Id: I797a0eee698c9c5a6bf191fb041111c9ff5440cf
Reviewed-on: https://chromium-review.googlesource.com/503227
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45258}
2017-05-11 13:02:56 +00:00
dusan.simicic
84f244dd6a MIPS64: Fix load in Generate_JSConstructStubGeneric
This patch fixes regresion introduced in CL:
https://chromium-review.googlesource.com/c/489525/

ldr instruction is unaligned load on MIPS and it is not available in
MIPS64r6 architecture.

BUG=

Review-Url: https://codereview.chromium.org/2873873005
Cr-Commit-Position: refs/heads/master@{#45257}
2017-05-11 12:44:43 +00:00
Michael Starzinger
b4948f1b81 [asm.js] Test and fix function (table) immutability.
This makes sure that function variables as well as function table
variables are properly typed as immutable, hence assignments to them
should cause validation failures.

R=clemensh@chromium.org
TEST=mjsunit/asm/immutable
BUG=chromium:721271

Change-Id: Ia3f65fd0782ca571ffcf99520fdbd8fc5a359d16
Reviewed-on: https://chromium-review.googlesource.com/503209
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45256}
2017-05-11 12:25:26 +00:00
Michael Starzinger
26f2d5c21e [parser] Remove redundant "dot" tracking for numbers.
This removes logic tracking whether a number literal in the source
contained a "dot" character or not. The tracking was only needed for
validation of asm.js modules on the AST, it is obsolete now.

R=marja@chromium.org

Change-Id: Ib474e2281db80fe56d43e1af52221a7c66261e01
Reviewed-on: https://chromium-review.googlesource.com/503228
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45255}
2017-05-11 12:24:20 +00:00
ulan
8a5382b789 [heap] Slot snapshot for visiting JSObjects in concurrent marker.
The mutator can convert a pointer slot of a JSObject to an unboxed
double slot. To make it we safe for the concurrent marker, we require
synchronization using the object markbits.

The concurrent marker visits the JSObject as follows:
- save snapshot of object slot addresses and values.
- visit the snapshot only after successful transition of the object
  from grey to black.

Before an unsafe layout change the mutator colors the object black
and visits it using the bailout marking deque.

BUG=chromium:694255

Review-Url: https://codereview.chromium.org/2876553002
Cr-Commit-Position: refs/heads/master@{#45254}
2017-05-11 11:11:11 +00:00
Michael Starzinger
9acc66cd83 [asm.js] Avoid redundant string copying in builder.
R=clemensh@chromium.org

Change-Id: I5c37cdf4f11ff7062e6af8c7af5b6eabf1baedad
Reviewed-on: https://chromium-review.googlesource.com/503207
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45253}
2017-05-11 11:08:04 +00:00
ulan
e4b3f93eab [heap] Add a flag to disable remembered set verification.
BUG=chromium:720606

Review-Url: https://codereview.chromium.org/2871173006
Cr-Commit-Position: refs/heads/master@{#45252}
2017-05-11 11:04:12 +00:00
Michael Achenbach
332353556e [CQ] Make linux64 gcc debug bot mandatory
Bug: v8:6355
NOTRY=true
TBR=sergiyb@chromium.org

Change-Id: Ib0b6d32cf330d03d1898f55f7fc21092ce816beb
Reviewed-on: https://chromium-review.googlesource.com/503269
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45251}
2017-05-11 10:02:10 +00:00
Andreas Haas
72019a0428 [wasm] Streaming decoder
This CL implements a streaming decoder which takes the bytes
of a wasm module as an input, potentially split into multiple
chunks, and decodes them into segments. Each segment either
contains the payload of a whole section, or the code of a
single function. The goal is that the streaming decoder is
used for streaming compilation. That's where the interface
comes from, see
(https://cs.chromium.org/chromium/src/v8/include/v8.h?q=OnBytesReceived&sq=package:chromium&l=4060)

Error positions are not reported correctly at the moment. I
plan to do this in a separate CL.

Change-Id: I6e3df6a91945c7baec2dc4f5de2e5f47636083df
Reviewed-on: https://chromium-review.googlesource.com/471350
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Mircea Trofin <mtrofin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45250}
2017-05-11 09:46:31 +00:00
Michael Achenbach
a6424c7626 [release] Relax git_footers parsing to match that of Gerrit (JGit).
Port https://chromium-review.googlesource.com/c/501849/

NOTRY=true
TBR=tandrii@chromium.org
Bug: chromium:717504

Change-Id: Ia37759c615cc3ad4d2978a4589ca687a750afc46
Reviewed-on: https://chromium-review.googlesource.com/503028
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45249}
2017-05-11 09:02:47 +00:00
mlippautz
4ea91a0190 [heap] MinorMC: Only iterate new space global handles for ptr updates
The reason we need this mode is that IterateRoots for the Scavenger only
captures dependent weak nodes. This is also what we do for marking for the
minor MC.

Since the regular marking might also mark objects that are weakly
(non-dependently) pointed to by nodes we need to capture all of them during
pointers updating. The reason this works for the Scavenger is because we do one
pass at the end of the scavenger (combined with resetting) that captures all
those nodes.

BUG=chromium:651354

Review-Url: https://codereview.chromium.org/2869413002
Cr-Commit-Position: refs/heads/master@{#45248}
2017-05-11 08:06:59 +00:00
jgruber
f9c4fc0d20 [error] Clear external_caught_exception in Error formatting
Clearing the pending exception is not enough - if we want to swallow an
exception while currently on top of an external handler (e.g. TryCatch),
we also need to clear external_caught_exception.

BUG=chromium:719380

Review-Url: https://codereview.chromium.org/2870423002
Cr-Commit-Position: refs/heads/master@{#45247}
2017-05-11 06:35:53 +00:00
Michael Lippautz
682d5369b8 Revert "Revert "Revert "[global-handles] Remove dead code"""
This reverts commit c836a95e87.

Reason for revert: I don't think this was related.

Original change's description:
> Revert "Revert "[global-handles] Remove dead code""
> 
> This reverts commit 58020872dc.
> 
> Reason for revert: Turned out to be a bot issue, reverting the revert. 
> 
> Original change's description:
> > Revert "[global-handles] Remove dead code"
> > 
> > This reverts commit e2890c19a7.
> > 
> > Reason for revert: Looks like this CL causes slowdown on multiple builders, Check tests timeout and raise exceptions on the bot. Possible it is a bot issue as well, see tracking bug - https://bugs.chromium.org/p/chromium/issues/detail?id=720606
> > 
> > Original change's description:
> > > [global-handles] Remove dead code
> > > 
> > > Bug: chromium:720477
> > > Change-Id: I090168c575c41b7038af5dfba6cd8973d1154c51
> > > Reviewed-on: https://chromium-review.googlesource.com/501790
> > > Reviewed-by: Hannes Payer <hpayer@chromium.org>
> > > Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> > > Cr-Commit-Position: refs/heads/master@{#45241}
> > 
> > TBR=hpayer@chromium.org,mlippautz@chromium.org,jochen@chromium.org
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > Bug: chromium:720477
> > 
> > Change-Id: I92f40d8c4dbfdb5208b3068648612e8c5b97fb20
> > Reviewed-on: https://chromium-review.googlesource.com/502029
> > Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
> > Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#45243}
> 
> TBR=hpayer@chromium.org,gdeepti@chromium.org,mlippautz@chromium.org,jochen@chromium.org,v8-reviews@googlegroups.com
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> Bug: chromium:720477
> 
> Change-Id: I70e190e0c27074228a8128aa849e5a419af915e8
> Reviewed-on: https://chromium-review.googlesource.com/502030
> Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#45244}

TBR=hpayer@chromium.org,gdeepti@chromium.org,mlippautz@chromium.org,jochen@chromium.org,v8-reviews@googlegroups.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Bug: chromium:720477

Change-Id: If3e4abea51d87546e25076b906a4c91e5ccf947b
Reviewed-on: https://chromium-review.googlesource.com/503007
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45246}
2017-05-11 05:59:00 +00:00
v8-autoroll
57ed8ba330 Update V8 DEPS.
Rolling v8/build: 5a162d8..2e68430

Rolling v8/third_party/catapult: 0e86ab1..27f7008

Rolling v8/tools/swarming_client: 11e31af..e6fc938

TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org

Change-Id: I076d768c3580e0981740cd27a40decac24fa062b
Reviewed-on: https://chromium-review.googlesource.com/502350
Reviewed-by: v8 autoroll <v8-autoroll@chromium.org>
Commit-Queue: v8 autoroll <v8-autoroll@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45245}
2017-05-11 03:38:57 +00:00
Deepti Gandluri
c836a95e87 Revert "Revert "[global-handles] Remove dead code""
This reverts commit 58020872dc.

Reason for revert: Turned out to be a bot issue, reverting the revert. 

Original change's description:
> Revert "[global-handles] Remove dead code"
> 
> This reverts commit e2890c19a7.
> 
> Reason for revert: Looks like this CL causes slowdown on multiple builders, Check tests timeout and raise exceptions on the bot. Possible it is a bot issue as well, see tracking bug - https://bugs.chromium.org/p/chromium/issues/detail?id=720606
> 
> Original change's description:
> > [global-handles] Remove dead code
> > 
> > Bug: chromium:720477
> > Change-Id: I090168c575c41b7038af5dfba6cd8973d1154c51
> > Reviewed-on: https://chromium-review.googlesource.com/501790
> > Reviewed-by: Hannes Payer <hpayer@chromium.org>
> > Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#45241}
> 
> TBR=hpayer@chromium.org,mlippautz@chromium.org,jochen@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> Bug: chromium:720477
> 
> Change-Id: I92f40d8c4dbfdb5208b3068648612e8c5b97fb20
> Reviewed-on: https://chromium-review.googlesource.com/502029
> Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#45243}

TBR=hpayer@chromium.org,gdeepti@chromium.org,mlippautz@chromium.org,jochen@chromium.org,v8-reviews@googlegroups.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Bug: chromium:720477

Change-Id: I70e190e0c27074228a8128aa849e5a419af915e8
Reviewed-on: https://chromium-review.googlesource.com/502030
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45244}
2017-05-10 21:55:39 +00:00
Deepti Gandluri
58020872dc Revert "[global-handles] Remove dead code"
This reverts commit e2890c19a7.

Reason for revert: Looks like this CL causes slowdown on multiple builders, Check tests timeout and raise exceptions on the bot. Possible it is a bot issue as well, see tracking bug - https://bugs.chromium.org/p/chromium/issues/detail?id=720606

Original change's description:
> [global-handles] Remove dead code
> 
> Bug: chromium:720477
> Change-Id: I090168c575c41b7038af5dfba6cd8973d1154c51
> Reviewed-on: https://chromium-review.googlesource.com/501790
> Reviewed-by: Hannes Payer <hpayer@chromium.org>
> Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#45241}

TBR=hpayer@chromium.org,mlippautz@chromium.org,jochen@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Bug: chromium:720477

Change-Id: I92f40d8c4dbfdb5208b3068648612e8c5b97fb20
Reviewed-on: https://chromium-review.googlesource.com/502029
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45243}
2017-05-10 21:52:59 +00:00
kozyatinskiy
fe0d5c7ca8 Revert of [inspector] use creation stack trace as parent for async call chains (patchset #2 id:20001 of https://codereview.chromium.org/2868493002/ )
Reason for revert:
CHECK is too strict.

Original issue's description:
> [inspector] use creation stack trace as parent for async call chains
>
> Creation stack trace points to the place where callback was actually chained, scheduled points where parent promise was resolved.
> For async tasks without creation stack (e.g. setTimeout) we continue to use scheduled as creation since usually they are the same.
>
> BUG=v8:6189
> R=dgozman@chromium.org
>
> Review-Url: https://codereview.chromium.org/2868493002
> Cr-Commit-Position: refs/heads/master@{#45198}
> Committed: e118462f18

TBR=dgozman@chromium.org,alexclarke@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=v8:6189

Review-Url: https://codereview.chromium.org/2868423004
Cr-Commit-Position: refs/heads/master@{#45242}
2017-05-10 21:24:37 +00:00
Michael Lippautz
e2890c19a7 [global-handles] Remove dead code
Bug: chromium:720477
Change-Id: I090168c575c41b7038af5dfba6cd8973d1154c51
Reviewed-on: https://chromium-review.googlesource.com/501790
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45241}
2017-05-10 19:49:07 +00:00
Mircea Trofin
0aef84da31 Revert "Revert "Reland "Introducing an event loop mechanism for d8."""
This reverts commit 619dfed4f7.

Original CL:  https://chromium-review.googlesource.com/c/494968/

Bug: 
Change-Id: Ib4a1f481e46f1972420cc8f8d2192bb6c470e08d
Reviewed-on: https://chromium-review.googlesource.com/501650
Commit-Queue: Brad Nelson <bradnelson@chromium.org>
Reviewed-by: Brad Nelson <bradnelson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45240}
2017-05-10 18:34:10 +00:00
gdeepti
386cd83e6e Revert of [interpreter] Add intrinsics for map/set instance type checks (patchset #1 id:1 of https://codereview.chromium.org/2868343002/ )
Reason for revert:
Breaks V8 Linux - arm64 - sim - gc stress -

https://build.chromium.org/p/client.v8.ports/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20gc%20stress/builds/6471/steps/Bisect%20f86985ad.Retry/logs/typedarray-every

Original issue's description:
> [interpreter] Add intrinsics for map/set instance type checks
>
> BUG=v8:6261, v8:6278, v8:6344
>
> Review-Url: https://codereview.chromium.org/2868343002
> Cr-Commit-Position: refs/heads/master@{#45236}
> Committed: 55a610ba24

TBR=rmcilroy@chromium.org,gsathya@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:6261, v8:6278, v8:6344

Review-Url: https://codereview.chromium.org/2878473002
Cr-Commit-Position: refs/heads/master@{#45239}
2017-05-10 17:34:50 +00:00
gdeepti
e2fc979e0e [wasm] Do not unregister an ArrayBuffer if it is already external
- Currently if GrowMemory is called with pages = 0, an attempt is made to
   unregister the ArrayBuffer even if it is external. Cleanup so all Detaching
   of ArrayBuffer is centralized to one method, and can only be called fromJS.
 - Gate creating WeakHandles to the memory on the buffer having guard pages
   enabled. Currently creating a WeakHandle is gated only on if the buffer
   is_external true. If a buffer is marked is_external = true to begin with,
   the WeakHandle is created and the Finalizer is run causing the program to
   crash.

BUG=chromium:717647

Review-Url: https://codereview.chromium.org/2867233002
Cr-Commit-Position: refs/heads/master@{#45238}
2017-05-10 17:28:45 +00:00
Michael Starzinger
eab268e5a6 [asm.js] Make validation of stdlib uses non-observable.
This makes sure that the checking of stdlib values during module
instantiation is non-observable. It is needed to prevent observable
double evaluation of the involved property loads in case of failures
during instantiation and also fixes some issues with exceptions
happening during property loads.

R=clemensh@chromium.org
TEST=mjsunit/asm/asm-stdlib
BUG=v8:6297

Change-Id: I1d0c371e51bee8186d14fa794fb3f9b7f67e5944
Reviewed-on: https://chromium-review.googlesource.com/501887
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45237}
2017-05-10 16:29:05 +00:00
gsathya
55a610ba24 [interpreter] Add intrinsics for map/set instance type checks
BUG=v8:6261, v8:6278, v8:6344

Review-Url: https://codereview.chromium.org/2868343002
Cr-Commit-Position: refs/heads/master@{#45236}
2017-05-10 16:19:37 +00:00
mlippautz
f86985ad11 [heap] Bound number of tasks by embedder limit instead of artificially capping
BUG=chromium:651354

Review-Url: https://codereview.chromium.org/2872063003
Cr-Commit-Position: refs/heads/master@{#45235}
2017-05-10 15:30:36 +00:00
Ross McIlroy
11a211ff1b Reland: [TypeFeedbackVector] Store optimized code in the vector
Since the feedback vector is itself a native context structure, why
not store optimized code for a function in there rather than in
a map from native context to code? This allows us to get rid of
the optimized code map in the SharedFunctionInfo, saving a pointer,
and making lookup of any optimized code quicker.

Original patch by Michael Stanton <mvstanton@chromium.org>

BUG=v8:6246,chromium:718891
TBR=yangguo@chromium.org,ulan@chromium.org

Change-Id: I3bb9ec0cfff32e667cca0e1403f964f33a6958a6
Reviewed-on: https://chromium-review.googlesource.com/500134
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45234}
2017-05-10 15:04:35 +00:00
Michael Starzinger
93fff34eaa [asm.js] Remove redundant data duplication from "wasm_data".
R=clemensh@chromium.org

Change-Id: Id3a44a247bc881ba0f9d41a242cbb6130094771c
Reviewed-on: https://chromium-review.googlesource.com/501847
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45233}
2017-05-10 14:07:45 +00:00
Tobias Tebbi
2026d5cb79 [turbofan] [builtins] Unify construct builtins for JS functions and classes and add inlining and deoptimizer support
BUG=v8:6180
R=mstarzinger@chromium.org

Change-Id: Iac5782a0f6b0ff92293421656d907073cfc3f5dd
Reviewed-on: https://chromium-review.googlesource.com/489525
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45232}
2017-05-10 13:17:13 +00:00
jkummerow
6bfee50e15 [deserializer] Make large object deserialization GC safe
When black allocation is turned on at deserialization time, then
slots in deserialized objects have to be visited by the incremental
marker. For spaces with reservations, this has always been done; for
large object space with its special handling, this patch adds it.

Additionally, we must ensure that no incremental steps that might
cause incremental marking to finish are performed while there is an
AlwaysAllocateScope around.

BUG=chromium:718859

Review-Url: https://codereview.chromium.org/2868103002
Cr-Commit-Position: refs/heads/master@{#45231}
2017-05-10 12:54:01 +00:00
ulan
6110123257 [heap] Synchronize young generation GC with concurrent marking.
BUG=chromium:694255

Review-Url: https://codereview.chromium.org/2872263002
Cr-Commit-Position: refs/heads/master@{#45230}
2017-05-10 12:50:32 +00:00
ulan
69c6970fae [heap] Reland "Verify remembered set for objects in the old generation."
This reverts commit 8f89e28661.

Review-Url: https://codereview.chromium.org/2876503002
Cr-Commit-Position: refs/heads/master@{#45229}
2017-05-10 12:41:22 +00:00
tebbi
936b3d8d66 [runtime] do not left-trim short arrays
BUG=v8:6380

Review-Url: https://codereview.chromium.org/2872173003
Cr-Commit-Position: refs/heads/master@{#45228}
2017-05-10 12:13:43 +00:00
ulan
8f89e28661 Revert of [heap] Verify remembered set for objects in the old generation. (patchset #3 id:40001 of https://codereview.chromium.org/2868053002/ )
Reason for revert:
buildbot failures

Original issue's description:
> [heap] Verify remembered set for objects in the old generation.
>
> Review-Url: https://codereview.chromium.org/2868053002
> Cr-Commit-Position: refs/heads/master@{#45225}
> Committed: 755a809ee5

TBR=mlippautz@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.chromium.org/2870413002
Cr-Commit-Position: refs/heads/master@{#45227}
2017-05-10 10:37:37 +00:00
Miran.Karic
838d0b4bd2 MIPS64: Add/fix bit insertion/extraction instrs.
Added support for DINSM and DINSU bit insertion instructions. Also fixed
errors with bit extraction instructions, added disassembler tests and
adjusted the code to make it more compact.

BUG=
TEST=cctest/test-assembler-mips/Dins
     cctest/test-disasm-mips/Type0

Review-Url: https://codereview.chromium.org/2871663002
Cr-Commit-Position: refs/heads/master@{#45226}
2017-05-10 10:06:53 +00:00
ulan
755a809ee5 [heap] Verify remembered set for objects in the old generation.
Review-Url: https://codereview.chromium.org/2868053002
Cr-Commit-Position: refs/heads/master@{#45225}
2017-05-10 09:53:08 +00:00
Michael Achenbach
585428b8a1 [release] Fix parsing of gerrit footers with empty values.
This ports:
https://chromium-review.googlesource.com/c/493466/

The code was originally copied from bot_update. So were the bugs.

Bug: chromium:717504
NOTRY=true
TBR=tandrii@chromium.org,agable@chromium.org

Change-Id: If2d2dafdca8cd44f325dc770dfc42c17889a3b4a
Reviewed-on: https://chromium-review.googlesource.com/501787
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45224}
2017-05-10 09:49:56 +00:00
mlippautz
cf37556f0e [heap] Minor MC: Implement page moving
BUG=chromium:651354

Review-Url: https://codereview.chromium.org/2855143003
Cr-Commit-Position: refs/heads/master@{#45223}
2017-05-10 09:05:53 +00:00
jgruber
540419b660 [value-serializer] Verify deserialized JSRegExp flags
One of the serializer fuzzers passes in random data to the deserializer,
which can then be used to deserialize a JSRegExp instance with random flag
contents. This can cause issues since the JSRegExp::Flag enum statically
contains kDotAll - but it is only valid to set kDotAll iff
FLAG_harmony_regexp_dotall is set.

This CL verifies deserialized flags before constructing the JSRegExp
and bails out if they are invalid.

R=jbroman@chromium.org,yangguo@chromium.org
BUG=chromium:719280

Review-Url: https://codereview.chromium.org/2870743004
Cr-Commit-Position: refs/heads/master@{#45222}
2017-05-10 08:52:21 +00:00
Michael Starzinger
0679765daf [asm.js] Test and fix return type validation.
This fixes cases where falling off the end of a non-void function was
accepted as a valid asm.js module. This led to translation failures in
the WASM code. Only void functions are allowed to fall off the end.

R=clemensh@chromium.org
TEST=mjsunit/asm/return-types
BUG=chromium:719286

Change-Id: I7b1c9ba5381b87a23cf0a2171bee5e5f5e8cd9de
Reviewed-on: https://chromium-review.googlesource.com/500312
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45221}
2017-05-10 08:40:53 +00:00
predrag.rudic
a1f00971a1 [runtime function] Fix IndexOf when start is -Infinity
By C++ standard, behaviour is undedined when converting -Infinity to
integer. This patch assures correct behaviour in this case on all
platforms.

BUG=

Review-Url: https://codereview.chromium.org/2865113005
Cr-Commit-Position: refs/heads/master@{#45220}
2017-05-10 08:34:32 +00:00
jgruber
9fbfd6ead6 [regexp] Don't adapt arguments for @@replace and @@split
Mechanical change to remove argument adaption from RegExp.p.split,
RegExp.p.replace when the actual arguments counts does not match
the formal parameter count (should be a tad faster this way).

BUG=v8:6369

Review-Url: https://codereview.chromium.org/2865313002
Cr-Commit-Position: refs/heads/master@{#45219}
2017-05-10 06:51:56 +00:00
jgruber
7cce53586f [array] Don't adapt arguments for ArrayIndexOf and ArrayIncludes
Mechanical change to remove argument adaption from Array.p.indexOf and
Array.p.includes when the actual arguments counts does not match the formal
parameter count.

BUG=v8:6369

Review-Url: https://codereview.chromium.org/2873653002
Cr-Commit-Position: refs/heads/master@{#45218}
2017-05-10 06:46:29 +00:00
Alexey Kozyatinskiy
dccfe5dbbe Revert ENTER_V8 replacement for Isolate::ThrowException
Isolate::ThrowException calls Debug::OnException, this method can potentially enter debugger context and on exception inspector can lazily compile injected-script-source so NO_SCRIPT_NO_EXCEPTIONS restriction looks too strict to me

R=jochen@chromium.org
BUG=v8:5830

Change-Id: Ic37aaa7bc6f2bd5922654f1a3c235d5eaacb8f85
Reviewed-on: https://chromium-review.googlesource.com/501351
Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45217}
2017-05-10 06:38:01 +00:00
bmeurer
6d38f89d26 [turbofan] Boost performance of Array.prototype.shift by 4x.
For small arrays, it's way faster to just move the elements instead of
doing the fairly complex and heavy-weight left-trimming. Crankshaft has
had this optimization for small arrays already; this CL more or less
ports this functionality to TurboFan, which yields a 4x speed-up when
using shift on small arrays (with up to 16 elements).

This should recover some of the regressions reported in the Node.js issues

  https://github.com/nodejs/node/issues/12657

and discovered for the syncthrough module using

  https://github.com/mcollina/syncthrough/blob/master/benchmarks/basic.js

as benchmark.

R=jarin@chromium.org
BUG=v8:6376

Review-Url: https://codereview.chromium.org/2874453002
Cr-Commit-Position: refs/heads/master@{#45216}
2017-05-10 05:48:21 +00:00
Mircea Trofin
619dfed4f7 Revert "Reland "Introducing an event loop mechanism for d8.""
This reverts commit 45bbf8041d.

Reason for revert: Still some flakes.

Original change's description:
> Reland "Introducing an event loop mechanism for d8."
> 
> This reverts commit 02595c60a3.
> 
> Original CL: https://chromium-review.googlesource.com/c/494968/
> 
> Bug: 
> Change-Id: I7441ed91ebb4a087cdf437ae3239f9b021110a11
> Reviewed-on: https://chromium-review.googlesource.com/500947
> Reviewed-by: Bill Budge <bbudge@chromium.org>
> Commit-Queue: Mircea Trofin <mtrofin@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#45212}

TBR=bradnelson@chromium.org,bbudge@chromium.org,mtrofin@chromium.org,jochen@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Bug: 
Change-Id: Idf2ea0431865104042a68bd2dac944a9725bf3f9
Reviewed-on: https://chromium-review.googlesource.com/501370
Reviewed-by: Mircea Trofin <mtrofin@chromium.org>
Commit-Queue: Mircea Trofin <mtrofin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45215}
2017-05-10 04:50:19 +00:00
v8-autoroll
320d808e29 Update V8 DEPS.
Rolling v8/build: db1fe5b..5a162d8

Rolling v8/third_party/catapult: a263e55..0e86ab1

TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org

Change-Id: Ibe00f33fbdde392d015f9b825eb4e0ba64370fc6
Reviewed-on: https://chromium-review.googlesource.com/501212
Reviewed-by: v8 autoroll <v8-autoroll@chromium.org>
Commit-Queue: v8 autoroll <v8-autoroll@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45214}
2017-05-10 03:33:27 +00:00
Jungshik Shin
50f37c2680 Prep for ICU 59 update (again)
During i18n code reorg, a couple of changes for ICU 59 prep were
lost. Add them back.

See https://codereview.chromium.org/2738503008/ for the original CL.

BUG=v8:6062
TEST=v8 can be compiled with ICU 59 (hash: c28886684 ).

Change-Id: Ie19a40a9e54d0a8966dbe8e072f9afabf9e85e4f
Reviewed-on: https://chromium-review.googlesource.com/499609
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Jungshik Shin <jshin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45213}
2017-05-10 01:21:42 +00:00