1. 09 Apr, 2019 1 commit
  2. 04 Apr, 2019 1 commit
  3. 27 Feb, 2019 1 commit
  4. 01 Feb, 2019 2 commits
  5. 26 Dec, 2018 1 commit
  6. 17 Dec, 2018 1 commit
  7. 08 Dec, 2018 1 commit
  8. 27 Nov, 2018 1 commit
  9. 31 Oct, 2018 3 commits
  10. 28 Sep, 2018 1 commit
  11. 11 Sep, 2018 1 commit
  12. 10 Sep, 2018 1 commit
  13. 04 Sep, 2018 1 commit
  14. 03 Sep, 2018 1 commit
    • Yang Guo's avatar
      Revert "inspector: find magic comment using V8 scanner" · 4a96850a
      Yang Guo authored
      This reverts commit 1b3b808a.
      
      Reason for revert: crbug/879988
      
      TBR=kozy@chromium.org
      
      Original change's description:
      > inspector: find magic comment using V8 scanner
      >
      > Inspector tries to provide sourceURL and sourceMappingURL for scripts
      > with parser errors. Without this CL we convert source of each script
      > to inspector string and search for magic comment there. Some web sites
      > use pattern when they get some data from network and constantly try to
      > parse this data as JSON, in this case we do a lot of useless work.
      >
      > So we can parse magic comments on V8 side only for compilation errors
      > (excluding parse JSON errors), to do it we can reuse scanner by running
      > it on each potential comment.
      >
      > R=​alph@chromium.org,verwaest@chromium.org,yangguo@chromium.org
      >
      > Bug: chromium:873865,v8:7731
      > Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel
      > Change-Id: I77c270fd0e95cd7b2c9ee4b7f72ef344bc1fa104
      > Reviewed-on: https://chromium-review.googlesource.com/1182446
      > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
      > Reviewed-by: Alexei Filippov <alph@chromium.org>
      > Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#55280}
      
      TBR=alph@chromium.org,yangguo@chromium.org,kozyatinskiy@chromium.org,verwaest@chromium.org
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Bug: chromium:873865, v8:7731, chromium:879988
      Change-Id: Ia7ac766e19f9b58562d9430811f10b25c4556a46
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel
      Reviewed-on: https://chromium-review.googlesource.com/1202583
      Commit-Queue: Yang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55594}
      4a96850a
  15. 29 Aug, 2018 1 commit
    • Alexey Kozyatinskiy's avatar
      Reland "inspector: find magic comment using V8 scanner" · cd7f9c63
      Alexey Kozyatinskiy authored
      This is a reland of 1b3b808a
      
      Original change's description:
      > inspector: find magic comment using V8 scanner
      >
      > Inspector tries to provide sourceURL and sourceMappingURL for scripts
      > with parser errors. Without this CL we convert source of each script
      > to inspector string and search for magic comment there. Some web sites
      > use pattern when they get some data from network and constantly try to
      > parse this data as JSON, in this case we do a lot of useless work.
      >
      > So we can parse magic comments on V8 side only for compilation errors
      > (excluding parse JSON errors), to do it we can reuse scanner by running
      > it on each potential comment.
      >
      > R=alph@chromium.org,verwaest@chromium.org,yangguo@chromium.org
      >
      > Bug: chromium:873865,v8:7731
      > Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel
      > Change-Id: I77c270fd0e95cd7b2c9ee4b7f72ef344bc1fa104
      > Reviewed-on: https://chromium-review.googlesource.com/1182446
      > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
      > Reviewed-by: Alexei Filippov <alph@chromium.org>
      > Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#55280}
      
      TBR=alph@chromium.org,verwaest@chromium.org,yangguo@chromium.org
      
      Bug: chromium:873865, v8:7731
      Change-Id: I097678fda0ebdcbd35a85be0bb6cf0fcb052bcbd
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel
      Reviewed-on: https://chromium-review.googlesource.com/1195533
      Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Reviewed-by: 's avatarAleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55507}
      cd7f9c63
  16. 22 Aug, 2018 1 commit
    • Maya Lekova's avatar
      Revert "inspector: find magic comment using V8 scanner" · 4a54b184
      Maya Lekova authored
      This reverts commit 1b3b808a.
      
      Reason for revert: Speculatively reverting because of https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8-Blink%20Linux%2064%20(dbg)/13264
      
      Original change's description:
      > inspector: find magic comment using V8 scanner
      > 
      > Inspector tries to provide sourceURL and sourceMappingURL for scripts
      > with parser errors. Without this CL we convert source of each script
      > to inspector string and search for magic comment there. Some web sites
      > use pattern when they get some data from network and constantly try to
      > parse this data as JSON, in this case we do a lot of useless work.
      > 
      > So we can parse magic comments on V8 side only for compilation errors
      > (excluding parse JSON errors), to do it we can reuse scanner by running
      > it on each potential comment.
      > 
      > R=​alph@chromium.org,verwaest@chromium.org,yangguo@chromium.org
      > 
      > Bug: chromium:873865,v8:7731
      > Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel
      > Change-Id: I77c270fd0e95cd7b2c9ee4b7f72ef344bc1fa104
      > Reviewed-on: https://chromium-review.googlesource.com/1182446
      > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
      > Reviewed-by: Alexei Filippov <alph@chromium.org>
      > Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#55280}
      
      TBR=alph@chromium.org,yangguo@chromium.org,kozyatinskiy@chromium.org,verwaest@chromium.org
      
      Change-Id: I60ab243107d5fcce100064232d0e278a51f38db9
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:873865, v8:7731
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel
      Reviewed-on: https://chromium-review.googlesource.com/1184921Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
      Commit-Queue: Maya Lekova <mslekova@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55300}
      4a54b184
  17. 21 Aug, 2018 1 commit
    • Alexey Kozyatinskiy's avatar
      inspector: find magic comment using V8 scanner · 1b3b808a
      Alexey Kozyatinskiy authored
      Inspector tries to provide sourceURL and sourceMappingURL for scripts
      with parser errors. Without this CL we convert source of each script
      to inspector string and search for magic comment there. Some web sites
      use pattern when they get some data from network and constantly try to
      parse this data as JSON, in this case we do a lot of useless work.
      
      So we can parse magic comments on V8 side only for compilation errors
      (excluding parse JSON errors), to do it we can reuse scanner by running
      it on each potential comment.
      
      R=alph@chromium.org,verwaest@chromium.org,yangguo@chromium.org
      
      Bug: chromium:873865,v8:7731
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel
      Change-Id: I77c270fd0e95cd7b2c9ee4b7f72ef344bc1fa104
      Reviewed-on: https://chromium-review.googlesource.com/1182446Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Reviewed-by: 's avatarAlexei Filippov <alph@chromium.org>
      Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55280}
      1b3b808a
  18. 17 Aug, 2018 1 commit
  19. 13 Aug, 2018 2 commits
  20. 03 Aug, 2018 1 commit
    • Ben Newman's avatar
      [debug] Fully implement Debug::ArchiveDebug and Debug::RestoreDebug. · a8f68691
      Ben Newman authored
      I have a project that embeds V8 and uses a single `Isolate` from multiple
      threads. The program runs just fine, but sometimes the inspector doesn't
      stop on the correct line after stepping over a statement that switches
      threads behind the scenes, even though the original thread is restored by
      the time the next statement is executed.
      
      After some digging, I discovered that the `Debug::ArchiveDebug` and
      `Debug::RestoreDebug` methods, which should be responsible for
      saving/restoring this `ThreadLocal` information when switching threads,
      currently don't do anything.
      
      This commit implements those methods using MemCopy, in the style of other
      Archive/Restore methods in the V8 codebase.
      
      Related: https://groups.google.com/forum/#!topic/v8-users/_Qf2rwljRk8
      
      Note: I believe my employer, Meteor Development Group, has previously
      signed the CLA using the group email address google-contrib@meteor.com.
      
      R=yangguo@chromium.org,jgruber@chromium.org
      CC=info@bnoordhuis.nl
      
      Bug: v8:7230
      Change-Id: Id517c873eb81cd53f7216c7efd441b956cf7f943
      Reviewed-on: https://chromium-review.googlesource.com/833260
      Commit-Queue: Yang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54902}
      a8f68691
  21. 23 Jul, 2018 1 commit
  22. 20 Jul, 2018 1 commit
  23. 05 Jul, 2018 1 commit
  24. 03 Jul, 2018 3 commits
    • Alexey Kozyatinskiy's avatar
      Reland "[debug] liveedit in native" · 5505c664
      Alexey Kozyatinskiy authored
      This is a reland of 3dfaf826
      
      Original change's description:
      > [debug] liveedit in native
      >
      > Liveedit step-by-step:
      > 1. calculate diff between old source and new source,
      > 2. map function literals from old source to new source,
      > 3. create new script for new_source,
      > 4. mark literals with changed code as changed, all others as unchanged,
      > 5. check that for changed literals there are no:
      >   - running generators in the heap,
      >   - non droppable frames (e.g. running generator) above them on stack.
      > 6. mark the bottom most frame with changed function as scheduled for
      >    restart if any.
      > 7. for unchanged functions:
      >   - deoptimize,
      >   - remove from cache,
      >   - update source positions,
      >   - move to new script,
      >   - reset feedback information and preparsed scope information if any,
      >   - replace any sfi in constant pool with changed one if any.
      > 8. for changed functions:
      >   - deoptimize
      >   - remove from cache,
      >   - reset feedback information,
      >   - update all links from js functions to old shared with new one.
      > 9. swap scripts.
      >
      > TBR=ulan@chromium.org
      >
      > Bug: v8:7862,v8:5713
      > Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel
      > Change-Id: I8f6f6156318cc82d6f36d7ebc1c9f7d5f3aa1461
      > Reviewed-on: https://chromium-review.googlesource.com/1105493
      > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      > Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#54146}
      
      TBR=dgozman@chromium.org
      
      Bug: v8:7862, v8:5713
      Change-Id: I163ed2fd2ca3115ba0de74cb35a6fac9e40fdd94
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel
      Reviewed-on: https://chromium-review.googlesource.com/1124879
      Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Reviewed-by: 's avatarAleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54187}
      5505c664
    • Yang Guo's avatar
      Revert "[debug] liveedit in native" · 22594d10
      Yang Guo authored
      This reverts commit 3dfaf826.
      
      Reason for revert: Failures - https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20gcc%204.8/20394
      
      Original change's description:
      > [debug] liveedit in native
      > 
      > Liveedit step-by-step:
      > 1. calculate diff between old source and new source,
      > 2. map function literals from old source to new source,
      > 3. create new script for new_source,
      > 4. mark literals with changed code as changed, all others as unchanged,
      > 5. check that for changed literals there are no:
      >   - running generators in the heap,
      >   - non droppable frames (e.g. running generator) above them on stack.
      > 6. mark the bottom most frame with changed function as scheduled for
      >    restart if any.
      > 7. for unchanged functions:
      >   - deoptimize,
      >   - remove from cache,
      >   - update source positions,
      >   - move to new script,
      >   - reset feedback information and preparsed scope information if any,
      >   - replace any sfi in constant pool with changed one if any.
      > 8. for changed functions:
      >   - deoptimize
      >   - remove from cache,
      >   - reset feedback information,
      >   - update all links from js functions to old shared with new one.
      > 9. swap scripts.
      > 
      > TBR=ulan@chromium.org
      > 
      > Bug: v8:7862,v8:5713
      > Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel
      > Change-Id: I8f6f6156318cc82d6f36d7ebc1c9f7d5f3aa1461
      > Reviewed-on: https://chromium-review.googlesource.com/1105493
      > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      > Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#54146}
      
      TBR=dgozman@chromium.org,ulan@chromium.org,yangguo@chromium.org,kozyatinskiy@chromium.org
      
      Change-Id: I45df5b6f3abaf29e593c6ac11edefbd0177d0109
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:7862, v8:5713
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel
      Reviewed-on: https://chromium-review.googlesource.com/1124159Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Yang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54151}
      22594d10
    • Alexey Kozyatinskiy's avatar
      [debug] liveedit in native · 3dfaf826
      Alexey Kozyatinskiy authored
      Liveedit step-by-step:
      1. calculate diff between old source and new source,
      2. map function literals from old source to new source,
      3. create new script for new_source,
      4. mark literals with changed code as changed, all others as unchanged,
      5. check that for changed literals there are no:
        - running generators in the heap,
        - non droppable frames (e.g. running generator) above them on stack.
      6. mark the bottom most frame with changed function as scheduled for
         restart if any.
      7. for unchanged functions:
        - deoptimize,
        - remove from cache,
        - update source positions,
        - move to new script,
        - reset feedback information and preparsed scope information if any,
        - replace any sfi in constant pool with changed one if any.
      8. for changed functions:
        - deoptimize
        - remove from cache,
        - reset feedback information,
        - update all links from js functions to old shared with new one.
      9. swap scripts.
      
      TBR=ulan@chromium.org
      
      Bug: v8:7862,v8:5713
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel
      Change-Id: I8f6f6156318cc82d6f36d7ebc1c9f7d5f3aa1461
      Reviewed-on: https://chromium-review.googlesource.com/1105493Reviewed-by: 's avatarAleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Reviewed-by: 's avatarDmitry Gozman <dgozman@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54146}
      3dfaf826
  25. 02 Jul, 2018 1 commit
  26. 28 Jun, 2018 1 commit
    • Ross McIlroy's avatar
      [sfi] Remove DebugInfo field in SharedFunctionInfo. · c51bcd17
      Ross McIlroy authored
      Merges DebugInfo field into the function_identifier field, storing the function
      identifier in the DebugInfo. Also moves some debugging_hints bits to the SFI flags,
      and others to the DebugInfo. Finally, changes the logic to store debugger patched
      bytecode array on the SFI instead of the DebugInfo, simplifying the logic in the
      InterpreterEntryTrampoline.
      
      BUG=chromium:818642,chromium:783853
      TBR=hpayer@chromium.org
      
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      Change-Id: If440080c0f08fac4fb96f5e18dcc0eb9b86d4821
      Reviewed-on: https://chromium-review.googlesource.com/1115819
      Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54081}
      c51bcd17
  27. 22 Jun, 2018 1 commit
  28. 21 Jun, 2018 1 commit
  29. 20 Jun, 2018 2 commits
  30. 05 Jun, 2018 1 commit
  31. 03 Jun, 2018 1 commit
  32. 30 May, 2018 2 commits
    • Alexey Kozyatinskiy's avatar
      [inspector] reworked async stack instrumentation for async functions · b6c9086c
      Alexey Kozyatinskiy authored
      New intstrumentation consists of:
      - kAsyncFunctionSuspended when async function is suspended on await
        (called on each await),
      - kAsyncFunctionFinished when async function is finished.
      
      Old instrumentation was based on reusing async function promise.
      Using this promise produces couple side effects:
      - for any promise instrumentation we first need to check if it is
        special case for async function promise or not - it requires
        expensive reading from promise object.
      - we capture stack for async functions even if it does not contain
        awaits.
      - we do not properly cancel async task created for async function.
      
      New intsrumntation resolved all these problems as well as provide
      clear mapping between async task and generator which we can use later
      to fetch scope information for async functions on pause.
      
      R=dgozman@chromium.org,yangguo@chromium.org
      
      Bug: v8:7078
      Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
      Change-Id: Ifdcec947d91e6e3d4d5f9029bc080a19b8e23d41
      Reviewed-on: https://chromium-review.googlesource.com/1043096Reviewed-by: 's avatarSathya Gunasekaran <gsathya@chromium.org>
      Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarDmitry Gozman <dgozman@chromium.org>
      Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53445}
      b6c9086c
    • Alexey Kozyatinskiy's avatar
      [inspector] use interrupt for pause only as last resort · 6d87d957
      Alexey Kozyatinskiy authored
      With this CL we use interrupt for pause in two cases:
      - when we process Debugger.pause on interruption,
      - when we would like to break as soon as possible after OOM.
      In all other cases, e.g. for async step into we use break
      on function call by calling StepIn debugger action.
      
      In mentioned cases we should not actually use interrupt as well:
      - Debugger.pause in this case scheduled using interrupt and we
        may just break right now without requesting another interrupt,
        unfortunately blink side is not ready,
      - we should use more reliable way to break right after near OOM
        callback, otherwise we can get this callback, increase limit,
        request break on next interrupt, before interrupt get another
        huge memory allocation and crash.
      
      There are couple advantages:
      - we get much better break locations for async stepping
        (see inspector tests expectations),
      - we can remove DEBUG_BREAK interruption
        (it should speedup blackboxing with async tasks, see
        removed todo in debug.cc for details)
      - it is required preparation step for async step out,
        (see https://chromium-review.googlesource.com/c/v8/v8/+/1054618)
      
      Bug: v8:7753
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel
      Change-Id: Iabd7627dbffa9a0eab1736064caf589d02591926
      Reviewed-on: https://chromium-review.googlesource.com/1054155
      Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarDmitry Gozman <dgozman@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53439}
      6d87d957