Commit Graph

51234 Commits

Author SHA1 Message Date
Predrag Rudic
221305e98f MIPS[64]: Fix failing several Liftoff tests
Failing test are: cctest/cctest/test-run-wasm/RunWasmLiftoff*.
Test started to fail after this commit: 56b8ab5d07
This patch also fixes MIPS big endian build failure.

Change-Id: I333450f2a8f9c9a61db9aea18e5e973f48742d52
Reviewed-on: https://chromium-review.googlesource.com/c/1286348
Reviewed-by: Ivica Bogosavljevic <ibogosavljevic@wavecomp.com>
Commit-Queue: Ivica Bogosavljevic <ibogosavljevic@wavecomp.com>
Cr-Commit-Position: refs/heads/master@{#56742}
2018-10-17 14:32:37 +00:00
Jakob Gruber
708be823a1 [root] Refactor root offset accessors in TurboAssembler
Some confusion has crept in over time, specifically around
the distinction between an offset to an external reference's
address and an offset to its entry in the external reference
table. This CL unifies naming and interfaces.

Drive-by: Fix formatting in macro-assembler-x64.

Bug: v8:6666
Change-Id: Iade98ca28a7304aba0254b92b553343826a08e41
Reviewed-on: https://chromium-review.googlesource.com/c/1286674
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56741}
2018-10-17 14:30:17 +00:00
Peter Marshall
d1943e9b85 [cpu-profiler] Make ProfilerEventsProcessor the CodeEventObserver.
Currently ProfilerListener channels the code events to Processor
via CpuProfiler - we don't need this indirection and can just hook
it up directly. This also makes it easier to test because we don't need
a CpuProfiler object just to test the Processor.

Drive-by cleanup:
- Remove NUMBER_OF_TYPES from CodeEventRecord as it is not used.
- Remove Isolate* parameter from AddDeoptStack and AddCurrentStack as
  a Processor object is only ever for one Isolate. Store the Isolate*
  on the ProfilerEventsProcessor object itself.
- Remove the default case from switch in ProcessCodeEvent().

Bug: v8:5193
Change-Id: I26c1a46b0eec34b5248b707d1997c3a9409a9604
Reviewed-on: https://chromium-review.googlesource.com/c/1286341
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56740}
2018-10-17 14:24:50 +00:00
Jakob Gruber
90cb014493 [ia32,root] Make remainining builtins isolate-independent
Drive-by: Fix ExternalReferenceAddressAsOperand. Now it correctly
returns an operand to within the external reference table.

Bug: v8:6666
Change-Id: I8226257f27a2747584d37fd948d66c6e9b0d7ecf
Reviewed-on: https://chromium-review.googlesource.com/c/1286671
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56739}
2018-10-17 14:23:49 +00:00
Clemens Hammacher
3539d6d543 [wasm][test] Last cleanups in decoder unittest
This is cleanups that I forgot to include in the previous CLs or that
did not fit in any of them.

This is the eighth CL in a series to improve our module decoder tests
and make them more readable.

R=titzer@chromium.org

Bug: v8:8238
Change-Id: I0db04288f1efd9bb4642478d22c0edc8ac17e024
Reviewed-on: https://chromium-review.googlesource.com/c/1286669
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56738}
2018-10-17 14:07:25 +00:00
Clemens Hammacher
731fda480e [wasm][test] Refactor src map tests
This is the seventh CL in a series to improve our module decoder tests
and make them more readable.

R=titzer@chromium.org

Bug: v8:8238
Change-Id: Ib8bd2cc3f2fdb23b39511657a4af99f6fa781172
Reviewed-on: https://chromium-review.googlesource.com/c/1286346
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56737}
2018-10-17 13:37:51 +00:00
Clemens Hammacher
fa40461365 [wasm][test] Fix empty function bodies
Currently, the empty function bodies actually contain the byte 0, which
is the unreachable opcode. This CL fixes this to be empty function
bodies, and uses the macros more consistently.

This is the sixth CL in a series to improve our module decoder tests and
make them more readable.

