Commit Graph

52114 Commits

Author SHA1 Message Date
Daniel Clifford
42217a2f0a Follow-up tweak: Fix IteratorCloseOnException Torque interface
Use same value to rethrow as was used before this change. This doesn't
appear to be explicitly tested anywhere, but the behavior should stay
unchanged nevertheless.

Change-Id: Idaed90a143e9775746f034190918065897094acb
Reviewed-on: https://chromium-review.googlesource.com/c/1329684
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Daniel Clifford <danno@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57472}
2018-11-13 14:12:23 +00:00
Michael Achenbach
3d6b336e34 [test] Bump shards for slow tests
Prevent timeouts like:
https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20debug/23124

TBR=sergiyb@chromium.org
NOTRY=true

Change-Id: I550a0d85366aa7171e2e23b2f6d2482ec953eb52
Reviewed-on: https://chromium-review.googlesource.com/c/1333672
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57471}
2018-11-13 14:07:03 +00:00
tzik
40245b75a4 Use Isolate::GetEnteredOrMicrotaskContext instead of GetEnteredContext
This CL replaces most of Isolate::GetEnteredContext with
GetEnteredOrMicrotaskContext, as it should be more relevant.

Here is a brief overview of the series of changes.
https://docs.google.com/document/d/1MY_xlsYS7E6_qbwwY66-FH3JkAYeTHBlF5qVBrBpWyY/edit#heading=h.fx2rezbyzz5c

Bug: v8:8124
Change-Id: I27355e325a92094240c25b672d1219f3214a9da0
Reviewed-on: https://chromium-review.googlesource.com/c/1297654
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57470}
2018-11-13 13:58:00 +00:00
Mike Stanton
08eed80c42 [Torque] Rename modules to namespaces
BUG=v8:7793

Change-Id: Ibcf16998ef9a44ae899a2536ccf02af1b7b7193d
Reviewed-on: https://chromium-review.googlesource.com/c/1333410
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57469}
2018-11-13 13:40:43 +00:00
Marja Hölttä
bd0a7fd64c [iwyu] Remove include heap-inl.h -> counters.h
This reduces the build steps after touching counters.h from 710 to 191, thus
detaching counters.h from the giant include cluster.

BUG=v8:7490,v8:8238

Change-Id: I0c7e707fb945e293f8a5604cc8da438cd35b3210
Reviewed-on: https://chromium-review.googlesource.com/c/1329695
Commit-Queue: Marja Hölttä <marja@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57468}
2018-11-13 13:19:38 +00:00
Toon Verwaest
66b9fedcb4 [parser] Drop name, prototype, constructor as contextual tokens
Change-Id: I19e23a1e91631a21d55bb5a42f1f538a655478f8
Reviewed-on: https://chromium-review.googlesource.com/c/1332233
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57467}
2018-11-13 13:11:08 +00:00
Clemens Hammacher
aab18a4c3e [wasm] Extract CompilationStateCallback to own class
Just moving code around a bit.

R=ahaas@chromium.org

Bug: v8:7921
Change-Id: I6a9f9dab41360e9a0d8249fe77260788151cd88b
Reviewed-on: https://chromium-review.googlesource.com/c/1333411
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57466}
2018-11-13 12:29:53 +00:00
Clemens Hammacher
2292b49d60 [wasm] Fix trace output
We were outputting the address of the WasmCodeManager instead of the
native module.

R=ahaas@chromium.org

Change-Id: I70f0aca4ef9126b91fcc3716570bfc69e71d27c7
Reviewed-on: https://chromium-review.googlesource.com/c/1326024
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57465}
2018-11-13 12:17:50 +00:00
Leszek Swirski
74e1fe6519 [parser] Pass next_ value from Next to Scan
For some reason the C++ compiler fails to realise that next_ cannot
change on entry into Scan from Next, and re-loads it, creating what
looks like a data dependency that stalls the next instruction.

Passing through a cached next_ value cleans up the generated code.

