Commit Graph

40167 Commits

Author SHA1 Message Date
Michael Achenbach
68a723996b Revert "[heap] Move pointers updating to ItemParallelJob"
This reverts commit 81d3427b10.

Reason for revert: Several gc related failures, e.g.:
https://build.chromium.org/p/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13488

Original change's description:
> [heap] Move pointers updating to ItemParallelJob
> 
> Furthermore avoid lock-step between pointer updating phases as they
> should execute in parallel without synchronization restrictions.
> 
> Bug: chromium:726040
> Change-Id: I26ce0d1f2a4637ff5610cae556113e3d736788e2
> Reviewed-on: https://chromium-review.googlesource.com/518103
> Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> Reviewed-by: Hannes Payer <hpayer@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#45574}

NOPRESUBMIT=true
NOTRY=true
NOTREECHECKS=true

TBR=ulan@chromium.org,hpayer@chromium.org,mlippautz@chromium.org
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:726040

Change-Id: I60860aef390605d07bc520141cab9d5be9b712b3
Reviewed-on: https://chromium-review.googlesource.com/518106
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45575}
2017-05-29 18:02:16 +00:00
Michael Lippautz
81d3427b10 [heap] Move pointers updating to ItemParallelJob
Furthermore avoid lock-step between pointer updating phases as they
should execute in parallel without synchronization restrictions.

Bug: chromium:726040
Change-Id: I26ce0d1f2a4637ff5610cae556113e3d736788e2
Reviewed-on: https://chromium-review.googlesource.com/518103
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45574}
2017-05-29 16:16:32 +00:00
Michael Starzinger
f7f03da0d3 [turbofan] Fix value output count range on Operator.
This widens the range of value output counts to 32 bit on the {Operator}
class. Note that the limit imposed by the parser is 65535 parameters for
each function, but the {Start} node has additional value outputs.

R=jarin@chromium.org
TEST=mjsunit/regress/regress-crbug-724153
BUG=chromium:724153

Change-Id: I21b5d947cc2305b255ddbbff6ec1dfa5c02784c7
Reviewed-on: https://chromium-review.googlesource.com/517489
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45573}
2017-05-29 15:49:06 +00:00
Toon Verwaest
fa2ed010e6 [runtime] Move 'copying' flag to ContextObject, don't copy named properties for array boilerplates
Bug: 
Change-Id: Ie754efaec80eb175ac18c328c750524009ca8e60
Reviewed-on: https://chromium-review.googlesource.com/517104
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45572}
2017-05-29 15:17:39 +00:00
ulan
b853d7fbb3 [heap] Fix a missing write barrier in Heap::Allocate.
BUG=

Review-Url: https://codereview.chromium.org/2906313002
Cr-Commit-Position: refs/heads/master@{#45571}
2017-05-29 15:03:50 +00:00
ulan
bc32a0a78f [heap] Disable concurrent marking for cctests that rely on manual GC.
BUG=chromium:694255

Review-Url: https://codereview.chromium.org/2910933002
Cr-Commit-Position: refs/heads/master@{#45570}
2017-05-29 14:43:05 +00:00
v8-autoroll
8ad8319e23 Update V8 DEPS.
Rolling v8/build: 53a7b31..ff6a082

Rolling v8/buildtools: 98f00fa..1045741

Rolling v8/third_party/catapult: 51b3178..ea7d9cf

Rolling v8/tools/clang: 05f3060..34e6d43

Rolling v8/tools/swarming_client: a941a08..5c4eed8

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

Change-Id: Ic7e269d5c8e3051caf61c117465bfcdd96cb5266
Reviewed-on: https://chromium-review.googlesource.com/517644
Reviewed-by: v8 autoroll <v8-autoroll@chromium.org>
Commit-Queue: v8 autoroll <v8-autoroll@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45569}
2017-05-29 14:39:50 +00:00
Michael Starzinger
64672af479 [turbofan] Remove remnants of code flusher support.
This removes special support in the compilation pipeline to keep alive
unoptimized code for inlined functions (i.e. preventing the code flusher
from clearing it). Now that the code flusher is gone, this is obsolete.

R=jarin@chromium.org

Change-Id: I00361d12f2d17556056d06c10ad19f09a4772cd8
Reviewed-on: https://chromium-review.googlesource.com/517948
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45568}
2017-05-29 14:34:10 +00:00
Peter Marshall
2f3f974f74 [builtins] Fix TypedArray slice for species constructor.
Bug: chromium:725865
Change-Id: I94006d45aefb969fb0cf98ec475c30c14b3837fa
Reviewed-on: https://chromium-review.googlesource.com/517488
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45567}
2017-05-29 14:25:44 +00:00
Marja Hölttä
804ac5f618 [parser] Skipping inner funcs: fix parameter count in preparser.
For non-simple param lists, the parser first declares a TEMPORARY for each
param, and then the named variables as locals. The TEMPORARY variables determine
the parameter count.

