Commit Graph

45832 Commits

Author SHA1 Message Date
Wez
199a3341e4 Fix various call-sites not to use POSIX APIs unsupported by Fuchsia.
Bug: chromium:809201
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
Change-Id: I060ae3a88c3a3731bfdbb9e6d5cdf8600ec8b832
Reviewed-on: https://chromium-review.googlesource.com/903421
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Wez <wez@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51190}
2018-02-08 23:24:25 +00:00
Sergiy Byelozyorov
2052773f12 Whitespace CL
TBR=sergiyb@chromium.org

Bug: chromium:616879
Change-Id: I686916ac031a32782a86ae74455d7f6f0d083377
No-Try: True
Reviewed-on: https://chromium-review.googlesource.com/910048
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51189}
2018-02-08 23:13:35 +00:00
Michael Achenbach
99fad4115d [test] Forgive tests timing out on num-fuzzers
Timeouts on num-fuzzer only lead to false positives, as tests might
take unpredictably longer.

This CL forgives timeouts through a global override mechanism of the
expected outcomes. This allows to remove already existing scattered
code that allowed timeouts in some test suites only.

Bug: v8:6917
Change-Id: Ib131765d360e335789c1952bc6793ed051e016ea
Reviewed-on: https://chromium-review.googlesource.com/908454
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51188}
2018-02-08 23:08:05 +00:00
Sergiy Byelozyorov
8fcf2e6f47 Whitespace CL
TBR=sergiyb@chromium.org

Bug: chromium:616879
Change-Id: I449b7e55bd2cf70f45e423ebc46982187c4f14dd
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/908455
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51187}
2018-02-08 22:56:26 +00:00
Junliang Yan
3088777fb5 PPC/s390: [debug] implement break on entry for builtin functions.
Port 876f37c3de

Original Commit Message:

    We reuse most of the infrastructure to set break points, with minor
    differences when we encounter functions where we can only break on entry:
    - PrepareFunctionForBreakPoints simply deopts all functions.
    - Break point objects have the canonical source position 0.
    - Break point is set/checked/cleared via bit on the DebugInfo.
    - Debug::Break do not continue stepping since stepping is implemented via
      regular break points and therefore do not interfere with break on entry.

    I promise to add more tests.

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

Change-Id: I0595652adced533c1032a6c3fd64cddfd4e730da
Reviewed-on: https://chromium-review.googlesource.com/909292
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#51186}
2018-02-08 21:32:16 +00:00
Yang Guo
2c8663aa1a [gyp] remove gyp files.
R=machenbach@chromium.org

Bug: v8:7335
Change-Id: Ied1101295fc9ee37fcc038b9aeb557229722df0b
Reviewed-on: https://chromium-review.googlesource.com/897566
Commit-Queue: Yang Guo <yangguo@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51185}
2018-02-08 20:04:06 +00:00
Sigurd Schneider
922d14b4fe [turbofan] Add feedback to SpeculativeToNumber
Bug: v8:7250
Change-Id: If4c9d0b32939a06993d3ffb39ac4b19edbad422f
Reviewed-on: https://chromium-review.googlesource.com/906731
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51184}
2018-02-08 18:02:04 +00:00
Vasili Skurydzin
13d67667cc Fixes to V8 GN build process on AIX
Change to v8/BUILD.gn regarding GN build of V8. Excluding platform-posix-time.h
and platform-posix-time.cc from the sources list on AIX os. The changes affect
AIX only.

Bug: chromium:616029
Change-Id: I5e5d46aa4c62f70544ff593294e459c607a03c67
Reviewed-on: https://chromium-review.googlesource.com/897124
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51183}
2018-02-08 17:51:44 +00:00
Sathya Gunasekaran
46488f71bb [promisehook] Check for JSReceiver in runtime function
PromiseHooks can be called with a proxy which fails the cast and
crashes. This patch changes the runtime functions to
explicitly check for a JSPromise.

This has the side effect of removing the existing broken support for
catch prediction for non native promises.

Bug: v8:7398, v8:7190
Change-Id: I66dbe5f9935943a91afb7ee14919bd9248f9f7e4
Reviewed-on: https://chromium-review.googlesource.com/907677
Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51182}
2018-02-08 17:28:54 +00:00
Adam Klein
3916401e4b Revert "[builtins] Mega-revert to address the Dev blocker in crbug.com/808911."
This reverts commit 14108f4c2e.

