Explorar el Código

Move ivars from `obj["@x"]` to `obj.x`.

Step 3: Inline JS.
Herby Vojčík hace 5 años
padre
commit
a7849eff30

+ 2 - 0
CHANGELOG

@@ -14,6 +14,8 @@
 * Namespace change: amber_core => amber/core.
 * Namespace change: amber_core => amber/core.
   * Backward compatibility mapping added, so old code should load and save with new implicit deps.
   * Backward compatibility mapping added, so old code should load and save with new implicit deps.
   * You must edit explicir deps (aka `imports:`) as well as Gruntfile, deploy, testing and devel .js files yourself.
   * You must edit explicir deps (aka `imports:`) as well as Gruntfile, deploy, testing and devel .js files yourself.
+* Instance variables are now compiled as `obj.ivarName` instead of `obj["@ivarName"]`.
+  * There is compat layer so old code is loadable.
 
 
 Commits: https://lolg.it/amber/amber/commits/0.23.0
 Commits: https://lolg.it/amber/amber/commits/0.23.0
 
 

+ 4 - 0
lang/API-CHANGES.txt

@@ -1,6 +1,10 @@
 0.23.0:
 0.23.0:
 
 
 * Namespace change: amber_core => amber/core.
 * Namespace change: amber_core => amber/core.
+* amber/boot api addClass only takes 3 params; 4 param version deprecated
+
++ amber/boot api
+  + setInstanceVariables(klass, arrayOfNames)
 
 
 
 
 0.22.4:
 0.22.4:

+ 35 - 35
lang/src/Kernel-Collections.js

@@ -218,9 +218,9 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 //>>excludeEnd("ctx");
 
 
-		var hash = $self['@hashBlock'](anObject);
+		var hash = $self.hashBlock(anObject);
 		if (!hash) return null;
 		if (!hash) return null;
-		var buckets = $self['@buckets'],
+		var buckets = $self.buckets,
 			bucket = buckets[hash];
 			bucket = buckets[hash];
 		if (!bucket) { bucket = buckets[hash] = $self._newBucket(); }
 		if (!bucket) { bucket = buckets[hash] = $self._newBucket(); }
 		return bucket;
 		return bucket;
@@ -232,7 +232,7 @@ return self;
 },
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: ["anObject"],
 args: ["anObject"],
-source: "bucketOfElement: anObject\x0a\x09<inlineJS: '\x0a\x09\x09var hash = $self[''@hashBlock''](anObject);\x0a\x09\x09if (!hash) return null;\x0a\x09\x09var buckets = $self[''@buckets''],\x0a\x09\x09\x09bucket = buckets[hash];\x0a\x09\x09if (!bucket) { bucket = buckets[hash] = $self._newBucket(); }\x0a\x09\x09return bucket;\x0a\x09'>",
+source: "bucketOfElement: anObject\x0a\x09<inlineJS: '\x0a\x09\x09var hash = $self.hashBlock(anObject);\x0a\x09\x09if (!hash) return null;\x0a\x09\x09var buckets = $self.buckets,\x0a\x09\x09\x09bucket = buckets[hash];\x0a\x09\x09if (!bucket) { bucket = buckets[hash] = $self._newBucket(); }\x0a\x09\x09return bucket;\x0a\x09'>",
 referencedClasses: [],
 referencedClasses: [],
 //>>excludeEnd("ide");
 //>>excludeEnd("ide");
 messageSends: []
 messageSends: []
@@ -249,7 +249,7 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 //>>excludeEnd("ctx");
 
 
-		var buckets = $self['@buckets'];
+		var buckets = $self.buckets;
 		var keys = Object.keys(buckets);
 		var keys = Object.keys(buckets);
 		for (var i = 0; i < keys.length; ++i) { buckets[keys[i]]._do_(aBlock); }
 		for (var i = 0; i < keys.length; ++i) { buckets[keys[i]]._do_(aBlock); }
 	;
 	;
@@ -260,7 +260,7 @@ return self;
 },
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: ["aBlock"],
 args: ["aBlock"],
-source: "do: aBlock\x0a\x09<inlineJS: '\x0a\x09\x09var buckets = $self[''@buckets''];\x0a\x09\x09var keys = Object.keys(buckets);\x0a\x09\x09for (var i = 0; i < keys.length; ++i) { buckets[keys[i]]._do_(aBlock); }\x0a\x09'>",
+source: "do: aBlock\x0a\x09<inlineJS: '\x0a\x09\x09var buckets = $self.buckets;\x0a\x09\x09var keys = Object.keys(buckets);\x0a\x09\x09for (var i = 0; i < keys.length; ++i) { buckets[keys[i]]._do_(aBlock); }\x0a\x09'>",
 referencedClasses: [],
 referencedClasses: [],
 //>>excludeEnd("ide");
 //>>excludeEnd("ide");
 messageSends: []
 messageSends: []
@@ -351,7 +351,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 //>>excludeEnd("ctx");
-$self['@buckets'] = Object.create(null);;
+$self.buckets = Object.create(null);;
 return self;
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"removeAll",{},$globals.BucketStore)});
 }, function($ctx1) {$ctx1.fill(self,"removeAll",{},$globals.BucketStore)});
@@ -359,7 +359,7 @@ return self;
 },
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: [],
 args: [],
-source: "removeAll\x0a\x09<inlineJS: '$self[''@buckets''] = Object.create(null);'>",
+source: "removeAll\x0a\x09<inlineJS: '$self.buckets = Object.create(null);'>",
 referencedClasses: [],
 referencedClasses: [],
 //>>excludeEnd("ide");
 //>>excludeEnd("ide");
 messageSends: []
 messageSends: []
@@ -2996,7 +2996,7 @@ return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 //>>excludeEnd("ctx");
 
 
 		var index = $self._positionOfKey_(aKey);
 		var index = $self._positionOfKey_(aKey);
-		return index >=0 ? $self['@values'][index] : aBlock._value();
+		return index >=0 ? $self.values[index] : aBlock._value();
 	;
 	;
 return self;
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -3005,7 +3005,7 @@ return self;
 },
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: ["aKey", "aBlock"],
 args: ["aKey", "aBlock"],
-source: "at: aKey ifAbsent: aBlock\x0a\x09<inlineJS: '\x0a\x09\x09var index = $self._positionOfKey_(aKey);\x0a\x09\x09return index >=0 ? $self[''@values''][index] : aBlock._value();\x0a\x09'>",
+source: "at: aKey ifAbsent: aBlock\x0a\x09<inlineJS: '\x0a\x09\x09var index = $self._positionOfKey_(aKey);\x0a\x09\x09return index >=0 ? $self.values[index] : aBlock._value();\x0a\x09'>",
 referencedClasses: [],
 referencedClasses: [],
 //>>excludeEnd("ide");
 //>>excludeEnd("ide");
 messageSends: []
 messageSends: []
@@ -3024,12 +3024,12 @@ return $core.withContext(function($ctx1) {
 
 
 		var index = $self._positionOfKey_(aKey);
 		var index = $self._positionOfKey_(aKey);
 		if(index === -1) {
 		if(index === -1) {
-			var keys = $self['@keys'];
+			var keys = $self.keys;
 			index = keys.length;
 			index = keys.length;
 			keys.push(aKey);
 			keys.push(aKey);
 		}
 		}
 
 
-		return $self['@values'][index] = aValue;
+		return $self.values[index] = aValue;
 	;
 	;
 return self;
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -3038,7 +3038,7 @@ return self;
 },
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: ["aKey", "aValue"],
 args: ["aKey", "aValue"],
-source: "at: aKey put: aValue\x0a\x09<inlineJS: '\x0a\x09\x09var index = $self._positionOfKey_(aKey);\x0a\x09\x09if(index === -1) {\x0a\x09\x09\x09var keys = $self[''@keys''];\x0a\x09\x09\x09index = keys.length;\x0a\x09\x09\x09keys.push(aKey);\x0a\x09\x09}\x0a\x0a\x09\x09return $self[''@values''][index] = aValue;\x0a\x09'>",
+source: "at: aKey put: aValue\x0a\x09<inlineJS: '\x0a\x09\x09var index = $self._positionOfKey_(aKey);\x0a\x09\x09if(index === -1) {\x0a\x09\x09\x09var keys = $self.keys;\x0a\x09\x09\x09index = keys.length;\x0a\x09\x09\x09keys.push(aKey);\x0a\x09\x09}\x0a\x0a\x09\x09return $self.values[index] = aValue;\x0a\x09'>",
 referencedClasses: [],
 referencedClasses: [],
 //>>excludeEnd("ide");
 //>>excludeEnd("ide");
 messageSends: []
 messageSends: []
@@ -3215,7 +3215,7 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 //>>excludeEnd("ctx");
 
 
-		var keys = $self['@keys'];
+		var keys = $self.keys;
 		for(var i=0;i<keys.length;i++){
 		for(var i=0;i<keys.length;i++){
 			if(keys[i].__eq(anObject)) { return i;}
 			if(keys[i].__eq(anObject)) { return i;}
 		}
 		}
@@ -3228,7 +3228,7 @@ return self;
 },
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: ["anObject"],
 args: ["anObject"],
