1. 04 Feb, 2016 1 commit
    • adamk's avatar
      Support computed properties for ES2015 Function.name · 21c045a2
      adamk authored
      Adds a new runtime function, %DefineDataPropertyInLiteral, which
      takes a fifth argument specifying whether the property and value
      are syntactically such that the value is a function (or class)
      literal that should have its name set at runtime.
      
      The new runtime call also allows us to eliminate the now-redundant
      %DefineClassMethod runtime function.
      
      This should get much less ugly once we can desugar the "dynamic"
      part of object literals in the parser (but that work is currently
      blocked on having a performant way of desugaring literals).
      
      BUG=v8:3699, v8:3761
      LOG=n
      
      Review URL: https://codereview.chromium.org/1626423003
      
      Cr-Commit-Position: refs/heads/master@{#33756}
      21c045a2
  2. 02 Feb, 2016 1 commit
  3. 29 Jan, 2016 1 commit
    • bmeurer's avatar
      [for-in] Ensure that we learn from deopts within for-in loop bodies. · 0637f5f6
      bmeurer authored
      If we deoptimize from TurboFan or Crankshaft into the body of a for-in
      loop and that for-in mode then switches to slow mode (i.e. has to call
      %ForInFilter), we have to record that feedback, because otherwise we
      might actually OSR into that loop assuming that it's fast mode still,
      or even worse recompile the function later when we call it again w/o
      having rerun the for-in loop in fullcodegen from the beginning (where
      was previously the only place we could learn).
      
      R=mstarzinger@chromium.org
      BUG=v8:3650
      LOG=n
      
      Review URL: https://codereview.chromium.org/1638303008
      
      Cr-Commit-Position: refs/heads/master@{#33612}
      0637f5f6
  4. 28 Jan, 2016 1 commit
  5. 27 Jan, 2016 2 commits
  6. 25 Jan, 2016 3 commits
    • bmeurer's avatar
      [for-in] Further refactorings and unification around for-in. · 88f9995d
      bmeurer authored
      Cleanup %ForInPrepare runtime entry, and unify common logic with
      %ForInEnumerate (renamed from %GetPropertyNamesFast). Also introduce
      a TupleType to properly type JSForInPrepare and its projections w/o
      special hacks in the Typer. And fix %ForInNext and JSForInNext to be
      consistent with fullcodegen again (after the proxy refactorings last
      quarter).
      
      R=jarin@chromium.org
      BUG=v8:3650
      LOG=n
      
      Review URL: https://codereview.chromium.org/1631583002
      
      Cr-Commit-Position: refs/heads/master@{#33487}
      88f9995d
    • zhengxing.li's avatar
      X87: [stubs] Introduce ToNameStub to implement %_ToName. · f55b66ca
      zhengxing.li authored
        port a0878333(r33460)
      
        original commit message:
        We already had hand-written optimized code for %_ToName in fullcodegen,
        but the optimizing compilers always went to the runtime for %_ToName,
        which is pretty bad for many of our builtins. So this CL moves the
        existing native code to a ToNameStub (similar to the existing
        ToStringStub), and uses the ToNameStub consistently in all compilers to
        actually implement %_ToName.
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1622793006
      
      Cr-Commit-Position: refs/heads/master@{#33483}
      f55b66ca
    • bmeurer's avatar
      [turbofan] Switch JSForInPrepare to %ForInPrepare style. · 825ece48
      bmeurer authored
      Now TurboFan always uses the newly introduced %ForInPrepare, no matter
      whether baseline is the interpreter or fullcodegen. For fullcodegen, we
      introduce a new PrepareId bailout point for this purpose.
      
      Drive-by-fix: Avoid the NoObservableSideEffectsScope in Crankshaft and
      use the PrepareId bailout point instead.
      
      R=jarin@chromium.org
      BUG=v8:3650
      LOG=n
      
      Review URL: https://codereview.chromium.org/1630523002
      
      Cr-Commit-Position: refs/heads/master@{#33480}
      825ece48
  7. 21 Jan, 2016 1 commit
    • zhengxing.li's avatar
      X87: [for-in] Sanitize for-in optimizations and fix bailout points. · 512d8286
      zhengxing.li authored
        port f48bf12f (r33426)
      
        original commit message:
        The PrepareId bailout location was used incorrectly in Crankshaft and,
        as it turns out, is not required anyway (once you do it right). Also
        there was some premature optimization going on with the CheckEnumCache
        (trying to load null from roots only once), plus we can be smarter about
        the null/undefined check anyway.
      
        The idea behind this changes is to prepare unification of the two
        different ForInPrepare implementations that we now have, with the end
        result being that we only use the new implementation that was recently
        added for the interpreter.
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1611113002
      
      Cr-Commit-Position: refs/heads/master@{#33428}
      512d8286
  8. 19 Jan, 2016 1 commit
  9. 12 Jan, 2016 4 commits
  10. 07 Jan, 2016 1 commit
  11. 05 Jan, 2016 1 commit
  12. 04 Jan, 2016 1 commit
  13. 30 Dec, 2015 1 commit
  14. 28 Dec, 2015 1 commit
    • zhengxing.li's avatar
      X87: [runtime] Introduce dedicated JSBoundFunction to represent bound functions. · 37d1dd82
      zhengxing.li authored
        port 97def807 (r33044)
      
        original commit message:
        According to the ES2015 specification, bound functions are exotic
        objects, and thus don't need to be implemented as JSFunctions. So
        we introduce a new JSBoundFunction type to represent bound functions
        and make them optimizable. This already improves the performance of
        calling or constructing bound functions by 10-100x depending on the
        use case because we avoid the crazy dance between JavaScript and C++
        that was implemented in v8natives.js previously.
      
        There's still room for improvement in the performance of actually
        creating bound functions, which is also relevant in practice, but
        we already have a plan how to accomplish that later.
      
        The mips/mips64 ports were contributed by akos.palfi@imgtec.com.
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1548253002
      
      Cr-Commit-Position: refs/heads/master@{#33046}
      37d1dd82
  15. 24 Dec, 2015 1 commit
    • zhengxing.li's avatar
      X87: Partial revert of rest parameter desugaring. · d9cfa729
      zhengxing.li authored
        port d3f074b2 (r33024)
      
        original commit message:
        We'll be able to optimize rest parameters in TurboFan similarly to the arguments array. This CL restores the previous behavior, and a follow-on will enable TurboFan optimization.
      
        (TBR for rossberg since we discussed the revert beforehand. The only changes are a few lines related to tests and rebasing.)
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1545053002
      
      Cr-Commit-Position: refs/heads/master@{#33034}
      d9cfa729
  16. 17 Dec, 2015 1 commit
  17. 16 Dec, 2015 1 commit
  18. 15 Dec, 2015 1 commit
  19. 14 Dec, 2015 1 commit
  20. 11 Dec, 2015 3 commits
  21. 07 Dec, 2015 2 commits
  22. 04 Dec, 2015 1 commit
  23. 03 Dec, 2015 2 commits
  24. 02 Dec, 2015 2 commits
  25. 01 Dec, 2015 2 commits
  26. 30 Nov, 2015 3 commits