Reason for revert: Not the culprit for Canary microtask crashes

Original change's description:
> [builtins] Mega-revert to address the Dev blocker in crbug.com/808911.
> 
> - Revert "[builtins] Save one word in contexts for Promise.all."
>   This reverts commit 7632da067b.
> - Revert "[builtins] Also use the Promise#then protector for Promise#finally()."
>   This reverts commit d4f072ced3.
> - Revert "[builtins] Don't mess with entered context for MicrotaskCallbacks."
>   This reverts commit 6703dacdd6.
> - Revert "[debugger] Properly deal with settled promises in catch prediction."
>   This reverts commit 40dd065823.
> - Revert "[builtins] Widen the fast-path for Promise builtins."
>   This reverts commit db0556b7e8.
> - Revert "[builtins] Unify PerformPromiseThen and optimize it with TurboFan."
>   This reverts commit a582199c5e.
> - Revert "[builtins] Remove obsolete PromiseBuiltinsAssembler::AppendPromiseCallback."
>   This reverts commit 6bf8885290.
> - Revert "[builtins] Turn NewPromiseCapability into a proper builtin."
>   This reverts commit 313b490ddd.
> - Revert "[builtins] Inline InternalPromiseThen into it's only caller"
>   This reverts commit f7bd6a2fd6.
> - Revert "[builtins] Implement Promise#catch by really calling into Promise#then."
>   This reverts commit b23b098fa0.
> - Revert "[promise] Remove incorrect fast path"
>   This reverts commit 0f6eafe855.
> - Revert "[builtins] Squeeze JSPromise::result and JSPromise::reactions into a single field."
>   This reverts commit 8a677a2831.
> - Revert "[builtins] Refactor promises to reduce GC overhead."
>   This reverts commit 8e7737cb58.
> 
> Tbr: hpayer@chromium.org
> Bug: chromium:800651, chromium:808911, v8:5691, v8:7253
> Change-Id: I8c8ea5ed32ed62f6cd8b0d027a3707ddd891e5f1
> Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
> Reviewed-on: https://chromium-review.googlesource.com/906991
> Commit-Queue: Yang Guo <yangguo@chromium.org>
> Commit-Queue: Adam Klein <adamk@chromium.org>
> Reviewed-by: Adam Klein <adamk@chromium.org>
> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#51158}

Change-Id: I09d958cbebd635a325809072a290f2f53df8c5d4
Tbr: adamk@chromium.org,yangguo@chromium.org,bmeurer@chromium.org
Bug: chromium:800651, chromium:808911, v8:5691, v8:7253
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
Reviewed-on: https://chromium-review.googlesource.com/908988
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51181}
2018-02-08 17:25:13 +00:00
Franziska Hinkelmann
2ef90158fb [heap-profiler] Use unique ptr for snapshots for explicit ownership
Implement empty desctructor because of the forward declarations.

Change-Id: I56af92d7ded44b6fcd3582d1e3a10e9bb5cb1296
Reviewed-on: https://chromium-review.googlesource.com/905671
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Franziska Hinkelmann <franzih@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51180}
2018-02-08 15:26:23 +00:00
Clemens Hammacher
da159ccc94 [Liftoff] Support i64 constants
For local variables of type i64 and also for i64 constants, it makes
sense to store the constant value in the {VarState} instead of loading
the value into a register immediately. This also helps with some
instructions like i64 bitshifts, but also general patterns like
incrementing an i64 local variable by a fixed number.

R=ahaas@chromium.org

Bug: v8:6600
Change-Id: Ibed15228bbc53632dd3e60d7862ff2fbcb9832ca
Reviewed-on: https://chromium-review.googlesource.com/904443
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51179}
2018-02-08 15:08:43 +00:00
Dan Elphick
1c10c4a275 [CSA] Add CSA_ASSERT_BRANCH to assert on branch results
The new macro takes a void(Label* ok, Label* not_ok), which should
generate statements that branch to one of the labels. If the not_ok
Label is reached, it will abort just like CSA_ASSERT.

Also replaces an instance of #ifdef DEBUG ... #endif with this pattern
in builtins-regexp-gen.cc

