- 19 Feb, 2019 1 commit
-
-
Mythri authored
Updates CloneIC builtin to take the CloneIC_slow path when there is no feedback vector. Also fixes the CloneIC_Slow to handle proxies correctly. StoreInArrayLiteralIC doesn't change the behaviour but just makes it consistent with other ICs. Bug: v8:8293 Change-Id: Ib824b3ef06db1595ce06f04669857bb957cbe072 Reviewed-on: https://chromium-review.googlesource.com/c/1475750 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#59682}
-
- 14 Feb, 2019 2 commits
-
-
Dan Elphick authored
If enable_omit_source_positions is true (defaults to false), source position tables are not generated when compiling bytecode. They will then be regenerated when exceptions are thrown. This adds a new function Compiler::CollectSourcePositions which given a SharedFunctionInfo with bytecode but no source position table re-parses and regenerates the bytecode but this time with source positions collection enabled. Note this will reparse all inner functions that have previously been compiled since the preparse data is no longer available. With the flag enabled there still 18 test failures mostly related to debugging. v8: 8510 Change-Id: I46dff9818d8a89c901ba8ae8df94dcaca83aa658 Reviewed-on: https://chromium-review.googlesource.com/c/1385165 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#59595}
-
Mythri authored
The megamorphic case in the KeyedStoreIC doesn't use/update any feedback. We could use this path to fast path some of the keyed stores instead of misssing to the runtime when the feedback vector is not available. This cl, moves the check for feedback vector from the bytecode handler to the KeyedStoreIC and calls the KeyedStoreIC_Megamorphic builtin when there is no valid feedback vector. This will help improve the performance of no feedback/jitless case. Bug: v8:8293 Change-Id: I71c128b355d47ac20e50fc836f4bc2cf0aab1154 Reviewed-on: https://chromium-review.googlesource.com/c/1460946 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#59590}
-
- 13 Feb, 2019 2 commits
-
-
Mythri authored
The uninitialized case in the StoreIC doesn't use any feedback. We could use this path to fast path some of the named stores instead of missing to the runtime when the feedback vector is not available. Bug: v8:8293 Change-Id: Ib3c4f843b24a377708f8db18fae10983e5633484 Reviewed-on: https://chromium-review.googlesource.com/c/1463781 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#59580}
-
Nico Weber authored
For macros expanding to function definitions, I removed the spurious ; after macro invocations. For macros expandign to function declarations, I made the ; required and consistently inserted it. No behavior change. Bug: chromium:926235 Change-Id: Ib8085d85d913d74307e3481f7fee4b7dc78c7549 Reviewed-on: https://chromium-review.googlesource.com/c/1467545Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Nico Weber <thakis@chromium.org> Cr-Commit-Position: refs/heads/master@{#59558}
-
- 08 Feb, 2019 2 commits
-
-
Igor Sheludko authored
... and also loads of off-heap tagged values. Bug: v8:7703 Change-Id: I0dd15ecda76cc35fe5f2f51a7103937a7ac238dc Reviewed-on: https://chromium-review.googlesource.com/c/1459639 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#59468}
-
Toon Verwaest authored
As requested in https://chromium-review.googlesource.com/c/v8/v8/+/1448313 Change-Id: I89e84600aa4cd3feef3dbf4f5acdaf377e3446f8 Reviewed-on: https://chromium-review.googlesource.com/c/1460463Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#59449}
-
- 06 Feb, 2019 1 commit
-
-
Toon Verwaest authored
"this" is a very common expression. By using a single ThisExpression object we can both avoid allocating many unnecessary VariableProxies and specialize the resolution of this since we know where it's declared up-front. This also avoids having to special-case "this" reference handling in the paths that would behave differently for "this" than for regular references; e.g., with-scopes. The tricky pieces are due to DebugEvaluate and this/super() used as default parameters of arrow functions. In the former case we replace the WITH_SCOPE with FUNCTION_SCOPE so that we make sure that "this" is intercepted, and still rely on regular dynamic variable lookup. Arrow functions are dealt with by marking "this" use in ArrowHeadParsingScopes. If the parenthesized expression ends up being an arrow function, we force context allocate on the outer scope (and mark "has_this_reference" on the FUNCTION_SCOPE so DebugEvaluate in the arrow function can expose "this"). The CL also removes the now unused ThisFunction AST node. Change-Id: I0ca38ab92ff58c2f731e07db2fbe91df901681ef Reviewed-on: https://chromium-review.googlesource.com/c/1448313Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#59393}
-
- 04 Feb, 2019 1 commit
-
-
Clemens Hammacher authored
The most common use of {SaveContext} is to allocate this object, then immediately set the context of the isolate to another Context. Thus introduce a second class called "SaveAndSwitchContext" which implements exactly that. R=mstarzinger@chromium.org Bug: v8:8562 Change-Id: I2fca1eadd909a7afe035316ded934624273f2e21 Reviewed-on: https://chromium-review.googlesource.com/c/1448319Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#59323}
-
- 02 Feb, 2019 1 commit
-
-
Suraj Sharma authored
The program: foo; let foo = 5; …now produces: ReferenceError: Cannot access 'foo' before initialization …instead of: ReferenceError: foo is not defined Bug: v8:6513, v8:6951 Change-Id: I6c372626734570d5abeb1d0196b814dde02b9e3e Reviewed-on: https://chromium-review.googlesource.com/c/1441151Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by: Mathias Bynens <mathias@chromium.org> Commit-Queue: Suraj Sharma <surshar@microsoft.com> Commit-Queue: Mathias Bynens <mathias@chromium.org> Cr-Commit-Position: refs/heads/master@{#59307}
-
- 28 Jan, 2019 2 commits
-
-
Jakob Kummerow authored
The workaround is simple: cast to unsigned before shifting. Bug: v8:3770 Change-Id: I5f0f7af697ec5db0ab1df3d061008940c83c5c56 Reviewed-on: https://chromium-review.googlesource.com/c/1436215Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#59140}
-
Camillo Bruni authored
- Dehandlify ScopeInfo::ContextSlotIndex - Dehandlify ScriptContextTable::Lookup - Introduce function-kind.h with range-based helper methods - Spread usage of Scope::is_script_scope and friends Change-Id: I8ed1d82cc5bb9ea3fce856e16e9eafe194fb57ba Reviewed-on: https://chromium-review.googlesource.com/c/1430100Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#59120}
-
- 25 Jan, 2019 2 commits
-
-
Mythri authored
SetProperty now infers the language mode from the closure and the context So we no longer have to pass around the language mode. Cleanup by removing the parameter where it is no longer needed. Bug: v8:8580 Change-Id: I89452b5a762eb48a911f158d22c7bfa9e3bb1be4 Reviewed-on: https://chromium-review.googlesource.com/c/1421840 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#59089}
-
Leszek Swirski authored
Declare Variables with a name and position, rather than by passing through a VariableProxy. This allows us to not create dummy proxies for things like function declarations, and allows us to consider those declarations unused. As a side-effect, we also have to check if a variable is unused in the bytecode generator (as it will no longer be allocated), and we end up skip generating code/SFIs for dead variables/functions. Change-Id: I4c2c872473f23e124f9456b4b92f87159658f8e0 Reviewed-on: https://chromium-review.googlesource.com/c/1414916 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#59088}
-
- 24 Jan, 2019 1 commit
-
-
Mythri authored
This is a reland of 0896599f with a fix for failing layout test. Original change's description: > Change SetProperty/SetSuperProperty to infer language mode when possible > > In most cases, the language mode can be inferred from the closure and > the context. Computing the language mode instead of passing it around > simplifies the ICs and will make it possible to go towards lazily > allocating feedback vectors. Currently ICs obtain the language mode from > the feedback vectors and with lazy feedback allocation we may not always > have feedback vectors. Since computing language mode is a bit expensive > we want to defer it as far as possible. > > In Array builtins and other builtins like Reflect.Set we need to force a > language mode when setting the properties. To support these cases the > SetProperty methods allow the language mode to be overridden when needed. > > This is a first cl in a series of cls, that will defer the language mode > computation further and remove language mode where it is not needed. > > BUG: v8:8580 > Change-Id: I9c2396e3bcfe77c3c9d6760c46d86954d54744b9 > Reviewed-on: https://chromium-review.googlesource.com/c/1409426 > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Commit-Queue: Mythri Alle <mythria@chromium.org> > Cr-Commit-Position: refs/heads/master@{#58893} TBR: ahaas@chromium.org Change-Id: Id5d81eae91b55638dbc72168f0e5203e684869fb Reviewed-on: https://chromium-review.googlesource.com/c/1421077 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#59075}
-
- 22 Jan, 2019 4 commits
-
-
Matt Gardner authored
V8 implements "delete this" as "LdaTrue", but an error needs to be thrown if done in a constructor before calling super. ThrowIfHole checks the accumulator, so we need to load 'this' into the accumulator. The check is inserted by the load since it has HoleCheckMode::kRequired Bug: https://bugs.chromium.org/p/v8/issues/detail?id=6711 Change-Id: I9f2ce4439505cec4327d88d1195898782edea721 Reviewed-on: https://chromium-review.googlesource.com/c/1419084Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Matt Gardner <magardn@microsoft.com> Cr-Commit-Position: refs/heads/master@{#59007}
-
Peter Marshall authored
Some includes in log.h were only needed by log.cc so move them there. Some were not needed at all, so remove them completely. Drive-by cleanup FunctionEvent(), which was never called without args for the last parameters which had default values. Change-Id: Id8b0c634c4d39d3c278ab3d932ed7af4142fd9c9 Reviewed-on: https://chromium-review.googlesource.com/c/1425914Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#59003}
-
Ross McIlroy authored
The decision as to whether to optimize an IIFE as oneshot depends on whether it's outer scope is the script scope. During lazy compile, we might have discarded scopes which don't need a context between the IIFE and the script scope, which means we might treat an IIFE as oneshot, even though initial eager compile treated it as non-oneshot. Both bytecode flushing and lazy source positions rely on us generating the same bytecode during lazy compile as eager compile, so we move the decision into the parser where it happens once and is then stored in the SFI for any future lazy compiles. BUG=v8:8395,v8:8510 Change-Id: I88f1e74ad95d47a2636c393ceb1318d7d610055d Reviewed-on: https://chromium-review.googlesource.com/c/1421841Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#58996}
-
Peter Marshall authored
Everything was including log.h through heap-inl.h, so remove that include by moving the one user into heap.cc, and then fix all the include errors. This reduces the log.h include ball from ~550 to ~100. Change-Id: I6d09bc2f365b48645fcfdc695a68ea12539a745d Reviewed-on: https://chromium-review.googlesource.com/c/1424198 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#58981}
-
- 21 Jan, 2019 1 commit
-
-
Peter Marshall authored
- Use unique ptrs for owned objects - Remove friendship with CpuProfiler and replace with public API - Remove unused method LogFailure() - Remove StopProfiler() which was only used by LogFailure() (removed) and one test, which can use StopProfilerThread() instead - Remove 'paused' state which was only used by the above - Remove 'engage' state. There is no reason we need this as along as users keep track of Engage/Disengage calls Drive-by cleanup: - Remove import of log.h from profile-generator.h - Remove unnecessary includes of log.h Change-Id: Ifc4ca156bef038c40953f8361ffea17788e3a59b Reviewed-on: https://chromium-review.googlesource.com/c/1424338 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#58957}
-
- 16 Jan, 2019 2 commits
-
-
Toon Verwaest authored
That makes the declaration in sync with how dynamic references are resolved, avoiding duplicate variable creation in the likely case that the variable is also referenced within the eval. Bug: v8:5112, v8:5135, v8:8693 Change-Id: I0c55495f573fe8b5076b1627c139ff72d1adda74 Also-by: leszeks@chromium.org Reviewed-on: https://chromium-review.googlesource.com/c/1408890 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#58850}
-
Leszek Swirski authored
Storing a VariableProxy in declarations means that a declaration and initialisation assignment are tightly coupled to use the same var. In particular, this means that Var declarations in with scopes have to clone the VariableProxy to split the declaration and initializer LHS lookup. This patch changes declarations to point directly to the Variable, not the VariableProxy. This will allow future refactoring to decouple declarations and initialisations. Change-Id: I0baa77bfd12fe175f9521d292740d7d712cffd37 Reviewed-on: https://chromium-review.googlesource.com/c/1406683Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#58843}
-
- 15 Jan, 2019 1 commit
-
-
Leszek Swirski authored
Change-Id: Ia39d2157eb7c0c644348e1762ee32fef84c6b51d Reviewed-on: https://chromium-review.googlesource.com/c/1409428 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#58816}
-
- 14 Jan, 2019 1 commit
-
-
Leszek Swirski authored
This removes the iteration protocol from the parser entirely, and opens up future possibilities for more bytecodes implementing the various functions of the protocol. Change-Id: I316b8a92434d3b5f47927408a235ddaecd65d5bb Reviewed-on: https://chromium-review.googlesource.com/c/1403125 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#58795}
-
- 10 Jan, 2019 3 commits
-
-
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}
-
Leszek Swirski authored
The 'done' setting dance in BuildFillArrayWithIterator turned out to not be useful, as the StoreInArrayLiteral call could not ever throw an exception. Since iterator exceptions count as done, we are guarnteed to be done as soon as we enter the loop. Change-Id: Ibe2ba1fcbe383bfcfedb185169890b6931cc7884 Reviewed-on: https://chromium-review.googlesource.com/c/1402792 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#58695}
-
Leszek Swirski authored
The IteratorClose spec specifies that exceptions in %GetMethod(iterator.return) are not suppressed by exceptions in the given continuation (body of a loop, assignments in destructuring), while exceptions in the execution of iterator.return() are. This means that we have to split out the property access + a typeof check to be outside the try-catch, and keep the call inside of it. The non-split version is only for cases when there is no 'throws' continuation (as is the case for yield* calling IteratorClose), so the existing BuildIteratorClose can be renamed to reflect this. Change-Id: Id71aea4fddd6ffb986bd9aaa09d29615a8800f71 Reviewed-on: https://chromium-review.googlesource.com/c/1402789Reviewed-by: Georg Neis <neis@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#58694}
-
- 09 Jan, 2019 1 commit
-
-
Leszek Swirski authored
Emit a single destructuring assignment for destructuring declarations, which can be desugared by the bytecode generator. This allows us to remove destructuring desugaring from the parser (specifically, the pattern rewriter) entirely. The pattern "rewriter" is now only responsible for walking the destructuring pattern to declare variables, mark them assigned, and potentially rewrite scopes for the edge case of parameters with a sloppy eval. Note that since the rewriter is no longer rewriting, we have to flip the VariableProxy copying logic for var re-lookup, so that we now pass the new VariableProxy to the variable declaration and leave the original unresolved (rather than passing the original through and rewriting to a new unresolved VariableProxy). This change does have some effect on breakpoint locations, due to some of the available information changing between the parser and bytecode generator, however the new locations appear to be more consistent between assignments and declarations. Change-Id: I3a58dd0a387d2bfb8e5e9e22dde0acc5f440cb82 Reviewed-on: https://chromium-review.googlesource.com/c/1382462 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#58670}
-
- 08 Jan, 2019 1 commit
-
-
Toon Verwaest authored
Previously we'd always push variable proxies into the unresolved list of the current scope, and possibly delete them from the list later in case they end up being declarations. If variables become assigned, there were two ways to mark them as such: The preparser would marked the variables tracked on the PreParserExpression, and the parser would traverse the LHS AST to find and mark all variables. After this CL, if the scope already knows it's tracking declarations, the variables are never added to the unresolved list in the first place. If the scope is ambigous, it tracks the variable proxies on the side and only adds them to the unresolved list if they end up being references rather than declarations. The same list is now used to bulk mark all LHS variables as assigned; uniformely for both the parser and the preparser. In a next step we'll also use the scope to create declarations. That way we can stop tracking variables_ on PreParserExpression altogether. Change-Id: I6ada37006cc2e066731f29cd4ea314550fc7959f Reviewed-on: https://chromium-review.googlesource.com/c/1397669 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#58629}
-
- 07 Jan, 2019 3 commits
-
-
Joyee Cheung authored
This patch sets the name slot of the private name symbols for private fields and display the names in error messages of invalid private field accesses. TBR: adamk@chromium.org Bug: v8:8144 Change-Id: Id34c468e2bddd1c3001517b4d447c7497402df76 Reviewed-on: https://chromium-review.googlesource.com/c/1374332Reviewed-by: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Mathias Bynens <mathias@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Mythri Alle <mythria@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Joyee Cheung <joyee@igalia.com> Cr-Commit-Position: refs/heads/master@{#58601}
-
Camillo Bruni authored
- Directly use VisitFunctionLiteral where possible - Take shortcut for StringLiterals in BuildLoadPropertyKey Change-Id: Ib5c3de3d2bdd354acbfeb607415854ba90622e89 Reviewed-on: https://chromium-review.googlesource.com/c/1382750Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#58595}
-
Clemens Hammacher authored
This reverts commit dcd75706. Reason for revert: Breaks layout tests, blocks roll, see https://crrev.com/c/1396602; there are wasm CLs in this range too, but this CL looks like the most likely culprit. Original change's description: > Reland: [Compiler] Ensure unoptimized code generation is context independent. > > Now that Asm.js code is also context independent, move code to ensure context independence > from BytecodeGenerator to FinalizeUnoptimizedCode. > > Reland of CL: https://chromium-review.googlesource.com/c/v8/v8/+/1349236 > > Change-Id: I718090850870c61733e0719d4091ec60bc080ebb > Reviewed-on: https://chromium-review.googlesource.com/c/1396201 > Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Dan Elphick <delphick@chromium.org> > Cr-Commit-Position: refs/heads/master@{#58558} TBR=rmcilroy@chromium.org,delphick@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Change-Id: I5f547319f31f87777165361747dd42d223fc0b0e Reviewed-on: https://chromium-review.googlesource.com/c/1396427Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#58564}
-
- 04 Jan, 2019 1 commit
-
-
Ross McIlroy authored
Now that Asm.js code is also context independent, move code to ensure context independence from BytecodeGenerator to FinalizeUnoptimizedCode. Reland of CL: https://chromium-review.googlesource.com/c/v8/v8/+/1349236 Change-Id: I718090850870c61733e0719d4091ec60bc080ebb Reviewed-on: https://chromium-review.googlesource.com/c/1396201 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#58558}
-
- 03 Jan, 2019 1 commit
-
-
Leszek Swirski authored
Instead of de-sugaring destructuring assignment in the parser (using the pattern rewriter), pass the Object/ArrayLiterals through to the bytecode generator, which can desugar them in-place. This allows us to decrease the amount of AST node creation, and improve the generated bytecode using domain-specific knowledge. As a side effect we partially fix an old execution ordering spec bug. Currently only implemented for assignments, not declarations, as the latter has some additional complexity. Bug: v8:4951 Change-Id: I3d69d232bea2968ef20df68a74014d9e05808cfe Reviewed-on: https://chromium-review.googlesource.com/c/1375660 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#58512}
-
- 27 Dec, 2018 1 commit
-
-
Igor Sheludko authored
Bug: v8:8477, v8:8562 Change-Id: Id97f5b53fe6e6a696d8955acc1ab1bc5ac2f4052 Reviewed-on: https://chromium-review.googlesource.com/c/1388527 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#58474}
-
- 26 Dec, 2018 1 commit
-
-
Jakob Kummerow authored
Tbr: ahaas@chromium.org,leszeks@chromium.org,verwaest@chromium.org Bug: v8:3770 Change-Id: Ia6530fbb70dac05e9972283781c3550d8b50e1eb Reviewed-on: https://chromium-review.googlesource.com/c/1390116 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Alexei Filippov <alph@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#58470}
-
- 21 Dec, 2018 2 commits
-
-
Sathya Gunasekaran authored
A computed property can never be a private field. That's a SyntaxError. Change the check to a DCHECK. Bug: v8:5368 Change-Id: I6701b60f3193639f3ccffacda25074d32d5de5b8 Reviewed-on: https://chromium-review.googlesource.com/c/1385267Reviewed-by: Mythri Alle <mythria@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#58451}
-
Jakob Gruber authored
This changes a few bits about how continuation counters are handled. It introduces a new mechanism that allows removal of a continuation range after it has been created. If coverage is enabled, we run a first post-processing pass on the AST immediately after parsing, which removes problematic continuation ranges in two situations: 1. nested continuation counters - only the outermost stays alive. 2. trailing continuation counters within a block-like structure are removed if the containing structure itself has a continuation. R=bmeurer@chromium.org, jgruber@chromium.org, yangguo@chromium.org Bug: v8:8381, v8:8539 Change-Id: I6bcaea5060d8c481d7bae099f6db9f993cc30ee3 Reviewed-on: https://chromium-review.googlesource.com/c/1339119Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#58443}
-
- 20 Dec, 2018 1 commit
-
-
Camillo Bruni authored
- Reduce ExpressionResultScope size by reusing accessing the generator from its RegisterAllocationScope member - Mark the ExpressionResultScope destructor non-virtual since there are no destructors in subclasses Change-Id: I3abe1856c091100217c668cd6bd5e7fd96eb8397 Reviewed-on: https://chromium-review.googlesource.com/c/1386485Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#58398}
-
- 19 Dec, 2018 1 commit
-
-
Sigurd Schneider authored
This refactoring reduces the LoC after preprocessor expansion by 370,322 gen ( 21 files): 71,503 to 1,631,168 ( 23x) src ( 624 files): 367,639 to 53,231,764 ( 145x) test ( 392 files): 490,770 to 37,450,839 ( 76x) third_party ( 432 files): 239,085 to 9,547,902 ( 40x) total ( 1521 files): 1,183,681 to 102,836,194 ( 87x) gen ( 21 files): 71,503 to 1,613,222 ( 23x) src ( 624 files): 367,634 to 52,964,046 ( 144x) test ( 392 files): 490,771 to 37,366,181 ( 76x) third_party ( 432 files): 239,085 to 9,547,902 ( 40x) total ( 1521 files): 1,183,677 to 102,465,872 ( 87x) Bug: v8:8562 Change-Id: Ib4e771c37471a2ff19c5538e62c038943cc74eaf Reviewed-on: https://chromium-review.googlesource.com/c/1382469Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#58349}
-