-source: "positionOfKey: anObject\x0a\x09<inlineJS: '\x0a\x09\x09var keys = $self[''@keys''];\x0a\x09\x09for(var i=0;i<keys.length;i++){\x0a\x09\x09\x09if(keys[i].__eq(anObject)) { return i;}\x0a\x09\x09}\x0a\x09\x09return -1;\x0a\x09'>",
+source: "positionOfKey: anObject\x0a\x09<inlineJS: '\x0a\x09\x09var keys = $self.keys;\x0a\x09\x09for(var i=0;i<keys.length;i++){\x0a\x09\x09\x09if(keys[i].__eq(anObject)) { return i;}\x0a\x09\x09}\x0a\x09\x09return -1;\x0a\x09'>",
 referencedClasses: [],
 referencedClasses: [],
 //>>excludeEnd("ide");
 //>>excludeEnd("ide");
 messageSends: []
 messageSends: []
@@ -3277,7 +3277,7 @@ return $core.withContext(function($ctx1) {
 		if(index === -1) {
 		if(index === -1) {
 			return aBlock._value()
 			return aBlock._value()
 		} else {
 		} else {
-			var keys = $self['@keys'], values = $self['@values'];
+			var keys = $self.keys, values = $self.values;
 			var value = values[index], l = keys.length;
 			var value = values[index], l = keys.length;
 			keys[index] = keys[l-1];
 			keys[index] = keys[l-1];
 			keys.pop();
 			keys.pop();
@@ -3293,7 +3293,7 @@ return self;
 },
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: ["aKey", "aBlock"],
 args: ["aKey", "aBlock"],
-source: "removeKey: aKey ifAbsent: aBlock\x0a\x09<inlineJS: '\x0a\x09\x09var index = $self._positionOfKey_(aKey);\x0a\x09\x09if(index === -1) {\x0a\x09\x09\x09return aBlock._value()\x0a\x09\x09} else {\x0a\x09\x09\x09var keys = $self[''@keys''], values = $self[''@values''];\x0a\x09\x09\x09var value = values[index], l = keys.length;\x0a\x09\x09\x09keys[index] = keys[l-1];\x0a\x09\x09\x09keys.pop();\x0a\x09\x09\x09values[index] = values[l-1];\x0a\x09\x09\x09values.pop();\x0a\x09\x09\x09return value;\x0a\x09\x09}\x0a\x09'>",
+source: "removeKey: aKey ifAbsent: aBlock\x0a\x09<inlineJS: '\x0a\x09\x09var index = $self._positionOfKey_(aKey);\x0a\x09\x09if(index === -1) {\x0a\x09\x09\x09return aBlock._value()\x0a\x09\x09} else {\x0a\x09\x09\x09var keys = $self.keys, values = $self.values;\x0a\x09\x09\x09var value = values[index], l = keys.length;\x0a\x09\x09\x09keys[index] = keys[l-1];\x0a\x09\x09\x09keys.pop();\x0a\x09\x09\x09values[index] = values[l-1];\x0a\x09\x09\x09values.pop();\x0a\x09\x09\x09return value;\x0a\x09\x09}\x0a\x09'>",
 referencedClasses: [],
 referencedClasses: [],
 //>>excludeEnd("ide");
 //>>excludeEnd("ide");
 messageSends: []
 messageSends: []
@@ -7312,7 +7312,7 @@ return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 //>>excludeEnd("ctx");
 
 
 		if (anObject in anotherObject.store) { return anObject; }
 		if (anObject in anotherObject.store) { return anObject; }
-		$self['@size']++;
+		$self.size++;
 		anotherObject.store[anObject] = true;
 		anotherObject.store[anObject] = true;
 		return anObject;
 		return anObject;
 	;
 	;
@@ -7323,7 +7323,7 @@ return self;
 },
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: ["anObject", "anotherObject"],
 args: ["anObject", "anotherObject"],
-source: "add: anObject in: anotherObject\x0a\x09<inlineJS: '\x0a\x09\x09if (anObject in anotherObject.store) { return anObject; }\x0a\x09\x09$self[''@size'']++;\x0a\x09\x09anotherObject.store[anObject] = true;\x0a\x09\x09return anObject;\x0a\x09'>",
+source: "add: anObject in: anotherObject\x0a\x09<inlineJS: '\x0a\x09\x09if (anObject in anotherObject.store) { return anObject; }\x0a\x09\x09$self.size++;\x0a\x09\x09anotherObject.store[anObject] = true;\x0a\x09\x09return anObject;\x0a\x09'>",
 referencedClasses: [],
 referencedClasses: [],
 //>>excludeEnd("ide");
 //>>excludeEnd("ide");
 messageSends: []
 messageSends: []
@@ -7341,17 +7341,17 @@ return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 //>>excludeEnd("ctx");
 
 
 		// include nil to well-known objects under "boolean" fastBucket
 		// include nil to well-known objects under "boolean" fastBucket
-		if (anObject == null || anObject.a$nil) return [ null, $self['@fastBuckets'].boolean ];
+		if (anObject == null || anObject.a$nil) return [ null, $self.fastBuckets.boolean ];
 		
 		
 		var prim = anObject.valueOf();
 		var prim = anObject.valueOf();
-		if (typeof prim === "object" || typeof prim === "function" || !$self['@fastBuckets'][typeof prim]) {
+		if (typeof prim === "object" || typeof prim === "function" || !$self.fastBuckets[typeof prim]) {
 			var bucket = null;
 			var bucket = null;
-			$self['@slowBucketStores'].some(function (store) {
+			$self.slowBucketStores.some(function (store) {
 				return bucket = store._bucketOfElement_(anObject);
 				return bucket = store._bucketOfElement_(anObject);
 			});
 			});
-			return [ anObject, null, bucket || $self['@defaultBucket'] ];
+			return [ anObject, null, bucket || $self.defaultBucket ];
 		}
 		}
-		return [ prim, $self['@fastBuckets'][typeof prim] ];
+		return [ prim, $self.fastBuckets[typeof prim] ];
 	;
 	;
 return self;
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -7360,7 +7360,7 @@ return self;
 },
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: ["anObject"],
 args: ["anObject"],
-source: "bucketsOfElement: anObject\x0a\x09\x22Find the appropriate bucket for `anObject`.\x0a\x09For optimization purposes, directly answer an array with: \x0a\x09- the object to be store\x0a\x09- the primitive bucket\x0a\x09- the slow bucket\x22\x0a\x09\x0a\x09<inlineJS: '\x0a\x09\x09// include nil to well-known objects under \x22boolean\x22 fastBucket\x0a\x09\x09if (anObject == null || anObject.a$nil) return [ null, $self[''@fastBuckets''].boolean ];\x0a\x09\x09\x0a\x09\x09var prim = anObject.valueOf();\x0a\x09\x09if (typeof prim === \x22object\x22 || typeof prim === \x22function\x22 || !$self[''@fastBuckets''][typeof prim]) {\x0a\x09\x09\x09var bucket = null;\x0a\x09\x09\x09$self[''@slowBucketStores''].some(function (store) {\x0a\x09\x09\x09\x09return bucket = store._bucketOfElement_(anObject);\x0a\x09\x09\x09});\x0a\x09\x09\x09return [ anObject, null, bucket || $self[''@defaultBucket''] ];\x0a\x09\x09}\x0a\x09\x09return [ prim, $self[''@fastBuckets''][typeof prim] ];\x0a\x09'>",
+source: "bucketsOfElement: anObject\x0a\x09\x22Find the appropriate bucket for `anObject`.\x0a\x09For optimization purposes, directly answer an array with: \x0a\x09- the object to be store\x0a\x09- the primitive bucket\x0a\x09- the slow bucket\x22\x0a\x09\x0a\x09<inlineJS: '\x0a\x09\x09// include nil to well-known objects under \x22boolean\x22 fastBucket\x0a\x09\x09if (anObject == null || anObject.a$nil) return [ null, $self.fastBuckets.boolean ];\x0a\x09\x09\x0a\x09\x09var prim = anObject.valueOf();\x0a\x09\x09if (typeof prim === \x22object\x22 || typeof prim === \x22function\x22 || !$self.fastBuckets[typeof prim]) {\x0a\x09\x09\x09var bucket = null;\x0a\x09\x09\x09$self.slowBucketStores.some(function (store) {\x0a\x09\x09\x09\x09return bucket = store._bucketOfElement_(anObject);\x0a\x09\x09\x09});\x0a\x09\x09\x09return [ anObject, null, bucket || $self.defaultBucket ];\x0a\x09\x09}\x0a\x09\x09return [ prim, $self.fastBuckets[typeof prim] ];\x0a\x09'>",
 referencedClasses: [],
 referencedClasses: [],
 //>>excludeEnd("ide");
 //>>excludeEnd("ide");
 messageSends: []
 messageSends: []
@@ -7436,16 +7436,16 @@ return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 //>>excludeEnd("ctx");
 
 
 		var el, keys, i;
 		var el, keys, i;
-		el = $self['@fastBuckets'];
+		el = $self.fastBuckets;
 		keys = Object.keys(el);
 		keys = Object.keys(el);
 		for (i = 0; i < keys.length; ++i) {
 		for (i = 0; i < keys.length; ++i) {
 			var fastBucket = el[keys[i]], fn = fastBucket.fn, store = Object.keys(fastBucket.store);
 			var fastBucket = el[keys[i]], fn = fastBucket.fn, store = Object.keys(fastBucket.store);
 			if (fn) { for (var j = 0; j < store.length; ++j) { aBlock._value_(fn(store[j])); } }
 			if (fn) { for (var j = 0; j < store.length; ++j) { aBlock._value_(fn(store[j])); } }
 			else { store._do_(aBlock); }
 			else { store._do_(aBlock); }
 		}
 		}
-		el = $self['@slowBucketStores'];
+		el = $self.slowBucketStores;
 		for (i = 0; i < el.length; ++i) { el[i]._do_(aBlock); }
 		for (i = 0; i < el.length; ++i) { el[i]._do_(aBlock); }
-		$self['@defaultBucket']._do_(aBlock);
+		$self.defaultBucket._do_(aBlock);
 	;
 	;
 return self;
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -7454,7 +7454,7 @@ return self;
 },
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: ["aBlock"],
 args: ["aBlock"],
