- 15 Sep, 2017 8 commits
-
-
Mathias Bynens authored
This patch ensures a `TypeError` is thrown when the argument passed to `Array.prototype.sort` or `%TypedArray%.prototype.sort` is neither a function nor `undefined`. Every other major JavaScript engine already threw in this case. Making V8’s behavior match increases interoperability. https://github.com/tc39/ecma262/pull/785 BUG=v8:6542 Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng Change-Id: I412a59810abdd118217c8d8361389ec6c2f640bd Reviewed-on: https://chromium-review.googlesource.com/668356 Commit-Queue: Mathias Bynens <mathias@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#48028}
-
Jakob Gruber authored
Don't inline these functions to avoid regressions in APK size. Bug: chromium:763185 Change-Id: I0a1ca16661a460728e56b67a7109be943397cbf5 Reviewed-on: https://chromium-review.googlesource.com/667109Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#48027}
-
Peter Marshall authored
This was supposedly a runtime flag, but we baked it into the snapshot anyway. Change-Id: I09d43183c4c2d59336c1077089119d6cb65dfd87 Reviewed-on: https://chromium-review.googlesource.com/664721Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#48026}
-
Michael Starzinger authored
R=marja@chromium.org Change-Id: I91da3f653cda2ca428be578b4cf9a37e784c70d8 Reviewed-on: https://chromium-review.googlesource.com/667108Reviewed-by: Marja Hölttä <marja@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#48025}
-
Jakob Gruber authored
It's quite possible for DebugInfos to exist without the presence of a bytecode array, since DebugInfos are created for all functions for which we have a CoverageInfo. Free such objects properly. Also move the corresponding deletion of CoverageInfos on unload up before the early exit. Bug: v8:6000 Change-Id: Idde45b222290aa8b6828b61ff2251918b8ed2aed Reviewed-on: https://chromium-review.googlesource.com/664811Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#48024}
-
peterwmwong authored
- Removes S.p.repeat from string.js - Adds StringPrototypeRepeat TFJ Bug: v8:5049 Change-Id: I0b2d512bffd97dfc2c3ba6783e2e41c4db6c8faa Reviewed-on: https://chromium-review.googlesource.com/659097 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#48023}
-
Andreas Haas authored
In this CL I implement streaming compilation for WebAssembly, as described in the design doc I have sent out already. In this implementation the decoding of sections other than the code section is done immediately on the foreground thread. Eventually all decoding should happen in the background. I think it is acceptable to do the decoding on the foreground thread for now because I have finished it already, and decoding in the background would add even more complexity to this CL. Bug:v8:6785 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I285e1e5e1a5a243113c92571b25ee9bae551d0ed Reviewed-on: https://chromium-review.googlesource.com/631721Reviewed-by: Mircea Trofin <mtrofin@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#48022}
-
cjihrig authored
See: https://github.com/nodejs/llnode/pull/130 Change-Id: Ibce294f7620cd6ab0db4408a8c2b457c3a5aebcd Reviewed-on: https://chromium-review.googlesource.com/650746 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#48021}
-
- 14 Sep, 2017 17 commits
-
-
Jakob Kummerow authored
Other radixes require Divide/Remainder to be implemented first. Bug: v8:6791 Change-Id: I95f1fad39a0a4df556a194094805ed93bd46d0db Reviewed-on: https://chromium-review.googlesource.com/664037 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#48020}
-
Deepti Gandluri authored
- Validate that atomic ops can only be called when shared memory is declared - Throw Compile/Link erros on mismatch between declared, imported memory - Test harness helpers for setting shared memory, tests BUG=v8:6532 R=binji@chromium.org, bradnelson@chromium.org Change-Id: I43fe3d04bb7e3e0a2cecca0528578f98844d2608 Reviewed-on: https://chromium-review.googlesource.com/665379 Commit-Queue: Brad Nelson <bradnelson@chromium.org> Reviewed-by: Brad Nelson <bradnelson@chromium.org> Cr-Commit-Position: refs/heads/master@{#48019}
-
Sigurdur Asgeirsson authored
Bug: chromium:763010 Change-Id: Iafed5a0e8087f415cd2c11a0b1326c04bd01ef80 Reviewed-on: https://chromium-review.googlesource.com/665351Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Sigurður Ásgeirsson <siggi@chromium.org> Cr-Commit-Position: refs/heads/master@{#48018}
-
Myles Borins authored
Change-Id: I9778ce93243d434683e774e5bf9b7014a25e9b96 Bug: v8:6824 Change-Id: I9778ce93243d434683e774e5bf9b7014a25e9b96 Reviewed-on: https://chromium-review.googlesource.com/666961 Commit-Queue: Myles Borins <mborins@google.com> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#48017}
-
Michael Starzinger authored
R=ishell@chromium.org Change-Id: I3e69c94d43d4db7255ec46f94c43f1411795ca9d Reviewed-on: https://chromium-review.googlesource.com/666957Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#48016}
-
Georg Neis authored
The difference seems to matter at least in one benchmark. R=jarin@chromium.org Bug: chromium:764644 Change-Id: I6d74fbbd8026942637d2301da805b003a9e58af7 Reviewed-on: https://chromium-review.googlesource.com/666922Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#48015}
-
Jaideep Bajwa authored
Port bc69f345 R=mstarzinger@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: I88f0167a43fb7eb7967169a84466de3aedf00125 Reviewed-on: https://chromium-review.googlesource.com/666299 Commit-Queue: Jaideep Bajwa <bjaideep@ca.ibm.com> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#48014}
-
Franziska Hinkelmann authored
If TypeProfile goes out of scope, ScriptData and Entry still rely on TypeProfiles's type_profile_. Make type_profile_ a shared_ptr owned by all three classes to prevent use after free. Bug: v8:5933 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Ida7d66dadc17a816cf4439a25e6f714edccffa2c Reviewed-on: https://chromium-review.googlesource.com/659937Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Franziska Hinkelmann <franzih@chromium.org> Cr-Commit-Position: refs/heads/master@{#48013}
-
Jaroslav Sevcik authored
This reverts commit 14b424c3. Reason for revert: Regresses benchmarks, e.g., Octane/gameboy Original change's description: > [turbofan] Lower monomorphic loads during graph building. > > We introduce an explicit LoweringResult data structure. Until this change, > the lowering result could be recovered from the node. However, lowering > monomorphic loads requires wiring different value and effect, so we need > a structure that can express such lowering result. > > Bug: v8:6357 > Change-Id: I92655800890b744d9203a778a1936a8dcd465ed3 > Reviewed-on: https://chromium-review.googlesource.com/637304 > Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#47992} TBR=mstarzinger@chromium.org,jarin@chromium.org,bmeurer@chromium.org Change-Id: I2b7db0278c13414e20c94a34d215ed92bd0d412b No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6357 Reviewed-on: https://chromium-review.googlesource.com/667016Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#48012}
-
Franziska Hinkelmann authored
Bug: Change-Id: I597b2c1067e309c2545daef4223b3b883d15a6c1 Reviewed-on: https://chromium-review.googlesource.com/657761Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Franziska Hinkelmann <franzih@chromium.org> Cr-Commit-Position: refs/heads/master@{#48011}
-
Yang Guo authored
The serializer performs two passes over the code. The first pass copies out the code content verbatim, the second pass visits references recorded in the reloc info. So far the first pass is implicit and happens as part of the second pass, when we encounter a non-HeapObject reference when iterating the code object. That however does not work for internal references. So we hit an assertion if the first non-HeapObject reference we see is an internal reference. This change explicitly triggers the first pass. R=petermarshall@chromium.org Bug: v8:6817 Change-Id: I1ee9949e10b7d9409986da83be22ac6287785f9f Reviewed-on: https://chromium-review.googlesource.com/663867Reviewed-by: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#48010}
-
Michael Starzinger authored
R=machenbach@chromium.org Change-Id: I9adf50ef62abf310a0722160ff7997b87e1733f6 Reviewed-on: https://chromium-review.googlesource.com/664800 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#48009}
-
Michael Starzinger authored
R=jarin@chromium.org Change-Id: Idf47ac88099915bd6db3621230c4f93f2bd7d3bd Reviewed-on: https://chromium-review.googlesource.com/665117Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#48008}
-
Mythri authored
We have an absolute limit beyond which we don't inline small funcions as well. The idea behind inlining small functions is that it is cheaper to inline small functions rather than incurring the overhead due to the call. Hence it is better not to have a hard limit on inlining small functions. We have a limit on the number of levels of nesting to avoid really large graphs in some corner cases. Bug: v8:6682 Change-Id: If74f666996fe4a42bf266a4e87caabfd7c614b12 Reviewed-on: https://chromium-review.googlesource.com/648975 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#48007}
-
Albert Mingkun Yang authored
With this commit, write barrier is switched to use CodeStubAssembler. Bug: chromium:749486 Change-Id: I7e0914bee971e4f3a3257740ae7c83b31f791bd9 Reviewed-on: https://chromium-review.googlesource.com/598088Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Albert Mingkun Yang <albertnetymk@google.com> Cr-Commit-Position: refs/heads/master@{#48006}
-
Ulan Degenbaev authored
This patch ensures that an object returned by AllocateRaw is marked black if black allocation starts during the object allocation. This fixes the following issue: 1) Generated code requests allocation of size N for folded allocation. 2) Runtime gets a free list node at address A of size N+M and sets up a linear allocation area with top = A+N and limit = A+N+M. 3) Runtime invokes the allocation observer that starts incremental marking and start black allocation. The area [A+N, A+N+M) is marked black. 4) Runtime returns a white object at address A as the allocation result. 5) Generated code moves the top pointer to A and does bump pointer allocations of white objects from A to A+N+M. 6) Object allocated new A+N can have the impossible marbit pattern. Bug: chromium:694255 Change-Id: I09ceebc97a510fa5fe4ff20706bc46a99f8b7cf4 Reviewed-on: https://chromium-review.googlesource.com/638338 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#48005}
-
Albert Mingkun Yang authored
There are two places where RecordWrite code stub is called, OutOfLineRecordWrite and RecordWriteField. With this commit, if `v8_enable_csa_write_barrier` flag is turned on, no instances of the old RecordWrite stub appear in the snapshot. Bug: chromium:749486 Change-Id: I2bc3fa38c8831736303b46d153a79c034a450f16 Reviewed-on: https://chromium-review.googlesource.com/648983 Commit-Queue: Albert Mingkun Yang <albertnetymk@google.com> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#48004}
-
- 13 Sep, 2017 15 commits
-
-
Mostyn Bramley-Moore authored
Previously instructions-arm64.h was alternatively defining or declaring some constants based on whether or not ARM64_DEFINE_FP_STATICS was defined, and it was assumed that exactly one file would include this header with the macro defined. In jumbo builds, the header guards in instructions-arm64.h meant that the resulting state of the header file would be whichever of the two cases that appeared first in the compilation unit. This would cause multiple definitions in some cases and no definitions in some other cases (or if you were really lucky, it would work out ok). Let's move these constants to a separate source file temporarily, to be excluded from jumbo compilation units. This code should eventually be replaced with a cleaner solution. Bug: chromium:746958 Change-Id: I7edb1821ef408afd50c6b236d63d3c07f955b58f Reviewed-on: https://chromium-review.googlesource.com/663898 Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#48003}
-
Jakob Kummerow authored
Bug: v8:6791 Change-Id: I2da258f7db6c74d764c674eb8d550418a566c5ea Reviewed-on: https://chromium-review.googlesource.com/662138 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#48002}
-
Karl Schimpf authored
Extends the current implementation of WASM exceptions to be able to throw exceptions with values (not just tags). An JS typed array (uint_16) is used to hold thrown values, so that the thrown values can be inspected in JS. Bug: v8:6577 Change-Id: I1007e79ceaffd64386b62562919cfbb920fc10c5 Reviewed-on: https://chromium-review.googlesource.com/633866 Commit-Queue: Karl Schimpf <kschimpf@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Eric Holk <eholk@chromium.org> Cr-Commit-Position: refs/heads/master@{#48001}
-
Anisha Rohra authored
Fix 0b491c89 R=bjaideep@ca.ibm.com, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: I7d05371844ddb0b5a165a61bc901346f85fcb631 Reviewed-on: https://chromium-review.googlesource.com/665477Reviewed-by: Jaideep Bajwa <bjaideep@ca.ibm.com> Commit-Queue: Jaideep Bajwa <bjaideep@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#48000}
-
Camillo Bruni authored
Change-Id: I5cd16774e3e66ff33580e9ed958d4adc57663210 Reviewed-on: https://chromium-review.googlesource.com/664705Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#47999}
-
Toon Verwaest authored
Bug: Change-Id: I91b08ad6d95e60f84cb083b444bf0eb2fff10e27 Reviewed-on: https://chromium-review.googlesource.com/663864Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#47998}
-
Mythri authored
SetForceInlineFlag is now only used in tests. Earlier, it was also used in js builtins, because unless this flag was specified the js builtins were not inlined. All the performance critical js builtins are moved to turbofan builtins and SetForceInlineFlag is no longer used. We would like to remove this flag completely to simplify inlining heuristics. Also, this uses a bit on the SharedFuntionInfo. Bug: v8:6682 Change-Id: I19afd27381afc212f29179f2c5477095c8174f39 Reviewed-on: https://chromium-review.googlesource.com/660739 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#47997}
-
Ross McIlroy authored
Moves ast printing out of codegen.cc and into interpreter.cc since this is the only place which calls it. BUG=v8:6409 Change-Id: I7b730f6b4da76247f57e3cb4fa7895e638ea0517 Reviewed-on: https://chromium-review.googlesource.com/664888 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#47996}
-
Adam Klein authored
For the HeapNumber case, use Float64Neg directly instead of a Float64Mul by -1.0. For the Smi case, logic is added to handle the boundary conditions (0 and Smi::kMinValue), and the general case is handled by a SmiSub from 0. Change-Id: I110916d9d1eb5d22d618fbf358d8d5b63cc71b3a Reviewed-on: https://chromium-review.googlesource.com/663945Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#47995}
-
Adam Klein authored
In the years since https://codereview.chromium.org/1331993004, a lot has changed in v8: Math.max/min are now CSA builtins, with lowerings in TF. In a quick test on my machine of the microbenchmark on that CL (modified with start and end values), I don't detect any difference in speed between the macro versions on master and this version. Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng Change-Id: I82d9d14c043fd2a112050cdbcb98a872bfb87b61 Reviewed-on: https://chromium-review.googlesource.com/664339Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#47994}
-
Ross McIlroy authored
BUG=v8:6409 Change-Id: I9e06388c683e283a1922fb436dceb244f5093042 Reviewed-on: https://chromium-review.googlesource.com/664857Reviewed-by: Michael Stanton <mvstanton@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#47993}
-
Jaroslav Sevcik authored
We introduce an explicit LoweringResult data structure. Until this change, the lowering result could be recovered from the node. However, lowering monomorphic loads requires wiring different value and effect, so we need a structure that can express such lowering result. Bug: v8:6357 Change-Id: I92655800890b744d9203a778a1936a8dcd465ed3 Reviewed-on: https://chromium-review.googlesource.com/637304 Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#47992}
-
Michael Starzinger authored
R=clemensh@chromium.org Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng Change-Id: I3df5d50f81909188ee0cb31d0f479aadeeabe20f Reviewed-on: https://chromium-review.googlesource.com/662780Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#47991}
-
Maya Lekova authored
Bug: v8:6557 Change-Id: Ia858c87a602a37e70d9df61c7225eda10e566258 Reviewed-on: https://chromium-review.googlesource.com/663727Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Maya Lekova <mslekova@google.com> Cr-Commit-Position: refs/heads/master@{#47990}
-
Franziska Hinkelmann authored
Bug: Change-Id: I32faae50c786b67599a68840baad478ce81c1398 Reviewed-on: https://chromium-review.googlesource.com/663544Reviewed-by: Peter Marshall <petermarshall@chromium.org> Commit-Queue: Franziska Hinkelmann <franzih@chromium.org> Cr-Commit-Position: refs/heads/master@{#47989}
-