R=titzer@chromium.org

Bug: v8:8238
Change-Id: I5f029210b4589797ee194e4082afec2c7bc31561
Reviewed-on: https://chromium-review.googlesource.com/c/1286343
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56736}
2018-10-17 13:32:02 +00:00
Toon Verwaest
f6eb53ed9e [parser] Output has_spread instead of first_spread_loc from ParseArguments
Change-Id: I4ceb1455875cc27c193554681b9bb3aa07bd805e
Reviewed-on: https://chromium-review.googlesource.com/c/1286345
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56735}
2018-10-17 13:25:10 +00:00
Michael Achenbach
b7f0eaf81c [test] Restrict lite-mode builder to default variant
TBR=sergiyb@chromium.org
NOTRY=true

Bug: v8:8290
Change-Id: Ic82b1f0c8a76f6c046bcc74d0296d7447f773335
Reviewed-on: https://chromium-review.googlesource.com/c/1286675
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56734}
2018-10-17 13:17:11 +00:00
Georg Neis
9bd4ee795b [turbofan] Store native_context rather than global_proxy for JSFunction.
This will also be useful for JSCallReducer.

In order to avoid extra work, the CL restricts one path of the JSCall
lowering to functions from the own native context.

Bug: v8:7790
Change-Id: I9f3a478969d641da59661ff196fdedae8195d680
Reviewed-on: https://chromium-review.googlesource.com/c/1286335
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56733}
2018-10-17 13:09:36 +00:00
Georg Neis
4c0b56af2b Ship --harmony-namespace-exports.
This enables by the default the
  export * as foo from "bar"
syntax in modules.

Bug: v8:8101
Change-Id: I98b07d217ae08ff6a556e69cb3bf6e8f4bd46a07
Reviewed-on: https://chromium-review.googlesource.com/c/1282972
Reviewed-by: Adam Klein <adamk@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56732}
2018-10-17 13:08:30 +00:00
Michael Achenbach
2bd8834463 [build] Add configs for lite-mode builders
NOTRY=true

Bug: v8:8290
Change-Id: I422788cbcf1464616a556aebbcdfe92da4822908
Reviewed-on: https://chromium-review.googlesource.com/c/1286347
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56731}
2018-10-17 13:04:15 +00:00
Toon Verwaest
c7a8378aef [parser] Better separate arrow head and argument parsing
Change-Id: I25250eefe4ab3bbc007c9943a4a4420a8e573a8b
Reviewed-on: https://chromium-review.googlesource.com/c/1286342
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56730}
2018-10-17 12:54:27 +00:00
Michael Achenbach
1dac557532 [test] Skip test on GC fuzzer
TBR=sergiyb@chromium.org
NOTRY=true

Change-Id: Idef28a62e250fafb04c3dd0de29429a75a924df0
Reviewed-on: https://chromium-review.googlesource.com/c/1283110
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56729}
2018-10-17 12:48:07 +00:00
Jakob Gruber
1849b47ce1 [ia32,root] Make more builtins isolate-independent
This bundles a bunch of miscellaneous things to make more builtins
isolate-independent (e.g.: using tasm::Move instead of asm::mov
methods).

Drive-by: The isolate-independence whitelist was changed to a blacklist.

Bug: v8:6666
Change-Id: I7e0fbe8bb2ca3dc751ad070f1a92aebb88b43125
Reviewed-on: https://chromium-review.googlesource.com/c/1286331
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56728}
2018-10-17 12:24:44 +00:00
Takuto Ikuta
6f21893444 Specify const for operator() in LiveRangeOrdering
This is a preparation CL to remove -Wno-user-defined-warnings warning suppression.

Bug: chromium:683349
Change-Id: If883c24ebac66292329abaf01c5d328bfd51c5c9
Reviewed-on: https://chromium-review.googlesource.com/c/1286391
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Takuto Ikuta <tikuta@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56727}
2018-10-17 11:40:50 +00:00
Florian Sattler
02100d560f Compress memory by reordering members and storing bits in pointers.
Store the bits of a small type into the lower bits
of a pointer type that are free due to alignment.
Furthermore, reordering of members to reduce size of some classes.