-source: "do: aBlock\x0a\x09<inlineJS: '\x0a\x09\x09var el, keys, i;\x0a\x09\x09el = $self[''@fastBuckets''];\x0a\x09\x09keys = Object.keys(el);\x0a\x09\x09for (i = 0; i < keys.length; ++i) {\x0a\x09\x09\x09var fastBucket = el[keys[i]], fn = fastBucket.fn, store = Object.keys(fastBucket.store);\x0a\x09\x09\x09if (fn) { for (var j = 0; j < store.length; ++j) { aBlock._value_(fn(store[j])); } }\x0a\x09\x09\x09else { store._do_(aBlock); }\x0a\x09\x09}\x0a\x09\x09el = $self[''@slowBucketStores''];\x0a\x09\x09for (i = 0; i < el.length; ++i) { el[i]._do_(aBlock); }\x0a\x09\x09$self[''@defaultBucket'']._do_(aBlock);\x0a\x09'>",
+source: "do: aBlock\x0a\x09<inlineJS: '\x0a\x09\x09var el, keys, i;\x0a\x09\x09el = $self.fastBuckets;\x0a\x09\x09keys = Object.keys(el);\x0a\x09\x09for (i = 0; i < keys.length; ++i) {\x0a\x09\x09\x09var fastBucket = el[keys[i]], fn = fastBucket.fn, store = Object.keys(fastBucket.store);\x0a\x09\x09\x09if (fn) { for (var j = 0; j < store.length; ++j) { aBlock._value_(fn(store[j])); } }\x0a\x09\x09\x09else { store._do_(aBlock); }\x0a\x09\x09}\x0a\x09\x09el = $self.slowBucketStores;\x0a\x09\x09for (i = 0; i < el.length; ++i) { el[i]._do_(aBlock); }\x0a\x09\x09$self.defaultBucket._do_(aBlock);\x0a\x09'>",
 referencedClasses: [],
 referencedClasses: [],
 //>>excludeEnd("ide");
 //>>excludeEnd("ide");
 messageSends: []
 messageSends: []
