Browse Source

Export using changes in js exporter.

Herbert Vojčík 7 years ago
parent
commit
25ba20002a

File diff suppressed because it is too large
+ 60 - 60
external/amber-cli/src/AmberCli.js


+ 4 - 4
external/amber-dev/lib/NodeTestRunner.js

@@ -2,16 +2,16 @@ define(["amber/boot", "amber_core/Kernel-Objects"], function($boot){"use strict"
 if(!$boot.nilAsReceiver)$boot.nilAsReceiver=$boot.nil;
 var $core=$boot.api,nil=$boot.nilAsReceiver,$recv=$boot.asReceiver,$globals=$boot.globals;
 if(!$boot.nilAsClass)$boot.nilAsClass=$boot.dnu;
-$core.addPackage('NodeTestRunner');
+$core.addPackage("NodeTestRunner");
 $core.packages["NodeTestRunner"].innerEval = function (expr) { return eval(expr); };
 $core.packages["NodeTestRunner"].transport = {"type":"amd","amdNamespace":"amber_devkit"};
 
-$core.addClass('NodeTestRunner', $globals.Object, [], 'NodeTestRunner');
+$core.addClass("NodeTestRunner", $globals.Object, [], "NodeTestRunner");
 
 $core.addMethod(
 $core.method({
 selector: "main",
-protocol: 'not yet classified',
+protocol: "not yet classified",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -35,7 +35,7 @@ $globals.NodeTestRunner.klass);
 $core.addMethod(
 $core.method({
 selector: "runTestSuite",
-protocol: 'not yet classified',
+protocol: "not yet classified",
 fn: function (){
 var self=this;
 var suite,worker;

File diff suppressed because it is too large
+ 114 - 114
src/Compiler-AST.js


+ 52 - 52
src/Compiler-Core.js

@@ -2,18 +2,18 @@ define(["amber/boot", "amber_core/Kernel-Collections", "amber_core/Kernel-Except
 if(!$boot.nilAsReceiver)$boot.nilAsReceiver=$boot.nil;
 var $core=$boot.api,nil=$boot.nilAsReceiver,$recv=$boot.asReceiver,$globals=$boot.globals;
 if(!$boot.nilAsClass)$boot.nilAsClass=$boot.dnu;
-$core.addPackage('Compiler-Core');
+$core.addPackage("Compiler-Core");
 $core.packages["Compiler-Core"].innerEval = function (expr) { return eval(expr); };
 $core.packages["Compiler-Core"].transport = {"type":"amd","amdNamespace":"amber_core"};
 
-$core.addClass('AbstractCodeGenerator', $globals.Object, ['currentClass', 'currentPackage', 'source'], 'Compiler-Core');
+$core.addClass("AbstractCodeGenerator", $globals.Object, ["currentClass", "currentPackage", "source"], "Compiler-Core");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.AbstractCodeGenerator.comment="I am the abstract super class of all code generators and provide their common API.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "compileNode:",
-protocol: 'compiling',
+protocol: "compiling",
 fn: function (aNode){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -44,7 +44,7 @@ $globals.AbstractCodeGenerator);
 $core.addMethod(
 $core.method({
 selector: "currentClass",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@currentClass"];
@@ -62,7 +62,7 @@ $globals.AbstractCodeGenerator);
 $core.addMethod(
 $core.method({
 selector: "currentClass:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aClass){
 var self=this;
 self["@currentClass"]=aClass;
@@ -81,7 +81,7 @@ $globals.AbstractCodeGenerator);
 $core.addMethod(
 $core.method({
 selector: "currentPackage",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@currentPackage"];
@@ -99,7 +99,7 @@ $globals.AbstractCodeGenerator);
 $core.addMethod(
 $core.method({
 selector: "currentPackage:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (anObject){
 var self=this;
 self["@currentPackage"]=anObject;
@@ -118,7 +118,7 @@ $globals.AbstractCodeGenerator);
 $core.addMethod(
 $core.method({
 selector: "pseudoVariables",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -141,7 +141,7 @@ $globals.AbstractCodeGenerator);
 $core.addMethod(
 $core.method({
 selector: "source",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -170,7 +170,7 @@ $globals.AbstractCodeGenerator);
 $core.addMethod(
 $core.method({
 selector: "source:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aString){
 var self=this;
 self["@source"]=aString;
@@ -189,7 +189,7 @@ $globals.AbstractCodeGenerator);
 $core.addMethod(
 $core.method({
 selector: "transformers",
-protocol: 'compiling',
+protocol: "compiling",
 fn: function (){
 var self=this;
 var dict;
@@ -222,7 +222,7 @@ $globals.AbstractCodeGenerator);
 $core.addMethod(
 $core.method({
 selector: "transformersDictionary",
-protocol: 'compiling',
+protocol: "compiling",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -245,14 +245,14 @@ $globals.AbstractCodeGenerator);
 
 
 
-$core.addClass('CodeGenerator', $globals.AbstractCodeGenerator, [], 'Compiler-Core');
+$core.addClass("CodeGenerator", $globals.AbstractCodeGenerator, [], "Compiler-Core");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.CodeGenerator.comment="I am a basic code generator. I generate a valid JavaScript output, but no not perform any inlining.\x0aSee `InliningCodeGenerator` for an optimized JavaScript code generation.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "irTranslator",
-protocol: 'compiling',
+protocol: "compiling",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -278,7 +278,7 @@ $globals.CodeGenerator);
 $core.addMethod(
 $core.method({
 selector: "irTranslatorClass",
-protocol: 'compiling',
+protocol: "compiling",
 fn: function (){
 var self=this;
 return $globals.IRJSTranslator;
@@ -296,7 +296,7 @@ $globals.CodeGenerator);
 $core.addMethod(
 $core.method({
 selector: "semanticAnalyzer",
-protocol: 'compiling',
+protocol: "compiling",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -322,7 +322,7 @@ $globals.CodeGenerator);
 $core.addMethod(
 $core.method({
 selector: "transformersDictionary",
-protocol: 'compiling',
+protocol: "compiling",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -356,7 +356,7 @@ $globals.CodeGenerator);
 $core.addMethod(
 $core.method({
 selector: "translator",
-protocol: 'compiling',
+protocol: "compiling",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -382,14 +382,14 @@ $globals.CodeGenerator);
 
 
 
-$core.addClass('Compiler', $globals.Object, ['currentClass', 'currentPackage', 'source', 'unknownVariables', 'codeGeneratorClass'], 'Compiler-Core');
+$core.addClass("Compiler", $globals.Object, ["currentClass", "currentPackage", "source", "unknownVariables", "codeGeneratorClass"], "Compiler-Core");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.Compiler.comment="I provide the public interface for compiling Amber source code into JavaScript.\x0a\x0aThe code generator used to produce JavaScript can be plugged with `#codeGeneratorClass`.\x0aThe default code generator is an instance of `InlinedCodeGenerator`";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "codeGeneratorClass",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -418,7 +418,7 @@ $globals.Compiler);
 $core.addMethod(
 $core.method({
 selector: "codeGeneratorClass:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aClass){
 var self=this;
 self["@codeGeneratorClass"]=aClass;
@@ -437,7 +437,7 @@ $globals.Compiler);
 $core.addMethod(
 $core.method({
 selector: "compile:forClass:protocol:",
-protocol: 'compiling',
+protocol: "compiling",
 fn: function (aString,aClass,anotherString){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -461,7 +461,7 @@ $globals.Compiler);
 $core.addMethod(
 $core.method({
 selector: "compileExpression:on:",
-protocol: 'compiling',
+protocol: "compiling",
 fn: function (aString,anObject){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -489,7 +489,7 @@ $globals.Compiler);
 $core.addMethod(
 $core.method({
 selector: "compileNode:",
-protocol: 'compiling',
+protocol: "compiling",
 fn: function (aNode){
 var self=this;
 var generator,result;
@@ -521,7 +521,7 @@ $globals.Compiler);
 $core.addMethod(
 $core.method({
 selector: "compileNode:forClass:package:",
-protocol: 'compiling',
+protocol: "compiling",
 fn: function (aNode,aClass,aPackage){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -546,7 +546,7 @@ $globals.Compiler);
 $core.addMethod(
 $core.method({
 selector: "currentClass",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@currentClass"];
@@ -564,7 +564,7 @@ $globals.Compiler);
 $core.addMethod(
 $core.method({
 selector: "currentClass:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aClass){
 var self=this;
 self["@currentClass"]=aClass;
@@ -583,7 +583,7 @@ $globals.Compiler);
 $core.addMethod(
 $core.method({
 selector: "currentPackage",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@currentPackage"];
@@ -601,7 +601,7 @@ $globals.Compiler);
 $core.addMethod(
 $core.method({
 selector: "currentPackage:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (anObject){
 var self=this;
 self["@currentPackage"]=anObject;
@@ -620,7 +620,7 @@ $globals.Compiler);
 $core.addMethod(
 $core.method({
 selector: "eval:",
-protocol: 'compiling',
+protocol: "compiling",
 fn: function (aString){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -644,7 +644,7 @@ $globals.Compiler);
 $core.addMethod(
 $core.method({
 selector: "eval:forPackage:",
-protocol: 'compiling',
+protocol: "compiling",
 fn: function (aString,aPackage){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -670,7 +670,7 @@ $globals.Compiler);
 $core.addMethod(
 $core.method({
 selector: "evaluateExpression:",
-protocol: 'compiling',
+protocol: "compiling",
 fn: function (aString){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -693,7 +693,7 @@ $globals.Compiler);
 $core.addMethod(
 $core.method({
 selector: "evaluateExpression:on:",
-protocol: 'compiling',
+protocol: "compiling",
 fn: function (aString,anObject){
 var self=this;
 var result,method;
@@ -727,7 +727,7 @@ $globals.Compiler);
 $core.addMethod(
 $core.method({
 selector: "install:forClass:protocol:",
-protocol: 'compiling',
+protocol: "compiling",
 fn: function (aString,aBehavior,anotherString){
 var self=this;
 var compiledMethod;
@@ -752,7 +752,7 @@ $globals.Compiler);
 $core.addMethod(
 $core.method({
 selector: "parse:",
-protocol: 'compiling',
+protocol: "compiling",
 fn: function (aString){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -775,7 +775,7 @@ $globals.Compiler);
 $core.addMethod(
 $core.method({
 selector: "parseExpression:",
-protocol: 'compiling',
+protocol: "compiling",
 fn: function (aString){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -803,7 +803,7 @@ $globals.Compiler);
 $core.addMethod(
 $core.method({
 selector: "recompile:",
-protocol: 'compiling',
+protocol: "compiling",
 fn: function (aClass){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -847,7 +847,7 @@ $globals.Compiler);
 $core.addMethod(
 $core.method({
 selector: "recompileAll",
-protocol: 'compiling',
+protocol: "compiling",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -879,7 +879,7 @@ $globals.Compiler);
 $core.addMethod(
 $core.method({
 selector: "source",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -908,7 +908,7 @@ $globals.Compiler);
 $core.addMethod(
 $core.method({
 selector: "source:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aString){
 var self=this;
 self["@source"]=aString;
@@ -927,7 +927,7 @@ $globals.Compiler);
 $core.addMethod(
 $core.method({
 selector: "unknownVariables",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@unknownVariables"];
@@ -945,7 +945,7 @@ $globals.Compiler);
 $core.addMethod(
 $core.method({
 selector: "unknownVariables:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aCollection){
 var self=this;
 self["@unknownVariables"]=aCollection;
@@ -965,7 +965,7 @@ $globals.Compiler);
 $core.addMethod(
 $core.method({
 selector: "recompile:",
-protocol: 'compiling',
+protocol: "compiling",
 fn: function (aClass){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -989,7 +989,7 @@ $globals.Compiler.klass);
 $core.addMethod(
 $core.method({
 selector: "recompileAll",
-protocol: 'compiling',
+protocol: "compiling",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1019,26 +1019,26 @@ messageSends: ["do:", "classes", "recompile:"]
 $globals.Compiler.klass);
 
 
-$core.addClass('CompilerError', $globals.Error, [], 'Compiler-Core');
+$core.addClass("CompilerError", $globals.Error, [], "Compiler-Core");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.CompilerError.comment="I am the common superclass of all compiling errors.";
 //>>excludeEnd("ide");
 
 
-$core.addClass('DoIt', $globals.Object, [], 'Compiler-Core');
+$core.addClass("DoIt", $globals.Object, [], "Compiler-Core");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.DoIt.comment="`DoIt` is the class used to compile and evaluate expressions. See `Compiler >> evaluateExpression:`.";
 //>>excludeEnd("ide");
 
 
-$core.addClass('Evaluator', $globals.Object, [], 'Compiler-Core');
+$core.addClass("Evaluator", $globals.Object, [], "Compiler-Core");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.Evaluator.comment="I evaluate code against a receiver, dispatching #evaluate:on: to the receiver.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "evaluate:context:",
-protocol: 'evaluating',
+protocol: "evaluating",
 fn: function (aString,aContext){
 var self=this;
 var compiler,ast;
@@ -1089,7 +1089,7 @@ $globals.Evaluator);
 $core.addMethod(
 $core.method({
 selector: "evaluate:for:",
-protocol: 'evaluating',
+protocol: "evaluating",
 fn: function (aString,anObject){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1112,7 +1112,7 @@ $globals.Evaluator);
 $core.addMethod(
 $core.method({
 selector: "evaluate:receiver:",
-protocol: 'evaluating',
+protocol: "evaluating",
 fn: function (aString,anObject){
 var self=this;
 var compiler;
@@ -1159,7 +1159,7 @@ $globals.Evaluator);
 $core.addMethod(
 $core.method({
 selector: "evaluate:for:",
-protocol: 'instance creation',
+protocol: "instance creation",
 fn: function (aString,anObject){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1182,7 +1182,7 @@ $globals.Evaluator.klass);
 $core.addMethod(
 $core.method({
 selector: "asVariableName",
-protocol: '*Compiler-Core',
+protocol: "*Compiler-Core",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);

File diff suppressed because it is too large
+ 117 - 117
src/Compiler-IR.js


+ 82 - 82
src/Compiler-Inlining.js

@@ -2,15 +2,15 @@ define(["amber/boot", "amber_core/Compiler-AST", "amber_core/Compiler-Core", "am
 if(!$boot.nilAsReceiver)$boot.nilAsReceiver=$boot.nil;
 var $core=$boot.api,nil=$boot.nilAsReceiver,$recv=$boot.asReceiver,$globals=$boot.globals;
 if(!$boot.nilAsClass)$boot.nilAsClass=$boot.dnu;
-$core.addPackage('Compiler-Inlining');
+$core.addPackage("Compiler-Inlining");
 $core.packages["Compiler-Inlining"].innerEval = function (expr) { return eval(expr); };
 $core.packages["Compiler-Inlining"].transport = {"type":"amd","amdNamespace":"amber_core"};
 
-$core.addClass('ASTPreInliner', $globals.NodeVisitor, [], 'Compiler-Inlining');
+$core.addClass("ASTPreInliner", $globals.NodeVisitor, [], "Compiler-Inlining");
 $core.addMethod(
 $core.method({
 selector: "visitSendNode:",
-protocol: 'visiting',
+protocol: "visiting",
 fn: function (aNode){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -56,14 +56,14 @@ $globals.ASTPreInliner);
 
 
 
-$core.addClass('IRInlinedClosure', $globals.IRClosure, [], 'Compiler-Inlining');
+$core.addClass("IRInlinedClosure", $globals.IRClosure, [], "Compiler-Inlining");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.IRInlinedClosure.comment="I represent an inlined closure instruction.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "acceptDagVisitor:",
-protocol: 'visiting',
+protocol: "visiting",
 fn: function (aVisitor){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -87,7 +87,7 @@ $globals.IRInlinedClosure);
 $core.addMethod(
 $core.method({
 selector: "isInlined",
-protocol: 'testing',
+protocol: "testing",
 fn: function (){
 var self=this;
 return true;
@@ -104,14 +104,14 @@ $globals.IRInlinedClosure);
 
 
 
-$core.addClass('IRInlinedSend', $globals.IRSend, [], 'Compiler-Inlining');
+$core.addClass("IRInlinedSend", $globals.IRSend, [], "Compiler-Inlining");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.IRInlinedSend.comment="I am the abstract super class of inlined message send instructions.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "acceptDagVisitor:",
-protocol: 'visiting',
+protocol: "visiting",
 fn: function (aVisitor){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -135,7 +135,7 @@ $globals.IRInlinedSend);
 $core.addMethod(
 $core.method({
 selector: "internalVariables",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return [];
@@ -153,7 +153,7 @@ $globals.IRInlinedSend);
 $core.addMethod(
 $core.method({
 selector: "isInlined",
-protocol: 'testing',
+protocol: "testing",
 fn: function (){
 var self=this;
 return true;
@@ -170,14 +170,14 @@ $globals.IRInlinedSend);
 
 
 
-$core.addClass('IRInlinedIfFalse', $globals.IRInlinedSend, [], 'Compiler-Inlining');
+$core.addClass("IRInlinedIfFalse", $globals.IRInlinedSend, [], "Compiler-Inlining");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.IRInlinedIfFalse.comment="I represent an inlined `#ifFalse:` message send instruction.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "acceptDagVisitor:",
-protocol: 'visiting',
+protocol: "visiting",
 fn: function (aVisitor){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -200,14 +200,14 @@ $globals.IRInlinedIfFalse);
 
 
 
-$core.addClass('IRInlinedIfNilIfNotNil', $globals.IRInlinedSend, [], 'Compiler-Inlining');
+$core.addClass("IRInlinedIfNilIfNotNil", $globals.IRInlinedSend, [], "Compiler-Inlining");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.IRInlinedIfNilIfNotNil.comment="I represent an inlined `#ifNil:ifNotNil:` message send instruction.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "acceptDagVisitor:",
-protocol: 'visiting',
+protocol: "visiting",
 fn: function (aVisitor){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -231,7 +231,7 @@ $globals.IRInlinedIfNilIfNotNil);
 $core.addMethod(
 $core.method({
 selector: "internalVariables",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -254,7 +254,7 @@ $globals.IRInlinedIfNilIfNotNil);
 $core.addMethod(
 $core.method({
 selector: "receiverInternalVariable",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -283,7 +283,7 @@ $globals.IRInlinedIfNilIfNotNil);
 $core.addMethod(
 $core.method({
 selector: "receiverInternalVariableName",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return "$receiver";
@@ -300,14 +300,14 @@ $globals.IRInlinedIfNilIfNotNil);
 
 
 
-$core.addClass('IRInlinedIfTrue', $globals.IRInlinedSend, [], 'Compiler-Inlining');
+$core.addClass("IRInlinedIfTrue", $globals.IRInlinedSend, [], "Compiler-Inlining");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.IRInlinedIfTrue.comment="I represent an inlined `#ifTrue:` message send instruction.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "acceptDagVisitor:",
-protocol: 'visiting',
+protocol: "visiting",
 fn: function (aVisitor){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -330,14 +330,14 @@ $globals.IRInlinedIfTrue);
 
 
 
-$core.addClass('IRInlinedIfTrueIfFalse', $globals.IRInlinedSend, [], 'Compiler-Inlining');
+$core.addClass("IRInlinedIfTrueIfFalse", $globals.IRInlinedSend, [], "Compiler-Inlining");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.IRInlinedIfTrueIfFalse.comment="I represent an inlined `#ifTrue:ifFalse:` message send instruction.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "acceptDagVisitor:",
-protocol: 'visiting',
+protocol: "visiting",
 fn: function (aVisitor){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -360,14 +360,14 @@ $globals.IRInlinedIfTrueIfFalse);
 
 
 
-$core.addClass('IRInlinedSequence', $globals.IRBlockSequence, [], 'Compiler-Inlining');
+$core.addClass("IRInlinedSequence", $globals.IRBlockSequence, [], "Compiler-Inlining");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.IRInlinedSequence.comment="I represent a (block) sequence inside an inlined closure instruction (instance of `IRInlinedClosure`).";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "acceptDagVisitor:",
-protocol: 'visiting',
+protocol: "visiting",
 fn: function (aVisitor){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -391,7 +391,7 @@ $globals.IRInlinedSequence);
 $core.addMethod(
 $core.method({
 selector: "isInlined",
-protocol: 'testing',
+protocol: "testing",
 fn: function (){
 var self=this;
 return true;
@@ -408,14 +408,14 @@ $globals.IRInlinedSequence);
 
 
 
-$core.addClass('IRInliner', $globals.IRVisitor, [], 'Compiler-Inlining');
+$core.addClass("IRInliner", $globals.IRVisitor, [], "Compiler-Inlining");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.IRInliner.comment="I visit an IR tree, inlining message sends and block closures.\x0a\x0aMessage selectors that can be inlined are answered by `IRSendInliner >> #inlinedSelectors`";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "assignmentInliner",
-protocol: 'factory',
+protocol: "factory",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -441,7 +441,7 @@ $globals.IRInliner);
 $core.addMethod(
 $core.method({
 selector: "returnInliner",
-protocol: 'factory',
+protocol: "factory",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -467,7 +467,7 @@ $globals.IRInliner);
 $core.addMethod(
 $core.method({
 selector: "sendInliner",
-protocol: 'factory',
+protocol: "factory",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -493,7 +493,7 @@ $globals.IRInliner);
 $core.addMethod(
 $core.method({
 selector: "shouldInlineAssignment:",
-protocol: 'testing',
+protocol: "testing",
 fn: function (anIRAssignment){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -542,7 +542,7 @@ $globals.IRInliner);
 $core.addMethod(
 $core.method({
 selector: "shouldInlineReturn:",
-protocol: 'testing',
+protocol: "testing",
 fn: function (anIRReturn){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -591,7 +591,7 @@ $globals.IRInliner);
 $core.addMethod(
 $core.method({
 selector: "shouldInlineSend:",
-protocol: 'testing',
+protocol: "testing",
 fn: function (anIRSend){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -622,7 +622,7 @@ $globals.IRInliner);
 $core.addMethod(
 $core.method({
 selector: "visitIRAssignment:",
-protocol: 'visiting',
+protocol: "visiting",
 fn: function (anIRAssignment){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -658,7 +658,7 @@ $globals.IRInliner);
 $core.addMethod(
 $core.method({
 selector: "visitIRNonLocalReturn:",
-protocol: 'visiting',
+protocol: "visiting",
 fn: function (anIRNonLocalReturn){
 var self=this;
 var localReturn;
@@ -723,7 +723,7 @@ $globals.IRInliner);
 $core.addMethod(
 $core.method({
 selector: "visitIRReturn:",
-protocol: 'visiting',
+protocol: "visiting",
 fn: function (anIRReturn){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -759,7 +759,7 @@ $globals.IRInliner);
 $core.addMethod(
 $core.method({
 selector: "visitIRSend:",
-protocol: 'visiting',
+protocol: "visiting",
 fn: function (anIRSend){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -794,14 +794,14 @@ $globals.IRInliner);
 
 
 
-$core.addClass('IRInliningJSTranslator', $globals.IRJSTranslator, [], 'Compiler-Inlining');
+$core.addClass("IRInliningJSTranslator", $globals.IRJSTranslator, [], "Compiler-Inlining");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.IRInliningJSTranslator.comment="I am a specialized JavaScript translator able to write inlined IR instructions to JavaScript stream (`JSStream` instance).";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "visitIRInlinedClosure:",
-protocol: 'visiting',
+protocol: "visiting",
 fn: function (anIRInlinedClosure){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -834,7 +834,7 @@ $globals.IRInliningJSTranslator);
 $core.addMethod(
 $core.method({
 selector: "visitIRInlinedIfFalse:",
-protocol: 'visiting',
+protocol: "visiting",
 fn: function (anIRInlinedIfFalse){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -896,7 +896,7 @@ $globals.IRInliningJSTranslator);
 $core.addMethod(
 $core.method({
 selector: "visitIRInlinedIfNilIfNotNil:",
-protocol: 'visiting',
+protocol: "visiting",
 fn: function (anIRInlinedIfNilIfNotNil){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -990,7 +990,7 @@ $globals.IRInliningJSTranslator);
 $core.addMethod(
 $core.method({
 selector: "visitIRInlinedIfTrue:",
-protocol: 'visiting',
+protocol: "visiting",
 fn: function (anIRInlinedIfTrue){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1052,7 +1052,7 @@ $globals.IRInliningJSTranslator);
 $core.addMethod(
 $core.method({
 selector: "visitIRInlinedIfTrueIfFalse:",
-protocol: 'visiting',
+protocol: "visiting",
 fn: function (anIRInlinedIfTrueIfFalse){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1129,14 +1129,14 @@ $globals.IRInliningJSTranslator);
 
 
 
-$core.addClass('IRSendInliner', $globals.Object, ['send', 'translator'], 'Compiler-Inlining');
+$core.addClass("IRSendInliner", $globals.Object, ["send", "translator"], "Compiler-Inlining");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.IRSendInliner.comment="I inline some message sends and block closure arguments. I heavily rely on #perform: to dispatch inlining methods.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "ifFalse:",
-protocol: 'inlining',
+protocol: "inlining",
 fn: function (anIRInstruction){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1159,7 +1159,7 @@ $globals.IRSendInliner);
 $core.addMethod(
 $core.method({
 selector: "ifFalse:ifTrue:",
-protocol: 'inlining',
+protocol: "inlining",
 fn: function (anIRInstruction,anotherIRInstruction){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1182,7 +1182,7 @@ $globals.IRSendInliner);
 $core.addMethod(
 $core.method({
 selector: "ifNil:",
-protocol: 'inlining',
+protocol: "inlining",
 fn: function (anIRInstruction){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1227,7 +1227,7 @@ $globals.IRSendInliner);
 $core.addMethod(
 $core.method({
 selector: "ifNil:ifNotNil:",
-protocol: 'inlining',
+protocol: "inlining",
 fn: function (anIRInstruction,anotherIRInstruction){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1250,7 +1250,7 @@ $globals.IRSendInliner);
 $core.addMethod(
 $core.method({
 selector: "ifNotNil:",
-protocol: 'inlining',
+protocol: "inlining",
 fn: function (anIRInstruction){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1295,7 +1295,7 @@ $globals.IRSendInliner);
 $core.addMethod(
 $core.method({
 selector: "ifNotNil:ifNil:",
-protocol: 'inlining',
+protocol: "inlining",
 fn: function (anIRInstruction,anotherIRInstruction){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1318,7 +1318,7 @@ $globals.IRSendInliner);
 $core.addMethod(
 $core.method({
 selector: "ifTrue:",
-protocol: 'inlining',
+protocol: "inlining",
 fn: function (anIRInstruction){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1341,7 +1341,7 @@ $globals.IRSendInliner);
 $core.addMethod(
 $core.method({
 selector: "ifTrue:ifFalse:",
-protocol: 'inlining',
+protocol: "inlining",
 fn: function (anIRInstruction,anotherIRInstruction){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1364,7 +1364,7 @@ $globals.IRSendInliner);
 $core.addMethod(
 $core.method({
 selector: "inlineClosure:",
-protocol: 'inlining',
+protocol: "inlining",
 fn: function (anIRClosure){
 var self=this;
 var inlinedClosure,sequence,statements;
@@ -1531,7 +1531,7 @@ $globals.IRSendInliner);
 $core.addMethod(
 $core.method({
 selector: "inlineSend:",
-protocol: 'inlining',
+protocol: "inlining",
 fn: function (anIRSend){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1561,7 +1561,7 @@ $globals.IRSendInliner);
 $core.addMethod(
 $core.method({
 selector: "inlineSend:andReplace:",
-protocol: 'private',
+protocol: "private",
 fn: function (anIRSend,anIRInstruction){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1585,7 +1585,7 @@ $globals.IRSendInliner);
 $core.addMethod(
 $core.method({
 selector: "inlinedClosure",
-protocol: 'factory',
+protocol: "factory",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1608,7 +1608,7 @@ $globals.IRSendInliner);
 $core.addMethod(
 $core.method({
 selector: "inlinedSend:withBlock:",
-protocol: 'private',
+protocol: "private",
 fn: function (inlinedSend,anIRInstruction){
 var self=this;
 var inlinedClosure;
@@ -1661,7 +1661,7 @@ $globals.IRSendInliner);
 $core.addMethod(
 $core.method({
 selector: "inlinedSend:withBlock:withBlock:",
-protocol: 'private',
+protocol: "private",
 fn: function (inlinedSend,anIRInstruction,anotherIRInstruction){
 var self=this;
 var inlinedClosure1,inlinedClosure2;
@@ -1733,7 +1733,7 @@ $globals.IRSendInliner);
 $core.addMethod(
 $core.method({
 selector: "inlinedSequence",
-protocol: 'factory',
+protocol: "factory",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1756,7 +1756,7 @@ $globals.IRSendInliner);
 $core.addMethod(
 $core.method({
 selector: "inliningError:",
-protocol: 'error handling',
+protocol: "error handling",
 fn: function (aString){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1780,7 +1780,7 @@ $globals.IRSendInliner);
 $core.addMethod(
 $core.method({
 selector: "send",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@send"];
@@ -1798,7 +1798,7 @@ $globals.IRSendInliner);
 $core.addMethod(
 $core.method({
 selector: "send:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (anIRSend){
 var self=this;
 self["@send"]=anIRSend;
@@ -1817,7 +1817,7 @@ $globals.IRSendInliner);
 $core.addMethod(
 $core.method({
 selector: "translator",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@translator"];
@@ -1835,7 +1835,7 @@ $globals.IRSendInliner);
 $core.addMethod(
 $core.method({
 selector: "translator:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (anASTTranslator){
 var self=this;
 self["@translator"]=anASTTranslator;
@@ -1855,7 +1855,7 @@ $globals.IRSendInliner);
 $core.addMethod(
 $core.method({
 selector: "inlinedSelectors",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return ["ifTrue:", "ifFalse:", "ifTrue:ifFalse:", "ifFalse:ifTrue:", "ifNil:", "ifNotNil:", "ifNil:ifNotNil:", "ifNotNil:ifNil:"];
@@ -1873,7 +1873,7 @@ $globals.IRSendInliner.klass);
 $core.addMethod(
 $core.method({
 selector: "shouldInline:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (anIRSend){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1907,14 +1907,14 @@ messageSends: ["ifFalse:", "includes:", "inlinedSelectors", "selector", "allSati
 $globals.IRSendInliner.klass);
 
 
-$core.addClass('IRAssignmentInliner', $globals.IRSendInliner, ['target'], 'Compiler-Inlining');
+$core.addClass("IRAssignmentInliner", $globals.IRSendInliner, ["target"], "Compiler-Inlining");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.IRAssignmentInliner.comment="I inline message sends together with assignments by moving them around into the inline closure instructions.\x0a\x0a##Example\x0a\x0a\x09foo\x0a\x09\x09| a |\x0a\x09\x09a := true ifTrue: [ 1 ]\x0a\x0aWill produce:\x0a\x0a\x09if($core.assert(true) {\x0a\x09\x09a = 1;\x0a\x09};";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "inlineAssignment:",
-protocol: 'inlining',
+protocol: "inlining",
 fn: function (anIRAssignment){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1938,7 +1938,7 @@ $globals.IRAssignmentInliner);
 $core.addMethod(
 $core.method({
 selector: "inlineClosure:",
-protocol: 'inlining',
+protocol: "inlining",
 fn: function (anIRClosure){
 var self=this;
 var closure,sequence,statements;
@@ -1997,7 +1997,7 @@ $globals.IRAssignmentInliner);
 $core.addMethod(
 $core.method({
 selector: "target",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@target"];
@@ -2015,7 +2015,7 @@ $globals.IRAssignmentInliner);
 $core.addMethod(
 $core.method({
 selector: "target:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (anObject){
 var self=this;
 self["@target"]=anObject;
@@ -2033,14 +2033,14 @@ $globals.IRAssignmentInliner);
 
 
 
-$core.addClass('IRReturnInliner', $globals.IRSendInliner, [], 'Compiler-Inlining');
+$core.addClass("IRReturnInliner", $globals.IRSendInliner, [], "Compiler-Inlining");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.IRReturnInliner.comment="I inline message sends with inlined closure together with a return instruction.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "inlineClosure:",
-protocol: 'inlining',
+protocol: "inlining",
 fn: function (anIRClosure){
 var self=this;
 var closure,sequence,statements;
@@ -2095,7 +2095,7 @@ $globals.IRReturnInliner);
 $core.addMethod(
 $core.method({
 selector: "inlineReturn:",
-protocol: 'inlining',
+protocol: "inlining",
 fn: function (anIRReturn){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2117,14 +2117,14 @@ $globals.IRReturnInliner);
 
 
 
-$core.addClass('InliningCodeGenerator', $globals.CodeGenerator, [], 'Compiler-Inlining');
+$core.addClass("InliningCodeGenerator", $globals.CodeGenerator, [], "Compiler-Inlining");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.InliningCodeGenerator.comment="I am a specialized code generator that uses inlining to produce more optimized JavaScript output";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "inliner",
-protocol: 'compiling',
+protocol: "compiling",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2147,7 +2147,7 @@ $globals.InliningCodeGenerator);
 $core.addMethod(
 $core.method({
 selector: "irTranslatorClass",
-protocol: 'compiling',
+protocol: "compiling",
 fn: function (){
 var self=this;
 return $globals.IRInliningJSTranslator;
@@ -2165,7 +2165,7 @@ $globals.InliningCodeGenerator);
 $core.addMethod(
 $core.method({
 selector: "preInliner",
-protocol: 'compiling',
+protocol: "compiling",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2188,7 +2188,7 @@ $globals.InliningCodeGenerator);
 $core.addMethod(
 $core.method({
 selector: "transformersDictionary",
-protocol: 'compiling',
+protocol: "compiling",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2228,17 +2228,17 @@ $globals.InliningCodeGenerator);
 
 
 
-$core.addClass('InliningError', $globals.SemanticError, [], 'Compiler-Inlining');
+$core.addClass("InliningError", $globals.SemanticError, [], "Compiler-Inlining");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.InliningError.comment="Instances of InliningError are signaled when using an `InliningCodeGenerator`in a `Compiler`.";
 //>>excludeEnd("ide");
 
 
-$core.addClass('InliningSemanticAnalyzer', $globals.SemanticAnalyzer, [], 'Compiler-Inlining');
+$core.addClass("InliningSemanticAnalyzer", $globals.SemanticAnalyzer, [], "Compiler-Inlining");
 $core.addMethod(
 $core.method({
 selector: "visitSendNode:",
-protocol: 'visiting',
+protocol: "visiting",
 fn: function (aNode){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2286,7 +2286,7 @@ $globals.InliningSemanticAnalyzer);
 $core.addMethod(
 $core.method({
 selector: "asInlinedBlockResult",
-protocol: '*Compiler-Inlining',
+protocol: "*Compiler-Inlining",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2309,7 +2309,7 @@ $globals.IRBlockReturn);
 $core.addMethod(
 $core.method({
 selector: "asInlinedBlockResult",
-protocol: '*Compiler-Inlining',
+protocol: "*Compiler-Inlining",
 fn: function (){
 var self=this;
 return self;

File diff suppressed because it is too large
+ 113 - 113
src/Compiler-Interpreter.js


File diff suppressed because it is too large
+ 114 - 114
src/Compiler-Semantic.js


+ 98 - 98
src/Compiler-Tests.js

@@ -2,15 +2,15 @@ define(["amber/boot", "amber_core/SUnit"], function($boot){"use strict";
 if(!$boot.nilAsReceiver)$boot.nilAsReceiver=$boot.nil;
 var $core=$boot.api,nil=$boot.nilAsReceiver,$recv=$boot.asReceiver,$globals=$boot.globals;
 if(!$boot.nilAsClass)$boot.nilAsClass=$boot.dnu;
-$core.addPackage('Compiler-Tests');
+$core.addPackage("Compiler-Tests");
 $core.packages["Compiler-Tests"].innerEval = function (expr) { return eval(expr); };
 $core.packages["Compiler-Tests"].transport = {"type":"amd","amdNamespace":"amber_core"};
 
-$core.addClass('ASTParsingTest', $globals.TestCase, [], 'Compiler-Tests');
+$core.addClass("ASTParsingTest", $globals.TestCase, [], "Compiler-Tests");
 $core.addMethod(
 $core.method({
 selector: "analyze:forClass:",
-protocol: 'convenience',
+protocol: "convenience",
 fn: function (aNode,aClass){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -34,7 +34,7 @@ $globals.ASTParsingTest);
 $core.addMethod(
 $core.method({
 selector: "parse:",
-protocol: 'parsing',
+protocol: "parsing",
 fn: function (aString){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -57,7 +57,7 @@ $globals.ASTParsingTest);
 $core.addMethod(
 $core.method({
 selector: "parse:forClass:",
-protocol: 'parsing',
+protocol: "parsing",
 fn: function (aString,aClass){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -79,11 +79,11 @@ $globals.ASTParsingTest);
 
 
 
-$core.addClass('ASTPCNodeVisitorTest', $globals.ASTParsingTest, [], 'Compiler-Tests');
+$core.addClass("ASTPCNodeVisitorTest", $globals.ASTParsingTest, [], "Compiler-Tests");
 $core.addMethod(
 $core.method({
 selector: "astPCNodeVisitor",
-protocol: 'factory',
+protocol: "factory",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -109,7 +109,7 @@ $globals.ASTPCNodeVisitorTest);
 $core.addMethod(
 $core.method({
 selector: "astPCNodeVisitorForSelector:",
-protocol: 'factory',
+protocol: "factory",
 fn: function (aString){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -136,7 +136,7 @@ $globals.ASTPCNodeVisitorTest);
 $core.addMethod(
 $core.method({
 selector: "testJSStatementNode",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 var ast,visitor;
@@ -167,7 +167,7 @@ $globals.ASTPCNodeVisitorTest);
 $core.addMethod(
 $core.method({
 selector: "testLegacyJSStatementNode",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 var ast,visitor;
@@ -198,7 +198,7 @@ $globals.ASTPCNodeVisitorTest);
 $core.addMethod(
 $core.method({
 selector: "testMessageSend",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 var ast;
@@ -229,7 +229,7 @@ $globals.ASTPCNodeVisitorTest);
 $core.addMethod(
 $core.method({
 selector: "testMessageSendWithBlocks",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 var ast;
@@ -260,7 +260,7 @@ $globals.ASTPCNodeVisitorTest);
 $core.addMethod(
 $core.method({
 selector: "testMessageSendWithInlining",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 var ast;
@@ -316,7 +316,7 @@ $globals.ASTPCNodeVisitorTest);
 $core.addMethod(
 $core.method({
 selector: "testNoMessageSend",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 var ast;
@@ -346,11 +346,11 @@ $globals.ASTPCNodeVisitorTest);
 
 
 
-$core.addClass('ASTPositionTest', $globals.ASTParsingTest, [], 'Compiler-Tests');
+$core.addClass("ASTPositionTest", $globals.ASTParsingTest, [], "Compiler-Tests");
 $core.addMethod(
 $core.method({
 selector: "testNodeAtPosition",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 var node;
@@ -424,11 +424,11 @@ $globals.ASTPositionTest);
 
 
 
-$core.addClass('CodeGeneratorTest', $globals.ASTParsingTest, ['receiver'], 'Compiler-Tests');
+$core.addClass("CodeGeneratorTest", $globals.ASTParsingTest, ["receiver"], "Compiler-Tests");
 $core.addMethod(
 $core.method({
 selector: "codeGeneratorClass",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return $globals.CodeGenerator;
@@ -446,7 +446,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "compiler",
-protocol: 'factory',
+protocol: "factory",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -472,7 +472,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "setUp",
-protocol: 'initialization',
+protocol: "initialization",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -496,7 +496,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "should:receiver:raise:",
-protocol: 'testing',
+protocol: "testing",
 fn: function (aString,anObject,anErrorClass){
 var self=this;
 var method,result;
@@ -559,7 +559,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "should:receiver:return:",
-protocol: 'testing',
+protocol: "testing",
 fn: function (aString,anObject,aResult){
 var self=this;
 var method,result;
@@ -594,7 +594,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "should:return:",
-protocol: 'testing',
+protocol: "testing",
 fn: function (aString,anObject){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -617,7 +617,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "tearDown",
-protocol: 'initialization',
+protocol: "initialization",
 fn: function (){
 var self=this;
 return self;
@@ -635,7 +635,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testAssignment",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -667,7 +667,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testBackslashSelectors",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -695,7 +695,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testBlockReturn",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -727,7 +727,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testCascades",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -751,7 +751,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testCascadesInDynamicArray",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -775,7 +775,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testCascadesInDynamicDictioary",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -799,7 +799,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testCascadesInSend",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -823,7 +823,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testCascadesWithInlining",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -851,7 +851,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testDynamicArrayElementsOrdered",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -879,7 +879,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testDynamicDictionaryElementsOrdered",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -903,7 +903,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testDynamicDictionaryWithMoreArrows",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -933,7 +933,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testGlobalVar",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -965,7 +965,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testInnerTemporalDependentElementsOrdered",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1038,7 +1038,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testJSStatement",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1062,7 +1062,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testLexicalScope",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1086,7 +1086,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testLiterals",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1150,7 +1150,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testLocalReturn",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1190,7 +1190,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testMessageSends",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1230,7 +1230,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testMistypedPragmaJSStatement",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1254,7 +1254,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testMultipleSequences",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1278,7 +1278,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testMutableLiterals",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1302,7 +1302,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testNestedIfTrue",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1338,7 +1338,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testNestedSends",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1362,7 +1362,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testNonLocalReturn",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1398,7 +1398,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testPascalCaseGlobal",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1426,7 +1426,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testPragmaJSStatement",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1450,7 +1450,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testRootSuperSend",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1474,7 +1474,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testSendReceiverAndArgumentsOrdered",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1502,7 +1502,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testSuperSend",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1526,7 +1526,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testTempVariables",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1570,7 +1570,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testThisContext",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1594,7 +1594,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testifFalse",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1630,7 +1630,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testifFalseIfTrue",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1666,7 +1666,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testifNil",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1702,7 +1702,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testifNilIfNotNil",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1738,7 +1738,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testifNotNil",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1774,7 +1774,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testifNotNilWithArgument",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1818,7 +1818,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testifTrue",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1854,7 +1854,7 @@ $globals.CodeGeneratorTest);
 $core.addMethod(
 $core.method({
 selector: "testifTrueIfFalse",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1889,11 +1889,11 @@ $globals.CodeGeneratorTest);
 
 
 
-$core.addClass('ASTInterpreterTest', $globals.CodeGeneratorTest, [], 'Compiler-Tests');
+$core.addClass("ASTInterpreterTest", $globals.CodeGeneratorTest, [], "Compiler-Tests");
 $core.addMethod(
 $core.method({
 selector: "analyze:forClass:",
-protocol: 'parsing',
+protocol: "parsing",
 fn: function (aNode,aClass){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1917,7 +1917,7 @@ $globals.ASTInterpreterTest);
 $core.addMethod(
 $core.method({
 selector: "interpret:receiver:withArguments:",
-protocol: 'private',
+protocol: "private",
 fn: function (aString,anObject,aDictionary){
 var self=this;
 var ctx,ast,interpreter;
@@ -1981,7 +1981,7 @@ $globals.ASTInterpreterTest);
 $core.addMethod(
 $core.method({
 selector: "parse:",
-protocol: 'parsing',
+protocol: "parsing",
 fn: function (aString){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2004,7 +2004,7 @@ $globals.ASTInterpreterTest);
 $core.addMethod(
 $core.method({
 selector: "parse:forClass:",
-protocol: 'parsing',
+protocol: "parsing",
 fn: function (aString,aClass){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2027,7 +2027,7 @@ $globals.ASTInterpreterTest);
 $core.addMethod(
 $core.method({
 selector: "should:receiver:return:",
-protocol: 'testing',
+protocol: "testing",
 fn: function (aString,anObject,aResult){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2050,11 +2050,11 @@ $globals.ASTInterpreterTest);
 
 
 
-$core.addClass('ASTDebuggerTest', $globals.ASTInterpreterTest, [], 'Compiler-Tests');
+$core.addClass("ASTDebuggerTest", $globals.ASTInterpreterTest, [], "Compiler-Tests");
 $core.addMethod(
 $core.method({
 selector: "interpret:receiver:withArguments:",
-protocol: 'private',
+protocol: "private",
 fn: function (aString,anObject,aDictionary){
 var self=this;
 var ctx,ast,debugger_;
@@ -2125,11 +2125,11 @@ $globals.ASTDebuggerTest);
 
 
 
-$core.addClass('InliningCodeGeneratorTest', $globals.CodeGeneratorTest, [], 'Compiler-Tests');
+$core.addClass("InliningCodeGeneratorTest", $globals.CodeGeneratorTest, [], "Compiler-Tests");
 $core.addMethod(
 $core.method({
 selector: "codeGeneratorClass",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return $globals.InliningCodeGenerator;
@@ -2146,11 +2146,11 @@ $globals.InliningCodeGeneratorTest);
 
 
 
-$core.addClass('ScopeVarTest', $globals.TestCase, [], 'Compiler-Tests');
+$core.addClass("ScopeVarTest", $globals.TestCase, [], "Compiler-Tests");
 $core.addMethod(
 $core.method({
 selector: "testClassRefVar",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 var node;
@@ -2188,7 +2188,7 @@ $globals.ScopeVarTest);
 $core.addMethod(
 $core.method({
 selector: "testInstanceVar",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 var node,scope;
@@ -2222,7 +2222,7 @@ $globals.ScopeVarTest);
 $core.addMethod(
 $core.method({
 selector: "testPseudoVar",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 var node,pseudoVars;
@@ -2264,7 +2264,7 @@ $globals.ScopeVarTest);
 $core.addMethod(
 $core.method({
 selector: "testTempVar",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 var node,scope;
@@ -2298,7 +2298,7 @@ $globals.ScopeVarTest);
 $core.addMethod(
 $core.method({
 selector: "testUnknownVar",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 var node;
@@ -2329,11 +2329,11 @@ $globals.ScopeVarTest);
 
 
 
-$core.addClass('SemanticAnalyzerTest', $globals.TestCase, ['analyzer'], 'Compiler-Tests');
+$core.addClass("SemanticAnalyzerTest", $globals.TestCase, ["analyzer"], "Compiler-Tests");
 $core.addMethod(
 $core.method({
 selector: "setUp",
-protocol: 'running',
+protocol: "running",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2357,7 +2357,7 @@ $globals.SemanticAnalyzerTest);
 $core.addMethod(
 $core.method({
 selector: "testAssignment",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 var src,ast;
@@ -2392,7 +2392,7 @@ $globals.SemanticAnalyzerTest);
 $core.addMethod(
 $core.method({
 selector: "testNonLocalReturn",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 var src,ast;
@@ -2420,7 +2420,7 @@ $globals.SemanticAnalyzerTest);
 $core.addMethod(
 $core.method({
 selector: "testNonLocalReturn2",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 var src,ast;
@@ -2448,7 +2448,7 @@ $globals.SemanticAnalyzerTest);
 $core.addMethod(
 $core.method({
 selector: "testScope",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 var src,ast;
@@ -2487,7 +2487,7 @@ $globals.SemanticAnalyzerTest);
 $core.addMethod(
 $core.method({
 selector: "testScope2",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 var src,ast;
@@ -2542,7 +2542,7 @@ $globals.SemanticAnalyzerTest);
 $core.addMethod(
 $core.method({
 selector: "testScopeLevel",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 var src,ast;
@@ -2606,7 +2606,7 @@ $globals.SemanticAnalyzerTest);
 $core.addMethod(
 $core.method({
 selector: "testUnknownVariables",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 var src,ast;
@@ -2641,7 +2641,7 @@ $globals.SemanticAnalyzerTest);
 $core.addMethod(
 $core.method({
 selector: "testUnknownVariablesWithScope",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 var src,ast;
@@ -2676,7 +2676,7 @@ $globals.SemanticAnalyzerTest);
 $core.addMethod(
 $core.method({
 selector: "testVariableShadowing",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 var src,ast;
@@ -2703,7 +2703,7 @@ $globals.SemanticAnalyzerTest);
 $core.addMethod(
 $core.method({
 selector: "testVariableShadowing2",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 var src,ast;
@@ -2738,7 +2738,7 @@ $globals.SemanticAnalyzerTest);
 $core.addMethod(
 $core.method({
 selector: "testVariableShadowing3",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 var src,ast;
@@ -2765,7 +2765,7 @@ $globals.SemanticAnalyzerTest);
 $core.addMethod(
 $core.method({
 selector: "testVariableShadowing4",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 var src,ast;
@@ -2792,7 +2792,7 @@ $globals.SemanticAnalyzerTest);
 $core.addMethod(
 $core.method({
 selector: "testVariableShadowing5",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 var src,ast;
@@ -2827,7 +2827,7 @@ $globals.SemanticAnalyzerTest);
 $core.addMethod(
 $core.method({
 selector: "testVariablesLookup",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 var src,ast;
@@ -3014,11 +3014,11 @@ $globals.SemanticAnalyzerTest);
 
 
 
-$core.addClass('AISemanticAnalyzerTest', $globals.SemanticAnalyzerTest, [], 'Compiler-Tests');
+$core.addClass("AISemanticAnalyzerTest", $globals.SemanticAnalyzerTest, [], "Compiler-Tests");
 $core.addMethod(
 $core.method({
 selector: "setUp",
-protocol: 'running',
+protocol: "running",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -3053,7 +3053,7 @@ $globals.AISemanticAnalyzerTest);
 $core.addMethod(
 $core.method({
 selector: "testContextVariables",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 var src,ast;

+ 70 - 70
src/Kernel-Announcements.js

@@ -2,18 +2,18 @@ define(["amber/boot", "amber_core/Kernel-Objects"], function($boot){"use strict"
 if(!$boot.nilAsReceiver)$boot.nilAsReceiver=$boot.nil;
 var $core=$boot.api,nil=$boot.nilAsReceiver,$recv=$boot.asReceiver,$globals=$boot.globals;
 if(!$boot.nilAsClass)$boot.nilAsClass=$boot.dnu;
-$core.addPackage('Kernel-Announcements');
+$core.addPackage("Kernel-Announcements");
 $core.packages["Kernel-Announcements"].innerEval = function (expr) { return eval(expr); };
 $core.packages["Kernel-Announcements"].transport = {"type":"amd","amdNamespace":"amber_core"};
 
-$core.addClass('AnnouncementSubscription', $globals.Object, ['valuable', 'announcementClass'], 'Kernel-Announcements');
+$core.addClass("AnnouncementSubscription", $globals.Object, ["valuable", "announcementClass"], "Kernel-Announcements");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.AnnouncementSubscription.comment="I am a single entry in a subscription registry of an `Announcer`.\x0aSeveral subscriptions by the same object is possible.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "announcementClass",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@announcementClass"];
@@ -31,7 +31,7 @@ $globals.AnnouncementSubscription);
 $core.addMethod(
 $core.method({
 selector: "announcementClass:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aClass){
 var self=this;
 self["@announcementClass"]=aClass;
@@ -50,7 +50,7 @@ $globals.AnnouncementSubscription);
 $core.addMethod(
 $core.method({
 selector: "deliver:",
-protocol: 'announcing',
+protocol: "announcing",
 fn: function (anAnnouncement){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -78,7 +78,7 @@ $globals.AnnouncementSubscription);
 $core.addMethod(
 $core.method({
 selector: "handlesAnnouncement:",
-protocol: 'announcing',
+protocol: "announcing",
 fn: function (anAnnouncement){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -120,7 +120,7 @@ $globals.AnnouncementSubscription);
 $core.addMethod(
 $core.method({
 selector: "receiver",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -143,7 +143,7 @@ $globals.AnnouncementSubscription);
 $core.addMethod(
 $core.method({
 selector: "valuable",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@valuable"];
@@ -161,7 +161,7 @@ $globals.AnnouncementSubscription);
 $core.addMethod(
 $core.method({
 selector: "valuable:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aValuable){
 var self=this;
 self["@valuable"]=aValuable;
@@ -179,14 +179,14 @@ $globals.AnnouncementSubscription);
 
 
 
-$core.addClass('AnnouncementValuable', $globals.Object, ['valuable', 'receiver'], 'Kernel-Announcements');
+$core.addClass("AnnouncementValuable", $globals.Object, ["valuable", "receiver"], "Kernel-Announcements");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.AnnouncementValuable.comment="I wrap `valuable` objects (typically instances of `BlockClosure`) with a `receiver` to be able to unregister subscriptions based on a `receiver`.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "receiver",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@receiver"];
@@ -204,7 +204,7 @@ $globals.AnnouncementValuable);
 $core.addMethod(
 $core.method({
 selector: "receiver:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (anObject){
 var self=this;
 self["@receiver"]=anObject;
@@ -223,7 +223,7 @@ $globals.AnnouncementValuable);
 $core.addMethod(
 $core.method({
 selector: "valuable",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@valuable"];
@@ -241,7 +241,7 @@ $globals.AnnouncementValuable);
 $core.addMethod(
 $core.method({
 selector: "valuable:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (anObject){
 var self=this;
 self["@valuable"]=anObject;
@@ -260,7 +260,7 @@ $globals.AnnouncementValuable);
 $core.addMethod(
 $core.method({
 selector: "value",
-protocol: 'evaluating',
+protocol: "evaluating",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -283,7 +283,7 @@ $globals.AnnouncementValuable);
 $core.addMethod(
 $core.method({
 selector: "value:",
-protocol: 'evaluating',
+protocol: "evaluating",
 fn: function (anObject){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -305,14 +305,14 @@ $globals.AnnouncementValuable);
 
 
 
-$core.addClass('Announcer', $globals.Object, ['registry', 'subscriptions'], 'Kernel-Announcements');
+$core.addClass("Announcer", $globals.Object, ["registry", "subscriptions"], "Kernel-Announcements");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.Announcer.comment="I hold annoncement subscriptions (instances of `AnnouncementSubscription`) in a private registry.\x0aI announce (trigger) announces, which are then dispatched to all subscriptions.\x0a\x0aThe code is based on the announcements as [described by Vassili Bykov](http://www.cincomsmalltalk.com/userblogs/vbykov/blogView?searchCategory=Announcements%20Framework).\x0a\x0a## API\x0a\x0aUse `#announce:` to trigger an announcement.\x0a\x0aUse `#on:do:` or `#on:send:to:` to register subscriptions.\x0a\x0aWhen using `#on:send:to:`, unregistration can be done with `#unregister:`.\x0a\x0a## Usage example:\x0a\x0a    SystemAnnouncer current\x0a        on: ClassAdded\x0a        do: [ :ann | window alert: ann theClass name, ' added' ].";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "announce:",
-protocol: 'announcing',
+protocol: "announcing",
 fn: function (anAnnouncement){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -344,7 +344,7 @@ $globals.Announcer);
 $core.addMethod(
 $core.method({
 selector: "initialize",
-protocol: 'initialization',
+protocol: "initialization",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -376,7 +376,7 @@ $globals.Announcer);
 $core.addMethod(
 $core.method({
 selector: "on:do:",
-protocol: 'subscribing',
+protocol: "subscribing",
 fn: function (aClass,aBlock){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -400,7 +400,7 @@ $globals.Announcer);
 $core.addMethod(
 $core.method({
 selector: "on:do:for:",
-protocol: 'subscribing',
+protocol: "subscribing",
 fn: function (aClass,aBlock,aReceiver){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -444,7 +444,7 @@ $globals.Announcer);
 $core.addMethod(
 $core.method({
 selector: "on:doOnce:",
-protocol: 'subscribing',
+protocol: "subscribing",
 fn: function (aClass,aBlock){
 var self=this;
 var subscription;
@@ -483,7 +483,7 @@ $globals.Announcer);
 $core.addMethod(
 $core.method({
 selector: "on:send:to:",
-protocol: 'subscribing',
+protocol: "subscribing",
 fn: function (aClass,aSelector,anObject){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -524,7 +524,7 @@ $globals.Announcer);
 $core.addMethod(
 $core.method({
 selector: "unsubscribe:",
-protocol: 'subscribing',
+protocol: "subscribing",
 fn: function (anObject){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -555,16 +555,16 @@ $globals.Announcer);
 
 
 
-$core.addClass('SystemAnnouncer', $globals.Announcer, [], 'Kernel-Announcements');
+$core.addClass("SystemAnnouncer", $globals.Announcer, [], "Kernel-Announcements");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.SystemAnnouncer.comment="My unique instance is the global announcer handling all Amber system-related announces.\x0a\x0a## API\x0a\x0aAccess to the unique instance is done via `#current`";
 //>>excludeEnd("ide");
 
-$globals.SystemAnnouncer.klass.iVarNames = ['current'];
+$globals.SystemAnnouncer.klass.iVarNames = ["current"];
 $core.addMethod(
 $core.method({
 selector: "current",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -601,7 +601,7 @@ $globals.SystemAnnouncer.klass);
 $core.addMethod(
 $core.method({
 selector: "new",
-protocol: 'instance creation',
+protocol: "instance creation",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -623,7 +623,7 @@ messageSends: ["shouldNotImplement"]
 $globals.SystemAnnouncer.klass);
 
 
-$core.addClass('SystemAnnouncement', $globals.Object, [], 'Kernel-Announcements');
+$core.addClass("SystemAnnouncement", $globals.Object, [], "Kernel-Announcements");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.SystemAnnouncement.comment="I am the superclass of all system announcements";
 //>>excludeEnd("ide");
@@ -631,7 +631,7 @@ $globals.SystemAnnouncement.comment="I am the superclass of all system announcem
 $core.addMethod(
 $core.method({
 selector: "classTag",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return "announcement";
@@ -647,14 +647,14 @@ messageSends: []
 $globals.SystemAnnouncement.klass);
 
 
-$core.addClass('ClassAnnouncement', $globals.SystemAnnouncement, ['theClass'], 'Kernel-Announcements');
+$core.addClass("ClassAnnouncement", $globals.SystemAnnouncement, ["theClass"], "Kernel-Announcements");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.ClassAnnouncement.comment="I am the abstract superclass of class-related announcements.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "theClass",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@theClass"];
@@ -672,7 +672,7 @@ $globals.ClassAnnouncement);
 $core.addMethod(
 $core.method({
 selector: "theClass:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aClass){
 var self=this;
 self["@theClass"]=aClass;
@@ -690,32 +690,32 @@ $globals.ClassAnnouncement);
 
 
 
-$core.addClass('ClassAdded', $globals.ClassAnnouncement, [], 'Kernel-Announcements');
+$core.addClass("ClassAdded", $globals.ClassAnnouncement, [], "Kernel-Announcements");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.ClassAdded.comment="I am emitted when a class is added to the system.\x0aSee ClassBuilder >> #addSubclassOf:... methods";
 //>>excludeEnd("ide");
 
 
-$core.addClass('ClassCommentChanged', $globals.ClassAnnouncement, [], 'Kernel-Announcements');
+$core.addClass("ClassCommentChanged", $globals.ClassAnnouncement, [], "Kernel-Announcements");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.ClassCommentChanged.comment="I am emitted when the comment of a class changes. (Behavior >> #comment)";
 //>>excludeEnd("ide");
 
 
-$core.addClass('ClassDefinitionChanged', $globals.ClassAnnouncement, [], 'Kernel-Announcements');
+$core.addClass("ClassDefinitionChanged", $globals.ClassAnnouncement, [], "Kernel-Announcements");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.ClassDefinitionChanged.comment="I am emitted when the definition of a class changes.\x0aSee ClassBuilder >> #class:instanceVariableNames:";
 //>>excludeEnd("ide");
 
 
-$core.addClass('ClassMigrated', $globals.ClassAnnouncement, ['oldClass'], 'Kernel-Announcements');
+$core.addClass("ClassMigrated", $globals.ClassAnnouncement, ["oldClass"], "Kernel-Announcements");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.ClassMigrated.comment="I am emitted when a class is migrated.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "oldClass",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@oldClass"];
@@ -733,7 +733,7 @@ $globals.ClassMigrated);
 $core.addMethod(
 $core.method({
 selector: "oldClass:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aClass){
 var self=this;
 self["@oldClass"]=aClass;
@@ -751,14 +751,14 @@ $globals.ClassMigrated);
 
 
 
-$core.addClass('ClassMoved', $globals.ClassAnnouncement, ['oldPackage'], 'Kernel-Announcements');
+$core.addClass("ClassMoved", $globals.ClassAnnouncement, ["oldPackage"], "Kernel-Announcements");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.ClassMoved.comment="I am emitted when a class is moved from one package to another.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "oldPackage",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@oldPackage"];
@@ -776,7 +776,7 @@ $globals.ClassMoved);
 $core.addMethod(
 $core.method({
 selector: "oldPackage:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aPackage){
 var self=this;
 self["@oldPackage"]=aPackage;
@@ -794,26 +794,26 @@ $globals.ClassMoved);
 
 
 
-$core.addClass('ClassRemoved', $globals.ClassAnnouncement, [], 'Kernel-Announcements');
+$core.addClass("ClassRemoved", $globals.ClassAnnouncement, [], "Kernel-Announcements");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.ClassRemoved.comment="I am emitted when a class is removed.\x0aSee Smalltalk >> #removeClass:";
 //>>excludeEnd("ide");
 
 
-$core.addClass('ClassRenamed', $globals.ClassAnnouncement, [], 'Kernel-Announcements');
+$core.addClass("ClassRenamed", $globals.ClassAnnouncement, [], "Kernel-Announcements");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.ClassRenamed.comment="I am emitted when a class is renamed.\x0aSee ClassBuilder >> #renameClass:to:";
 //>>excludeEnd("ide");
 
 
-$core.addClass('MethodAnnouncement', $globals.SystemAnnouncement, ['method'], 'Kernel-Announcements');
+$core.addClass("MethodAnnouncement", $globals.SystemAnnouncement, ["method"], "Kernel-Announcements");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.MethodAnnouncement.comment="I am the abstract superclass of method-related announcements.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "method",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@method"];
@@ -831,7 +831,7 @@ $globals.MethodAnnouncement);
 $core.addMethod(
 $core.method({
 selector: "method:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aCompiledMethod){
 var self=this;
 self["@method"]=aCompiledMethod;
@@ -849,20 +849,20 @@ $globals.MethodAnnouncement);
 
 
 
-$core.addClass('MethodAdded', $globals.MethodAnnouncement, [], 'Kernel-Announcements');
+$core.addClass("MethodAdded", $globals.MethodAnnouncement, [], "Kernel-Announcements");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.MethodAdded.comment="I am emitted when a `CompiledMethod` is added to a class.";
 //>>excludeEnd("ide");
 
 
-$core.addClass('MethodModified', $globals.MethodAnnouncement, ['oldMethod'], 'Kernel-Announcements');
+$core.addClass("MethodModified", $globals.MethodAnnouncement, ["oldMethod"], "Kernel-Announcements");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.MethodModified.comment="I am emitted when a `CompiledMethod` is modified (a new method is installed). I hold a reference to the old method being replaced.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "oldMethod",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@oldMethod"];
@@ -880,7 +880,7 @@ $globals.MethodModified);
 $core.addMethod(
 $core.method({
 selector: "oldMethod:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aMethod){
 var self=this;
 self["@oldMethod"]=aMethod;
@@ -898,14 +898,14 @@ $globals.MethodModified);
 
 
 
-$core.addClass('MethodMoved', $globals.MethodAnnouncement, ['oldProtocol'], 'Kernel-Announcements');
+$core.addClass("MethodMoved", $globals.MethodAnnouncement, ["oldProtocol"], "Kernel-Announcements");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.MethodMoved.comment="I am emitted when a `CompiledMethod` is moved to another protocol. I hold a refernce to the old protocol of the method.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "oldProtocol",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@oldProtocol"];
@@ -923,7 +923,7 @@ $globals.MethodMoved);
 $core.addMethod(
 $core.method({
 selector: "oldProtocol:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aString){
 var self=this;
 self["@oldProtocol"]=aString;
@@ -941,20 +941,20 @@ $globals.MethodMoved);
 
 
 
-$core.addClass('MethodRemoved', $globals.MethodAnnouncement, [], 'Kernel-Announcements');
+$core.addClass("MethodRemoved", $globals.MethodAnnouncement, [], "Kernel-Announcements");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.MethodRemoved.comment="I am emitted when a `CompiledMethod` is removed from a class.";
 //>>excludeEnd("ide");
 
 
-$core.addClass('PackageAnnouncement', $globals.SystemAnnouncement, ['package'], 'Kernel-Announcements');
+$core.addClass("PackageAnnouncement", $globals.SystemAnnouncement, ["package"], "Kernel-Announcements");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.PackageAnnouncement.comment="I am the abstract superclass of package-related announcements.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "package",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@package"];
@@ -972,7 +972,7 @@ $globals.PackageAnnouncement);
 $core.addMethod(
 $core.method({
 selector: "package:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aPackage){
 var self=this;
 self["@package"]=aPackage;
@@ -990,38 +990,38 @@ $globals.PackageAnnouncement);
 
 
 
-$core.addClass('PackageAdded', $globals.PackageAnnouncement, [], 'Kernel-Announcements');
+$core.addClass("PackageAdded", $globals.PackageAnnouncement, [], "Kernel-Announcements");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.PackageAdded.comment="I am emitted when a `Package` is added to the system.";
 //>>excludeEnd("ide");
 
 
-$core.addClass('PackageClean', $globals.PackageAnnouncement, [], 'Kernel-Announcements');
+$core.addClass("PackageClean", $globals.PackageAnnouncement, [], "Kernel-Announcements");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.PackageClean.comment="I am emitted when a package is committed and becomes clean.";
 //>>excludeEnd("ide");
 
 
-$core.addClass('PackageDirty', $globals.PackageAnnouncement, [], 'Kernel-Announcements');
+$core.addClass("PackageDirty", $globals.PackageAnnouncement, [], "Kernel-Announcements");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.PackageDirty.comment="I am emitted when a package becomes dirty.";
 //>>excludeEnd("ide");
 
 
-$core.addClass('PackageRemoved', $globals.PackageAnnouncement, [], 'Kernel-Announcements');
+$core.addClass("PackageRemoved", $globals.PackageAnnouncement, [], "Kernel-Announcements");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.PackageRemoved.comment="I am emitted when a `Package` is removed from the system.";
 //>>excludeEnd("ide");
 
 
-$core.addClass('ProtocolAnnouncement', $globals.SystemAnnouncement, ['theClass', 'protocol'], 'Kernel-Announcements');
+$core.addClass("ProtocolAnnouncement", $globals.SystemAnnouncement, ["theClass", "protocol"], "Kernel-Announcements");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.ProtocolAnnouncement.comment="I am the abstract superclass of protocol-related announcements.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "package",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1052,7 +1052,7 @@ $globals.ProtocolAnnouncement);
 $core.addMethod(
 $core.method({
 selector: "protocol",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@protocol"];
@@ -1070,7 +1070,7 @@ $globals.ProtocolAnnouncement);
 $core.addMethod(
 $core.method({
 selector: "protocol:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aString){
 var self=this;
 self["@protocol"]=aString;
@@ -1089,7 +1089,7 @@ $globals.ProtocolAnnouncement);
 $core.addMethod(
 $core.method({
 selector: "theClass",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@theClass"];
@@ -1107,7 +1107,7 @@ $globals.ProtocolAnnouncement);
 $core.addMethod(
 $core.method({
 selector: "theClass:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aClass){
 var self=this;
 self["@theClass"]=aClass;
@@ -1125,13 +1125,13 @@ $globals.ProtocolAnnouncement);
 
 
 
-$core.addClass('ProtocolAdded', $globals.ProtocolAnnouncement, [], 'Kernel-Announcements');
+$core.addClass("ProtocolAdded", $globals.ProtocolAnnouncement, [], "Kernel-Announcements");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.ProtocolAdded.comment="I am emitted when a protocol is added to a class.";
 //>>excludeEnd("ide");
 
 
-$core.addClass('ProtocolRemoved', $globals.ProtocolAnnouncement, [], 'Kernel-Announcements');
+$core.addClass("ProtocolRemoved", $globals.ProtocolAnnouncement, [], "Kernel-Announcements");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.ProtocolRemoved.comment="I am emitted when a protocol is removed from a class.";
 //>>excludeEnd("ide");

File diff suppressed because it is too large
+ 113 - 113
src/Kernel-Classes.js


File diff suppressed because it is too large
+ 113 - 113
src/Kernel-Collections.js


+ 28 - 28
src/Kernel-Dag.js

@@ -2,18 +2,18 @@ define(["amber/boot", "amber_core/Kernel-Objects"], function($boot){"use strict"
 if(!$boot.nilAsReceiver)$boot.nilAsReceiver=$boot.nil;
 var $core=$boot.api,nil=$boot.nilAsReceiver,$recv=$boot.asReceiver,$globals=$boot.globals;
 if(!$boot.nilAsClass)$boot.nilAsClass=$boot.dnu;
-$core.addPackage('Kernel-Dag');
+$core.addPackage("Kernel-Dag");
 $core.packages["Kernel-Dag"].innerEval = function (expr) { return eval(expr); };
 $core.packages["Kernel-Dag"].transport = {"type":"amd","amdNamespace":"amber_core"};
 
-$core.addClass('AbstractDagVisitor', $globals.Object, [], 'Kernel-Dag');
+$core.addClass("AbstractDagVisitor", $globals.Object, [], "Kernel-Dag");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.AbstractDagVisitor.comment="I am base class of `DagNode` visitor.\x0a\x0aConcrete classes should implement `visitDagNode:`,\x0athey can reuse possible variants of implementation\x0aoffered directly: `visitDagNodeVariantSimple:`\x0aand `visitDagNodeVariantRedux:`.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "value:",
-protocol: 'evaluating',
+protocol: "evaluating",
 fn: function (anObject){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -36,7 +36,7 @@ $globals.AbstractDagVisitor);
 $core.addMethod(
 $core.method({
 selector: "visit:",
-protocol: 'visiting',
+protocol: "visiting",
 fn: function (aNode){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -59,7 +59,7 @@ $globals.AbstractDagVisitor);
 $core.addMethod(
 $core.method({
 selector: "visitAll:",
-protocol: 'visiting',
+protocol: "visiting",
 fn: function (aCollection){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -90,7 +90,7 @@ $globals.AbstractDagVisitor);
 $core.addMethod(
 $core.method({
 selector: "visitAllChildren:",
-protocol: 'visiting',
+protocol: "visiting",
 fn: function (aDagNode){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -113,7 +113,7 @@ $globals.AbstractDagVisitor);
 $core.addMethod(
 $core.method({
 selector: "visitDagNode:",
-protocol: 'visiting',
+protocol: "visiting",
 fn: function (aNode){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -137,7 +137,7 @@ $globals.AbstractDagVisitor);
 $core.addMethod(
 $core.method({
 selector: "visitDagNodeVariantRedux:",
-protocol: 'visiting',
+protocol: "visiting",
 fn: function (aNode){
 var self=this;
 var newChildren,oldChildren;
@@ -197,7 +197,7 @@ $globals.AbstractDagVisitor);
 $core.addMethod(
 $core.method({
 selector: "visitDagNodeVariantSimple:",
-protocol: 'visiting',
+protocol: "visiting",
 fn: function (aNode){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -220,14 +220,14 @@ $globals.AbstractDagVisitor);
 
 
 
-$core.addClass('PathDagVisitor', $globals.AbstractDagVisitor, ['path'], 'Kernel-Dag');
+$core.addClass("PathDagVisitor", $globals.AbstractDagVisitor, ["path"], "Kernel-Dag");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.PathDagVisitor.comment="I am base class of `DagNode` visitor.\x0a\x0aI hold the path of ancestors up to actual node\x0ain `self path`.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "initialize",
-protocol: 'initialization',
+protocol: "initialization",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -259,7 +259,7 @@ $globals.PathDagVisitor);
 $core.addMethod(
 $core.method({
 selector: "path",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@path"];
@@ -277,7 +277,7 @@ $globals.PathDagVisitor);
 $core.addMethod(
 $core.method({
 selector: "visit:",
-protocol: 'visiting',
+protocol: "visiting",
 fn: function (aNode){
 var self=this;
 var oldPath,result;
@@ -326,7 +326,7 @@ $globals.PathDagVisitor);
 $core.addMethod(
 $core.method({
 selector: "visitDagNodeVariantRedux:",
-protocol: 'visiting',
+protocol: "visiting",
 fn: function (aNode){
 var self=this;
 var newNode;
@@ -362,14 +362,14 @@ $globals.PathDagVisitor);
 
 
 
-$core.addClass('DagNode', $globals.Object, [], 'Kernel-Dag');
+$core.addClass("DagNode", $globals.Object, [], "Kernel-Dag");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.DagNode.comment="I am the abstract root class of any directed acyclic graph.\x0a\x0aConcrete classes should implement `dagChildren` and `dagChildren:`\x0ato get / set direct successor nodes (aka child nodes / subnodes).";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "acceptDagVisitor:",
-protocol: 'visiting',
+protocol: "visiting",
 fn: function (aVisitor){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -392,7 +392,7 @@ $globals.DagNode);
 $core.addMethod(
 $core.method({
 selector: "allDagChildren",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 var allNodes;
@@ -431,7 +431,7 @@ $globals.DagNode);
 $core.addMethod(
 $core.method({
 selector: "dagChildren",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -455,7 +455,7 @@ $globals.DagNode);
 $core.addMethod(
 $core.method({
 selector: "dagChildren:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aCollection){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -479,7 +479,7 @@ $globals.DagNode);
 $core.addMethod(
 $core.method({
 selector: "isDagNode",
-protocol: 'testing',
+protocol: "testing",
 fn: function (){
 var self=this;
 return true;
@@ -496,14 +496,14 @@ $globals.DagNode);
 
 
 
-$core.addClass('DagParentNode', $globals.DagNode, ['nodes'], 'Kernel-Dag');
+$core.addClass("DagParentNode", $globals.DagNode, ["nodes"], "Kernel-Dag");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.DagParentNode.comment="I am `DagNode` that stores a collection of its children,\x0alazy initialized to empty array.\x0a\x0aI can `addDagChild:` to add a child.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "addDagChild:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aDagNode){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -527,7 +527,7 @@ $globals.DagParentNode);
 $core.addMethod(
 $core.method({
 selector: "dagChildren",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -557,7 +557,7 @@ $globals.DagParentNode);
 $core.addMethod(
 $core.method({
 selector: "dagChildren:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aCollection){
 var self=this;
 self["@nodes"]=aCollection;
@@ -575,14 +575,14 @@ $globals.DagParentNode);
 
 
 
-$core.addClass('DagSink', $globals.DagNode, ['nodes'], 'Kernel-Dag');
+$core.addClass("DagSink", $globals.DagNode, ["nodes"], "Kernel-Dag");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.DagSink.comment="I am `DagNode` with no direct successors.\x0a\x0aSending `dagChildren:` with empty collection is legal.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "dagChildren",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return [];
@@ -600,7 +600,7 @@ $globals.DagSink);
 $core.addMethod(
 $core.method({
 selector: "dagChildren:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aCollection){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -633,7 +633,7 @@ $globals.DagSink);
 $core.addMethod(
 $core.method({
 selector: "isDagNode",
-protocol: '*Kernel-Dag',
+protocol: "*Kernel-Dag",
 fn: function (){
 var self=this;
 return false;

+ 38 - 38
src/Kernel-Exceptions.js

@@ -2,18 +2,18 @@ define(["amber/boot", "amber_core/Kernel-Objects"], function($boot){"use strict"
 if(!$boot.nilAsReceiver)$boot.nilAsReceiver=$boot.nil;
 var $core=$boot.api,nil=$boot.nilAsReceiver,$recv=$boot.asReceiver,$globals=$boot.globals;
 if(!$boot.nilAsClass)$boot.nilAsClass=$boot.dnu;
-$core.addPackage('Kernel-Exceptions');
+$core.addPackage("Kernel-Exceptions");
 $core.packages["Kernel-Exceptions"].innerEval = function (expr) { return eval(expr); };
 $core.packages["Kernel-Exceptions"].transport = {"type":"amd","amdNamespace":"amber_core"};
 
-$core.addClass('Error', $globals.Object, ['messageText'], 'Kernel-Exceptions');
+$core.addClass("Error", $globals.Object, ["messageText"], "Kernel-Exceptions");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.Error.comment="From the ANSI standard:\x0a\x0aThis protocol describes the behavior of instances of class `Error`.\x0aThese are used to represent error conditions that prevent the normal continuation of processing.\x0aActual error exceptions used by an application may be subclasses of this class.\x0aAs `Error` is explicitly specified to be subclassable, conforming implementations must implement its behavior in a non-fragile manner.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "beHandled",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -37,7 +37,7 @@ $globals.Error);
 $core.addMethod(
 $core.method({
 selector: "beUnhandled",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -61,7 +61,7 @@ $globals.Error);
 $core.addMethod(
 $core.method({
 selector: "context",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -85,7 +85,7 @@ $globals.Error);
 $core.addMethod(
 $core.method({
 selector: "initialize",
-protocol: 'initialization',
+protocol: "initialization",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -109,7 +109,7 @@ $globals.Error);
 $core.addMethod(
 $core.method({
 selector: "isSmalltalkError",
-protocol: 'testing',
+protocol: "testing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -133,7 +133,7 @@ $globals.Error);
 $core.addMethod(
 $core.method({
 selector: "jsStack",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -157,7 +157,7 @@ $globals.Error);
 $core.addMethod(
 $core.method({
 selector: "messageText",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@messageText"];
@@ -175,7 +175,7 @@ $globals.Error);
 $core.addMethod(
 $core.method({
 selector: "messageText:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aString){
 var self=this;
 self["@messageText"]=aString;
@@ -194,7 +194,7 @@ $globals.Error);
 $core.addMethod(
 $core.method({
 selector: "resignal",
-protocol: 'signaling',
+protocol: "signaling",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -221,7 +221,7 @@ $globals.Error);
 $core.addMethod(
 $core.method({
 selector: "signal",
-protocol: 'signaling',
+protocol: "signaling",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -250,7 +250,7 @@ $globals.Error);
 $core.addMethod(
 $core.method({
 selector: "signal:",
-protocol: 'signaling',
+protocol: "signaling",
 fn: function (aString){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -275,7 +275,7 @@ $globals.Error);
 $core.addMethod(
 $core.method({
 selector: "signalerContext",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -298,7 +298,7 @@ $globals.Error);
 $core.addMethod(
 $core.method({
 selector: "signalerContextFrom:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aContext){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -347,7 +347,7 @@ $globals.Error);
 $core.addMethod(
 $core.method({
 selector: "wasHandled",
-protocol: 'testing',
+protocol: "testing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -372,7 +372,7 @@ $globals.Error);
 $core.addMethod(
 $core.method({
 selector: "classTag",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return "exception";
@@ -390,7 +390,7 @@ $globals.Error.klass);
 $core.addMethod(
 $core.method({
 selector: "signal",
-protocol: 'instance creation',
+protocol: "instance creation",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -413,7 +413,7 @@ $globals.Error.klass);
 $core.addMethod(
 $core.method({
 selector: "signal:",
-protocol: 'instance creation',
+protocol: "instance creation",
 fn: function (aString){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -434,14 +434,14 @@ messageSends: ["signal:", "new"]
 $globals.Error.klass);
 
 
-$core.addClass('Halt', $globals.Error, [], 'Kernel-Exceptions');
+$core.addClass("Halt", $globals.Error, [], "Kernel-Exceptions");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.Halt.comment="I am provided to support `Object>>#halt`.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "messageText",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return "Halt encountered";
@@ -459,7 +459,7 @@ $globals.Halt);
 $core.addMethod(
 $core.method({
 selector: "signalerContextFrom:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aContext){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -518,14 +518,14 @@ $globals.Halt);
 
 
 
-$core.addClass('JavaScriptException', $globals.Error, ['exception'], 'Kernel-Exceptions');
+$core.addClass("JavaScriptException", $globals.Error, ["exception"], "Kernel-Exceptions");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.JavaScriptException.comment="A JavaScriptException is thrown when a non-Smalltalk exception occurs while in the Smalltalk stack.\x0aSee `boot.js` `inContext()` and `BlockClosure >> on:do:`";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "context:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aMethodContext){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -549,7 +549,7 @@ $globals.JavaScriptException);
 $core.addMethod(
 $core.method({
 selector: "exception",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@exception"];
@@ -567,7 +567,7 @@ $globals.JavaScriptException);
 $core.addMethod(
 $core.method({
 selector: "exception:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (anException){
 var self=this;
 self["@exception"]=anException;
@@ -586,7 +586,7 @@ $globals.JavaScriptException);
 $core.addMethod(
 $core.method({
 selector: "messageText",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -611,7 +611,7 @@ $globals.JavaScriptException);
 $core.addMethod(
 $core.method({
 selector: "on:",
-protocol: 'instance creation',
+protocol: "instance creation",
 fn: function (anException){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -637,7 +637,7 @@ $globals.JavaScriptException.klass);
 $core.addMethod(
 $core.method({
 selector: "on:context:",
-protocol: 'instance creation',
+protocol: "instance creation",
 fn: function (anException,aMethodContext){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -662,14 +662,14 @@ messageSends: ["exception:", "new", "context:", "yourself"]
 $globals.JavaScriptException.klass);
 
 
-$core.addClass('MessageNotUnderstood', $globals.Error, ['message', 'receiver'], 'Kernel-Exceptions');
+$core.addClass("MessageNotUnderstood", $globals.Error, ["message", "receiver"], "Kernel-Exceptions");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.MessageNotUnderstood.comment="This exception is provided to support `Object>>doesNotUnderstand:`.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "message",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@message"];
@@ -687,7 +687,7 @@ $globals.MessageNotUnderstood);
 $core.addMethod(
 $core.method({
 selector: "message:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aMessage){
 var self=this;
 self["@message"]=aMessage;
@@ -706,7 +706,7 @@ $globals.MessageNotUnderstood);
 $core.addMethod(
 $core.method({
 selector: "messageText",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -734,7 +734,7 @@ $globals.MessageNotUnderstood);
 $core.addMethod(
 $core.method({
 selector: "receiver",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@receiver"];
@@ -752,7 +752,7 @@ $globals.MessageNotUnderstood);
 $core.addMethod(
 $core.method({
 selector: "receiver:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (anObject){
 var self=this;
 self["@receiver"]=anObject;
@@ -770,14 +770,14 @@ $globals.MessageNotUnderstood);
 
 
 
-$core.addClass('NonBooleanReceiver', $globals.Error, ['object'], 'Kernel-Exceptions');
+$core.addClass("NonBooleanReceiver", $globals.Error, ["object"], "Kernel-Exceptions");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.NonBooleanReceiver.comment="NonBooleanReceiver exceptions may be thrown when executing inlined methods such as `#ifTrue:` with a non boolean receiver.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "object",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@object"];
@@ -795,7 +795,7 @@ $globals.NonBooleanReceiver);
 $core.addMethod(
 $core.method({
 selector: "object:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (anObject){
 var self=this;
 self["@object"]=anObject;

File diff suppressed because it is too large
+ 114 - 114
src/Kernel-Infrastructure.js


File diff suppressed because it is too large
+ 113 - 113
src/Kernel-Methods.js


File diff suppressed because it is too large
+ 113 - 113
src/Kernel-Objects.js


+ 24 - 24
src/Kernel-Promises.js

@@ -2,18 +2,18 @@ define(["amber/boot", "amber_core/Kernel-Infrastructure", "amber_core/Kernel-Obj
 if(!$boot.nilAsReceiver)$boot.nilAsReceiver=$boot.nil;
 var $core=$boot.api,nil=$boot.nilAsReceiver,$recv=$boot.asReceiver,$globals=$boot.globals;
 if(!$boot.nilAsClass)$boot.nilAsClass=$boot.dnu;
-$core.addPackage('Kernel-Promises');
+$core.addPackage("Kernel-Promises");
 $core.packages["Kernel-Promises"].innerEval = function (expr) { return eval(expr); };
 $core.packages["Kernel-Promises"].transport = {"type":"amd","amdNamespace":"amber_core"};
 
-$core.addClass('Thenable', $globals.Object, [], 'Kernel-Promises');
+$core.addClass("Thenable", $globals.Object, [], "Kernel-Promises");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.Thenable.comment="I am the abstract base class for Promises.\x0a\x0aMy subclasses should wrap existing JS implementations.\x0a\x0aI contain methods that wrap Promises/A+ `.then` behaviour.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "catch:",
-protocol: 'promises',
+protocol: "promises",
 fn: function (aBlock){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -39,7 +39,7 @@ $globals.Thenable);
 $core.addMethod(
 $core.method({
 selector: "on:do:",
-protocol: 'promises',
+protocol: "promises",
 fn: function (aClass,aBlock){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -66,7 +66,7 @@ $globals.Thenable);
 $core.addMethod(
 $core.method({
 selector: "on:do:catch:",
-protocol: 'promises',
+protocol: "promises",
 fn: function (aClass,aBlock,anotherBlock){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -93,7 +93,7 @@ $globals.Thenable);
 $core.addMethod(
 $core.method({
 selector: "then:",
-protocol: 'promises',
+protocol: "promises",
 fn: function (aBlockOrArray){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -132,7 +132,7 @@ $globals.Thenable);
 $core.addMethod(
 $core.method({
 selector: "then:catch:",
-protocol: 'promises',
+protocol: "promises",
 fn: function (aBlockOrArray,anotherBlock){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -155,7 +155,7 @@ $globals.Thenable);
 $core.addMethod(
 $core.method({
 selector: "then:on:do:",
-protocol: 'promises',
+protocol: "promises",
 fn: function (aBlockOrArray,aClass,aBlock){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -178,7 +178,7 @@ $globals.Thenable);
 $core.addMethod(
 $core.method({
 selector: "then:on:do:catch:",
-protocol: 'promises',
+protocol: "promises",
 fn: function (aBlockOrArray,aClass,aBlock,anotherBlock){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -200,12 +200,12 @@ $globals.Thenable);
 
 
 
-$core.addClass('Promise', $globals.Thenable, [], 'Kernel-Promises');
+$core.addClass("Promise", $globals.Thenable, [], "Kernel-Promises");
 
 $core.addMethod(
 $core.method({
 selector: "all:",
-protocol: 'composites',
+protocol: "composites",
 fn: function (aCollection){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -229,7 +229,7 @@ $globals.Promise.klass);
 $core.addMethod(
 $core.method({
 selector: "any:",
-protocol: 'composites',
+protocol: "composites",
 fn: function (aCollection){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -253,7 +253,7 @@ $globals.Promise.klass);
 $core.addMethod(
 $core.method({
 selector: "forBlock:",
-protocol: 'instance creation',
+protocol: "instance creation",
 fn: function (aBlock){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -276,7 +276,7 @@ $globals.Promise.klass);
 $core.addMethod(
 $core.method({
 selector: "new",
-protocol: 'instance creation',
+protocol: "instance creation",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -300,7 +300,7 @@ $globals.Promise.klass);
 $core.addMethod(
 $core.method({
 selector: "new:",
-protocol: 'instance creation',
+protocol: "instance creation",
 fn: function (aBlock){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -327,7 +327,7 @@ $globals.Promise.klass);
 $core.addMethod(
 $core.method({
 selector: "signal:",
-protocol: 'instance creation',
+protocol: "instance creation",
 fn: function (anObject){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -351,7 +351,7 @@ $globals.Promise.klass);
 $core.addMethod(
 $core.method({
 selector: "value:",
-protocol: 'instance creation',
+protocol: "instance creation",
 fn: function (anObject){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -375,7 +375,7 @@ $globals.Promise.klass);
 $core.addMethod(
 $core.method({
 selector: "catch:",
-protocol: '*Kernel-Promises',
+protocol: "*Kernel-Promises",
 fn: function (aBlock){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -407,7 +407,7 @@ $globals.JSObjectProxy);
 $core.addMethod(
 $core.method({
 selector: "on:do:",
-protocol: '*Kernel-Promises',
+protocol: "*Kernel-Promises",
 fn: function (aClass,aBlock){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -439,7 +439,7 @@ $globals.JSObjectProxy);
 $core.addMethod(
 $core.method({
 selector: "on:do:catch:",
-protocol: '*Kernel-Promises',
+protocol: "*Kernel-Promises",
 fn: function (aClass,aBlock,anotherBlock){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -471,7 +471,7 @@ $globals.JSObjectProxy);
 $core.addMethod(
 $core.method({
 selector: "then:",
-protocol: '*Kernel-Promises',
+protocol: "*Kernel-Promises",
 fn: function (aBlockOrArray){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -503,7 +503,7 @@ $globals.JSObjectProxy);
 $core.addMethod(
 $core.method({
 selector: "then:catch:",
-protocol: '*Kernel-Promises',
+protocol: "*Kernel-Promises",
 fn: function (aBlockOrArray,anotherBlock){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -535,7 +535,7 @@ $globals.JSObjectProxy);
 $core.addMethod(
 $core.method({
 selector: "then:on:do:",
-protocol: '*Kernel-Promises',
+protocol: "*Kernel-Promises",
 fn: function (aBlockOrArray,aClass,aBlock){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -567,7 +567,7 @@ $globals.JSObjectProxy);
 $core.addMethod(
 $core.method({
 selector: "then:on:do:catch:",
-protocol: '*Kernel-Promises',
+protocol: "*Kernel-Promises",
 fn: function (aBlockOrArray,aClass,aBlock,anotherBlock){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);

File diff suppressed because it is too large
+ 116 - 116
src/Kernel-Tests.js


+ 15 - 15
src/Platform-Browser.js

@@ -2,18 +2,18 @@ define(["amber/boot", "amber_core/Kernel-Objects"], function($boot){"use strict"
 if(!$boot.nilAsReceiver)$boot.nilAsReceiver=$boot.nil;
 var $core=$boot.api,nil=$boot.nilAsReceiver,$recv=$boot.asReceiver,$globals=$boot.globals;
 if(!$boot.nilAsClass)$boot.nilAsClass=$boot.dnu;
-$core.addPackage('Platform-Browser');
+$core.addPackage("Platform-Browser");
 $core.packages["Platform-Browser"].innerEval = function (expr) { return eval(expr); };
 $core.packages["Platform-Browser"].transport = {"type":"amd","amdNamespace":"amber_core"};
 
-$core.addClass('BrowserPlatform', $globals.Object, [], 'Platform-Browser');
+$core.addClass("BrowserPlatform", $globals.Object, [], "Platform-Browser");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.BrowserPlatform.comment="I am `Platform` service implementation for browser.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "globals",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return window;
@@ -31,7 +31,7 @@ $globals.BrowserPlatform);
 $core.addMethod(
 $core.method({
 selector: "newXhr",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -61,7 +61,7 @@ $globals.BrowserPlatform);
 $core.addMethod(
 $core.method({
 selector: "initialize",
-protocol: 'testing',
+protocol: "testing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -89,7 +89,7 @@ $globals.BrowserPlatform.klass);
 $core.addMethod(
 $core.method({
 selector: "isFeasible",
-protocol: 'testing',
+protocol: "testing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -111,14 +111,14 @@ messageSends: []
 $globals.BrowserPlatform.klass);
 
 
-$core.addClass('BrowserTerminal', $globals.Object, [], 'Platform-Browser');
+$core.addClass("BrowserTerminal", $globals.Object, [], "Platform-Browser");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.BrowserTerminal.comment="I am `Terminal` service implementation for browser.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "alert:",
-protocol: 'actions',
+protocol: "actions",
 fn: function (aString){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -141,7 +141,7 @@ $globals.BrowserTerminal);
 $core.addMethod(
 $core.method({
 selector: "confirm:",
-protocol: 'actions',
+protocol: "actions",
 fn: function (aString){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -164,7 +164,7 @@ $globals.BrowserTerminal);
 $core.addMethod(
 $core.method({
 selector: "prompt:",
-protocol: 'actions',
+protocol: "actions",
 fn: function (aString){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -187,7 +187,7 @@ $globals.BrowserTerminal);
 $core.addMethod(
 $core.method({
 selector: "prompt:default:",
-protocol: 'actions',
+protocol: "actions",
 fn: function (aString,defaultString){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -211,7 +211,7 @@ $globals.BrowserTerminal);
 $core.addMethod(
 $core.method({
 selector: "initialize",
-protocol: 'testing',
+protocol: "testing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -239,7 +239,7 @@ $globals.BrowserTerminal.klass);
 $core.addMethod(
 $core.method({
 selector: "isFeasible",
-protocol: 'testing',
+protocol: "testing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -263,7 +263,7 @@ $globals.BrowserTerminal.klass);
 $core.addMethod(
 $core.method({
 selector: "postMessageTo:",
-protocol: '*Platform-Browser',
+protocol: "*Platform-Browser",
 fn: function (aFrame){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -286,7 +286,7 @@ $globals.Object);
 $core.addMethod(
 $core.method({
 selector: "postMessageTo:origin:",
-protocol: '*Platform-Browser',
+protocol: "*Platform-Browser",
 fn: function (aFrame,aString){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);

+ 4 - 4
src/Platform-DOM-Tests.js

@@ -2,15 +2,15 @@ define(["amber/boot", "amber_core/SUnit"], function($boot){"use strict";
 if(!$boot.nilAsReceiver)$boot.nilAsReceiver=$boot.nil;
 var $core=$boot.api,nil=$boot.nilAsReceiver,$recv=$boot.asReceiver,$globals=$boot.globals;
 if(!$boot.nilAsClass)$boot.nilAsClass=$boot.dnu;
-$core.addPackage('Platform-DOM-Tests');
+$core.addPackage("Platform-DOM-Tests");
 $core.packages["Platform-DOM-Tests"].innerEval = function (expr) { return eval(expr); };
 $core.packages["Platform-DOM-Tests"].transport = {"type":"amd","amdNamespace":"amber_core"};
 
-$core.addClass('PlatformDomTest', $globals.TestCase, ['fixtureDiv'], 'Platform-DOM-Tests');
+$core.addClass("PlatformDomTest", $globals.TestCase, ["fixtureDiv"], "Platform-DOM-Tests");
 $core.addMethod(
 $core.method({
 selector: "testEntityConversion",
-protocol: 'testing',
+protocol: "testing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -38,7 +38,7 @@ $globals.PlatformDomTest);
 $core.addMethod(
 $core.method({
 selector: "testTextContentDoesNotRunScript",
-protocol: 'testing',
+protocol: "testing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);

+ 10 - 10
src/Platform-DOM.js

@@ -2,16 +2,16 @@ define(["amber/boot", "amber_core/Kernel-Collections", "amber_core/Kernel-Infras
 if(!$boot.nilAsReceiver)$boot.nilAsReceiver=$boot.nil;
 var $core=$boot.api,nil=$boot.nilAsReceiver,$recv=$boot.asReceiver,$globals=$boot.globals;
 if(!$boot.nilAsClass)$boot.nilAsClass=$boot.dnu;
-$core.addPackage('Platform-DOM');
+$core.addPackage("Platform-DOM");
 $core.packages["Platform-DOM"].innerEval = function (expr) { return eval(expr); };
 $core.packages["Platform-DOM"].transport = {"type":"amd","amdNamespace":"amber_core"};
 
-$core.addClass('PlatformDom', $globals.Object, [], 'Platform-DOM');
+$core.addClass("PlatformDom", $globals.Object, [], "Platform-DOM");
 
 $core.addMethod(
 $core.method({
 selector: "isDomNode:",
-protocol: 'testing',
+protocol: "testing",
 fn: function (anObject){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -37,7 +37,7 @@ $globals.PlatformDom.klass);
 $core.addMethod(
 $core.method({
 selector: "isFeasible",
-protocol: 'testing',
+protocol: "testing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -72,7 +72,7 @@ $globals.PlatformDom.klass);
 $core.addMethod(
 $core.method({
 selector: "newCustomEvent:detail:",
-protocol: 'creation',
+protocol: "creation",
 fn: function (aString,anObject){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -96,7 +96,7 @@ $globals.PlatformDom.klass);
 $core.addMethod(
 $core.method({
 selector: "toArray:",
-protocol: 'converting',
+protocol: "converting",
 fn: function (aDomList){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -120,7 +120,7 @@ $globals.PlatformDom.klass);
 $core.addMethod(
 $core.method({
 selector: "asDomNode",
-protocol: '*Platform-DOM',
+protocol: "*Platform-DOM",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -143,7 +143,7 @@ $globals.CharacterArray);
 $core.addMethod(
 $core.method({
 selector: "asDomNode",
-protocol: '*Platform-DOM',
+protocol: "*Platform-DOM",
 fn: function (){
 var self=this;
 var fragment;
@@ -177,7 +177,7 @@ $globals.Collection);
 $core.addMethod(
 $core.method({
 selector: "asDomNode",
-protocol: '*Platform-DOM',
+protocol: "*Platform-DOM",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -215,7 +215,7 @@ $globals.JSObjectProxy);
 $core.addMethod(
 $core.method({
 selector: "htmlTextContent",
-protocol: '*Platform-DOM',
+protocol: "*Platform-DOM",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);

+ 6 - 6
src/Platform-Node.js

@@ -2,18 +2,18 @@ define(["amber/boot", "amber_core/Kernel-Objects"], function($boot){"use strict"
 if(!$boot.nilAsReceiver)$boot.nilAsReceiver=$boot.nil;
 var $core=$boot.api,nil=$boot.nilAsReceiver,$recv=$boot.asReceiver,$globals=$boot.globals;
 if(!$boot.nilAsClass)$boot.nilAsClass=$boot.dnu;
-$core.addPackage('Platform-Node');
+$core.addPackage("Platform-Node");
 $core.packages["Platform-Node"].innerEval = function (expr) { return eval(expr); };
 $core.packages["Platform-Node"].transport = {"type":"amd","amdNamespace":"amber_core"};
 
-$core.addClass('NodePlatform', $globals.Object, [], 'Platform-Node');
+$core.addClass("NodePlatform", $globals.Object, [], "Platform-Node");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.NodePlatform.comment="I am `Platform` service implementation for node-like environment.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "globals",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return global;
@@ -31,7 +31,7 @@ $globals.NodePlatform);
 $core.addMethod(
 $core.method({
 selector: "newXhr",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -61,7 +61,7 @@ $globals.NodePlatform);
 $core.addMethod(
 $core.method({
 selector: "initialize",
-protocol: 'testing',
+protocol: "testing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -89,7 +89,7 @@ $globals.NodePlatform.klass);
 $core.addMethod(
 $core.method({
 selector: "isFeasible",
-protocol: 'testing',
+protocol: "testing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);

+ 94 - 94
src/Platform-Services.js

@@ -2,18 +2,18 @@ define(["amber/boot", "amber_core/Kernel-Collections", "amber_core/Kernel-Infras
 if(!$boot.nilAsReceiver)$boot.nilAsReceiver=$boot.nil;
 var $core=$boot.api,nil=$boot.nilAsReceiver,$recv=$boot.asReceiver,$globals=$boot.globals;
 if(!$boot.nilAsClass)$boot.nilAsClass=$boot.dnu;
-$core.addPackage('Platform-Services');
+$core.addPackage("Platform-Services");
 $core.packages["Platform-Services"].innerEval = function (expr) { return eval(expr); };
 $core.packages["Platform-Services"].transport = {"type":"amd","amdNamespace":"amber_core"};
 
-$core.addClass('ConsoleErrorHandler', $globals.Object, [], 'Platform-Services');
+$core.addClass("ConsoleErrorHandler", $globals.Object, [], "Platform-Services");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.ConsoleErrorHandler.comment="I am manage Smalltalk errors, displaying the stack in the console.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "handleError:",
-protocol: 'error handling',
+protocol: "error handling",
 fn: function (anError){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -47,7 +47,7 @@ $globals.ConsoleErrorHandler);
 $core.addMethod(
 $core.method({
 selector: "log:",
-protocol: 'private',
+protocol: "private",
 fn: function (aString){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -71,7 +71,7 @@ $globals.ConsoleErrorHandler);
 $core.addMethod(
 $core.method({
 selector: "logContext:",
-protocol: 'private',
+protocol: "private",
 fn: function (aContext){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -105,7 +105,7 @@ $globals.ConsoleErrorHandler);
 $core.addMethod(
 $core.method({
 selector: "logError:",
-protocol: 'private',
+protocol: "private",
 fn: function (anError){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -129,7 +129,7 @@ $globals.ConsoleErrorHandler);
 $core.addMethod(
 $core.method({
 selector: "logErrorContext:",
-protocol: 'private',
+protocol: "private",
 fn: function (aContext){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -164,11 +164,11 @@ messageSends: ["ifNotNil:", "home", "logContext:"]
 $globals.ConsoleErrorHandler);
 
 
-$globals.ConsoleErrorHandler.klass.iVarNames = ['current'];
+$globals.ConsoleErrorHandler.klass.iVarNames = ["current"];
 $core.addMethod(
 $core.method({
 selector: "initialize",
-protocol: 'initialization',
+protocol: "initialization",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -190,14 +190,14 @@ messageSends: ["registerIfNone:", "new"]
 $globals.ConsoleErrorHandler.klass);
 
 
-$core.addClass('ConsoleTranscript', $globals.Object, ['textarea'], 'Platform-Services');
+$core.addClass("ConsoleTranscript", $globals.Object, ["textarea"], "Platform-Services");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.ConsoleTranscript.comment="I am a specific transcript emitting to the JavaScript console.\x0a\x0aIf no other transcript is registered, I am the default.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "clear",
-protocol: 'printing',
+protocol: "printing",
 fn: function (){
 var self=this;
 return self;
@@ -215,7 +215,7 @@ $globals.ConsoleTranscript);
 $core.addMethod(
 $core.method({
 selector: "cr",
-protocol: 'printing',
+protocol: "printing",
 fn: function (){
 var self=this;
 return self;
@@ -233,7 +233,7 @@ $globals.ConsoleTranscript);
 $core.addMethod(
 $core.method({
 selector: "open",
-protocol: 'actions',
+protocol: "actions",
 fn: function (){
 var self=this;
 return self;
@@ -251,7 +251,7 @@ $globals.ConsoleTranscript);
 $core.addMethod(
 $core.method({
 selector: "show:",
-protocol: 'printing',
+protocol: "printing",
 fn: function (anObject){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -276,7 +276,7 @@ $globals.ConsoleTranscript);
 $core.addMethod(
 $core.method({
 selector: "initialize",
-protocol: 'initialization',
+protocol: "initialization",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -298,14 +298,14 @@ messageSends: ["registerIfNone:", "new"]
 $globals.ConsoleTranscript.klass);
 
 
-$core.addClass('Environment', $globals.Object, [], 'Platform-Services');
+$core.addClass("Environment", $globals.Object, [], "Platform-Services");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.Environment.comment="I provide an unified entry point to manipulate Amber packages, classes and methods.\x0a\x0aTypical use cases include IDEs, remote access and restricting browsing.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "addInstVarNamed:to:",
-protocol: 'compiling',
+protocol: "compiling",
 fn: function (aString,aClass){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -339,7 +339,7 @@ $globals.Environment);
 $core.addMethod(
 $core.method({
 selector: "allSelectors",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -362,7 +362,7 @@ $globals.Environment);
 $core.addMethod(
 $core.method({
 selector: "availableClassNames",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -393,7 +393,7 @@ $globals.Environment);
 $core.addMethod(
 $core.method({
 selector: "availablePackageNames",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -424,7 +424,7 @@ $globals.Environment);
 $core.addMethod(
 $core.method({
 selector: "availableProtocolsFor:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aClass){
 var self=this;
 var protocols;
@@ -459,7 +459,7 @@ $globals.Environment);
 $core.addMethod(
 $core.method({
 selector: "classBuilder",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -482,7 +482,7 @@ $globals.Environment);
 $core.addMethod(
 $core.method({
 selector: "classNamed:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aString){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -511,7 +511,7 @@ $globals.Environment);
 $core.addMethod(
 $core.method({
 selector: "classes",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -534,7 +534,7 @@ $globals.Environment);
 $core.addMethod(
 $core.method({
 selector: "commitPackage:onSuccess:onError:",
-protocol: 'actions',
+protocol: "actions",
 fn: function (aPackage,aBlock,anotherBlock){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -558,7 +558,7 @@ $globals.Environment);
 $core.addMethod(
 $core.method({
 selector: "compileClassComment:for:",
-protocol: 'compiling',
+protocol: "compiling",
 fn: function (aString,aClass){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -582,7 +582,7 @@ $globals.Environment);
 $core.addMethod(
 $core.method({
 selector: "compileClassDefinition:",
-protocol: 'compiling',
+protocol: "compiling",
 fn: function (aString){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -622,7 +622,7 @@ $globals.Environment);
 $core.addMethod(
 $core.method({
 selector: "compileMethod:for:protocol:",
-protocol: 'compiling',
+protocol: "compiling",
 fn: function (sourceCode,class_,protocol){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -645,7 +645,7 @@ $globals.Environment);
 $core.addMethod(
 $core.method({
 selector: "copyClass:to:",
-protocol: 'actions',
+protocol: "actions",
 fn: function (aClass,aClassName){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -680,7 +680,7 @@ $globals.Environment);
 $core.addMethod(
 $core.method({
 selector: "doItReceiver",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -703,7 +703,7 @@ $globals.Environment);
 $core.addMethod(
 $core.method({
 selector: "evaluate:for:",
-protocol: 'evaluating',
+protocol: "evaluating",
 fn: function (aString,anObject){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -726,7 +726,7 @@ $globals.Environment);
 $core.addMethod(
 $core.method({
 selector: "evaluate:on:do:",
-protocol: 'error handling',
+protocol: "error handling",
 fn: function (aBlock,anErrorClass,exceptionBlock){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -764,7 +764,7 @@ $globals.Environment);
 $core.addMethod(
 $core.method({
 selector: "inspect:",
-protocol: 'actions',
+protocol: "actions",
 fn: function (anObject){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -788,7 +788,7 @@ $globals.Environment);
 $core.addMethod(
 $core.method({
 selector: "moveClass:toPackage:",
-protocol: 'actions',
+protocol: "actions",
 fn: function (aClass,aPackageName){
 var self=this;
 var package_;
@@ -825,7 +825,7 @@ $globals.Environment);
 $core.addMethod(
 $core.method({
 selector: "moveMethod:toClass:",
-protocol: 'actions',
+protocol: "actions",
 fn: function (aMethod,aClassName){
 var self=this;
 var destinationClass;
@@ -871,7 +871,7 @@ $globals.Environment);
 $core.addMethod(
 $core.method({
 selector: "moveMethod:toProtocol:",
-protocol: 'actions',
+protocol: "actions",
 fn: function (aMethod,aProtocol){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -895,7 +895,7 @@ $globals.Environment);
 $core.addMethod(
 $core.method({
 selector: "packages",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -918,7 +918,7 @@ $globals.Environment);
 $core.addMethod(
 $core.method({
 selector: "registerErrorHandler:",
-protocol: 'services',
+protocol: "services",
 fn: function (anErrorHandler){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -942,7 +942,7 @@ $globals.Environment);
 $core.addMethod(
 $core.method({
 selector: "registerFinder:",
-protocol: 'services',
+protocol: "services",
 fn: function (aFinder){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -966,7 +966,7 @@ $globals.Environment);
 $core.addMethod(
 $core.method({
 selector: "registerInspector:",
-protocol: 'services',
+protocol: "services",
 fn: function (anInspector){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -990,7 +990,7 @@ $globals.Environment);
 $core.addMethod(
 $core.method({
 selector: "registerProgressHandler:",
-protocol: 'services',
+protocol: "services",
 fn: function (aProgressHandler){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1014,7 +1014,7 @@ $globals.Environment);
 $core.addMethod(
 $core.method({
 selector: "registerTranscript:",
-protocol: 'services',
+protocol: "services",
 fn: function (aTranscript){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1038,7 +1038,7 @@ $globals.Environment);
 $core.addMethod(
 $core.method({
 selector: "removeClass:",
-protocol: 'actions',
+protocol: "actions",
 fn: function (aClass){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1062,7 +1062,7 @@ $globals.Environment);
 $core.addMethod(
 $core.method({
 selector: "removeMethod:",
-protocol: 'actions',
+protocol: "actions",
 fn: function (aMethod){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1086,7 +1086,7 @@ $globals.Environment);
 $core.addMethod(
 $core.method({
 selector: "removeProtocol:from:",
-protocol: 'actions',
+protocol: "actions",
 fn: function (aString,aClass){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1118,7 +1118,7 @@ $globals.Environment);
 $core.addMethod(
 $core.method({
 selector: "renameClass:to:",
-protocol: 'actions',
+protocol: "actions",
 fn: function (aClass,aClassName){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1153,7 +1153,7 @@ $globals.Environment);
 $core.addMethod(
 $core.method({
 selector: "renamePackage:to:",
-protocol: 'actions',
+protocol: "actions",
 fn: function (aPackageName,aNewPackageName){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1188,7 +1188,7 @@ $globals.Environment);
 $core.addMethod(
 $core.method({
 selector: "renameProtocol:to:in:",
-protocol: 'actions',
+protocol: "actions",
 fn: function (aString,anotherString,aClass){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1220,7 +1220,7 @@ $globals.Environment);
 $core.addMethod(
 $core.method({
 selector: "setClassCommentOf:to:",
-protocol: 'actions',
+protocol: "actions",
 fn: function (aClass,aString){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1244,7 +1244,7 @@ $globals.Environment);
 $core.addMethod(
 $core.method({
 selector: "systemAnnouncer",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1266,14 +1266,14 @@ $globals.Environment);
 
 
 
-$core.addClass('NullProgressHandler', $globals.Object, [], 'Platform-Services');
+$core.addClass("NullProgressHandler", $globals.Object, [], "Platform-Services");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.NullProgressHandler.comment="I am the default progress handler. I do not display any progress, and simply iterate over the collection.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "do:on:displaying:",
-protocol: 'progress handling',
+protocol: "progress handling",
 fn: function (aBlock,aCollection,aString){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1295,11 +1295,11 @@ messageSends: ["do:"]
 $globals.NullProgressHandler);
 
 
-$globals.NullProgressHandler.klass.iVarNames = ['current'];
+$globals.NullProgressHandler.klass.iVarNames = ["current"];
 $core.addMethod(
 $core.method({
 selector: "initialize",
-protocol: 'initialization',
+protocol: "initialization",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1321,16 +1321,16 @@ messageSends: ["registerIfNone:", "new"]
 $globals.NullProgressHandler.klass);
 
 
-$core.addClass('Service', $globals.Object, [], 'Platform-Services');
+$core.addClass("Service", $globals.Object, [], "Platform-Services");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.Service.comment="I implement the basic behavior for class registration to a service.\x0a\x0aSee the `Transcript` class for a concrete service.\x0a\x0a## API\x0a\x0aUse class-side methods `#register:` and `#registerIfNone:` to register classes to a specific service.";
 //>>excludeEnd("ide");
 
-$globals.Service.klass.iVarNames = ['current'];
+$globals.Service.klass.iVarNames = ["current"];
 $core.addMethod(
 $core.method({
 selector: "current",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@current"];
@@ -1348,7 +1348,7 @@ $globals.Service.klass);
 $core.addMethod(
 $core.method({
 selector: "new",
-protocol: 'instance creation',
+protocol: "instance creation",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1372,7 +1372,7 @@ $globals.Service.klass);
 $core.addMethod(
 $core.method({
 selector: "register:",
-protocol: 'registration',
+protocol: "registration",
 fn: function (anObject){
 var self=this;
 self["@current"]=anObject;
@@ -1391,7 +1391,7 @@ $globals.Service.klass);
 $core.addMethod(
 $core.method({
 selector: "registerIfNone:",
-protocol: 'registration',
+protocol: "registration",
 fn: function (anObject){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1419,7 +1419,7 @@ messageSends: ["ifNil:", "current", "register:"]
 $globals.Service.klass);
 
 
-$core.addClass('ErrorHandler', $globals.Service, [], 'Platform-Services');
+$core.addClass("ErrorHandler", $globals.Service, [], "Platform-Services");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.ErrorHandler.comment="I am the service used to handle Smalltalk errors.\x0aSee `boot.js` `handleError()` function.\x0a\x0aRegistered service instances must implement `#handleError:` to perform an action on the thrown exception.";
 //>>excludeEnd("ide");
@@ -1427,7 +1427,7 @@ $globals.ErrorHandler.comment="I am the service used to handle Smalltalk errors.
 $core.addMethod(
 $core.method({
 selector: "handleError:",
-protocol: 'error handling',
+protocol: "error handling",
 fn: function (anError){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1451,7 +1451,7 @@ $globals.ErrorHandler.klass);
 $core.addMethod(
 $core.method({
 selector: "handleUnhandledError:",
-protocol: 'error handling',
+protocol: "error handling",
 fn: function (anError){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1477,7 +1477,7 @@ messageSends: ["ifTrue:", "wasHandled", "handleError:", "current"]
 $globals.ErrorHandler.klass);
 
 
-$core.addClass('Finder', $globals.Service, [], 'Platform-Services');
+$core.addClass("Finder", $globals.Service, [], "Platform-Services");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.Finder.comment="I am the service responsible for finding classes/methods.\x0a__There is no default finder.__\x0a\x0a## API\x0a\x0aUse `#browse` on an object to find it.";
 //>>excludeEnd("ide");
@@ -1485,7 +1485,7 @@ $globals.Finder.comment="I am the service responsible for finding classes/method
 $core.addMethod(
 $core.method({
 selector: "findClass:",
-protocol: 'finding',
+protocol: "finding",
 fn: function (aClass){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1508,7 +1508,7 @@ $globals.Finder.klass);
 $core.addMethod(
 $core.method({
 selector: "findMethod:",
-protocol: 'finding',
+protocol: "finding",
 fn: function (aCompiledMethod){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1531,7 +1531,7 @@ $globals.Finder.klass);
 $core.addMethod(
 $core.method({
 selector: "findString:",
-protocol: 'finding',
+protocol: "finding",
 fn: function (aString){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1552,7 +1552,7 @@ messageSends: ["findString:", "current"]
 $globals.Finder.klass);
 
 
-$core.addClass('Inspector', $globals.Service, [], 'Platform-Services');
+$core.addClass("Inspector", $globals.Service, [], "Platform-Services");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.Inspector.comment="I am the service responsible for inspecting objects.\x0a\x0aThe default inspector object is the transcript.";
 //>>excludeEnd("ide");
@@ -1560,7 +1560,7 @@ $globals.Inspector.comment="I am the service responsible for inspecting objects.
 $core.addMethod(
 $core.method({
 selector: "inspect:",
-protocol: 'inspecting',
+protocol: "inspecting",
 fn: function (anObject){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1581,7 +1581,7 @@ messageSends: ["inspect:", "current"]
 $globals.Inspector.klass);
 
 
-$core.addClass('Platform', $globals.Service, [], 'Platform-Services');
+$core.addClass("Platform", $globals.Service, [], "Platform-Services");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.Platform.comment="I am bridge to JS environment.\x0a\x0a## API\x0a\x0a    Platform globals. \x22JS global object\x22\x0a    Platform newXHR \x22new XMLHttpRequest() or its shim\x22";
 //>>excludeEnd("ide");
@@ -1589,7 +1589,7 @@ $globals.Platform.comment="I am bridge to JS environment.\x0a\x0a## API\x0a\x0a
 $core.addMethod(
 $core.method({
 selector: "globals",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1612,7 +1612,7 @@ $globals.Platform.klass);
 $core.addMethod(
 $core.method({
 selector: "newXhr",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1633,7 +1633,7 @@ messageSends: ["newXhr", "current"]
 $globals.Platform.klass);
 
 
-$core.addClass('ProgressHandler', $globals.Service, [], 'Platform-Services');
+$core.addClass("ProgressHandler", $globals.Service, [], "Platform-Services");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.ProgressHandler.comment="I am used to manage progress in collection iterations, see `SequenceableCollection >> #do:displayingProgress:`.\x0a\x0aRegistered instances must implement `#do:on:displaying:`.\x0a\x0aThe default behavior is to simply iterate over the collection, using `NullProgressHandler`.";
 //>>excludeEnd("ide");
@@ -1641,7 +1641,7 @@ $globals.ProgressHandler.comment="I am used to manage progress in collection ite
 $core.addMethod(
 $core.method({
 selector: "do:on:displaying:",
-protocol: 'progress handling',
+protocol: "progress handling",
 fn: function (aBlock,aCollection,aString){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1663,7 +1663,7 @@ messageSends: ["do:on:displaying:", "current"]
 $globals.ProgressHandler.klass);
 
 
-$core.addClass('Terminal', $globals.Service, [], 'Platform-Services');
+$core.addClass("Terminal", $globals.Service, [], "Platform-Services");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.Terminal.comment="I am UI interface service.\x0a\x0a## API\x0a\x0a    Terminal alert: 'Hey, there is a problem'.\x0a    Terminal confirm: 'Affirmative?'.\x0a    Terminal prompt: 'Your name:'.";
 //>>excludeEnd("ide");
@@ -1671,7 +1671,7 @@ $globals.Terminal.comment="I am UI interface service.\x0a\x0a## API\x0a\x0a    T
 $core.addMethod(
 $core.method({
 selector: "alert:",
-protocol: 'dialogs',
+protocol: "dialogs",
 fn: function (aString){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1694,7 +1694,7 @@ $globals.Terminal.klass);
 $core.addMethod(
 $core.method({
 selector: "confirm:",
-protocol: 'dialogs',
+protocol: "dialogs",
 fn: function (aString){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1717,7 +1717,7 @@ $globals.Terminal.klass);
 $core.addMethod(
 $core.method({
 selector: "prompt:",
-protocol: 'dialogs',
+protocol: "dialogs",
 fn: function (aString){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1740,7 +1740,7 @@ $globals.Terminal.klass);
 $core.addMethod(
 $core.method({
 selector: "prompt:default:",
-protocol: 'dialogs',
+protocol: "dialogs",
 fn: function (aString,defaultString){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1761,7 +1761,7 @@ messageSends: ["prompt:default:", "current"]
 $globals.Terminal.klass);
 
 
-$core.addClass('Transcript', $globals.Service, [], 'Platform-Services');
+$core.addClass("Transcript", $globals.Service, [], "Platform-Services");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.Transcript.comment="I am a facade for Transcript actions.\x0a\x0aI delegate actions to the currently registered transcript.\x0a\x0a## API\x0a\x0a    Transcript \x0a        show: 'hello world';\x0a        cr;\x0a        show: anObject.";
 //>>excludeEnd("ide");
@@ -1769,7 +1769,7 @@ $globals.Transcript.comment="I am a facade for Transcript actions.\x0a\x0aI dele
 $core.addMethod(
 $core.method({
 selector: "clear",
-protocol: 'printing',
+protocol: "printing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1793,7 +1793,7 @@ $globals.Transcript.klass);
 $core.addMethod(
 $core.method({
 selector: "cr",
-protocol: 'printing',
+protocol: "printing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1817,7 +1817,7 @@ $globals.Transcript.klass);
 $core.addMethod(
 $core.method({
 selector: "inspect:",
-protocol: 'printing',
+protocol: "printing",
 fn: function (anObject){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1841,7 +1841,7 @@ $globals.Transcript.klass);
 $core.addMethod(
 $core.method({
 selector: "open",
-protocol: 'instance creation',
+protocol: "instance creation",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1865,7 +1865,7 @@ $globals.Transcript.klass);
 $core.addMethod(
 $core.method({
 selector: "show:",
-protocol: 'printing',
+protocol: "printing",
 fn: function (anObject){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1889,7 +1889,7 @@ $globals.Transcript.klass);
 $core.addMethod(
 $core.method({
 selector: "inspectOn:",
-protocol: '*Platform-Services',
+protocol: "*Platform-Services",
 fn: function (anInspector){
 var self=this;
 var variables;
@@ -1933,7 +1933,7 @@ $globals.AssociativeCollection);
 $core.addMethod(
 $core.method({
 selector: "inspectOn:",
-protocol: '*Platform-Services',
+protocol: "*Platform-Services",
 fn: function (anInspector){
 var self=this;
 var variables;
@@ -1973,7 +1973,7 @@ $globals.Collection);
 $core.addMethod(
 $core.method({
 selector: "inspectOn:",
-protocol: '*Platform-Services',
+protocol: "*Platform-Services",
 fn: function (anInspector){
 var self=this;
 var variables;
@@ -2029,7 +2029,7 @@ $globals.Date);
 $core.addMethod(
 $core.method({
 selector: "inspectOn:",
-protocol: '*Platform-Services',
+protocol: "*Platform-Services",
 fn: function (anInspector){
 var self=this;
 var variables;
@@ -2058,7 +2058,7 @@ $globals.JSObjectProxy);
 $core.addMethod(
 $core.method({
 selector: "inspectOn:",
-protocol: '*Platform-Services',
+protocol: "*Platform-Services",
 fn: function (anInspector){
 var self=this;
 var variables;
@@ -2114,7 +2114,7 @@ $globals.MethodContext);
 $core.addMethod(
 $core.method({
 selector: "inspectOn:",
-protocol: '*Platform-Services',
+protocol: "*Platform-Services",
 fn: function (anInspector){
 var self=this;
 var variables;
@@ -2154,7 +2154,7 @@ $globals.Object);
 $core.addMethod(
 $core.method({
 selector: "do:displayingProgress:",
-protocol: '*Platform-Services',
+protocol: "*Platform-Services",
 fn: function (aBlock,aString){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2178,7 +2178,7 @@ $globals.SequenceableCollection);
 $core.addMethod(
 $core.method({
 selector: "inspectOn:",
-protocol: '*Platform-Services',
+protocol: "*Platform-Services",
 fn: function (anInspector){
 var self=this;
 var variables,i;
@@ -2221,7 +2221,7 @@ $globals.Set);
 $core.addMethod(
 $core.method({
 selector: "inspectOn:",
-protocol: '*Platform-Services',
+protocol: "*Platform-Services",
 fn: function (anInspector){
 var self=this;
 var label;

+ 26 - 26
src/SUnit-Tests.js

@@ -2,18 +2,18 @@ define(["amber/boot", "amber_core/SUnit"], function($boot){"use strict";
 if(!$boot.nilAsReceiver)$boot.nilAsReceiver=$boot.nil;
 var $core=$boot.api,nil=$boot.nilAsReceiver,$recv=$boot.asReceiver,$globals=$boot.globals;
 if(!$boot.nilAsClass)$boot.nilAsClass=$boot.dnu;
-$core.addPackage('SUnit-Tests');
+$core.addPackage("SUnit-Tests");
 $core.packages["SUnit-Tests"].innerEval = function (expr) { return eval(expr); };
 $core.packages["SUnit-Tests"].transport = {"type":"amd","amdNamespace":"amber_core"};
 
-$core.addClass('ExampleSetTest', $globals.TestCase, ['empty', 'full'], 'SUnit-Tests');
+$core.addClass("ExampleSetTest", $globals.TestCase, ["empty", "full"], "SUnit-Tests");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.ExampleSetTest.comment="ExampleSetTest is taken from Pharo 1.4.\x0a\x0aTHe purpose of this class is to demonstrate a simple use case of the test framework.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "setUp",
-protocol: 'running',
+protocol: "running",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -38,7 +38,7 @@ $globals.ExampleSetTest);
 $core.addMethod(
 $core.method({
 selector: "testAdd",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -63,7 +63,7 @@ $globals.ExampleSetTest);
 $core.addMethod(
 $core.method({
 selector: "testGrow",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -88,7 +88,7 @@ $globals.ExampleSetTest);
 $core.addMethod(
 $core.method({
 selector: "testIllegal",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -132,7 +132,7 @@ $globals.ExampleSetTest);
 $core.addMethod(
 $core.method({
 selector: "testIncludes",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -165,7 +165,7 @@ $globals.ExampleSetTest);
 $core.addMethod(
 $core.method({
 selector: "testOccurrences",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -207,7 +207,7 @@ $globals.ExampleSetTest);
 $core.addMethod(
 $core.method({
 selector: "testRemove",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -237,11 +237,11 @@ $globals.ExampleSetTest);
 
 
 
-$core.addClass('SUnitAsyncTest', $globals.TestCase, ['flag'], 'SUnit-Tests');
+$core.addClass("SUnitAsyncTest", $globals.TestCase, ["flag"], "SUnit-Tests");
 $core.addMethod(
 $core.method({
 selector: "fakeError",
-protocol: 'helpers',
+protocol: "helpers",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -277,7 +277,7 @@ $globals.SUnitAsyncTest);
 $core.addMethod(
 $core.method({
 selector: "fakeErrorFailingInTearDown",
-protocol: 'helpers',
+protocol: "helpers",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -311,7 +311,7 @@ $globals.SUnitAsyncTest);
 $core.addMethod(
 $core.method({
 selector: "fakeFailure",
-protocol: 'helpers',
+protocol: "helpers",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -347,7 +347,7 @@ $globals.SUnitAsyncTest);
 $core.addMethod(
 $core.method({
 selector: "fakeMultipleTimeoutFailing",
-protocol: 'helpers',
+protocol: "helpers",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -400,7 +400,7 @@ $globals.SUnitAsyncTest);
 $core.addMethod(
 $core.method({
 selector: "fakeMultipleTimeoutPassing",
-protocol: 'helpers',
+protocol: "helpers",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -453,7 +453,7 @@ $globals.SUnitAsyncTest);
 $core.addMethod(
 $core.method({
 selector: "fakeTimeout",
-protocol: 'helpers',
+protocol: "helpers",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -486,7 +486,7 @@ $globals.SUnitAsyncTest);
 $core.addMethod(
 $core.method({
 selector: "selectorSetOf:",
-protocol: 'private',
+protocol: "private",
 fn: function (aCollection){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -517,7 +517,7 @@ $globals.SUnitAsyncTest);
 $core.addMethod(
 $core.method({
 selector: "setUp",
-protocol: 'running',
+protocol: "running",
 fn: function (){
 var self=this;
 self["@flag"]="ok";
@@ -536,7 +536,7 @@ $globals.SUnitAsyncTest);
 $core.addMethod(
 $core.method({
 selector: "tearDown",
-protocol: 'running',
+protocol: "running",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -560,7 +560,7 @@ $globals.SUnitAsyncTest);
 $core.addMethod(
 $core.method({
 selector: "testAsyncErrorsAndFailures",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 var suite,runner,result,assertBlock;
@@ -636,7 +636,7 @@ $globals.SUnitAsyncTest);
 $core.addMethod(
 $core.method({
 selector: "testAsyncNeedsTimeout",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -686,7 +686,7 @@ $globals.SUnitAsyncTest);
 $core.addMethod(
 $core.method({
 selector: "testFinishedNeedsTimeout",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -731,7 +731,7 @@ $globals.SUnitAsyncTest);
 $core.addMethod(
 $core.method({
 selector: "testIsAsyncReturnsCorrectValues",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -771,7 +771,7 @@ $globals.SUnitAsyncTest);
 $core.addMethod(
 $core.method({
 selector: "testPass",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -808,7 +808,7 @@ $globals.SUnitAsyncTest);
 $core.addMethod(
 $core.method({
 selector: "testTimeouts",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 var suite,runner,result,assertBlock;
@@ -880,7 +880,7 @@ $globals.SUnitAsyncTest);
 $core.addMethod(
 $core.method({
 selector: "testTwoAsyncPassesWithFinishedOnlyOneIsRun",
-protocol: 'tests',
+protocol: "tests",
 fn: function (){
 var self=this;
 var x;

+ 72 - 72
src/SUnit.js

@@ -2,18 +2,18 @@ define(["amber/boot", "amber_core/Kernel-Classes", "amber_core/Kernel-Exceptions
 if(!$boot.nilAsReceiver)$boot.nilAsReceiver=$boot.nil;
 var $core=$boot.api,nil=$boot.nilAsReceiver,$recv=$boot.asReceiver,$globals=$boot.globals;
 if(!$boot.nilAsClass)$boot.nilAsClass=$boot.dnu;
-$core.addPackage('SUnit');
+$core.addPackage("SUnit");
 $core.packages["SUnit"].innerEval = function (expr) { return eval(expr); };
 $core.packages["SUnit"].transport = {"type":"amd","amdNamespace":"amber_core"};
 
-$core.addClass('ResultAnnouncement', $globals.Object, ['result'], 'SUnit');
+$core.addClass("ResultAnnouncement", $globals.Object, ["result"], "SUnit");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.ResultAnnouncement.comment="I get signaled when a `TestCase` has been run.\x0a\x0aMy instances hold the result (instance of `TestResult`) of the test run.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "result",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@result"];
@@ -31,7 +31,7 @@ $globals.ResultAnnouncement);
 $core.addMethod(
 $core.method({
 selector: "result:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aTestResult){
 var self=this;
 self["@result"]=aTestResult;
@@ -49,14 +49,14 @@ $globals.ResultAnnouncement);
 
 
 
-$core.addClass('TestCase', $globals.Object, ['testSelector', 'asyncTimeout', 'context'], 'SUnit');
+$core.addClass("TestCase", $globals.Object, ["testSelector", "asyncTimeout", "context"], "SUnit");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.TestCase.comment="I am an implementation of the command pattern to run a test.\x0a\x0a## API\x0a\x0aMy instances are created with the class method `#selector:`,\x0apassing the symbol that names the method to be executed when the test case runs.\x0a\x0aWhen you discover a new fixture, subclass `TestCase` and create a `#test...` method for the first test.\x0aAs that method develops and more `#test...` methods are added, you will find yourself refactoring temps\x0ainto instance variables for the objects in the fixture and overriding `#setUp` to initialize these variables.\x0aAs required, override `#tearDown` to nil references, release objects and deallocate.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "assert:",
-protocol: 'testing',
+protocol: "testing",
 fn: function (aBoolean){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -80,7 +80,7 @@ $globals.TestCase);
 $core.addMethod(
 $core.method({
 selector: "assert:description:",
-protocol: 'testing',
+protocol: "testing",
 fn: function (aBoolean,aString){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -106,7 +106,7 @@ $globals.TestCase);
 $core.addMethod(
 $core.method({
 selector: "assert:equals:",
-protocol: 'testing',
+protocol: "testing",
 fn: function (actual,expected){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -144,7 +144,7 @@ $globals.TestCase);
 $core.addMethod(
 $core.method({
 selector: "async:",
-protocol: 'async',
+protocol: "async",
 fn: function (aBlock){
 var self=this;
 var c;
@@ -182,7 +182,7 @@ $globals.TestCase);
 $core.addMethod(
 $core.method({
 selector: "context:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aRunningTestContext){
 var self=this;
 self["@context"]=aRunningTestContext;
@@ -201,7 +201,7 @@ $globals.TestCase);
 $core.addMethod(
 $core.method({
 selector: "deny:",
-protocol: 'testing',
+protocol: "testing",
 fn: function (aBoolean){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -225,7 +225,7 @@ $globals.TestCase);
 $core.addMethod(
 $core.method({
 selector: "errorIfNotAsync:",
-protocol: 'error handling',
+protocol: "error handling",
 fn: function (aString){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -253,7 +253,7 @@ $globals.TestCase);
 $core.addMethod(
 $core.method({
 selector: "finished",
-protocol: 'async',
+protocol: "async",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -278,7 +278,7 @@ $globals.TestCase);
 $core.addMethod(
 $core.method({
 selector: "isAsync",
-protocol: 'testing',
+protocol: "testing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -301,7 +301,7 @@ $globals.TestCase);
 $core.addMethod(
 $core.method({
 selector: "performTest",
-protocol: 'running',
+protocol: "running",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -326,7 +326,7 @@ $globals.TestCase);
 $core.addMethod(
 $core.method({
 selector: "runCase",
-protocol: 'running',
+protocol: "running",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -350,7 +350,7 @@ $globals.TestCase);
 $core.addMethod(
 $core.method({
 selector: "selector",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@testSelector"];
@@ -368,7 +368,7 @@ $globals.TestCase);
 $core.addMethod(
 $core.method({
 selector: "setTestSelector:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aSelector){
 var self=this;
 self["@testSelector"]=aSelector;
@@ -387,7 +387,7 @@ $globals.TestCase);
 $core.addMethod(
 $core.method({
 selector: "setUp",
-protocol: 'running',
+protocol: "running",
 fn: function (){
 var self=this;
 return self;
@@ -405,7 +405,7 @@ $globals.TestCase);
 $core.addMethod(
 $core.method({
 selector: "should:",
-protocol: 'testing',
+protocol: "testing",
 fn: function (aBlock){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -429,7 +429,7 @@ $globals.TestCase);
 $core.addMethod(
 $core.method({
 selector: "should:raise:",
-protocol: 'testing',
+protocol: "testing",
 fn: function (aBlock,anExceptionClass){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -465,7 +465,7 @@ $globals.TestCase);
 $core.addMethod(
 $core.method({
 selector: "shouldnt:raise:",
-protocol: 'testing',
+protocol: "testing",
 fn: function (aBlock,anExceptionClass){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -501,7 +501,7 @@ $globals.TestCase);
 $core.addMethod(
 $core.method({
 selector: "signalFailure:",
-protocol: 'private',
+protocol: "private",
 fn: function (aString){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -528,7 +528,7 @@ $globals.TestCase);
 $core.addMethod(
 $core.method({
 selector: "tearDown",
-protocol: 'running',
+protocol: "running",
 fn: function (){
 var self=this;
 return self;
@@ -546,7 +546,7 @@ $globals.TestCase);
 $core.addMethod(
 $core.method({
 selector: "timeout:",
-protocol: 'async',
+protocol: "async",
 fn: function (aNumber){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -587,7 +587,7 @@ $globals.TestCase);
 $core.addMethod(
 $core.method({
 selector: "allTestSelectors",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 var selectors;
@@ -617,7 +617,7 @@ $globals.TestCase.klass);
 $core.addMethod(
 $core.method({
 selector: "buildSuite",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -648,7 +648,7 @@ $globals.TestCase.klass);
 $core.addMethod(
 $core.method({
 selector: "classTag",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return "test";
@@ -666,7 +666,7 @@ $globals.TestCase.klass);
 $core.addMethod(
 $core.method({
 selector: "isAbstract",
-protocol: 'testing',
+protocol: "testing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -689,7 +689,7 @@ $globals.TestCase.klass);
 $core.addMethod(
 $core.method({
 selector: "isTestClass",
-protocol: 'testing',
+protocol: "testing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -712,7 +712,7 @@ $globals.TestCase.klass);
 $core.addMethod(
 $core.method({
 selector: "lookupHierarchyRoot",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return $globals.TestCase;
@@ -730,7 +730,7 @@ $globals.TestCase.klass);
 $core.addMethod(
 $core.method({
 selector: "selector:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aSelector){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -756,7 +756,7 @@ $globals.TestCase.klass);
 $core.addMethod(
 $core.method({
 selector: "shouldInheritSelectors",
-protocol: 'testing',
+protocol: "testing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -779,7 +779,7 @@ $globals.TestCase.klass);
 $core.addMethod(
 $core.method({
 selector: "testSelectors",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -808,14 +808,14 @@ messageSends: ["select:", "keys", "methodDictionary", "match:"]
 $globals.TestCase.klass);
 
 
-$core.addClass('TestContext', $globals.Object, ['testCase'], 'SUnit');
+$core.addClass("TestContext", $globals.Object, ["testCase"], "SUnit");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.TestContext.comment="I govern running a particular test case.\x0a\x0aMy main added value is `#execute:` method which runs a block as a part of test case (restores context, nilling it afterwards, cleaning/calling `#tearDown` as appropriate for sync/async scenario).";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "execute:",
-protocol: 'running',
+protocol: "running",
 fn: function (aBlock){
 var self=this;
 var failed;
@@ -884,7 +884,7 @@ $globals.TestContext);
 $core.addMethod(
 $core.method({
 selector: "start",
-protocol: 'running',
+protocol: "running",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -917,7 +917,7 @@ $globals.TestContext);
 $core.addMethod(
 $core.method({
 selector: "testCase:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aTestCase){
 var self=this;
 self["@testCase"]=aTestCase;
@@ -937,7 +937,7 @@ $globals.TestContext);
 $core.addMethod(
 $core.method({
 selector: "testCase:",
-protocol: 'instance creation',
+protocol: "instance creation",
 fn: function (aTestCase){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -961,14 +961,14 @@ messageSends: ["testCase:", "new", "yourself"]
 $globals.TestContext.klass);
 
 
-$core.addClass('ReportingTestContext', $globals.TestContext, ['finished', 'result'], 'SUnit');
+$core.addClass("ReportingTestContext", $globals.TestContext, ["finished", "result"], "SUnit");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.ReportingTestContext.comment="I add `TestResult` reporting to `TestContext`.\x0a\x0aErrors are caught and save into a `TestResult`,\x0aWhen test case is finished (which can be later for async tests), a callback block is executed; this is used by a `TestSuiteRunner`.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "execute:",
-protocol: 'running',
+protocol: "running",
 fn: function (aBlock){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1028,7 +1028,7 @@ $globals.ReportingTestContext);
 $core.addMethod(
 $core.method({
 selector: "finished:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aBlock){
 var self=this;
 self["@finished"]=aBlock;
@@ -1047,7 +1047,7 @@ $globals.ReportingTestContext);
 $core.addMethod(
 $core.method({
 selector: "result:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aTestResult){
 var self=this;
 self["@result"]=aTestResult;
@@ -1066,7 +1066,7 @@ $globals.ReportingTestContext);
 $core.addMethod(
 $core.method({
 selector: "withErrorReporting:",
-protocol: 'private',
+protocol: "private",
 fn: function (aBlock){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1118,7 +1118,7 @@ $globals.ReportingTestContext);
 $core.addMethod(
 $core.method({
 selector: "testCase:result:finished:",
-protocol: 'instance creation',
+protocol: "instance creation",
 fn: function (aTestCase,aTestResult,aBlock){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1150,20 +1150,20 @@ messageSends: ["result:", "testCase:", "finished:", "yourself"]
 $globals.ReportingTestContext.klass);
 
 
-$core.addClass('TestFailure', $globals.Error, [], 'SUnit');
+$core.addClass("TestFailure", $globals.Error, [], "SUnit");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.TestFailure.comment="I am raised when the boolean parameter of an #`assert:` or `#deny:` call is the opposite of what the assertion claims.\x0a\x0aThe test framework distinguishes between failures and errors.\x0aA failure is an event whose possibiity is explicitly anticipated and checked for in an assertion,\x0awhereas an error is an unanticipated problem like a division by 0 or an index out of bounds.";
 //>>excludeEnd("ide");
 
 
-$core.addClass('TestResult', $globals.Object, ['timestamp', 'runs', 'errors', 'failures', 'total'], 'SUnit');
+$core.addClass("TestResult", $globals.Object, ["timestamp", "runs", "errors", "failures", "total"], "SUnit");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.TestResult.comment="I implement the collecting parameter pattern for running a bunch of tests.\x0a\x0aMy instances hold tests that have run, sorted into the result categories of passed, failures and errors.\x0a\x0a`TestResult` is an interesting object to subclass or substitute. `#runCase:` is the external protocol you need to reproduce";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "addError:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (anError){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1187,7 +1187,7 @@ $globals.TestResult);
 $core.addMethod(
 $core.method({
 selector: "addFailure:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aFailure){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1211,7 +1211,7 @@ $globals.TestResult);
 $core.addMethod(
 $core.method({
 selector: "errors",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@errors"];
@@ -1229,7 +1229,7 @@ $globals.TestResult);
 $core.addMethod(
 $core.method({
 selector: "failures",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@failures"];
@@ -1247,7 +1247,7 @@ $globals.TestResult);
 $core.addMethod(
 $core.method({
 selector: "increaseRuns",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1271,7 +1271,7 @@ $globals.TestResult);
 $core.addMethod(
 $core.method({
 selector: "initialize",
-protocol: 'initialization',
+protocol: "initialization",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1310,7 +1310,7 @@ $globals.TestResult);
 $core.addMethod(
 $core.method({
 selector: "nextRunDo:",
-protocol: 'running',
+protocol: "running",
 fn: function (aBlock){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1341,7 +1341,7 @@ $globals.TestResult);
 $core.addMethod(
 $core.method({
 selector: "runCase:",
-protocol: 'running',
+protocol: "running",
 fn: function (aTestCase){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1401,7 +1401,7 @@ $globals.TestResult);
 $core.addMethod(
 $core.method({
 selector: "runs",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@runs"];
@@ -1419,7 +1419,7 @@ $globals.TestResult);
 $core.addMethod(
 $core.method({
 selector: "status",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1464,7 +1464,7 @@ $globals.TestResult);
 $core.addMethod(
 $core.method({
 selector: "timestamp",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@timestamp"];
@@ -1482,7 +1482,7 @@ $globals.TestResult);
 $core.addMethod(
 $core.method({
 selector: "total",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@total"];
@@ -1500,7 +1500,7 @@ $globals.TestResult);
 $core.addMethod(
 $core.method({
 selector: "total:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aNumber){
 var self=this;
 self["@total"]=aNumber;
@@ -1518,14 +1518,14 @@ $globals.TestResult);
 
 
 
-$core.addClass('TestSuiteRunner', $globals.Object, ['suite', 'result', 'announcer', 'runNextTest'], 'SUnit');
+$core.addClass("TestSuiteRunner", $globals.Object, ["suite", "result", "announcer", "runNextTest"], "SUnit");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.TestSuiteRunner.comment="I am responsible for running a collection (`suite`) of tests.\x0a\x0a## API\x0a\x0aInstances should be created using the class-side `#on:` method, taking a collection of tests to run as parameter.\x0aTo run the test suite, use `#run`.";
 //>>excludeEnd("ide");
 $core.addMethod(
 $core.method({
 selector: "announcer",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@announcer"];
@@ -1543,7 +1543,7 @@ $globals.TestSuiteRunner);
 $core.addMethod(
 $core.method({
 selector: "contextOf:",
-protocol: 'private',
+protocol: "private",
 fn: function (anInteger){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1574,7 +1574,7 @@ $globals.TestSuiteRunner);
 $core.addMethod(
 $core.method({
 selector: "initialize",
-protocol: 'initialization',
+protocol: "initialization",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1626,7 +1626,7 @@ $globals.TestSuiteRunner);
 $core.addMethod(
 $core.method({
 selector: "result",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (){
 var self=this;
 return self["@result"];
@@ -1644,7 +1644,7 @@ $globals.TestSuiteRunner);
 $core.addMethod(
 $core.method({
 selector: "resume",
-protocol: 'actions',
+protocol: "actions",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1669,7 +1669,7 @@ $globals.TestSuiteRunner);
 $core.addMethod(
 $core.method({
 selector: "run",
-protocol: 'actions',
+protocol: "actions",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1694,7 +1694,7 @@ $globals.TestSuiteRunner);
 $core.addMethod(
 $core.method({
 selector: "suite:",
-protocol: 'accessing',
+protocol: "accessing",
 fn: function (aCollection){
 var self=this;
 self["@suite"]=aCollection;
@@ -1714,7 +1714,7 @@ $globals.TestSuiteRunner);
 $core.addMethod(
 $core.method({
 selector: "new",
-protocol: 'instance creation',
+protocol: "instance creation",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1738,7 +1738,7 @@ $globals.TestSuiteRunner.klass);
 $core.addMethod(
 $core.method({
 selector: "on:",
-protocol: 'instance creation',
+protocol: "instance creation",
 fn: function (aCollection){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1770,7 +1770,7 @@ $globals.TestSuiteRunner.klass);
 $core.addMethod(
 $core.method({
 selector: "isTestClass",
-protocol: '*SUnit',
+protocol: "*SUnit",
 fn: function (){
 var self=this;
 return false;
@@ -1788,7 +1788,7 @@ $globals.BehaviorBody);
 $core.addMethod(
 $core.method({
 selector: "isTestPackage",
-protocol: '*SUnit',
+protocol: "*SUnit",
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);

Some files were not shown because too many files changed in this diff