Change-Id: I3c619cb74053f64995ea7d0cb395e8edda604f18
Reviewed-on: https://chromium-review.googlesource.com/c/1273019
Commit-Queue: Florian Sattler <sattlerf@google.com>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56726}
2018-10-17 11:39:05 +00:00
Deepti Gandluri
6cde186b21 [atomics] Fix I64AtomicStore/I64AtomicExchange for ia32
Change-Id: I54b34635842e62f08ff06c68b965f2e38155bad8
Bug: v8:8202
Reviewed-on: https://chromium-review.googlesource.com/c/1282932
Reviewed-by: Stephan Herhut <herhut@chromium.org>
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56725}
2018-10-17 11:35:34 +00:00
Predrag Rudic
132d2672c5 MIPS: Fix call RecordRelocInfo with mode NONE.
Calling RecordRelocInfo with NONE mode causes DCHECK in
ShouldRecordRelocInfo to fail.

Change-Id: I2525d3178c8f1f61cb6f58e7e257c206a94f0af0
Reviewed-on: https://chromium-review.googlesource.com/c/1283078
Reviewed-by: Ivica Bogosavljevic <ibogosavljevic@wavecomp.com>
Commit-Queue: Ivica Bogosavljevic <ibogosavljevic@wavecomp.com>
Cr-Commit-Position: refs/heads/master@{#56724}
2018-10-17 11:28:26 +00:00
v8-ci-autoroll-builder
bd3ff7f934 Update V8 DEPS.
Rolling v8/build: e583af8..4ebebc9

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/2be20fd..b273e0c

Rolling v8/third_party/depot_tools: 7d7bbc3..08faab9

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

Change-Id: Ia250871d2b8a15125510423f84dc7c3368217f86
Reviewed-on: https://chromium-review.googlesource.com/c/1286511
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@{#56723}
2018-10-17 11:26:25 +00:00
Takuto Ikuta
6d308af0b0 Remove unused lambda capture if DCHECK is not used.
This is a preparation CL to remove -Wno-unused-lambda-capture warning suppression.

Bug: chromium:681136
Change-Id: If3d16c8a6719bf3135e028ab2bafe850778e31b5
Reviewed-on: https://chromium-review.googlesource.com/c/1286390
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Takuto Ikuta <tikuta@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56722}
2018-10-17 10:45:35 +00:00
Clemens Hammacher
5d0055fa6e [wasm][test] Compute more lengths automatically
Compute the length of more fields automatically, in particular names.

This is the fifth CL in a series to improve our module decoder tests and
make them more readable.

R=titzer@chromium.org

Bug: v8:8238
Change-Id: I1bd27f45380d82af2d7319f15ac7e37d5b9e4081
Reviewed-on: https://chromium-review.googlesource.com/c/1283077
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56721}
2018-10-17 10:31:40 +00:00
Jaroslav Sevcik
2d11ddab98 [deoptimizer] Materialize context properly for construct stub frame.
Bug: chromium:895799
Change-Id: Icbc06f1fc2362a04e76961f50a8ba4b29080837c
Reviewed-on: https://chromium-review.googlesource.com/c/1286336
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56720}
2018-10-17 10:27:04 +00:00
Toon Verwaest
e1c6fa8878 [parser] Token-range-check for callable identifier tokens
This also fixes the tokens that are identified as called identifiers.

Change-Id: I4a2179b98214f9018c8c07c0ab27f878cdae13cf
Bug: v8:6513
Reviewed-on: https://chromium-review.googlesource.com/c/1286338
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56719}
2018-10-17 10:21:44 +00:00
Clemens Hammacher
e19dc9f604 [wasm][test] Compute section length automatically
Instead of specifying the byte length of a section manually, just
compute it automatically from the bytes given. Manual computation is
particularly difficult because of the macros involved, which can expand
to several bytes.
This is not a pure refactoring, it also fixes several occasions where
we calculated the length wrong.

