1. 24 Sep, 2010 2 commits
    • kaznacheev@chromium.org's avatar
      Prevent modification of cached normalized maps. · cfbc1eed
      kaznacheev@chromium.org authored
      Finally sovles the problem that r5342 attempted to solve.
      When adding a stub to a map's code cache we need to make
      sure that this map is not used by object that do not need
      this stub.
      
      Existing solution had 2 flaws:
      1. It checked that the map is cached by asking the current context.
      If the object escaped into another context then NormalizedMapCache::Contains
      returns false negative.
      
      2. If a map gets evicted from the cache we should not try to modify it
      even though Contains returns false.
      
      This patch implements much less fragile solution of the same problem:
      A map now has a flag (is_shared) that is set once the map is added
      to a cache, stays set even after the cache eviction, and is cleared
      if the object goes back to fast mode.
      
      Added a regression test.
      
      Review URL: http://codereview.chromium.org/3472006
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5518 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      cfbc1eed
    • kmillikin@chromium.org's avatar
      Clean up some messiness in Scopes. · 830185b1
      kmillikin@chromium.org authored
      For some reason, the scope's arguments and arguments shadow were
      variable proxies, which resulted in all references to the arguments
      shadow being shared in the AST.  This makes it hard to put per-node
      state on the AST nodes.
      
      I took the opportunity to remove Variable::AsVariable which has
      confused people in the past, and to rename Variable::slot to the more
      accurate Variable::AsSlot.
      
      Review URL: http://codereview.chromium.org/3432022
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5517 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      830185b1
  2. 23 Sep, 2010 8 commits
  3. 22 Sep, 2010 4 commits
  4. 21 Sep, 2010 2 commits
  5. 20 Sep, 2010 8 commits
  6. 17 Sep, 2010 4 commits
  7. 16 Sep, 2010 9 commits
  8. 15 Sep, 2010 3 commits