[jsbuilt-ins] jsbuilt_ins mock up

This commit is contained in:
sulyi 2016-12-28 07:10:47 +01:00
parent 3f075d87da
commit 41596ff77d

View File

@ -0,0 +1,60 @@
from __future__ import unicode_literals
class JSBase(object):
def __init__(self, cls=None):
if cls is None:
cls = self.__class__
if cls is JSBase:
self.prototype = {}
else:
super(cls, self).__init__(cls.__bases__[0])
self.prototype.update(cls.prototype)
def get_proto_prop(self, prop):
return self.prototype[prop](self)
class JSObject(JSBase):
def __init__(self, value=None):
super(JSObject, self).__init__()
self.value = value
self.props = {}
@staticmethod
def get_prototype_of(o):
return 'prototype'
def has_own_prop(self):
return 'object has own prop'
def to_string(self):
return 'object to string'
prototype = {'hasOwnProperty': has_own_prop, 'toLocaleString': to_string}
props = {'prototype ': prototype, 'getPrototypeOf': get_prototype_of}
class JSArray(JSObject):
def __init__(self, length=0):
super(JSArray, self).__init__()
self.value = []
self.props = {'length': length}
@staticmethod
def is_array(arg):
return 'is array'
def concat(self):
return 'concat'
def join(self):
return 'join'
def to_string(self):
return 'array to string'
prototype = {'concat': concat, 'join': join, 'toLocaleString': to_string}
props = {'prototype ': prototype, 'isArray': is_array, 'length': 1}