Drive-by: Add some ENTRY_COUNT macro uses.

This is the fourth CL in a series to improve our module decoder tests and
make them more readable.

R=titzer@chromium.org

Bug: v8:8238
Change-Id: I0d2ceb751fc8e5625ffdf4189d4b5253aecc2541
Reviewed-on: https://chromium-review.googlesource.com/c/1283075
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56718}
2018-10-17 09:29:21 +00:00
Peter Marshall
2278383261 [cpu-profiler] Refactor SamplingEventsProcessor into base and subclass
This is preparation to allow for a non-sampling events processor which
receives ticks from a source not driven by a timer. This will allow us
to have more deterministic testing of the CPU profiler.

It also allows different implementations for a wall time and CPU time
triggered sampler.

Change-Id: I2e9db9580ec70f05094e59c2c1e5efc28c8f7da8
Reviewed-on: https://chromium-review.googlesource.com/c/1280436
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56717}
2018-10-17 09:27:52 +00:00
Hai Dang
fb29a554e8 Add fast path for spreading keys/values of JSMap and JSSet.
This CL extends IterableToListWithSymbolLookup with fast paths
for spreading keys/values iterators of JSMap, and values iterator
of JSSet (which is also the iterator of Set.prototype.keys() and
Set.prototype[Symbol.iterator]()). The fast paths are only taken
if the target still has original iteration behavior.

For iterators it is also required that the iterator is not
partially consumed. After spreading, to be spec-compliant, the
iterator is exhausted. Tests are added.

Bug: v8:7980
Change-Id: Ida74e5ecbbc5ba5488d13a40f2c4bda14c781cbf
Reviewed-on: https://chromium-review.googlesource.com/c/1276632
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Hai Dang <dhai@google.com>
Cr-Commit-Position: refs/heads/master@{#56716}
2018-10-17 09:18:50 +00:00
Michael Achenbach
676460f943 [test] Skip slow tests on arm simulators
This skips the slowest tests in stress and noopt variants.

TBR=sigurds@chromium.org
NOTRY=true

Bug: v8:7783
Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Ic471a2ab3e6806c4c60b81c0cdddfb44b199dd26
Reviewed-on: https://chromium-review.googlesource.com/c/1286334
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56715}
2018-10-17 08:52:47 +00:00
Clemens Hammacher
a28a2f06e4 [wasm][test] Add sig index to empty functions
Function declarations reference a previously defined or imported
signature. Make this visible when declaring empty functions.
Also rename IMPORT_SIG_INDEX to SIG_INDEX since it can also reference a
locally defined signature.

This is the third CL in a series to improve our module decoder tests and
make them more readable.

R=titzer@chromium.org

Bug: v8:8238
Change-Id: Ibfd9ea39ea35bacdb453602f8985fb3306455de4
Reviewed-on: https://chromium-review.googlesource.com/c/1282958
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56714}
2018-10-17 08:37:28 +00:00
Takuto Ikuta
eac96e77c3 Use correct enum for BUILTIN and BYTECODE_HANDLER
Bug: chromium:753973
Change-Id: Ib30bd11ebabfd364d6cee6d31b11c01744e13520
Reviewed-on: https://chromium-review.googlesource.com/c/1286389
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Takuto Ikuta <tikuta@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56713}
2018-10-17 08:12:22 +00:00
Michael Achenbach
71a29af918 Revert "[release] Ignore binary-size tracking on auto-rolls"
This reverts commit 37871a0225.

Reason for revert: Root cause was fixed.

Original change's description:
> [release] Ignore binary-size tracking on auto-rolls
> 
> NOTRY=true
> 
> Bug: chromium:893991
> Change-Id: I490c02266a367d93495a2de7516486aca2c8e26c
> Reviewed-on: https://chromium-review.googlesource.com/c/1273118
> Reviewed-by: Maya Lekova <mslekova@chromium.org>
> Commit-Queue: Michael Achenbach <machenbach@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#56524}

