<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div>Global variables are stored in the JSSegmentedVariableObject portion of JSGlobalObject. You can iterate it using the SymbolTable API probably.&nbsp;</div><div><br></div><div>I don't think that going through the IdentifierTable is going to give you much joy.&nbsp;<br><br>-Fil</div><div><br>On Sep 16, 2013, at 5:49 PM, arijit chattopadhyay &lt;<a href="mailto:arijit_nitdgp06@yahoo.co.in">arijit_nitdgp06@yahoo.co.in</a>&gt; wrote:<br><br></div><blockquote type="cite"><div><div style="color:#000; background-color:#fff; font-family:times new roman, new york, times, serif;font-size:12pt"><div><span style="font-family: arial, sans-serif; font-size: 13px;">Hi,</span></div><div style="font-family: arial, sans-serif; font-size: 13px;">&nbsp; &nbsp;I would like to create a map of the all the globally declared variables and their values. I tried to iterate over IdentifierTable using this code.</div><div style="font-family: arial, sans-serif; font-size: 13px;"><div>IdentifierTable *iTable = identifierTable;</div><div><span style="white-space: pre-wrap;">        </span>LiteralIdentifierTable&amp; literalTable = iTable-&gt;literalTable();</div><div><span style="white-space: pre-wrap;">        </span>//if(literalTable) {</div><div><span style="white-space: pre-wrap;">        </span>cout&lt;&lt;"Hashmap capacity : "&lt;&lt;literalTable.size()&lt;&lt;endl;&nbsp;</div><div><span style="white-space: pre-wrap;">        </span>//}</div><div><span style="white-space: pre-wrap;">        </span>LiteralIdentifierTable::<wbr>iterator itr = literalTable.begin();</div><div><span style="white-space: pre-wrap;">        </span>while(itr != literalTable.end()) {</div><div><span style="white-space: pre-wrap;">                </span>++itr;</div><div><span style="white-space: pre-wrap;">                </span>const char *data = itr-&gt;first;</div><div><span style="white-space: pre-wrap;">                </span>if(data &amp;&amp; strcmp(data,"var") == 0) {</div><div><br></div><div><span style="white-space: pre-wrap;">                        </span>cout&lt;&lt;"The literal is : "&lt;&lt;data&lt;&lt;endl;</div><div><span style="white-space: pre-wrap;">                        </span>//cout&lt;&lt;"And the value is : "&lt;&lt;*itr-&gt;second&lt;&lt;endl;</div><div><span style="white-space: pre-wrap;">                </span>}</div><div><span style="white-space: pre-wrap;">        </span>&nbsp;&nbsp; &nbsp; &nbsp;// &nbsp;cout&lt;&lt;(*itr)-&gt;first()&lt;&lt;endl;</div><div><span style="white-space: pre-wrap;">                </span>//const
 char* key = &nbsp;itr-&gt;begin();</div><div><span style="white-space: pre-wrap;">                </span>//cout&lt;&lt;"The Key is : "&lt;&lt;key&lt;&lt;endl;</div><div><span style="white-space: pre-wrap;">        </span>}</div><div><br></div><div>However I am not able to get the values corresponding to the variable. Is that IdentifierTable does not store global variables?&nbsp;</div><div>I am chaing the source code for the Javascript engine, so I don't have have to use the api. I would like to know the datastructure(s) that stores global variables and how get the value of a variable?</div><div>Thanks,</div><div>wc</div></div></div></div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>webkit-dev mailing list</span><br><span><a href="mailto:webkit-dev@lists.webkit.org">webkit-dev@lists.webkit.org</a></span><br><span><a href="https://lists.webkit.org/mailman/listinfo/webkit-dev">https://lists.webkit.org/mailman/listinfo/webkit-dev</a></span><br></div></blockquote></body></html>