Change-Id: Ie7ec87e041c040c03f9c528dccc8e709e50ed9b9
Reviewed-on: https://chromium-review.googlesource.com/906933
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51178}
2018-02-08 15:04:53 +00:00
Michael Achenbach
9606052b89 [build] Remove remaining gyp builders from MB configs
NOTRY=true
TBR=yangguo@chromium.org

Bug: chromium:772804
Change-Id: I1f72b9710b25edf7d95fa5404bf22bd543fed66b
Reviewed-on: https://chromium-review.googlesource.com/908459
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51177}
2018-02-08 14:25:52 +00:00
sreten.kovacevic
d24b63ec85 [Liftoff] Introduce Liftoff support on [MIPS]
Added registers and conditions for this architecture.
Implemented some of the instructions, mainly for wasm
context operations.

Bug: v8:6600
Change-Id: I5f3e32eb4d284172b21434456395256872da3b46
Reviewed-on: https://chromium-review.googlesource.com/906609
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51176}
2018-02-08 13:57:01 +00:00
Clemens Hammacher
3c47499881 [Liftoff] Fix caller frame slots generated from stack values
Because of missing parentheses, the computation of the "half index" was
wrong, and always produced 0 or 1.
Also, for non-pairs, we were still passing kHighWord for the
RegPairHalf.

R=ahaas@chromium.org

Bug: v8:7422, v8:6600
Change-Id: If056aa8005d4b44e667b7d76b9be49ec0191d0eb
Reviewed-on: https://chromium-review.googlesource.com/908554
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51175}
2018-02-08 13:47:20 +00:00
Yang Guo
93db86e605 [debug] do not inline builtin if breaking on entry.
R=jarin@chromium.org

Bug: v8:178
Change-Id: I4b77e96072d5b8b70df21477bba8cdbf573d184c
Reviewed-on: https://chromium-review.googlesource.com/908289
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51174}
2018-02-08 13:05:20 +00:00
Michael Achenbach
b7b64095c2 [CQ] Retire gyp builder on CQ
NOTRY=true
TBR=yangguo@chromium.org

Bug: chromium:772804
Change-Id: I738d67bd504180de70359f4aabec3ef8f54cee16
Reviewed-on: https://chromium-review.googlesource.com/907557
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51173}
2018-02-08 11:45:34 +00:00
Dan Elphick
95f36d4a6c Remove redundant Array from ArrayFrom tests in JStests.json
Bug: chromium:810320
Change-Id: I5e07d27e4895539b49707c56197fc8413281af06
Reviewed-on: https://chromium-review.googlesource.com/907891
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51172}
2018-02-08 11:43:46 +00:00
Kim-Anh Tran
f9d2c0daa3 [wasm] Add checks and trace info for lazy compilation on native heap
Lazy compilation on native heap is currently lacking debug trace info
and checks that are available for the GC heap. This commit adds
lacking checks and debug outputs for the native heap.

R=clemensh@google.com

Change-Id: Iec2592bd421fdcbbd4461b13a7851926e791d297
Reviewed-on: https://chromium-review.googlesource.com/904531
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Kim-Anh Tran <kimanh@google.com>
Cr-Commit-Position: refs/heads/master@{#51171}
2018-02-08 10:15:33 +00:00
Taketoshi Aono
4455377fca Reland: Reimplement Object.entries/values as CSA to optimize performance.
Original CL is https://chromium-review.googlesource.com/c/v8/v8/+/810504
Reverted issue is https://bugs.chromium.org/p/chromium/issues/detail?id=804159

Fix Object.entries descriptor array value index.

This reverts commit e5ecb24859.

Bug: v8:6804, chromium:804159
Change-Id: I73a5a5f670c5b36e0c5cc7984d5979ecec43d969
Reviewed-on: https://chromium-review.googlesource.com/892684
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51170}
2018-02-08 10:12:32 +00:00
Michael Achenbach
49bce85225 [build] Add MB config for mips builder
TBR=yangguo@chromium.org
NOTRY=true