TBR=machenbach@chromium.org,hablich@chromium.org,mslekova@chromium.org
NOTRY=true

Bug: chromium:893991
Change-Id: I0ac21d38320cefdaf724035d58577dc35315c9eb
Reviewed-on: https://chromium-review.googlesource.com/c/1286333
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56712}
2018-10-17 08:07:03 +00:00
Marja Hölttä
979643e426 [js weak cells] Implement makeCell corner cases
BUG=v8:8179

Change-Id: I29c5a5359a6e682ec6d94e9779f921889546b6a7
Reviewed-on: https://chromium-review.googlesource.com/c/1278393
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56711}
2018-10-17 07:08:23 +00:00
Jakob Kummerow
109fec8ce0 [foozzie] Add Big*64Array to mock file
To prevent correctness fuzzers from finding spurious differences
between architectures, we need to mock out the maximum length of
all TypedArrays. This patch adds the two new types BigInt64Array
and BigUint64Array to the existing list.

Bug: chromium:894864
Change-Id: I5cdeeafa597b09aee2d9b4d368c07f10008baf58
Reviewed-on: https://chromium-review.googlesource.com/c/1285399
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56710}
2018-10-17 06:24:06 +00:00
Tobias Tebbi
95f0ea7b4a [torque] allow return type never for runtime functions
Motivated by https://crrev.com/c/1196693, this allows to declare runtime
functions with return type never in Torque. For example:

extern runtime ReThrow(Context, Object) : never;

Change-Id: I5dd8fe0ca22c778364bfcf1caf52180039c5be7e
Reviewed-on: https://chromium-review.googlesource.com/c/1282957
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56709}
2018-10-16 22:01:52 +00:00
Johannes Henkel
cf1660723f [DevTools] Rename Binary::createFromBase64 -> fromBase64.
This will be more consistent with other creation methods,
as discovered in
https://chromium-review.googlesource.com/c/chromium/src/+/1281166/4/headless/lib/browser/protocol/protocol_string.h

Sorry about the Churn. And it turns out I was wrong I'll have to
send one more PR for two other renames. Sorry!

Bug: chromium:891377
Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I10ed870bcf065c1913971ec8c194fa1c8149a2b4
Reviewed-on: https://chromium-review.googlesource.com/c/1284789
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Commit-Queue: Johannes Henkel <johannes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56708}
2018-10-16 21:55:12 +00:00
Frank Tang
e6261d708a [Intl] Changes to new behavior when style is narrow
This is to implement a new change in the proposal
'14.  If style is "narrow" and type is not "unit", throw a RangeError exception.'
in #sec-Intl.ListFormat
See also
https://github.com/tc39/proposal-intl-list-format/issues/16
https://github.com/tc39/proposal-intl-list-format/pull/27
and
https://github.com/tc39/test262/pull/1860

Bug: v8:8302
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: I0a3dc99eeb18082f359c24c472889d8b6e905225
Reviewed-on: https://chromium-review.googlesource.com/c/1277660
Commit-Queue: Frank Tang <ftang@chromium.org>
Reviewed-by: Frank Tang <ftang@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Reviewed-by: Daniel Ehrenberg <littledan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56707}
2018-10-16 21:40:32 +00:00
Caitlin Potter
4d07af1a34 [counters] add use count for the "override mistake"
Adds 2 counts to see how often this occurs on the web, both the throwing
version (strict mode), and the no-op sloppy mode case, to help determine
if the proposal at https://github.com/tc39/ecma262/pull/1307 is web
compatible.

This is the V8 side of required changes.
The Chromium-side CL: https://crrev.com/c/1280618

BUG=v8:8175
R=littledan@chromium.org, cbruni@chromium.org, jkummerow@chromium.org, yangguo@chromium.org

Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: Id12336c2e566093bb554b6d4624c9301fbc4a0f7
Reviewed-on: https://chromium-review.googlesource.com/c/1255549
Commit-Queue: Caitlin Potter <caitp@igalia.com>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56706}
2018-10-16 21:34:23 +00:00
Jakob Kummerow
a2f1824839 [ubsan] Replace internal::Object references in v8.h
with internal::Address. This is in preparation for the upcoming
changes to internal::Object. The public API is unchanged, and
there should be no change in behavior either.

