- 20 Feb, 2019 1 commit
-
-
Sathya Gunasekaran authored
Throw error when accessing private field on super. Bug: v8:8872 Change-Id: Iad383890fafbdccdd6b6b75a8f9eb32c9d6f5044 Reviewed-on: https://chromium-review.googlesource.com/c/1478219Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#59746}
-
- 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 1 commit
-
-
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 2 commits
-
-
Z Duong Nguyen-Huu authored
Adding implementation for step 9 which is missing for spec: https://tc39.github.io/ecma262/#sec-proxy-object-internal-methods-and-internal-slots-ownpropertykeys Update bytecode_expectations as well. Bug v8:6776 Change-Id: Id191f9604e2dc08e71cbcff8ebd5707c233af193 Reviewed-on: https://chromium-review.googlesource.com/c/1419779Reviewed-by: Camillo Bruni <cbruni@chromium.org> Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Cr-Commit-Position: refs/heads/master@{#59180}
-
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}
-
- 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}
-
- 16 Jan, 2019 1 commit
-
-
Ben L. Titzer authored
The table.copy bytecode copies a range of table entries in a similar way to memcopy. This CL implements the behavior in a runtime call that calls into the wasm engine. R=mstarzinger@chromium.org,binji@chromium.org BUG=v8:7747 Change-Id: I420451202b1b78ea92cbd10387a644ed57e111c8 Reviewed-on: https://chromium-review.googlesource.com/c/1414919 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#58858}
-
- 15 Jan, 2019 1 commit
-
-
Ben L. Titzer authored
The table.drop bytecode "drops" the backing storage for an element initializer. In the V8 implementation, this is a nop, other than updating a per-instance boolean array so that two drops of the same segment or a drop of an active segment will trap. This is implemented with inline code in TurboFan in order to be symmetric to memory.drop, but could as easily be a runtime call to be supported in Liftoff. R=mstarzinger@chromium.org CC=binji@chromium.org BUG=v8:7747 Change-Id: Ic017398eaa764dd3a9ff19523453ff7142c9abf6 Reviewed-on: https://chromium-review.googlesource.com/c/1408996Reviewed-by: Ben Smith <binji@chromium.org> Commit-Queue: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#58817}
-
- 08 Jan, 2019 1 commit
-
-
Maxim Mazurok authored
- "constuctor" -> "constructor" - "dependendencies" -> "dependencies" - "develpers" -> "developers" - ["nonexistant"][1] -> ["nonexistent"][2] - "reponsible" -> "responsible" [1]: https://en.wiktionary.org/wiki/nonexistant [2]: https://en.wiktionary.org/wiki/nonexistent Change-Id: I8bb482d03c391bd0d37afd5d616229fa50a4ab77 Reviewed-on: https://chromium-review.googlesource.com/c/1390203 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#58610}
-
- 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}
-
- 17 Dec, 2018 1 commit
-
-
Marja Hölttä authored
New API is here: https://github.com/tc39/proposal-weakrefs/issues/55 The WeakCell parts stay in the old API, resulting in temporary code duplication in some parts. Those parts will go away once the WeakCell-related parts are migrated to the new API (but the spec needs some work first). BUG=v8:8179 Change-Id: I81ca824a14d830e3c5fa515d5ad7e5f78c10e19d Reviewed-on: https://chromium-review.googlesource.com/c/1378171 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#58264}
-
- 12 Dec, 2018 1 commit
-
-
Ben Smith authored
`memory.init` copies bytes from a passive data segment to linear memory. `memory.drop` is an instruction that informs the wasm VM that the instance no longer needs access to the passive data segment. Information about the passive data segments, including their contents, length, and whether they are dropped, is stored in the `WasmInstanceObject` as primitive arrays. Bug: v8:7747 Change-Id: I1515c8868c9be227743456a539126c15280b5365 Reviewed-on: https://chromium-review.googlesource.com/c/1370691Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Ben Smith <binji@chromium.org> Cr-Commit-Position: refs/heads/master@{#58196}
-
- 11 Dec, 2018 1 commit
-
-
Ben L. Titzer authored
This is purely a renaming change. The ES spec uses the term 'detach' for the process of removing the backing store of a typed array, while V8 uses the historical term 'neuter'. Update our internal implementation, including method names and flag names, to match the spec. Note that some error messages still use the term 'neuter' since error messages are asserted by some embedder tests, like layout tests. R=bmeurer@chromium.org, yangguo@chromium.org, mstarzinger@chromium.org, mlippautz@chromium.org BUG=chromium:913887 Change-Id: I62f1c3ac9ae67ba01d612a5221afa3d92deae272 Reviewed-on: https://chromium-review.googlesource.com/c/1370036 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#58149}
-
- 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}
-
- 30 Nov, 2018 1 commit
-
-
Peter Marshall authored
This reverts commit 4e3a17d0. Reason for revert: Web compact issues, see crbug.com/910252 Original change's description: > [runtime] Reduce spread/apply call max arguments > > Bug: chromium:906043 > Change-Id: I308b29af0644c318d73926b27e65a94913c760c7 > Reviewed-on: https://chromium-review.googlesource.com/c/1346115 > Commit-Queue: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57731} TBR=jarin@chromium.org,jgruber@chromium.org,petermarshall@chromium.org,bmeurer@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: chromium:906043 Change-Id: I240c1b55c10fd3e108e3c49f93ce1d9ca9c61780 Reviewed-on: https://chromium-review.googlesource.com/c/1356502Reviewed-by: Peter Marshall <petermarshall@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#57956}
-
- 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}
-
- 22 Nov, 2018 1 commit
-
-
Peter Marshall authored
Bug: chromium:906043 Change-Id: I308b29af0644c318d73926b27e65a94913c760c7 Reviewed-on: https://chromium-review.googlesource.com/c/1346115 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#57731}
-
- 19 Nov, 2018 1 commit
-
-
Joyee Cheung authored
This patch implements the parsing of private methods in the stage 3 proposal https://tc39.github.io/proposal-private-methods - Adds a --harmony-private-methods flag - Parse the private methods/accessors The design doc is in https://docs.google.com/document/d/1T-Ql6HOIH2U_8YjWkwK2rTfywwb7b3Qe8d3jkz72KwA/edit?usp=sharing This patch only makes sure the syntax parses, doesn't implement the semantics. Bug: v8:8330 Change-Id: I9007b3b3dd6a0df35db7bb14f38f1a38d52bc663 Reviewed-on: https://chromium-review.googlesource.com/c/1329706 Commit-Queue: Joyee Cheung <joyee@igalia.com> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#57615}
-
- 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
-
-
Leszek Swirski authored
Bug: chromium:902610 Change-Id: I4675e3089a09ee75aa81ba2958f30a17621a537e Reviewed-on: https://chromium-review.googlesource.com/c/1326029Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#57358}
-
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}
-
- 05 Nov, 2018 1 commit
-
-
Marja Hölttä authored
- Add the WeakRef class and its deref() function. - Add WeakFactory.prototype.makeRef - Implement the "keep during job" behavior for WeakRef constructor and deref(). - Here we keep the targets alive longer than until the end of the job (microtask), contradicting the spec. However, this is probably the indended behavior, see https://github.com/tc39/proposal-weakrefs/issues/39 . BUG=v8:8179 Change-Id: I41990d41ac1799e34f675d8431b9a7aa7ed3d48d Reviewed-on: https://chromium-review.googlesource.com/c/1306435 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#57242}
-
- 18 Oct, 2018 1 commit
-
-
Frank Tang authored
Design doc https://goo.gl/fgc2Cp Bug: v8:6891 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I8bc5ea3137fd1b66213403ae9ea3461f40efc977 Reviewed-on: https://chromium-review.googlesource.com/c/1257923 Commit-Queue: Frank Tang <ftang@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#56757}
-
- 17 Oct, 2018 1 commit
-
-
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
-
-
Jakob Kummerow authored
The primary purpose of this is to untangle a circular dependency objects.h -> handles.h -> objects.h. Most compilation units only need message-template.h, without the rest of messages.h. Bonus: change the enum to an enum class for improved type safety. Bug: v8:3770 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I8102c55197a450811de2588a68a08e7f99ea6b9e Reviewed-on: https://chromium-review.googlesource.com/c/1272193 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#56583}
-
- 04 Oct, 2018 1 commit
-
-
Benedikt Meurer authored
This introduces a new flag --async-stack-traces, which enables zero-cost async stack traces. This enriches the non-standard Error.stack property with async stack frames computed from walking up the promise chains and collecting all the await suspension points along the way. In Error.stack these async frames are marked with "async" to make it possible to distinguish them from regular frames, for example: ``` Error: Some error message at bar (<anonymous>) at async foo (<anonymous>) ``` It's zero-cost because no additional information is collected during the execution of the program, but only the information already present in the promise chains is used to reconstruct an approximation of the async stack in case of an exception. But this approximation is limited to suspension points at await's in async functions. This depends on a recent ECMAScript specification change, flagged behind --harmony-await-optimization and implied the --async-stack-traces flag. Without this change there's no way to get from the outer promise of an async function to the rest of the promise chain, since the link is broken by the indirection introduced by await. For async functions the special outer promise, named .promise in the Parser desugaring, is now forcible allocated to stack slot 0 during scope resolution, to make it accessible to the stack frame construction logic. Note that this first prototype doesn't yet work fully support async generators and might have other limitations. Bug: v8:7522 Ref: nodejs/node#11865 Change-Id: I0cc8e3cdfe45dab56d3d506be2d25907409b01a9 Design-Document: http://bit.ly/v8-zero-cost-async-stack-traces Reviewed-on: https://chromium-review.googlesource.com/c/1256762 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#56363}
-
- 19 Sep, 2018 1 commit
-
-
Florian Sattler authored
Fixing clang-tidy warning. Bug: v8:8015 Change-Id: Ibc5a81aea25f797e90db891e90b2977f27e13990 Reviewed-on: https://chromium-review.googlesource.com/1224410 Commit-Queue: Florian Sattler <sattlerf@google.com> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#56015}
-
- 18 Sep, 2018 1 commit
-
-
Florian Sattler authored
Fixing clang-tidy warning. Bug: v8:8015 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I2204967cff3e50d967a9c6f4685f0df5a6ba84af Reviewed-on: https://chromium-review.googlesource.com/1226793Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Florian Sattler <sattlerf@google.com> Cr-Commit-Position: refs/heads/master@{#55976}
-
- 05 Sep, 2018 2 commits
-
-
Deepti Gandluri authored
BUG: v8:6532, chromium:874809 Change-Id: I55c00e8563741908cf0daf263152ce927ae18e7c Reviewed-on: https://chromium-review.googlesource.com/1205812 Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Reviewed-by: Ben Smith <binji@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#55666}
-
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}
-
- 08 Aug, 2018 1 commit
-
-
Frank Tang authored
Spec: http://tc39.github.io/proposal-intl-list-format/ Design Doc: go/add-intl.listformat-to-v8 Test: intl/list-format/* R=gsathya@chromium.org, mvstanton@chromium.org Bug: v8:7871 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I820c205ca842c228ffe37f7e1648667f30f80bd8 Reviewed-on: https://chromium-review.googlesource.com/1126683 Commit-Queue: Frank Tang <ftang@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#54991}
-
- 02 Aug, 2018 1 commit
-
-
Jungshik Shin authored
Etc/GMT* time zones are listed in the INAN time zone database and they should be accepted as valid. This CL will be followed by a CL for moving time zone name checks to C++ that will accept all the time zone names (e.g. EST5EDT, Hongkong, ROK, Zulu). Bug: chromium:364374 Test: intl/date-format/timezone.js Test: mjsunit/regress/regress-crbug-364374 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: If0e5327d7e980504a9cb3d2b641e907ebce61180 Reviewed-on: https://chromium-review.googlesource.com/1159546 Commit-Queue: Jungshik Shin <jshin@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#54879}
-
- 25 Jul, 2018 1 commit
-
-
Sathya Gunasekaran authored
- Return empty handles instead of exceptions. - Handlify functions instead of returning raw pointers. Bug: v8:5751 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I28b018e5bdcaa375748eb04e9a6fed8cf64a5b05 Reviewed-on: https://chromium-review.googlesource.com/1148301 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#54675}
-
- 18 Jul, 2018 3 commits
-
-
Yang Guo authored
This is a reland of 8d4572a2 Original change's description: > [builtins] Add %IsTraceCategoryEnabled and %Trace builtins > > Adds the builtin Trace and IsTraceCategoryEnabled functions > exposed via extra bindings. These are intended to use by > embedders to allow basic trace event support from JavaScript. > > ```js > isTraceCategoryEnabled('v8.some-category') > > trace('e'.charCodeAt(0), 'v8.some-category', > 'Foo', 0, { abc: 'xyz'}) > ``` > > Bug: v8:7851 > Change-Id: I7bfb9bb059efdf87d92a56a0aae326650730c250 > Reviewed-on: https://chromium-review.googlesource.com/1103294 > Commit-Queue: Yang Guo <yangguo@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Fadi Meawad <fmeawad@chromium.org> > Reviewed-by: Camillo Bruni <cbruni@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#54121} TBR=cbruni@chromium.org Bug: v8:7851 Change-Id: Id063754b2834b3b6a2b2654e76e8637bcd6aa5f8 Reviewed-on: https://chromium-review.googlesource.com/1137071 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#54532}
-
Frank Tang authored
Spec: http://tc39.github.io/proposal-intl-relative-time/ Design Doc: go/add-intl.relativetimeformat-to-v8 Test: test262/intl402/RelativeTimeFormat/*, intl/relative-time-format/* R=cira@chromium.org, gsathya@chromium.org Bug: v8:7869 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: Ied95d601cf707db5d555f9d963b9b1f206e37331 Reviewed-on: https://chromium-review.googlesource.com/1124728Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Frank Tang <ftang@chromium.org> Cr-Commit-Position: refs/heads/master@{#54520}
-
Dan Elphick authored
Strictly speaking there are some left in api.cc, but they are in deprecated functions with non-deprecated alternatives. Apart from changes made using tooling, this also modifies FieldType::AsClass to return Map* rather than Handle<Map> and converts its call sites to create the Handle when they need it - currently several sites immediately dereference the Handle. Also marks WasmDebugInfo as NeverReadOnlySpaceObject so GetIsolate and GetHeap remain usable. Bug: v8:7786 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I7ea5048f97f140c757f651712b8c33a5c7e0ebc1 Reviewed-on: https://chromium-review.googlesource.com/1140302Reviewed-by: Adam Klein <adamk@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#54513}
-