1. 27 May, 2016 29 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 6 commits
    • mlippautz's avatar
      Revert of "[heap] Fine-grained JSArrayBuffer tracking" (patchset #1 id:1 of... · 6a92d748
      mlippautz authored
      Revert of "[heap] Fine-grained JSArrayBuffer tracking" (patchset #1 id:1 of https://codereview.chromium.org/2009383002/ )
      
      Reason for revert:
      https://build.chromium.org/p/chromium.gpu.fyi/builders/Linux%20Debug%20%28NVIDIA%29/builds/29860/steps/maps_pixel_test%20on%20NVIDIA%20GPU%20on%20Linux%20on%20Linux/logs/stdio
      
      Original issue's description:
      > Reland of "[heap] Fine-grained JSArrayBuffer tracking" (patchset #1 id:1 of https://codereview.chromium.org/2011563003/ )
      >
      > Reason for revert:
      > Premature revert. Chromium roll included an earlier version.
      >
      > Original issue's description:
      > > Revert of "[heap] Fine-grained JSArrayBuffer tracking" (patchset #3 id:80001 of https://codereview.chromium.org/2007253002/ )
      > >
      > > Reason for revert:
      > > Breaks webgl2 conformance tests
      > >   https://bugs.chromium.org/p/chromium/issues/detail?id=614730
      > >
      > > Original issue's description:
      > > > Reland of "[heap] Fine-grained JSArrayBuffer tracking"
      > > >
      > > > Track based on JSArrayBuffer addresses on pages instead of the attached
      > > > backing store.
      > > >
      > > > Details of tracking:
      > > > - Scavenge: New space pages are processes in bulk on the main thread
      > > > - MC: Unswept pages are processed in bulk in parallel. All other pages
      > > >   are processed by the sweeper concurrently.
      > > >
      > > > This reverts commit 93fe04af.
      > > >
      > > > R=hpayer@chromium.org
      > > > BUG=chromium:611688
      > > > LOG=N
      > > > CQ_EXTRA_TRYBOTS=tryserver.v8:v8_linux_arm64_gc_stress_dbg,v8_linux_gc_stress_dbg,v8_mac_gc_stress_dbg,v8_linux64_tsan_rel,v8_mac64_asan_rel
      > > >
      > > > Committed: https://crrev.com/863d015e573798e263b35b31d2ab979739706533
      > > > Cr-Commit-Position: refs/heads/master@{#36513}
      > >
      > > TBR=hpayer@chromium.org
      > > # Skipping CQ checks because original CL landed less than 1 days ago.
      > > NOPRESUBMIT=true
      > > NOTREECHECKS=true
      > > NOTRY=true
      > > BUG=chromium:611688
      > >
      > > Committed: https://crrev.com/b9b0868ec49a52c9a80c9beea862a61707b292e5
      > > Cr-Commit-Position: refs/heads/master@{#36524}
      >
      > TBR=hpayer@chromium.org
      > # Skipping CQ checks because original CL landed less than 1 days ago.
      > NOPRESUBMIT=true
      > NOTREECHECKS=true
      > NOTRY=true
      > BUG=chromium:611688
      >
      > Committed: https://crrev.com/b23e008885c4c452ae2b329c9dad167a76e4d7be
      > Cr-Commit-Position: refs/heads/master@{#36530}
      
      TBR=hpayer@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=chromium:611688
      
      Review-Url: https://codereview.chromium.org/2009893003
      Cr-Commit-Position: refs/heads/master@{#36531}
      6a92d748
    • mlippautz's avatar
      Reland of "[heap] Fine-grained JSArrayBuffer tracking" (patchset #1 id:1 of... · b23e0088
      mlippautz authored
      Reland of "[heap] Fine-grained JSArrayBuffer tracking" (patchset #1 id:1 of https://codereview.chromium.org/2011563003/ )
      
      Reason for revert:
      Premature revert. Chromium roll included an earlier version.
      
      Original issue's description:
      > Revert of "[heap] Fine-grained JSArrayBuffer tracking" (patchset #3 id:80001 of https://codereview.chromium.org/2007253002/ )
      >
      > Reason for revert:
      > Breaks webgl2 conformance tests
      >   https://bugs.chromium.org/p/chromium/issues/detail?id=614730
      >
      > Original issue's description:
      > > Reland of "[heap] Fine-grained JSArrayBuffer tracking"
      > >
      > > Track based on JSArrayBuffer addresses on pages instead of the attached
      > > backing store.
      > >
      > > Details of tracking:
      > > - Scavenge: New space pages are processes in bulk on the main thread
      > > - MC: Unswept pages are processed in bulk in parallel. All other pages
      > >   are processed by the sweeper concurrently.
      > >
      > > This reverts commit 93fe04af.
      > >
      > > R=hpayer@chromium.org
      > > BUG=chromium:611688
      > > LOG=N
      > > CQ_EXTRA_TRYBOTS=tryserver.v8:v8_linux_arm64_gc_stress_dbg,v8_linux_gc_stress_dbg,v8_mac_gc_stress_dbg,v8_linux64_tsan_rel,v8_mac64_asan_rel
      > >
      > > Committed: https://crrev.com/863d015e573798e263b35b31d2ab979739706533
      > > Cr-Commit-Position: refs/heads/master@{#36513}
      >
      > TBR=hpayer@chromium.org
      > # Skipping CQ checks because original CL landed less than 1 days ago.
      > NOPRESUBMIT=true
      > NOTREECHECKS=true
      > NOTRY=true
      > BUG=chromium:611688
      >
      > Committed: https://crrev.com/b9b0868ec49a52c9a80c9beea862a61707b292e5
      > Cr-Commit-Position: refs/heads/master@{#36524}
      
      TBR=hpayer@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=chromium:611688
      
      Review-Url: https://codereview.chromium.org/2009383002
      Cr-Commit-Position: refs/heads/master@{#36530}
      b23e0088
    • lpy's avatar
      Revert of Create libsampler as V8 sampler library. (patchset #24 id:460001 of... · 636f1e8e
      lpy authored
      Revert of Create libsampler as V8 sampler library. (patchset #24 id:460001 of https://codereview.chromium.org/1922303002/ )
      
      Reason for revert:
      V8 Linux64 TSAN failure because ThreadSanitizer indicated data race.
      
      Original issue's description:
      > Create libsampler as V8 sampler library.
      >
      > 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}
      
      TBR=jochen@chromium.org,alph@chromium.org,fmeawad@chromium.org,yangguo@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:4789
      
      Review-Url: https://codereview.chromium.org/2000323007
      Cr-Commit-Position: refs/heads/master@{#36529}
      636f1e8e
    • gsathya's avatar
      TypedArray: Make byteOffset, byteLength, and length configurable · 91e2039d
      gsathya authored
      Removes the DONT_DELETE enum bit from the properties to make them
      configurable.
      
      Also, updates the regress-typedarray-length test to --
      - Check for true boolean return value on deletion of these
        properties.
      - Check for undefined return value on trying to access these
        properties after deletion.
      
      BUG=v8:4902
      LOG=Y
      
      Review-Url: https://codereview.chromium.org/2001393004
      Cr-Commit-Position: refs/heads/master@{#36528}
      91e2039d
    • lpy's avatar
      Create libsampler as V8 sampler library. · 06cc9b7c
      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
      
      Review-Url: https://codereview.chromium.org/1922303002
      Cr-Commit-Position: refs/heads/master@{#36527}
      06cc9b7c
    • adamk's avatar
      Make %ThrowTypeError% function(s) strict · d84dbc71
      adamk authored
      Bootstrapper previously created %ThrowTypeError% before the strict
      function maps existed, so making that function strict required a small
      amount of code reordering.
      
      This fixes a few test262 tests, but we're still non-compliant due to the
      fact that we have two functions instead of one (see issue 4034).
      
      BUG=v8:4925
      LOG=y
      
      Review-Url: https://codereview.chromium.org/2006733004
      Cr-Commit-Position: refs/heads/master@{#36526}
      d84dbc71