1. 27 May, 2016 7 commits
    • franzih's avatar
      [builtins] Rewrite uri.js as builtin functions. · 8c31bd81
      franzih authored
      Rewrite decodeURI and decodeURIComponent as builtin functions
      and install them in the bootstrapper.
      
      Delete unused runtime functions:
       - TruncateString
       - NewString
       - OneByteSeqStringGetChar
       - OneByteSeqStringSetChar
       - TwoByteSeqStringGetChar
       - TwoByteSeqStringSetChar
      
      Add regression test for decoding large strings. Clusterfuzz detected
      a problem with %TruncateString, see
      https://bugs.chromium.org/p/chromium/issues/detail?id=612109#c6
      This is automatically fixed by this rewrite because %TruncateString
      is deleted anyways.
      
      Crude benchmark on 585 decodeURI and decodeURIComponent tests
      averaged over five runs:
      
      * builtin functions
      real	0m9.69s
      user	2m39.8816s
      sys    	0m12.6398s
      
      * JS functions calling into the runtime e.g., for %TruncateString
      real	0m11.0598s
      user	3m6.7026s
      sys	0m13.5756s
      
      By running:
      $  time tools/run-tests.py   --arch=x64  --mode=Release --buildbot
        test262/built-ins/decodeURI* mjsunit/uri
      >>> Running tests for x64.Release
      
      BUG=v8:4912, chromium:612109
      R=yangguo@chromium.org, bmeurer@chromium.org
      
      Review-Url: https://codereview.chromium.org/1994733003
      Cr-Commit-Position: refs/heads/master@{#36543}
      8c31bd81
    • rmcilroy's avatar
      [Interpreter] Inline test and compare binary ops. · b890d8c4
      rmcilroy authored
      This inlines the test and compare binary operations into Ignition.
      With this CL all binary ops are inlined into Ignition's bytecode
      handlers.
      
      Some blocks were shuffled around in Equals/NotEquals stubs to avoid
      creating frames unecessarily. Some labels were also marked as non-
      deferred in both Equals/NotEquals and the AbstractRelationalComparison
      stubs for the same reason.
      
      BUG=v8:4280
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2013573004
      Cr-Commit-Position: refs/heads/master@{#36542}
      b890d8c4
    • mike's avatar
      Correct in-line comment · 34c202a0
      mike authored
      Commit c86f1897 corrected the way context from which a specific error is
      thrown, but the in-line comment was not updated to reflect this.
      
      Update the comment to accurately describe the intended behavior.
      
      LOG=N
      R=littledan@chromium.org
      BUG=
      
      Review-Url: https://codereview.chromium.org/1999483002
      Cr-Commit-Position: refs/heads/master@{#36541}
      34c202a0
    • bmeurer's avatar
      [runtime] Remove the obsolete %_StringCharAt intrinsic. · b2fd2ded
      bmeurer authored
      This intrinsic (and the matching runtime entry) are no longer used by
      now and can thereby be removed.
      
      BUG=v8:5049
      
      Review-Url: https://codereview.chromium.org/2016993003
      Cr-Commit-Position: refs/heads/master@{#36540}
      b2fd2ded
    • mvstanton's avatar
      Move of the type feedback vector to the closure. · 91c88644
      mvstanton authored
      We get less "pollution" of type feedback if we have one vector per native
      context, rather than one for the whole system. This CL moves the vector
      appropriately.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/1906823002
      Cr-Commit-Position: refs/heads/master@{#36539}
      91c88644
    • lpy's avatar
      Add missing system time in Mac ThreadTicks. · 1332be4a
      lpy authored
      Currently Mac ComputeThreadTicks only uses user time, this patch adds system
      time in order to get more accurate CPU time.
      
      BUG=v8:4984
      LOG=n
      
      Review-Url: https://codereview.chromium.org/2016513002
      Cr-Commit-Position: refs/heads/master@{#36538}
      1332be4a
    • v8-autoroll's avatar
      Update V8 DEPS. · 37d3ad89
      v8-autoroll authored
      Rolling v8/build to d96032ba08a39623c95c377a5f592f9931c93385
      
      TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org
      
      Review-Url: https://codereview.chromium.org/2017003002
      Cr-Commit-Position: refs/heads/master@{#36537}
      37d3ad89
  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 28 commits