Bug: chromium:616017
Change-Id: I48a29bc96e2c7ae54f4b5bbb6790db1d8bfccab4
Reviewed-on: https://chromium-review.googlesource.com/908288
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51169}
2018-02-08 09:51:05 +00:00
Jaroslav Sevcik
d629d901b6 [turbofan] Move common instruction selector code into the platform-independent file.
Bug: v8:5267
Change-Id: I7fb48f6e2c7a3f3dd64e799492d94f68efea9a7f
Reviewed-on: https://chromium-review.googlesource.com/905646
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51168}
2018-02-08 09:49:08 +00:00
Michael Achenbach
8f7ccb6c1e [build] Support mips toolchain for cross-compiling
This enables compiling V8 stand-alone for mips (big endian)
on an ia32 host with gn args:

custom_toolchain="//:mips-bundled"
v8_use_snapshot=false
v8_enable_i18n_support=false
icu_use_data_file=false
is_debug=false
target_cpu="mips"

Bug: chromium:632390
Change-Id: I0b59126d742a2979dd0fcbcdd3a574008a09479a
Reviewed-on: https://chromium-review.googlesource.com/904990
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51167}
2018-02-08 08:25:47 +00:00
v8-autoroll
20183df53f Update V8 DEPS.
Rolling v8/build: 7e86dc4..3ba6ca6

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/1d86294..b4a4bed

Rolling v8/tools/clang: 2a49b96..357315f

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

Change-Id: I4616ff3d23772623d26d69ed3d5228db8a3e677c
Reviewed-on: https://chromium-review.googlesource.com/908069
Commit-Queue: v8 autoroll <v8-autoroll@chromium.org>
Reviewed-by: v8 autoroll <v8-autoroll@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51166}
2018-02-08 05:02:16 +00:00
Deepti Gandluri
2b67f8de57 [ia32] Fix disassembler tests to test instruction disassembly
Change-Id: I1fe7ba0a942c6da2d1c85c2391762cb434098cf1
Reviewed-on: https://chromium-review.googlesource.com/907346
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51165}
2018-02-08 00:25:16 +00:00
Caitlin Potter
601f5f7897 Make JSFunctionPrint() output Builtin names
This change has been useful when inspecting on_reject callbacks in
Isolate::InternalPromiseHasUserDefinedRejectHandler, it's probably
going to be helpful for other things too.

BUG=
R=adamk@chromium.org, littledan@chromium.org

Change-Id: I7c5bac87a3b8bd3ce19d71cf73397a93109976ba
Reviewed-on: https://chromium-review.googlesource.com/907641
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Caitlin Potter <caitp@igalia.com>
Cr-Commit-Position: refs/heads/master@{#51164}
2018-02-07 23:07:39 +00:00
Sergiy Byelozyorov
c509e05792 Whitespace CL
TBR=sergiyb@chromium.org

Bug: chromium:616879
Change-Id: I2cc9f55d1d244fa448d928574a8033e36af13028
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/907572
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51163}
2018-02-07 22:34:49 +00:00
Deepti Gandluri
8fa509d311 [x64] Fix Disassembler tests to actually test disassembly
Currently the disassembler tests continue on unimplemented instructions, fix
to abort instead as most bugs in the disassemblers will appear as unimplemented
instructions.

 - Localize testing disassembler method to abort on unimplemented
 - Fix failing x64 disassembler tests

Change-Id: I703cca9709c528327ec381d05a78cf3314ea4fa9
Reviewed-on: https://chromium-review.googlesource.com/907489
Reviewed-by: Ben Titzer <titzer@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51162}
2018-02-07 22:18:09 +00:00
Sergiy Byelozyorov
7fe83f31e1 Whitespace CL
TBR=sergiyb@chromium.org

Bug: chromium:793324
Change-Id: I0d898a6c9bf04b5b6e7bbb706ab62a34317cf393
Reviewed-on: https://chromium-review.googlesource.com/907550
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51161}
2018-02-07 21:33:29 +00:00
Junliang Yan
19a3a44da0 PPC/s390: ignore wasm/regress-808980 on ppc and s390
wasm code manager is known to have issue on reloc tagging and
also constant pool. Ignore until fix go in.

Change-Id: I4d7ddafba3cf8bc81c73a7b156cba39985bce48d
Reviewed-on: https://chromium-review.googlesource.com/906950
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#51160}
2018-02-07 20:43:09 +00:00
Sergiy Byelozyorov
1ed14848fe Whitespace CL
TBR=sergiyb@chromium.org

