Commit Graph

51921 Commits

Author SHA1 Message Date
Clemens Hammacher
126d1d7b66 [wasm] Avoid spread of huge arrays in module builder
I just ran into this when creating a test case. The huge spread caused
a RangeError (stack overflow). It's not causing problems for the tests
we currently have, but let's fix it anyway.

R=ahaas@chromium.org

Change-Id: Ib67f059f2981ccc6239ba4ae05611e20eb3aa191
Reviewed-on: https://chromium-review.googlesource.com/c/1329177
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57429}
2018-11-12 11:28:26 +00:00
Clemens Hammacher
434cd5c0eb std::unary_function and binary removed from C++17
Fixes building in MSVS with -std:c++17

Refs: https://en.cppreference.com/w/cpp/utility/functional/unary_function
Change-Id: Ibb05b6810cae029aae33957f3eb52cc3a9e4863e
Reviewed-on: https://chromium-review.googlesource.com/c/1227322
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57428}
2018-11-12 11:27:21 +00:00
Toon Verwaest
d85b5b75c3 [parser] Reimplement duplicate __proto__ checking
Now that identifiers in the preparser also carry their string, we can simply
check that rather than relying on a weird "keyword". Dropping __proto__ as a
keyword allows us to delist '_' as keyword character.

Change-Id: I775df25f77a84de92a60790ca665f16d52abf4bf
Reviewed-on: https://chromium-review.googlesource.com/c/1329692
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57427}
2018-11-12 10:55:35 +00:00
Clemens Hammacher
de50808cb6 Fix compare_exchange for gcc 4.8
gcc 4.8 fails to compile an {std::atomic::compare_exchange_strong} with
{memory_order_acq_rel} with this error:
error: invalid failure memory model for ‘__atomic_compare_exchange’

This makes our gcov bot fail:
https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux64%20-%20gcov%20coverage/16053

According to the documentation, giving a single {memory_order_acq_rel}
is equivalent to specifying {memory_order_acq_rel} as success memory
order and {memory_order_acquire} for failure. This CL refactors the code
to do this explicitly.

R=ulan@chromium.org
CC=machenbach@chromium.org

Bug: v8:8238

Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel
Change-Id: Idcc69ee4b4ac53edc4fd1aa28eac7377f08044ce
Reviewed-on: https://chromium-review.googlesource.com/c/1329693
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57426}
2018-11-12 10:47:53 +00:00
Daniel Clifford
425799f311 Add torque/csa functionality in preparation for Object.fromEntries
Change-Id: Ie7f3cec3ae6541f46b3f43c83bd9d53de7614d20
Reviewed-on: https://chromium-review.googlesource.com/c/1329689
Commit-Queue: Daniel Clifford <danno@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57425}
2018-11-12 10:02:36 +00:00
Toon Verwaest
4235fc0bae [parser] Restore reparenting of temporaries
Now that we have no more do-expressions, we don't need to reparent variables
and declarations anymore. However, it's still possible that temporaries were
implicitly allocated. We still need to move those.

Bug: chromium:904255
Change-Id: Ia8a90eb822b9db123ffb0bad58e4b720c1452d9f
Reviewed-on: https://chromium-review.googlesource.com/c/1329685
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57424}
2018-11-12 09:44:56 +00:00
Toon Verwaest
65ab5bb669 [parser] Cook invalid template literals if we've thrown
Otherwise we may look into the invalid string literal later.

Bug: chromium:903527
Change-Id: Ieeb3807bd05e532224e04a59878f5dac24e19579
Reviewed-on: https://chromium-review.googlesource.com/c/1329691
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57423}
2018-11-12 09:34:22 +00:00
Georg Neis
c357d22cfd [turbofan] Fix ReduceObjectGetPrototype.
A missing negation (typo in previous refactoring) had effectively
disabled this optimization.

