Commit Graph

39942 Commits

Author SHA1 Message Date
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
Mircea Trofin
45bbf8041d 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}
2017-05-10 01:02:42 +00:00
danno
fc274fbe99 Unify implementations of Map handles vectors and lists
This CL introduces a new type, MapHandles, which is a STL vector of Handle<Map>.
It is now used everywhere where lists of Handle<Maps> are required, replacing
usages of V8's internal List type.

Also-By: franzih@chromium.org
BUG=v8:6333,v8:6325
LOG=N

Review-Url: https://codereview.chromium.org/2809923002
Cr-Commit-Position: refs/heads/master@{#45211}
2017-05-09 22:36:00 +00:00
bbudge
a459f188fa [ARM] Implement irregular vector shuffles for SIMD.
- S32x4Shuffle by decomposing into s-register moves if no patterns match.
- S16x8Shuffle, S8x16Shuffle implemented with vtbl if no patterns match.

LOG=N
BUG=v8:6020

Review-Url: https://codereview.chromium.org/2856363003
Cr-Commit-Position: refs/heads/master@{#45210}
2017-05-09 21:04:27 +00:00
Mircea Trofin
e9a05114a8 Revert "Revert "Revert "Revert "Introducing an event loop mechanism for d8.""""
This reverts commit 266ff75630.

Reason for revert: Gerrit went ahead and committed my CL before I had a chance to upload the fix. 

Original change's description:
> Revert "Revert "Revert "Introducing an event loop mechanism for d8."""
> 
> This reverts commit 7dcc8effbd.
> 
> Reason for revert: Fixed: when running under --verify-predictable,
> because the PredictablePlatform runs either foreground and background
> tasks immediately, we don't need to support event looping.
> 
> Original change's description:
> > Revert "Revert "Introducing an event loop mechanism for d8.""
> > 
> > This reverts commit f7c25da680.
> > 
> > Reason for revert: Fixed
> > 
> > Original change's description:
> > > Revert "Introducing an event loop mechanism for d8."
> > > 
> > > This reverts commit de964dbe57.
> > > 
> > > Reason for revert:
> > > https://build.chromium.org/p/client.v8/builders/V8%20Linux/builds/17958
> > > 
> > > Original change's description:
> > > > Introducing an event loop mechanism for d8.
> > > > 
> > > > This mechanism ensures APIs like wasm async complete their work, 
> > > > without requiring use of natives (%APIs).
> > > > 
> > > > The mechanism is similar to the one used in content_shell,
> > > > which should allow us to easily port tests in that environment.
> > > > 
> > > > Review-Url: https://codereview.chromium.org/2842843005
> > > > Cr-Original-Commit-Position: refs/heads/master@{#44908}
> > > > Bug: 
> > > > Change-Id: I9deee0d256a600c60b42902fc8ef8478e5546344
> > > > Reviewed-on: https://chromium-review.googlesource.com/494968
> > > > Commit-Queue: Mircea Trofin <mtrofin@google.com>
> > > > Reviewed-by: Jochen Eisinger <jochen@chromium.org>
> > > > Cr-Commit-Position: refs/heads/master@{#45165}
> > > 
> > > TBR=bradnelson@chromium.org,mtrofin@chromium.org,mtrofin@google.com,jochen@chromium.org
> > > NOPRESUBMIT=true
> > > NOTREECHECKS=true
> > > NOTRY=true
> > > 
> > > Change-Id: Iafec2615d705d1990c57229cab3a988c00b5e12f
> > > Reviewed-on: https://chromium-review.googlesource.com/498630
> > > Reviewed-by: Michael Achenbach <machenbach@chromium.org>
> > > Commit-Queue: Michael Achenbach <machenbach@chromium.org>
> > > Cr-Commit-Position: refs/heads/master@{#45166}
> > 
> > TBR=bradnelson@chromium.org,machenbach@chromium.org,mtrofin@chromium.org,mtrofin@google.com,jochen@chromium.org,v8-reviews@googlegroups.com
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > 
> > Change-Id: Ic3c782e918326e291a6cb9bb349c609e9a340b09
> > Reviewed-on: https://chromium-review.googlesource.com/498430
> > Reviewed-by: Mircea Trofin <mtrofin@chromium.org>
> > Commit-Queue: Mircea Trofin <mtrofin@google.com>
> > Cr-Commit-Position: refs/heads/master@{#45172}
> 
> TBR=bradnelson@chromium.org,machenbach@chromium.org,mtrofin@chromium.org,mtrofin@google.com,jochen@chromium.org,v8-reviews@googlegroups.com
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> 
> Change-Id: If3036b3d4c89a88df3976924f11be88bfc5a6aa8
> Reviewed-on: https://chromium-review.googlesource.com/500867
> Reviewed-by: Mircea Trofin <mtrofin@chromium.org>
> Commit-Queue: Mircea Trofin <mtrofin@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#45207}

TBR=bradnelson@chromium.org,machenbach@chromium.org,mtrofin@chromium.org,mtrofin@google.com,jochen@chromium.org,v8-reviews@googlegroups.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I4ccf312bebd8c3451a749457a123d0e4f48a666b
Reviewed-on: https://chromium-review.googlesource.com/500868
Reviewed-by: Mircea Trofin <mtrofin@chromium.org>
Commit-Queue: Mircea Trofin <mtrofin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45209}
2017-05-09 19:58:25 +00:00
jyan
18c33c504a [wasm] Implement 128-bit endian swap for simd type
BUG=

Review-Url: https://codereview.chromium.org/2838943002
Cr-Commit-Position: refs/heads/master@{#45208}
2017-05-09 19:54:19 +00:00
Mircea Trofin
266ff75630 Revert "Revert "Revert "Introducing an event loop mechanism for d8."""
This reverts commit 7dcc8effbd.

Reason for revert: Fixed: when running under --verify-predictable,
because the PredictablePlatform runs either foreground and background
tasks immediately, we don't need to support event looping.

Original change's description:
> Revert "Revert "Introducing an event loop mechanism for d8.""
> 
> This reverts commit f7c25da680.
> 
> Reason for revert: Fixed
> 
> Original change's description:
> > Revert "Introducing an event loop mechanism for d8."
> > 
> > This reverts commit de964dbe57.
> > 
> > Reason for revert:
> > https://build.chromium.org/p/client.v8/builders/V8%20Linux/builds/17958
> > 
> > Original change's description:
> > > Introducing an event loop mechanism for d8.
> > > 
> > > This mechanism ensures APIs like wasm async complete their work, 
> > > without requiring use of natives (%APIs).
> > > 
> > > The mechanism is similar to the one used in content_shell,
> > > which should allow us to easily port tests in that environment.
> > > 
> > > Review-Url: https://codereview.chromium.org/2842843005
> > > Cr-Original-Commit-Position: refs/heads/master@{#44908}
> > > Bug: 
> > > Change-Id: I9deee0d256a600c60b42902fc8ef8478e5546344
> > > Reviewed-on: https://chromium-review.googlesource.com/494968
> > > Commit-Queue: Mircea Trofin <mtrofin@google.com>
> > > Reviewed-by: Jochen Eisinger <jochen@chromium.org>
> > > Cr-Commit-Position: refs/heads/master@{#45165}
> > 
> > TBR=bradnelson@chromium.org,mtrofin@chromium.org,mtrofin@google.com,jochen@chromium.org
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > 
> > Change-Id: Iafec2615d705d1990c57229cab3a988c00b5e12f
> > Reviewed-on: https://chromium-review.googlesource.com/498630
> > Reviewed-by: Michael Achenbach <machenbach@chromium.org>
> > Commit-Queue: Michael Achenbach <machenbach@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#45166}
> 
> TBR=bradnelson@chromium.org,machenbach@chromium.org,mtrofin@chromium.org,mtrofin@google.com,jochen@chromium.org,v8-reviews@googlegroups.com
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> 
> Change-Id: Ic3c782e918326e291a6cb9bb349c609e9a340b09
> Reviewed-on: https://chromium-review.googlesource.com/498430
> Reviewed-by: Mircea Trofin <mtrofin@chromium.org>
> Commit-Queue: Mircea Trofin <mtrofin@google.com>
> Cr-Commit-Position: refs/heads/master@{#45172}

TBR=bradnelson@chromium.org,machenbach@chromium.org,mtrofin@chromium.org,mtrofin@google.com,jochen@chromium.org,v8-reviews@googlegroups.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: If3036b3d4c89a88df3976924f11be88bfc5a6aa8
Reviewed-on: https://chromium-review.googlesource.com/500867
Reviewed-by: Mircea Trofin <mtrofin@chromium.org>
Commit-Queue: Mircea Trofin <mtrofin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45207}
2017-05-09 19:54:04 +00:00
Igor Sheludko
b591fed43a Revert "[stubs] Properly convert the receiver for GetPropertyStub."
This reverts commit 26fdb617f5.

Reason for revert: v8:6378

Original change's description:
> [stubs] Properly convert the receiver for GetPropertyStub.
> 
> Call ToObject on the GetPropertyStub input first, so that lookups on
> Strings and other primitives don't automatically hit the runtime, i.e.
> as the stub is also used to lookup the special @@split and @@replace
> symbols for various String builtins.
> 
> BUG=v8:5269
> R=​ishell@chromium.org
> 
> Change-Id: I5dbbc84aa2051173bf10be71c782fbe448481034
> Reviewed-on: https://chromium-review.googlesource.com/488441
> Commit-Queue: Igor Sheludko <ishell@chromium.org>
> Reviewed-by: Igor Sheludko <ishell@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#44961}

TBR=ishell@chromium.org,bmeurer@chromium.org
# Not skipping CQ checks because original CL landed > 1 day ago.
BUG=v8:5269

Change-Id: I1e2e83b492d82656ead81ea35adbbcf5d324d2b8
Reviewed-on: https://chromium-review.googlesource.com/500135
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45206}
2017-05-09 19:07:41 +00:00
Adam Klein
18d2721952 [ignition] Avoid emitting unnecessary Jump in VisitSuspend()
Bug: v8:6351
Change-Id: I6a5b44486bac87e2b3cb9aa93808b2c7964d6202
Reviewed-on: https://chromium-review.googlesource.com/499508
Commit-Queue: Adam Klein <adamk@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45205}
2017-05-09 18:48:37 +00:00
Wiktor Garbacz
4f5dcd4b4d [parser] Fix chunked utf8 stream handling.
BUG=v8:6377

Change-Id: I5bdd41bdda83d7efe4b37d24d44e2e8c2339a30a
Reviewed-on: https://chromium-review.googlesource.com/500168
Commit-Queue: Wiktor Garbacz <wiktorg@google.com>
Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45204}
2017-05-09 18:41:00 +00:00
machenbach
63c5dd5dd4 Revert of [turbofan] Add alignment parameter to StackSlot operator (patchset #7 id:120001 of https://codereview.chromium.org/2816743003/ )
Reason for revert:
Seems to break cfi:
https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20cfi/builds/9989

Original issue's description:
> [turbofan] Add alignment parameter to StackSlot operator
>
> If alignment parameter is set, the memory returned by the
> StackSlot operator will be aligned according to the parameter.
>
> The implementation goes like this. If alignment parameter is set
> we allocate a bit more memory than actually needed and so we
> can move the beginning of the StackSlot in order to have it aligned.
>
>
> BUG=
>
> Review-Url: https://codereview.chromium.org/2816743003
> Cr-Commit-Position: refs/heads/master@{#45197}
> Committed: d8bfdb7a99

TBR=ahaas@chromium.org,clemensh@chromium.org,titzer@chromium.org,bmeurer@chromium.org,ivica.bogosavljevic@imgtec.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

Review-Url: https://codereview.chromium.org/2867403002
Cr-Commit-Position: refs/heads/master@{#45203}
2017-05-09 16:13:51 +00:00
Camillo Bruni
4a4699edac [tools] Adding heap_find gdb helper
heap_find walks all the page of the heap and finds the references to a given
address.

NOTRY=true

Change-Id: I3271ab96d0224acf2361fe5bc4c8b0a608caf091
Reviewed-on: https://chromium-review.googlesource.com/500190
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45202}
2017-05-09 15:27:01 +00:00
Camillo Bruni
2bd86a074e [tools] Add link_click chrome extension
This extension imitates user-interaction on a page by randomly clicking on
links matching a given regexp pattern.

Change-Id: I210bebf36ce6e3a3c785953010ce21528093d1af
NOTRY=true

Change-Id: I210bebf36ce6e3a3c785953010ce21528093d1af
Reviewed-on: https://chromium-review.googlesource.com/500247
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45201}
2017-05-09 15:25:21 +00:00