Change-Id: Iab62ed1890a3a720e5fa90a90e802305e3d55a82
Reviewed-on: https://chromium-review.googlesource.com/c/1331551
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57464}
2018-11-13 12:12:40 +00:00
Leszek Swirski
a12f244523 [parser] Micro-optimize Scanner::Scan()
Use a flag int instead of bit fields in LiteralBuffer, so that

cache the output of next() in Scanner::Scan() so that it doesn't get
reloaded between LiteralBuffer::Drop() calls.

LiteralBuffer: :Drop can set a single value rather than masking. Also,
Change-Id: I977703488ac41e3b091f46ce0840e7c464639073
Reviewed-on: https://chromium-review.googlesource.com/c/1331548
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57463}
2018-11-13 12:09:09 +00:00
Toon Verwaest
1cc5bb6acb [parser] Drop undefined as a contextual keyword
Change-Id: I6e8c72ea46e02361b7dd8ae698f3c13aef8a8beb
Reviewed-on: https://chromium-review.googlesource.com/c/1332297
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57462}
2018-11-13 12:08:00 +00:00
Toon Verwaest
41e3915834 [parser] Drop anonymous as contextual keyword
Change-Id: I8948ff43f45a486dc9ff591777db5051b1afaa22
Reviewed-on: https://chromium-review.googlesource.com/c/1332231
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57461}
2018-11-13 11:57:14 +00:00
Toon Verwaest
9af251df29 [parser] Drop eval and arguments as contextual keywords
We're fetching the symbols anyway, so we might as well use those instead in the
preparser.

Change-Id: Ie937c755690cdd7b15e8486aa9680d530eff602e
Reviewed-on: https://chromium-review.googlesource.com/c/1332296
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57460}
2018-11-13 11:52:19 +00:00
Georg Neis
04af85c6a9 [typed-array] Fix CopyElements.
An oversight in my previous change (3b64764b1d) could
cause a CHECK failure.

Bug: chromium:904707
Change-Id: Ie5f1c500bddc00741b889f78ae9ecd9af581ba5c
Reviewed-on: https://chromium-review.googlesource.com/c/1333409
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57459}
2018-11-13 11:47:00 +00:00
peterwmwong
7c35c03b5c [builtins] Fast path TA.p.subarray creating TypedArray when default constructor is used
Previously, the following call sequence was always made when creating resulting
subsetted TypedArray:
1) TFJ TypedArrayPrototypeSubArray
2) TFS TypedArrayConstructor
3) TFS CreateTypedArray

This CL, skips #2 and goes straight to #3 when the default constructor (builtin) is
safe to use (IsPrototypeTypedArrayPrototype and
!IsTypedArraySpeciesProtectorCellInvalid).

Local TypedArrays/SubarrayNoSpecies microbenchmark shows ~35-40% improvement...

BEFORE
TypedArrays-SubarrayNoSpecies(Score): 1033530
TypedArrays-SubarrayNoSpecies(Score): 1018490
TypedArrays-SubarrayNoSpecies(Score): 1037030

AFTER
TypedArrays-SubarrayNoSpecies(Score): 1439030
TypedArrays-SubarrayNoSpecies(Score): 1417540
TypedArrays-SubarrayNoSpecies(Score): 1405980

Bug: v8:7161
Change-Id: I356dace36570aa161ffe208a57a80e46714121a2
Reviewed-on: https://chromium-review.googlesource.com/c/1331154
Commit-Queue: Peter Wong <peter.wm.wong@gmail.com>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57458}
2018-11-13 10:36:08 +00:00
Georg Neis
a377c9ad10 Fix ArrayIteratorPrototypeNext for holes.
It's not sufficient to check the NoElements protector because that
doesn't guard against the array having a custom prototype.

Bug: v8:8449
Change-Id: I843815466a1e4ae197a2b76eec62d04cdc2d619d
Reviewed-on: https://chromium-review.googlesource.com/c/1332232
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57457}
2018-11-13 10:09:31 +00:00
peterwmwong
0dd0af7baf [builtin] Array.p.join throws on invalid Array lengths.
This matches the pre-torque behavior when the receiver's length
was greater than the max array length.

