Unreviewed, register symbol structure to fix Debug build
authorutatane.tea@gmail.com <utatane.tea@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 13 Oct 2015 06:30:02 +0000 (06:30 +0000)
committerutatane.tea@gmail.com <utatane.tea@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 13 Oct 2015 06:30:02 +0000 (06:30 +0000)
https://bugs.webkit.org/show_bug.cgi?id=149622

Since InferredTypes for String or Symbol claim that they don't have any structure,
`registerInferredType` does not register the structure for Symbol.
We take the similar way to String to fix this issue; Registering Symbol structure
explicitly in DFGStructureRegisterationPhase. Because,

1. InferredType::structure is only allowed for ObjectWithStructure / ObjectWithStructureOrOther.
   It looks clear to me that only ObjectWithStructure has structure.
2. Symbol is similar primitive value to String. So handling its structure in similar way to String is nice.

* dfg/DFGStructureRegistrationPhase.cpp:
(JSC::DFG::StructureRegistrationPhase::run):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@190927 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/dfg/DFGStructureRegistrationPhase.cpp

index c86e04f..2074019 100644 (file)
@@ -1,5 +1,22 @@
 2015-10-12  Yusuke Suzuki  <utatane.tea@gmail.com>
 
+        Unreviewed, register symbol structure to fix Debug build
+        https://bugs.webkit.org/show_bug.cgi?id=149622
+
+        Since InferredTypes for String or Symbol claim that they don't have any structure,
+        `registerInferredType` does not register the structure for Symbol.
+        We take the similar way to String to fix this issue; Registering Symbol structure
+        explicitly in DFGStructureRegisterationPhase. Because,
+
+        1. InferredType::structure is only allowed for ObjectWithStructure / ObjectWithStructureOrOther.
+           It looks clear to me that only ObjectWithStructure has structure.
+        2. Symbol is similar primitive value to String. So handling its structure in similar way to String is nice.
+
+        * dfg/DFGStructureRegistrationPhase.cpp:
+        (JSC::DFG::StructureRegistrationPhase::run):
+
+2015-10-12  Yusuke Suzuki  <utatane.tea@gmail.com>
+
         Iterator loops over key twice after delete
         https://bugs.webkit.org/show_bug.cgi?id=149811
 
index 7919025..27c409c 100644 (file)
@@ -61,6 +61,7 @@ public:
         // watchable and so we will assert if they aren't watched.
         registerStructure(m_graph.m_vm.structureStructure.get());
         registerStructure(m_graph.m_vm.stringStructure.get());
+        registerStructure(m_graph.m_vm.symbolStructure.get());
         registerStructure(m_graph.m_vm.getterSetterStructure.get());
         
         for (FrozenValue* value : m_graph.m_frozenValues)