changeset 32:64f1d516fbfd

Tiny bit of work on closures
author Mike Pavone <pavone@retrodev.com>
date Sat, 07 Jul 2012 17:03:01 -0700
parents 668f533e5284
children 96e21f525b78
files cbackend.js
diffstat 1 files changed, 8 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/cbackend.js	Sat Jul 07 16:48:36 2012 -0700
+++ b/cbackend.js	Sat Jul 07 17:03:01 2012 -0700
@@ -68,9 +68,14 @@
 	if (info.type == 'self') {
 		pre = this.symbols.selfVar() + '->';
 	} else if(info.type == 'parent') {
-		pre = this.symbols.selfVar();
-		for (var i = 0; i < funinfo.depth; ++i) {
-			pre += '->parent';
+		pre = this.symbols.selfVar() + '->';
+		for (var i = 0; i < info.depth; ++i) {
+			pre += 'parent->';
+		}
+	} else if(info.type == 'upvar') {
+		pre = 'env->';
+		for (var i = 1; i < info.depth; ++i) {
+			pre += 'parent->';
 		}
 	} else if (info.type == 'toplevel') {
 		pre = 'modules.';