No-Try: true
Bug: chromium:616879
Change-Id: I126279d9290958baffc4df4a03642e89c2e60fed
Reviewed-on: https://chromium-review.googlesource.com/906730
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51159}
2018-02-07 20:27:49 +00:00
Benedikt Meurer
14108f4c2e [builtins] Mega-revert to address the Dev blocker in crbug.com/808911.
- Revert "[builtins] Save one word in contexts for Promise.all."
  This reverts commit 7632da067b.
- Revert "[builtins] Also use the Promise#then protector for Promise#finally()."
  This reverts commit d4f072ced3.
- Revert "[builtins] Don't mess with entered context for MicrotaskCallbacks."
  This reverts commit 6703dacdd6.
- Revert "[debugger] Properly deal with settled promises in catch prediction."
  This reverts commit 40dd065823.
- Revert "[builtins] Widen the fast-path for Promise builtins."
  This reverts commit db0556b7e8.
- Revert "[builtins] Unify PerformPromiseThen and optimize it with TurboFan."
  This reverts commit a582199c5e.
- Revert "[builtins] Remove obsolete PromiseBuiltinsAssembler::AppendPromiseCallback."
  This reverts commit 6bf8885290.
- Revert "[builtins] Turn NewPromiseCapability into a proper builtin."
  This reverts commit 313b490ddd.
- Revert "[builtins] Inline InternalPromiseThen into it's only caller"
  This reverts commit f7bd6a2fd6.
- Revert "[builtins] Implement Promise#catch by really calling into Promise#then."
  This reverts commit b23b098fa0.
- Revert "[promise] Remove incorrect fast path"
  This reverts commit 0f6eafe855.
- Revert "[builtins] Squeeze JSPromise::result and JSPromise::reactions into a single field."
  This reverts commit 8a677a2831.
- Revert "[builtins] Refactor promises to reduce GC overhead."
  This reverts commit 8e7737cb58.

Tbr: hpayer@chromium.org
Bug: chromium:800651, chromium:808911, v8:5691, v8:7253
Change-Id: I8c8ea5ed32ed62f6cd8b0d027a3707ddd891e5f1
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
Reviewed-on: https://chromium-review.googlesource.com/906991
Commit-Queue: Yang Guo <yangguo@chromium.org>
Commit-Queue: Adam Klein <adamk@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51158}
2018-02-07 19:46:59 +00:00
Karl Schimpf
7f981c6c21 [wasm] Add remaining saturating conversions
Adds the remaining saturating float to int conversion opcodes.

Bug: v8:7226
Change-Id: If84e564a7816eb4aedbc336f5c2e614da22bb10a
Reviewed-on: https://chromium-review.googlesource.com/905472
Commit-Queue: Karl Schimpf <kschimpf@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51157}
2018-02-07 19:45:39 +00:00
Sergiy Byelozyorov
b7cf8ef868 Whitespace CL
TBR=sergiyb@chromium.org

No-Try: true
Bug: chromium:616879
Change-Id: Ic697e7863fb5ef870979ea82b4e6de3efb5cfbd2
Reviewed-on: https://chromium-review.googlesource.com/906773
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51156}
2018-02-07 19:35:28 +00:00
Adam Klein
f1a551800f [parser] More carefully handle destructuring in arrow params
This patch attempts to reduce the special handling of destructuring
assignments in arrow function parameters by "adopting" them from
wherever they were initially parsed into the arrow function's
FunctionState/Scope. This avoids incorrectly re-setting the
Scope of such assignments multiple times for arrow functions
that are nested inside other arrow params themselves.

It also generally seems better, in that we now only rewrite
destructuring assignments for a single function at a time.

Bug: chromium:807096
Change-Id: I6bef5613f99e3e8c130fc0aa2ee5d6fcf2efd34b
Reviewed-on: https://chromium-review.googlesource.com/900168
Reviewed-by: Marja Hölttä <marja@chromium.org>
Reviewed-by: Caitlin Potter <caitp@igalia.com>
Commit-Queue: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51155}
2018-02-07 18:14:28 +00:00
Sathya Gunasekaran
e1ce6ab582 [class] Fix lazy parsing of private fields
Declare the private field variable in the preparser as well, to be
consistent with the parser.

