1. 11 Apr, 2018 1 commit
  2. 05 Apr, 2018 1 commit
    • Alexey Kozyatinskiy's avatar
      Reland "[debug] introduced runtime side effect check" · 71018812
      Alexey Kozyatinskiy authored
      This is a reland of 7a2c3713
      
      Original change's description:
      > [debug] introduced runtime side effect check
      > 
      > This CL demonstrates minimum valuable addition to existing debug evaluate
      > without side effects mechanism.
      > With this CL user can evaluate expressions like:
      > [a,b] // create any kind of temporary array literals
      > [a,b].reduce((x,y) => x + y, 0); // use reduce method
      > [1,2,3].fill(2); // change temporary arrays
      > 
      > The core idea: any change of the object created during evaluation without
      > side effects is side effect free. As soon as we try to store this temporary
      > object to object existed before evaluation we will terminate execution.
      > 
      > Implementation:
      > - track all objects allocated during evaluation and mark them as temporary,
      > - patch all bytecodes which change objects.
      > 
      > A little more details (including performance analysis): [1].
      > 
      > [1] https://docs.google.com/document/d/10qqAtZADspPnpYa6SEdYRxrddfKIZJIzbLtGpsZQkRo/edit#
      > 
      > Bug: v8:7588
      > Change-Id: I69f7b96e1ebd7ad0022219e8213211c7be72a111
      > Reviewed-on: https://chromium-review.googlesource.com/972615
      > Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#52370}
      
      Bug: v8:7588
      Change-Id: Ibc92bf19155f2ddaedae39b0c576b994e84afcf8
      Reviewed-on: https://chromium-review.googlesource.com/996760Reviewed-by: 's avatarAleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52373}
      71018812
  3. 04 Apr, 2018 2 commits
    • Aleksey Kozyatinskiy's avatar
      Revert "[debug] introduced runtime side effect check" · 539a2443
      Aleksey Kozyatinskiy authored
      This reverts commit 7a2c3713.
      
      Reason for revert: msan is broken
      
      Original change's description:
      > [debug] introduced runtime side effect check
      > 
      > This CL demonstrates minimum valuable addition to existing debug evaluate
      > without side effects mechanism.
      > With this CL user can evaluate expressions like:
      > [a,b] // create any kind of temporary array literals
      > [a,b].reduce((x,y) => x + y, 0); // use reduce method
      > [1,2,3].fill(2); // change temporary arrays
      > 
      > The core idea: any change of the object created during evaluation without
      > side effects is side effect free. As soon as we try to store this temporary
      > object to object existed before evaluation we will terminate execution.
      > 
      > Implementation:
      > - track all objects allocated during evaluation and mark them as temporary,
      > - patch all bytecodes which change objects.
      > 
      > A little more details (including performance analysis): [1].
      > 
      > [1] https://docs.google.com/document/d/10qqAtZADspPnpYa6SEdYRxrddfKIZJIzbLtGpsZQkRo/edit#
      > 
      > Bug: v8:7588
      > Change-Id: I69f7b96e1ebd7ad0022219e8213211c7be72a111
      > Reviewed-on: https://chromium-review.googlesource.com/972615
      > Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#52370}
      
      TBR=ulan@chromium.org,rmcilroy@chromium.org,yangguo@chromium.org,kozyatinskiy@chromium.org,leszeks@chromium.org
      
      Change-Id: Ied1739c6308b13a4981189e0999f5912316cf456
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:7588
      Reviewed-on: https://chromium-review.googlesource.com/996135Reviewed-by: 's avatarAleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52371}
      539a2443
    • Alexey Kozyatinskiy's avatar
      [debug] introduced runtime side effect check · 7a2c3713
      Alexey Kozyatinskiy authored
      This CL demonstrates minimum valuable addition to existing debug evaluate
      without side effects mechanism.
      With this CL user can evaluate expressions like:
      [a,b] // create any kind of temporary array literals
      [a,b].reduce((x,y) => x + y, 0); // use reduce method
      [1,2,3].fill(2); // change temporary arrays
      
      The core idea: any change of the object created during evaluation without
      side effects is side effect free. As soon as we try to store this temporary
      object to object existed before evaluation we will terminate execution.
      
      Implementation:
      - track all objects allocated during evaluation and mark them as temporary,
      - patch all bytecodes which change objects.
      
      A little more details (including performance analysis): [1].
      
      [1] https://docs.google.com/document/d/10qqAtZADspPnpYa6SEdYRxrddfKIZJIzbLtGpsZQkRo/edit#
      
      Bug: v8:7588
      Change-Id: I69f7b96e1ebd7ad0022219e8213211c7be72a111
      Reviewed-on: https://chromium-review.googlesource.com/972615
      Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52370}
      7a2c3713
  4. 12 Mar, 2018 1 commit
  5. 06 Mar, 2018 1 commit
  6. 28 Feb, 2018 1 commit
  7. 29 Nov, 2017 1 commit
  8. 07 Sep, 2017 1 commit
  9. 01 Sep, 2017 1 commit
  10. 12 Apr, 2017 1 commit
  11. 10 Feb, 2017 1 commit
  12. 09 Feb, 2017 2 commits
  13. 12 Jan, 2017 1 commit
  14. 19 Dec, 2016 1 commit
  15. 05 Apr, 2016 1 commit
  16. 31 Mar, 2016 1 commit
  17. 15 Dec, 2015 1 commit
    • yangguo's avatar
      [debugger] debug-evaluate should not not modify local values. · abe2feb0
      yangguo authored
      Debug evaluate no longer writes back changes to the replicated
      context chain to the original after execution. Changes to the
      global object or script contexts still stick. Calling functions
      that bind to the original context chain also have their expected
      side effects.
      
      As far as I can tell, DevTools is not interested in modifying
      local variable values. Modifying global variable values still
      works as expected. However, I have not yet removed the old
      implementation, but merely keep it behind a flag.
      
      R=mstarzinger@chromium.org, rossberg@chromium.org
      
      Committed: https://crrev.com/92caa9b85eefffbef51c67428397951bd2e2c330
      Cr-Commit-Position: refs/heads/master@{#32841}
      
      Review URL: https://codereview.chromium.org/1513183003
      
      Cr-Commit-Position: refs/heads/master@{#32857}
      abe2feb0
  18. 14 Dec, 2015 3 commits
    • machenbach's avatar
      Revert of [debugger] debug-evaluate should not not modify local values.... · a2f2e913
      machenbach authored
      Revert of [debugger] debug-evaluate should not not modify local values. (patchset #2 id:20001 of https://codereview.chromium.org/1513183003/ )
      
      Reason for revert:
      [Sheriff] Layout test changes.
      
      Original issue's description:
      > [debugger] debug-evaluate should not not modify local values.
      >
      > Debug evaluate no longer writes back changes to the replicated
      > context chain to the original after execution. Changes to the
      > global object or script contexts still stick. Calling functions
      > that bind to the original context chain also have their expected
      > side effects.
      >
      > As far as I can tell, DevTools is not interested in modifying
      > local variable values. Modifying global variable values still
      > works as expected. However, I have not yet removed the old
      > implementation, but merely keep it behind a flag.
      >
      > R=mstarzinger@chromium.org, rossberg@chromium.org
      >
      > Committed: https://crrev.com/92caa9b85eefffbef51c67428397951bd2e2c330
      > Cr-Commit-Position: refs/heads/master@{#32841}
      
      TBR=mstarzinger@chromium.org,rossberg@chromium.org,yangguo@chromium.org
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      
      Review URL: https://codereview.chromium.org/1526553003
      
      Cr-Commit-Position: refs/heads/master@{#32845}
      a2f2e913
    • yangguo's avatar
      [debugger] debug-evaluate should not not modify local values. · 92caa9b8
      yangguo authored
      Debug evaluate no longer writes back changes to the replicated
      context chain to the original after execution. Changes to the
      global object or script contexts still stick. Calling functions
      that bind to the original context chain also have their expected
      side effects.
      
      As far as I can tell, DevTools is not interested in modifying
      local variable values. Modifying global variable values still
      works as expected. However, I have not yet removed the old
      implementation, but merely keep it behind a flag.
      
      R=mstarzinger@chromium.org, rossberg@chromium.org
      
      Review URL: https://codereview.chromium.org/1513183003
      
      Cr-Commit-Position: refs/heads/master@{#32841}
      92caa9b8
    • yangguo's avatar
      [debugger] fix debug-evaluate wrt shadowed context var. · 089edbfa
      yangguo authored
      Debug-evaluate used to resolve stack variables that shadow
      context variables incorrectly, since the stack variable is
      not visible in the context chain.
      
      To fix this, we limit local variables accessible by debug-
      evaluate to the ones directly referenced inside the function.
      What is not referenced by the function itself, is considered
      optimized out and not accessible by debug-evaluate.
      
      To achieve this, we duplicate the entire context chain up to
      the native context, and write back changes after debug-
      evaluate. Changes to the original context chain will however
      be overwritten. This already happens for catch and block
      scopes though.
      
      Also fix a crash caused by declaring variables inside debug-
      evaluate.
      
      R=mstarzinger@chromium.org
      BUG=v8:4593
      LOG=N
      
      Review URL: https://codereview.chromium.org/1500933002
      
      Cr-Commit-Position: refs/heads/master@{#32828}
      089edbfa
  19. 30 Nov, 2015 1 commit
  20. 04 Aug, 2015 1 commit