1. 03 Aug, 2018 1 commit
  2. 01 Aug, 2018 1 commit
  3. 13 Jul, 2018 1 commit
  4. 03 Jul, 2018 1 commit
  5. 25 Jun, 2018 1 commit
  6. 16 Apr, 2018 1 commit
  7. 08 Feb, 2018 1 commit
  8. 22 Jan, 2018 1 commit
  9. 11 Jan, 2018 1 commit
  10. 10 Jan, 2018 2 commits
  11. 17 Nov, 2017 1 commit
  12. 25 Oct, 2017 1 commit
    • Jakob Kummerow's avatar
      [bigint] Fix abstract equality with junk strings · 98df94cd
      Jakob Kummerow authored
      Abstract equality comparison of a BigInt and a String converts the
      latter to BigInt. This conversion can fail; since we do not want to
      pass a context to the comparison function, we must signal such failure
      without throwing an exception.
      This CL uses the existing ShouldThrow enum to configure behavior of
      String-to-BigInt conversion, moving it out of Object into globals.h.
      
      Bug: v8:6791, v8:6979
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: Ibb98675079b8392cf03bbcbbbd5556108500a32d
      Reviewed-on: https://chromium-review.googlesource.com/734172
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48946}
      98df94cd
  13. 23 Oct, 2017 1 commit
  14. 04 Oct, 2017 1 commit
    • Benedikt Meurer's avatar
      [es2015] Optimize Object.is baseline and interesting cases. · d4da17c6
      Benedikt Meurer authored
      The Object.is builtin provides an entry point to the abstract operation
      SameValue, which properly distinguishes -0 and 0, and also identifies
      NaNs. Most of the time you don't need these, but rather just regular
      strict equality, but when you do, Object.is(o, -0) is the most readable
      way to check for minus zero.
      
      This is for example used in Node.js by formatNumber to properly print -0
      for negative zero. However since the builtin thus far implemented as C++
      builtin and TurboFan didn't know anything about it, Node.js considering
      to go with a more performant, less readable version (which also makes
      assumptions about the input value) in
      
        https://github.com/nodejs/node/pull/15726
      
      until the performance of Object.is will be on par (so hopefully we can
      go back to Object.is in Node 9).
      
      This CL ports the baseline implementation of Object.is to CSA, which
      is pretty straight-forward since SameValue is already available in
      CodeStubAssembler, and inlines a few interesting cases into TurboFan,
      i.e. comparing same SSA node, and checking for -0 and NaN explicitly.
      
      On the micro-benchmarks we go from
      
        testNumberIsMinusZero: 1000 ms.
        testObjectIsMinusZero: 929 ms.
        testObjectIsNaN: 954 ms.
        testObjectIsSame: 793 ms.
        testStrictEqualSame: 104 ms.
      
      to
      
        testNumberIsMinusZero: 89 ms.
        testObjectIsMinusZero: 88 ms.
        testObjectIsNaN: 88 ms.
        testObjectIsSame: 86 ms.
        testStrictEqualSame: 105 ms.
      
      which is a nice 10x to 11x improvement and brings Object.is on par with
      strict equality for most cases.
      
      Drive-by-fix: Also refactor and optimize the SameValue check in the
      CodeStubAssembler to avoid code bloat (by not inlining StrictEqual
      into every user of SameValue, and also avoiding useless checks).
      
      Bug: v8:6882
      Change-Id: Ibffd8c36511f219fcce0d89ed4e1073f5d6c6344
      Reviewed-on: https://chromium-review.googlesource.com/700254Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48275}
      d4da17c6
  15. 25 Sep, 2017 1 commit
  16. 17 May, 2017 1 commit
  17. 18 Apr, 2017 1 commit
  18. 16 Mar, 2017 1 commit
  19. 07 Mar, 2017 1 commit
  20. 03 Mar, 2017 1 commit
  21. 02 Mar, 2017 2 commits
  22. 23 Feb, 2017 1 commit
  23. 17 Feb, 2017 1 commit
  24. 10 Feb, 2017 1 commit
  25. 08 Feb, 2017 1 commit
  26. 19 Jan, 2017 1 commit
  27. 18 Jan, 2017 1 commit
    • gsathya's avatar
      [ESnext] Implement Object Rest · 54b5c4b8
      gsathya authored
      This rewrites the rest property into a runtime call which sets up the
      correct properties in the newly created object.
      
      - Changes flag to --harmony-object-rest-spread
      - Changes pattern rewriter to desugar rest property
      - Adds new runtime function CopyDataPropertiesWithExcludedProperties
      
      BUG=v8:5549
      
      Review-Url: https://codereview.chromium.org/2620943002
      Cr-Commit-Position: refs/heads/master@{#42430}
      54b5c4b8
  28. 12 Jan, 2017 1 commit
  29. 11 Jan, 2017 4 commits
  30. 10 Jan, 2017 3 commits
  31. 09 Jan, 2017 1 commit
  32. 05 Jan, 2017 1 commit
    • gsathya's avatar
      [ESnext] Implement Object spread · a40b7172
      gsathya authored
      This patch adds parsing of spread object property.
      
      -- Changes ParsePropertyName to parse Token::ELLIPSIS.
      -- Throws if rest is encountered by setting a pattern error.
      -- Adds a new PropertyKind enum (SPREAD)
      -- Adds a new ObjectLiteralProperty::kind (SPREAD)
      -- Adds a new harmony-object-spread flag and protects the parser code
      with it.
      -- Adds a new runtime function called CopyDataProperties
      -- Does not add any support for this feature in fullcodegen.
      -- Ignition calls out to a runtime function CopyDataProperties to
      perform spread operation.
      -- Move FastAssign from builtins-objects.cc to objects.cc
      -- Refactor Builtin_ObjectAssign to use SetOrCopyDataProperties
      
      Object rest will be implemented in a follow on patch.
      
      BUG=v8:5549
      
      Review-Url: https://codereview.chromium.org/2606833002
      Cr-Commit-Position: refs/heads/master@{#42102}
      a40b7172
  33. 27 Dec, 2016 1 commit