- 28 Mar, 2017 40 commits
-
-
kschimpf authored
Currently, V8 uses the same size counter to measure module sizes for both asm.js and WASM. This CL separates the counter into two separate counters, and then uses the appropriate counter when decoding. BUG=chromium:704922 R=mtrofin@chromium.org,bradnelson@chromium.org Review-Url: https://codereview.chromium.org/2777203005 Cr-Commit-Position: refs/heads/master@{#44211}
-
kschimpf authored
Currently, V* uses the same size counter to measure the maximum number of memory pages allocated by a module for both asm.js and WASM. This CL separates the counter into two separate counters, and then uses the appropriate counter when measuring. BUG=chromium:704922 R=mtrofin@chromium.org,bradnelson@chromium.org Review-Url: https://codereview.chromium.org/2783713002 Cr-Commit-Position: refs/heads/master@{#44210}
-
kozyatinskiy authored
Should be fixed. BUG=v8:6161 R=dgozman@chromium.org Review-Url: https://codereview.chromium.org/2779143002 Cr-Commit-Position: refs/heads/master@{#44209}
-
littledan authored
A couple bugs had led code in one Context to be able to lead to estimated memory usage in another Context, even in cases that should be easy to detect. - Ensure that the pointer to the next context is nulled out while recursing over the portion of the heap. It seems like there was previously some code to do this partway, but the nulling part was left out. - Skip including maps in the understanding of the Context estimated size, as the maps are shared between Contexts and may be reachable from other Contexts Review-Url: https://codereview.chromium.org/2780773002 Cr-Commit-Position: refs/heads/master@{#44208}
-
kschimpf authored
Currently, V8 uses the same counter to measue module decoding peak memory bytes for both asm.js and WASM. This CL separates the counter into two separate counters, and then uses the appropriate counter when decoding a module. BUG=chromium:704922 R=bbudge@chromium.org,bradnelson@chromium.org,mtrofin@chromium.org Review-Url: https://codereview.chromium.org/2778973003 Cr-Commit-Position: refs/heads/master@{#44207}
-
kozyatinskiy authored
Current implementation is unsafe if __proto__ getter is defined on Object.prototype. BUG=chromium:595206 R=dgozman@chromium.org Review-Url: https://codereview.chromium.org/2770263003 Cr-Commit-Position: refs/heads/master@{#44206}
-
kschimpf authored
Currently, V8 uses the same size counter to measure function byte sizes for both asm.js and WASM. This CL separates the counter into two separate counters, and then uses the appropriate counter when decoding. BUG=chromium:704922 R=bbudge@google.com,bradnelson@chromium.org Review-Url: https://codereview.chromium.org/2780783003 Cr-Commit-Position: refs/heads/master@{#44205}
-
kschimpf authored
Currently, V8 uses the same size counter to measure the minimum number of memory pages allocated by a module for both asm.js and WASM. This CL separates the counter into two separate counters, and then uses the appropriate counter when measuring. BUG=chromium:704922 R=mtrofin@chromium.org,bradnelson@chromium.org Review-Url: https://codereview.chromium.org/2781453004 Cr-Commit-Position: refs/heads/master@{#44204}
-
bradnelson authored
Fix a few items broken during review of scanner + parser: * Make the scanner retain stale newline state on a rewind (as otherwise it must be able to correctly rewind that too, though it doesn't need it). (Probably should revisit). * Change StashCode in the builder skip to the zero case, as it crashes for some reason (added TODO). Also fix: * Drop test based on constant expression evaluation in main parser * Support constant defined based on existing constant. * Type constants as signed. * Added a check that all used functions are defined eventually. * Zone allocate strings for simplicity (TODOs to refactor better). BUG=v8:6090 BUG=v8:4203 R=mstarzinger@chromium.org,marja@chromium.org,vogelheim@chromium.org Review-Url: https://codereview.chromium.org/2771183002 Cr-Original-Commit-Position: refs/heads/master@{#44200} Committed: https://chromium.googlesource.com/v8/v8/+/be0dbdd679b60c31d480d7635e579787a6a218df Review-Url: https://codereview.chromium.org/2771183002 Cr-Commit-Position: refs/heads/master@{#44203}
-
Jakob Kummerow authored
Change-Id: I0efbb837026908173739946353334ae7ebf62379 Reviewed-on: https://chromium-review.googlesource.com/461880Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#44202}
-
bradnelson authored
Revert of [wasm][asm.js] Fix and enable several asm.js tests with the new parser. (patchset #10 id:180001 of https://codereview.chromium.org/2771183002/ ) Reason for revert: Fails on gc-stress. Original issue's description: > [wasm][asm.js] Fix and enable several asm.js tests with the new parser. > > Fix a few items broken during review of scanner + parser: > * Make the scanner retain stale newline state on a rewind (as otherwise it must be able to correctly rewind that too, though it doesn't need it). (Probably should revisit). > * Change StashCode in the builder skip to the zero case, as it crashes for some reason (added TODO). > > Also fix: > * Drop test based on constant expression evaluation in main parser > * Support constant defined based on existing constant. > * Type constants as signed. > * Added a check that all used functions are defined eventually. > * Zone allocate strings for simplicity (TODOs to refactor better). > > BUG=v8:6090 > BUG=v8:4203 > R=mstarzinger@chromium.org,marja@chromium.org,vogelheim@chromium.org > > Review-Url: https://codereview.chromium.org/2771183002 > Cr-Commit-Position: refs/heads/master@{#44200} > Committed: https://chromium.googlesource.com/v8/v8/+/be0dbdd679b60c31d480d7635e579787a6a218df TBR=clemensh@chromium.org,bradnelson@google.com,marja@chromium.org,mstarzinger@chromium.org,vogelheim@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:6090 Review-Url: https://codereview.chromium.org/2782613002 Cr-Commit-Position: refs/heads/master@{#44201}
-
bradnelson authored
Fix a few items broken during review of scanner + parser: * Make the scanner retain stale newline state on a rewind (as otherwise it must be able to correctly rewind that too, though it doesn't need it). (Probably should revisit). * Change StashCode in the builder skip to the zero case, as it crashes for some reason (added TODO). Also fix: * Drop test based on constant expression evaluation in main parser * Support constant defined based on existing constant. * Type constants as signed. * Added a check that all used functions are defined eventually. * Zone allocate strings for simplicity (TODOs to refactor better). BUG=v8:6090 BUG=v8:4203 R=mstarzinger@chromium.org,marja@chromium.org,vogelheim@chromium.org Review-Url: https://codereview.chromium.org/2771183002 Cr-Commit-Position: refs/heads/master@{#44200}
-
Peter Marshall authored
Change-Id: I048b7d5229686cf64bed6ec31d118ae1928028a5 Reviewed-on: https://chromium-review.googlesource.com/461939Reviewed-by: Jochen Eisinger <jochen@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#44199}
-
Michael Starzinger authored
This extends the existing insertion of soft deopts during early lowering from loads to stores (both named and keyed). It now covers all property access operations. Next we will handle monomorphic type feedback when applicable. R=bmeurer@chromium.org Change-Id: I6138744682cdbdbdb7274851aa81fb075229c309 Reviewed-on: https://chromium-review.googlesource.com/459482 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#44198}
-
kschimpf authored
Currently, V8 uses the same counter to collect decoding time for both asm.js and WASM. This separates the function decoding counter into two separate counters, and then uses the appropriate counter when decoding a module. BUG=chromium:704922 R=bbudge@chromium.org,bradnelson@chromium.org Review-Url: https://codereview.chromium.org/2772363002 Cr-Commit-Position: refs/heads/master@{#44197}
-
Ross McIlroy authored
Don't put internalized parser handles in a DeferredHandleScope if we aren't going to compile concurrently since this has a performance cost. BUG=chromium:686658 Change-Id: Id89d197b863569346895583e6df79134e79a5d4b Reviewed-on: https://chromium-review.googlesource.com/461879Reviewed-by: Marja Hölttä <marja@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#44196}
-
Igor Sheludko authored
BUG=v8:6116 Change-Id: I1487165550e938200ce49a022222892752feccae Reviewed-on: https://chromium-review.googlesource.com/461819Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#44195}
-
jgruber authored
BUG=v8:5437 Review-Url: https://codereview.chromium.org/2776263003 Cr-Commit-Position: refs/heads/master@{#44194}
-
v8-autoroll authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/5dd7ff3..947f28d Rolling v8/third_party/catapult: https://chromium.googlesource.com/external/github.com/catapult-project/catapult/+log/d979a85..e044353 TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Change-Id: I902b94f5b225847b4bf1ac5a3bea807f4a62e37a Reviewed-on: https://chromium-review.googlesource.com/461959Reviewed-by: v8 autoroll <v8-autoroll@chromium.org> Commit-Queue: v8 autoroll <v8-autoroll@chromium.org> Cr-Commit-Position: refs/heads/master@{#44193}
-
Camillo Bruni authored
- support register expression for addresses, e.g.: $r15-1 - show whether addresses are in the minidump with "*" - show decoded Smis with dd - dd without arguments continues printing the next words Change-Id: I1a6a4f9f470c25eee7da1381014252e723ef5f7c Reviewed-on: https://chromium-review.googlesource.com/461900Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#44192}
-
Toon Verwaest authored
BUG= Change-Id: Ibadaef9ee4cb16afa01b782afc07a32bd39ad8aa Reviewed-on: https://chromium-review.googlesource.com/461140 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#44191}
-
jbroman authored
NOTRY=true Review-Url: https://codereview.chromium.org/2782463002 Cr-Commit-Position: refs/heads/master@{#44190}
-
Daniel Vogelheim authored
Introduce 'contextual keyword' tokens, which are parsed as identifiers but in some contexts are treated by the parser like proper keywords. These are usually keywords introduced by recent ECMAScript versions, which for reasons of backwards compatibility are still permissible as regular identifiers in most contexts. Current usage is to check for Token::IDENTIFIER and then do a string compare. With this change the initial scan will scan them as usual, but will then record the token as IDENTIFIER plus a secondary token with the 'contextual' value. BUG=v8:6902 Change-Id: I6ae390382998cf756a23720bd481cb9c0eb78a72 Reviewed-on: https://chromium-review.googlesource.com/459479 Commit-Queue: Daniel Vogelheim <vogelheim@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#44189}
-
Toon Verwaest authored
BUG= Change-Id: I5e60705764b8ea20b171981cdd44d57a928fa34d Reviewed-on: https://chromium-review.googlesource.com/461178Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#44188}
-
Michael Starzinger authored
This extends the existing insertion of soft deopts during early lowering from named loads to keyed loads as well (i.e. from just {JSLoadName} to {JSLoadProperty}). Stores will be handled in a follow-up change. R=bmeurer@chromium.org Change-Id: I6ad7d0a3561f9160e15e13c64ec5255b4f45e614 Reviewed-on: https://chromium-review.googlesource.com/459421Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#44187}
-
Igor Sheludko authored
BUG=v8:6116 Change-Id: I8e2587926f9e11f022624778fd5168799d20d2df Reviewed-on: https://chromium-review.googlesource.com/461158Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#44186}
-
Clemens Hammacher authored
We were not implementing the specified ToWebAssemblyValue coercion at all. This caused a failure on arm architectures. R=ahaas@chromium.org BUG=v8:5822 TEST=mjsunit/wasm/interpreter Change-Id: Ic77cfd13007d45308bafa285d517f3820a3b1c80 Reviewed-on: https://chromium-review.googlesource.com/461859 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#44185}
-
martyn.capewell authored
Implement ASSEMBLE_ATOMIC_LOAD/STORE_INTEGER using acquire/release instructions, to match the existing ASSEMBLE_ATOMIC_EXCHANGE_INTEGER macro. BUG=v8:6097 Review-Url: https://codereview.chromium.org/2760963002 Cr-Commit-Position: refs/heads/master@{#44184}
-
bmeurer authored
TurboFan didn't support transitioning stores that also need to grow the properties backing store so far. This CL adds support for re-allocating the properties backing store in-place, so these stores can participate properly in various optimizations like escape analysis and allocation folding. R=ishell@chromium.org BUG=v8:5267 Review-Url: https://codereview.chromium.org/2778133003 Cr-Commit-Position: refs/heads/master@{#44183}
-
jgruber authored
This implements support for named captures in RegExp.prototype[@@replace] for when the replaceValue is not callable. Named captures can be referenced from replacement strings by using the "$<name>" syntax. A couple of examples: let re = /(?<fst>.)(?<snd>.)/u; "abcd".replace(re, "$<snd>$<fst>") // "bacd" "abcd".replace(re, "$2$1") // "bacd" (numbered refs work as always) "abcd".replace(re, "$<snd") // SyntaxError (unterminated named ref) "abcd".replace(re, "$<42$1>") // "cd" (invalid name) "abcd".replace(re, "$<thd>") // "cd" (non-existent name) "abcd".replace(/(?<fst>.)|(?<snd>.)/u, "$<snd>") // "cd" (non-matched capture) Support is currently behind the --harmony-regexp-named-captures flag. BUG=v8:5437 Review-Url: https://codereview.chromium.org/2775303002 Cr-Original-Commit-Position: refs/heads/master@{#44171} Committed: https://chromium.googlesource.com/v8/v8/+/17f13863b64b25eccf565e0aa9c4c441f0562b84 Review-Url: https://codereview.chromium.org/2775303002 Cr-Commit-Position: refs/heads/master@{#44182}
-
Andreas Haas authored
In a recent CL (https://codereview.chromium.org/2738683003) I changed the generation of call instructions on arm to emit a constant pool if necessary. However it can happen now that a call is generated within a PredictableSizeScope, which causes a crash if a constant pool is actually emitted, which naturally changes the size of the generated code. With this CL I add a flag to the generation of a call where we can state explicitly that for particular calls, i.e. those calls within a PredictableSizeScope, we do not want to emit a constant pool. BUG=chromium:704528 Change-Id: I7740d5440d007a2a5457c524aa8eec1b74944d57 Reviewed-on: https://chromium-review.googlesource.com/459602Reviewed-by: Jacob Bramley <jacob.bramley@arm.com> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#44181}
-
jgruber authored
Revert of [regexp] Named capture support for string replacements (patchset #5 id:80001 of https://codereview.chromium.org/2775303002/ ) Reason for revert: Invalid DCHECKs for non-matched groups. Original issue's description: > [regexp] Named capture support for string replacements > > This implements support for named captures in > RegExp.prototype[@@replace] for when the replaceValue is not callable. > > Named captures can be referenced from replacement strings by using the > "$<name>" syntax. A couple of examples: > > let re = /(?<fst>.)(?<snd>.)/u; > "abcd".replace(re, "$<snd>$<fst>") // "bacd" > "abcd".replace(re, "$2$1") // "bacd" (numbered refs work as always) > "abcd".replace(re, "$<snd") // SyntaxError (unterminated named ref) > "abcd".replace(re, "$<42$1>") // "cd" (invalid name) > "abcd".replace(re, "$<thd>") // "cd" (non-existent name) > "abcd".replace(/(?<fst>.)|(?<snd>.)/u, "$<snd>") // "cd" (non-matched capture) > > Support is currently behind the --harmony-regexp-named-captures flag. > > BUG=v8:5437 > > Review-Url: https://codereview.chromium.org/2775303002 > Cr-Commit-Position: refs/heads/master@{#44171} > Committed: https://chromium.googlesource.com/v8/v8/+/17f13863b64b25eccf565e0aa9c4c441f0562b84 TBR=yangguo@chromium.org,littledan@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5437 Review-Url: https://codereview.chromium.org/2776293003 Cr-Commit-Position: refs/heads/master@{#44180}
-
Andreas Haas authored
This CL removes code which is based on the assumption that if WebAssembly code says that memory accesses are aligned, that they are really aligned. On arm, memory accesses crashed when this assumption was violated. Most likely this CL will cause a performance regression on arm. At the moment we plan to fix this regression eventually by using arm NEON instructions in V8. R=titzer@chromium.org Change-Id: Ibb60fa1ef0173c13af813a3cb7eb26bfa2a847c2 Reviewed-on: https://chromium-review.googlesource.com/451297Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#44179}
-
Wiktor Garbacz authored
A step towards removing isolate from ParseInfo. Removing isolate from ParseInfo will make it easier to create and execute parse tasks on background threads. BUG=v8:6093 Change-Id: Ic189610a943251b6b0cbd316afbf422c0da7a4cd Reviewed-on: https://chromium-review.googlesource.com/458007 Commit-Queue: Wiktor Garbacz <wiktorg@google.com> Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#44178}
-
Marja Hölttä authored
As far as I can see, we have had this bug as long as destructuring assignments have been there (i.e., this is not regression). The problem was that Parser::DoParseFunction parsed the arrow function parameters but didn't rewrite the destructuring assignments in them. BUG=chromium:704811 Change-Id: I0b1424e7d5103eda6efd51b403fe81a4ee235e01 Reviewed-on: https://chromium-review.googlesource.com/459618 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#44177}
-
Wiktor Garbacz authored
A step towards removing isolate from ParseInfo. Removing isolate from ParseInfo will make it easier to create and execute parse tasks on background threads. BUG=v8:6093 Change-Id: I0a3546618d01b9232014da94cf8d0f72427a0d1d Reviewed-on: https://chromium-review.googlesource.com/458006 Commit-Queue: Wiktor Garbacz <wiktorg@google.com> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#44176}
-
Clemens Hammacher authored
We were notifying the debug event listeners after every 1000 steps. This CL fixes this to only notify them if we actually paused because of a hit breakpoint. R=ahaas@chromium.org BUG=v8:5822 Change-Id: I00e36b89307c7e761ceb24ccdb3157056cfb8178 Reviewed-on: https://chromium-review.googlesource.com/459480Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#44175}
-
Michael Starzinger authored
This removes the static helper which is by now only used by a single runtime function. In general the {Runtime} class no longer acts as a grab-bag for various helper functions. R=petermarshall@chromium.org Change-Id: I9c2141bbd88db27ae1f95fe004bcc8a7c5506208 Reviewed-on: https://chromium-review.googlesource.com/459597 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#44174}
-
Wiktor Garbacz authored
A step towards removing isolate from ParseInfo. Removing isolate from ParseInfo will make it easier to create and execute parse tasks on background threads. BUG=v8:6093 Change-Id: Ief4eb3c9873026a93338d5556985f31c9abe17e6 Reviewed-on: https://chromium-review.googlesource.com/458005 Commit-Queue: Wiktor Garbacz <wiktorg@google.com> Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Daniel Clifford <danno@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org> Cr-Commit-Position: refs/heads/master@{#44173}
-
Eric Holk authored
BUG= v8:6132 NOTRY=true Change-Id: I47beef4f90b37c259252b86a856f5bc075979084 Reviewed-on: https://chromium-review.googlesource.com/461299 Commit-Queue: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#44172}
-