Browse Source

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

Step 3: Inline JS.
Herby Vojčík 5 years ago
parent
commit
a7849eff30

+ 2 - 0
CHANGELOG

@@ -14,6 +14,8 @@
 * Namespace change: amber_core => amber/core.
   * 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.
+* 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
 

+ 4 - 0
lang/API-CHANGES.txt

@@ -1,6 +1,10 @@
 0.23.0:
 
 * 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:

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

@@ -218,9 +218,9 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 
-		var hash = $self['@hashBlock'](anObject);
+		var hash = $self.hashBlock(anObject);
 		if (!hash) return null;
-		var buckets = $self['@buckets'],
+		var buckets = $self.buckets,
 			bucket = buckets[hash];
 		if (!bucket) { bucket = buckets[hash] = $self._newBucket(); }
 		return bucket;
@@ -232,7 +232,7 @@ return self;
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 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: [],
 //>>excludeEnd("ide");
 messageSends: []
@@ -249,7 +249,7 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 
-		var buckets = $self['@buckets'];
+		var buckets = $self.buckets;
 		var keys = Object.keys(buckets);
 		for (var i = 0; i < keys.length; ++i) { buckets[keys[i]]._do_(aBlock); }
 	;
@@ -260,7 +260,7 @@ return self;
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 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: [],
 //>>excludeEnd("ide");
 messageSends: []
@@ -351,7 +351,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$self['@buckets'] = Object.create(null);;
+$self.buckets = Object.create(null);;
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"removeAll",{},$globals.BucketStore)});
@@ -359,7 +359,7 @@ return self;
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: [],
-source: "removeAll\x0a\x09<inlineJS: '$self[''@buckets''] = Object.create(null);'>",
+source: "removeAll\x0a\x09<inlineJS: '$self.buckets = Object.create(null);'>",
 referencedClasses: [],
 //>>excludeEnd("ide");
 messageSends: []
@@ -2996,7 +2996,7 @@ return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 
 		var index = $self._positionOfKey_(aKey);
-		return index >=0 ? $self['@values'][index] : aBlock._value();
+		return index >=0 ? $self.values[index] : aBlock._value();
 	;
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -3005,7 +3005,7 @@ return self;
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 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: [],
 //>>excludeEnd("ide");
 messageSends: []
