1. 28 Aug, 2019 1 commit
    • Z Nguyen-Huu's avatar
      Add new nonextensible element kinds · 1f4bec27
      Z Nguyen-Huu authored
      Currently the backing store and elements kind might not aligned aka
      backing store can be dictionary where elements kind is frozen/sealed
      element kinds or the other way around. The reason is that
      Object.preventExtensions change elements kind to DICTIONARY while
      Object.seal/freeze change elements kind to SEALED/FROZEN element kind.
      Apply both these operations can lead to that problem as in
      chromium:992914
      
      To solve this issue, we avoid Object.preventExtensions to change backing
      store to dictionary by introducing new nonextensible elements kind.
      These new nonextensible elements kind are handled similar to frozen,
      sealed element kinds. This change not only fixes the problem but also
      optimize the performance of nonextensible objects.
      
      Change-Id: Iffc7f14eb48223c11abf3c577f305d2d072eb65b
      Bug: chromium:992914, v8:6831
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1760976
      Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#63432}
      1f4bec27
  2. 01 Jul, 2019 1 commit
  3. 12 Jun, 2019 1 commit
  4. 05 Jun, 2019 1 commit
  5. 27 May, 2019 1 commit
  6. 20 May, 2019 1 commit
  7. 07 May, 2019 1 commit
  8. 24 Apr, 2019 1 commit
  9. 23 Apr, 2019 1 commit
  10. 16 Apr, 2019 2 commits
  11. 12 Apr, 2019 4 commits
  12. 11 Apr, 2019 1 commit
  13. 25 Feb, 2019 1 commit
  14. 21 Oct, 2015 1 commit
  15. 10 Dec, 2014 1 commit
    • adamk's avatar
      Optimize Object.seal and Object.preventExtensions · 4fa7ae1c
      adamk authored
      They both now run fast (due to utilizing transitions instead of always
      creating new maps) and sealed or non-extensible objects can stay in
      fast mode after transitioning.
      
      This almost entirely reuses the code for transitioning objects
      frozen by Object.freeze(), with the added benefit of freeing
      up a bit on the map (we no longer keep track of frozen-ness,
      as that bit wasn't used for anything interesting).
      
      BUG=v8:3662,chromium:115960
      LOG=y
      
      Review URL: https://codereview.chromium.org/776143005
      
      Cr-Commit-Position: refs/heads/master@{#25759}
      4fa7ae1c
  16. 21 Feb, 2012 1 commit
  17. 01 Sep, 2011 1 commit
  18. 28 Mar, 2011 1 commit
  19. 02 Jul, 2010 1 commit