This CL makes the PreParser produce the same parameter count as the Parser.

BUG=v8:5516

Change-Id: I8a794d6a8342145ab7934d922e2d69450d67b199
Reviewed-on: https://chromium-review.googlesource.com/517944
Commit-Queue: Marja Hölttä <marja@chromium.org>
Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45566}
2017-05-29 14:18:22 +00:00
Marja Hölttä
b90c98fc29 [objects.h splitting] Move SharedFunctionInfo.
BUG=v8:5402

Change-Id: If5f763e6a11d446e36719277a18b00a0cd8df8fa
Reviewed-on: https://chromium-review.googlesource.com/517162
Commit-Queue: Marja Hölttä <marja@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45565}
2017-05-29 14:03:48 +00:00
Michael Achenbach
8f7af5fb13 [build] Manuelly roll and fix build
Manually rolls:
5488ca8df..53a7b319

Fixes gyp build after:

https: //codereview.chromium.org/2900193003
Change-Id: I0249aa7d1c40bcb1533c56577bfbda4aedd8cbf9
Reviewed-on: https://chromium-review.googlesource.com/518144
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45564}
2017-05-29 13:40:13 +00:00
Camillo Bruni
e822488d76 [runtime] Directly support double values in CloneShallowObjectLiteral
Bug: v8:6211
Change-Id: If6d2ef7889ae6a0c3aa430d3f69c53f19cc1f1c6
Reviewed-on: https://chromium-review.googlesource.com/509571
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45563}
2017-05-29 13:27:17 +00:00
Jochen Eisinger
74681db644 Automatically add a layout test running bots for api changes
R=machenbach@chromium.org

Change-Id: I48b6bda0bfb3c8aef117616015ee4225d4bdecfc
Reviewed-on: https://chromium-review.googlesource.com/517486
Commit-Queue: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45562}
2017-05-29 13:17:07 +00:00
Jochen Eisinger
2ba1fcda5f Remove ENTER_V8_DO_NOT_USE usage from other macros
Eventually I want to delete that macro, so just inline it at the places
where we'll need to keep it.

BUG=v8:5830
R=marja@chromium.org

Change-Id: I904a1dd3555c23c69e457e078faaaa86a9514932
Reviewed-on: https://chromium-review.googlesource.com/518043
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Jochen Eisinger <jochen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45561}
2017-05-29 12:56:17 +00:00
Jochen Eisinger
5031f608a1 Get rid of PREPARE_FOR_EXECUTION_WITH_ISOLATE
Replace the macro with more generic macros expanding to the same
code.

BUG=v8:5830
R=marja@chromium.org

Change-Id: Ibf31fa4d89960a025af859198e190910c5608a20
Reviewed-on: https://chromium-review.googlesource.com/518006
Commit-Queue: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45560}
2017-05-29 12:50:47 +00:00
Clemens Hammacher
14fae58987 [asm] Fix reusing code with annotated export info
For lazy compilation, we encode information about table exports in the
deoptimization data. This information is rebuilt on each instantiation,
so we need to reset it when reusing code objects from another instance.

R=ahaas@chromium.org
BUG=chromium:727219

Change-Id: I90557ef06e692d0a8323223cac26679efcfa408b
Reviewed-on: https://chromium-review.googlesource.com/517945
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45559}
2017-05-29 12:33:57 +00:00
Clemens Hammacher
ff7bf3323f [wasm] Avoid reporting of unrelated compiler errors
It happens frequently that unrelated compiler errors lead to the
instantiation of {read_leb_tail} with an invalid {byte_index}, which
again triggers compiler errors.
This change fixes this, such that illegal instantiation just triggers a
static_assert and nothing more. This helps to spot the actual error.

Drive-by: Mark {Min} and {Max} constexpr, such that they can produce
constexpr results. Note that the result will only be constexpr if both
arguments are constexpr.

R=ahaas@chromium.org

