1. 09 Feb, 2019 1 commit
  2. 01 Feb, 2019 1 commit
    • Jaroslav Sevcik's avatar
      Map update for integrity level transitions. · 06ba822e
      Jaroslav Sevcik authored
      This adds support for integrity level transitions (preventExtensions,
      seal and freeze) to MapUpdater and Map::TryUpdate.
      
      In both cases, we first try to detect whether there were integrity
      level transitions in the transition tree to the old map and make note
      of the most restrictive integrity transition and the map just before
      the transition (integrity-source-map). Then we find an appropriate root
      (based on integrity-source-map's elements kind) and replay the
      transitions based on the integrity-source-map's descriptor
      array. Finally, if we saw an integrity level transition in
      the beginning, we will find-or-create that transition (on the
      updated version of integrity-source-map).
      
      For the following micro-benchmark, we get about 10x speedup.
      
      ```
      function C() {
        this.x = 1;
        Object.seal(this);
        this.x = 0.1;
      }
      
      const start = Date.now();
      for (let i = 0; i < 1e7; i++) {
        new C();
      }
      console.log("Reconfigure sealed: " + (Date.now() - start));
      ```
      
      Before:
      > Reconfigure sealed: 5202
      
      After:
      > Reconfigure sealed: 479
      
      Bug: v8:8538
      Change-Id: If695be7469d8b6ccd44ac4528be8aa34b65b3e4d
      Reviewed-on: https://chromium-review.googlesource.com/c/1442640
      Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59295}
      06ba822e
  3. 26 Dec, 2018 1 commit
  4. 27 Nov, 2018 1 commit
  5. 06 Nov, 2018 1 commit
  6. 30 Jul, 2018 1 commit
  7. 25 Jun, 2018 1 commit
  8. 29 May, 2018 1 commit
  9. 06 Nov, 2017 1 commit
  10. 27 Jul, 2017 1 commit
  11. 17 May, 2017 1 commit
  12. 15 May, 2017 2 commits
  13. 15 Mar, 2017 1 commit
  14. 10 Feb, 2017 1 commit
  15. 19 Jan, 2017 1 commit
  16. 17 Jan, 2017 1 commit
  17. 10 Jan, 2017 1 commit