@@ -7749,7 +7749,7 @@ return $core.withContext(function($ctx1) {
 
 
 		if (anObject in anotherObject.store) {
 		if (anObject in anotherObject.store) {
 			delete anotherObject.store[anObject];
 			delete anotherObject.store[anObject];
-			$self['@size']--;
+			$self.size--;
 			return anObject;
 			return anObject;
 		} else {
 		} else {
 			return aBlock._value();
 			return aBlock._value();
@@ -7761,7 +7761,7 @@ return self;
 },
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: ["anObject", "anotherObject", "aBlock"],
 args: ["anObject", "anotherObject", "aBlock"],
-source: "remove: anObject in: anotherObject ifAbsent: aBlock\x0a\x09<inlineJS: '\x0a\x09\x09if (anObject in anotherObject.store) {\x0a\x09\x09\x09delete anotherObject.store[anObject];\x0a\x09\x09\x09$self[''@size'']--;\x0a\x09\x09\x09return anObject;\x0a\x09\x09} else {\x0a\x09\x09\x09return aBlock._value();\x0a\x09\x09}'>",
+source: "remove: anObject in: anotherObject ifAbsent: aBlock\x0a\x09<inlineJS: '\x0a\x09\x09if (anObject in anotherObject.store) {\x0a\x09\x09\x09delete anotherObject.store[anObject];\x0a\x09\x09\x09$self.size--;\x0a\x09\x09\x09return anObject;\x0a\x09\x09} else {\x0a\x09\x09\x09return aBlock._value();\x0a\x09\x09}'>",
 referencedClasses: [],
 referencedClasses: [],
 //>>excludeEnd("ide");
 //>>excludeEnd("ide");
 messageSends: []
 messageSends: []
@@ -7778,14 +7778,14 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 //>>excludeEnd("ctx");
 
 
-		$self['@fastBuckets'] = {
+		$self.fastBuckets = {
 			"boolean": { store: Object.create(null), fn: function (x) { return {"true": true, "false": false, "null": null}[x]; } },
 			"boolean": { store: Object.create(null), fn: function (x) { return {"true": true, "false": false, "null": null}[x]; } },
 			"number": { store: Object.create(null), fn: Number },
 			"number": { store: Object.create(null), fn: Number },
 			"string": { store: Object.create(null) }
 			"string": { store: Object.create(null) }
 		};
 		};
-		$self['@slowBucketStores'].forEach(function (x) { x._removeAll(); });
-		$self['@defaultBucket']._removeAll();
-		$self['@size'] = 0;
+		$self.slowBucketStores.forEach(function (x) { x._removeAll(); });
+		$self.defaultBucket._removeAll();
+		$self.size = 0;
 	;
 	;
 return self;
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -7794,7 +7794,7 @@ return self;
 },
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: [],
 args: [],
-source: "removeAll\x0a\x09<inlineJS: '\x0a\x09\x09$self[''@fastBuckets''] = {\x0a\x09\x09\x09\x22boolean\x22: { store: Object.create(null), fn: function (x) { return {\x22true\x22: true, \x22false\x22: false, \x22null\x22: null}[x]; } },\x0a\x09\x09\x09\x22number\x22: { store: Object.create(null), fn: Number },\x0a\x09\x09\x09\x22string\x22: { store: Object.create(null) }\x0a\x09\x09};\x0a\x09\x09$self[''@slowBucketStores''].forEach(function (x) { x._removeAll(); });\x0a\x09\x09$self[''@defaultBucket'']._removeAll();\x0a\x09\x09$self[''@size''] = 0;\x0a\x09'>",
+source: "removeAll\x0a\x09<inlineJS: '\x0a\x09\x09$self.fastBuckets = {\x0a\x09\x09\x09\x22boolean\x22: { store: Object.create(null), fn: function (x) { return {\x22true\x22: true, \x22false\x22: false, \x22null\x22: null}[x]; } },\x0a\x09\x09\x09\x22number\x22: { store: Object.create(null), fn: Number },\x0a\x09\x09\x09\x22string\x22: { store: Object.create(null) }\x0a\x09\x09};\x0a\x09\x09$self.slowBucketStores.forEach(function (x) { x._removeAll(); });\x0a\x09\x09$self.defaultBucket._removeAll();\x0a\x09\x09$self.size = 0;\x0a\x09'>",
 referencedClasses: [],
 referencedClasses: [],
 //>>excludeEnd("ide");
 //>>excludeEnd("ide");
 messageSends: []
 messageSends: []

+ 23 - 23
lang/src/Kernel-Collections.st

@@ -76,9 +76,9 @@ Types of buckets are the responsibility of subclasses via `#newBucket`.!
 
 
 bucketOfElement: anObject
 bucketOfElement: anObject
 	<inlineJS: '
 	<inlineJS: '
-		var hash = $self[''@hashBlock''](anObject);
+		var hash = $self.hashBlock(anObject);
 		if (!!hash) return null;
 		if (!!hash) return null;
-		var buckets = $self[''@buckets''],
+		var buckets = $self.buckets,
 			bucket = buckets[hash];
 			bucket = buckets[hash];
 		if (!!bucket) { bucket = buckets[hash] = $self._newBucket(); }
 		if (!!bucket) { bucket = buckets[hash] = $self._newBucket(); }
 		return bucket;
 		return bucket;
@@ -92,14 +92,14 @@ hashBlock: aBlock
 !BucketStore methodsFor: 'adding/removing'!
 !BucketStore methodsFor: 'adding/removing'!
 
 
 removeAll
 removeAll
-	<inlineJS: '$self[''@buckets''] = Object.create(null);'>
+	<inlineJS: '$self.buckets = Object.create(null);'>
 ! !
 ! !
 
 
 !BucketStore methodsFor: 'enumerating'!
 !BucketStore methodsFor: 'enumerating'!
 
 
 do: aBlock
 do: aBlock
 	<inlineJS: '
 	<inlineJS: '
-		var buckets = $self[''@buckets''];
+		var buckets = $self.buckets;
 		var keys = Object.keys(buckets);
 		var keys = Object.keys(buckets);
 		for (var i = 0; i < keys.length; ++i) { buckets[keys[i]]._do_(aBlock); }
 		for (var i = 0; i < keys.length; ++i) { buckets[keys[i]]._do_(aBlock); }
 	'>
 	'>
@@ -706,7 +706,7 @@ The external name is referred to as the key.!
 at: aKey ifAbsent: aBlock
 at: aKey ifAbsent: aBlock
 	<inlineJS: '
 	<inlineJS: '
 		var index = $self._positionOfKey_(aKey);
 		var index = $self._positionOfKey_(aKey);
-		return index >=0 ? $self[''@values''][index] : aBlock._value();
+		return index >=0 ? $self.values[index] : aBlock._value();
 	'>
 	'>
 !
 !
 
 
@@ -714,12 +714,12 @@ at: aKey put: aValue
 	<inlineJS: '
 	<inlineJS: '
 		var index = $self._positionOfKey_(aKey);
 		var index = $self._positionOfKey_(aKey);
 		if(index === -1) {
 		if(index === -1) {
-			var keys = $self[''@keys''];
+			var keys = $self.keys;
 			index = keys.length;
 			index = keys.length;
 			keys.push(aKey);
 			keys.push(aKey);
 		}
 		}
 
 
-		return $self[''@values''][index] = aValue;
+		return $self.values[index] = aValue;
 	'>
 	'>
 !
 !
 
 
@@ -754,7 +754,7 @@ removeKey: aKey ifAbsent: aBlock
 		if(index === -1) {
 		if(index === -1) {
 			return aBlock._value()
 			return aBlock._value()
 		} else {
 		} else {
-			var keys = $self[''@keys''], values = $self[''@values''];
+			var keys = $self.keys, values = $self.values;
 			var value = values[index], l = keys.length;
 			var value = values[index], l = keys.length;
 			keys[index] = keys[l-1];
 			keys[index] = keys[l-1];
 			keys.pop();
 			keys.pop();
@@ -791,7 +791,7 @@ initialize
 
 
 positionOfKey: anObject
 positionOfKey: anObject
 	<inlineJS: '
 	<inlineJS: '
-		var keys = $self[''@keys''];
+		var keys = $self.keys;
 		for(var i=0;i<keys.length;i++){
 		for(var i=0;i<keys.length;i++){
 			if(keys[i].__eq(anObject)) { return i;}
 			if(keys[i].__eq(anObject)) { return i;}
 		}
 		}
@@ -1698,14 +1698,14 @@ remove: anObject ifAbsent: aBlock
 
 
 removeAll
 removeAll
 	<inlineJS: '
 	<inlineJS: '
-		$self[''@fastBuckets''] = {
+		$self.fastBuckets = {
 			"boolean": { store: Object.create(null), fn: function (x) { return {"true": true, "false": false, "null": null}[x]; } },
 			"boolean": { store: Object.create(null), fn: function (x) { return {"true": true, "false": false, "null": null}[x]; } },
 			"number": { store: Object.create(null), fn: Number },
 			"number": { store: Object.create(null), fn: Number },
 			"string": { store: Object.create(null) }
 			"string": { store: Object.create(null) }
 		};
 		};
-		$self[''@slowBucketStores''].forEach(function (x) { x._removeAll(); });
-		$self[''@defaultBucket'']._removeAll();
-		$self[''@size''] = 0;
+		$self.slowBucketStores.forEach(function (x) { x._removeAll(); });
+		$self.defaultBucket._removeAll();
+		$self.size = 0;
 	'>
 	'>
 ! !
 ! !
 
 
@@ -1730,16 +1730,16 @@ collect: aBlock
 do: aBlock
 do: aBlock
 	<inlineJS: '
 	<inlineJS: '
 		var el, keys, i;
 		var el, keys, i;
-		el = $self[''@fastBuckets''];
+		el = $self.fastBuckets;
 		keys = Object.keys(el);
 		keys = Object.keys(el);
 		for (i = 0; i < keys.length; ++i) {
 		for (i = 0; i < keys.length; ++i) {
 			var fastBucket = el[keys[i]], fn = fastBucket.fn, store = Object.keys(fastBucket.store);
 			var fastBucket = el[keys[i]], fn = fastBucket.fn, store = Object.keys(fastBucket.store);
 			if (fn) { for (var j = 0; j < store.length; ++j) { aBlock._value_(fn(store[j])); } }
 			if (fn) { for (var j = 0; j < store.length; ++j) { aBlock._value_(fn(store[j])); } }
 			else { store._do_(aBlock); }
 			else { store._do_(aBlock); }
 		}
 		}
-		el = $self[''@slowBucketStores''];
+		el = $self.slowBucketStores;
 		for (i = 0; i < el.length; ++i) { el[i]._do_(aBlock); }
 		for (i = 0; i < el.length; ++i) { el[i]._do_(aBlock); }
-		$self[''@defaultBucket'']._do_(aBlock);
+		$self.defaultBucket._do_(aBlock);
 	'>
 	'>
 !
 !
 
 
@@ -1796,7 +1796,7 @@ printOn: aStream
 add: anObject in: anotherObject
 add: anObject in: anotherObject
 	<inlineJS: '
 	<inlineJS: '
 		if (anObject in anotherObject.store) { return anObject; }
 		if (anObject in anotherObject.store) { return anObject; }
-		$self[''@size'']++;
+		$self.size++;
 		anotherObject.store[anObject] = true;
 		anotherObject.store[anObject] = true;
 		return anObject;
 		return anObject;
 	'>
 	'>
@@ -1811,17 +1811,17 @@ bucketsOfElement: anObject
 	
 	
 	<inlineJS: '
 	<inlineJS: '
 		// include nil to well-known objects under "boolean" fastBucket
 		// include nil to well-known objects under "boolean" fastBucket
-		if (anObject == null || anObject.a$nil) return [ null, $self[''@fastBuckets''].boolean ];
+		if (anObject == null || anObject.a$nil) return [ null, $self.fastBuckets.boolean ];
 		
 		
 		var prim = anObject.valueOf();
 		var prim = anObject.valueOf();
-		if (typeof prim === "object" || typeof prim === "function" || !!$self[''@fastBuckets''][typeof prim]) {
+		if (typeof prim === "object" || typeof prim === "function" || !!$self.fastBuckets[typeof prim]) {
 			var bucket = null;
 			var bucket = null;
-			$self[''@slowBucketStores''].some(function (store) {
+			$self.slowBucketStores.some(function (store) {
 				return bucket = store._bucketOfElement_(anObject);
 				return bucket = store._bucketOfElement_(anObject);
 			});
 			});
-			return [ anObject, null, bucket || $self[''@defaultBucket''] ];
+			return [ anObject, null, bucket || $self.defaultBucket ];
 		}
 		}
-		return [ prim, $self[''@fastBuckets''][typeof prim] ];
+		return [ prim, $self.fastBuckets[typeof prim] ];
 	'>
 	'>
 !
 !
 
 
@@ -1844,7 +1844,7 @@ remove: anObject in: anotherObject ifAbsent: aBlock
 	<inlineJS: '
 	<inlineJS: '
 		if (anObject in anotherObject.store) {
 		if (anObject in anotherObject.store) {
 			delete anotherObject.store[anObject];
 			delete anotherObject.store[anObject];
-			$self[''@size'']--;
+			$self.size--;
 			return anObject;
 			return anObject;
 		} else {
 		} else {
 			return aBlock._value();
 			return aBlock._value();

+ 4 - 4
lang/src/Kernel-Exceptions.js

@@ -648,7 +648,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 //>>excludeEnd("ctx");
-return "JavaScript exception: " + $self["@exception"].toString();
+return "JavaScript exception: " + $self.exception.toString();
 return self;
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"messageText",{},$globals.JavaScriptException)});
 }, function($ctx1) {$ctx1.fill(self,"messageText",{},$globals.JavaScriptException)});
@@ -656,7 +656,7 @@ return self;
 },
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: [],
 args: [],
