1. 03 Jan, 2017 1 commit
    • gsathya's avatar
      [promises] Refactor debug code · a2c15ba3
      gsathya authored
      -- Removes remaning debug from promise.js and moves it to c++
      -- Changes debug_id to be a smi in PromiseReactionJobInfo and
         PromiseResolveThenableJobInfo.
      -- Changes debug_name to be a smi in PromiseReactionJobInfo and
         PromiseResolveThenableJobInfo.
      -- Adds PromiseDebugActionName and PromiseDebugActionType enums
      -- Adds PromiseDebugActionNameToString and
         PromiseDebugActionTypeToString helper methods
      -- Changes variable `status` to be int in runtime functions.
      -- Changes debug_id to start from 1, not 0 for easier bookkeeping.
      
      BUG=v8:5343
      
      Review-Url: https://codereview.chromium.org/2606093002
      Cr-Commit-Position: refs/heads/master@{#42052}
      a2c15ba3
  2. 02 Jan, 2017 1 commit
    • caitp's avatar
      [promises] port NewPromiseCapability to TF · 4f95a1eb
      caitp authored
      - Adds CodeAssembler::ConstructJS() to simplify calling JS functions as
      constructors, used by NewPromiseCapability()
      - Defines PromiseCapability as a special JSObject subclass, with a
      non-exensible Map, and read-only non-configurable DataDescriptors which
      point to its in-object fields. This allows its fields to be used by JS
      builtins until there is no longer any need.
      
      Currently, the performance benefit comes from
      https://codereview.chromium.org/2567033003/, but does not appear to
      regress performance in any significant way.
      
      BUG=v8:5343
      TBR=ulan@chromium.org
      
      Review-Url: https://codereview.chromium.org/2567333002
      Cr-Commit-Position: refs/heads/master@{#42014}
      4f95a1eb
  3. 30 Dec, 2016 1 commit
  4. 29 Dec, 2016 1 commit
    • gsathya's avatar
      [promises] Remove deferred object · 5668ce39
      gsathya authored
      This patch stores the promise, resolve, reject properties of the
      deferred object created by CreateInternalPromiseCapability and
      NewPromiseCapability directly on the promise (if the promise hasn't
      been fulfilled), otherwise they are stored on the
      PromiseReactionJobInfo.
      
      This patch removes the currently unused
      CreateInternalPromiseCapability and inlines the call to create the
      deferred promise object.
      
      NewPromiseCapability is the only function that works with a deferred.
      
      This patch results in a 8.5% improvement in benchmarks over 5 runs.
      
      BUG=v8:5343
      
      Review-Url: https://codereview.chromium.org/2590563003
      Cr-Commit-Position: refs/heads/master@{#41991}
      5668ce39
  5. 16 Dec, 2016 2 commits
  6. 15 Dec, 2016 1 commit
  7. 06 Dec, 2016 2 commits
  8. 05 Dec, 2016 1 commit
    • gsathya's avatar
      Object · 30b564c7
      gsathya authored
      -- New JSObject for promises: JSPromise
      
      Builtins
      -- PromiseThen TFJ
      -- PromiseCreateAndSet TFJ for internal use
      -- PerformPromiseThen TFJ for internal use
      -- PromiseInit for initial promise setup
      -- SpeciesConstructor for use in PromiseThen
      -- ThrowIfNotJSReceiver for use in SpeciesConstructor
      -- AppendPromiseCallback to update FixedArray with new callback
      -- InternalPerformPromiseThen
      
      Promises.js
      -- Cleanup unused symbols
      -- Remove PerformPromiseThen
      -- Remove PromiseThen
      -- Remove PromiseSet
      -- Remove PromiseAttachCallbacks
      
      Runtime
      -- PromiseSet to set promise inobject values
      -- Refactor functions to use FixedArrays for callbacks instead of
         JSArray
      -- Runtime_PromiseStatus to return promise status
      -- Runtime_PromiseResult to return promise result
      -- Runtime_PromiseDeferred to return deferred attached to promise
      -- Runtime_PromiseRejectReactions to return reject reactions attached
         to promise
      
      This CL results in a 13.07% improvement in the promises benchmark
      (over 5 runs).
      
      BUG=v8:5343
      
      Review-Url: https://codereview.chromium.org/2536463002
      Cr-Commit-Position: refs/heads/master@{#41503}
      30b564c7
  9. 02 Dec, 2016 1 commit
  10. 30 Nov, 2016 1 commit
  11. 29 Nov, 2016 1 commit
  12. 28 Nov, 2016 1 commit
  13. 21 Nov, 2016 1 commit
  14. 15 Nov, 2016 1 commit
  15. 14 Nov, 2016 2 commits
  16. 11 Nov, 2016 1 commit
    • gsathya's avatar
      [promises] Remove one runtime call to create_resolving_functions · ec61e6b4
      gsathya authored
      - Creates a new promise-utils.{h, cc} which refactors out the
      logic to create resolving functions. This is shared between the
      runtime functions and builtins.
      
      - Changes PromiseResolveThenableJobInfo to store the context
      since we no longer create the resolving functions in JS.
      
      - Changes EnqueuPromiseResolveThenableJob to take in the promise and
        not the callbacks.
      
      BUG=v8:5343
      
      Review-Url: https://codereview.chromium.org/2487053002
      Cr-Commit-Position: refs/heads/master@{#40941}
      ec61e6b4
  17. 04 Nov, 2016 2 commits
  18. 21 Oct, 2016 1 commit
  19. 18 Oct, 2016 1 commit
    • caitp's avatar
      [builtins] implement Array.prototype[@@iterator] in TFJ builtins · 86d0dd36
      caitp authored
      Implements the variations of CreateArrayIterator() in TFJ builtins
      (ArrayPrototypeValues, ArrayPrototypeEntries and ArrayPrototypeKeys), and
      provides two new Object types with numerous maps which identify certain
      behaviours, which will be useful for inlining.
      
      Removes src/js/array-iterator.js entirely
      
      Also adds support for printing Symbol literals inserted by the Parser during
      desugaring when FLAG_print_builtin_ast is set to true.
      
      BUG=v8:5388
      R=bmeurer@chromium.org, cbruni@chromium.org
      TBR=ulan@chromium.org
      
      Review-Url: https://codereview.chromium.org/2405253006
      Cr-Commit-Position: refs/heads/master@{#40373}
      86d0dd36
  20. 17 Oct, 2016 3 commits
  21. 13 Oct, 2016 2 commits
  22. 12 Oct, 2016 2 commits
  23. 11 Oct, 2016 2 commits
    • adamk's avatar
      [modules] Store Module metadata in per-Context EmbedderData · 9d2051fc
      adamk authored
      This is a re-land of https://codereview.chromium.org/2393303002/ with
      an additional call to DisposeModuleEmbedderData() added to fix lsan failures.
      
      Unifies the approaches used for storing the specifier -> module mapping
      and the module -> directory mapping, using std::unordered_maps for both
      and storing them per-Context.
      
      This requires adding a method to the v8::Module API to get a hash code
      for a Module, but allows slimming down the API in return: gone are
      SetEmbedderData/GetEmbedderData, along with the fourth argument
      to ResolveModuleCallback.
      
      Besides a simpler API, this allows d8 to get closer to the HTML loader,
      which requires each Realm to have a persistent module map (though this
      capability is not yet exercised by any tests).
      
      BUG=v8:1569
      TBR=neis@chromium.org,jochen@chromium.org
      
      Review-Url: https://codereview.chromium.org/2405313002
      Cr-Commit-Position: refs/heads/master@{#40186}
      9d2051fc
    • adamk's avatar
      Revert of [modules] Store Module metadata in per-Context EmbedderData... · 12779889
      adamk authored
      Revert of [modules] Store Module metadata in per-Context EmbedderData (patchset #7 id:120001 of https://codereview.chromium.org/2393303002/ )
      
      Reason for revert:
      Fails under LeakSanitizer on auto-roll fyi bot:
      
      https://build.chromium.org/p/client.v8.fyi/builders/Auto-roll%20-%20release%20process/builds/49447
      
      Original issue's description:
      > [modules] Store Module metadata in per-Context EmbedderData
      >
      > Unifies the approaches used for storing the specifier -> module mapping
      > and the module -> directory mapping, using std::unordered_maps for both
      > and storing them per-Context.
      >
      > This requires adding a method to the v8::Module API to get a hash code
      > for a Module, but allows slimming down the API in return: gone are
      > SetEmbedderData/GetEmbedderData, along with the fourth argument
      > to ResolveModuleCallback.
      >
      > Besides a simpler API, this allows d8 to get closer to the HTML loader,
      > which requires each Realm to have a persistent module map (though this
      > capability is not yet exercised by any tests).
      >
      > BUG=v8:1569
      >
      > Committed: https://crrev.com/9cf8fce74cf6e7afd6aea3f3545f6bb61572f277
      > Cr-Commit-Position: refs/heads/master@{#40133}
      
      TBR=jochen@chromium.org,neis@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:1569
      
      Review-Url: https://codereview.chromium.org/2406973003
      Cr-Commit-Position: refs/heads/master@{#40145}
      12779889
  24. 10 Oct, 2016 1 commit
    • adamk's avatar
      [modules] Store Module metadata in per-Context EmbedderData · 9cf8fce7
      adamk authored
      Unifies the approaches used for storing the specifier -> module mapping
      and the module -> directory mapping, using std::unordered_maps for both
      and storing them per-Context.
      
      This requires adding a method to the v8::Module API to get a hash code
      for a Module, but allows slimming down the API in return: gone are
      SetEmbedderData/GetEmbedderData, along with the fourth argument
      to ResolveModuleCallback.
      
      Besides a simpler API, this allows d8 to get closer to the HTML loader,
      which requires each Realm to have a persistent module map (though this
      capability is not yet exercised by any tests).
      
      BUG=v8:1569
      
      Review-Url: https://codereview.chromium.org/2393303002
      Cr-Commit-Position: refs/heads/master@{#40133}
      9cf8fce7
  25. 07 Oct, 2016 5 commits
  26. 30 Sep, 2016 1 commit
  27. 29 Sep, 2016 1 commit