@@ -3024,12 +3024,12 @@ return $core.withContext(function($ctx1) {
 
 		var index = $self._positionOfKey_(aKey);
 		if(index === -1) {
-			var keys = $self['@keys'];
+			var keys = $self.keys;
 			index = keys.length;
 			keys.push(aKey);
 		}
 
-		return $self['@values'][index] = aValue;
+		return $self.values[index] = aValue;
 	;
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -3038,7 +3038,7 @@ return self;
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 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: [],
 //>>excludeEnd("ide");
 messageSends: []
@@ -3215,7 +3215,7 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 
-		var keys = $self['@keys'];
+		var keys = $self.keys;
 		for(var i=0;i<keys.length;i++){
 			if(keys[i].__eq(anObject)) { return i;}
 		}
@@ -3228,7 +3228,7 @@ return self;
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 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: [],
 //>>excludeEnd("ide");
 messageSends: []
@@ -3277,7 +3277,7 @@ return $core.withContext(function($ctx1) {
 		if(index === -1) {
 			return aBlock._value()
 		} else {
-			var keys = $self['@keys'], values = $self['@values'];
+			var keys = $self.keys, values = $self.values;
 			var value = values[index], l = keys.length;
 			keys[index] = keys[l-1];
 			keys.pop();
@@ -3293,7 +3293,7 @@ return self;
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 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: [],
 //>>excludeEnd("ide");
 messageSends: []
@@ -7312,7 +7312,7 @@ return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 
 		if (anObject in anotherObject.store) { return anObject; }
-		$self['@size']++;
+		$self.size++;
 		anotherObject.store[anObject] = true;
 		return anObject;
 	;
@@ -7323,7 +7323,7 @@ return self;
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 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: [],
 //>>excludeEnd("ide");
 messageSends: []
@@ -7341,17 +7341,17 @@ return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 
 		// 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();
-		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;
-			$self['@slowBucketStores'].some(function (store) {
+			$self.slowBucketStores.some(function (store) {
 				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;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -7360,7 +7360,7 @@ return self;
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 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: [],
 //>>excludeEnd("ide");
 messageSends: []
@@ -7436,16 +7436,16 @@ return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 
 		var el, keys, i;
-		el = $self['@fastBuckets'];
+		el = $self.fastBuckets;
 		keys = Object.keys(el);
 		for (i = 0; i < keys.length; ++i) {
 			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])); } }
 			else { store._do_(aBlock); }
 		}
-		el = $self['@slowBucketStores'];
+		el = $self.slowBucketStores;
 		for (i = 0; i < el.length; ++i) { el[i]._do_(aBlock); }
-		$self['@defaultBucket']._do_(aBlock);
+		$self.defaultBucket._do_(aBlock);
 	;
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -7454,7 +7454,7 @@ return self;
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 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: [],
 //>>excludeEnd("ide");
 messageSends: []
@@ -7749,7 +7749,7 @@ return $core.withContext(function($ctx1) {
 
 		if (anObject in anotherObject.store) {
 			delete anotherObject.store[anObject];
-			$self['@size']--;
+			$self.size--;
 			return anObject;
 		} else {
 			return aBlock._value();
@@ -7761,7 +7761,7 @@ return self;
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 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: [],
 //>>excludeEnd("ide");
 messageSends: []
@@ -7778,14 +7778,14 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 
-		$self['@fastBuckets'] = {
+		$self.fastBuckets = {
 			"boolean": { store: Object.create(null), fn: function (x) { return {"true": true, "false": false, "null": null}[x]; } },
 			"number": { store: Object.create(null), fn: Number },
 			"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;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -7794,7 +7794,7 @@ return self;
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 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: [],
 //>>excludeEnd("ide");
 messageSends: []

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

@@ -76,9 +76,9 @@ Types of buckets are the responsibility of subclasses via `#newBucket`.!
 
 bucketOfElement: anObject
 	<inlineJS: '
-		var hash = $self[''@hashBlock''](anObject);
+		var hash = $self.hashBlock(anObject);
 		if (!!hash) return null;
-		var buckets = $self[''@buckets''],
+		var buckets = $self.buckets,
 			bucket = buckets[hash];
 		if (!!bucket) { bucket = buckets[hash] = $self._newBucket(); }
 		return bucket;
@@ -92,14 +92,14 @@ hashBlock: aBlock
 !BucketStore methodsFor: 'adding/removing'!
 
 removeAll
-	<inlineJS: '$self[''@buckets''] = Object.create(null);'>
+	<inlineJS: '$self.buckets = Object.create(null);'>
 ! !
 
 !BucketStore methodsFor: 'enumerating'!
 
 do: aBlock
 	<inlineJS: '
-		var buckets = $self[''@buckets''];
+		var buckets = $self.buckets;
 		var keys = Object.keys(buckets);
 		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
 	<inlineJS: '
 		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: '
 		var index = $self._positionOfKey_(aKey);
 		if(index === -1) {
-			var keys = $self[''@keys''];
+			var keys = $self.keys;
 			index = keys.length;
 			keys.push(aKey);
 		}
 
-		return $self[''@values''][index] = aValue;
+		return $self.values[index] = aValue;
 	'>
 !
 
@@ -754,7 +754,7 @@ removeKey: aKey ifAbsent: aBlock
 		if(index === -1) {
 			return aBlock._value()
 		} else {
-			var keys = $self[''@keys''], values = $self[''@values''];
+			var keys = $self.keys, values = $self.values;
 			var value = values[index], l = keys.length;
 			keys[index] = keys[l-1];
 			keys.pop();
@@ -791,7 +791,7 @@ initialize
 
 positionOfKey: anObject
 	<inlineJS: '
-		var keys = $self[''@keys''];
+		var keys = $self.keys;
 		for(var i=0;i<keys.length;i++){
 			if(keys[i].__eq(anObject)) { return i;}
 		}
@@ -1698,14 +1698,14 @@ remove: anObject ifAbsent: aBlock
 
 removeAll
 	<inlineJS: '
-		$self[''@fastBuckets''] = {
+		$self.fastBuckets = {
 			"boolean": { store: Object.create(null), fn: function (x) { return {"true": true, "false": false, "null": null}[x]; } },
 			"number": { store: Object.create(null), fn: Number },
 			"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
 	<inlineJS: '
 		var el, keys, i;
-		el = $self[''@fastBuckets''];
+		el = $self.fastBuckets;
 		keys = Object.keys(el);
 		for (i = 0; i < keys.length; ++i) {
 			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])); } }
 			else { store._do_(aBlock); }
 		}
-		el = $self[''@slowBucketStores''];
+		el = $self.slowBucketStores;
 		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
 	<inlineJS: '
 		if (anObject in anotherObject.store) { return anObject; }
-		$self[''@size'']++;
+		$self.size++;
 		anotherObject.store[anObject] = true;
 		return anObject;
 	'>
@@ -1811,17 +1811,17 @@ bucketsOfElement: anObject
 	
 	<inlineJS: '
 		// 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();
-		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;
-			$self[''@slowBucketStores''].some(function (store) {
+			$self.slowBucketStores.some(function (store) {
 				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: '
 		if (anObject in anotherObject.store) {
 			delete anotherObject.store[anObject];
-			$self[''@size'']--;
+			$self.size--;
 			return anObject;
 		} else {
 			return aBlock._value();

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

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

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

@@ -172,7 +172,7 @@ exception: anException
 !
 
 messageText
-	<inlineJS: 'return "JavaScript exception: " + $self["@exception"].toString()'>
+	<inlineJS: 'return "JavaScript exception: " + $self.exception.toString()'>
 ! !
 
 !JavaScriptException methodsFor: 'error handling'!
@@ -185,7 +185,7 @@ wrap
 !JavaScriptException methodsFor: 'testing'!
 
 shouldBeStubbed
-	<inlineJS: 'return $self["@exception"] instanceof RangeError'>
+	<inlineJS: 'return $self.exception instanceof RangeError'>
 ! !
 
 !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);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $self['@jsObject'][aString];
+return $self.jsObject[aString];
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"at:",{aString:aString},$globals.JSObjectProxy)});
@@ -179,7 +179,7 @@ return self;
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: ["aString"],
-source: "at: aString\x0a\x09<inlineJS: 'return $self[''@jsObject''][aString]'>",
+source: "at: aString\x0a\x09<inlineJS: 'return $self.jsObject[aString]'>",
 referencedClasses: [],
 //>>excludeEnd("ide");
 messageSends: []
@@ -196,7 +196,7 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 
-		var obj = $self['@jsObject'];
+		var obj = $self.jsObject;
 		return aString in obj ? obj[aString] : aBlock._value();
 	;
 return self;
@@ -206,7 +206,7 @@ return self;
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 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: [],
 //>>excludeEnd("ide");
 messageSends: []
@@ -223,7 +223,7 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 
-		var obj = $self['@jsObject'];
+		var obj = $self.jsObject;
 		return aString in obj ? aBlock._value_(obj[aString]) : nil;
 	;
 return self;
@@ -233,7 +233,7 @@ return self;
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 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: [],
 //>>excludeEnd("ide");
 messageSends: []
@@ -250,7 +250,7 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 
-		var obj = $self['@jsObject'];
+		var obj = $self.jsObject;
 		return aString in obj ? aBlock._value_(obj[aString]) : anotherBlock._value();
 	;
 return self;
@@ -260,7 +260,7 @@ return self;
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 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: [],
 //>>excludeEnd("ide");
 messageSends: []
@@ -276,7 +276,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $self['@jsObject'][aString] = anObject;
+return $self.jsObject[aString] = anObject;
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"at:put:",{aString:aString,anObject:anObject},$globals.JSObjectProxy)});
@@ -284,7 +284,7 @@ return self;
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 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: [],
 //>>excludeEnd("ide");
 messageSends: []
@@ -418,7 +418,7 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 
-		var o = $self['@jsObject'];
+		var o = $self.jsObject;
 		for(var i in o) {
 			aBlock._value_value_(i, o[i]);
 		}
@@ -430,7 +430,7 @@ return self;
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 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: [],
 //>>excludeEnd("ide");
 messageSends: []
@@ -509,7 +509,7 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 
-		var js = $self['@jsObject'];
+		var js = $self.jsObject;
 		return js.toString
 			? js.toString()
 			: Object.prototype.toString.call(js)
@@ -521,7 +521,7 @@ return self;
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 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: [],
 //>>excludeEnd("ide");
 messageSends: []
@@ -561,7 +561,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-delete $self['@jsObject'][aString]; return aString;
+delete $self.jsObject[aString]; return aString;
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"removeKey:",{aString:aString},$globals.JSObjectProxy)});
@@ -569,7 +569,7 @@ return self;
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 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: [],
 //>>excludeEnd("ide");
 messageSends: []
@@ -625,7 +625,7 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 
-		var jsObject = aProxy['@jsObject'];
+		var jsObject = aProxy.jsObject;
 		for(var i in jsObject) {
 			aDictionary._at_put_(i, jsObject[i]);
 		}
@@ -637,7 +637,7 @@ return self;
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 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: [],
 //>>excludeEnd("ide");
 messageSends: []
@@ -654,8 +654,8 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>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;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, 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);
 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: [],
 //>>excludeEnd("ide");
 messageSends: []
@@ -705,7 +705,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-aProxy['@jsObject'] = aJSObject;
+aProxy.jsObject = aJSObject;
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, 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);
 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: [],
 //>>excludeEnd("ide");
 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'!
 
 at: aString