-source: "messageText\x0a\x09<inlineJS: 'return \x22JavaScript exception: \x22 + $self[\x22@exception\x22].toString()'>",
+source: "messageText\x0a\x09<inlineJS: 'return \x22JavaScript exception: \x22 + $self.exception.toString()'>",
 referencedClasses: [],
 referencedClasses: [],
 //>>excludeEnd("ide");
 //>>excludeEnd("ide");
 messageSends: []
 messageSends: []
@@ -672,7 +672,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 //>>excludeEnd("ctx");
-return $self["@exception"] instanceof RangeError;
+return $self.exception instanceof RangeError;
 return self;
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"shouldBeStubbed",{},$globals.JavaScriptException)});
 }, function($ctx1) {$ctx1.fill(self,"shouldBeStubbed",{},$globals.JavaScriptException)});
@@ -680,7 +680,7 @@ return self;
 },
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: [],
 args: [],
-source: "shouldBeStubbed\x0a\x09<inlineJS: 'return $self[\x22@exception\x22] instanceof RangeError'>",
+source: "shouldBeStubbed\x0a\x09<inlineJS: 'return $self.exception instanceof RangeError'>",
 referencedClasses: [],
 referencedClasses: [],
 //>>excludeEnd("ide");
 //>>excludeEnd("ide");
 messageSends: []
 messageSends: []

+ 2 - 2
lang/src/Kernel-Exceptions.st

@@ -172,7 +172,7 @@ exception: anException
 !
 !
 
 
 messageText
 messageText
-	<inlineJS: 'return "JavaScript exception: " + $self["@exception"].toString()'>
+	<inlineJS: 'return "JavaScript exception: " + $self.exception.toString()'>
 ! !
 ! !
 
 
 !JavaScriptException methodsFor: 'error handling'!
 !JavaScriptException methodsFor: 'error handling'!
@@ -185,7 +185,7 @@ wrap
 !JavaScriptException methodsFor: 'testing'!
 !JavaScriptException methodsFor: 'testing'!
 
 
 shouldBeStubbed
 shouldBeStubbed
-	<inlineJS: 'return $self["@exception"] instanceof RangeError'>
+	<inlineJS: 'return $self.exception instanceof RangeError'>
 ! !
 ! !
 
 
 !JavaScriptException class methodsFor: 'instance creation'!
 !JavaScriptException class methodsFor: 'instance creation'!

+ 23 - 23
lang/src/Kernel-Infrastructure.js

@@ -171,7 +171,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 //>>excludeEnd("ctx");
-return $self['@jsObject'][aString];
+return $self.jsObject[aString];
 return self;
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"at:",{aString:aString},$globals.JSObjectProxy)});
 }, function($ctx1) {$ctx1.fill(self,"at:",{aString:aString},$globals.JSObjectProxy)});
@@ -179,7 +179,7 @@ return self;
 },
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: ["aString"],
 args: ["aString"],
-source: "at: aString\x0a\x09<inlineJS: 'return $self[''@jsObject''][aString]'>",
+source: "at: aString\x0a\x09<inlineJS: 'return $self.jsObject[aString]'>",
 referencedClasses: [],
 referencedClasses: [],
 //>>excludeEnd("ide");
 //>>excludeEnd("ide");
 messageSends: []
 messageSends: []
@@ -196,7 +196,7 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 //>>excludeEnd("ctx");
 
 
-		var obj = $self['@jsObject'];
+		var obj = $self.jsObject;
 		return aString in obj ? obj[aString] : aBlock._value();
 		return aString in obj ? obj[aString] : aBlock._value();
 	;
 	;
 return self;
 return self;
@@ -206,7 +206,7 @@ return self;
 },
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: ["aString", "aBlock"],
 args: ["aString", "aBlock"],
-source: "at: aString ifAbsent: aBlock\x0a\x09\x22return the aString property or evaluate aBlock if the property is not defined on the object\x22\x0a\x09<inlineJS: '\x0a\x09\x09var obj = $self[''@jsObject''];\x0a\x09\x09return aString in obj ? obj[aString] : aBlock._value();\x0a\x09'>",
+source: "at: aString ifAbsent: aBlock\x0a\x09\x22return the aString property or evaluate aBlock if the property is not defined on the object\x22\x0a\x09<inlineJS: '\x0a\x09\x09var obj = $self.jsObject;\x0a\x09\x09return aString in obj ? obj[aString] : aBlock._value();\x0a\x09'>",
 referencedClasses: [],
 referencedClasses: [],
 //>>excludeEnd("ide");
 //>>excludeEnd("ide");
 messageSends: []
 messageSends: []
@@ -223,7 +223,7 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 //>>excludeEnd("ctx");
 
 
-		var obj = $self['@jsObject'];
+		var obj = $self.jsObject;
 		return aString in obj ? aBlock._value_(obj[aString]) : nil;
 		return aString in obj ? aBlock._value_(obj[aString]) : nil;
 	;
 	;
 return self;
 return self;
@@ -233,7 +233,7 @@ return self;
 },
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: ["aString", "aBlock"],
 args: ["aString", "aBlock"],
-source: "at: aString ifPresent: aBlock\x0a\x09\x22return the evaluation of aBlock with the value if the property is defined or return nil\x22\x0a\x09<inlineJS: '\x0a\x09\x09var obj = $self[''@jsObject''];\x0a\x09\x09return aString in obj ? aBlock._value_(obj[aString]) : nil;\x0a\x09'>",
+source: "at: aString ifPresent: aBlock\x0a\x09\x22return the evaluation of aBlock with the value if the property is defined or return nil\x22\x0a\x09<inlineJS: '\x0a\x09\x09var obj = $self.jsObject;\x0a\x09\x09return aString in obj ? aBlock._value_(obj[aString]) : nil;\x0a\x09'>",
 referencedClasses: [],
 referencedClasses: [],
 //>>excludeEnd("ide");
 //>>excludeEnd("ide");
 messageSends: []
 messageSends: []
