1. 18 Feb, 2019 5 commits
    • Andrew Comminos's avatar
      [cpu-profiler] Wait on a condition variable in the sampling thread to enable quicker shutdowns · 6188533d
      Andrew Comminos authored
      Signal a condition variable when profiling thread shutdown should occur,
      waking up a profiling thread that's currently waiting for the next tick.
      
      Mitigates the case where if a high sample interval is specified (e.g.
      60s), the main thread is blocked until the next sample occurs due to a
      Sleep() call.
      
      Bug: v8:8843
      Change-Id: Ied6b0bfb5c47a072ade17870911b961f5091f613
      Reviewed-on: https://chromium-review.googlesource.com/c/1470953
      Commit-Queue: Peter Marshall <petermarshall@chromium.org>
      Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
      Reviewed-by: 's avatarAlexei Filippov <alph@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59648}
      6188533d
    • Ulan Degenbaev's avatar
      [heap] Small fixes for young large objects · d56da546
      Ulan Degenbaev authored
      This replaces Heap::InNewSpace with Heap::InYoungGeneration and
      fixes tests that are sensitive to page size.
      
      Bug: chromium:852420
      Change-Id: I32b1eafb45813ea3bdcbda075f9e6156aaf4c5e3
      Reviewed-on: https://chromium-review.googlesource.com/c/1475766Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59647}
      d56da546
    • Ulan Degenbaev's avatar
      [heap] Fix slots recording for promoted large objects · ec68d97d
      Ulan Degenbaev authored
      The page flags of a large object promoted during scavenge are not
      updated until the finalization of the scavenge. Thus during slots
      recording they still indicate that the large object is in the from
      space.
      
      The MarkCompactCollector::RecordSlot bails out for object in young
      generation, which results in missing old-to-old slot. The fix is
      to insert the slot directly to the remembered set.
      
      Bug: chromium:852420
      Change-Id: Ib3d62e6d939191411729dbc2eb16b89a171a1e80
      Reviewed-on: https://chromium-review.googlesource.com/c/1475765Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59646}
      ec68d97d
    • Jakob Gruber's avatar
      Revert "[builtins]: Optimize CreateTypedArray to use element size log 2 for calculations." · ced2e4ee
      Jakob Gruber authored
      This reverts commit c9ef0405.
      
      Reason for revert: https://crbug.com/932034
      
      Original change's description:
      > [builtins]: Optimize CreateTypedArray to use element size log 2 for calculations.
      >
      > TypedArrayElementsInfo now represents an element's size as a log 2 and typed as
      > uintptr.  This simplifies and speeds up (avoids possible HeapNumber allocations) a
      > number of calculations:
      >
      >   - Number of Elements (length) -> Byte Length - is now a WordShl
      >   - Byte Length -> Number of Elements (length) - is now a WordShr
      >   - Testing alignment (byte offset or length)  - is now a WordAnd
      >
      > These element/byte length related calculations are encapsulated in
      > TypedArrayElementsInfo as struct methods.
      >
      > This reduces the size of CreateTypedArray by 2.125 KB (24%) on Mac x64.release:
      >   - Before: 9,088
      >   - After:  6,896
      >
      > This improves the performance of the following microbencmarks
      >   - TypedArrays-ConstructWithBuffer: ~87%
      >   - TypedArrays-SubarrayNoSpecies:   ~28%
      >
      > Bug: v8:7161
      > Change-Id: I2239fd0e0af9d3ad55cd52318088d3c7c913ae44
      > Reviewed-on: https://chromium-review.googlesource.com/c/1456299
      > Commit-Queue: Peter Wong <peter.wm.wong@gmail.com>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Simon Zünd <szuend@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#59531}
      
      TBR=peter.wm.wong@gmail.com,jgruber@chromium.org,petermarshall@chromium.org,szuend@chromium.org
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Bug: v8:7161, chromium:932034
      Change-Id: I3da95447ce34f84d01629d2791868f3adcdfb387
      Reviewed-on: https://chromium-review.googlesource.com/c/1475764
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59645}
      ced2e4ee
    • Jon Kunkee's avatar
      Fix namespace of ARM64 Windows FlushInstructionCache call · 61c344e6
      Jon Kunkee authored
      In the current version of the MSVC toolchain, it seems that the
      compiler finds a near-match for the FlushInstructionCache call in
      v8::internal::, so instead of looking in other namespaces for matching
      overrides it emits this error:
      
      C2660: 'v8::internal::FlushInstructionCache': function does not take 3 arguments
      
      This change works around this by explicitly stating the expected
      namespace.
      
      Bug: chromium:927113
      Change-Id: Ie39d6fdd458646fc86a4a2b16a93d6888ef1a5ae
      Reviewed-on: https://chromium-review.googlesource.com/c/1462260Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59644}
      61c344e6
  2. 16 Feb, 2019 2 commits
  3. 15 Feb, 2019 27 commits
  4. 14 Feb, 2019 6 commits
    • Andrey Kosyakov's avatar
      DevTools protocol roll · 6703647b
      Andrey Kosyakov authored
      ... to revision c40253f87c475880d1bdad4a90cf21c38dadf4ac
      
      Also, preseve binary protocol when restoring session.
      
      Bug: chromium:929862
      Change-Id: Icb1cb04b42ca7238b46e2978337b36e32398665f
      Reviewed-on: https://chromium-review.googlesource.com/c/1474556
      Commit-Queue: Andrey Kosyakov <caseq@chromium.org>
      Commit-Queue: Pavel Feldman <pfeldman@chromium.org>
      Reviewed-by: 's avatarPavel Feldman <pfeldman@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59614}
      6703647b
    • Hannu Trey's avatar
      Re-detect the host time zone if requested by an embedder · f781f522
      Hannu Trey authored
      Add an enum argument to DateTimeConfigurationChangeNotification to
      control whether or not to redetect the host time zone. The default value
      kSkip doesn't cause redetecting so that callers do not need to change if
      they want the current behavior (e.g. Chromium).
      
      Note that the host time zone detection does not work when v8 is run
      inside a sandbox as in Chromium so that Chromium detects the host time
      zone outside the sandbox before calling
      DateTimeConfigurationChangeNotification. OTOH, other v8 embedders may
      find it more convenient for v8 to do the host time zone detection on
      their behalf. In that case, they can call the function with the new
      argument set to value kRedetect.
      
      Test:
      With PHP+V8Js on linux, execute:
      php -r '
        putenv("TZ=Europe/Helsinki");
        $v8 = new V8Js();
        $v8->executeString("print((new Date(0)).toString()+\"\\n\");");
        putenv("TZ=America/New_York");
        $v8->executeString("print((new Date(0)).toString()+\"\\n\");");'
      
      Result before modification:
      Thu Jan 01 1970 02:00:00 GMT+0200 (Eastern European Standard Time)
      Thu Jan 01 1970 02:00:00 GMT+0200 (Eastern European Standard Time)
      
      Result after modification:
      Thu Jan 01 1970 02:00:00 GMT+0200 (Eastern European Standard Time)
      Thu Jan 01 1970 02:00:00 GMT+0200 (Eastern European Standard Time)
      
      Result after V8JS is modified to use value kRedetect when calling
      
      Thu Jan 01 1970 02:00:00 GMT+0200 (Eastern European Standard Time)
      Wed Dec 31 1969 19:00:00 GMT-0500 (Eastern Standard Time)
      
      DateTimeConfigurationChangeNotification: 
      Change-Id: I005192dd42669a94f606a49baa9eafad3475b9fd
      Reviewed-on: https://chromium-review.googlesource.com/c/1449637Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarJungshik Shin <jshin@chromium.org>
      Commit-Queue: Jungshik Shin <jshin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59613}
      f781f522
    • Frank Tang's avatar
      [Intl] Performance benchmark for String.normalize · e15586e7
      Frank Tang authored
      $ python -u tools/run_perf.py --binary-override-path   out/x64.release/d8 --filter "JSTests/Strings/StringNormalize"  test/js-perf-test/JSTests.json
      INFO      >>> Running suite: JSTests/Strings/StringNormalize
      INFO      >>> Stdout (#1):
      StringNormalize-Strings(Score): 4014
      StringNormalizeNFD-Strings(Score): 742
      StringNormalizeNFKC-Strings(Score): 3066
      StringNormalizeNFKD-Strings(Score): 739
      
      Bug: v8:8844
      Change-Id: Ic941bafa82cead9cd0110ad7ac46e528d481189b
      Reviewed-on: https://chromium-review.googlesource.com/c/1470964
      Commit-Queue: Frank Tang <ftang@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59612}
      e15586e7
    • Frank Tang's avatar
      [Intl] Cleans up intl-list-format flag · d595e225
      Frank Tang authored
      Part 2 after part 1 removed flags from all tests.
      
      Bug: v8:8705
      Change-Id: Id2e299cc574228548460a562496d7905b834dc6b
      Reviewed-on: https://chromium-review.googlesource.com/c/1461800
      Commit-Queue: Frank Tang <ftang@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59611}
      d595e225
    • Benedikt Meurer's avatar
      [v8-extras] Harden `resolvePromise()` and `rejectPromise()`. · aa00ee22
      Benedikt Meurer authored
      The V8 Extras API provides `resolvePromise()` and `rejectPromise()`
      functions that bypass the safety net of the resolve/reject closures
      that you get from using the Promise constructor. So it's the
      responsibility of the user to make sure that the promises are still
      pending. This adds release mode checking and hard aborts to make
      sure we catch misuse of these APIs early.
      
      This also turns the DCHECK's in the C++ implementation into actual
      CHECK's to make sure we crash hard if the invariants are violated.
      
      Bug: chromium:931949, chromium:931640
      Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
      Change-Id: I98a6f424d2a3cfbb608fed21036caff6e2510ec3
      Reviewed-on: https://chromium-review.googlesource.com/c/1472291Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Reviewed-by: 's avatarSathya Gunasekaran <gsathya@chromium.org>
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59610}
      aa00ee22
    • Johannes Henkel's avatar
      Add script for rolling the inspector protocol to V8. · ee0e4c33
      Johannes Henkel authored
      This is a tweaked version of the script that I just added to Chromium:
      
      https://cs.chromium.org/chromium/src/third_party/inspector_protocol/roll.py
      
      Change-Id: I21566f2472c20ecfd713996974c0833b7988a122
      Reviewed-on: https://chromium-review.googlesource.com/c/1469376Reviewed-by: 's avatarPavel Feldman <pfeldman@chromium.org>
      Commit-Queue: Johannes Henkel <johannes@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59609}
      ee0e4c33