[pypy-commit] lang-js default: split adding and setting object properties

stepahn noreply at buildbot.pypy.org
Fri Dec 28 11:35:26 CET 2012


Author: Stephan <stephan at stzal.com>
Branch: 
Changeset: r304:9d320448401d
Date: 2012-09-04 16:10 +0200
http://bitbucket.org/pypy/lang-js/changeset/9d320448401d/

Log:	split adding and setting object properties

diff --git a/js/jsobj.py b/js/jsobj.py
--- a/js/jsobj.py
+++ b/js/jsobj.py
@@ -240,8 +240,6 @@
 
         if self._property_map_.not_found(idx):
             return
-        elif idx >= len(self._property_slots_):
-                return
 
         prop = self._property_slots_[idx]
         return prop
@@ -255,7 +253,7 @@
         del(self._property_slots_[idx])
         self._property_map_ = self._property_map_.delete(name)
 
-    def _set_prop(self, name, value):
+    def _add_prop(self, name, value):
         idx = self._property_map_.lookup(name)
 
         if self._property_map_.not_found(idx):
@@ -267,6 +265,10 @@
 
         self._property_slots_[idx] = value
 
+    def _set_prop(self, name, value):
+        idx = self._property_map_.lookup(name)
+        self._property_slots_[idx] = value
+
     # 8.12.2
     def get_property(self, p):
         assert p is not None and isinstance(p, unicode)
@@ -411,7 +413,7 @@
                     desc.enumerable,
                     desc.configurable
                 )
-                self._set_prop(p, new_prop)
+                self._add_prop(p, new_prop)
             # 4.b
             else:
                 assert is_accessor_descriptor(desc) is True
@@ -421,7 +423,7 @@
                     desc.enumerable,
                     desc.configurable
                 )
-                self._set_prop(p, new_prop)
+                self._add_prop(p, new_prop)
             # 4.c
             return True
 


More information about the pypy-commit mailing list