[pypy-commit] lang-js default: 11.6.1-1

stepahn noreply at buildbot.pypy.org
Fri Dec 28 11:34:23 CET 2012


Author: Stephan <stephan at stzal.com>
Branch: 
Changeset: r242:75dd5156d622
Date: 2012-06-02 11:58 +0200
http://bitbucket.org/pypy/lang-js/changeset/75dd5156d622/

Log:	11.6.1-1

diff --git a/js/baseop.py b/js/baseop.py
--- a/js/baseop.py
+++ b/js/baseop.py
@@ -11,23 +11,26 @@
 
 import math
 
-# 11.6.1
-def plus(ctx, nleft, nright):
-    if isinstance(nleft, W_String) or isinstance(nright, W_String):
-        sleft = nleft.to_string()
-        sright = nright.to_string()
+# 11.6.1, 11.6.3
+def plus(ctx, lval, rval):
+    lprim = lval.ToPrimitive()
+    rprim = rval.ToPrimitive()
+
+    if isinstance(lprim, W_String) or isinstance(rprim, W_String):
+        sleft = lprim.to_string()
+        sright = rprim.to_string()
         return W_String(sleft + sright)
     # hot path
-    if isinstance(nleft, W_IntNumber) and isinstance(nright, W_IntNumber):
-        ileft = nleft.ToInteger()
-        iright = nright.ToInteger()
+    if isinstance(lprim, W_IntNumber) and isinstance(rprim, W_IntNumber):
+        ileft = lprim.ToInteger()
+        iright = rprim.ToInteger()
         try:
             return W_IntNumber(ovfcheck(ileft + iright))
         except OverflowError:
             return W_FloatNumber(float(ileft) + float(iright))
     else:
-        fleft = nleft.ToNumber()
-        fright = nright.ToNumber()
+        fleft = lprim.ToNumber()
+        fright = rprim.ToNumber()
         return W_FloatNumber(fleft + fright)
 
 def increment(ctx, nleft, constval=1):
diff --git a/js/jsobj.py b/js/jsobj.py
--- a/js/jsobj.py
+++ b/js/jsobj.py
@@ -592,6 +592,9 @@
 class W_BooleanObject(W__PrimitiveObject):
     _class_ = 'Boolean'
 
+    def __str__(self):
+        return u'W_BooleanObject(%s)' % (str(self._primitive_value_))
+
 class W_NumericObject(W__PrimitiveObject):
     _class_ = 'Number'
 


More information about the pypy-commit mailing list