Bug: chromium:902672
Change-Id: Icf8ae3a1a4acc0680ce1b709f5b3372892337203
Reviewed-on: https://chromium-review.googlesource.com/c/1330921
Commit-Queue: Peter Wong <peter.wm.wong@gmail.com>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57456}
2018-11-13 09:46:01 +00:00
Michael Achenbach
9ef0160bd7 [V8] Skip tests on gc fuzzer
This skips more tests sensitive to optimization state on gc fuzzer.
Failure links:
https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20NumFuzz%20-%20debug/3620
https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20NumFuzz%20-%20TSAN/3584
https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20NumFuzz%20-%20TSAN/3564

NOTRY=true
TBR=sigurds@chromium.org

Change-Id: Iba8f475178b87a10b7cf793c65b16132ed2f1a1b
Reviewed-on: https://chromium-review.googlesource.com/c/1332294
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57455}
2018-11-13 07:41:02 +00:00
Jakob Kummerow
0dbda17de5 [ubsan] Port Map to the new design
Bug: v8:3770
Change-Id: I52660eeda1bd299953793af9af1395f47e89072e
Reviewed-on: https://chromium-review.googlesource.com/c/1331155
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57454}
2018-11-13 06:59:12 +00:00
v8-ci-autoroll-builder
47c642e5e9 Update V8 DEPS.
Rolling v8/build: 81ffd00..8af70c5

Rolling v8/third_party/android_tools: https://chromium.googlesource.com/android_tools/+log/130499e..6fecaa5

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/f2c3502..0cf6ee7

Rolling v8/third_party/depot_tools: ddbeac1..332c9ff

Rolling v8/tools/clang: 31f2d26..fa8094f

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

Change-Id: Ic70fa8509b5fc87f37f30b2081a92807518b4fe2
Reviewed-on: https://chromium-review.googlesource.com/c/1332869
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@{#57453}
2018-11-13 03:40:59 +00:00
tzik
e861dbbcf1 Make DetachableVector accessible from builtins
This CL updates DetachableVector to store the data at a known place
instead of in an std::vector<>, so that builtins can update it directly.

Bug: v8:8124
Change-Id: Iba5fb2e9d4e0ddc689d0f7eeaea40bc3218edf3a
Reviewed-on: https://chromium-review.googlesource.com/c/1297783
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57452}
2018-11-13 01:30:16 +00:00
Ben Smith
fd1b8bbf9e [wasm] Add bulk memory flag; parse passive segments
See the WebAssembly bulk memory proposal here:
https://github.com/WebAssembly/bulk-memory-operations

This initial CL adds a wasm experimental flag:
`--experimental-wasm-bulk-memory`, and also parsing of passive segments.

A passive segment is one that is not copied into the table/memory on
instantiation, but instead later via the `{table,memory}.init`
instructions.

The binary format of passive data segments is unlikely to change, but
the format for passive element segments may change (see
https://github.com/WebAssembly/bulk-memory-operations/pull/39).

Bug: v8:7747
Change-Id: I2a7fb9bc7648a722a8c4aab4185c68d3d0843858
Reviewed-on: https://chromium-review.googlesource.com/c/1330015
Commit-Queue: Ben Smith <binji@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57451}
2018-11-12 23:10:30 +00:00
Frank Tang
8974fa04db [Intl] Remove deadcode FormatListCommon
Bug: v8:8438
Change-Id: I7b45f75c790c007d69f61d13f2ac8936b9efb67d
Reviewed-on: https://chromium-review.googlesource.com/c/1331988
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57450}
2018-11-12 22:31:55 +00:00
Igor Sheludko
c3f543ab0c [gdb] Add jh macro for printing objects inside handles
because for some reason gdb does not want to execute
  job *handle
anymore.

Bug: v8:8238
Change-Id: I9b632f5d34048b80e1f9542de963f738f1afb613
Reviewed-on: https://chromium-review.googlesource.com/c/1332230
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57449}
2018-11-12 22:08:21 +00:00
Junliang Yan
97f8f864e6 PPC/s390: [ubsan] Port Code to the new design
Port fe61cd6487

R=jkummerow@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=
LOG=N