Bug: v8:5386
Change-Id: I961ddf14e47b99701e2463cab0f4d4de140e1e3a
Reviewed-on: https://chromium-review.googlesource.com/905843
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51154}
2018-02-07 18:12:50 +00:00
Leszek Swirski
2a90c39a66 [turbofan] Only save live registers on suspend
When suspending, rather than saving all registers up to a certain index,
only save the ones that are live according to the liveness analysis.
Others are saved as optimized out constants, and are skipped during the
GenaratorStore lowering. Symmetrically, only restore live registers when
resuming.

Change-Id: Icc2df905b0fe2fe5c372097bd67d5316edcd1b54
Reviewed-on: https://chromium-review.googlesource.com/905662
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51153}
2018-02-07 18:07:30 +00:00
Yang Guo
876f37c3de [debug] implement break on entry for builtin functions.
We reuse most of the infrastructure to set break points, with minor
differences when we encounter functions where we can only break on entry:
- PrepareFunctionForBreakPoints simply deopts all functions.
- Break point objects have the canonical source position 0.
- Break point is set/checked/cleared via bit on the DebugInfo.
- Debug::Break do not continue stepping since stepping is implemented via
  regular break points and therefore do not interfere with break on entry.

I promise to add more tests.

Bug: v8:178
Change-Id: Ifc8231995c771286db0b848b811e1c3ad3b12494
Reviewed-on: https://chromium-review.googlesource.com/906245
Commit-Queue: Yang Guo <yangguo@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51152}
2018-02-07 17:45:48 +00:00
Ross McIlroy
8238562b60 [MIPS] [TurboFan] Ensure instruction start is in fixed register.
Port https://chromium-review.googlesource.com/c/v8/v8/+/888700 to MIPS

Change-Id: I16cd2de41c790dea307efa7c78125dec1c4304a4
Reviewed-on: https://chromium-review.googlesource.com/906768
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51151}
2018-02-07 17:12:58 +00:00
Peter Marshall
3b8a5879a4 [cleanup] Remove builtin wrappers and use ThrowError helpers in CSA.
Cleanup CL that removes unnecessary builtins that were just wrapping
the throwing of errors. Use the ThrowTypeError and ThrowRangeError
helpers more consistently from CSA.

Change-Id: I2d0c3647340c88c457b27e16c0a81567869b7ec7
Reviewed-on: https://chromium-review.googlesource.com/906769
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Franziska Hinkelmann <franzih@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51150}
2018-02-07 16:26:27 +00:00
Clemens Hammacher
df95bdb789 [wasm] [interpreter] Budget grow_memory like 1000 instructions
If the interpreter has an upper limit of instructions to execute, treat
grow_memory like 1000 other instructions in order to account for the
huge execution time of grow_memory.

R=ahaas@chromium.org

Bug: chromium:807383
Change-Id: Id513a41257734a3041bef45bbc00c461fdec6787
Reviewed-on: https://chromium-review.googlesource.com/905605
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51149}
2018-02-07 15:58:17 +00:00
Junliang Yan
59bff287fc s390: [builtins] Add tests for embedding with .byte directive
Port 7c14a408f9

Original Commit Message:

    It turns out that .incbin can be problematic for build systems, in
    that the included binary file is not detected as a build-time
    dependency.

    The alternative is .byte inclusion, which we test here.

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

Change-Id: Ie42da993ae61964eb3f02f328333ec140902d929
Reviewed-on: https://chromium-review.googlesource.com/906688
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#51148}
2018-02-07 15:52:38 +00:00
jgruber
90da4e72ae [builtins] Remove .incbin test
The .byte directive will be used instead of .incbin since the latter
comes with complications involving build-time dependency detection.

Drive-by-edits: Move macro definitions closer to their use-sites.

TBR=rmcilroy@chromium.org

Cq-Include-Trybots: luci.v8.try:v8_win64_msvc_compile_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng
Bug: v8:6666
Change-Id: Ibda0b3577688248dbf627cb69965d28309193859
Reviewed-on: https://chromium-review.googlesource.com/906488
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51147}
2018-02-07 15:47:37 +00:00
Mike Stanton
03efbd4cd4 [TurboFan] Array.prototype.reduce[Right] was missing a deopt point
We need a deopt point for the case when we fail to find an initial
element from which to begin the reduction step.