Change-Id: I35d6865a7f569d72ace0debb045ac615cfd87d92
Reviewed-on: https://chromium-review.googlesource.com/518005
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45558}
2017-05-29 12:32:36 +00:00
Jochen Eisinger
68aa1ab388 Update module APIs to return Maybe<bool>
All APIs that can throw exceptions should return Maybe<> values

BUG=none
R=neis@chromium.org,gsathya@chromium.org

Change-Id: I6a6e5888cd71257bb02bdcfcc587c909d0c1d8f4
Reviewed-on: https://chromium-review.googlesource.com/517785
Commit-Queue: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45557}
2017-05-29 12:29:43 +00:00
Clemens Hammacher
e011e7efa9 [wasm] Remove obsolete DCHECKS
WasmGraphBuilder::GrowMemory does not access the module or the instance
any more. This was initially needed to reference the context as a
HeapConstant in the code.
This CL just removes the DCHECKs, which failed with the
--wasm-lazy-compilation flag.

R=ahaas@chromium.org
BUG=chromium:726665

Change-Id: Ieac53fe376256c47e8ef2fafca818a99ff063683
Reviewed-on: https://chromium-review.googlesource.com/516706
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45556}
2017-05-29 11:46:07 +00:00
Clemens Hammacher
0f3ce0c273 [wasm] No parallel compilation if no background threads
Parallel compilation should only be chosen if there are background threads
available. Otherwise, the overhead of orchestrating (non-)parallel work
can be omitted by just compiling synchronously.

R=ahaas@chromium.org

Change-Id: I333fb87e07fdb3260ab4c9c2c1885a1df4c5e4ef
Reviewed-on: https://chromium-review.googlesource.com/513062
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45555}
2017-05-29 11:16:03 +00:00
Jochen Eisinger
70de12b73c Remove deprecated ForceSet
Also move the soon-to-be-deprecated version to deprecated

BUG=none
R=ulan@chromium.org

Change-Id: I2252404f63e25ac35c7798daf66b36144bef6a7e
Reviewed-on: https://chromium-review.googlesource.com/518162
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Jochen Eisinger <jochen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45554}
2017-05-29 11:13:23 +00:00
ulan
75e679113b [heap] Add --stress-incremental-marking flag.
BUG=

Review-Url: https://codereview.chromium.org/2900603004
Cr-Commit-Position: refs/heads/master@{#45553}
2017-05-29 11:06:13 +00:00
Michael Achenbach
0a1cad371e [test] Deprecate timeout test expectations
Tests should instead be skipped or fixed.

Existing timeout expectations are either optimistically deleted or replaced by the SLOW keyword.

Change-Id: Ic43f52bf18d0702674c95f9263a109041a1c9cd8
Reviewed-on: https://chromium-review.googlesource.com/518122
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45552}
2017-05-29 10:38:55 +00:00
Sathya Gunasekaran
f4664d0257 [runtime] Implement SmallOrderedHashTable
Implements the Allocate, Add, and HasKey operations. Also, adds GC
support for this new instance type.

Bug: v8:6443
Change-Id: I1cc7ba2faead2a11f7b0381a57858629e123aee6
Reviewed-on: https://chromium-review.googlesource.com/500447
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45551}
2017-05-29 10:04:22 +00:00
Igor Sheludko
eef603feb1 [crankshaft] Properly handle stack overflows happened during AST typing.
Bug: chromium:724820
Change-Id: If4d05326ad00d0d3efe8f58b361595f2655d90d2
Reviewed-on: https://chromium-review.googlesource.com/518142
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45550}
2017-05-29 09:52:43 +00:00
Peter Marshall
481ea63d41 [turbofan] Add CheckSeqString so that we have type info for CharCodeAt.
Bug: v8:6391
Change-Id: If63078c756d9cfb00e515fae005755c4ed8b12f7
Reviewed-on: https://chromium-review.googlesource.com/512803
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45549}
2017-05-29 09:03:22 +00:00
Ilija.Pavlovic
aa0c8dcc18 Fix test OneByteArrayJoin.
The test OneByteArrayJoin failed on MIPS64 in debug mode after
https://chromium-review.googlesource.com/c/489946/ with error messages
"allocation failure GC in old space requested" and
"Fatal javascript OOM in CALL_AND_RETRY_LAST". Successful test execution
is possible on two ways: with flag --max_old_space_size=7 or with
modification in the test (constraints.set_max_old_space_size(7)).