Bug: chromium:904104
Change-Id: I3f8d26c7594fcaa762e0a9c992b4cb0bf1bc53f6
Reviewed-on: https://chromium-review.googlesource.com/c/1329690
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57422}
2018-11-12 09:27:41 +00:00
Toon Verwaest
cdae5af896 [parser] Don't reindex function literals if there's a parser error
Bug: chromium:904275
Change-Id: I82712f70954246c16846f44bb9e8dc6e60e73d83
Reviewed-on: https://chromium-review.googlesource.com/c/1329686
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57421}
2018-11-12 09:16:50 +00:00
Toon Verwaest
bc53445397 [parser] Check stackoverflow in ParseBindingPattern
Bug: chromium:903874
Change-Id: If9828ae206b9bc1407e7d3f217d5fb894a4fe747
Reviewed-on: https://chromium-review.googlesource.com/c/1329688
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57420}
2018-11-12 09:15:45 +00:00
Georg Neis
57512786a4 [turbofan] Install code dependencies atomically.
Split the Install methods into PrepareInstall and Install, such that
all heap mutations (besides the actual installation) are done in
PrepareInstall and only the actual installation in Install. This
ensures that the code object in question doesn't get deoptimized while
we're still installing its dependencies.

Bug: chromium:903697
Change-Id: I4da97d89d0707fa3c00c97c092af0d0faa7a4946
Reviewed-on: https://chromium-review.googlesource.com/c/1329162
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57419}
2018-11-12 08:27:51 +00:00
Jakob Kummerow
0738a21ab2 [ubsan] Adapt ZoneHandleSet to new Handle internals
By matching ZoneHandleSet's internals to Handle's internals,
we can avoid a few unnecessary casts, and get rid of a few
more occurrences of Object**.

Bug: v8:3770
Change-Id: I24d6bad3a4959d977abf1f6b8db9be50bb2bc6d8
Reviewed-on: https://chromium-review.googlesource.com/c/1330907
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57418}
2018-11-12 08:00:07 +00:00
v8-ci-autoroll-builder
77b53a8f86 Update V8 DEPS.
Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/5d50916..f2c3502

Rolling v8/third_party/depot_tools: af0ede1..ddbeac1

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

Change-Id: Ie5eb9348ac4bec24bdd4b7c42cc64199ef55b90d
Reviewed-on: https://chromium-review.googlesource.com/c/1330919
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#57417}
2018-11-11 18:36:03 +00:00
Sergiy Byelozyorov
4737793b6e Add cctest to the v8_archive target and mark the latter as testonly
This is needed so that cctest is built for the Memory perf benchmark. Marking
v8_achive as testonly is necessary to be able to depend on the cctest, which is
testonly already.

R=machenbach@chromium.org

Bug: chromium:903562
Change-Id: If5baf3e75226282110999dfa2bd83d475b63258c
Reviewed-on: https://chromium-review.googlesource.com/c/1330912
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57416}
2018-11-10 17:51:33 +00:00
v8-ci-autoroll-builder
28d2af161c Update V8 DEPS.
Rolling v8/build: 3f61809..81ffd00

Rolling v8/third_party/depot_tools: 93cd73d..af0ede1

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

Change-Id: I4d9b172f6657d33629a021475290869f743c5482
Reviewed-on: https://chromium-review.googlesource.com/c/1330911
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#57415}
2018-11-10 03:54:37 +00:00
Jakob Kummerow
e2a3e10285 [ubsan] Replace Object** in runtime-scopes.cc
as part of the ongoing quest to get rid of Object**/Object* entirely.

Bug: v8:3770
Change-Id: Ibe05801fad78b26ca27b044c8091a26ccab5469a
Reviewed-on: https://chromium-review.googlesource.com/c/1330909
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57414}
2018-11-10 02:28:23 +00:00
Deepti Gandluri
799a69d4b6 [wasm] Improve instrumentation for chrome://tracing
Currently, the tracing for background tasks is quite cryptic when
looking at chrome://tracing. Most tasks that are posted appear as
ThreadControllerImpl::RunTask, which when looking at other threads
can be deduced as compile tasks. Improve instrumentation to be more
indicative of the work being done.

BUG:v8:8423

Change-Id: I9b5469154ff7163d743efb1df998ca1df08cd4ce
Reviewed-on: https://chromium-review.googlesource.com/c/1330012
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57413}
2018-11-09 23:51:54 +00:00
tzik
cec00efa12 Factor out RunSingleMicrotask from RunMicrotasks builtin
This CL moves RunSingleMicrotask with no logic change as a non-essential
part of the following CL, in order to reduce the following CL size.

