1. 19 May, 2020 1 commit
  2. 21 Feb, 2020 1 commit
  3. 19 Feb, 2020 1 commit
  4. 07 Jan, 2020 1 commit
  5. 18 Nov, 2019 1 commit
  6. 10 Oct, 2019 1 commit
  7. 17 Sep, 2019 1 commit
  8. 04 Sep, 2019 1 commit
  9. 27 Aug, 2019 1 commit
  10. 23 Aug, 2019 1 commit
  11. 24 Jun, 2019 1 commit
    • Mathias Bynens's avatar
      [objects] Rename JSValue to JSPrimitiveWrapper · e428dfd7
      Mathias Bynens authored
      We currently use the class name “JSValue” for JSObjects that wrap
      primitive values. This name is a common source of confusion. This patch
      switches to a name that’s more clear.
      
      In addition to manual tweaks, the patch applies the following mechanical
      global replacements:
      
      before                          | after
      --------------------------------|--------------------------------------
      if_valueisnotvalue              | if_valueisnotwrapper
      if_valueisvalue                 | if_valueiswrapper
      js_value                        | js_primitive_wrapper
      JS_VALUE_TYPE                   | JS_PRIMITIVE_WRAPPER_TYPE
      JSPrimitiveWrapperType          | JSPrimitiveWrapper type
      jsvalue                         | js_primitive_wrapper
      JSValue                         | JSPrimitiveWrapper
      _GENERATED_JSVALUE_FIELDS       | _GENERATED_JSPRIMITIVE_WRAPPER_FIELDS
      
      Change-Id: I9d9edea784eab6067b013e1f781e4db2070f807c
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1672942Reviewed-by: 's avatarTamer Tas <tmrts@chromium.org>
      Reviewed-by: 's avatarMichael Stanton <mvstanton@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Mathias Bynens <mathias@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#62337}
      e428dfd7
  12. 23 May, 2019 1 commit
  13. 21 May, 2019 1 commit
  14. 23 Apr, 2019 1 commit
  15. 18 Dec, 2018 1 commit
  16. 26 Nov, 2018 1 commit
  17. 20 Sep, 2018 1 commit
  18. 31 Aug, 2018 1 commit
    • Benedikt Meurer's avatar
      [ic] Teach KeyedLoadICGeneric about ToName. · 923127f8
      Benedikt Meurer authored
      In the KeyedLoadICGeneric case the engine previously immediately fell
      back to the %KeyedGetProperty runtime function if the key was not a
      Name or a valid array index. This turns out to be really slow if a
      program passes for example objects as keys. Since we already have all
      the logic in place to convert an arbitrary JavaScript value to a Name,
      we can just call into ToName first and then operate on the result of
      that, which is significantly faster since C++ usually doesn't need to
      call back into JavaScript then to convert a JSReceiver into a Name.
      
      This also changes the ToName builtin to use the existing builtin for
      NonPrimitiveToPrimitive, which stays in JavaScript land completely.
      Since there's not really a point in inlining ToName into the call
      sites, the other uses were also changed to call the builtin instead,
      which saves some space and might also help with instruction cache
      utilization (especially when the ToName logic is more involved now).
      
      This improves the performance on the microbenchmark
      
      ```js
      const n = 1e7;
      const obj = {};
      const key = [1,2];
      
      const start = Date.now();
      for (let i = 0; i < n; ++i) {
        if (obj[key] === undefined) obj[key] = key;
      }
      print(`time: ${Date.now() - start} ms.`);
      ```
      
      by up to 36%. On the ARES-6 ML benchmark the steady state improves by up
      to ~7% and the overall mean for ARES-6 ML improves by up to ~6%. Further
      improvements might be possible here if the GetProperty builtin could be
      made faster for common prototype lookups like Symbol.toPrimitive and the
      "valueOf" and "toString" functions.
      
      Bug: v8:6344, v8:6670
      Change-Id: Ic3ac2bc4d4277836ef03039de4eda5c5f66a85da
      Reviewed-on: https://chromium-review.googlesource.com/1199022
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55540}
      923127f8
  19. 07 Aug, 2018 1 commit
  20. 23 Jul, 2018 1 commit
  21. 19 Jul, 2018 1 commit
    • Sigurd Schneider's avatar
      Revert "[turbofan] Inline Number constructor in certain cases" · c7a9af61
      Sigurd Schneider authored
      This reverts commit 9eca23e9.
      
      Reason for revert: Clusterfuzz correctness issue
      
      Original change's description:
      > [turbofan] Inline Number constructor in certain cases
      > 
      > This CL adds inlining for the Number constructor if new.target is not
      > present. The lowering is BigInt compatible, i.e. it converts BigInts to
      > numbers.
      > 
      > Bug: v8:7904
      > Change-Id: If03b9f872d82e50b6ded7709069181c33dc44e82
      > Reviewed-on: https://chromium-review.googlesource.com/1118557
      > Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
      > Reviewed-by: Georg Neis <neis@chromium.org>
      > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#54454}
      
      TBR=jarin@chromium.org,neis@chromium.org,sigurds@chromium.org,bmeurer@chromium.org
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Bug: v8:7904
      Change-Id: Ie5fa6c1262b8acc33edb672a0124f4458fcded86
      Reviewed-on: https://chromium-review.googlesource.com/1142777Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
      Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54544}
      c7a9af61
  22. 16 Jul, 2018 1 commit
  23. 18 Jun, 2018 1 commit
  24. 27 Mar, 2018 1 commit
  25. 19 Feb, 2018 1 commit
  26. 16 Feb, 2018 1 commit
  27. 15 Feb, 2018 1 commit
  28. 07 Feb, 2018 1 commit
  29. 17 Jan, 2018 1 commit
  30. 20 Dec, 2017 1 commit
  31. 20 Nov, 2017 1 commit
  32. 25 Oct, 2017 1 commit
  33. 24 Oct, 2017 2 commits
  34. 11 Oct, 2017 1 commit
  35. 08 Sep, 2017 1 commit
  36. 19 Jul, 2017 1 commit
  37. 13 Jul, 2017 1 commit
  38. 11 Jul, 2017 1 commit
  39. 10 Jul, 2017 1 commit