TEST=cctest/test-strings/OneByteArrayJoin
BUG=

Review-Url: https://codereview.chromium.org/2907803002
Cr-Commit-Position: refs/heads/master@{#45548}
2017-05-29 08:30:50 +00:00
Michael Achenbach
ee1db48cc3 Revert "[inspector] moved var initialization break location before init expression"
This reverts commit 7a9cc70492.

Reason for revert: Changes layout tests:
https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/15882

This is about:
inspector/sources/debugger/source-frame-inline-breakpoint-decorations.html

Original change's description:
> [inspector] moved var initialization break location before init expression
> 
> This CL improves break locations for expressions like 'var a = <expr>'. Without CL we use <expr> position as break location for initialization statement, with this CL we use position of first character after '=' as position.
> Benefits (see test for details):
> - only one break in expressions which includes mix of property lookup and calls, e.g. var p = Promise.resolve().then(x => x * 2),
> - removed redundant break location for expressions like: let { x, y } = { x: 1, y: 2}.
> 
> Bug: v8:5909
> Change-Id: I039d911903a2826c9859710a63ab0462c992e11b
> Reviewed-on: https://chromium-review.googlesource.com/513926
> Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
> Reviewed-by: Marja Hölttä <marja@chromium.org>
> Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#45530}

TBR=dgozman@chromium.org,marja@chromium.org,kozyatinskiy@chromium.org
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: v8:5909

Change-Id: Ibf84401e8050d3c84db219d983de2c6bba0f697f
Reviewed-on: https://chromium-review.googlesource.com/518102
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45547}
2017-05-29 07:03:23 +00:00
jan.krems
a2cbab1bf4 [api] Expose Isolate::SetHostImportModuleDynamicallyCallback
This allows embedders to delay initialization of the module system until after
the isolate was created.

BUG=v8:6428
R=gsathya@chromium.org

Review-Url: https://codereview.chromium.org/2897103002
Cr-Commit-Position: refs/heads/master@{#45546}
2017-05-27 08:02:34 +00:00
hans
c05ca9d7b8 Disable DCHECK for external reference address uniqueness on Windows
The memcpy and memmove externals can end up at the same address; see bug for
details.

BUG=chromium:726896

Review-Url: https://codereview.chromium.org/2906193002
Cr-Commit-Position: refs/heads/master@{#45545}
2017-05-27 02:34:27 +00:00
Igor Sheludko
397afc6960 [runtime] Set proper initial map for AsyncFunction constructor.
... to make AsyncFunction subclassing work.

Bug: chromium:725537
Change-Id: I7edf4891e14e01567046e7536b3aa93877111448
Reviewed-on: https://chromium-review.googlesource.com/517087
Commit-Queue: Adam Klein <adamk@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45544}
2017-05-26 21:06:48 +00:00
Igor Sheludko
fdd8d15155 [runtime] Remove unnecessary casts of species constructor.
... which caused assertion failures in --enable-slow-asserts mode.
The surrounding code treated the constructor value properly so regression
test is not necessary.

Bug: chromium:726622
Change-Id: Icd43d9117a1125bec8feca8eca5708993de2c3ef
Reviewed-on: https://chromium-review.googlesource.com/516626
Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45543}
2017-05-26 15:21:32 +00:00
Ross McIlroy
5acdb557a4 [Interpreter] Add micro-benchmarks for string concatentation.
BUG=v8:6243

Change-Id: Ia6dfa407591d1b06d5b014627bb44413540aecb3
Reviewed-on: https://chromium-review.googlesource.com/516984
Reviewed-by: Mythri Alle <mythria@chromium.org>
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45542}
2017-05-26 13:59:58 +00:00
Toon Verwaest
efc9d54318 [runtime] Replace MaybeHandle result by Handle on boilerplate creation code.
Bug: 
Change-Id: I56f41392a2c3bbd203553e3fb386f8b7234d5e75
Reviewed-on: https://chromium-review.googlesource.com/516624
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45541}
2017-05-26 13:53:18 +00:00
georgia.kouveli
db38b3c7f4 [arm] Fix memory leak in disassembler.
Which I introduced in:

c15b3ffc77 [arm] Share constant pool entries in snapshot.

BUG=chromium:725714

