1. 08 Jan, 2016 1 commit
  2. 05 Jan, 2016 1 commit
  3. 04 Jan, 2016 2 commits
  4. 30 Dec, 2015 1 commit
  5. 27 Dec, 2015 2 commits
    • bmeurer's avatar
      [runtime] Introduce dedicated JSBoundFunction to represent bound functions. · 97def807
      bmeurer authored
      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.
      
      CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel
      BUG=chromium:535408, chromium:571299, v8:4629
      LOG=n
      
      Committed: https://crrev.com/ca8623eaa468cba65a5adafcdfb4615966f43ce2
      Cr-Commit-Position: refs/heads/master@{#33042}
      
      Review URL: https://codereview.chromium.org/1542963002
      
      Cr-Commit-Position: refs/heads/master@{#33044}
      97def807
    • bmeurer's avatar
      Revert of [runtime] Introduce dedicated JSBoundFunction to represent bound... · 1cf8b105
      bmeurer authored
      Revert of [runtime] Introduce dedicated JSBoundFunction to represent bound functions. (patchset #14 id:260001 of https://codereview.chromium.org/1542963002/ )
      
      Reason for revert:
      Breaks arm64 sim nosnap: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20nosnap%20-%20debug/builds/805/steps/Check/logs/function-bind
      
      Original issue's description:
      > [runtime] Introduce dedicated JSBoundFunction to represent bound functions.
      >
      > 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.
      >
      > CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel
      > BUG=chromium:535408, chromium:571299, v8:4629
      > LOG=n
      >
      > Committed: https://crrev.com/ca8623eaa468cba65a5adafcdfb4615966f43ce2
      > Cr-Commit-Position: refs/heads/master@{#33042}
      
      TBR=cbruni@chromium.org,hpayer@chromium.org,yangguo@chromium.org,akos.palfi@imgtec.com
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=chromium:535408, chromium:571299, v8:4629
      
      Review URL: https://codereview.chromium.org/1552473002
      
      Cr-Commit-Position: refs/heads/master@{#33043}
      1cf8b105
  6. 26 Dec, 2015 1 commit
    • bmeurer's avatar
      [runtime] Introduce dedicated JSBoundFunction to represent bound functions. · ca8623ea
      bmeurer authored
      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.
      
      CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel
      BUG=chromium:535408, chromium:571299, v8:4629
      LOG=n
      
      Review URL: https://codereview.chromium.org/1542963002
      
      Cr-Commit-Position: refs/heads/master@{#33042}
      ca8623ea
  7. 23 Dec, 2015 1 commit
    • mvstanton's avatar
      Partial revert of rest parameter desugaring. · d3f074b2
      mvstanton authored
      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.)
      
      TBR=rossberg@chromium.org
      BUG=
      
      Review URL: https://codereview.chromium.org/1537683002
      
      Cr-Commit-Position: refs/heads/master@{#33024}
      d3f074b2
  8. 17 Dec, 2015 1 commit
    • Benedikt Meurer's avatar
      [runtime] Drop FIRST/LAST_NONCALLABLE_SPEC_OBJECT instance type range. · aafc3e54
      Benedikt Meurer authored
      The FIRST-LAST_NONCALLABLE_SPEC_OBJECT_TYPE range was accidentially used
      in field type tracking, where we should check for JSReceiver instead
      (there's no need to exclude JSProxy or JSFunction from tracking).
      
      And the use in %_ClassOf was actually wrong and didn't match the C++
      implementation in JSReceiver::class_name() anymore. Now it's consistent
      again.
      
      R=yangguo@chromium.org
      BUG=chromium:535408
      LOG=n
      
      Review URL: https://codereview.chromium.org/1535523003 .
      
      Cr-Commit-Position: refs/heads/master@{#32926}
      aafc3e54
  9. 16 Dec, 2015 1 commit
  10. 14 Dec, 2015 1 commit
  11. 11 Dec, 2015 3 commits
  12. 04 Dec, 2015 2 commits
  13. 03 Dec, 2015 1 commit
    • mstarzinger's avatar
      [fullcode] Switch passing of new.target to register. · 440a42b7
      mstarzinger authored
      This passes the new.target value in a register instead of through a
      side-channel via the construct stub. Note that this marks the last
      consumer of said side-channel and the special slot in the construct
      stub frame can be removed as a follow-up.
      
      R=bmeurer@chromium.org,yangguo@chromium.org
      TEST=mjsunit/es6/regress/regress-new-target-context
      
      Review URL: https://codereview.chromium.org/1492793002
      
      Cr-Commit-Position: refs/heads/master@{#32548}
      440a42b7
  14. 02 Dec, 2015 2 commits
  15. 01 Dec, 2015 2 commits
  16. 30 Nov, 2015 4 commits
  17. 27 Nov, 2015 4 commits
  18. 26 Nov, 2015 2 commits
  19. 25 Nov, 2015 2 commits
    • bmeurer's avatar
      [es6] Correct parsing of regular expression literal flags. · 2732a6ad
      bmeurer authored
      ES6 section 12.2.8.1 states that flags for regular expression literals
      must be checked during parsing and invalid flags are early errors. This
      change adapts the Scanner and (Pre)Parser to act according to the spec.
      
      This is also a prerequisite to unify the handling of literal creation
      (for Objects, Arrays, Regexps, and at some point Classes).
      
      R=yangguo@chromium.org
      
      Review URL: https://codereview.chromium.org/1472323002
      
      Cr-Commit-Position: refs/heads/master@{#32273}
      2732a6ad
    • bmeurer's avatar
      [runtime] First step to sanitize regexp literal creation. · 09b44428
      bmeurer authored
      This is the initial step towards refactoring the regexp literation
      creation code to make it less obscure and more similar to the mechanism
      we use to create array and object literals.  There's now a new runtime
      entry %CreateRegExpLiteral with the same interface as the entries for
      array and object literals, except that we still pass the flags as
      string.
      
      Instead of embedding the hand written native to clone JSRegExp instances
      we now have a FastCloneRegExpStub, which behaves similar to the other
      FastCloneShallowArrayStub and FastCloneShallowObjectStub that we already
      had.
      
      R=mlippautz@chromium.org, yangguo@chromium.org
      
      Review URL: https://codereview.chromium.org/1475823003
      
      Cr-Commit-Position: refs/heads/master@{#32255}
      09b44428
  20. 24 Nov, 2015 2 commits
  21. 23 Nov, 2015 1 commit
    • bmeurer's avatar
      [builtins] Sanitize the machinery around Construct calls. · 374b6ea2
      bmeurer authored
      There's no point in collecting feedback for super constructor calls,
      because in all (interesting) cases we can gather (better) feedback from
      other sources (i.e. via inlining or via using a LOAD_IC to get to the
      [[Prototype]] of the target).  So CallConstructStub is now only used
      for new Foo(...args) sites where we want to collect feedback in the
      baseline compiler.  The optimizing compilers, Reflect.construct and
      super constructor calls use the Construct builtin directly, which allows
      us to remove some weird code from the CallConstructStub (and opens the
      possibility for more code sharing with the CallICStub, maybe even going
      for a ConstructICStub).
      
      Also remove the 100% redundant HCallNew instruction, which is just a
      wrapper for the Construct builtin anyway (indirectly via the
      CallConstructStub).
      
      Drive-by-fix: Drop unused has_function_cache bit on Code objects.
      
      R=mstarzinger@chromium.org, yangguo@chromium.org
      BUG=v8:4413, v8:4430
      LOG=n
      
      Review URL: https://codereview.chromium.org/1469793002
      
      Cr-Commit-Position: refs/heads/master@{#32172}
      374b6ea2
  22. 17 Nov, 2015 3 commits