-	<inlineJS: 'return $self[''@jsObject''][aString]'>
+	<inlineJS: 'return $self.jsObject[aString]'>
 !
 
 at: aString ifAbsent: aBlock
 	"return the aString property or evaluate aBlock if the property is not defined on the object"
 	<inlineJS: '
-		var obj = $self[''@jsObject''];
+		var obj = $self.jsObject;
 		return aString in obj ? obj[aString] : aBlock._value();
 	'>
 !
@@ -70,7 +70,7 @@ at: aString ifAbsent: aBlock
 at: aString ifPresent: aBlock
 	"return the evaluation of aBlock with the value if the property is defined or return nil"
 	<inlineJS: '
-		var obj = $self[''@jsObject''];
+		var obj = $self.jsObject;
 		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
 	or return value of anotherBlock"
 	<inlineJS: '
-		var obj = $self[''@jsObject''];
+		var obj = $self.jsObject;
 		return aString in obj ? aBlock._value_(obj[aString]) : anotherBlock._value();
 	'>
 !
 
 at: aString put: anObject
-	<inlineJS: 'return $self[''@jsObject''][aString] = anObject'>
+	<inlineJS: 'return $self.jsObject[aString] = anObject'>
 !
 
 in: aValuable
@@ -97,7 +97,7 @@ jsObject
 !
 
 removeKey: aString