Review-Url: https://codereview.chromium.org/2905643002
Cr-Commit-Position: refs/heads/master@{#45540}
2017-05-26 12:52:54 +00:00
Toon Verwaest
3c9b59899a [runtime] Skip the array length field when copying nested boilerplates
All other properties in the boilerplate are data fields, so we can avoid additional checks.

Bug: 
Change-Id: Ie494329332b0ba646515850b6d267fb05735f0ea
Reviewed-on: https://chromium-review.googlesource.com/517044
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45539}
2017-05-26 12:31:07 +00:00
Clemens Hammacher
d72768000e [d8] Bring PredictablePlatform in line with default platform
This removes a lot of special handling for the predictable platform.
Instead of executing spawned foreground and background tasks
immediately (i.e. inside the scope that spawns the tasks), just add
both to the foreground task queue.

This avoids existing special handling for predictable mode in wasm
async compilation, and should fix current failures on the predictable
bot.

BUG=v8:6427

Change-Id: Idbaa764a3dc8c230c29f3937d885e12174691ac4
Reviewed-on: https://chromium-review.googlesource.com/509694
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45538}
2017-05-26 11:31:57 +00:00
Sathya Gunasekaran
6b31174aec [Promise] Add smi check for species constructor
Bug: chromium:726636
Change-Id: Ied6af8c969ed05b7a334238b30930658af060e7d
Reviewed-on: https://chromium-review.googlesource.com/516734
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45537}
2017-05-26 11:18:37 +00:00
Toon Verwaest
990bad7f1b [runtime] Speed up nested object literal copying
This speeds up fast-mode object copying by ~2x and __proto__:null cases by ~20x.

Bug: 
Change-Id: Ic3893ae4c87063f0c8c524ef55c0e786b7a87192
Reviewed-on: https://chromium-review.googlesource.com/516983
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45536}
2017-05-26 09:47:52 +00:00
Andreas Haas
5d670fa449 [Cleanup] Make Cancelable independent of the isolate
This CL removes the isolate_ property from the Cancelable class. The
isolate is actually not used in the class itself, only in sub-classes
which can store the isolate themselves.

R=jochen@chromium.org, mlippautz@chromium.org

Change-Id: If102fdea41b81fb3cb25782728f7fcbce9642815
Reviewed-on: https://chromium-review.googlesource.com/516704
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45535}
2017-05-26 09:22:49 +00:00
bbudge
d81be3b4ac [Turbofan] Remove TODO to eliminate InstructionOperand::INVALID.
- This won't save a bit, since the enum is not a flags enum and there is
  still room for another value.
- While it may be possible to eliminate this value, the code to init
  and check for invalid becomes much more complex. Unallocated operands
  are currently created with invalid vreg code, so we also have to check
  the policy.

BUG=v8:6325