@@ -250,7 +250,7 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 //>>excludeEnd("ctx");
 
 
-		var obj = $self['@jsObject'];
+		var obj = $self.jsObject;
 		return aString in obj ? aBlock._value_(obj[aString]) : anotherBlock._value();
 		return aString in obj ? aBlock._value_(obj[aString]) : anotherBlock._value();
 	;
 	;
 return self;
 return self;
@@ -260,7 +260,7 @@ return self;
 },
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: ["aString", "aBlock", "anotherBlock"],
 args: ["aString", "aBlock", "anotherBlock"],
-source: "at: aString ifPresent: aBlock ifAbsent: anotherBlock\x0a\x09\x22return the evaluation of aBlock with the value if the property is defined\x0a\x09or return value of anotherBlock\x22\x0a\x09<inlineJS: '\x0a\x09\x09var obj = $self[''@jsObject''];\x0a\x09\x09return aString in obj ? aBlock._value_(obj[aString]) : anotherBlock._value();\x0a\x09'>",
+source: "at: aString ifPresent: aBlock ifAbsent: anotherBlock\x0a\x09\x22return the evaluation of aBlock with the value if the property is defined\x0a\x09or return value of anotherBlock\x22\x0a\x09<inlineJS: '\x0a\x09\x09var obj = $self.jsObject;\x0a\x09\x09return aString in obj ? aBlock._value_(obj[aString]) : anotherBlock._value();\x0a\x09'>",
 referencedClasses: [],
 referencedClasses: [],
 //>>excludeEnd("ide");
 //>>excludeEnd("ide");
 messageSends: []
 messageSends: []
@@ -276,7 +276,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 //>>excludeEnd("ctx");
-return $self['@jsObject'][aString] = anObject;
+return $self.jsObject[aString] = anObject;
 return self;
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"at:put:",{aString:aString,anObject:anObject},$globals.JSObjectProxy)});
 }, function($ctx1) {$ctx1.fill(self,"at:put:",{aString:aString,anObject:anObject},$globals.JSObjectProxy)});
@@ -284,7 +284,7 @@ return self;
 },
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: ["aString", "anObject"],
 args: ["aString", "anObject"],
-source: "at: aString put: anObject\x0a\x09<inlineJS: 'return $self[''@jsObject''][aString] = anObject'>",
+source: "at: aString put: anObject\x0a\x09<inlineJS: 'return $self.jsObject[aString] = anObject'>",
 referencedClasses: [],
 referencedClasses: [],
 //>>excludeEnd("ide");
 //>>excludeEnd("ide");
 messageSends: []
 messageSends: []
@@ -418,7 +418,7 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 //>>excludeEnd("ctx");
 
 
-		var o = $self['@jsObject'];
+		var o = $self.jsObject;
 		for(var i in o) {
 		for(var i in o) {
 			aBlock._value_value_(i, o[i]);
 			aBlock._value_value_(i, o[i]);
 		}
 		}
@@ -430,7 +430,7 @@ return self;
 },
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: ["aBlock"],
 args: ["aBlock"],
-source: "keysAndValuesDo: aBlock\x0a\x09<inlineJS: '\x0a\x09\x09var o = $self[''@jsObject''];\x0a\x09\x09for(var i in o) {\x0a\x09\x09\x09aBlock._value_value_(i, o[i]);\x0a\x09\x09}\x0a\x09'>",
+source: "keysAndValuesDo: aBlock\x0a\x09<inlineJS: '\x0a\x09\x09var o = $self.jsObject;\x0a\x09\x09for(var i in o) {\x0a\x09\x09\x09aBlock._value_value_(i, o[i]);\x0a\x09\x09}\x0a\x09'>",
 referencedClasses: [],
 referencedClasses: [],
 //>>excludeEnd("ide");
 //>>excludeEnd("ide");
 messageSends: []
 messageSends: []
@@ -509,7 +509,7 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 //>>excludeEnd("ctx");
 
 
-		var js = $self['@jsObject'];
+		var js = $self.jsObject;
 		return js.toString
 		return js.toString
 			? js.toString()
 			? js.toString()
 			: Object.prototype.toString.call(js)
 			: Object.prototype.toString.call(js)
@@ -521,7 +521,7 @@ return self;
 },
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: [],
 args: [],
-source: "printString\x0a\x09<inlineJS: '\x0a\x09\x09var js = $self[''@jsObject''];\x0a\x09\x09return js.toString\x0a\x09\x09\x09? js.toString()\x0a\x09\x09\x09: Object.prototype.toString.call(js)\x0a\x09'>",
+source: "printString\x0a\x09<inlineJS: '\x0a\x09\x09var js = $self.jsObject;\x0a\x09\x09return js.toString\x0a\x09\x09\x09? js.toString()\x0a\x09\x09\x09: Object.prototype.toString.call(js)\x0a\x09'>",
 referencedClasses: [],
 referencedClasses: [],
 //>>excludeEnd("ide");
 //>>excludeEnd("ide");
 messageSends: []
 messageSends: []
@@ -561,7 +561,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 //>>excludeEnd("ctx");
-delete $self['@jsObject'][aString]; return aString;
+delete $self.jsObject[aString]; return aString;
 return self;
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"removeKey:",{aString:aString},$globals.JSObjectProxy)});
 }, function($ctx1) {$ctx1.fill(self,"removeKey:",{aString:aString},$globals.JSObjectProxy)});
@@ -569,7 +569,7 @@ return self;
 },
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: ["aString"],
 args: ["aString"],
-source: "removeKey: aString\x0a\x09<inlineJS: 'delete $self[''@jsObject''][aString]; return aString'>",
+source: "removeKey: aString\x0a\x09<inlineJS: 'delete $self.jsObject[aString]; return aString'>",
 referencedClasses: [],
 referencedClasses: [],
 //>>excludeEnd("ide");
 //>>excludeEnd("ide");
 messageSends: []
 messageSends: []
@@ -625,7 +625,7 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 //>>excludeEnd("ctx");
 
 
-		var jsObject = aProxy['@jsObject'];
+		var jsObject = aProxy.jsObject;
 		for(var i in jsObject) {
 		for(var i in jsObject) {
 			aDictionary._at_put_(i, jsObject[i]);
 			aDictionary._at_put_(i, jsObject[i]);
 		}
 		}
@@ -637,7 +637,7 @@ return self;
 },
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: ["aDictionary", "aProxy"],
 args: ["aDictionary", "aProxy"],
-source: "addObjectVariablesTo: aDictionary ofProxy: aProxy\x0a\x09<inlineJS: '\x0a\x09\x09var jsObject = aProxy[''@jsObject''];\x0a\x09\x09for(var i in jsObject) {\x0a\x09\x09\x09aDictionary._at_put_(i, jsObject[i]);\x0a\x09\x09}\x0a\x09'>",
+source: "addObjectVariablesTo: aDictionary ofProxy: aProxy\x0a\x09<inlineJS: '\x0a\x09\x09var jsObject = aProxy.jsObject;\x0a\x09\x09for(var i in jsObject) {\x0a\x09\x09\x09aDictionary._at_put_(i, jsObject[i]);\x0a\x09\x09}\x0a\x09'>",
 referencedClasses: [],
 referencedClasses: [],
 //>>excludeEnd("ide");
 //>>excludeEnd("ide");
 messageSends: []
 messageSends: []
@@ -654,8 +654,8 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 //>>excludeEnd("ctx");
 
 
-	var anotherJSObject = anotherProxy.a$cls ? anotherProxy["@jsObject"] : anotherProxy;
-	return aProxy["@jsObject"] === anotherJSObject;
+	var anotherJSObject = anotherProxy.a$cls ? anotherProxy.jsObject : anotherProxy;
+	return aProxy.jsObject === anotherJSObject;
 return self;
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"compareJSObjectOfProxy:withProxy:",{aProxy:aProxy,anotherProxy:anotherProxy},$globals.JSObjectProxy.a$cls)});
 }, function($ctx1) {$ctx1.fill(self,"compareJSObjectOfProxy:withProxy:",{aProxy:aProxy,anotherProxy:anotherProxy},$globals.JSObjectProxy.a$cls)});
@@ -663,7 +663,7 @@ return self;
 },
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: ["aProxy", "anotherProxy"],
 args: ["aProxy", "anotherProxy"],
