Large diffs are not rendered by default.

This file was deleted.

@@ -23,7 +23,8 @@
</head>
<script type="text/template" id="program-body">
X ={
"id": 1
"id": 1,
"data":2
};

//1,2,3,4
@@ -375,7 +375,7 @@ var make_parse = function () {
// }
// return this;
// });
infix(",", 20);
//infix(",", 20);
infix("[", 80, function (left) {
this.first = left;
this.second = expression(0);
@@ -452,26 +452,26 @@ var make_parse = function () {
prefix("-");
prefix("typeof");

// prefix("(", function () {
// var a = [];
// while (true) {
// a.push(expression(0));
// if (token.id !== ",") {
// break;
// }
// advance(",");
// }
prefix("(", function () {
var a = [];
while (true) {
a.push(expression(0));
if (token.id !== ",") {
break;
}
advance(",");
}

// advance(")");
advance(")");

// if(a.length == 1) {
// return a[0];
// }
if(a.length == 1) {
return a[0];
}

// this.first = a;
// this.arity = "unary";
// return this;
// });
this.first = a;
this.arity = "unary";
return this;
});

prefix("(", function () {
var e = expression(0);
@@ -5,9 +5,6 @@ class EnvironmentRecord(object):
def has_binding(self, identifier):
return False

def create_binding(self, identifier):
raise NotImplementedError

def set_binding(self, identifier, value):
raise NotImplementedError

@@ -32,26 +29,15 @@ def has_binding(self, identifier):
def _get_binding(self, name):
return self.bindings.get(name)

def _add_binding(self, name, value):
self.bindings.add(name, value)

def _set_binding(self, name, value):
self.bindings.set(name, value)
self.bindings.add(name, value)

def _del_binding(self, name):
self.bindings.delete(name)

# 10.2.1.1.2
def create_binding(self, identifier):
from obin.objects.object_space import newundefined
assert identifier is not None and isinstance(identifier, unicode)
assert not self.has_binding(identifier)
self._add_binding(identifier, newundefined())

# 10.2.1.1.3
def set_binding(self, identifier, value):
assert identifier is not None and isinstance(identifier, unicode)
assert self.has_binding(identifier)
self._set_binding(identifier, value)

# 10.2.1.1.4
@@ -80,15 +66,6 @@ def has_binding(self, n):
bindings = self.binding_object
return bindings.has_property(n)

# 10.2.1.2.2
def create_binding(self, n):
from obin.objects.object_space import newundefined
assert n is not None and isinstance(n, unicode)
bindings = self.binding_object
assert bindings.has_property(n) is False

bindings.put(n, newundefined())

# 10.2.1.2.3
def set_binding(self, n, v):
assert n is not None and isinstance(n, unicode)