Change-Id: Idee62637817fea020f809772de96b43c2a39cadd
Reviewed-on: https://chromium-review.googlesource.com/c/1331832
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#57448}
2018-11-12 21:54:36 +00:00
Junliang Yan
c69cb1f64f PPC/s390: Check for stack overflow when pushing arguments in JSConstructStubGeneric
Port d056294416

R=mythria@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=
LOG=N

Change-Id: Ib27ea8c66e3fa37d13d0e10553f1caf10c9d527b
Reviewed-on: https://chromium-review.googlesource.com/c/1332107
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#57447}
2018-11-12 21:12:56 +00:00
Jaroslav Sevcik
125d764e66 [turbofan] Make the return value explicit in the deoptimization info.
With this change, the return value is not baked into the translations
for lazy deoptimization point. Instead, the translation contains
a position where the return value(s) should be written by
the deoptimizer. The deoptimizer then constructs the frame as it
would look before and during the call and then overwrites the relevant
slot(s) with the return value(s) from the callee.

The advantage is that we do not run the risk of overwriting captured
objects in the tranlations. Moreover, the translations correctly reflect
the frame during the call (e.g., if it is inspected by the debugger or
if an exception is thrown and no value is returned).

Bug: chromium:902608
Change-Id: I03824f0efec3dd476feacbcc0ab6102c3e6c94bf
Reviewed-on: https://chromium-review.googlesource.com/c/1329203
Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57446}
2018-11-12 19:31:28 +00:00
Jakob Kummerow
fe61cd6487 [ubsan] Port Code to the new design
Bug: v8:3770
Change-Id: I413ce57f7fa91cef2445995ca22650477f92b0df
Reviewed-on: https://chromium-review.googlesource.com/c/1321892
Reviewed-by: Dan Elphick <delphick@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57445}
2018-11-12 18:47:04 +00:00
Frank Tang
ac250b9b5a [Intl] Add static_assert of icu version >= 63
Bug: v8:8424
Change-Id: Ic4f5b229dca4c3a802701aaa6e2093e280739a78
Reviewed-on: https://chromium-review.googlesource.com/c/1328646
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57444}
2018-11-12 18:45:53 +00:00
Junliang Yan
d966a42e0a s390x: cleanup unused macros
R=joransiu@ca.ibm.com

Change-Id: I09f57abe9a0fdd8d42c9f52b745a0f9957b67e58
Reviewed-on: https://chromium-review.googlesource.com/c/1330264
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#57443}
2018-11-12 18:39:21 +00:00
Sathya Gunasekaran
6fbd157c59 [dict] Add test for checking overflow of small ordered hash table
Bug: v8:6443, v8:7569
Change-Id: Ie1733198af76d07ac4601c5058af531701434fef
Reviewed-on: https://chromium-review.googlesource.com/c/1331549
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57442}
2018-11-12 17:30:21 +00:00
Clemens Hammacher
a0409f0528 [wasm] Fix test generation for shared memory
R=gdeepti@chromium.org

Change-Id: I8fabe18101b7e23b5e2971fedd0bd3591783dc85
Reviewed-on: https://chromium-review.googlesource.com/c/1329699
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57441}
2018-11-12 16:40:14 +00:00
Sathya Gunasekaran
4f586850a9 [dict] Add helper methods to SmallorderedNameDictionary
Bug: v8:6443, v8:7569
Change-Id: Ia7f0550500b19e93d78983db2e20d020bc0ff164
Reviewed-on: https://chromium-review.googlesource.com/c/1329700
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57440}
2018-11-12 16:01:30 +00:00
Sathya Gunasekaran
cdfc65abbc [dict] Specialize FindEntry for name dictionary
in SmallOrderedHashTable

