1. 10 Sep, 2019 1 commit
  2. 30 Aug, 2019 1 commit
    • Leszek Swirski's avatar
      Reland "[destructuring] Elide coercible check for simple keys" · ef2df57a
      Leszek Swirski authored
      This is a reland of 1fba0441
      Chromium expectation tests have been disabled, and will be enabled
      
      Original change's description:
      > [destructuring] Elide coercible check for simple keys
      >
      > Simple object destructuring, such as `let {a,b} = o`, is less efficient
      > than the equivalent assignments `let a = o.a; let b = o.b`. This is
      > because it does a nil check of `o` before the assignments. However, this
      > nil check is not strictly necessary for simple (i.e. non-computed) names,
      > as there will be an equivalent nil check on the first access to o in
      > `o.a`. For computed names the computation is unfortunately obervable.
      >
      > So, we can elide the nil check when the first property (if any) of the
      > destructuring target is a non-computed name. This messes a bit with our
      > error messages, so we re-use the CallPrinter to also find destructuring
      > assignment based errors, and fiddle with the error message there. As
      > a side-effect, we also get out the object name in the AST, so we can
      > output a slightly nicer error message.
      >
      > Change-Id: Iafa858e27ed771a146cd3ba57903cc73bb46951d
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1773254
      > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
      > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
      > Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#63453}
      
      TBR=verwaest@chromium.org
      
      Bug: chromium:999473
      Change-Id: Ib0b2e4be433c50521ba1722e1c06b672bfefa405
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1777702Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#63477}
      ef2df57a
  3. 29 Aug, 2019 2 commits
    • Adam Klein's avatar
      Revert "[destructuring] Elide coercible check for simple keys" · 28fa4cb4
      Adam Klein authored
      This reverts commit 1fba0441.
      
      Reason for revert: blocks V8 roll due to layout test failures caused by error message changes:
      https://ci.chromium.org/p/v8/builders/ci/V8%20Blink%20Linux/347
      
      Original change's description:
      > [destructuring] Elide coercible check for simple keys
      > 
      > Simple object destructuring, such as `let {a,b} = o`, is less efficient
      > than the equivalent assignments `let a = o.a; let b = o.b`. This is
      > because it does a nil check of `o` before the assignments. However, this
      > nil check is not strictly necessary for simple (i.e. non-computed) names,
      > as there will be an equivalent nil check on the first access to o in
      > `o.a`. For computed names the computation is unfortunately obervable.
      > 
      > So, we can elide the nil check when the first property (if any) of the
      > destructuring target is a non-computed name. This messes a bit with our
      > error messages, so we re-use the CallPrinter to also find destructuring
      > assignment based errors, and fiddle with the error message there. As
      > a side-effect, we also get out the object name in the AST, so we can
      > output a slightly nicer error message.
      > 
      > Change-Id: Iafa858e27ed771a146cd3ba57903cc73bb46951d
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1773254
      > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
      > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
      > Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#63453}
      
      TBR=leszeks@chromium.org,verwaest@chromium.org
      
      Change-Id: I74cf06ebd987e5b8bbe1831b0042c085edf37f5b
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1776994Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Commit-Queue: Adam Klein <adamk@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#63465}
      28fa4cb4
    • Leszek Swirski's avatar
      [destructuring] Elide coercible check for simple keys · 1fba0441
      Leszek Swirski authored
      Simple object destructuring, such as `let {a,b} = o`, is less efficient
      than the equivalent assignments `let a = o.a; let b = o.b`. This is
      because it does a nil check of `o` before the assignments. However, this
      nil check is not strictly necessary for simple (i.e. non-computed) names,
      as there will be an equivalent nil check on the first access to o in
      `o.a`. For computed names the computation is unfortunately obervable.
      
      So, we can elide the nil check when the first property (if any) of the
      destructuring target is a non-computed name. This messes a bit with our
      error messages, so we re-use the CallPrinter to also find destructuring
      assignment based errors, and fiddle with the error message there. As
      a side-effect, we also get out the object name in the AST, so we can
      output a slightly nicer error message.
      
      Change-Id: Iafa858e27ed771a146cd3ba57903cc73bb46951d
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1773254Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#63453}
      1fba0441
  4. 08 Aug, 2019 1 commit
  5. 24 Jul, 2019 1 commit
  6. 12 Jul, 2019 1 commit
  7. 08 Jul, 2019 1 commit
  8. 04 Jul, 2019 1 commit
    • Simon Zünd's avatar
      [stack-trace] Separate stack-trace symbolization and serialization · db24e200
      Simon Zünd authored
      This CL moves the code responsible for serializing a stack trace frame into
      a string, out of messages.cc and into stack-frame-info.cc. Instead of
      symbolizing the stack trace frame while serializing, the code is changed to
      work on top of StackTraceFrame and StackFrameInfo objects.
      
      The result is that the serialization code no longer cares when a stack trace
      frame is symbolized. Symbolization could happen eagerly during capturing, or
      lazily the first time any of StackFrameInfo fields are accessed.
      
      Drive-by: Existing users of StackFrameBase::ToString are adapted to the
      new SerializeStackTraceFrame API. This includes Isolate::PrintCurrentStackTrace,
      which is changed to re-use the existing capturing and serializing mechanism.
      
      Bug: v8:8742
      Change-Id: Ic7fd80668c9d993e99d586ef7fe022850104c34f
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1631414
      Commit-Queue: Simon Zünd <szuend@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#62522}
      db24e200
  9. 28 Jun, 2019 1 commit
  10. 14 Jun, 2019 1 commit
    • Simon Zünd's avatar
      [stack-trace] Change column number for wasm frames to module offset · f16f0bcc
      Simon Zünd authored
      The CL https://crrev.com/c/1646846 changed column numbers for Wasm
      frames in Error.stack traces. Instead of using the offset relative to
      the beginning of the function, the absolute offset inside the module
      is displayed as hex.
      
      This CL propagates that change to the StackTrace C++ API, so
      StackFrame::GetColumn() also returns the absolute offset. Note that the
      StackFrame API historically uses "0" to signal "no information", so the
      line and column numbers for Wasm frames are also adjusted to 1-based,
      even though they signify function index and absolute offset
      into the module.
      
      This CL does not touch Script::PositionInfo.column. That field still
      contains the offset relative to the function start.
      
      Bug: v8:8742
      Change-Id: If4fd37fa681c7ebd0823ce0d95eccc1335c35272
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1655300
      Commit-Queue: Simon Zünd <szuend@chromium.org>
      Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#62171}
      f16f0bcc
  11. 11 Jun, 2019 3 commits
  12. 06 Jun, 2019 1 commit
  13. 05 Jun, 2019 1 commit
  14. 23 May, 2019 4 commits
  15. 22 May, 2019 1 commit
  16. 21 May, 2019 1 commit
  17. 20 May, 2019 1 commit
  18. 17 May, 2019 3 commits
  19. 16 May, 2019 2 commits
  20. 10 May, 2019 1 commit
    • Dan Elphick's avatar
      Reland "Reland "[compiler] Don't collect source positions for the top frame"" · bf9e3e4d
      Dan Elphick authored
      This is a reland of f2e65226
      
      Nothing has changed but
      https://chromium-review.googlesource.com/c/v8/v8/+/1585269 has been rolled
      back due to v8:9234.
      
      Original change's description:
      > Reland "[compiler] Don't collect source positions for the top frame"
      >
      > Fixed crashes by adding missing call to EnsureSourcePositionsAvailable,
      > which requires clearing and restoring the pending exception.
      >
      > > While most source positions were not collected even throwing exceptions,
      > > the top frame still was always collected as it was used to initialize
      > > the JSMessageObject. This skips even that frame, by storing the
      > > SharedFunctionInfo and bytecode offset in the JSMessageObject allowing
      > > it to lazily evaluate the actual source position.
      > >
      > > Also adds tests to test-api.cc that test each of the source position
      > > functions in isolation to ensure that they don't rely on previous
      > > invocations to call the source collection function.
      > >
      > > Since no source positions are now collected at the point when an
      > > exception is thrown, the mjsunit/stack-traces-overflow now passes again
      > > with the flag enabled. (cctest/test-cpu-profiler/Inlining2 is now the
      > > only failure).
      >
      > Bug: v8:8510
      > Change-Id: Ifa5fe31d3db34a6c6d6a9cef3d646ad620dabd81
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1601270
      > Commit-Queue: Dan Elphick <delphick@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#61372}
      
      TBR=ulan@chromium.org
      
      Bug: v8:8510
      Change-Id: Iaa9e376f90d10c0f25d1bcc352808363e4ea8b4d
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1605946Reviewed-by: 's avatarDan Elphick <delphick@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61418}
      bf9e3e4d
  21. 09 May, 2019 2 commits
    • Maya Lekova's avatar
      Revert "Reland "[compiler] Don't collect source positions for the top frame"" · 9dff517a
      Maya Lekova authored
      This reverts commit f2e65226.
      
      Reason for revert: Speculative revert, seems to break GC stress bot and block LKGR - https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot/25701
      
      Original change's description:
      > Reland "[compiler] Don't collect source positions for the top frame"
      > 
      > Fixed crashes by adding missing call to EnsureSourcePositionsAvailable,
      > which requires clearing and restoring the pending exception.
      > 
      > > While most source positions were not collected even throwing exceptions,
      > > the top frame still was always collected as it was used to initialize
      > > the JSMessageObject. This skips even that frame, by storing the
      > > SharedFunctionInfo and bytecode offset in the JSMessageObject allowing
      > > it to lazily evaluate the actual source position.
      > >
      > > Also adds tests to test-api.cc that test each of the source position
      > > functions in isolation to ensure that they don't rely on previous
      > > invocations to call the source collection function.
      > >
      > > Since no source positions are now collected at the point when an
      > > exception is thrown, the mjsunit/stack-traces-overflow now passes again
      > > with the flag enabled. (cctest/test-cpu-profiler/Inlining2 is now the
      > > only failure).
      > 
      > Bug: v8:8510
      > Change-Id: Ifa5fe31d3db34a6c6d6a9cef3d646ad620dabd81
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1601270
      > Commit-Queue: Dan Elphick <delphick@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#61372}
      
      TBR=ulan@chromium.org,rmcilroy@chromium.org,delphick@chromium.org
      
      Change-Id: Ie590df6c308b38836afc5d417d03d2a63260bcb2
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:8510
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1602692Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
      Commit-Queue: Maya Lekova <mslekova@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61381}
      9dff517a
    • Dan Elphick's avatar
      Reland "[compiler] Don't collect source positions for the top frame" · f2e65226
      Dan Elphick authored
      Fixed crashes by adding missing call to EnsureSourcePositionsAvailable,
      which requires clearing and restoring the pending exception.
      
      > While most source positions were not collected even throwing exceptions,
      > the top frame still was always collected as it was used to initialize
      > the JSMessageObject. This skips even that frame, by storing the
      > SharedFunctionInfo and bytecode offset in the JSMessageObject allowing
      > it to lazily evaluate the actual source position.
      >
      > Also adds tests to test-api.cc that test each of the source position
      > functions in isolation to ensure that they don't rely on previous
      > invocations to call the source collection function.
      >
      > Since no source positions are now collected at the point when an
      > exception is thrown, the mjsunit/stack-traces-overflow now passes again
      > with the flag enabled. (cctest/test-cpu-profiler/Inlining2 is now the
      > only failure).
      
      Bug: v8:8510
      Change-Id: Ifa5fe31d3db34a6c6d6a9cef3d646ad620dabd81
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1601270
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61372}
      f2e65226
  22. 07 May, 2019 2 commits
    • Dan Elphick's avatar
      Revert "[compiler] Don't collect source positions for the top frame" · 4bb78818
      Dan Elphick authored
      This reverts commit 758700a7.
      
      Reason for revert: Broken
      
      Original change's description:
      > [compiler] Don't collect source positions for the top frame
      > 
      > While most source positions were not collected even throwing exceptions,
      > the top frame still was always collected as it was used to initialize
      > the JSMessageObject. This skips even that frame, by storing the
      > SharedFunctionInfo and bytecode offset in the JSMessageObject allowing
      > it to lazily evaluate the actual source position.
      > 
      > Also adds tests to test-api.cc that test each of the source position
      > functions in isolation to ensure that they don't rely on previous
      > invocations to call the source collection function.
      > 
      > Since no source positions are now collected at the point when an
      > exception is thrown, the mjsunit/stack-traces-overflow now passes again
      > with the flag enabled. (cctest/test-cpu-profiler/Inlining2 is now the
      > only failure).
      > 
      > Bug: v8:8510
      > Change-Id: Ic5382bdbab65cd8838f0c84b544fabb1a9109d13
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1587385
      > Commit-Queue: Dan Elphick <delphick@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#61271}
      
      TBR=ulan@chromium.org,rmcilroy@chromium.org,delphick@chromium.org
      
      Change-Id: I3ee0b5db5f8a1b3255f68070dc10d27d0e013048
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:8510
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1598758Reviewed-by: 's avatarDan Elphick <delphick@chromium.org>
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61273}
      4bb78818
    • Dan Elphick's avatar
      [compiler] Don't collect source positions for the top frame · 758700a7
      Dan Elphick authored
      While most source positions were not collected even throwing exceptions,
      the top frame still was always collected as it was used to initialize
      the JSMessageObject. This skips even that frame, by storing the
      SharedFunctionInfo and bytecode offset in the JSMessageObject allowing
      it to lazily evaluate the actual source position.
      
      Also adds tests to test-api.cc that test each of the source position
      functions in isolation to ensure that they don't rely on previous
      invocations to call the source collection function.
      
      Since no source positions are now collected at the point when an
      exception is thrown, the mjsunit/stack-traces-overflow now passes again
      with the flag enabled. (cctest/test-cpu-profiler/Inlining2 is now the
      only failure).
      
      Bug: v8:8510
      Change-Id: Ic5382bdbab65cd8838f0c84b544fabb1a9109d13
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1587385
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61271}
      758700a7
  23. 06 May, 2019 1 commit
  24. 29 Apr, 2019 1 commit
    • Clemens Hammacher's avatar
      [cleanup] Use Vector::begin instead of Vector::start · 4b0f9c85
      Clemens Hammacher authored
      Our {Vector} template provides both {start} and {begin} methods. They
      return exactly the same value. Since the {begin} method is needed for
      iteration, and is also what standard containers provide, this CL
      switches all uses of the {start} method to use {begin} instead.
      
      Patchset 1 was auto-generated by using this clang AST matcher:
          callExpr(
              callee(
                cxxMethodDecl(
                  hasName("start"),
                  ofClass(hasName("v8::internal::Vector")))
              ),
              argumentCountIs(0))
      
      Patchset 2 was created by running clang-format. Patchset 3 then
      removes the now unused {Vector::start} method.
      
      R=jkummerow@chromium.org
      TBR=mstarzinger@chromium.org,yangguo@chromium.org,verwaest@chromium.org
      
      Bug: v8:9183
      Change-Id: Id9f01c92870872556e2bb3f6d5667463b0e3e5c6
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1587381Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61081}
      4b0f9c85
  25. 26 Apr, 2019 1 commit
  26. 12 Apr, 2019 1 commit
  27. 02 Apr, 2019 1 commit
  28. 28 Mar, 2019 1 commit
  29. 25 Mar, 2019 1 commit