1. 11 Dec, 2015 5 commits
    • adamk's avatar
      Rewrite Object.prototype.toString in C++ · ed698f3d
      adamk authored
      The main impetus is to improve performance when --harmony-tostring
      is enabled, thanks to using a generic property load instead of a
      megamorphic IC.
      
      This also reduces duplication, as the API function
      v8::Object::ObjectProtoToString can share the runtime implementation.
      
      The only functional change in this patch is to drop an accidental difference
      between the JS and API implementations: the arguments object should toString
      as "[object Arguments]". The JS side was corrected in
      https://code.google.com/p/v8/source/detail?r=3279, but the API version was
      missed in that patch.
      
      BUG=chromium:555127, v8:3502
      LOG=n
      CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel
      
      Review URL: https://codereview.chromium.org/1509533003
      
      Cr-Commit-Position: refs/heads/master@{#32777}
      ed698f3d
    • v8-autoroll's avatar
      Update V8 DEPS. · 8bd39309
      v8-autoroll authored
      Rolling v8/buildtools to 68e3c238a5ab347436762cb929316aa55ca72563
      
      Rolling v8/tools/clang to 3a1510ccbc295798602abbbffcf61065704e8acb
      
      TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org
      
      Review URL: https://codereview.chromium.org/1516193002
      
      Cr-Commit-Position: refs/heads/master@{#32776}
      8bd39309
    • mtrofin's avatar
      [turbofan] regalloc: model context and function mark as reg-defined. · 0b126143
      mtrofin authored
      If we model them as memory operands ("SpillOperands"), as we
      currently do, they are treated by the register allocator as being defined
      in memory, so spilling them up to the first use requiring them in a
      register is free.
      
      That's not the case for context and function marker. They come in
      registers, and the frame construction also pushes them on the stack.
      This conflicts with the goals of frame elision: the allocator should avoid
      eagerly spilling them, which would force a frame construction; also,
      their not being spilled, should frame elision succeed for the first block,
      means modeling them as spill operands incorrect.
      
      The natural choice would be to fully decouple their spilling from frame
      construction, and let the register allocator spill them. That means they
      need to be presented to the register allocator as vanilla live ranges,
      with pre-assigned spill slots.
      
      The main challenge there is that not all instructions (mainly, stack checks) list their dependency on these ranges being spilled. In this
      change, we change the model but leave the frame construction as-is.
      This has the benefit that it unblocks frame elision, but has the drawback
      that we may see double spills in the case where these live ranges spill
      only in deferred blocks. I plan to enable frame elision next, after which
      tackle this issue with spilling.
      
      BUG= v8:4533
      LOG=N
      
      Review URL: https://codereview.chromium.org/1501363002
      
      Cr-Commit-Position: refs/heads/master@{#32775}
      0b126143
    • adamk's avatar
      Revert of [es6] support AssignmentPattern as LHS in for-in/of loops (patchset... · 8b968b70
      adamk authored
      Revert of [es6] support AssignmentPattern as LHS in for-in/of loops (patchset #9 id:280001 of https://codereview.chromium.org/1508933004/ )
      
      Reason for revert:
      Hits unreachable code (found by fuzzer). Example crasher:
      
      "for(();;);"
      
      Original issue's description:
      > [es6] support AssignmentPattern as LHS in for-in/of loops
      >
      > BUG=v8:811, v8:4599
      > LOG=N
      > R=adamk@chromium.org, rossberg@chromium.org
      >
      > Committed: https://crrev.com/e47bdb775564b2cd8365047425898ab4274190a6
      > Cr-Commit-Position: refs/heads/master@{#32773}
      
      TBR=rossberg@chromium.org,caitpotter88@gmail.com
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:811, v8:4599
      
      Review URL: https://codereview.chromium.org/1511773009
      
      Cr-Commit-Position: refs/heads/master@{#32774}
      8b968b70
    • caitpotter88's avatar
      [es6] support AssignmentPattern as LHS in for-in/of loops · e47bdb77
      caitpotter88 authored
      BUG=v8:811, v8:4599
      LOG=N
      R=adamk@chromium.org, rossberg@chromium.org
      
      Review URL: https://codereview.chromium.org/1508933004
      
      Cr-Commit-Position: refs/heads/master@{#32773}
      e47bdb77
  2. 10 Dec, 2015 35 commits