- 11 Jan, 2019 27 commits
-
-
Camillo Bruni authored
Drive-by-fix: - Add several iterator instance types to user objects - Add JSProxy instance type to user objects - Rename *PRE_PARSED_SCOPE* to *PREPARSE_DATA* Change-Id: Ia1304871c91bb4e7e46ae0aef6084ded985b9a9f Reviewed-on: https://chromium-review.googlesource.com/c/1405040Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#58745}
-
Tamer Tas authored
TestSuite has a static method LoadTestSuite that should properly configure the TestSuite instance (i.e. loaded status files and tests), however the method leaves some configuration logic to the caller. The leaky abstraction causes the caller to do a bunch of loading operations (see the removed methods in base_runner.py). This CL isolates the TestSuite loading logic to the static method only. This is a refactoring only change without any intended logical changes. R=machenbach@chromium.org CC=yangguo@chromium.org,sergiyb@chromium.org Bug: v8:8174 Change-Id: I105059c9c9e050f03bb584174e2bd7ceeae2b228 Reviewed-on: https://chromium-review.googlesource.com/c/1396417 Commit-Queue: Tamer Tas <tmrts@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Sergiy Belozorov <sergiyb@chromium.org> Cr-Commit-Position: refs/heads/master@{#58744}
-
Leszek Swirski authored
It is not legal for destructuring patterns and identifiers in declarations to be in parentheses. This includes nested patterns/identifiers inside another pattern. We were checking sub-patterns for parentheses when parsing possible sub-patterns, but this check missed sub-patterns with a default initialiser (e.g. [({x:y})=1] = {}), as the AssignmentExpression hid the pattern. So, we now additionally record declaration/pattern errors of an assignment LHS when parsing the assignment cover grammar. Bug: v8:8630 Change-Id: Ia5a97003671fc1da7f68d7fb15943928ce9496e3 Reviewed-on: https://chromium-review.googlesource.com/c/1404452Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#58743}
-
Ulan Degenbaev authored
This fixes two places that used the marking write barrier for elements instead of the new marking write barrier for descriptor array. This also ensures that revisited objects are marked black. Bug: v8:8651,chromium:917794 Change-Id: Ifc17ff89686f32ccf61d4b3f764b0ab536c42912 Reviewed-on: https://chromium-review.googlesource.com/c/1406670Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#58742}
-
Jakob Gruber authored
The JSRegExp's data fixed array is variable size depending on the regexp kind. Bug: v8:8572 Change-Id: I8f07b8e8d2a9a81e0905563fb701e1e3687cafb5 Reviewed-on: https://chromium-review.googlesource.com/c/1405034Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#58741}
-
Jakob Gruber authored
As far as I can tell these were unused; their only callers were arm and ppc simulators, but codegen explicitly returned nullptr if in a simulator build, falling back to std::sqrt. There's more potential cleanup to be done here for other functions defined in codegen-*.cc files. Tbr: clemensh@chromium.org Bug: v8:7777, v8:8675 Change-Id: I4b9d6062c6724a810ab094d09e3cd04a0b733d9b Reviewed-on: https://chromium-review.googlesource.com/c/1405851Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#58740}
-
Yang Guo authored
R=jarin@chromium.org Bug: v8:8671, v8:8674 Change-Id: I5cdcd49d05f08206aa32426f2fe0560568291f2e Reviewed-on: https://chromium-review.googlesource.com/c/1405852 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#58739}
-
Michael Achenbach authored
This reverts commit fd49c8bb. Reason for revert: Speculative revert for: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/24672 Original change's description: > [heap] Optimize MemoryChunk::FromAnyPointerAddress > > Currently this function requires the caller to hold a mutex for the > large page chunk hashtable and performs a hashtable lookup. > > This patch adds a header sentinel field in each MemoryChunk. The field > is then used to distinguish large object slots from ordinary slots. > > Bug: chromium:915233 > Change-Id: I9fbeeb4f07f49573d0a21f9a2cc934370e417d68 > Reviewed-on: https://chromium-review.googlesource.com/c/1391752 > Commit-Queue: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#58732} TBR=ulan@chromium.org,mlippautz@chromium.org Change-Id: I232729fdfd55baef7de99ea2fd14fbc0a2f71d27 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:915233 Reviewed-on: https://chromium-review.googlesource.com/c/1406671Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#58738}
-
Michael Achenbach authored
NOTRY=true Bug: v8:3770 Change-Id: Idae429b4f3c021a956b94b0ea4f3ff0570ec2ddf Reviewed-on: https://chromium-review.googlesource.com/c/1406669Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#58737}
-
Toon Verwaest authored
This unifies the code between parser and preparser, and removes more code from the pattern rewriter. This makes "var x" without assignment and initializer in a loop pessimistically marked as assigned, but that seems pretty unlikely since the variable will just always be undefined. It is also still strictly better than what we had until very recently since any var outside of the function scope used to be marked as assigned. Now we only mark such variables as assigned. Change-Id: Icb37ab249b2a79c2d57a5769bdb964b435cebf62 Reviewed-on: https://chromium-review.googlesource.com/c/1405228Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#58736}
-
Michael Achenbach authored
TBR=sergiyb@chromium.org Bug: v8:8174, v8:8457 Change-Id: Ie87eddcc6986e1c724040b11b036b502e399dd05 Reviewed-on: https://chromium-review.googlesource.com/c/1404437Reviewed-by: Sergiy Belozorov <sergiyb@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#58735}
-
Toon Verwaest authored
Bug: chromium:914736 Change-Id: Id02715b69361d15df23c70f85f3250526369547f Reviewed-on: https://chromium-review.googlesource.com/c/1405859Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#58734}
-
Jakob Kummerow authored
Dynamically process the arguments instead of hardcoding them, which is brittle when they change. Change-Id: I08f603dc6df6e3ed34518326b67da15f6a6d6102 Reviewed-on: https://chromium-review.googlesource.com/c/1405312 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#58733}
-
Ulan Degenbaev authored
Currently this function requires the caller to hold a mutex for the large page chunk hashtable and performs a hashtable lookup. This patch adds a header sentinel field in each MemoryChunk. The field is then used to distinguish large object slots from ordinary slots. Bug: chromium:915233 Change-Id: I9fbeeb4f07f49573d0a21f9a2cc934370e417d68 Reviewed-on: https://chromium-review.googlesource.com/c/1391752 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#58732}
-
Clemens Hammacher authored
In the degenerate case where we wanted to emit {x = x - x} (where {x} is any register), ia32 and x64 generated wrong code (producing {-x + -x} instead). Fix this by special casing this case. R=ahaas@chromium.org Bug: chromium:919308 Change-Id: I9cd9818d2a678450ac6530107e7a5cbb625ddb8d Reviewed-on: https://chromium-review.googlesource.com/c/1405029 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#58731}
-
Leszek Swirski authored
Change-Id: I021776d10dd8ef4bf406f286ee233aff9680a0ec Reviewed-on: https://chromium-review.googlesource.com/c/1384315 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#58730}
-
Jakob Kummerow authored
Found by mjsunit/numops-fuzz-part* tests in stress mode. Bug: v8:3770 Change-Id: I598885b37624660dabb90f55529615b872d10d93 Reviewed-on: https://chromium-review.googlesource.com/c/1405313Reviewed-by: Ben Titzer <titzer@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#58729}
-
Mike Stanton authored
Also fix an issue with naming in Array.prototype.filter that wasn't addressed before. Change-Id: I7465eda12e6981f46f6efa2efc81183cbdffea01 Reviewed-on: https://chromium-review.googlesource.com/c/1400847 Commit-Queue: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#58728}
-
Michael Starzinger authored
R=clemensh@chromium.org Change-Id: I48bfae1dbbfaafb1cadad8d3cbbc921c53801f8c Reviewed-on: https://chromium-review.googlesource.com/c/1405857Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#58727}
-
Stephan Herhut authored
This change makes it less likely to pick one of the registers that are not byte addressable on ia32. This is not a correctness issue but fixes some code size and runtime regressions. After the change to prefer registers that are not used in hinting, it was very likely that one of the registers that are not byte addressable was chosen, leading to extra code in cases where the carry flags was materialized as a real boolean value. With this change, we pick the first register that is not used in hinting, thereby mostly using byte addressable registers on ia32. Change-Id: I42968cf3fd7b7db949d275c40d0afeb74b5e48c3 Reviewed-on: https://chromium-review.googlesource.com/c/1404450Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Stephan Herhut <herhut@chromium.org> Cr-Commit-Position: refs/heads/master@{#58726}
-
Clemens Hammacher authored
This avoids having to update either the source code or the generated test cases each year. R=ahaas@chromium.org Change-Id: I33fb85dc4ae7d45f8d05d982e0285d6fd3008a26 Reviewed-on: https://chromium-review.googlesource.com/c/1405032Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#58725}
-
Clemens Hammacher authored
i64 values can be up to 20 characters long (19 + sign), plus we need one character for the terminating null character. Thus the previous 18 needs to be increased to 21. Also extend the test to check the longest possible i64 values. R=ahaas@chromium.org CC=kozyatinskiy@chromium.org Bug: v8:8644 Change-Id: Ia9458db162a55dd57b5e8bc7cf7db73c3bab4734 Reviewed-on: https://chromium-review.googlesource.com/c/1404443Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#58724}
-
Clemens Hammacher authored
In {Assembler::and_} we might need to use the scratch register. Thus use a free LiftoffRegister instead to emit i32 popcnt. R=ahaas@chromium.org CC=george.wort@arm.com Bug: chromium:918284 Change-Id: Ia814899bf6e33dd4989fd09329542b4bc09b48df Reviewed-on: https://chromium-review.googlesource.com/c/1405036Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#58723}
-
tzik authored
As a follow-up of https://crrev.com/c/1372857 that repordered the parameters of JSEntry, this CL updates JSEntry for MIPS64 for new ordering. Bug: v8:8124 Change-Id: Ia7efab0e22e48cfe36420654bd2b724986202027 Reviewed-on: https://chromium-review.googlesource.com/c/1406528Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Taiju Tsuiki <tzik@chromium.org> Cr-Commit-Position: refs/heads/master@{#58722}
-
tzik authored
As a follow-up of https://crrev.com/c/1372857 that repordered the parameters of JSEntry, this CL updates JSEntry for MIPS for new ordering. Bug: v8:8124 Change-Id: Ic7f22a4f59b1c15a959a3249b4f13cd8f3f1c331 Reviewed-on: https://chromium-review.googlesource.com/c/1405166Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Taiju Tsuiki <tzik@chromium.org> Cr-Commit-Position: refs/heads/master@{#58721}
-
v8-ci-autoroll-builder authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/7b20546..26535fd Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/79517a0..0cc5823 Rolling v8/third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools/+log/b1be378..80a1cf6 Rolling v8/tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang/+log/35ea2f3..8a781d8 TBR=machenbach@chromium.org,hablich@chromium.org,sergiyb@chromium.org Change-Id: I82006eda723ee9b277f0c3fd4f999e541554ced0 Reviewed-on: https://chromium-review.googlesource.com/c/1405466Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com> Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#58720}
-
Deepti Gandluri authored
This is a reland of 8f83fd0a Original change's description: > [wasm] Fix SIMD boolean reductions on Intel > > - Both AllTrue/AnyTrue values should return boolean 0/1 > instead of 0xffffffff to match Spec/Toolchain > - Fix AllTrue implementation to be correct > - Add unit tests to spot check return values as the > cumulative test can coerce some return values to True/False > > Change-Id: I84eb73c915414c9ec290e73f1306404ceff729f0 > Bug: v8:8636 > Reviewed-on: https://chromium-review.googlesource.com/c/1404197 > Reviewed-by: Bill Budge <bbudge@chromium.org> > Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> > Cr-Commit-Position: refs/heads/master@{#58715} Bug: v8:8636 Change-Id: Ifc438d7b64bf5d461cc848851165665104fe57d0 Reviewed-on: https://chromium-review.googlesource.com/c/1405909Reviewed-by: Bill Budge <bbudge@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#58719}
-
- 10 Jan, 2019 13 commits
-
-
Caitlin Potter authored
Enable --harmony-object-from-entries by default. Object.fromEntries is a new standard library method, whose proposal (https://tc39.github.io/proposal-object-from-entries/) is currently at stage 3. It simply creates a JSObject from an iterable collection of key/value pairs, such that `Object.fromEntries([ [ "a", "b" ] ]) -> { a: "b" }` BUG=v8:8021 R=gsathya@chromium.org, adamk@chromium.org Change-Id: I75787fce7ab06704be989576e7850d029ff4c1bf Reviewed-on: https://chromium-review.googlesource.com/c/1397914 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#58718}
-
Frank Tang authored
see spec change in https://github.com/tc39/ecma402/pull/278/ Bug: v8:8398 Change-Id: If5582f96d6dc3debdccb466d3d239efa52bbbf06 Reviewed-on: https://chromium-review.googlesource.com/c/1404436 Commit-Queue: Frank Tang <ftang@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#58717}
-
Michael Achenbach authored
This reverts commit 8f83fd0a. Reason for revert: Seems to break older intel chips: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20debug/23954 Original change's description: > [wasm] Fix SIMD boolean reductions on Intel > > - Both AllTrue/AnyTrue values should return boolean 0/1 > instead of 0xffffffff to match Spec/Toolchain > - Fix AllTrue implementation to be correct > - Add unit tests to spot check return values as the > cumulative test can coerce some return values to True/False > > Change-Id: I84eb73c915414c9ec290e73f1306404ceff729f0 > Bug: v8:8636 > Reviewed-on: https://chromium-review.googlesource.com/c/1404197 > Reviewed-by: Bill Budge <bbudge@chromium.org> > Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> > Cr-Commit-Position: refs/heads/master@{#58715} TBR=bbudge@chromium.org,gdeepti@chromium.org Change-Id: I0eba24e0fe5215c1f8f377776692db245239e134 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8636 Reviewed-on: https://chromium-review.googlesource.com/c/1405321Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#58716}
-
Deepti Gandluri authored
- Both AllTrue/AnyTrue values should return boolean 0/1 instead of 0xffffffff to match Spec/Toolchain - Fix AllTrue implementation to be correct - Add unit tests to spot check return values as the cumulative test can coerce some return values to True/False Change-Id: I84eb73c915414c9ec290e73f1306404ceff729f0 Bug: v8:8636 Reviewed-on: https://chromium-review.googlesource.com/c/1404197Reviewed-by: Bill Budge <bbudge@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#58715}
-
Jaroslav Sevcik authored
If feedback for call site frequency is 0, then the combined frequency is still 0, even if the current function invocation count is infinity. Bug: chromium:919754 Change-Id: I97be096b6b38f934fb13f01b2b22e148c539e1c0 Reviewed-on: https://chromium-review.googlesource.com/c/1404445Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#58714}
-
Mike Stanton authored
If a species constructor is installed, filter() needs to loop over the elements of the array in the "slow" way, because it doesn't know the ElementsKind of the output array. The code failed to bail out to the slow case for the loop right away on discovering this. Bug: chromium:920184, chromium:920491 Change-Id: I74496db20a90807b631c1bebe7604d85b199df67 Reviewed-on: https://chromium-review.googlesource.com/c/1405035Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#58713}
-
Ulan Degenbaev authored
The concurrent marker can now process all objects. This patch also eagerly visits the objects that undergo layout changes. This is because previously such objects were pushed onto the bailout worklist, which is gone now. To preserve the incremental step accounting, the patch introduces a new GC tracer scope called MC_INCREMENTAL_LAYOUT_CHANGE. Bug: v8:8486 Change-Id: Ic1c2f0d4e2ac0602fc945f3258af9624247bd65f Reviewed-on: https://chromium-review.googlesource.com/c/1386486 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#58712}
-
Clemens Hammacher authored
Use the right register type for the temporary register. R=titzer@chromium.org Bug: v8:6600, chromium:917588 Change-Id: Ia2617f6b406924ca7f496608fd495faf04dff25b Reviewed-on: https://chromium-review.googlesource.com/c/1403127Reviewed-by: Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#58711}
-
Michael Starzinger authored
This changes WebAssembly runtime stub compilation to no longer require an Isolate parameter. Such stubs are shared between Isolates and hence must be independent of the concrete Isolate anyways. Also we will soon generate such stubs from background tasks, where we should not pass an Isolate parameter either. R=clemensh@chromium.org CC=jkummerow@chromium.org Change-Id: Id9de46cae3fb77946d745a4aeadccac50f6e8350 Reviewed-on: https://chromium-review.googlesource.com/c/1405039Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#58710}
-
Stephan Herhut authored
Removed the static field and made it an instance field on the BundleBuilder. Change-Id: I58a9f4a744654b262a3e47e6873baffb537eb21b Reviewed-on: https://chromium-review.googlesource.com/c/1404444Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Stephan Herhut <herhut@chromium.org> Cr-Commit-Position: refs/heads/master@{#58709}
-
Camillo Bruni authored
Using a single bit in the inner function description preparse data of the parent function we can avoid storing many NULL values for empty inner function data. This saves roughly 40KB out of 140KB PreparseScopeData on cnn.com. Change-Id: Ib6019a8ceb99e772b398198074e171f635c0556e Reviewed-on: https://chromium-review.googlesource.com/c/1405038 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#58708}
-
Toon Verwaest authored
Keep track of loop nesting depth on FunctionState and use that to decide whether to mark var as assigned. That also fixes the weird cornercase where a loop body can have multiple expressions due to multiple declarations with independent initializers in a single var-statement. Change-Id: Ia24affde29e22e9464448fd390062f6dd983faf2 Reviewed-on: https://chromium-review.googlesource.com/c/1405037Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#58707}
-
Leszek Swirski authored
For desrtucturing assignments from null/undefined, we throw an error that references the destructuring object literal's property name, e.g. for var { x } = null; we report that we cannot destructure 'x' from null. Rather than calculating this property during bytecode generation (and including it in the bytecode as an argument to the type error constructor), we can calculate it at exception throwing time, by re-parsing the source in a similar way to the existing call site rendering. This slightly decreases bytecode size and slightly decreases the amount of work the bytecode compiler needs to do. In the future, it could also allow us to give more detailed error messages, as we now have access to the entire AST and are on the slow path anyway. Bug: v8:6499 Change-Id: Icdbd4667db548b4e5e62ef97797a3771b5c1bf72 Reviewed-on: https://chromium-review.googlesource.com/c/1396080Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#58706}
-