-	<inlineJS: 'delete $self[''@jsObject''][aString]; return aString'>
+	<inlineJS: 'delete $self.jsObject[aString]; return aString'>
 ! !
 
 !JSObjectProxy methodsFor: 'comparing'!
@@ -119,7 +119,7 @@ asJavaScriptObject
 
 keysAndValuesDo: aBlock
 	<inlineJS: '
-		var o = $self[''@jsObject''];
+		var o = $self.jsObject;
 		for(var i in o) {
 			aBlock._value_value_(i, o[i]);
 		}
@@ -134,7 +134,7 @@ printOn: aStream
 
 printString
 	<inlineJS: '
-		var js = $self[''@jsObject''];
+		var js = $self.jsObject;
 		return js.toString
 			? js.toString()
 			: Object.prototype.toString.call(js)
@@ -202,7 +202,7 @@ on: aJSObject
 
 addObjectVariablesTo: aDictionary ofProxy: aProxy
 	<inlineJS: '
-		var jsObject = aProxy[''@jsObject''];
+		var jsObject = aProxy.jsObject;
 		for(var i in jsObject) {
 			aDictionary._at_put_(i, jsObject[i]);
 		}
@@ -211,8 +211,8 @@ addObjectVariablesTo: aDictionary ofProxy: aProxy
 
 compareJSObjectOfProxy: aProxy withProxy: anotherProxy
 <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
-	<inlineJS: 'aProxy[''@jsObject''] = aJSObject'>
+	<inlineJS: 'aProxy.jsObject = aJSObject'>
 !
 
 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) {
 //>>excludeEnd("ctx");
 
-		var interval = $self["@rawTimeout"];
+		var interval = $self.rawTimeout;
 		clearInterval(interval);
 	;
 return self;
@@ -3602,7 +3602,7 @@ return self;
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 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: [],
 //>>excludeEnd("ide");
 messageSends: []
@@ -3619,7 +3619,7 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 
-		var timeout = $self["@rawTimeout"];
+		var timeout = $self.rawTimeout;
 		clearTimeout(timeout);
 	;
 return self;
@@ -3629,7 +3629,7 @@ return self;
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 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: [],
 //>>excludeEnd("ide");
 messageSends: []

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

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

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

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

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

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