1. 20 Sep, 2016 35 commits
  2. 19 Sep, 2016 5 commits
    • littledan's avatar
      Async/await Promise dependency graph · 7265fdde
      littledan authored
      This patch knits together Promises returned by async/await such that when
      one async function awaits the result of another one, catch prediction works
      across the boundaries, whether the exception comes synchronously or
      asynchronously. Edges are added in three places:
      - When a locally uncaught await happens, if the value passed into await
        is a Promise, from the awaited value to the Promise under construction
        in the broader async function
      - From a "throwaway" Promise, which may be found on the Promise debug
        stack, to the Promise under construction in the async function that
        surrounds it
      - When a Promise is resolved with another Promise (e.g., when returning a
        Promise from an async function)
      
      BUG=v8:5167
      
      Review-Url: https://codereview.chromium.org/2317383002
      Cr-Commit-Position: refs/heads/master@{#39522}
      7265fdde
    • bradnelson's avatar
      [wasm] asm.js: Add asm_wasm variant to test asm.js->wasm pipeline. · 7e07d3f6
      bradnelson authored
      BUG= https://bugs.chromium.org/p/v8/issues/detail?id=4203
      BUG= https://bugs.chromium.org/p/v8/issues/detail?id=5406
      LOG=N
      R=mstarzinger@chromium.org,machenbach@chromium.org
      
      Review-Url: https://codereview.chromium.org/2309833003
      Cr-Commit-Position: refs/heads/master@{#39521}
      7e07d3f6
    • littledan's avatar
      Reland of Fix async/await memory leak (patchset #1 id:1 of... · bf43f883
      littledan authored
      Reland of Fix async/await memory leak (patchset #1 id:1 of https://codereview.chromium.org/2348403003/ )
      
      This patch closes a memory leak in async/await where the desugaring
      was creating a situation analagous to that described in v8:5002.
      Intermediate Promises were being kept alive, so a long-running loop
      would cause linear memory usage on the heap. This patch returns
      undefined to the 'then' callback passed into PerformPromiseThen
      in order to avoid this hazard. Test expectations are fixed to remove
      expecting extraneous events which occurred on Promises that are
      now not given unnecessarily complex resolution paths before being
      thrown away.
      
      This patch is a reland; originally, tests which exercised the memory
      exhaustion were checked in. Although it's possible to find good parameters
      for running such tests locally, it is difficult to automate the tests
      between the rock of timeouts and the hard place of too-small heaps
      causing memory exhaustion in some modes even when there is no leak.
      
      BUG=v8:5390
      
      Review-Url: https://codereview.chromium.org/2352933002
      Cr-Commit-Position: refs/heads/master@{#39520}
      bf43f883
    • neis's avatar
      [modules] Explicitly keep track of module requests. · c5785bfb
      neis authored
      We must keep track of the exact order in which modules are requested.
      To do so, maintain a map from module specifiers to position while
      parsing (in ModuleDescriptor). Descriptor entries now refer to that
      position rather than the string.  When generating the ModuleInfo, turn
      this map into an array of specifiers. We don't need the map anymore
      later on, so we do not reconstruct it when deserializing again.
      
      BUG=v8:1569
      
      Review-Url: https://codereview.chromium.org/2353633002
      Cr-Commit-Position: refs/heads/master@{#39519}
      c5785bfb
    • machenbach's avatar
      Revert of [crankshaft] Protect against deopt loops from string length... · 53510f6a
      machenbach authored
      Revert of [crankshaft] Protect against deopt loops from string length overflows. (patchset #1 id:1 of https://codereview.chromium.org/2348293002/ )
      
      Reason for revert:
      Mean https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/builds/10910
      
      Original issue's description:
      > [crankshaft] Protect against deopt loops from string length overflows.
      >
      > Crankshaft just unconditionally deoptimizes the code when the length of
      > a string addition result would overflow. In order to protect against
      > deopt loops we insert a global protector cell.
      >
      > We will use the same mechanism for inlining certain string additions
      > into TurboFan as well, and protecting against overflow (we will also
      > extend this to deal with String.prototype.concat and friends once we
      > get there).
      >
      > BUG=v8:5404
      > R=jarin@chromium.org,hpayer@chromium.org
      >
      > Committed: https://crrev.com/cb19257a926a55209a6d6858ce26d51a0447ba71
      > Cr-Commit-Position: refs/heads/master@{#39511}
      
      TBR=hpayer@chromium.org,jarin@chromium.org,bmeurer@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:5404
      
      Review-Url: https://codereview.chromium.org/2357433002
      Cr-Commit-Position: refs/heads/master@{#39518}
      53510f6a