Review-Url: https://codereview.chromium.org/2904603004
Cr-Commit-Position: refs/heads/master@{#45534}
2017-05-25 19:00:40 +00:00
bbudge
5dde8b312b [Turbofan] Remove UnallocatedOperand::set_virtual_register.
- Removes set_virtual_register method. InstructionOperands are immutable.
- Adds a new ctor to copy an UnallocatedOperand with a new vreg.
- Removes some DCHECKs in UnallocatedOperand that are always true. To
  make sure, make UnallocatedOperand final.
- Cleans up some comments on UnallocatedOperand Lifetime enum.

BUG=v8:6325

Review-Url: https://codereview.chromium.org/2897203002
Cr-Commit-Position: refs/heads/master@{#45533}
2017-05-25 18:59:26 +00:00
Junliang Yan
0c6c3974fe s390: use /proc/cpuinfo to check vx availability
R=joransiu@ca.ibm.com, bjaideep@ca.ibm.com

Bug: 
Change-Id: I73c44a0dd93e3925dbe895a477175d255edbed56
Reviewed-on: https://chromium-review.googlesource.com/514123
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#45532}
2017-05-25 17:14:38 +00:00
ivica.bogosavljevic
601f1fdf8d MIPS[64]: Fix deoptimizer generate table for large deoptimization tables
Fix 233b6926e3

With the introduction of upfront deopt table generation, case where
deoptimization tables have more than 8000 entries become much more common
and bugs started to appear.

This CL fixes the issue, but it is far from perfect. We had to
increase number of instruction per table entry from 2 to 3 in
order to accommodate larger tables.

TEST=mjsunit/array-sort,mjsunit/json,mjsunit/md5
BUG=

Review-Url: https://codereview.chromium.org/2901393003
Cr-Commit-Position: refs/heads/master@{#45531}
2017-05-25 14:52:27 +00:00
Alexey Kozyatinskiy
7a9cc70492 [inspector] moved var initialization break location before init expression
This CL improves break locations for expressions like 'var a = <expr>'. Without CL we use <expr> position as break location for initialization statement, with this CL we use position of first character after '=' as position.
Benefits (see test for details):
- only one break in expressions which includes mix of property lookup and calls, e.g. var p = Promise.resolve().then(x => x * 2),
- removed redundant break location for expressions like: let { x, y } = { x: 1, y: 2}.

Bug: v8:5909
Change-Id: I039d911903a2826c9859710a63ab0462c992e11b
Reviewed-on: https://chromium-review.googlesource.com/513926
Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45530}
2017-05-25 14:51:17 +00:00
dusan.simicic
1f06818739 MIPS[64]: Implement fill.df, copy_u.df, copy_s.df instructions in simulator
- Increase FPUregisters_[] element size to 128b in order to support MSA regs
- Add skeleton for MSA instr. decoding in mips32 and mips64 simulator
- Add support for fill.df, copy_u.df and copy_s.df MSA instructions
- Assembler test for fill.df, copy_u.df and copy_s.df

BUG=

Review-Url: https://codereview.chromium.org/2799923002
Cr-Commit-Position: refs/heads/master@{#45529}
2017-05-25 14:51:07 +00:00
Ross McIlroy
b67139bf43 Revert "Update V8 DEPS."
This reverts commit 92cfe00cbf.

Reason for revert: Breaking all the clusterfuzz builders with error message:
group @"./mksnapshot.rsp" ./libv8_libbase.so ./libv8_libplatform.so ./libicui18n.so ./libicuuc.so ./libc++.so -Wl,--end-group   -ldl -lrt 
../../buildtools/third_party/libc++/trunk/include/string:1831: error: undefined reference to 'std::__1::__basic_string_common<true>::__throw_length_error() const'
../../buildtools/third_party/libc++/trunk/include/vector:930: error: ...

e.g.: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20ASAN%20-%20debug%20builder/builds/16157/steps/compile/logs/stdio

Original change's description:
> Update V8 DEPS.
> 
> Rolling v8/build: 5488ca8..3532f27
> 
> Rolling v8/buildtools: 98f00fa..57c9408
> 
> Rolling v8/third_party/catapult: 51b3178..518df53
> 
> Rolling v8/tools/clang: 05f3060..f294e27
> 
> TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org
> 
> Change-Id: I8e154bcc89d8cdc292409a15dc4081666941c959
> Reviewed-on: https://chromium-review.googlesource.com/514762
> Reviewed-by: v8 autoroll <v8-autoroll@chromium.org>
> Commit-Queue: v8 autoroll <v8-autoroll@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#45527}

TBR=v8-autoroll@chromium.org,machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I2c06ebf13219c92b4fa8891743c9dd9f23e91fcf
Reviewed-on: https://chromium-review.googlesource.com/515462
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45528}
2017-05-25 14:50:11 +00:00
v8-autoroll
92cfe00cbf Update V8 DEPS.
Rolling v8/build: 5488ca8..3532f27

Rolling v8/buildtools: 98f00fa..57c9408

Rolling v8/third_party/catapult: 51b3178..518df53

Rolling v8/tools/clang: 05f3060..f294e27

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

Change-Id: I8e154bcc89d8cdc292409a15dc4081666941c959
Reviewed-on: https://chromium-review.googlesource.com/514762
Reviewed-by: v8 autoroll <v8-autoroll@chromium.org>
Commit-Queue: v8 autoroll <v8-autoroll@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45527}
2017-05-25 03:29:37 +00:00
kschimpf
fbbc0ff243 Create a thread safe version of StatsCounters and use.
Creates a new class StatsCounterThreadSafe to be used by counters that
can be updated when compiling/decoding etc. are done using workers.

Does this by using a mutex on all opreations.

Also updates the StatsCounterThreadSafe constructor to force counter
initialization, as well as method Reset(). In addition, whenever the
method StatsTable::SetCounterFunction() is called (from the main
thread), it forces counter initialization for all thread safe stats
counters.

BUG=v8:6361

Review-Url: https://codereview.chromium.org/2887193002
Cr-Commit-Position: refs/heads/master@{#45526}
2017-05-24 21:21:04 +00:00