| 
    
      
  | 
  
 Chromium Code Reviews| 
         Created: 
          4 years, 7 months ago by Igor Sheludko Modified: 
          4 years, 6 months ago Reviewers: 
          
          Toon Verwaest CC: 
          
          
          v8-reviews_googlegroups.com Base URL: 
          
          
          https://chromium.googlesource.com/v8/v8.git@master Target Ref: 
          
          
          refs/pending/heads/master Project: 
          
          v8 Visibility: 
          
          
          
        Public.  | 
      
        
  Description[stubs] Extend HasProperty stub with dictionary-mode, string wrapper and double-elements objects support.
This CL also replaces some Branch() usages with GotoIf/GotoUnless.
(This is a reland after fixing issues that prevented this CL from landing in other CLs).
BUG=v8:2743
LOG=Y
Committed: https://crrev.com/24066b6df4259b302edfa1db884c479008776a7e
Cr-Commit-Position: refs/heads/master@{#36657}
Committed: https://crrev.com/3c4f903e561d23bbec3b33767b51699be79f7b2d
Cr-Commit-Position: refs/heads/master@{#36686}
   
  Patch Set 1 #Patch Set 2 : Fixed 32-bit platform issues #Patch Set 3 : Fixes and ArrayIndex-related cleanup in objects.h/.cc #
      Total comments: 6
      
     
  
  Patch Set 4 : Adding tests, fixing bugs and cleaning up stuff #Patch Set 5 : Rebasing and cleanup #
      Total comments: 1
      
     
  
  Patch Set 6 : Fix for GCC issue #Patch Set 7 : Rebasing #Patch Set 8 : Fix for GCC compilation issue #Patch Set 9 : Rebasing after extracting a couple of test infrastructure fixes to separate CLs #Patch Set 10 : Drive-by fix: replace Load()s with LoadObjectField()s #
 Depends on Patchset: Messages
    Total messages: 76 (42 generated)
     
  
  
 Description was changed from ========== Extend HasProperty stub with dictionary mode objects support. BUG=v8:2743 LOG=Y ========== to ========== Extend HasProperty stub with dictionary-mode and double-elements objects support. This CL also replaces some Branch() usages with GotoIf/GotoUnless. BUG=v8:2743 LOG=Y ========== 
 The CQ bit was checked by ishell@chromium.org to run a CQ dry run 
 Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1995453002/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1995453002/1 
 ishell@chromium.org changed reviewers: + verwaest@chromium.org 
 PTAL 
 The CQ bit was unchecked by commit-bot@chromium.org 
 Dry run: Try jobs failed on following builders: v8_linux_arm_rel_ng on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_arm_rel_ng/builds/...) v8_linux_rel_ng on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_rel_ng/builds/5861) v8_mac_rel_ng on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_mac_rel_ng/builds/1768) 
 Patchset #2 (id:20001) has been deleted 
 The CQ bit was checked by ishell@chromium.org to run a CQ dry run 
 Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1995453002/40001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1995453002/40001 
 The CQ bit was unchecked by commit-bot@chromium.org 
 Dry run: Try jobs failed on following builders: v8_mac_rel_ng on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_mac_rel_ng/builds/1772) v8_mac_rel_ng_triggered on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_mac_rel_ng_triggered/bui...) 
 Patchset #3 (id:60001) has been deleted 
 The CQ bit was checked by ishell@chromium.org to run a CQ dry run 
 Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1995453002/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1995453002/80001 
 The CQ bit was unchecked by commit-bot@chromium.org 
 Dry run: This issue passed the CQ dry run. 
 I updated the CL, now it works :) 
 lgtm. may want to check with TF guys about the double-hole-check on 32bit https://codereview.chromium.org/1995453002/diff/80001/src/code-stub-assembler.cc File src/code-stub-assembler.cc (right): https://codereview.chromium.org/1995453002/diff/80001/src/code-stub-assembler... src/code-stub-assembler.cc:1397: Variable var_entry(this, MachineType::PointerRepresentation()); Shouldn't this be kWord32 as well? https://codereview.chromium.org/1995453002/diff/80001/src/code-stub-assembler... src/code-stub-assembler.cc:1430: Word32Shl(hash, Int32Constant(15))); What about explicitly sharing these constants with runtime code? https://codereview.chromium.org/1995453002/diff/80001/src/code-stub-assembler... src/code-stub-assembler.cc:1571: NameDictionaryLookup<GlobalDictionary>(dictionary, unique_name, if_found, JS_GLOBAL_OBJECT_TYPE <= LAST_SPECIAL_RECEIVER_TYPE, so I presume this isn't tested. Perhaps we shouldn't add until that point? 
 Patchset #4 (id:100001) has been deleted 
 Patchset #4 (id:120001) has been deleted 
 Patchset #4 (id:140001) has been deleted 
 Description was changed from ========== Extend HasProperty stub with dictionary-mode and double-elements objects support. This CL also replaces some Branch() usages with GotoIf/GotoUnless. BUG=v8:2743 LOG=Y ========== to ========== Extend HasProperty stub with dictionary-mode, string wrapper and double-elements objects support. This CL also replaces some Branch() usages with GotoIf/GotoUnless. BUG=v8:2743 LOG=Y ========== 
 The CQ bit was checked by ishell@chromium.org to run a CQ dry run 
 Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1995453002/160001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1995453002/160001 
 The CQ bit was unchecked by commit-bot@chromium.org 
 Dry run: Try jobs failed on following builders: v8_android_arm_compile_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_android_arm_compile_rel/...) v8_linux_dbg_ng on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_dbg_ng/builds/6466) v8_linux_mips64el_compile_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_mips64el_compile_r...) v8_linux_rel_ng on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_rel_ng/builds/6437) v8_presubmit on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_presubmit/builds/16136) 
 Patchset #5 (id:180001) has been deleted 
 The CQ bit was checked by ishell@chromium.org to run a CQ dry run 
 Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1995453002/200001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1995453002/200001 
 The CQ bit was unchecked by commit-bot@chromium.org 
 Dry run: Try jobs failed on following builders: v8_linux_gcc_compile_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_gcc_compile_rel/bu...) 
 Addressed comments and added unit tests. https://codereview.chromium.org/1995453002/diff/80001/src/code-stub-assembler.cc File src/code-stub-assembler.cc (right): https://codereview.chromium.org/1995453002/diff/80001/src/code-stub-assembler... src/code-stub-assembler.cc:1397: Variable var_entry(this, MachineType::PointerRepresentation()); On 2016/05/19 14:50:22, Toon Verwaest wrote: > Shouldn't this be kWord32 as well? Done. https://codereview.chromium.org/1995453002/diff/80001/src/code-stub-assembler... src/code-stub-assembler.cc:1430: Word32Shl(hash, Int32Constant(15))); On 2016/05/19 14:50:22, Toon Verwaest wrote: > What about explicitly sharing these constants with runtime code? I think we can just rely on a respective unit test results instead. https://codereview.chromium.org/1995453002/diff/80001/src/code-stub-assembler... src/code-stub-assembler.cc:1571: NameDictionaryLookup<GlobalDictionary>(dictionary, unique_name, if_found, On 2016/05/19 14:50:22, Toon Verwaest wrote: > JS_GLOBAL_OBJECT_TYPE <= LAST_SPECIAL_RECEIVER_TYPE, so I presume this isn't > tested. Perhaps we shouldn't add until that point? Fixed and added unit tests. https://codereview.chromium.org/1995453002/diff/200001/test/cctest/test-code-... File test/cctest/test-code-stub-assembler.cc (right): https://codereview.chromium.org/1995453002/diff/200001/test/cctest/test-code-... test/cctest/test-code-stub-assembler.cc:389: New tests are below. 
 The CQ bit was checked by ishell@chromium.org to run a CQ dry run 
 Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1995453002/220001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1995453002/220001 
 The CQ bit was unchecked by commit-bot@chromium.org 
 Dry run: This issue passed the CQ dry run. 
 lgtm 
 The CQ bit was checked by ishell@chromium.org 
 CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1995453002/220001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1995453002/220001 
 The CQ bit was unchecked by commit-bot@chromium.org 
 Try jobs failed on following builders: v8_linux_chromium_gn_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_chromium_gn_rel/bu...) 
 The CQ bit was checked by ishell@chromium.org to run a CQ dry run 
 Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1995453002/240001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1995453002/240001 
 The CQ bit was unchecked by commit-bot@chromium.org 
 Dry run: Try jobs failed on following builders: v8_linux_gcc_compile_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_gcc_compile_rel/bu...) 
 The CQ bit was checked by ishell@chromium.org to run a CQ dry run 
 Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1995453002/280001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1995453002/280001 
 Patchset #8 (id:260001) has been deleted 
 The CQ bit was unchecked by commit-bot@chromium.org 
 Dry run: This issue passed the CQ dry run. 
 The CQ bit was checked by ishell@chromium.org 
 The patchset sent to the CQ was uploaded after l-g-t-m from verwaest@chromium.org Link to the patchset: https://codereview.chromium.org/1995453002/#ps280001 (title: "Fix for GCC compilation issue") 
 CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1995453002/280001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1995453002/280001 
 
            
              
                Message was sent while issue was closed.
              
            
             
          
        Description was changed from ========== Extend HasProperty stub with dictionary-mode, string wrapper and double-elements objects support. This CL also replaces some Branch() usages with GotoIf/GotoUnless. BUG=v8:2743 LOG=Y ========== to ========== Extend HasProperty stub with dictionary-mode, string wrapper and double-elements objects support. This CL also replaces some Branch() usages with GotoIf/GotoUnless. BUG=v8:2743 LOG=Y ========== 
 
            
              
                Message was sent while issue was closed.
              
            
             
          
        Committed patchset #8 (id:280001) 
 
            
              
                Message was sent while issue was closed.
              
            
             
          
        Description was changed from ========== Extend HasProperty stub with dictionary-mode, string wrapper and double-elements objects support. This CL also replaces some Branch() usages with GotoIf/GotoUnless. BUG=v8:2743 LOG=Y ========== to ========== Extend HasProperty stub with dictionary-mode, string wrapper and double-elements objects support. This CL also replaces some Branch() usages with GotoIf/GotoUnless. BUG=v8:2743 LOG=Y Committed: https://crrev.com/24066b6df4259b302edfa1db884c479008776a7e Cr-Commit-Position: refs/heads/master@{#36657} ========== 
 
            
              
                Message was sent while issue was closed.
              
            
             
          
        Patchset 8 (id:??) landed as https://crrev.com/24066b6df4259b302edfa1db884c479008776a7e Cr-Commit-Position: refs/heads/master@{#36657} 
 
            
              
                Message was sent while issue was closed.
              
            
             
          
        A revert of this CL (patchset #8 id:280001) has been created in https://codereview.chromium.org/2028333002/ by ishell@chromium.org. The reason for reverting is: There are crashes on Win32 and Win64 bots.. 
 
            
              
                Message was sent while issue was closed.
              
            
             
          
        Description was changed from ========== Extend HasProperty stub with dictionary-mode, string wrapper and double-elements objects support. This CL also replaces some Branch() usages with GotoIf/GotoUnless. BUG=v8:2743 LOG=Y Committed: https://crrev.com/24066b6df4259b302edfa1db884c479008776a7e Cr-Commit-Position: refs/heads/master@{#36657} ========== to ========== Extend HasProperty stub with dictionary-mode, string wrapper and double-elements objects support. This CL also replaces some Branch() usages with GotoIf/GotoUnless. BUG=v8:2743 LOG=Y Committed: https://crrev.com/24066b6df4259b302edfa1db884c479008776a7e Cr-Commit-Position: refs/heads/master@{#36657} ========== 
 Description was changed from ========== Extend HasProperty stub with dictionary-mode, string wrapper and double-elements objects support. This CL also replaces some Branch() usages with GotoIf/GotoUnless. BUG=v8:2743 LOG=Y Committed: https://crrev.com/24066b6df4259b302edfa1db884c479008776a7e Cr-Commit-Position: refs/heads/master@{#36657} ========== to ========== [stubs] Extend HasProperty stub with dictionary-mode, string wrapper and double-elements objects support. This CL also replaces some Branch() usages with GotoIf/GotoUnless. BUG=v8:2743 LOG=Y Committed: https://crrev.com/24066b6df4259b302edfa1db884c479008776a7e Cr-Commit-Position: refs/heads/master@{#36657} ========== 
 Patchset #10 (id:320001) has been deleted 
 The CQ bit was checked by ishell@chromium.org to run a CQ dry run 
 Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1995453002/340001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1995453002/340001 
 Description was changed from ========== [stubs] Extend HasProperty stub with dictionary-mode, string wrapper and double-elements objects support. This CL also replaces some Branch() usages with GotoIf/GotoUnless. BUG=v8:2743 LOG=Y Committed: https://crrev.com/24066b6df4259b302edfa1db884c479008776a7e Cr-Commit-Position: refs/heads/master@{#36657} ========== to ========== [stubs] Extend HasProperty stub with dictionary-mode, string wrapper and double-elements objects support. This CL also replaces some Branch() usages with GotoIf/GotoUnless. (This is a reland after fixing issues that prevented this CL from landing in other CLs). BUG=v8:2743 LOG=Y Committed: https://crrev.com/24066b6df4259b302edfa1db884c479008776a7e Cr-Commit-Position: refs/heads/master@{#36657} ========== 
 The CQ bit was unchecked by commit-bot@chromium.org 
 Dry run: This issue passed the CQ dry run. 
 The CQ bit was checked by ishell@chromium.org 
 The patchset sent to the CQ was uploaded after l-g-t-m from verwaest@chromium.org Link to the patchset: https://codereview.chromium.org/1995453002/#ps340001 (title: "Drive-by fix: replace Load()s with LoadObjectField()s") 
 CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1995453002/340001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1995453002/340001 
 
            
              
                Message was sent while issue was closed.
              
            
             
          
        Description was changed from ========== [stubs] Extend HasProperty stub with dictionary-mode, string wrapper and double-elements objects support. This CL also replaces some Branch() usages with GotoIf/GotoUnless. (This is a reland after fixing issues that prevented this CL from landing in other CLs). BUG=v8:2743 LOG=Y Committed: https://crrev.com/24066b6df4259b302edfa1db884c479008776a7e Cr-Commit-Position: refs/heads/master@{#36657} ========== to ========== [stubs] Extend HasProperty stub with dictionary-mode, string wrapper and double-elements objects support. This CL also replaces some Branch() usages with GotoIf/GotoUnless. (This is a reland after fixing issues that prevented this CL from landing in other CLs). BUG=v8:2743 LOG=Y Committed: https://crrev.com/24066b6df4259b302edfa1db884c479008776a7e Cr-Commit-Position: refs/heads/master@{#36657} ========== 
 
            
              
                Message was sent while issue was closed.
              
            
             
          
        Committed patchset #10 (id:340001) 
 
            
              
                Message was sent while issue was closed.
              
            
             
          
        Description was changed from ========== [stubs] Extend HasProperty stub with dictionary-mode, string wrapper and double-elements objects support. This CL also replaces some Branch() usages with GotoIf/GotoUnless. (This is a reland after fixing issues that prevented this CL from landing in other CLs). BUG=v8:2743 LOG=Y Committed: https://crrev.com/24066b6df4259b302edfa1db884c479008776a7e Cr-Commit-Position: refs/heads/master@{#36657} ========== to ========== [stubs] Extend HasProperty stub with dictionary-mode, string wrapper and double-elements objects support. This CL also replaces some Branch() usages with GotoIf/GotoUnless. (This is a reland after fixing issues that prevented this CL from landing in other CLs). BUG=v8:2743 LOG=Y Committed: https://crrev.com/24066b6df4259b302edfa1db884c479008776a7e Cr-Commit-Position: refs/heads/master@{#36657} Committed: https://crrev.com/3c4f903e561d23bbec3b33767b51699be79f7b2d Cr-Commit-Position: refs/heads/master@{#36686} ========== 
 
            
              
                Message was sent while issue was closed.
              
            
             
          
        Patchset 10 (id:??) landed as https://crrev.com/3c4f903e561d23bbec3b33767b51699be79f7b2d Cr-Commit-Position: refs/heads/master@{#36686} 
 
            
              
                Message was sent while issue was closed.
              
            
             
          
        On 2016/06/02 15:03:08, commit-bot: I haz the power wrote: > Patchset 10 (id:??) landed as > https://crrev.com/3c4f903e561d23bbec3b33767b51699be79f7b2d > Cr-Commit-Position: refs/heads/master@{#36686} I saw a crash under v8_enable_slow_dchecks, which showed up on the bots once so far: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20noi18n%20-%2... Not sure why it started crashing, though I'm fairly confident it wasn't due to my change (https://chromium.googlesource.com/v8/v8/+/4cc2a73185f2d86ac6b18fd8935bb1f72ad...) 
 
            
              
                Message was sent while issue was closed.
              
            
             
          
        On 2016/06/04 00:03:36, adamk wrote: > On 2016/06/02 15:03:08, commit-bot: I haz the power wrote: > > Patchset 10 (id:??) landed as > > https://crrev.com/3c4f903e561d23bbec3b33767b51699be79f7b2d > > Cr-Commit-Position: refs/heads/master@{#36686} > > I saw a crash under v8_enable_slow_dchecks, which showed up on the bots once so > far: > > https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20noi18n%20-%2... > > Not sure why it started crashing, though I'm fairly confident it wasn't due to > my change > (https://chromium.googlesource.com/v8/v8/+/4cc2a73185f2d86ac6b18fd8935bb1f72ad...) Fix is on the way: https://codereview.chromium.org/2044003004/  | 
    ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
