Skip to content

Commit 064146b

Browse files
Update and rename a_programming_languague_completejavascript.com.js to A_programming_languague_completejavascript.com.js
1 parent 6287eae commit 064146b

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

practice/a_programming_languague_completejavascript.com.js renamed to practice/A_programming_languague_completejavascript.com.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -156,18 +156,19 @@ specialForms["fun"] = function(args, env) {
156156
specialForms["set"] = function(args, env) {
157157
if (args.length != 2 || args[0].type != "word")
158158
throw new SyntaxError("Bad use of define");
159+
160+
var name = args[0].name;
161+
var val = evaluate(args[1], env);
162+
159163
var proto = Object.getPrototypeOf(env);
160-
var check = false;
161164
while(true) {
162165
if(proto == null) {
163-
if (!check) throw new ReferenceError('ReferenceError hehe');
164-
else break;
166+
throw new ReferenceError('ReferenceError hehe');
165167
}
166168

167-
var value = evaluate(args[1], env);
168-
if(args[0].name in proto) {
169-
env[args[0].name] = value;
170-
check = true;
169+
if(name in proto) {
170+
proto[name] = val;
171+
break;
171172
}
172173

173174
proto = Object.getPrototypeOf(proto);

0 commit comments

Comments
 (0)