1. 21 Sep, 2016 30 commits
  2. 20 Sep, 2016 10 commits
    • adamk's avatar
      [modules] Expand API to allow linking and use it in d8 · cf127e81
      adamk authored
      This patch gives the ability for the embedder to ask for the
      module requests of a module, and to pass a ResolveCallback
      into Module::Instantiate().
      
      In d8, I've implemented a simple module_map that's used
      along with this API to allow loading, compiling, instantiating,
      and evaluating a whole tree of modules.
      
      No path resolution is yet implemented, meaning that all
      import paths are relative to whatever directory d8 runs
      in. And no imports are linked to the exports of the
      requested module.
      
      BUG=v8:1569
      
      Review-Url: https://codereview.chromium.org/2351113004
      Cr-Commit-Position: refs/heads/master@{#39569}
      cf127e81
    • neis's avatar
      [modules] Also (de-)serialize imports. · a037f350
      neis authored
      This is in preparation for basic support of import statements.
      
      R=adamk@chromium.org
      BUG=v8:1569
      
      Review-Url: https://codereview.chromium.org/2357003002
      Cr-Commit-Position: refs/heads/master@{#39568}
      a037f350
    • littledan's avatar
      Filter out synthetic variables from with scopes · dcd61b90
      littledan authored
      This patch ensures that variables like .new_target aren't overwritable
      using with scopes. It does this by ensuring that scope analysis does
      not consider with scopes (or eval scopes) for such 'synthetic variables',
      similarly to how the 'this' variable was already handled.
      The patch also adds a DCHECK for the dynamic parallel to this case,
      replacing a previous unreachable path for a particular instance.
      
      BUG=v8:5405
      
      Review-Url: https://codereview.chromium.org/2353623002
      Cr-Commit-Position: refs/heads/master@{#39567}
      dcd61b90
    • littledan's avatar
      Remove synthetic unresolved variables from async/await desugaring · bd078193
      littledan authored
      This patch uses temporaries rather than unresolved variables for
      .promise and .debug_is_active. For .promise, a new field is added
      to the FunctionState, similarly to .generator_object. This change
      fixes a bug where .promise was locally shadowable by with, affecting
      program semantics.
      
      BUG=v8:5405
      
      Review-Url: https://codereview.chromium.org/2359513002
      Cr-Commit-Position: refs/heads/master@{#39566}
      bd078193
    • littledan's avatar
      Make Promise.all/Promise.race catch prediction conditional on DevTools · 37735851
      littledan authored
      To improve performance, this patch makes Promise.all and Promise.race not
      perform correct catch prediction when the debugger is not open. The case
      may come up if Promise.race or Promise.all is called, then DevTools is
      open, then a component Promise is rejected. In this case, the user would
      falsely get an exception event even if the "pause on caught exceptions"
      box is unchecked. There are tests which triggered this case; however, it
      seems both unlikely and and acceptable to have an event in this case.
      Many analogous events are already produced when DevTools is enabled
      during the operation of a program.
      
      BUG=v8:3093
      
      Review-Url: https://codereview.chromium.org/2350363002
      Cr-Commit-Position: refs/heads/master@{#39565}
      37735851
    • littledan's avatar
      Reland Async/await Promise dependency graph · 1b414e28
      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)
      
      In this reland, the caught tests are broken up into four parts to avoid
      timeouts.
      
      BUG=v8:5167
      
      Review-Url: https://codereview.chromium.org/2346363004
      Cr-Commit-Position: refs/heads/master@{#39564}
      1b414e28
    • adamk's avatar
      [modules] Add a requested_modules field to Module · c604eae3
      adamk authored
      Also simplify Factory::NewModule to take only the SharedFunctionInfo.
      
      R=neis@chromium.org
      BUG=v8:1569
      
      Review-Url: https://codereview.chromium.org/2355033002
      Cr-Commit-Position: refs/heads/master@{#39563}
      c604eae3
    • klaasb's avatar
      [interpreter] Inline FastCloneShallowArrayStub into bytecode handler · 5deb0bc1
      klaasb authored
      The CreateArrayLiteral bytecode handler now directly inlines the FastCloneShallowArrayStub.
      
      BUG=v8:4280
      
      Review-Url: https://codereview.chromium.org/2341743003
      Cr-Commit-Position: refs/heads/master@{#39562}
      5deb0bc1
    • ziyang's avatar
      PPC/s390: [Interpreter] Adds stackcheck in InterpreterPushArgsAndCall/Construct builtins. · 3b4cc88e
      ziyang authored
          Port 7f3d15aa
      
          Original commit message:
          In ignition, arguments to function calls and function constructors are
          pushed onto the stack before calling the function. It is required to check
          that stack does not overflow when pushing the arguments.
      
          R=mythria@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com
      BUG=
      
      Review-Url: https://codereview.chromium.org/2356583003
      Cr-Commit-Position: refs/heads/master@{#39561}
      3b4cc88e
    • bmeurer's avatar
      [TypeFeedbackVector] Properly ignore binary/compare op slots for FCG. · c819a1e2
      bmeurer authored
      Fix a typo in TypeFeedbackVector::ComputeCounts, where we would not
      skip the interpreter binary/compare op IC slots for fullcodegen, and
      thus mess up the heuristics for tearing up.
      
      TBR=mvstanton@chromium.org
      
      Review-Url: https://codereview.chromium.org/2353513006
      Cr-Commit-Position: refs/heads/master@{#39560}
      c819a1e2