Bug: v8:6443, v8:7569
Change-Id: I14572b1acc30df45d0554ee7e8e129da85791529
Reviewed-on: https://chromium-review.googlesource.com/c/1329698
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57439}
2018-11-12 16:01:30 +00:00
Sathya Gunasekaran
d0749b788d [dict] Specialize SmallOrderedHashTable for Name dictionary
Bug: v8:6443, v8:7569
Change-Id: Iee039eddd07a7bbc38c8e9f7deca00d5183e702a
Reviewed-on: https://chromium-review.googlesource.com/c/1329697
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57438}
2018-11-12 16:01:30 +00:00
Ben L. Titzer
0227b62fdb [compiler] Move some files to backend/ directory
This CL splits the backend of TurboFan off into its own directory,
without changing namespaces. This makes ownership management a bit
more fine-grained with a logical separation.

R=mstarzinger@chromium.org,jarin@chromium.org,adamk@chromium.org

Change-Id: I2ac40d6ca2c4f04b8474b630aae0286ecf79ef42
Reviewed-on: https://chromium-review.googlesource.com/c/1308333
Commit-Queue: Ben Titzer <titzer@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57437}
2018-11-12 15:06:56 +00:00
Clemens Hammacher
cd7539e196 [wasm] Fix memory estimates for NativeModule
1) For the code space estimate, exclude everything except code.
2) Add some static code size per function.
3) Add some static code size per module.
4) Include signature zone memory.

R=mstarzinger@chromium.org

Change-Id: Ifa9ac347edf98c2e63ab3201a64ac2e0a3de28e5
Reviewed-on: https://chromium-review.googlesource.com/c/1118263
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57436}
2018-11-12 14:55:07 +00:00
Clemens Hammacher
3b64603da5 [wasm] Reset StreamingProcessor on error
After the first decoder error, the streaming processor should not be
called again. To enforce this, reset the {processor_} field. This also
makes the {ok_} field redundant.
Note that this refactoring is also necessary for a future CL which
makes the {StreamingProcessor} keep the {AsyncCompileJob} alive. By
resetting the processor, we also remove that link.

R=ahaas@chromium.org

Bug: v8:7921
Change-Id: I42f5ed26a8f26c3dc8db5676557a0d82021e132e
Reviewed-on: https://chromium-review.googlesource.com/c/1329179
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57435}
2018-11-12 14:47:06 +00:00
Jakob Gruber
f7be7ae096 Clean out dead code and remove IS_VAR support
This removes unused code (macros.py, runtime functions). As IS_VAR is
now unused we can remove support from the parser.

Bug: v8:7624
Change-Id: Ia1c5e23f4c2caa85310d3f9a557218fc52d200f2
Reviewed-on: https://chromium-review.googlesource.com/c/1329696
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57434}
2018-11-12 14:46:04 +00:00
Igor Sheludko
2ecdbd24fb [ptr-compr] Fix compilation issue with 32-bit MSVC
Bug: v8:8182
Change-Id: I9c83428b54764db99e83a6bf6ef556b68fd546b0
Reviewed-on: https://chromium-review.googlesource.com/c/1329694
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57433}
2018-11-12 12:03:59 +00:00
Sathya Gunasekaran
6b82acd489 [dict] Add ValueAt, PutValueAt, DetailsAt and PutDetailsAt
... to OrderedNameDict

Bug: v8:6443, v8:7569
Change-Id: Ic952c88e3256935391707032320913069020b045
Reviewed-on: https://chromium-review.googlesource.com/c/1329682
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57432}
2018-11-12 11:45:12 +00:00
Sathya Gunasekaran
d332ac2252 [dict] Refactor FindEntry
Specialize FindEntry for OrderedNameDictionary

Bug: v8:6443, v8:7569
Change-Id: I776415fde6bc2ea292b645fbca6952c7bb09d89d
Reviewed-on: https://chromium-review.googlesource.com/c/1329962
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57431}
2018-11-12 11:45:12 +00:00
Sathya Gunasekaran
64a3d65765 [dict] Add ordered name dictionary type
This is the larger dictionary specialized for Name. To be used as a
property backing store.

More methods and tests will be added in the future as it reaches
parity with NameDictionary.


Bug: v8:6443, v8:7569
Change-Id: I8f5d88b2f6f4e14d4851548566ffa9f59535358b
Reviewed-on: https://chromium-review.googlesource.com/c/1329204
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57430}
2018-11-12 11:45:12 +00:00
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