Change-Id: I93e4aa860710c169c0474ee28ada083139d2b607
Reviewed-on: https://chromium-review.googlesource.com/c/1328552
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57412}
2018-11-09 22:46:45 +00:00
tzik
0d1ff784af Move MicrotaskQueue stuff of InternalBuiltinsAssembler to a separate class
This CL moves EnqueueMicrotask and RunMicrotasks builtins out of
InternalBuiltinAssembler to a separate class with no logic change.

This is a trivial part of the following "Implement Faster MicrotaskQueue Step 2"
https://crrev.com/c/1290751 in order to clean up the diff for easier review,
and also for unblocking other CLs.

Change-Id: I34dda8e599ffbf4db4bae07d3fd8ea3d6fadeb6b
Reviewed-on: https://chromium-review.googlesource.com/c/1328548
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57411}
2018-11-09 22:25:16 +00:00
Frank Tang
8a7f256796 [Intl] Remove 'regress-8413-*' tests.
All intl/regress-8413-* tests are super slow on native arm:
So remove them now.

NOTRY=true

Bug: v8:8435
Change-Id: I2d07ce00332d8323777f0a1aed5235b6f9c7f123
Reviewed-on: https://chromium-review.googlesource.com/c/1328645
Reviewed-by: Adam Klein <adamk@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57410}
2018-11-09 21:51:44 +00:00
Adam Klein
53d3f5ba2a [intl] Remove regexp-prepare/regexp-assert from intl testcfg
Now that intl.js is gone, there's no particular reason to worry about
Intl features accidentally using RegExp objects in a way that would
be visible to author code.

Bug: v8:5751
Change-Id: I7bb274ed124ac593ab5f4f6995941f11a0ded480
Reviewed-on: https://chromium-review.googlesource.com/c/1325030
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57409}
2018-11-09 19:55:42 +00:00
Adam Klein
bb887d2ccf [mjsunit] Remove very slow Crankshaft regression test
This test was adapted from a repro, and thus it's rather complex.
It takes over seven minutes to run on the arm64 sim debug bot,
and nearly five minutes on arm.

Given that it was originally accompanied by a very targeted fix in
Crankshaft, it strikes me that this probably isn't worth our CPU
time to continue running.

Bug: v8:7783, chromium:85177
Change-Id: Ibe85cc254aa754365404b5fbbf80bcb1f5a09c68
Reviewed-on: https://chromium-review.googlesource.com/c/1327188
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57408}
2018-11-09 19:31:00 +00:00
Toon Verwaest
f4a586f06e [scanner] Fix string scanning corner-case
No-Presubmit: true
No-Tree-Checks: true
No-Try: true

Change-Id: I287197c8603e9e550d7f4832c1f85009136f4bb0
Reviewed-on: https://chromium-review.googlesource.com/c/1329961
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57407}
2018-11-09 18:04:59 +00:00
Clemens Hammacher
233cb0bfc6 [wasm][test] Remove default --wasm-async-compilation flag
The flag is on by default, so we don't need to specify it. More
importantly, the tests are expected to work for any value of that flag.
So don't force the flag but use whatever the test variant chooses.

Note that in streaming-compile.js, the flag was accidentally specified
as '-async-compilation'. I also removed that one.

R=ahaas@chromium.org

Change-Id: Ifad31160d266dda38cdd9dd1d73dad69bd2c2f2c
Reviewed-on: https://chromium-review.googlesource.com/c/1325961
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57406}
2018-11-09 17:29:17 +00:00
George Wort
3baca98580 [liftoff][arm] Initial 32-bit port.
Bug: v8:6600
Change-Id: I9ca4c52cec6fe6d6a88483072084dbd5a174a603
Reviewed-on: https://chromium-review.googlesource.com/c/1309755
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57405}
2018-11-09 17:28:12 +00:00
Clemens Hammacher
f321afeefd Remove unused AtomicValue::TrySetValue method
AtomicValue is deprecated, so we can start removing things that are not
in use any more.

R=mstarzinger@chromium.org

