- 11 Jan, 2021 19 commits
-
-
Camillo Bruni authored
For simplicity this CL includes a first crude conversion of tickprocessor.mjs. Later CLs will introduce more ES6 syntax and clean up more code. Bug: v8:10667 Change-Id: Ief2ca623f5562114fb976a95d156e2ab3f961114 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2611252Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#72013}
-
Santiago Aboy Solanes authored
Bug: v8:7790 Change-Id: I44469e08131ad6a5f95a465cf2d461da0785221e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2616218 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#72012}
-
Michael Achenbach authored
Bug: chromium:1164276 Change-Id: I5c257d407ed8c14037555cfcfd1550923bb79af2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2621079 Auto-Submit: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Liviu Rau <liviurau@chromium.org> Reviewed-by: Liviu Rau <liviurau@chromium.org> Cr-Commit-Position: refs/heads/master@{#72011}
-
Santiago Aboy Solanes authored
Bug: v8:7790 Change-Id: I2deb462c3467f7239d55b0f295feed1de5ca1c2f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2616198 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#72010}
-
Benedikt Meurer authored
This change unifies the locals, stack, and globals objects exposed for WebAssembly frames via the Scope view and via DebugEvaluate to use the same underlying objects (implemented via interceptors). This also means that for locals and globals we now consistently expose names prefixed by a dollar symbol everywhere. Drive-by-fix: Move the debug::ScopeIterator implementation for WasmFrame into debug-wasm-support.cc, so WebAssembly scope details are all found in one place instead of scattered around the code. Drive-by-cleanup: Rename GetJSDebugProxy to GetWasmDebugProxy for consistency. GetJSDebugProxy is a bit misleading, since the debug proxy is not about JavaScript, but just exposed to JavaScript. Doc: http://bit.ly/devtools-wasm-entities Bug: chromium:1159307, chromium:1127914, chromium:1162229 Change-Id: If932bd06bbce72542823f63dac1bd976ab33937a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2615348 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#72009}
-
Camillo Bruni authored
1) Since we collect a stack trace for unhandled promises we might end up invoking code right before the shutdown phase. 2) Any dynamic module import that happens in this phase will enqueue a microtask job with a freshly allocated DynamicImportData object. It only gets deleted when fully emptying the microtask queue. 3) Since we're exiting we might end up with a non-empty microtask queue. 4) LSAN detects this as a leak on shutdown. To make LSAN happy again d8 now keeps track of DynamicImportData to free them on destructing PerIsolateData. Bug: chromium:1158223 Change-Id: I9bb21f71bffc75a0d5f4ffc5bf0727c7b4cbab88 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2599755 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/master@{#72008}
-
Benedikt Meurer authored
Previously the implementation of the scope iterator objects and the debug proxy lived in src/wasm, and they are now being moved to src/debug, to better align with the JavaScript debugging interface, which also lives in src/debug. Bug: chromium:1162229, chromium:1071432 Change-Id: I7f89ced88a1231ad6a923be6e85a93f1876a2024 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2621084Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#72007}
-
Santiago Aboy Solanes authored
We shouldn't be creating those anymore since they are not thread-safe. Bug: v8:7790 Change-Id: I4546d995fa32eb076c8dfe9d95301fad719c9e07 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2615347Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#72006}
-
Santiago Aboy Solanes authored
ToNumber was already returning base::Optional but it still needed to be updated for the internal external uncached string case. As a note, both IsExternal and IsSeqString do not need to be updated since they only look at the map. Bug: v8:7790 Change-Id: Icb5ba7f40982c01cada2a9c2b96b824edce70d44 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2615422Reviewed-by: Georg Neis <neis@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#72005}
-
Dan Elphick authored
V8_USE_PERFETTO appears in used in the include directory so should be in v8_header_features rather than features. Moving it means that all users of the v8 headers will automatically get the define without having to define it themselves. Bug: chromium:1006541 Change-Id: I7eb67787fb42499d29c98a76a19a4ad8c04f7aa7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2621083 Commit-Queue: Dan Elphick <delphick@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Auto-Submit: Dan Elphick <delphick@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#72004}
-
Paolo Severini authored
Change-Id: I2c1dfb7fbcf9a23d9e156dc3918fb88140885195 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2614721Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Paolo Severini <paolosev@microsoft.com> Cr-Commit-Position: refs/heads/master@{#72003}
-
Sathya Gunasekaran authored
There's no need for the force_instantiate argument as it's not used by any of the callers. Bug: v8:11284 Change-Id: I133ac55b1da7b247b7d4b601372d2b2f3fffe36a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2608204 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#72002}
-
Maya Lekova authored
This CL disables the fallback to the experimental breadth-first regexp engine which was enabled in 1e1f9ffc. Bug: chromium:1157044 Change-Id: I669b18eddc15ea49aa58192102e719ae7f0364fe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2593250Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Stanton <mvstanton@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Auto-Submit: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#72001}
-
Eric Leese authored
New internal properties expose the byte length of an ArrayBuffer as well as the pointer to the backing store, which will serve as a unique ID to show when SharedArrayBuffers in different workers are the same buffer. Bug: chromium:1163800 Change-Id: I49930765cb38f75ba5c6cee5a0a6827f4fec42d5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2618242 Commit-Queue: Eric Leese <leese@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#72000}
-
Mythri A authored
When creating a new closure, we check feedback vector for any optimized code and install it on the newly created closure. We evict the optimized code from the feedback vector if it is marked for deoptimization. We used to evict the code before creating the new closure. However, creating a new closure could cause allocation failures and hence trigger a GC. This could mark optimized code on feedback vector for deoptimization if any weak objects held by optimized code are GC'ed. This cl delays the eviction unitl after the closure was created. Bug: v8:1163184 Change-Id: I217279e4a51f75b87bb7ae5a00fd1cf57805e3c8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2613034 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#71999}
-
Manos Koukoutos authored
Changes: - Add two additional PopTypeError overloads which take a C++/C-style string as argument over a ValueType. - Change type errors in decoding to use PopTypeError. This improves consistency of error formatting as well as code readability. - Improve some immediate argument errors. - Adapt decoding unit tests. Change-Id: Ifd54712965049a80692dbc3fde1ef489596e8662 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2614059 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71998}
-
Yang Guo authored
R=szuend@chromium.org Change-Id: I8d7621265863232376c9cda782e847138e4ffdd7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2609417Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Simon Zünd <szuend@chromium.org> Auto-Submit: Yang Guo <yangguo@chromium.org> Commit-Queue: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#71997}
-
Zhi An Ng authored
This allows us to reuse this optimized code sequence in Liftoff. This is similar to the x64 implementation, except that the macro-assembler function takes an additional scratch register. Change-Id: Ieaa5899cd1be65abee1c6e0c0908a357777afcd9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2610510Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Bill Budge <bbudge@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#71996}
-
v8-ci-autoroll-builder authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/06eb186..d1a7463 TBR=machenbach@chromium.org,tmrts@chromium.org,v8-waterfall-sheriff@grotations.appspotmail.com Change-Id: I10c46e6693d0c345d46739d54ecfbfd9d0dbda83 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2620594Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com> Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#71995}
-
- 10 Jan, 2021 1 commit
-
-
v8-ci-autoroll-builder authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/9bc4494..06eb186 Rolling v8/third_party/aemu-linux-x64: luM2HIHgfBKxr1C7UPo8RdQPAvyLNd74T9rYfhWFOC8C..xAHa1IXmKteChkPvba9ezjSnKL7IyDePQRzWVUEAx9UC Rolling v8/third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools/+log/0e4e5ae..c1aa4ec TBR=machenbach@chromium.org,tmrts@chromium.org,v8-waterfall-sheriff@grotations.appspotmail.com Change-Id: I9d36f250bc63e1d0600ff39d0fd07299cf33851d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2619965Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com> Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#71994}
-
- 09 Jan, 2021 5 commits
-
-
Manos Koukoutos authored
Invoking Goto in graph-builder-interface from inside a 'let' can cause the number of locals between source and target ssa environment to be different. This CL addresses this bug and adds a few unit tests. Unfortunately, after this change we have to resort to always using copy-constructors for SsaEnv, which might cause slowdown in decoding. Bug: v8:9495 Change-Id: Idf5ace6c7563eff9d774d402f3a81e77959556ef Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2614062Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/master@{#71993}
-
Liu Yu authored
This CL just allows the compilation to pass. Port 673be63e Change-Id: I5d66ba6b353f6f94d22e506ff42ce81859ec876d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2619004 Auto-Submit: Liu yu <liuyu@loongson.cn> Reviewed-by: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn> Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn> Cr-Commit-Position: refs/heads/master@{#71992}
-
Milad Fa authored
Bug: v8:11086 Change-Id: Ic59e270282b5b7f3d2f8e8b46586964c69e4447a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2618289Reviewed-by: Junliang Yan <junyan@redhat.com> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/master@{#71991}
-
v8-ci-autoroll-builder authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/3480342..9bc4494 Rolling v8/third_party/aemu-linux-x64: e-bgBYXeOkMw5xrqjCgQDp16bMPZeKKmilHzC-t2-1QC..luM2HIHgfBKxr1C7UPo8RdQPAvyLNd74T9rYfhWFOC8C Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/d9d7213..e174329 Rolling v8/third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools/+log/4c392af..0e4e5ae TBR=machenbach@chromium.org,tmrts@chromium.org,v8-waterfall-sheriff@grotations.appspotmail.com Change-Id: I68df6308e99fc5495765cfcf56a414b81217f1e7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2619278Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com> Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#71990}
-
Sathya Gunasekaran authored
This reverts commit 8aa6b15f. Reason for revert: broke TSAN https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20TSAN%20-%20stress-incremental-marking/1497/overview Original change's description: > Disable bytecode flushing once we toggle coverage mode. > > Changing coverage mode generated different bytecode in some cases. > Hence it is not safe to flush bytecode once we toggle coverage mode. > > Bug: chromium:1147917 > Change-Id: I9e640aeaec664d3d4a4aaedf809c568e9ad924fc > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2615020 > Commit-Queue: Mythri Alle <mythria@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#71985} TBR=rmcilroy@chromium.org,mythria@chromium.org Change-Id: Id4c95da337e291437b7856e2fe7004e1e6405515 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:1147917 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2619402Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#71989}
-
- 08 Jan, 2021 15 commits
-
-
Georgia Kouveli authored
In a couple of places we cast between uintptr_t and uint64_t with a reinterpret_cast. While this is correct when these types are aliased to the same type, if they are defined to be different integral types (while still of the same size), reinterpet_cast won't work. Change-Id: I6e935c6c263d8df16f88659ac285faeb5e073add Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2614678Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com> Cr-Commit-Position: refs/heads/master@{#71988}
-
Seth Brenith authored
I made some temporary changes in BytecodeArrayWriter to log counts of how often each pair of bytecodes is adjacent. In data I collected on a Facebook page with those changes enabled, I noticed that the following bytecodes were commonly followed by Star, but do not appear in IsStarLookahead. LdaImmutableCurrentContextSlot: 4.4% of all instructions, 66% chance to be followed by Star CreateClosure: 3.9% of all instructions, 57% chance to be followed by Star LdaImmutableContextSlot: 1.7% of all instructions, 95% chance to be followed by Star CreateObjectLiteral: 1.4% of all instructions, 92% chance to be followed by Star CreateArrayLiteral: 1.4% of all instructions, 99% chance to be followed by Star ThrowReferenceErrorIfHole: 0.7% of all instructions, 100% chance to be followed by Star GetTemplateObject: 0.6% of all instructions, 100% chance to be followed by Star CreateEmptyArrayLiteral: 0.4% of all instructions, 87% chance to be followed by Star CreateEmptyObjectLiteral: 0.2% of all instructions, 79% chance to be followed by Star I cross-referenced this list with data from google.com and youtube.com (the top two sites according to Alexa), and found that CreateClosure and CreateEmpty*Literal are not likely followed by Star on those sites. Without those three, I suggest that the following bytecode handlers would likely benefit from Star lookahead: LdaImmutableCurrentContextSlot LdaImmutableContextSlot CreateObjectLiteral CreateArrayLiteral ThrowReferenceErrorIfHole GetTemplateObject I also ran Octane with --noopt and got the following results. Name Median change (95% CI) U test result ----------------- ------------------------ ------------------- Richards +1.02% to +3.28% improved p=1.8e-05 DeltaBlue -1.47% to +0.12% regressed p=0.05 Crypto -1.11% to +0.93% inconclusive RayTrace -1.10% to +0.48% inconclusive EarleyBoyer -0.25% to +1.29% inconclusive RegExp -1.46% to +0.08% inconclusive Splay -1.10% to +0.03% inconclusive SplayLatency +0.13% to +0.92% improved p=5.8e-05 NavierStokes -0.22% to +1.24% inconclusive PdfJS -0.69% to +1.04% inconclusive Mandreel -0.66% to +0.66% inconclusive MandreelLatency +0.32% to +1.77% improved p=0.00024 Gameboy -1.13% to +0.38% inconclusive CodeLoad -0.27% to +0.43% inconclusive Box2D -0.53% to +0.82% inconclusive zlib -0.19% to +0.19% inconclusive Typescript -0.23% to +0.59% inconclusive Score (version 9) -0.18% to +0.68% inconclusive I'm somewhat puzzled by the DeltaBlue regression, since DeltaBlue agrees that all of the selected bytecodes are likely to precede Star, but overall I think this change is more benefit than harm. Change-Id: Ib9b4033f3cda273e99c9f0252d0055e203921916 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2615946Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Cr-Commit-Position: refs/heads/master@{#71987}
-
Milad Fa authored
Port 5af79398 Original Commit Message: Prototype load lane instructions on Liftoff, only for x64. R=zhin@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com BUG= LOG=N Change-Id: If9429791139d08a3dd7548220b4eb28e99d6fc7e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2618241Reviewed-by: Junliang Yan <junyan@redhat.com> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/master@{#71986}
-
Mythri A authored
Changing coverage mode generated different bytecode in some cases. Hence it is not safe to flush bytecode once we toggle coverage mode. Bug: chromium:1147917 Change-Id: I9e640aeaec664d3d4a4aaedf809c568e9ad924fc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2615020 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#71985}
-
Jakob Kummerow authored
This is a reland of a3ce2f6d (No changes; was reverted because a dependency was reverted.) Original change's description: > [wasm-gc] Liftoff support part 5: i31 > > This implements support for i31.get_s and i31.get_u. > > Bug: v8:7748 > Change-Id: Icbfddbc2ff46b4eb6bf3edf7b3a794f9797361d4 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2595309 > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#71808} Bug: v8:7748 Change-Id: Id8e66cab285d2a36fcd712b92a522e83dea93193 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2617089Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#71984}
-
Junliang Yan authored
Change-Id: I68ef1a97ac857106e014d561be3d7e845ec9fbdc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2618280Reviewed-by: Milad Fa <mfarazma@redhat.com> Commit-Queue: Junliang Yan <junyan@redhat.com> Cr-Commit-Position: refs/heads/master@{#71983}
-
Santiago Aboy Solanes authored
Follow-up that continues to make StringRefs's methods return optional values. Bug: v8:7790 Change-Id: I34f907810747216b047a3da8db035cf4f62728c3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2615162Reviewed-by: Georg Neis <neis@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#71982}
-
Benedikt Meurer authored
Previously the Debug Proxy API that's exposed on Wasm frames by Runtime.evaluateOnCallFrame() was implemented via actual JSProxy instances. That means that all entities such as "memories", "tables", "stack", "globals", etc. were JSProxy instances with "get" and "has" traps. But that has a couple of down-sides: 1. In DevTools front-end, the proxies are shown as JSProxy, which is not very useful to developers, since they cannot interact with them nor can they inspect their contents. And the object preview also only shows "Proxy {}" for them. 2. The performance doesn't scale well, which becomes a painful bottleneck with larger Wasm modules that contain hundreds of thousands of functions or globals. 3. We cannot use the JSProxy instances in the Scope view (for the reasons outlined in 1.) and hence we have different logic to provide Scope values than values in the rest of DevTools, which led to subtle but annoying bugs and inconsistencies. This also changes the "locals" implementation by querying the values ahead of time, similar to the object exposed to the Scope view, instead of on-demand, since the "locals" object might survive the current debugger pause and peeking into the stack afterwards would read invalid memory (and might even be a security issue). For being able to change locals we need to look into a similar solution as what we have for JavaScript locals already. The expression stack already works this way. For performance reasons (especially scaling to huge, realistic Wasm modules), we cache the per-instance proxies ("functions", "memories", "tables" and "globals") on the WasmInstanceObject and reuse them (which is safe since they have a `null` prototype and are non-extensible), and we also cache the proxy maps (with the interceptors) on the JSGlobalObject per native context. Doc: http://bit.ly/devtools-wasm-entities Bug: chromium:1127914, chromium:1159402, chromium:1071432, chromium:1164241 Change-Id: I6191035fdfd887835ae533fcdaabb5bbc8e661ae Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2606058 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#71981}
-
Zhi An Ng authored
Prototype load lane instructions on Liftoff, only for x64. Bug: v8:10975 Change-Id: Ifdf58f08b65762d592e99de91c7c622d2a964a9a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2612335 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#71980}
-
Michael Lippautz authored
Similar to V8, we provide the include/ headers through a "base" target. Without this change, `gn check` complains about including cppgc headers in Blink. Bug: chromium:1056170 Change-Id: I09ad943cdfedae8c83ab7f957efba796637b8d48 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2617087Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#71979}
-
Santiago Aboy Solanes authored
They weren't initializing the VM at the start of the test. Also updated the test description. Bug: v8:7790 Change-Id: I7b9df9e3aebb43fc526e16ec260aa071c0fdeb92 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2615019 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#71978}
-
Santiago Aboy Solanes authored
In order to avoid internal external uncached Strings, we can copy the String at the moment of internalizing if it is an external & uncached String. Bug: v8:7790 Change-Id: Ie7ed287c105a127b8b4c867aab1a808265a922b7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2613029 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#71977}
-
Zhi An Ng authored
We were incorrectly clearing the high reg from the list of regs to load. The intention was to prevent double (and incorrect) loading - loading 128 bits from the low fp and the loading 128 bits from the high fp. But this violates the assumption that the two regs in a pair would be set or unset at the same time. The fix here is to introduce a new enum for register loads, a nop, which does nothing. The high fp of the fp pair will be tied to this nop, so as we iterate down the reglist, we load 128 bits using the low fp, then don't load anything for the high fp. Bug: chromium:1161654 Change-Id: If2ea79132b78623e5990237c60cf0883d9a8223f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2617380Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#71976}
-
Santiago Aboy Solanes authored
We are planning on moving String to kNeverSerialized. For this, we are modifying its methods to bail out if they encounter a NeverSerialized non-internalized String. Bug: v8:7790 Change-Id: Ia83c1385e53707ddec374e1730963c29b928a08c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2615420Reviewed-by: Georg Neis <neis@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#71975}
-
Thibaud Michaud authored
Delegating to the current control depth is valid and rethrows the exception to the caller. See https://github.com/WebAssembly/exception-handling/pull/143. R=clemensb@chromium.org CC=aheejin@chromium.org Bug: v8:8091 Change-Id: I6f14663751736ec6de29eefebfccdf5eb9e955e2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2617081 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71974}
-