- 13 Feb, 2019 1 commit
-
-
Frank Tang authored
This is part 1 of 2 of clean up. C++ change in Part 2 next. Bug: v8:8705 Change-Id: Ibf4425c141391581b963f4775286b65b652452e2 Reviewed-on: https://chromium-review.googlesource.com/c/1461172Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Frank Tang <ftang@chromium.org> Cr-Commit-Position: refs/heads/master@{#59581}
-
- 11 Feb, 2019 1 commit
-
-
Caitlin Potter authored
Currently, PRIVATE_NAME / PrivateIdentifier is not valid in ObjectLiterals or other places expecting the PropertyName production. A SyntaxError here prevents an access violation later on when attempting to dereference a null property key BUG=v8:8808 R=gsathya@chromium.org, littledan@chromium.org Change-Id: Idde9c669cb48c1595b83115351a8fe0caed40eef Reviewed-on: https://chromium-review.googlesource.com/c/1461161Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Caitlin Potter <caitp@igalia.com> Cr-Commit-Position: refs/heads/master@{#59515}
-
- 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}
-
- 30 Jan, 2019 2 commits
-
-
Sven Sauleau authored
We noticed that almost every call site were loading both files, the split isn't necessary anymore. In some message tests, removed the absolute line number to allow future changes. Bug: v8:8726 Change-Id: I8527f0a1ecfa685aa01a5e2f5f47ddf1cb13a545 Reviewed-on: https://chromium-review.googlesource.com/c/1446452 Commit-Queue: Sven Sauleau <ssauleau@igalia.com> Reviewed-by:
Ben Titzer <titzer@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#59220}
-
Marja Hölttä authored
This replaces WeakFactory with FinalizationGroup. New API is here: https://weakrefs.netlify.com/ BUG=v8:8179 Change-Id: I8c1c4a70deb42581d17117423dd29d93bdd35cb0 Reviewed-on: https://chromium-review.googlesource.com/c/1435938Reviewed-by:
Maya Lekova <mslekova@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#59204}
-
- 29 Jan, 2019 1 commit
-
-
Simon Zünd authored
This CL extends the kCircularStructure error message to include the constructors and keys involved in the circle: const a = {}; a.arr = []; a.arr[0] = a; JSON.stringify(a); TypeError: Converting circular structure to JSON --> starting at object with constructor 'Object' | property 'arr' -> object with constructor 'Array' --- index 0 closes the circle R=gsathya@chromium.org, yangguo@chromium.org Bug: v8:6513, v8:8696 Change-Id: I393aa3ce47d8bfd03734fccac63445006940ef7a Reviewed-on: https://chromium-review.googlesource.com/c/1433776Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#59152}
-
- 23 Jan, 2019 1 commit
-
-
Georg Neis authored
Otherwise we might come across invalid locations. Bug: chromium:923675 Change-Id: I0b01ba4b11cc7270744ec438bedb0b8ada2aa29d Reviewed-on: https://chromium-review.googlesource.com/c/1426126 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#59026}
-
- 22 Jan, 2019 1 commit
-
-
Suraj Sharma authored
-5**2 now produces SyntaxError: Unary operator used immediately before exponentiation expression. Parenthesis must be used to disambiguate operator precedence. Bug: v8:6894 Change-Id: I89dd034ff90ee1a49ba61e0c613da534fbf8b41b Reviewed-on: https://chromium-review.googlesource.com/c/1418592Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Suraj Sharma <surshar@microsoft.com> Cr-Commit-Position: refs/heads/master@{#59011}
-
- 21 Jan, 2019 1 commit
-
-
Toon Verwaest authored
Use variable tracking from ExpressionScopes rather than the PatternRewriter and PreParserExpression::variables_ to declare variables. We only figure out that variables are non-simple parameters once we see the first non-simple parameter. This still uses the pattern rewriter to make variables non-simple (kLet instead of kVar). Change-Id: I4a4ee4852d667c26806bb24896722cfea3e093f2 Reviewed-on: https://chromium-review.googlesource.com/c/1417630Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#58954}
-
- 19 Jan, 2019 1 commit
-
-
Frank Tang authored
See https://github.com/tc39/proposal-intl-list-format/pull/36 Bug: v8:8614 Change-Id: Ifa9bebf27163420562c0d62867b9a240b5c4c502 Reviewed-on: https://chromium-review.googlesource.com/c/1386324 Commit-Queue: Frank Tang <ftang@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#58938}
-
- 16 Jan, 2019 1 commit
-
-
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}
-
- 10 Jan, 2019 1 commit
-
-
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}
-
- 09 Jan, 2019 2 commits
-
-
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}
-
Joyee Cheung authored
Bug: v8:8354 Change-Id: I20bb169695d7ecca739f14f9a3ddfafed0dcb964 Reviewed-on: https://chromium-review.googlesource.com/c/1393284Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Joyee Cheung <joyee@igalia.com> Cr-Commit-Position: refs/heads/master@{#58652}
-
- 07 Jan, 2019 1 commit
-
-
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}
-
- 19 Dec, 2018 2 commits
-
-
Toon Verwaest authored
Now we just check for each variable declared in the parameter scope whether it occurs as a lexical variable in the body scope. This way the preparser will also identify them. Bug: v8:2728, v8:5064 Change-Id: I9fd96590fa431de0656c85295fd31af9b36f2e32 Reviewed-on: https://chromium-review.googlesource.com/c/1384225Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#58375}
-
Toon Verwaest authored
- Directly declares the special catch variable from the parser-base. - Tracks Scope on PreParserBlock and finds conflicting lexical declarations by simply walking the VariableMap of the block inserted for the pattern; or the catch variable in case of identifier. - This also enables throwing errors for duplicate let in the preparser. We may have to back that out if it breaks something. Bug: v8:2728, v8:7828 Change-Id: Id2eea62062533eb99cd6670c42a4b1da87139008 Reviewed-on: https://chromium-review.googlesource.com/c/1382095Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#58353}
-
- 10 Dec, 2018 2 commits
-
-
Leszek Swirski authored
This reverts commit 92db073f. Reason for revert: Breaks devtools test https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8-Blink%20Win/15539 Devtools seems to parse our error messages, e.g. https://cs.chromium.org/chromium/src/third_party/blink/renderer/devtools/front_end/object_ui/JavaScriptAutocomplete.js?type=cs&q=isExpressionComplete+javascriptautocomplete&sq=package:chromium&g=0&l=612 Original change's description: > [parser] Improve error message for unclosed function bodies > > This patch changes the output from: > > function fn() { > ^ > SyntaxError: Unexpected end of input > > to: > > function fn() { > ^ > SyntaxError: missing '}' after function body > > Bug: v8:6513, v8:7321 > Change-Id: I4ca8a40fa0be246da2a3ff776b3fb3c87b4ba4e0 > Also-By: gsathya@chromium.org > Reviewed-on: https://chromium-review.googlesource.com/c/1367448 > Commit-Queue: Mathias Bynens <mathias@chromium.org> > Reviewed-by: Marja Hölttä <marja@chromium.org> > Cr-Commit-Position: refs/heads/master@{#58116} TBR=marja@chromium.org,gsathya@chromium.org,mathias@chromium.org Change-Id: Ia2ac413d67fda39eda903c056002ae632df73df9 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6513, v8:7321 Reviewed-on: https://chromium-review.googlesource.com/c/1370026Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#58124}
-
Mathias Bynens authored
This patch changes the output from: function fn() { ^ SyntaxError: Unexpected end of input to: function fn() { ^ SyntaxError: missing '}' after function body Bug: v8:6513, v8:7321 Change-Id: I4ca8a40fa0be246da2a3ff776b3fb3c87b4ba4e0 Also-By: gsathya@chromium.org Reviewed-on: https://chromium-review.googlesource.com/c/1367448 Commit-Queue: Mathias Bynens <mathias@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#58116}
-
- 23 Nov, 2018 1 commit
-
-
Toon Verwaest authored
This changes the split from AssignmentPattern and BindingPattern to Pattern and BindingPattern. Pattern collects all errors that are invalid in both assignment and binding pattern contexts. Binding pattern additionally collects errors for binding pattern contexts (property access isn't a valid target). The distinction is piggybacked on to distinguish assignment vs binding pattern errors since binding pattern verification will first throw the binding pattern error. Since we don't throw pattern error as binding pattern as well, this can mean that a later binding pattern syntax error will show up before an early pattern error. Since that just changes the message to another syntax violation, I think that's fine. Change-Id: Ib6a22c8d11c49eacc6667ae8ee5e98bababadd43 Reviewed-on: https://chromium-review.googlesource.com/c/1349273Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#57774}
-
- 12 Nov, 2018 1 commit
-
-
Jakob Gruber authored
This removes unused code (macros.py, runtime functions). As IS_VAR is now unused we can remove support from the parser. Bug: v8:7624 Change-Id: Ia1c5e23f4c2caa85310d3f9a557218fc52d200f2 Reviewed-on: https://chromium-review.googlesource.com/c/1329696Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#57434}
-
- 08 Nov, 2018 2 commits
-
-
Toon Verwaest authored
This allows the main ExpressionCoverGrammar parsing to be a little tighter. Change-Id: I45e3d1a9a647a98ffe1ad9969cb1ffbe47f67f1c Reviewed-on: https://chromium-review.googlesource.com/c/1326468 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#57362}
-
Marja Hölttä authored
See https://github.com/tc39/proposal-weakrefs/issues/37 Drive-by: fix error messages. BUG=v8:8179 Change-Id: I8608d09ec5a58c8b62eea4580be9415f6bb41586 Reviewed-on: https://chromium-review.googlesource.com/c/1319758 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#57347}
-
- 06 Nov, 2018 1 commit
-
-
Joyee Cheung authored
Rename variables and flag names so that the classes can be reused by private methods implementation. In particular: Rename "fields" to "members" in the initializer so that we can initialize both fields and private methods/accessors there, for example: instance_fields_initializer -> instance_members_initializer InitializeClassFieldsStatement -> InitializeClassMembersStatement Rename "private field" to "private name" for the private symbols used to implement private fields so that we can use them to store private methods/accessors later as well, for example: private_field_name_var -> private_name_var NewPrivateFieldSymbol -> NewPrivateNameSymbol The follow-on is in https://chromium-review.googlesource.com/c/v8/v8/+/1301018 The design doc is in https://docs.google.com/document/d/1T-Ql6HOIH2U_8YjWkwK2rTfywwb7b3Qe8d3jkz72KwA/edit?usp=sharing Bug: v8:8330 Change-Id: I1cdca8def711da879b6e4d67c5ff0a5a4a36abbe Reviewed-on: https://chromium-review.googlesource.com/c/1312597Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Joyee Cheung <joyee@igalia.com> Cr-Commit-Position: refs/heads/master@{#57289}
-
- 02 Nov, 2018 3 commits
-
-
Toon Verwaest authored
This is a reland of 9d34fa0c TBR=ishell@chromium.org Original change's description: > [parser] Optimize directive parsing especially for preparser > > - Avoid allocating AstRawString in the preparser > - Use fast LiteralEquals to compare the directive. > > Bug: chromium:901250 > Change-Id: I178aca812f6c0ffa28d7f48b707316a5a99a2ac0 > Reviewed-on: https://chromium-review.googlesource.com/c/1314570 > Commit-Queue: Toon Verwaest <verwaest@chromium.org> > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57217} Bug: chromium:901250 Change-Id: I01dfd882923d3f37a08ca0be193474d38e273927 Reviewed-on: https://chromium-review.googlesource.com/c/1314578Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#57220}
-
Maya Lekova authored
This reverts commit 9d34fa0c. Reason for revert: Breaking test-parsing tests, see https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20gcc%204.8/22942 https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Win64%20-%20msvc/5731 Original change's description: > [parser] Optimize directive parsing especially for preparser > > - Avoid allocating AstRawString in the preparser > - Use fast LiteralEquals to compare the directive. > > Bug: chromium:901250 > Change-Id: I178aca812f6c0ffa28d7f48b707316a5a99a2ac0 > Reviewed-on: https://chromium-review.googlesource.com/c/1314570 > Commit-Queue: Toon Verwaest <verwaest@chromium.org> > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57217} TBR=ishell@chromium.org,verwaest@chromium.org Change-Id: I47381358c5a8e9c39fe2af6e72481ebfe9d74a55 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:901250 Reviewed-on: https://chromium-review.googlesource.com/c/1314577Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#57218}
-
Toon Verwaest authored
- Avoid allocating AstRawString in the preparser - Use fast LiteralEquals to compare the directive. Bug: chromium:901250 Change-Id: I178aca812f6c0ffa28d7f48b707316a5a99a2ac0 Reviewed-on: https://chromium-review.googlesource.com/c/1314570 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#57217}
-
- 17 Oct, 2018 2 commits
-
-
Toon Verwaest authored
This also fixes the tokens that are identified as called identifiers. Change-Id: I4a2179b98214f9018c8c07c0ab27f878cdae13cf Bug: v8:6513 Reviewed-on: https://chromium-review.googlesource.com/c/1286338Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#56719}
-
Marja Hölttä authored
BUG=v8:8179 Change-Id: I29c5a5359a6e682ec6d94e9779f921889546b6a7 Reviewed-on: https://chromium-review.googlesource.com/c/1278393Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#56711}
-
- 16 Oct, 2018 1 commit
-
-
Frank Tang authored
This is to implement a new change in the proposal '14. If style is "narrow" and type is not "unit", throw a RangeError exception.' in #sec-Intl.ListFormat See also https://github.com/tc39/proposal-intl-list-format/issues/16 https://github.com/tc39/proposal-intl-list-format/pull/27 and https://github.com/tc39/test262/pull/1860 Bug: v8:8302 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I0a3dc99eeb18082f359c24c472889d8b6e905225 Reviewed-on: https://chromium-review.googlesource.com/c/1277660 Commit-Queue: Frank Tang <ftang@chromium.org> Reviewed-by:
Frank Tang <ftang@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Daniel Ehrenberg <littledan@chromium.org> Cr-Commit-Position: refs/heads/master@{#56707}
-
- 11 Oct, 2018 1 commit
-
-
Georg Neis authored
This is behind a new flag --harmony-namespace-exports. Bug: v8:8101 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I9c252b6de2b08223fcf3296340b78d721471bdb4 Reviewed-on: https://chromium-review.googlesource.com/c/1258004 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#56550}
-
- 17 Sep, 2018 1 commit
-
-
Sathya Gunasekaran authored
Add tests. Bug: v8:5367 Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel Change-Id: I2a4215a87ba1dae98c4b25547494165f534b4a66 Reviewed-on: https://chromium-review.googlesource.com/1218046 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by:
Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#55974}
-
- 05 Sep, 2018 1 commit
-
-
Hai Dang authored
This is a reland of 1c48d52b. It turned out that IterableToList doesn't always behave according to the ES operation with the same name. Specifically, it allows holey arrays to take its fast path, which produces an output array with holes where actually "undefined" elements should appear. This CL changes the version of IterableToList that is used for spreads (IterableToListWithSymbolLookup) such that holey arrays take the slow path. It also includes tests for such situations. Original change's description: > [interpreter] Add bytecode for leading array spreads. > > This CL improves the performance of creating [...a, b] or [...a]. > If the array literal has a leading spread, this CL emits the bytecode > [CreateArrayFromIterable] to create the literal. CreateArrayFromIterable > is implemented by [IterableToListDefault] builtin to create the initial > array for the leading spread. IterableToListDefault has a fast path to > clone efficiently if the spread is an actual array. > > The bytecode generated is now shorter. Bytecode generation is refactored > into to BuildCreateArrayLiteral, which allows VisitCallSuper to benefit > from this optimization also. > For now, turbofan also lowers the bytecode to the builtin. > > The idiomatic use of [...a] to clone the array a now performs better > than a simple for-loop, but still does not match the performance of slice. > > Bug: v8:7980 > > Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng > Change-Id: Ibde659c82d3c7aa1b1777a3d2f6426ac8cc15e35 > Reviewed-on: https://chromium-review.googlesource.com/1181024 > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Sigurd Schneider <sigurds@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Commit-Queue: Georg Neis <neis@chromium.org> > Commit-Queue: Hai Dang <dhai@google.com> > Cr-Commit-Position: refs/heads/master@{#55520} Bug: v8:7980 Change-Id: I0b5603a12d2b588327658bf0a9b214bd0f22e237 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Reviewed-on: https://chromium-review.googlesource.com/1201882 Commit-Queue: Hai Dang <dhai@google.com> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#55639}
-
- 31 Aug, 2018 1 commit
-
-
Georg Neis authored
This reverts commit 1c48d52b. Reason for revert: Clusterfuzz found something. Original change's description: > [interpreter] Add bytecode for leading array spreads. > > This CL improves the performance of creating [...a, b] or [...a]. > If the array literal has a leading spread, this CL emits the bytecode > [CreateArrayFromIterable] to create the literal. CreateArrayFromIterable > is implemented by [IterableToListDefault] builtin to create the initial > array for the leading spread. IterableToListDefault has a fast path to > clone efficiently if the spread is an actual array. > > The bytecode generated is now shorter. Bytecode generation is refactored > into to BuildCreateArrayLiteral, which allows VisitCallSuper to benefit > from this optimization also. > For now, turbofan also lowers the bytecode to the builtin. > > The idiomatic use of [...a] to clone the array a now performs better > than a simple for-loop, but still does not match the performance of slice. > > Bug: v8:7980 > > Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng > Change-Id: Ibde659c82d3c7aa1b1777a3d2f6426ac8cc15e35 > Reviewed-on: https://chromium-review.googlesource.com/1181024 > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Sigurd Schneider <sigurds@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Commit-Queue: Georg Neis <neis@chromium.org> > Commit-Queue: Hai Dang <dhai@google.com> > Cr-Commit-Position: refs/heads/master@{#55520} TBR=rmcilroy@chromium.org,neis@chromium.org,sigurds@chromium.org,gsathya@chromium.org,jgruber@chromium.org,dhai@google.com Change-Id: I1c86ddcc24274da9f5a8dd3d8bf8d869cbb55cb6 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7980 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Reviewed-on: https://chromium-review.googlesource.com/1199303Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#55544}
-
- 30 Aug, 2018 1 commit
-
-
Hai Dang authored
This CL improves the performance of creating [...a, b] or [...a]. If the array literal has a leading spread, this CL emits the bytecode [CreateArrayFromIterable] to create the literal. CreateArrayFromIterable is implemented by [IterableToListDefault] builtin to create the initial array for the leading spread. IterableToListDefault has a fast path to clone efficiently if the spread is an actual array. The bytecode generated is now shorter. Bytecode generation is refactored into to BuildCreateArrayLiteral, which allows VisitCallSuper to benefit from this optimization also. For now, turbofan also lowers the bytecode to the builtin. The idiomatic use of [...a] to clone the array a now performs better than a simple for-loop, but still does not match the performance of slice. Bug: v8:7980 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: Ibde659c82d3c7aa1b1777a3d2f6426ac8cc15e35 Reviewed-on: https://chromium-review.googlesource.com/1181024Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Commit-Queue: Hai Dang <dhai@google.com> Cr-Commit-Position: refs/heads/master@{#55520}
-
- 23 Aug, 2018 3 commits
-
-
Simon Zünd authored
This is a reland of 9e48a24f Original change's description: > Reland "[array] Move Array.p.sort to Torque and use TimSort instead of QuickSort" > > The CL was reverted because it broke some tests in ChromeOS. > > > [array] Move Array.p.sort to Torque and use TimSort instead of QuickSort > > > > This CL changes the sorting algorithm used in Array.p.sort from > > QuickSort to TimSort (implemented in Torque). > > > > Detailed performance results can be found here: https://goo.gl/4E733J > > > > To save on code space, fast-paths are implemented as sets of > > function pointers instead of specializing generics. > > > > R=cbruni@chromium.org, jgruber@chromium.org > > > > Bug: v8:7382, v8:7624 > > Change-Id: I7cd4287e4562d84ab7c79c58ae30780630f976de > > Reviewed-on: https://chromium-review.googlesource.com/1151199 > > Commit-Queue: Simon Zünd <szuend@google.com> > > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > > Reviewed-by: Camillo Bruni <cbruni@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#55003} > > Bug: v8:7382, v8:7624 > Change-Id: Ic7a3230f3708177774b0760f08b7659d83ec5505 > Reviewed-on: https://chromium-review.googlesource.com/1184901 > Commit-Queue: Simon Zünd <szuend@google.com> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#55325} Bug: v8:7382, v8:7624 Change-Id: I297611f45c09967e0f6961156b0c9ebdebc7053f Reviewed-on: https://chromium-review.googlesource.com/1186801 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#55360}
-
Maya Lekova authored
This reverts commit 9e48a24f. Reason for revert: Possibly breaking the V8-Blink Mac bot - https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8-Blink%20Mac/15097 Original change's description: > Reland "[array] Move Array.p.sort to Torque and use TimSort instead of QuickSort" > > The CL was reverted because it broke some tests in ChromeOS. > > > [array] Move Array.p.sort to Torque and use TimSort instead of QuickSort > > > > This CL changes the sorting algorithm used in Array.p.sort from > > QuickSort to TimSort (implemented in Torque). > > > > Detailed performance results can be found here: https://goo.gl/4E733J > > > > To save on code space, fast-paths are implemented as sets of > > function pointers instead of specializing generics. > > > > R=cbruni@chromium.org, jgruber@chromium.org > > > > Bug: v8:7382, v8:7624 > > Change-Id: I7cd4287e4562d84ab7c79c58ae30780630f976de > > Reviewed-on: https://chromium-review.googlesource.com/1151199 > > Commit-Queue: Simon Zünd <szuend@google.com> > > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > > Reviewed-by: Camillo Bruni <cbruni@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#55003} > > Bug: v8:7382, v8:7624 > Change-Id: Ic7a3230f3708177774b0760f08b7659d83ec5505 > Reviewed-on: https://chromium-review.googlesource.com/1184901 > Commit-Queue: Simon Zünd <szuend@google.com> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#55325} TBR=jgruber@chromium.org,szuend@google.com Change-Id: Ie7e2af57a6480aa0504ba21ec98ee825d7ac74fe No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7382, v8:7624 Reviewed-on: https://chromium-review.googlesource.com/1186601Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#55355}
-
Simon Zünd authored
The CL was reverted because it broke some tests in ChromeOS. > [array] Move Array.p.sort to Torque and use TimSort instead of QuickSort > > This CL changes the sorting algorithm used in Array.p.sort from > QuickSort to TimSort (implemented in Torque). > > Detailed performance results can be found here: https://goo.gl/4E733J > > To save on code space, fast-paths are implemented as sets of > function pointers instead of specializing generics. > > R=cbruni@chromium.org, jgruber@chromium.org > > Bug: v8:7382, v8:7624 > Change-Id: I7cd4287e4562d84ab7c79c58ae30780630f976de > Reviewed-on: https://chromium-review.googlesource.com/1151199 > Commit-Queue: Simon Zünd <szuend@google.com> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Camillo Bruni <cbruni@chromium.org> > Cr-Commit-Position: refs/heads/master@{#55003} Bug: v8:7382, v8:7624 Change-Id: Ic7a3230f3708177774b0760f08b7659d83ec5505 Reviewed-on: https://chromium-review.googlesource.com/1184901 Commit-Queue: Simon Zünd <szuend@google.com> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#55325}
-
- 14 Aug, 2018 1 commit
-
-
Leszek Swirski authored
This reverts commit 5a389395. Reason for revert: Breaks some chromium tests. Not your fault, but it's blocking the roll so we have to fix those first -- then you can reland without changes: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20debug/21727 Original change's description: > [array] Move Array.p.sort to Torque and use TimSort instead of QuickSort > > This CL changes the sorting algorithm used in Array.p.sort from > QuickSort to TimSort (implemented in Torque). > > Detailed performance results can be found here: https://goo.gl/4E733J > > To save on code space, fast-paths are implemented as sets of > function pointers instead of specializing generics. > > R=cbruni@chromium.org, jgruber@chromium.org > > Bug: v8:7382, v8:7624 > Change-Id: I7cd4287e4562d84ab7c79c58ae30780630f976de > Reviewed-on: https://chromium-review.googlesource.com/1151199 > Commit-Queue: Simon Zünd <szuend@google.com> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Camillo Bruni <cbruni@chromium.org> > Cr-Commit-Position: refs/heads/master@{#55003} TBR=cbruni@chromium.org,jgruber@chromium.org,szuend@google.com # Not skipping CQ checks because original CL landed > 1 day ago. Bug: v8:7382, v8:7624 Change-Id: Id4002d8080648c418639d35e7b82487fa43f463d Reviewed-on: https://chromium-review.googlesource.com/1174231 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#55114}
-
- 09 Aug, 2018 1 commit
-
-
Simon Zünd authored
This CL changes the sorting algorithm used in Array.p.sort from QuickSort to TimSort (implemented in Torque). Detailed performance results can be found here: https://goo.gl/4E733J To save on code space, fast-paths are implemented as sets of function pointers instead of specializing generics. R=cbruni@chromium.org, jgruber@chromium.org Bug: v8:7382, v8:7624 Change-Id: I7cd4287e4562d84ab7c79c58ae30780630f976de Reviewed-on: https://chromium-review.googlesource.com/1151199 Commit-Queue: Simon Zünd <szuend@google.com> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#55003}
-