Bug: v8:8238
Change-Id: I0a1445eccaf89f8869fd56e0fbece809bbcd6e5e
Reviewed-on: https://chromium-review.googlesource.com/c/1326464
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57404}
2018-11-09 16:33:05 +00:00
Clemens Hammacher
878776f713 Remove testing-only method and field from Cancelable
Implement similar functionality in the unit test which used this field.
One test gets slightly weaker by this.

R=mstarzinger@chromium.org

Bug: v8:8238
Change-Id: I0b047ff54f08a4549a2f78af30e21296bb1ee63f
Reviewed-on: https://chromium-review.googlesource.com/c/1327042
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57403}
2018-11-09 16:27:20 +00:00
Toon Verwaest
1756e1c9a5 [scanner] Micro-optimize string scanning
For small strings there's not much of a difference, but allows faster scanning
over long strings. By directly accessing the underlying buffer and by typically
only needing 2 branches per non-special character.

Change-Id: I9c2c513177d9bf5e3f10c14a07bf6ecc2872b2f0
Reviewed-on: https://chromium-review.googlesource.com/c/1329206
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57402}
2018-11-09 16:09:11 +00:00
Daniel Clifford
e6e301d5a8 Fix IteratorCloseOnException Torque interface
It sould take an exception argument to ensure the proper re-throw
semantics.

Change-Id: I36caba1a80c0d3f59c18dce5a58a0c1f0100657d
Reviewed-on: https://chromium-review.googlesource.com/c/1328803
Commit-Queue: Daniel Clifford <danno@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57401}
2018-11-09 16:00:40 +00:00
Toon Verwaest
d0049fb7ac [parser] Track accept_IN with scopes and a different precendece table
Change-Id: I6da7a3cbf681a5ae691fe0aee2e69536a84f0df0
Reviewed-on: https://chromium-review.googlesource.com/c/1329174
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57400}
2018-11-09 15:55:40 +00:00
Mythri
1e9ead8ac6 Deprecate unsupported ScriptCompiler::CompileOptions
After adding an explicit API to create code caches the compile
options related to producing code caches are no longer supported.
Parser caches are also no longer supported.

Bug: v8:8015
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: I6eb5d7cf6b03437834eb1a1d326374f09fbce5a9
Reviewed-on: https://chromium-review.googlesource.com/c/1238493
Commit-Queue: Mythri Alle <mythria@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57399}
2018-11-09 15:22:19 +00:00
Mythri
d056294416 Check for stack overflow when pushing arguments in JSConstructStubGeneric
Bug: chromium:896326
Change-Id: I9257573963f611711edbc48a46a3bacbe12a567d
Reviewed-on: https://chromium-review.googlesource.com/c/1305934
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Mythri Alle <mythria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57398}
2018-11-09 14:56:51 +00:00
Clemens Hammacher
578fe72102 Extract lambda tasks to task-utils.h
This extracts the lambda tasks to an own compilation unit and header
file. Additionally, it addresses the TODO to avoid templates and just
store the function to execute in an std::function.
Third, it provides the same functionality for pure (non-cancellable
non-idle) tasks.
Last, it removes the "Lambda" part from the methods, because we can
actually instantiate it with anything that is invocable (function
pointer, lambda, functor, ...).

R=ahaas@chromium.org

Bug: v8:8238
Change-Id: I2f613f5b15ee208f215bbf74bd6d1d41889fd637
Reviewed-on: https://chromium-review.googlesource.com/c/1328923
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57397}
2018-11-09 14:55:46 +00:00
Michael Achenbach
1f147c50af [test] Skip flaky test on ODROIDs
Also add the ability to skip tests only when --optimize-for-size is passed.

TBR=sergiyb@chromium.org

Bug: v8:7819
Change-Id: I1dcc26ea8664d014b6c50f0d636c13bf21e26ff2
Reviewed-on: https://chromium-review.googlesource.com/c/1328945
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57396}
2018-11-09 14:35:19 +00:00
Georg Neis
ed397a900d [turbofan] Simplify specialization of JSInstanceOf.
Primary change is the removal of a CheckValue that is
unnecessary because we only care about the map and there's
already a CheckMaps.

Secondary change is a minor refactoring for clarity.

Change-Id: I96abd1bc2b38919fd08daa1c688298f8807a0fe7
Reviewed-on: https://chromium-review.googlesource.com/c/1326026
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57395}
2018-11-09 14:21:46 +00:00
Clemens Hammacher
cc43dc974e Reland "Use std::atomic in Cancelable"
This is a reland of 61d42c9451.
Switched to acquire/release memory order.