Most of the casts newly introduced here will disappear again once
the migration is complete.

Bug: v8:3770
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: I2990b06a2511ccc5de3f98fd95a805f30ed589ab
Reviewed-on: https://chromium-review.googlesource.com/c/1036612
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56705}
2018-10-16 19:02:21 +00:00
Frank Tang
db6db6ed8f [Intl] Add more tests for Intl.Segmenter
Bug: v8:6891
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: I0b82b194cb7089aeaa322ed4e45008db6890e7a1
Reviewed-on: https://chromium-review.googlesource.com/c/1266995
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56704}
2018-10-16 15:17:09 +00:00
Clemens Hammacher
db59389950 [wasm][test] Fix uses of EXPECT_FAILURE_LEN
Ensure that {min} is smaller than {max}, and auto-compute {max} as
{arraysize(data)}.
We had two tests which did not actually test anything.

This is the second CL in a series to improve our module decoder tests
and make them more readable.

R=titzer@chromium.org

Bug: v8:8238
Change-Id: Ie467fa54609bc5fd860608085a2d58ed8341f5e7
Reviewed-on: https://chromium-review.googlesource.com/c/1282956
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56703}
2018-10-16 14:24:59 +00:00
Clemens Hammacher
9b8e034b5f [wasm][test] Use EXPECT_FAILURE consistently
First CL in a series to improve our module decoder tests and make them
more readable.

R=titzer@chromium.org

Bug: v8:8238
Change-Id: Ie6ac83fbe2f873bfda8597ab3dd9ec4c0fb548ad
Reviewed-on: https://chromium-review.googlesource.com/c/1283054
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56702}
2018-10-16 14:19:09 +00:00
Sergiy Byelozyorov
94850f5cc2 [tools] Print stdout header even when the output is empty
This will allow us to determine whether tests are not printing anything or
whether our infrastructure is failing to retrieve the stdout.

TBR=machenbach@google.com

No-Try: true
Bug: chromium:891314
Change-Id: I0786e77b4db9f247e02a25924acd6d6773c0db9f
Reviewed-on: https://chromium-review.googlesource.com/c/1282962
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56701}
2018-10-16 14:06:16 +00:00
Jakob Gruber
d25088e9ba Reland "[ia32,root] Add indirect calls and jumps through virtual register"
This is a reland of 650703557a

Original change's description:
> [ia32,root] Add indirect calls and jumps through virtual register
>
> This adds a temporary mechanism for isolate-independent calls and
> jumps.  The problem was that - as ia32 doesn't have a scratch register
> - Call and Jump cannot call through a register. This CL adds a
> so-called virtual register (= a pointer-sized field) on IsolateData.
>
> The virtual register can be removed once pc-relative calls are
> implemented and all builtins have been embedded.
>
> Bug: v8:6666
> Change-Id: I1f9d8a25643fad0b3919dd813dbe219d20fcc6bc
> Reviewed-on: https://chromium-review.googlesource.com/c/1282991
> Commit-Queue: Jakob Gruber <jgruber@chromium.org>
> Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
> Reviewed-by: Igor Sheludko <ishell@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#56693}

TBR=sigurds@chromium.org

Bug: v8:6666
Change-Id: If463e68036673c7873d0d5e1a8a01ef31263cbfa
Reviewed-on: https://chromium-review.googlesource.com/c/1283052
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56700}
2018-10-16 14:05:12 +00:00
peterwmwong
952c097679 [builtins] Port Array.p.join to Torque.
This also includes ports of Array.p.toString and Array.p.toLocaleString.
Many parts of the old JS implementation are preserved, because
TypedArray.p.join still relies on it.  These will be removed once
TypedArray.p.join is ported to Torque.

To simplify implementation, special handling of extremely sparse arrays
has been removed.