-source: "compareJSObjectOfProxy: aProxy withProxy: anotherProxy\x0a<inlineJS: '\x0a\x09var anotherJSObject = anotherProxy.a$cls ? anotherProxy[\x22@jsObject\x22] : anotherProxy;\x0a\x09return aProxy[\x22@jsObject\x22] === anotherJSObject\x0a'>",
+source: "compareJSObjectOfProxy: aProxy withProxy: anotherProxy\x0a<inlineJS: '\x0a\x09var anotherJSObject = anotherProxy.a$cls ? anotherProxy.jsObject : anotherProxy;\x0a\x09return aProxy.jsObject === anotherJSObject\x0a'>",
 referencedClasses: [],
 referencedClasses: [],
 //>>excludeEnd("ide");
 //>>excludeEnd("ide");
 messageSends: []
 messageSends: []
@@ -705,7 +705,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 //>>excludeEnd("ctx");
-aProxy['@jsObject'] = aJSObject;
+aProxy.jsObject = aJSObject;
 return self;
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"jsObject:ofProxy:",{aJSObject:aJSObject,aProxy:aProxy},$globals.JSObjectProxy.a$cls)});
 }, function($ctx1) {$ctx1.fill(self,"jsObject:ofProxy:",{aJSObject:aJSObject,aProxy:aProxy},$globals.JSObjectProxy.a$cls)});
@@ -713,7 +713,7 @@ return self;
 },
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: ["aJSObject", "aProxy"],
 args: ["aJSObject", "aProxy"],
-source: "jsObject: aJSObject ofProxy: aProxy\x0a\x09<inlineJS: 'aProxy[''@jsObject''] = aJSObject'>",
+source: "jsObject: aJSObject ofProxy: aProxy\x0a\x09<inlineJS: 'aProxy.jsObject = aJSObject'>",
 referencedClasses: [],
 referencedClasses: [],
 //>>excludeEnd("ide");
 //>>excludeEnd("ide");
 messageSends: []
 messageSends: []

+ 12 - 12
lang/src/Kernel-Infrastructure.st

