- 22 Oct, 2019 1 commit
-
-
Jakob Gruber authored
This CL removes the V8_EMBEDDED_BUILTINS define, FLAG_embedded_builtins, and all code for supporting non-embedded-builtin builds. Bug: v8:6666,v8:8519 Change-Id: I2ad7bd6614c7cd404b83d3d2bf5ff91d7b55ff2a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1866569 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#64461}
-
- 07 Oct, 2019 1 commit
-
-
Dan Elphick authored
Removes CodeStubAssembler::GotoIfDebugExecutionModeChecksSideEffects and associated test as well as the PerformSideEffectCheckForObject runtime function. Bug: v8:9396 Change-Id: Id7748be8fbf1d633f759fef8751ddca13a21748c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1824937Reviewed-by:
Simon Zünd <szuend@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#64130}
-
- 18 Sep, 2019 1 commit
-
-
Michael Starzinger authored
This introduces {GetWasmFunctionOffset} to replace the above method, since calculating offsets into the wire bytes is independent of the concrete module object and hence only needs the shared decoded module. R=clemensh@chromium.org BUG=v8:6847 Change-Id: I6818de4589e26dd8f69dfb71d15bbca127c7ee3e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1809368Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#63862}
-
- 28 Aug, 2019 1 commit
-
-
Dan Elphick authored
Replace several NewStringFromStaticChars calls with the explicit root string access. Bug: v8:9396 Change-Id: I381e676fa81de24e892afe703b804b7c724a6083 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1774719Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#63429}
-
- 23 Aug, 2019 1 commit
-
-
Yang Guo authored
This reverts commit 0bd19ddb. TBR=szuend@chromium.org Change-Id: I86bc9409cb809ff978a1104be79bbbe4b87f85e5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1767996Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Simon Zünd <szuend@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#63358}
-
- 22 Aug, 2019 2 commits
-
-
Maya Lekova authored
This reverts commit e66cee7e. Reason for revert: Speculative revert for https://ci.chromium.org/p/chromium/builders/try/linux-rel/173349 Original change's description: > [debug] only break on entry when immediately called from JS > > When we break on function entry, check whether the target function is being > called from JS after entering V8 through V8's API. We implement this by > keeping track of the stack height when we enter V8 through the API, and compare > the caller JS frame's stack height with that. > > R=szuend@chromium.org > > Bug: chromium:991217, chromium:992406 > Change-Id: I258ad9cef11fe0ef48de6fd5055790792fd0ec0c > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1762298 > Commit-Queue: Yang Guo <yangguo@chromium.org> > Reviewed-by: Simon Zünd <szuend@chromium.org> > Cr-Commit-Position: refs/heads/master@{#63331} TBR=yangguo@chromium.org,szuend@chromium.org Change-Id: I4bfb42f7ce1484807696048a09609f14113d10f4 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:991217, chromium:992406 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1762525Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#63341}
-
Yang Guo authored
When we break on function entry, check whether the target function is being called from JS after entering V8 through V8's API. We implement this by keeping track of the stack height when we enter V8 through the API, and compare the caller JS frame's stack height with that. R=szuend@chromium.org Bug: chromium:991217, chromium:992406 Change-Id: I258ad9cef11fe0ef48de6fd5055790792fd0ec0c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1762298 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by:
Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#63331}
-
- 24 Jun, 2019 1 commit
-
-
Mathias Bynens authored
We currently use the class name “JSValue” for JSObjects that wrap primitive values. This name is a common source of confusion. This patch switches to a name that’s more clear. In addition to manual tweaks, the patch applies the following mechanical global replacements: before | after --------------------------------|-------------------------------------- if_valueisnotvalue | if_valueisnotwrapper if_valueisvalue | if_valueiswrapper js_value | js_primitive_wrapper JS_VALUE_TYPE | JS_PRIMITIVE_WRAPPER_TYPE JSPrimitiveWrapperType | JSPrimitiveWrapper type jsvalue | js_primitive_wrapper JSValue | JSPrimitiveWrapper _GENERATED_JSVALUE_FIELDS | _GENERATED_JSPRIMITIVE_WRAPPER_FIELDS Change-Id: I9d9edea784eab6067b013e1f781e4db2070f807c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1672942Reviewed-by:
Tamer Tas <tmrts@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Mathias Bynens <mathias@chromium.org> Cr-Commit-Position: refs/heads/master@{#62337}
-
- 12 Jun, 2019 1 commit
-
-
Benedikt Meurer authored
Make sure that we pop the async function promise from the catch prediction stack when `await`ing inside an async function, and push it back onto the stack when we're resuming execution. This is to ensure that we don't leak memory when there are suspended async functions while navigating away to a new page. Bug: chromium:968603 Change-Id: I004715bc95d426958f1a89ce76c4856da1d4ceee Cq-Include-Trybots: luci.chromium.try:linux-rel,win7-rel Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1655652 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#62117}
-
- 24 May, 2019 1 commit
-
-
Yang Guo authored
TBR=mvstanton@chromium.org,neis@chromium.org,ahaas@chromium.org Bug: v8:9247 Change-Id: I5433c863a54f3412d73df0d38aba3fdbcfac7ebe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1627973 Commit-Queue: Yang Guo <yangguo@chromium.org> Auto-Submit: Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61830}
-
- 23 May, 2019 1 commit
-
-
Clemens Hammacher authored
This CL was generated by an automatic clang AST rewriter using this matcher expression: callExpr( callee( cxxMethodDecl( hasName("operator->"), ofClass(isSameOrDerivedFrom("v8::internal::Object")) ) ), argumentCountIs(1) ) The "->" at the expression location was then rewritten to ".". R=jkummerow@chromium.org TBR=mstarzinger@chromium.org,verwaest@chromium.org,yangguo@chromium.org Bug: v8:9183, v8:3770 No-Try: true No-Tree-Checks: true Change-Id: I0a7ecabdeafe51d0cf427f5280af0c7cab96869e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624209Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61764}
-
- 22 May, 2019 1 commit
-
-
Yang Guo authored
Bug: v8:9247 Change-Id: I79e0553e8a0d6dac2aa16b94a6c0e05b6ccde4a1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1621934 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#61725}
-
- 21 May, 2019 1 commit
-
-
Yang Guo authored
Bug: v8:9247 TBR=bmeurer@chromium.org,neis@chromium.org NOPRESUBMIT=true Change-Id: Ia1e49d1aac09c4ff9e05d58fab9d08dd71198878 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1621931Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#61682}
-
- 20 May, 2019 1 commit
-
-
Yang Guo authored
TBR=verwaest@chromium.org,rmcilroy@chromium.org NOTREECHECKS=true NOPRESUBMIT=true Bug: v8:9247 Change-Id: I9ddfb6e56ca8e47c4ac186a8df5f442d26420a69 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617661 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61642}
-
- 17 May, 2019 2 commits
-
-
Yang Guo authored
This reverts commit 5f285395. Reason for revert: presubmit failure Original change's description: > Move logging and diagnostics related source files > > This also introduces a COMMON_OWNERS file, which is derived from the > current top-level OWNERS file. It is to be used for parts of the > codebase that is not sensitive to domain-specific expertise. > > NOPRESUBMIT=true > TBR=verwaest@chromium.org > > Bug: v8:9247 > Change-Id: I34a5eaa7cb1509a80d15094a2aceedd62665b17c > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1613987 > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Commit-Queue: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#61600} TBR=rmcilroy@chromium.org,yangguo@chromium.org,mstarzinger@chromium.org,verwaest@chromium.org Change-Id: I3827c3af4fd63b18aa48c49617f318a01746e813 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9247 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617247Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#61601}
-
Yang Guo authored
This also introduces a COMMON_OWNERS file, which is derived from the current top-level OWNERS file. It is to be used for parts of the codebase that is not sensitive to domain-specific expertise. NOPRESUBMIT=true TBR=verwaest@chromium.org Bug: v8:9247 Change-Id: I34a5eaa7cb1509a80d15094a2aceedd62665b17c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1613987Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#61600}
-
- 06 May, 2019 1 commit
-
-
Jakob Gruber authored
Until this CL, the Memory benchmark was the only one to be based on a cctest runner; all others use d8. Besides being a tedious exception to the rule, this caused issues such as described in the linked bug (summary: refbuilds are built with v8_static_library, and neither cctests nor unittests support this configuration). Here, we move the Memory benchmark into a d8 runner. Bug: v8:9189, chromium:957029 Change-Id: I9b45ff36f4842cb0bdef2c1c4b0184c5509d3385 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1588464 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Sergiy Belozorov <sergiyb@chromium.org> Cr-Commit-Position: refs/heads/master@{#61245}
-
- 24 Apr, 2019 1 commit
-
-
Jakob Gruber authored
When collecting JS block coverage, we track block execution counts on so-called CoverageInfo objects. Generated bytecode and native code contains inlined snippets of code to increment the appropriate counters. These used to be implemented as calls to the IncBlockCounter runtime function. Each call incurred the entire CEntry overhead. This CL reduces that overhead by moving logic over into a new IncBlockCounter TFS builtin. The builtin is called directly from bytecode, and lowered to the same builtin call for optimized code. Drive-by: Tweak CoverageInfo layout to generate faster code. Tbr: jarin@chromium.org Bug: v8:9149, v8:6000 Change-Id: I2d7cb0db649edf7c56b5ef5a4683d27b1c34605c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1571420Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#60981}
-
- 27 Feb, 2019 1 commit
-
-
Maya Lekova authored
Moved CoverageMode and TypeProfileMode enums to interface-types.h to save one include in isolate.h. This reduces the expanded lines of code count by ~45k. Bug: v8:8834 R=yangguo@chromium.org Change-Id: I399fe8cf66b1aec79bcb5831afd46a74e358244d Reviewed-on: https://chromium-review.googlesource.com/c/1489072Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#59886}
-
- 15 Feb, 2019 1 commit
-
-
Jakob Kummerow authored
This takes heap-inl.h out of the "Giant Include Cluster". Naturally, that means adding a bunch of explicit includes in a bunch of places that relied on transitively including them before. As of this patch, no header file outside src/heap/ includes heap-inl.h. Bug: v8:8562,v8:8499 Change-Id: I65fa763f90e66afc30d105b9277792721f05a6d4 Reviewed-on: https://chromium-review.googlesource.com/c/1459659 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#59617}
-
- 26 Dec, 2018 1 commit
-
-
Jakob Kummerow authored
Tbr: ahaas@chromium.org,leszeks@chromium.org,verwaest@chromium.org Bug: v8:3770 Change-Id: Ia6530fbb70dac05e9972283781c3550d8b50e1eb Reviewed-on: https://chromium-review.googlesource.com/c/1390116 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Alexei Filippov <alph@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#58470}
-
- 17 Dec, 2018 1 commit
-
-
Jakob Kummerow authored
Bug: v8:3770 Change-Id: Id7a05e5687d36c9347f35f6f3276af2a4b6115fd Reviewed-on: https://chromium-review.googlesource.com/c/1377770 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#58279}
-
- 28 Nov, 2018 1 commit
-
-
Jakob Kummerow authored
Bug: v8:3770 Change-Id: If405611d359d29ae1958beebd9202e068434a621 Reviewed-on: https://chromium-review.googlesource.com/c/1350286 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#57918}
-
- 27 Nov, 2018 1 commit
-
-
Ross McIlroy authored
When restarting a frame on returning from a debug break, we are going to drop the current function frame, therefore the return value and next bytecode are not going to be used. Special case these situations since with bytecode flushing it is possible the SFI for the executing function might have been flushed (if edited by liveedit) which causes failures when trying to read from the bytecode array. BUG=v8:8395 Change-Id: I18adaa5d91c244e6d13e8703ed41c300f793681d Reviewed-on: https://chromium-review.googlesource.com/c/1352270 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#57875}
-
- 25 Nov, 2018 1 commit
-
-
Jakob Kummerow authored
Removing the temporarily duplicated classes FixedArrayPtr and FixedArrayBasePtr. Bug: v8:3770 Change-Id: I056ad74ff69593e9f134ef5c976766812c4d9275 Reviewed-on: https://chromium-review.googlesource.com/c/1345913 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#57807}
-
- 24 Nov, 2018 2 commits
-
-
Jakob Kummerow authored
Bug: v8:3770 Change-Id: If5328a4c63d8efe0ce7a0c5a744666c79c02e1ee Reviewed-on: https://chromium-review.googlesource.com/c/1345912 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#57804}
-
Jakob Kummerow authored
Bug: v8:3770 Change-Id: I06f7fb1b2915d1c87162cb464d0ed34d08516e24 Reviewed-on: https://chromium-review.googlesource.com/c/1345909 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#57800}
-
- 13 Nov, 2018 1 commit
-
-
Marja Hölttä authored
This reduces the build steps after touching counters.h from 710 to 191, thus detaching counters.h from the giant include cluster. BUG=v8:7490,v8:8238 Change-Id: I0c7e707fb945e293f8a5604cc8da438cd35b3210 Reviewed-on: https://chromium-review.googlesource.com/c/1329695 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#57468}
-
- 07 Nov, 2018 1 commit
-
-
Jakob Kummerow authored
as part of the ongoing quest to get rid of Object*/Object** entirely. Design overview: https://goo.gl/Ph4CGz Bug: v8:3770 Change-Id: Ie79a461a61203ea5a6efcd7b2a31bff1834169dd Reviewed-on: https://chromium-review.googlesource.com/c/1316607 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#57306}
-
- 29 Oct, 2018 1 commit
-
-
Jakob Gruber authored
Now that embedded builtins are enabled everywhere*, lazy deserialization can be turned off and removed. * Except nosnap builds, on aix and in msvc builds. Bug: v8:6666, v8:6624, v8:7990 Change-Id: Ib5fefe10e7ff35b13a1eb803fbc3736b8851b22b Reviewed-on: https://chromium-review.googlesource.com/c/1288638Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#57064}
-
- 23 Oct, 2018 1 commit
-
-
Benedikt Meurer authored
This introduces a new bit on the Isolate which tells whether promise hooks, async event delegate or the debug delegate are enabled. Use this new bit in places where we generally need to take the slow path due to async instrumentation. Bug: v8:7253, v8:7522, v8:8238 Change-Id: I8f34eeb9f8f7b56fcbb4deb59ac51b2d0907ff6c Reviewed-on: https://chromium-review.googlesource.com/c/1296473 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#56902}
-
- 10 Oct, 2018 1 commit
-
-
Benedikt Meurer authored
This change introduces new intrinsics used to desugar async functions in the Parser and the BytecodeGenerator, namely we introduce a new %_AsyncFunctionEnter intrinsic that constructs the generator object for the async function (and in the future will also create the outer promise for the async function). This generator object is internal and never escapes to user code, plus since async functions don't have a "prototype" property, we can just a single map here instead of tracking the prototype/initial_map on every async function. This saves one word per async function plus one initial_map per async function that was invoked at least once. We also introduce two new intrinsics %_AsyncFunctionReject, which rejects the outer promise with the caught exception, and another %_AsyncFunctionResolve, which resolves the outer promise with the right hand side of the `return` statement. These functions also perform the DevTools part of the job (aka popping from the promise stack and sending the debug event). This allows us to get rid of the implicit try-finally from async functions completely; because the finally block only called to the %AsyncFunctionPromiseRelease builtin, which was used to inform DevTools. In essence we now turn an async function like ```js async function f(x) { return await bar(x); } ``` into something like this (in Parser and BytecodeGenerator respectively): ``` function f(x) { .generator_object = %_AsyncFunctionEnter(.closure, this); .promise = %AsyncFunctionCreatePromise(); try { .tmp = await bar(x); return %_AsyncFunctionResolve(.promise, .tmp); } catch (e) { return %_AsyncFunctionReject(.promise, e); } } ``` Overall the bytecode for async functions gets significantly shorter already (and will get even shorter once we put the outer promise into the async function generator object). For example the bytecode for a simple async function ```js async function f(x) { return await x; } ``` goes from 175 bytes to 110 bytes (a ~38% reduction in size), which is in particular due to the simplification around the try-finally removal. Overall this seems to improve the doxbee-async-es2017-native test by around 2-3%. On the test case mentioned in v8:8276 we go from 1124ms to 441ms, which corresponds to a 60% reduction in total execution time! Tbr: marja@chromium.org Bug: v8:7253, v8:7522, v8:8276 Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel Change-Id: Id29dc92de7490b387ff697860c900cee44c9a7a4 Reviewed-on: https://chromium-review.googlesource.com/c/1269041 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#56502}
-
- 20 Sep, 2018 1 commit
-
-
Benedikt Meurer authored
This is not used at all anymore and can thus be removed. Bug: v8:8015 Change-Id: Ifebe576dd84cbdbd77bf9ca54d479050e3174d2b Reviewed-on: https://chromium-review.googlesource.com/1235920Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#56073}
-
- 17 Sep, 2018 1 commit
-
-
Michael Lippautz authored
Abort incremental marking pulls in the requirement to also be able to abort on the embedder side. In practice, aborting is never really needed and the GC should just finalize the existing collection and do an atomic followup if exact marking information is required. Bug: chromium:843903 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: Ic471332d01b0c4be26b71a06248af03255c61a9d Reviewed-on: https://chromium-review.googlesource.com/1225705Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#55949}
-
- 03 Sep, 2018 1 commit
-
-
Simon Zünd authored
This CL does two things: It adds a CSA helper to determine whether the debug_execution_mode is kSideEffects. And it adds a runtime function that exposes PerformSideEffectCheckForObject. This will be needed for the Array.p.unshift Torque version. R=jgruber@chromium.org Change-Id: Idc1ae077956e0862e613a2c28af3f2cf4d5c3762 Reviewed-on: https://chromium-review.googlesource.com/1196362 Commit-Queue: Simon Zünd <szuend@google.com> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#55577}
-
- 03 Aug, 2018 1 commit
-
-
Clemens Hammacher authored
arguments.h used methods only defined in objects-inl.h and handles-inl.h. These uses are now moved to arguments-inl.h. Since builtins-utils.h used these methods, it also needs to be split to have an inl header now. R=titzer@chromium.org Bug: v8:7754, v8:7965 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I21db7a86f7c15776eccf060f81f2bde000b92a40 Reviewed-on: https://chromium-review.googlesource.com/1160647Reviewed-by:
Ben Titzer <titzer@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54889}
-
- 20 Jul, 2018 1 commit
-
-
Marja Hölttä authored
BUG=v8:7754,v8:5402 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I5306005e7d0fcfe188c9e0270a003c6e1098c9e9 Reviewed-on: https://chromium-review.googlesource.com/1144824Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#54578}
-
- 05 Jul, 2018 2 commits
-
-
Alexey Kozyatinskiy authored
- rewritten couple tests, - migrated JSMessageObject to real Script instead of wrapper, - removed wrapper. R=yangguo@chromium.org TBR=ulan@chromium.org Bug: v8:5530 Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel Change-Id: Ia95492344c7b5978a940e2ab007b389384537148 Reviewed-on: https://chromium-review.googlesource.com/1112851Reviewed-by:
Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#54274}
-
Alexey Kozyatinskiy authored
After liveedit removed - we do not need this context any more. R=yangguo@chromium.org TBR=clemensh@chromium.org Bug: v8:5530 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: Idb43d016d51b8048f6cd2ca590fd7510abcacb49 Reviewed-on: https://chromium-review.googlesource.com/1106802 Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#54273}
-
- 03 Jul, 2018 1 commit
-
-
Alexey Kozyatinskiy authored
This is a reland of 3dfaf826 Original change's description: > [debug] liveedit in native > > Liveedit step-by-step: > 1. calculate diff between old source and new source, > 2. map function literals from old source to new source, > 3. create new script for new_source, > 4. mark literals with changed code as changed, all others as unchanged, > 5. check that for changed literals there are no: > - running generators in the heap, > - non droppable frames (e.g. running generator) above them on stack. > 6. mark the bottom most frame with changed function as scheduled for > restart if any. > 7. for unchanged functions: > - deoptimize, > - remove from cache, > - update source positions, > - move to new script, > - reset feedback information and preparsed scope information if any, > - replace any sfi in constant pool with changed one if any. > 8. for changed functions: > - deoptimize > - remove from cache, > - reset feedback information, > - update all links from js functions to old shared with new one. > 9. swap scripts. > > TBR=ulan@chromium.org > > Bug: v8:7862,v8:5713 > Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel > Change-Id: I8f6f6156318cc82d6f36d7ebc1c9f7d5f3aa1461 > Reviewed-on: https://chromium-review.googlesource.com/1105493 > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Dmitry Gozman <dgozman@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#54146} TBR=dgozman@chromium.org Bug: v8:7862, v8:5713 Change-Id: I163ed2fd2ca3115ba0de74cb35a6fac9e40fdd94 Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel Reviewed-on: https://chromium-review.googlesource.com/1124879 Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by:
Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#54187}
-