1. 25 Feb, 2016 1 commit
  2. 10 Dec, 2015 2 commits
  3. 01 Oct, 2015 1 commit
    • bmeurer's avatar
      [es6] Fix missing bits for full @@toPrimitive support. · 2a0759d3
      bmeurer authored
      Introduce %_ToNumber intrinsic, which just calls to the existing
      ToNumberStub, and remove all uses of our custom JavaScript plus
      intrinsics based ToNumber and friends.
      
      Also replace the TO_NUMBER_INLINE macro with TO_NUMBER,
      which is currently a wrapper for %_ToNumber. Newly written JS
      code should use TO_NUMBER (similar to TO_STRING, TO_INT32,
      and friends).
      
      Also finally remove the DefaultString/DefaultNumber builtins, which
      are basically the ES5 version of ToPrimitive. Now all code uses the
      ES6 version, which is implemented in Object::ToPrimitive and
      JSReceiver::ToPrimitive in C++.
      
      CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_layout_dbg,v8_linux_nosnap_dbg
      R=jarin@chromium.org
      BUG=v8:4307
      LOG=n
      
      Review URL: https://codereview.chromium.org/1384443002
      
      Cr-Commit-Position: refs/heads/master@{#31054}
      2a0759d3
  4. 29 Sep, 2015 1 commit
    • bmeurer's avatar
      [es6] Introduce %ToInteger and %ToLength. · 93b2b262
      bmeurer authored
      This adds ES6 compliant Object::ToInteger, Object::ToInt32,
      Object::ToUint32 and Object::ToLength, and replaces the old
      Execution wrappers of those abstract operations (which were
      not using the correct ToPrimitive).
      
      This also introduces proper %ToInteger and %ToLength runtime
      entries, with a fast path %_ToInteger supported in fullcodegen
      and Crankshaft (for now). Internal JavaScript code should use
      TO_INTEGER and TO_LENGTH respectively.
      
      CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_layout_dbg,v8_linux_nosnap_dbg
      BUG=v8:4307
      LOG=n
      
      Review URL: https://codereview.chromium.org/1378533002
      
      Cr-Commit-Position: refs/heads/master@{#30993}
      93b2b262
  5. 18 Sep, 2015 1 commit
    • bmeurer's avatar
      [runtime] Replace COMPARE/COMPARE_STRONG with proper Object::Compare. · 593c655a
      bmeurer authored
      This removes the weird COMPARE and COMPARE_STRONG JavaScript builtins
      and replaces them with a proper C++ implementation in Object::Compare
      and appropriate wrappers Object::LessThan, Object::GreaterThan, and
      friends that are intended to be used by a true/false returning CompareIC
      in the future, as well as the interpreter.  As a short-term solution we
      provide %Compare and %Compare_Strong entry points for the current
      CompareIC that return the appropriate integer values expected by
      fullcodegen currently.
      
      Now the Abstract Relational Comparison is also using the correct
      ToPrimitive implementation, which properly supports @@toPrimitive.
      
      BUG=v8:4307
      LOG=n
      
      Review URL: https://codereview.chromium.org/1350113002
      
      Cr-Commit-Position: refs/heads/master@{#30816}
      593c655a
  6. 15 Sep, 2015 1 commit
    • bmeurer's avatar
      [runtime] Replace the EQUALS builtin with proper Object::Equals. · 54bab695
      bmeurer authored
      Move the implementation of the Abstract Equality Comparison to the
      runtime and thereby remove the EQUALS dispatcher builtin. Also remove
      the various runtime entry points that were only used to support the
      EQUALS builtin.
      
      Now the Abstract Equality Comparison is also using the correct
      ToPrimitive implementation, which properly supports @@toPrimitive.
      
      CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_layout_dbg,v8_linux_nosnap_dbg
      R=mstarzinger@chromium.org
      BUG=v8:4307
      LOG=n
      
      Review URL: https://codereview.chromium.org/1337993005
      
      Cr-Commit-Position: refs/heads/master@{#30747}
      54bab695
  7. 10 Sep, 2015 1 commit
    • bmeurer's avatar
      [runtime] Move binary operator fallbacks into the runtime. · a1b2ec60
      bmeurer authored
      Replace the ADD, SUB, etc. builtins with proper runtime implementations,
      and expose them as runtime calls that can be used by the code stubs and
      the interpreter (for now).
      
      Also remove all the support runtime functions for ADD, SUB and friends,
      namely %NumberAdd, %NumberSub, and so on.
      
      R=mstarzinger@chromium.org
      CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_layout_dbg,v8_linux_nosnap_dbg
      
      Review URL: https://codereview.chromium.org/1333843002
      
      Cr-Commit-Position: refs/heads/master@{#30680}
      a1b2ec60
  8. 09 Sep, 2015 1 commit
  9. 04 Sep, 2015 1 commit
  10. 28 Aug, 2015 1 commit
    • bmeurer's avatar
      [es6] Implement spec compliant ToPrimitive in the runtime. · f6c6d713
      bmeurer authored
      This is the first step towards a spec compliant ToPrimitive
      implementation (and therefore spec compliant ToNumber, ToString,
      ToName, and friends).  It adds support for the @@toPrimitive
      symbol that was introduced with ES2015, and also adds the new
      Symbol.prototype[@@toPrimitive] and Date.prototype[@@toPrimitive]
      initial properties.
      
      There are now runtime functions for %ToPrimitive, %ToNumber and
      %ToString, which do the right thing and should be used as fallbacks
      instead of the hairy runtime.js implementations.  I will do the
      same for the other conversion operations mentioned by the spec in
      follow up CLs.  Once everything is in place we can look into
      optimizing things further, so that we don't always call into the
      runtime.
      
      Also fixed Date.prototype.toJSON to be spec compliant.
      
      R=mstarzinger@chromium.org, yangguo@chromium.org
      BUG=v8:4307
      LOG=y
      
      Review URL: https://codereview.chromium.org/1306303003
      
      Cr-Commit-Position: refs/heads/master@{#30434}
      f6c6d713
  11. 18 Aug, 2015 1 commit
  12. 13 Aug, 2015 2 commits
  13. 10 Aug, 2015 1 commit
  14. 05 Aug, 2015 1 commit
  15. 20 May, 2015 1 commit
  16. 21 Apr, 2015 1 commit
  17. 20 Apr, 2015 1 commit
  18. 31 Mar, 2015 1 commit
  19. 05 Mar, 2015 1 commit
  20. 21 Jan, 2015 1 commit
  21. 22 Oct, 2014 1 commit
  22. 20 Oct, 2014 2 commits
  23. 10 Oct, 2014 1 commit
  24. 30 Sep, 2014 1 commit
  25. 29 Sep, 2014 1 commit