Reviewed by Adam.
authorandersca@apple.com <andersca@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 27 Nov 2007 22:21:24 +0000 (22:21 +0000)
committerandersca@apple.com <andersca@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 27 Nov 2007 22:21:24 +0000 (22:21 +0000)
        Make PropertyNameArray and ScopeChain COMEnumVariant friendly.

        * kjs/PropertyNameArray.cpp:
        (KJS::PropertyNameArray::swap):
        Implement PropertyNameArray::swap.

        * kjs/PropertyNameArray.h:
        Add ValueType typedef. Replace PropertyNameArrayIterator with
        PropertyNameArray::const_iterator.

        * kjs/nodes.cpp:
        (KJS::ForInNode::execute):
        * kjs/scope_chain.cpp:
        (KJS::ScopeChain::print):
        Update for changes to PropertyNameArray.

        * kjs/scope_chain.h:
        Add const_iterator and ValueType typedef.

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

JavaScriptCore/ChangeLog
JavaScriptCore/kjs/PropertyNameArray.cpp
JavaScriptCore/kjs/PropertyNameArray.h
JavaScriptCore/kjs/nodes.cpp
JavaScriptCore/kjs/scope_chain.cpp
JavaScriptCore/kjs/scope_chain.h

index 77568cb18172b1c9317c3f627dc83f931a9f1296..f6af0cc039bf599cfb2594fa2b1e4c98233ab2e3 100644 (file)
@@ -1,3 +1,26 @@
+2007-11-27  Anders Carlsson  <andersca@apple.com>
+
+        Reviewed by Adam.
+
+        Make PropertyNameArray and ScopeChain COMEnumVariant friendly.
+        
+        * kjs/PropertyNameArray.cpp:
+        (KJS::PropertyNameArray::swap):
+        Implement PropertyNameArray::swap.
+        
+        * kjs/PropertyNameArray.h:
+        Add ValueType typedef. Replace PropertyNameArrayIterator with 
+        PropertyNameArray::const_iterator.
+        
+        * kjs/nodes.cpp:
+        (KJS::ForInNode::execute):
+        * kjs/scope_chain.cpp:
+        (KJS::ScopeChain::print):
+        Update for changes to PropertyNameArray.
+        
+        * kjs/scope_chain.h:
+        Add const_iterator and ValueType typedef.
+        
 2007-11-27  Anders Carlsson  <andersca@apple.com>
 
         Reviewed by Darin.
index be7dc914c744ec6670d3e2139c33c2fd5319232d..45dda3a59db21246cfedb80607e20de32ceaf34e 100644 (file)
@@ -32,5 +32,12 @@ void PropertyNameArray::add(const Identifier& ident)
     m_vector.append(ident);
 }
 
+void PropertyNameArray::swap(PropertyNameArray& other)
+{
+    m_vector.swap(other.m_vector);
+    m_set.swap(other.m_set);
+}
+
+
 } // namespace KJS
 
index 839a54bccc3c9beaffc119dbeff2f924a3075b55..b702d213226e43bba2b747cea6676056fdee38db 100644 (file)
 
 namespace KJS {
 
-    class PropertyNameArray;
-
-    typedef Vector<Identifier>::const_iterator PropertyNameArrayIterator;
-
     class PropertyNameArray {
     public:
-        typedef PropertyNameArrayIterator iterator;
+        typedef Identifier ValueType;
+        typedef Vector<Identifier>::const_iterator const_iterator;
 
         void add(const Identifier&);
-        iterator begin() const { return m_vector.begin(); }
-        iterator end() const { return m_vector.end(); }
+        const_iterator begin() const { return m_vector.begin(); }
+        const_iterator end() const { return m_vector.end(); }
         size_t size() const { return m_vector.size(); }
 
         Identifier& operator[](unsigned i) { return m_vector[i]; }
         const Identifier& operator[](unsigned i) const { return m_vector[i]; }
-            
+
+        void swap(PropertyNameArray&);
     private:
         typedef HashSet<UString::Rep*, PtrHash<UString::Rep*> > IdentifierSet;
         IdentifierSet m_set;
index 1e0ac9732df43acda689fbe53979b9623a6701c1..83fb7ebadce4c75a68b13f936fbc42ad3a697469 100644 (file)
@@ -3984,8 +3984,8 @@ Completion ForInNode::execute(ExecState *exec)
   v = e->toObject(exec);
   v->getPropertyNames(exec, propertyNames);
   
-  PropertyNameArrayIterator end = propertyNames.end();
-  for (PropertyNameArrayIterator it = propertyNames.begin(); it != end; ++it) {
+  PropertyNameArray::const_iterator end = propertyNames.end();
+  for (PropertyNameArray::const_iterator it = propertyNames.begin(); it != end; ++it) {
       const Identifier &name = *it;
       if (!v->hasProperty(exec, name))
           continue;
index 3e08475aeec3b6082f7ae400aeccbb4b40898c08..aba066ad1c068987531174f2262ee4b2808c68bb 100644 (file)
@@ -47,10 +47,10 @@ void ScopeChain::print()
         PropertyNameArray propertyNames;
         // FIXME: should pass ExecState here!
         o->getPropertyNames(0, propertyNames);
-        PropertyNameArrayIterator propEnd = propertyNames.end();
+        PropertyNameArray::const_iterator propEnd = propertyNames.end();
 
         fprintf(stderr, "----- [scope %p] -----\n", o);
-        for (PropertyNameArrayIterator propIter = propertyNames.begin(); propIter != propEnd; propIter++) {
+        for (PropertyNameArray::const_iterator propIter = propertyNames.begin(); propIter != propEnd; propIter++) {
             Identifier name = *propIter;
             fprintf(stderr, "%s, ", name.ascii());
         }
index 265c31cfc74af628f96d4331778feb81d05c1935..a10abcdbba00eb2d903ff6113027ac3e514499ce 100644 (file)
@@ -59,6 +59,9 @@ namespace KJS {
 
     class ScopeChain {
     public:
+        typedef ScopeChainIterator const_iterator;
+        typedef JSObject* ValueType;
+
         ScopeChain() : _node(0) { }
         ~ScopeChain() { deref(); }