Author: Stephan <[email protected]>
Branch:
Changeset: r282:c9b4ddad5bff
Date: 2012-08-24 10:32 +0200
http://bitbucket.org/pypy/lang-js/changeset/c9b4ddad5bff/
Log: cleaned up imports and whitespaces
diff --git a/js/builtins_interpreter.py b/js/builtins_interpreter.py
--- a/js/builtins_interpreter.py
+++ b/js/builtins_interpreter.py
@@ -19,10 +19,12 @@
filename = args[0].to_string()
object_space.interpreter.run_file(str(filename))
+
@w_return
def js_trace(this, args):
import pdb; pdb.set_trace()
+
@w_return
def js_debug(this, args):
from js.object_space import object_space
@@ -30,6 +32,7 @@
config.debug = not config.debug
return config.debug
+
def overriden_eval(ctx):
from js.builtins_global import js_eval
from js.execution import JsException
diff --git a/js/jsobj.py b/js/jsobj.py
--- a/js/jsobj.py
+++ b/js/jsobj.py
@@ -2,7 +2,8 @@
from pypy.rpython.lltypesystem import rffi
from pypy.rlib.rarithmetic import intmask, ovfcheck_float_to_int
from pypy.rlib.rfloat import isnan, isinf, NAN, formatd, INFINITY
-from js.execution import JsTypeError, JsRangeError, ReturnException
+from js.execution import JsTypeError, JsRangeError
+
from pypy.rlib.objectmodel import enforceargs
from js.property_descriptor import PropertyDescriptor, DataPropertyDescriptor,
AccessorPropertyDescriptor, is_data_descriptor, is_generic_descriptor,
is_accessor_descriptor
@@ -36,7 +37,7 @@
def to_boolean(self):
return False
- def ToPrimitive(self, hint = None):
+ def ToPrimitive(self, hint=None):
return self
def ToObject(self):
@@ -81,11 +82,14 @@
def check_object_coercible(self):
pass
+
class W_Primitive(W_Root):
pass
+
class W_Undefined(W_Primitive):
_type_ = 'undefined'
+
def ToInteger(self):
return 0
@@ -101,6 +105,7 @@
def ToObject(self):
raise JsTypeError(u'W_Undefined.ToObject')
+
class W_Null(W_Primitive):
_type_ = 'null'
@@ -125,21 +130,23 @@
self.name = name
self.descriptor = descriptor
+
class W_ProtoGetter(W_Root):
def is_callable(self):
return True
- def Call(self, args = [], this = None, calling_context = None):
+ def Call(self, args=[], this=None, calling_context=None):
if not isinstance(this, W_BasicObject):
raise JsTypeError(u'')
return this._prototype_
+
class W_ProtoSetter(W_Root):
def is_callable(self):
return True
- def Call(self, args = [], this = None, calling_context = None):
+ def Call(self, args=[], this=None, calling_context=None):
if not isinstance(this, W_BasicObject):
raise JsTypeError(u'')
@@ -155,6 +162,7 @@
raise JsTypeError(msg)
return False
+
class W_BasicObject(W_Root):
_type_ = 'object'
_class_ = 'Object'
@@ -168,7 +176,6 @@
def __str__(self):
return "%s: %s" % (object.__repr__(self), self.klass())
-
##########
# 8.6.2 Object Internal Properties and Methods
def prototype(self):
@@ -182,7 +189,6 @@
# 8.12.3
def get(self, p):
- #assert isinstance(p, unicode)
assert p is not None and isinstance(p, unicode)
desc = self.get_property(p)
@@ -196,12 +202,11 @@
if getter is None:
return w_Undefined
- res = getter.Call(this = self)
+ res = getter.Call(this=self)
return res
# 8.12.1
def get_own_property(self, p):
- #assert isinstance(p, unicode)
assert p is not None and isinstance(p, unicode)
prop = self._properties_.get(p, None)
@@ -212,7 +217,6 @@
# 8.12.2
def get_property(self, p):
- #assert isinstance(p, unicode)
assert p is not None and isinstance(p, unicode)
prop = self.get_own_property(p)
@@ -226,7 +230,7 @@
return proto.get_property(p)
# 8.12.5
- def put(self, p, v, throw = False):
+ def put(self, p, v, throw=False):
#assert isinstance(p, unicode)
assert p is not None and isinstance(p, unicode)
@@ -238,7 +242,7 @@
own_desc = self.get_own_property(p)
if is_data_descriptor(own_desc) is True:
- value_desc = PropertyDescriptor(value = v)
+ value_desc = PropertyDescriptor(value=v)
self.define_own_property(p, value_desc, throw)
return
@@ -246,7 +250,7 @@
if is_accessor_descriptor(desc) is True:
setter = desc.setter
assert setter is not None
- setter.Call(this = self, args = [v])
+ setter.Call(this=self, args=[v])
else:
new_desc = DataPropertyDescriptor(v, True, True, True)
self.define_own_property(p, new_desc, throw)
@@ -337,9 +341,10 @@
return val
# 8.12.9
- def define_own_property(self, p, desc, throw = False):
+ def define_own_property(self, p, desc, throw=False):
current = self.get_own_property(p)
extensible = self.extensible()
+
# 3.
if current is None and extensible is False:
return reject(throw, p)
@@ -438,7 +443,7 @@
def to_string(self):
return self.ToPrimitive('String').to_string()
- def ToPrimitive(self, hint = None):
+ def ToPrimitive(self, hint=None):
return self.default_value(hint)
def ToObject(self):
@@ -700,8 +705,8 @@
# 15.9.2
class W_DateConstructor(W_BasicFunction):
def Call(self, args = [], this = None, calling_context = None):
- from js.builtins import get_arg
import time
+ #from js.builtins import get_arg
# TODO
#import datetime
@@ -1151,18 +1156,20 @@
return u'<Iterator>'
w_0 = W_IntNumber(0)
+
+
class W__Array(W_BasicObject):
_class_ = 'Array'
- def __init__(self, length = w_0):
+ def __init__(self, length=w_0):
W_BasicObject.__init__(self)
assert isinstance(length, W_Root)
- desc = PropertyDescriptor(value = length, writable = True, enumerable
= False, configurable = False)
+ desc = PropertyDescriptor(value=length, writable=True,
enumerable=False, configurable=False)
W_BasicObject.define_own_property(self, u'length', desc)
# 15.4.5.1
- def define_own_property(self, p, desc, throw = False):
+ def define_own_property(self, p, desc, throw=False):
old_len_desc = self.get_own_property(u'length')
assert old_len_desc is not None
old_len = old_len_desc.value.ToUInt32()
diff --git a/js/lexical_environment.py b/js/lexical_environment.py
--- a/js/lexical_environment.py
+++ b/js/lexical_environment.py
@@ -1,20 +1,20 @@
-from js.jsobj import w_Undefined
from js.execution import JsReferenceError
-def get_identifier_reference(lex, identifier, strict = False):
+def get_identifier_reference(lex, identifier, strict=False):
if lex is None:
- return Reference(referenced = identifier, strict = strict)
+ return Reference(referenced=identifier, strict=strict)
envRec = lex.environment_record
exists = envRec.has_binding(identifier)
if exists:
- return Reference(base_env = envRec, referenced = identifier, strict =
strict)
+ return Reference(base_env=envRec, referenced=identifier, strict=strict)
else:
outer = lex.outer_environment
return get_identifier_reference(outer, identifier, strict)
+
class LexicalEnvironment(object):
- def __init__(self, outer_environment = None):
+ def __init__(self, outer_environment=None):
assert isinstance(outer_environment, LexicalEnvironment) or
outer_environment is None
self.outer_environment = outer_environment
self.environment_record = None
@@ -28,14 +28,16 @@
from js.environment_record import DeclarativeEnvironmentRecord
self.environment_record = DeclarativeEnvironmentRecord()
+
class ObjectEnvironment(LexicalEnvironment):
def __init__(self, obj, outer_environment = None):
LexicalEnvironment.__init__(self, outer_environment)
from js.environment_record import ObjectEnvironmentRecord
self.environment_record = ObjectEnvironmentRecord(obj)
+
class Reference(object):
- def __init__(self, base_value = None, base_env = None, referenced = None,
strict = False):
+ def __init__(self, base_value=None, base_env=None, referenced=None,
strict=False):
self.base_env = base_env
self.base_value = base_value
self.referenced = referenced
@@ -48,7 +50,7 @@
return self.referenced
def is_strict_reference(self):
- return self.strict == True
+ return self.strict is True
def has_primitive_base(self):
b = self.base_value
@@ -59,7 +61,7 @@
def is_property_reference(self):
from js.jsobj import W_BasicObject
- if isinstance(self.base_value, W_BasicObject) or
self.has_primitive_base() == True:
+ if isinstance(self.base_value, W_BasicObject) or
self.has_primitive_base() is True:
return True
return False
@@ -74,6 +76,7 @@
def put_value(self, value):
put_value(self, value)
+
# 8.7.1
def get_value(v):
if not isinstance(v, Reference):
@@ -93,6 +96,7 @@
strict = v.is_strict_reference()
return base_env.get_binding_value(name, strict)
+
# 8.7.2
def put_value(v, w):
if not isinstance(v, Reference):
@@ -108,7 +112,7 @@
from js.object_space import object_space
global_object = object_space.global_object
- global_object.put(name, w, throw = False)
+ global_object.put(name, w, throw=False)
elif v.is_property_reference():
raise NotImplementedError('8.7.2 4.')
else:
@@ -118,4 +122,3 @@
name = v.get_referenced_name()
strict = v.is_strict_reference()
base_env.set_mutable_binding(name, w, strict)
-
diff --git a/js/opcodes.py b/js/opcodes.py
--- a/js/opcodes.py
+++ b/js/opcodes.py
@@ -114,6 +114,7 @@
def eval(self, ctx):
ctx.stack_append(w_Null)
+
class LOAD_VARIABLE(Opcode):
#_immutable_fields_ = ['identifier']
def __init__(self, index, identifier):
@@ -129,7 +130,8 @@
ctx.stack_append(value)
def __str__(self):
- return 'LOAD_VARIABLE "%s"' %(self.identifier)
+ return 'LOAD_VARIABLE "%s"' % (self.identifier)
+
class LOAD_THIS(Opcode):
# 11.1.1
@@ -407,16 +409,20 @@
def decision(self, ctx, op1, op2):
return newbool(not AbstractEC(ctx, op1, op2))
+
class IS(BaseBinaryComparison):
def decision(self, ctx, op1, op2):
return newbool(StrictEC(op1, op2))
+
class ISNOT(BaseBinaryComparison):
def decision(self, ctx, op1, op2):
return newbool(not StrictEC(op1, op2))
+
class STORE_MEMBER(Opcode):
_stack_change = 0
+
def eval(self, ctx):
left = ctx.stack_pop()
member = ctx.stack_pop()
@@ -430,9 +436,11 @@
ctx.stack_append(value)
+
class STORE(Opcode):
#_immutable_fields_ = ['name']
_stack_change = 0
+
def __init__(self, index, identifier):
assert index is not None
self.index = index
@@ -444,22 +452,26 @@
ref.put_value(value)
def __str__(self):
- return 'STORE "%s"' %(self.identifier)
+ return 'STORE "%s"' % (self.identifier)
class LABEL(Opcode):
_stack_change = 0
+
def __init__(self, num):
self.num = num
def __str__(self):
- return 'LABEL %d' %( self.num)
+ return 'LABEL %d' % (self.num)
+
#def __repr__(self):
#return 'LABEL %d' % (self.num,)
+
class BaseJump(Opcode):
_immutable_fields_ = ['where']
_stack_change = 0
+
def __init__(self, where):
self.where = where
self.decision = False
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit