[pypy-commit] lang-js default: optimized property access in W_Object
stepahn
noreply at buildbot.pypy.org
Fri Dec 28 11:32:33 CET 2012
Author: Stephan <stephan at stzal.com>
Branch:
Changeset: r135:2cde4c06fb6d
Date: 2011-10-06 15:20 +0200
http://bitbucket.org/pypy/lang-js/changeset/2cde4c06fb6d/
Log: optimized property access in W_Object
diff --git a/js/jsobj.py b/js/jsobj.py
--- a/js/jsobj.py
+++ b/js/jsobj.py
@@ -213,21 +213,22 @@
return self.Prototype.Get(ctx, P) # go down the prototype chain
def CanPut(self, P):
- if P in self.propdict:
- if self.propdict[P].flags & RO: return False
+ property = self.propdict.get(P, None)
+ if property is not None:
+ if property.flags & RO: return False
return True
if self.Prototype is None: return True
return self.Prototype.CanPut(P)
def Put(self, ctx, P, V, flags = 0):
+ property = self.propdict.get(P, None)
+ if property is not None:
+ property.value = V
+ property.flags |= flags
+ return
if not self.CanPut(P): return
- if P in self.propdict:
- prop = self.propdict[P]
- prop.value = V
- prop.flags |= flags
- else:
- self.propdict[P] = Property(P, V, flags = flags)
+ self.propdict[P] = Property(P, V, flags = flags)
def HasProperty(self, P):
if P in self.propdict: return True
More information about the pypy-commit
mailing list