Bug: v8:7384
Change-Id: I5e476ddc433be690577677b018639c4c0c70809b
Reviewed-on: https://chromium-review.googlesource.com/906508
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51146}
2018-02-07 14:20:37 +00:00
Choongwoo Han
f339f744b2 [typedarray] Remove unused C++ implementations
There are functions that were called by TypedArraySpeciesCreate that
is deleted now. This CL removes Create, HasJSTypedArrayPrototype,
DefaultConstructor in JSTypedArray, which is not used anymore.

Change-Id: Ib4785cc52a8f18f2a3dfc3f27e39a23260cb2a4f
Reviewed-on: https://chromium-review.googlesource.com/905712
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51145}
2018-02-07 13:50:57 +00:00
Peter Marshall
796cf1a3ef [cleanup] Remove some unused runtime functions and error wrappers.
We don't need these wrappers - we can just use ThrowTypeError from CSA
instead. There were also a bunch of unused runtime functions which we
can just delete.

This CL has no behavior changes.

Change-Id: I5efefd726aff4cca8e8feba6cd05fe8ff5663931
Reviewed-on: https://chromium-review.googlesource.com/906470
Reviewed-by: Franziska Hinkelmann <franzih@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51144}
2018-02-07 13:32:47 +00:00
Sergiy Byelozyorov
84580949a6 Place all release script temp files into a common workdir
This makes it easier to restart an aborted merge.

R=machenbach@chromium.org
TEST=ran tools/release/script_test.py locally

Bug: v8:7410
Change-Id: I26b1b09e0000c9c689ad80be32ced9e35634bcec
Reviewed-on: https://chromium-review.googlesource.com/905665
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51143}
2018-02-07 12:58:57 +00:00
Predrag Rudic
7352b3f897 MIPS[64] Port:"[cctest] Support testing Simd128 moves and swaps"
Port 0761b55d21

Original Commit Message:

"Extend the code-generator tests to cover AssembleMove and AssembleSwap with
Simd128 registers and stack slots, for targets that support them.

For this to work however, we need support for passing Simd128 stack parameters
in TurboFan which this patch implements for Arm and x86. PPC and S390 both do
not support the Simd128 representation and it appears MIPS and MIPS64's
implementation of AssembleMove and AssembleSwap do not support it either.

As per the design of the tests, the set of values to perform moves on are
represented in a FixedArray of Smis (for kTagged) and HeapNumbers (for kFloat32
and kFloat64). They are converted to raw values for the moves to be performed
on, to be then converted back into a FixedArray. For the kSimd128
representation, we represent values as a FixedArray of 4 Smis, each representing
a lane. They are converted to a raw Simd128 vector using the `I32x4ReplaceLane`
and `I32x4ExtractLane` operations.

Finally, these tests need Simd128 variables mixed with the CodeStubAssembler
which is not a use-case officially supported. And as a result, the `RecordWrite`
stub does not guarantee to preserve Simd128 registers. To get around this, we
have to be careful to skip write barriers when dealing with Simd128 parameters
inside the "teardown" function, and we've had to move all allocations to the
"setup" function.

Thanks to this, we are able to catch bugs such as this one
https://bugs.chromium.org/p/v8/issues/detail?id=6843."

Change-Id: If867dedf4a2c72cb75c58effda93e3eec432fd67
Reviewed-on: https://chromium-review.googlesource.com/906469
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Ivica Bogosavljevic <ivica.bogosavljevic@mips.com>
Cr-Commit-Position: refs/heads/master@{#51142}
2018-02-07 12:53:57 +00:00
Choongwoo Han
756c8c4e1b [typedarray] Migrate %TypedArray%.of to CSA
- Remove %TypedArray%.of in js/typedarray.js
- Implement %TypedArray%.of in builtins/builtins-typedarray-gen.cc
- This CL makes TA.of 1.5x faster

Bug: v8:5929
Change-Id: Ie165114a0ab9b4ec9ed70840c4c6a42d1eeed101
Reviewed-on: https://chromium-review.googlesource.com/897227
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51141}
2018-02-07 12:45:37 +00:00