Performance improvements vary by array size, elements, and sparse-ness.
Some quick numbers and graphs are here:
https://docs.google.com/spreadsheets/d/125VLmRMudk8XaomLCsZQ1ewc94WCqht-8GQwU3s9BW8/edit#gid=2087673710

Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;luci.v8.try:v8_linux_noi18n_rel_ng;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Ia4069a068403ce36676c37401d349aefc976b045
Reviewed-on: https://chromium-review.googlesource.com/c/1196693
Commit-Queue: Peter Wong <peter.wm.wong@gmail.com>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56699}
2018-10-16 13:56:31 +00:00
Sigurd Schneider
f64edae08f [assembler] Add scratch register to cvtui2sd SSE instruction
Change-Id: I861babb77f224626f6cdb88a7be08db75f5cf327
Bug: v8:6666
Reviewed-on: https://chromium-review.googlesource.com/c/1283089
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56698}
2018-10-16 13:53:30 +00:00
Marja Hölttä
8060b60fae [js weak refs] Add WeakCell.prototype.holdings
BUG=v8:8179

Change-Id: I528e64fafff2dc00808c48107799d39603f0ca48
Reviewed-on: https://chromium-review.googlesource.com/c/1275823
Commit-Queue: Marja Hölttä <marja@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56697}
2018-10-16 13:41:40 +00:00
Michael Achenbach
9ca02dfc5e [test] Migrate builder-specific variant configurations
NOTRY=true

Bug: chromium:830557
Change-Id: Ic67ab462f7be1787613ad42219f81760a96a3731
Reviewed-on: https://chromium-review.googlesource.com/c/1282955
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56696}
2018-10-16 13:30:23 +00:00
Sigurd Schneider
3299127220 [ia32,root] Make API entry code isolate independent
Change-Id: I7691c12acc1b2d0be3e35cf699bb16df4ca84b6e
Bug: v8:6666
Reviewed-on: https://chromium-review.googlesource.com/c/1280435
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56695}
2018-10-16 13:28:13 +00:00
Jakob Gruber
08403cc763 Revert "[ia32,root] Add indirect calls and jumps through virtual register"
This reverts commit 650703557a.

Reason for revert: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20noi18n%20-%20debug/23308

Original change's description:
> [ia32,root] Add indirect calls and jumps through virtual register
> 
> This adds a temporary mechanism for isolate-independent calls and
> jumps.  The problem was that - as ia32 doesn't have a scratch register
> - Call and Jump cannot call through a register. This CL adds a
> so-called virtual register (= a pointer-sized field) on IsolateData.
> 
> The virtual register can be removed once pc-relative calls are
> implemented and all builtins have been embedded.
> 
> Bug: v8:6666
> Change-Id: I1f9d8a25643fad0b3919dd813dbe219d20fcc6bc
> Reviewed-on: https://chromium-review.googlesource.com/c/1282991
> Commit-Queue: Jakob Gruber <jgruber@chromium.org>
> Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
> Reviewed-by: Igor Sheludko <ishell@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#56693}

TBR=sigurds@chromium.org,jgruber@chromium.org,ishell@chromium.org

Change-Id: I782651140eee3e75d57ad57d614a981e420fdfeb
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:6666
Reviewed-on: https://chromium-review.googlesource.com/c/1283051
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56694}
2018-10-16 12:49:03 +00:00
Jakob Gruber
650703557a [ia32,root] Add indirect calls and jumps through virtual register
This adds a temporary mechanism for isolate-independent calls and
jumps.  The problem was that - as ia32 doesn't have a scratch register
- Call and Jump cannot call through a register. This CL adds a
so-called virtual register (= a pointer-sized field) on IsolateData.

The virtual register can be removed once pc-relative calls are
implemented and all builtins have been embedded.

Bug: v8:6666
Change-Id: I1f9d8a25643fad0b3919dd813dbe219d20fcc6bc
Reviewed-on: https://chromium-review.googlesource.com/c/1282991
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56693}
2018-10-16 12:19:21 +00:00