Original change's description:
> Use std::atomic in Cancelable
>
> Avoid deprecated base::AtomicValue, use std::atomic instead.
> Plus minor drive-by cleanups.
>
> R=mstarzinger@chromium.org
>
> Bug: v8:8238
> Change-Id: I47a1f00e26a843b60380c50399eedc49d859830a
> Reviewed-on: https://chromium-review.googlesource.com/c/1326463
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#57386}

Bug: v8:8238
Change-Id: I992a49d29af68cfa45bfae1bfb8dba5b47f94b25
Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel
Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng
Reviewed-on: https://chromium-review.googlesource.com/c/1329164
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57394}
2018-11-09 14:19:42 +00:00
Peter Marshall
a522da3935 [tools] Remove node backport script and leave a readme
There is a better maintained script in node-code-utils which properly
bumps the version numbers for each of the LTS branches, which is more
useful. Node collaborators also use this script, so it will make
backports more uniform.

Change-Id: If5449b8a801c4bd14f39d59b7af52cc959989be7
Reviewed-on: https://chromium-review.googlesource.com/c/1328927
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57393}
2018-11-09 14:08:43 +00:00
Camillo Bruni
aa351c245a [frames] Use stable addresses for the InnerPointerToCodeCache
The InnerPointerToCodeCache was masking out the Page address to get stable
hashes. However, for pointers into the embedded code this still introduces a
sources of randomness due to how the data is mapped in. This is fixed by
using offsets relative to the start of the embedded data.

Hopefully this will fix one category of flaky tests unde with
v8_enable_verify_predictable  enabled.

Change-Id: I6bc3a1b6a03555341a9e4387e8bc058921298ef1
Reviewed-on: https://chromium-review.googlesource.com/c/1327045
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57392}
2018-11-09 13:57:32 +00:00
Leszek Swirski
7698d8d60f [parser] Use a lookup table for identifier scanning
Change the keyword/identifier scan to a single loop that branchlessly
collects information on whether this is a possible keyword, identifier
terminator or slow path (i.e. escapes) by looking up the value in a
flags table (as long as the character is ascii).

Also rewrites that loop as an AdvanceUntil, and sprinkles in some
V8_LIKELY magic which is 'likely' to improve things.

Change-Id: If06b0fff23630e7593b515308e5ffeca2d65daa8
Reviewed-on: https://chromium-review.googlesource.com/c/1328943
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57391}
2018-11-09 13:40:18 +00:00
Michael Starzinger
631dd28db8 [wasm] Disable node splitting for asm.js code.
R=herhut@chromium.org
BUG=chromium:903197

Change-Id: Ibc9225afe4237f221ae169de3ce6b3abb45e2708
Reviewed-on: https://chromium-review.googlesource.com/c/1328925
Reviewed-by: Stephan Herhut <herhut@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57390}
2018-11-09 13:38:29 +00:00
Michael Achenbach
be9cd5edc5 [test] Mark failing test on Android
NOTRY=true
TBR=jshin@chromium.org

Bug: v8:8414
Change-Id: I7059304b2e9f593f9685a4a0a82f3e303cc4bc1e
Reviewed-on: https://chromium-review.googlesource.com/c/1329202
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57389}
2018-11-09 13:37:27 +00:00
Toon Verwaest
58988c6c63 [parser] Remove broken/half-implemented do-expressions
The current implementation isn't very helpful anyway if we ever really want
this.

Change-Id: Iad4132734980937aee462a1613d47887383585a0
Reviewed-on: https://chromium-review.googlesource.com/c/1328928
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57388}
2018-11-09 13:22:56 +00:00
Clemens Hammacher
66c9531318 Revert "Use std::atomic in Cancelable"
This reverts commit 61d42c9451.

Reason for revert: TSan failures: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux64%20TSAN/23459

Original change's description:
> Use std::atomic in Cancelable
> 
> Avoid deprecated base::AtomicValue, use std::atomic instead.
> Plus minor drive-by cleanups.
> 
> R=​mstarzinger@chromium.org
> 
> Bug: v8:8238
> Change-Id: I47a1f00e26a843b60380c50399eedc49d859830a
> Reviewed-on: https://chromium-review.googlesource.com/c/1326463
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#57386}

