1. 27 May, 2016 26 commits
  2. 26 May, 2016 5 commits
    • gsathya's avatar
      Promises: Lazily create arrays to store resolve, reject callbacks · 1d4fe002
      gsathya authored
      For the common use case of having a single resolve or reject callback,
      the callbacks are stored directly. Only when an additional callback is
      registered, we create an array to store these callbacks.
      
      There are 3 possible states for the resolve, reject symbols when we add
      a new callback --
      1) UNDEFINED -- This is the zero state where there is no callback
      registered. When we see this state, we directly attach the callbacks to
      the symbol.
      2) !IS_ARRAY -- There is a single callback directly attached to the
      symbols. We need to create a new array to store additional callbacks.
      3) IS_ARRAY -- There are multiple callbacks already registered,
      therefore we can just push the new callback to the existing array.
      
      Also, this change creates a new symbol for storing the deferred objects.
      Previously the deferred objects were stored in the callback arrays, but
      since we no longer create arrays for the initial case, we need this new
      symbol. The cctest has been updated to account for this new symbol.
      
      This patch results in a 19% improvement(over 5 runs) in the bluebird benchmark.
      
      BUG=v8:5046
      
      Review-Url: https://codereview.chromium.org/2007803002
      Cr-Commit-Position: refs/heads/master@{#36536}
      1d4fe002
    • gsathya's avatar
      This patch updates certain functions and parameters to match the Promise spec. · ffdd76e6
      gsathya authored
      Review-Url: https://codereview.chromium.org/2001283006
      Cr-Commit-Position: refs/heads/master@{#36535}
      ffdd76e6
    • mythria's avatar
      Adds support for collecting statistics about code and its metadata. · c1af2821
      mythria authored
      Adds an API to request the total size of code/bytecode and their associated
      metadata in the heap. When requested, the code_space, old_space and
      large_object_space  is scanned to find any code/bytecode array objects.
      This could be slow and hence it should be used with caution.
      
      BUG=v8:5019
      LOG=N
      
      Review-Url: https://codereview.chromium.org/1997363002
      Cr-Commit-Position: refs/heads/master@{#36534}
      c1af2821
    • v8-autoroll's avatar
      Update V8 DEPS. · 49411f5f
      v8-autoroll authored
      Rolling v8/build to a11885a5fd2ae5b45d97a2bbfe3e33ab13a88f68
      
      Rolling v8/third_party/icu to 4745cccafba8cdb646263fa48b959f386722c155
      
      Rolling v8/tools/clang to 5c08263d87fd4fe23df4f73323cd6146f5dfe7b2
      
      TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org
      
      Review-Url: https://codereview.chromium.org/2015453004
      Cr-Commit-Position: refs/heads/master@{#36533}
      49411f5f
    • lpy's avatar
      Reland: Create libsampler as V8 sampler library. · a0198c0f
      lpy authored
      This patch does five things:
      
      1. Extracts sampler as libsampler to provide sampling functionality support.
      2. Makes SampleStack virtual so embedders can override the behaviour of sample collecting.
      3. Removes sampler.[h|cc].
      4. Moves sampling thread into log.cc as workaround to keep the --prof functionality.
      5. Creates SamplerManager to manage the relationship between samplers and threads.
      
      The reason we port hashmap.h is that in debug mode, STL containers are using
      mutexes from a mutex pool, which may lead to deadlock when using asynchronously
      signal handler.
      
      Currently libsampler is used in V8 temporarily.
      
      BUG=v8:4789
      LOG=n
      
      Committed: https://crrev.com/06cc9b7c176a6223971deaa9fbcafe1a05058c7b
      Cr-Commit-Position: refs/heads/master@{#36527}
      
      Review-Url: https://codereview.chromium.org/1922303002
      Cr-Commit-Position: refs/heads/master@{#36532}
      a0198c0f
  3. 25 May, 2016 9 commits