@@ -56,13 +56,13 @@ __Note:__ For keyword-based messages, only the first keyword is kept: `window fo
 !JSObjectProxy methodsFor: 'accessing'!
 !JSObjectProxy methodsFor: 'accessing'!
 
 
 at: aString
 at: aString
-	<inlineJS: 'return $self[''@jsObject''][aString]'>
+	<inlineJS: 'return $self.jsObject[aString]'>
 !
 !
 
 
 at: aString ifAbsent: aBlock
 at: aString ifAbsent: aBlock
 	"return the aString property or evaluate aBlock if the property is not defined on the object"
 	"return the aString property or evaluate aBlock if the property is not defined on the object"
 	<inlineJS: '
 	<inlineJS: '
-		var obj = $self[''@jsObject''];
+		var obj = $self.jsObject;
 		return aString in obj ? obj[aString] : aBlock._value();
 		return aString in obj ? obj[aString] : aBlock._value();
 	'>
 	'>
 !
 !
@@ -70,7 +70,7 @@ at: aString ifAbsent: aBlock
 at: aString ifPresent: aBlock
 at: aString ifPresent: aBlock
 	"return the evaluation of aBlock with the value if the property is defined or return nil"
 	"return the evaluation of aBlock with the value if the property is defined or return nil"
 	<inlineJS: '
 	<inlineJS: '
-		var obj = $self[''@jsObject''];
+		var obj = $self.jsObject;
 		return aString in obj ? aBlock._value_(obj[aString]) : nil;
 		return aString in obj ? aBlock._value_(obj[aString]) : nil;
 	'>
 	'>
 !
 !
@@ -79,13 +79,13 @@ at: aString ifPresent: aBlock ifAbsent: anotherBlock
 	"return the evaluation of aBlock with the value if the property is defined
 	"return the evaluation of aBlock with the value if the property is defined
 	or return value of anotherBlock"
 	or return value of anotherBlock"
 	<inlineJS: '
 	<inlineJS: '
-		var obj = $self[''@jsObject''];
+		var obj = $self.jsObject;
 		return aString in obj ? aBlock._value_(obj[aString]) : anotherBlock._value();
 		return aString in obj ? aBlock._value_(obj[aString]) : anotherBlock._value();
 	'>
 	'>
 !
 !
 
 
 at: aString put: anObject
 at: aString put: anObject
-	<inlineJS: 'return $self[''@jsObject''][aString] = anObject'>
+	<inlineJS: 'return $self.jsObject[aString] = anObject'>
 !
 !
 
 
 in: aValuable
 in: aValuable
@@ -97,7 +97,7 @@ jsObject
 !
 !
 
 
 removeKey: aString
 removeKey: aString
-	<inlineJS: 'delete $self[''@jsObject''][aString]; return aString'>
+	<inlineJS: 'delete $self.jsObject[aString]; return aString'>
 ! !
 ! !
 
 
 !JSObjectProxy methodsFor: 'comparing'!
 !JSObjectProxy methodsFor: 'comparing'!
@@ -119,7 +119,7 @@ asJavaScriptObject
 
 
 keysAndValuesDo: aBlock
 keysAndValuesDo: aBlock
 	<inlineJS: '
 	<inlineJS: '
-		var o = $self[''@jsObject''];
+		var o = $self.jsObject;
 		for(var i in o) {
 		for(var i in o) {
 			aBlock._value_value_(i, o[i]);
 			aBlock._value_value_(i, o[i]);
 		}
 		}
@@ -134,7 +134,7 @@ printOn: aStream
 
 
 printString
 printString
 	<inlineJS: '
 	<inlineJS: '
-		var js = $self[''@jsObject''];
+		var js = $self.jsObject;
 		return js.toString
 		return js.toString
 			? js.toString()
 			? js.toString()
 			: Object.prototype.toString.call(js)
 			: Object.prototype.toString.call(js)
@@ -202,7 +202,7 @@ on: aJSObject
 
 
 addObjectVariablesTo: aDictionary ofProxy: aProxy
 addObjectVariablesTo: aDictionary ofProxy: aProxy
 	<inlineJS: '
 	<inlineJS: '
-		var jsObject = aProxy[''@jsObject''];
+		var jsObject = aProxy.jsObject;
 		for(var i in jsObject) {
 		for(var i in jsObject) {
 			aDictionary._at_put_(i, jsObject[i]);
 			aDictionary._at_put_(i, jsObject[i]);
 		}
 		}
@@ -211,8 +211,8 @@ addObjectVariablesTo: aDictionary ofProxy: aProxy
 
 
 compareJSObjectOfProxy: aProxy withProxy: anotherProxy
 compareJSObjectOfProxy: aProxy withProxy: anotherProxy
 <inlineJS: '
 <inlineJS: '
-	var anotherJSObject = anotherProxy.a$cls ? anotherProxy["@jsObject"] : anotherProxy;
-	return aProxy["@jsObject"] === anotherJSObject
+	var anotherJSObject = anotherProxy.a$cls ? anotherProxy.jsObject : anotherProxy;
+	return aProxy.jsObject === anotherJSObject
 '>
 '>
 !
 !
 
 
@@ -223,7 +223,7 @@ forwardMessage: aString withArguments: anArray ofProxy: aProxy
 !
 !
 
 
 jsObject: aJSObject ofProxy: aProxy
 jsObject: aJSObject ofProxy: aProxy
-	<inlineJS: 'aProxy[''@jsObject''] = aJSObject'>
+	<inlineJS: 'aProxy.jsObject = aJSObject'>
 !
 !
 
 
 lookupProperty: aString ofProxy: aProxy
 lookupProperty: aString ofProxy: aProxy

+ 4 - 4
lang/src/Kernel-Methods.js

@@ -3592,7 +3592,7 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 //>>excludeEnd("ctx");
 
 
-		var interval = $self["@rawTimeout"];
+		var interval = $self.rawTimeout;
 		clearInterval(interval);
 		clearInterval(interval);
 	;
 	;
 return self;
 return self;
@@ -3602,7 +3602,7 @@ return self;
 },
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: [],
 args: [],
-source: "clearInterval\x0a\x09<inlineJS: '\x0a\x09\x09var interval = $self[\x22@rawTimeout\x22];\x0a\x09\x09clearInterval(interval);\x0a\x09'>",
+source: "clearInterval\x0a\x09<inlineJS: '\x0a\x09\x09var interval = $self.rawTimeout;\x0a\x09\x09clearInterval(interval);\x0a\x09'>",
 referencedClasses: [],
 referencedClasses: [],
 //>>excludeEnd("ide");
 //>>excludeEnd("ide");
 messageSends: []
 messageSends: []
@@ -3619,7 +3619,7 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 //>>excludeEnd("ctx");
 
 
-		var timeout = $self["@rawTimeout"];
+		var timeout = $self.rawTimeout;
 		clearTimeout(timeout);
 		clearTimeout(timeout);
 	;
 	;
 return self;
 return self;
@@ -3629,7 +3629,7 @@ return self;
 },
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: [],
 args: [],
-source: "clearTimeout\x0a\x09<inlineJS: '\x0a\x09\x09var timeout = $self[\x22@rawTimeout\x22];\x0a\x09\x09clearTimeout(timeout);\x0a\x09'>",
+source: "clearTimeout\x0a\x09<inlineJS: '\x0a\x09\x09var timeout = $self.rawTimeout;\x0a\x09\x09clearTimeout(timeout);\x0a\x09'>",
 referencedClasses: [],
 referencedClasses: [],
 //>>excludeEnd("ide");
 //>>excludeEnd("ide");
 messageSends: []
 messageSends: []

+ 2 - 2
lang/src/Kernel-Methods.st

@@ -944,14 +944,14 @@ rawTimeout: anObject
 
 
 clearInterval
 clearInterval
 	<inlineJS: '
 	<inlineJS: '
-		var interval = $self["@rawTimeout"];
+		var interval = $self.rawTimeout;
 		clearInterval(interval);
 		clearInterval(interval);
 	'>
 	'>
 !
 !
 
 
 clearTimeout
 clearTimeout
 	<inlineJS: '
 	<inlineJS: '
-		var timeout = $self["@rawTimeout"];
+		var timeout = $self.rawTimeout;
 		clearTimeout(timeout);
 		clearTimeout(timeout);
 	'>
 	'>
 ! !
 ! !

+ 6 - 10
lang/src/Kernel-Objects.js

@@ -340,7 +340,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 //>>excludeEnd("ctx");
-return $self['@'+aString];
+return $self[aString];
 return self;
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"instVarAt:",{aString:aString},$globals.ProtoObject)});
 }, function($ctx1) {$ctx1.fill(self,"instVarAt:",{aString:aString},$globals.ProtoObject)});
@@ -348,7 +348,7 @@ return self;
 },
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: ["aString"],
 args: ["aString"],
-source: "instVarAt: aString\x0a\x09<inlineJS: 'return $self[''@''+aString]'>",
+source: "instVarAt: aString\x0a\x09<inlineJS: 'return $self[aString]'>",
 referencedClasses: [],
 referencedClasses: [],
 //>>excludeEnd("ide");
 //>>excludeEnd("ide");
 messageSends: []
 messageSends: []
@@ -364,7 +364,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 //>>excludeEnd("ctx");
-$self['@' + aString] = anObject;
+$self[aString] = anObject;
 return self;
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"instVarAt:put:",{aString:aString,anObject:anObject},$globals.ProtoObject)});
 }, function($ctx1) {$ctx1.fill(self,"instVarAt:put:",{aString:aString,anObject:anObject},$globals.ProtoObject)});
@@ -372,7 +372,7 @@ return self;
 },
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: ["aString", "anObject"],
 args: ["aString", "anObject"],
-source: "instVarAt: aString put: anObject\x0a\x09<inlineJS: '$self[''@'' + aString] = anObject'>",
+source: "instVarAt: aString put: anObject\x0a\x09<inlineJS: '$self[aString] = anObject'>",
 referencedClasses: [],
 referencedClasses: [],
 //>>excludeEnd("ide");
 //>>excludeEnd("ide");
 messageSends: []
 messageSends: []
@@ -945,9 +945,7 @@ return $core.withContext(function($ctx1) {
 
 
 		var copy = self.a$cls._new();
 		var copy = self.a$cls._new();
 		Object.keys(self).forEach(function (i) {
 		Object.keys(self).forEach(function (i) {
-		// if(/^@.+/.test(i)) {
 			copy[i] = $recv(self[i])._deepCopy();
 			copy[i] = $recv(self[i])._deepCopy();
-		// }
 		});
 		});
 		return copy;
 		return copy;
 	;
 	;
@@ -958,7 +956,7 @@ return self;
 },
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: [],
 args: [],
-source: "deepCopy\x0a\x09<inlineJS: '\x0a\x09\x09var copy = self.a$cls._new();\x0a\x09\x09Object.keys(self).forEach(function (i) {\x0a\x09\x09// if(/^@.+/.test(i)) {\x0a\x09\x09\x09copy[i] = $recv(self[i])._deepCopy();\x0a\x09\x09// }\x0a\x09\x09});\x0a\x09\x09return copy;\x0a\x09'>",
+source: "deepCopy\x0a\x09<inlineJS: '\x0a\x09\x09var copy = self.a$cls._new();\x0a\x09\x09Object.keys(self).forEach(function (i) {\x0a\x09\x09\x09copy[i] = $recv(self[i])._deepCopy();\x0a\x09\x09});\x0a\x09\x09return copy;\x0a\x09'>",
 referencedClasses: [],
 referencedClasses: [],
 //>>excludeEnd("ide");
 //>>excludeEnd("ide");
 messageSends: []
 messageSends: []
@@ -1434,9 +1432,7 @@ return $core.withContext(function($ctx1) {
 
 
 		var copy = self.a$cls._new();
 		var copy = self.a$cls._new();
 		Object.keys(self).forEach(function(i) {
 		Object.keys(self).forEach(function(i) {
-		// if(/^@.+/.test(i)) {
 			copy[i] = self[i];
 			copy[i] = self[i];
-		// }
 		});
 		});
 		return copy;
 		return copy;
 	;
 	;
@@ -1447,7 +1443,7 @@ return self;
 },
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: [],
 args: [],
-source: "shallowCopy\x0a\x09<inlineJS: '\x0a\x09\x09var copy = self.a$cls._new();\x0a\x09\x09Object.keys(self).forEach(function(i) {\x0a\x09\x09// if(/^@.+/.test(i)) {\x0a\x09\x09\x09copy[i] = self[i];\x0a\x09\x09// }\x0a\x09\x09});\x0a\x09\x09return copy;\x0a\x09'>",
+source: "shallowCopy\x0a\x09<inlineJS: '\x0a\x09\x09var copy = self.a$cls._new();\x0a\x09\x09Object.keys(self).forEach(function(i) {\x0a\x09\x09\x09copy[i] = self[i];\x0a\x09\x09});\x0a\x09\x09return copy;\x0a\x09'>",
 referencedClasses: [],
 referencedClasses: [],
 //>>excludeEnd("ide");
 //>>excludeEnd("ide");
 messageSends: []
 messageSends: []

+ 2 - 6
lang/src/Kernel-Objects.st

@@ -25,11 +25,11 @@ identityHash
 !
 !
 
 
 instVarAt: aString
 instVarAt: aString
-	<inlineJS: 'return $self[''@''+aString]'>
+	<inlineJS: 'return $self[aString]'>
 !
 !
 
 
 instVarAt: aString put: anObject
 instVarAt: aString put: anObject
-	<inlineJS: '$self[''@'' + aString] = anObject'>
+	<inlineJS: '$self[aString] = anObject'>
 !
 !
 
 
 yourself
 yourself
@@ -250,9 +250,7 @@ deepCopy
 	<inlineJS: '
 	<inlineJS: '
 		var copy = self.a$cls._new();
 		var copy = self.a$cls._new();
 		Object.keys(self).forEach(function (i) {
 		Object.keys(self).forEach(function (i) {
-		// if(/^@.+/.test(i)) {
 			copy[i] = $recv(self[i])._deepCopy();
 			copy[i] = $recv(self[i])._deepCopy();
-		// }
 		});
 		});
 		return copy;
 		return copy;
 	'>
 	'>
@@ -265,9 +263,7 @@ shallowCopy
 	<inlineJS: '
 	<inlineJS: '
 		var copy = self.a$cls._new();
 		var copy = self.a$cls._new();
 		Object.keys(self).forEach(function(i) {
 		Object.keys(self).forEach(function(i) {
-		// if(/^@.+/.test(i)) {
 			copy[i] = self[i];
 			copy[i] = self[i];
-		// }
 		});
 		});
 		return copy;
 		return copy;
 	'>
 	'>