TBR=ulan@chromium.org,mstarzinger@chromium.org,clemensh@chromium.org

Change-Id: I96f269800eb9c26812050629f7f2c75096f3c858
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:8238
Reviewed-on: https://chromium-review.googlesource.com/c/1329201
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57387}
2018-11-09 13:18:18 +00:00
Clemens Hammacher
61d42c9451 Use std::atomic in Cancelable
Avoid deprecated base::AtomicValue, use std::atomic instead.
Plus minor drive-by cleanups.

R=mstarzinger@chromium.org

Bug: v8:8238
Change-Id: I47a1f00e26a843b60380c50399eedc49d859830a
Reviewed-on: https://chromium-review.googlesource.com/c/1326463
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57386}
2018-11-09 12:45:50 +00:00
Toon Verwaest
b407d27450 [parser] Further restructure ParseAssignmentExpression
This better separates non-arrow/assignment from the alternative, and
destructuring assignment from other types of assignment to avoid unnecessary
and duplicate branches.

Change-Id: I51c59f86c705646c02f182c9719700c558297e4a
Reviewed-on: https://chromium-review.googlesource.com/c/1328921
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57385}
2018-11-09 12:36:19 +00:00
Toon Verwaest
948b02ce00 [parser] Throw unresolved private reference outside of Lookup
Change-Id: I81e14fd1b9b46181c44e2176dd0917966742d9d4
Reviewed-on: https://chromium-review.googlesource.com/c/1322910
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57384}
2018-11-09 12:33:58 +00:00
Marja Hölttä
0526f498d7 [in-place weak refs] Fix regression (crash).
The regressing change was:

https://chromium-review.googlesource.com/c/v8/v8/+/1090922/17/src/heap/factory.cc

This difference (empty list vs uninitialized) is important for other parts of
the code, mainly JSObject::UnregisterPrototypeUser whose return value depends on
this difference.

Other parts of the CL already talk about + prepare for using
Smi::kZero as a placeholder for "uninitialized" list.

No regression test added since without this bug, the regressesion test doesn't
crash but hangs.

BUG=chromium:903245

Change-Id: Id3efe955fbd7e08cc4048d23c5b519c504f0201c
Reviewed-on: https://chromium-review.googlesource.com/c/1328924
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57383}
2018-11-09 12:32:09 +00:00
Benedikt Meurer
56f6a763c2 [turbofan] Fix -0 check for subnormals.
Previously we'd check `x` for -0 by testing `(1.0 / x) == -Infinity`,
but this will yield the wrong results when `x` is a subnormal, i.e.
really close to 0.

In CSA we already perform bit checks to test for -0, so teach TurboFan
to do the same for comparisons to -0 (via `Object.is`). We introduce a
new NumberIsMinusZero simplified operator to handle the case where
SimplifiedLowering already knows that the input is a number.

Bug: chromium:903043, v8:6882
Change-Id: I0cb7c568029b461a92fc183104d5f359b4bfe7f4
Reviewed-on: https://chromium-review.googlesource.com/c/1328802
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57382}
2018-11-09 12:04:30 +00:00
Ulan Degenbaev
88fe4e5466 [heap] Optimize new space area check in concurrent marker.
Currently the new space linear allocation area boundaries are fetched
with sequentially consistent atomic loads.

This can be replaced with an acquire load.

Change-Id: Ib08e0bc0ae0ce79fee3723d29dc9a99a5d771880
Reviewed-on: https://chromium-review.googlesource.com/c/1326467
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57381}
2018-11-09 12:03:25 +00:00
Yang Guo
073073b4f1 [profiler] introduce API to enable detailed source positions
This allows Node.js to enable detailed source positions for optimized code
early on, without having to pass a flag string.

R=petermarshall@chromium.org

Change-Id: Ie74ea41f600cf6e31acbe802116df4976ccf1c75
Reviewed-on: https://chromium-review.googlesource.com/c/1319757
Commit-Queue: Yang Guo <yangguo@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57380}
2018-11-09 11:44:22 +00:00