minigrace
Version:
A compiler for the Grace programming language
619 lines (618 loc) • 31.3 kB
JavaScript
let gracecode_animation_sourceFile = "/Users/black/Development/mg/gracelang/minigrace/modules/animation.grace";
let gracecode_animation_sha256 = "8f5243765125bf9f0fda61b541a0c1382d2d761d8d885e0184896d6cf0353620";
let gracecode_animation_minigraceRevision = "b57591d29fc5ee5270d114920bf671367b8c3ecb";
let gracecode_animation_minigraceGeneration = "5171";
if (typeof gctCache !== "undefined")
gctCache["animation"] = "dialect:\n standard\nfreshScopes:\nmethodTypes:$100:\n for\u27e6T\u27e7(range':Collection\u27e6T\u27e7)pausing(pauseTime:Number)do(block:Procedure1\u27e6T\u27e7) \u2192 Done\n for\u27e6T\u27e7(range':Collection\u27e6T\u27e7)pausing(pauseTime:Number)do(block:Procedure1\u27e6T\u27e7)finally(endBlock:Procedure0) \u2192 Done\n while(condition:Predicate0)pauseVarying(timeBlock:NumberBlock)do(block:Procedure0) \u2192 Done\n while(condition:Predicate0)pausing(pauseTime:Number)do(block:Procedure0) \u2192 Done\n while(condition:Predicate0)pausing(pauseTime:Number)do(block:Procedure0)finally(endBlock:Procedure0) \u2192 Done\nmodules:\n standard\n timer\npath:\n /Users/black/Development/mg/gracelang/minigrace/objectdraw/animation.grace\nscope:$100:\n Animator type\n NumberBlock type\n asDebugString String (go) $scope_string\n asString String (go) $scope_string\n basicAsString String (go) $scope_string\n for(1)pausing(1)do(1) Done (mth) $scope_done\n for(1)pausing(1)do(1)finally(1) Done (mth) $scope_done\n isMe(1) Boolean (go) $scope_boolean\n myIdentityHash Number (go) $scope_number\n while(1)pauseVarying(1)do(1) Done (mth) $scope_done\n while(1)pausing(1)do(1) Done (mth) $scope_done\n while(1)pausing(1)do(1)finally(1) Done (mth) $scope_done\nself:\n $100\ntypedec:$100.Animator:\n type Animator = interface {\n while(condition:Predicate0)pausing(pauseTime:Number)do(block:Procedure0) \u2192 Done\n while(condition:Predicate0)pausing(pauseTime:Number)do(block:Procedure0)finally(endBlock:Procedure0) \u2192 Done\n while(condition:Predicate0)pauseVarying(timeBlock:NumberBlock)do(block:Procedure0) \u2192 Done\n for\u27e6T\u27e7(range':Collection\u27e6T\u27e7)pausing(pauseTime:Number)do(block:Procedure1\u27e6T\u27e7) \u2192 Done\n for\u27e6T\u27e7(range':Collection\u27e6T\u27e7)pausing(pauseTime:Number)do(block:Procedure1\u27e6T\u27e7)finally(endBlock:Procedure0) \u2192 Done}\ntypedec:$100.NumberBlock:\n type NumberBlock = Function0\u27e6Number\u27e7\ntypes:\n $100.Animator\n $100.NumberBlock\n";
if (typeof originalSourceLines !== "undefined") {
originalSourceLines["animation"] = [
"dialect \"standard\"",
"import \"timer\" as timer",
"",
"type NumberBlock = Function0⟦Number⟧",
"",
"type Animator = interface {",
" // type of object that can simulate parallel animations",
"",
" while (condition:Predicate0) pausing (pauseTime:Number)",
" do (block:Procedure0) -> Done",
" // Repeatedly execute block while condition is true",
"",
" while (condition:Predicate0) pausing (pauseTime:Number)",
" do (block:Procedure0) finally (endBlock:Procedure0) -> Done",
" // Repeatedly execute block while condition is true, pausing pauseTime",
" // between iterations. When condition fails, execute endBlock.",
"",
" while (condition:Predicate0) pauseVarying (timeBlock:NumberBlock)",
" do (block:Procedure0) -> Done",
" // Repeatedly execute block while condition is true, pausing a variable",
" // amount of time (obtained by evaluating timeBlock) between iterations.",
" // When condition fails, execute endBlock.",
"",
" for⟦T⟧ (range':Collection⟦T⟧) pausing (pauseTime:Number) do (block:Procedure1⟦T⟧) -> Done",
" // Repeatedly execute block while condition is true",
"",
" for⟦T⟧ (range':Collection⟦T⟧) pausing (pauseTime:Number) do (block:Procedure1⟦T⟧)",
" finally (endBlock:Procedure0) -> Done",
" // Repeatedly execute block while condition is true",
" // when condition fails, execute endBlock.",
"",
"}",
"",
"method while(condition:Predicate0) pausing (pauseTime:Number)",
" do (block:Procedure0) -> Done {",
" // Repeatedly execute block while condition is true",
"",
" def id:Number = timer.every (pauseTime) do {",
" if (condition.apply) then {",
" block.apply",
" } else {",
" timer.stop (id)",
" }",
" }",
"}",
"",
"method while (condition:Predicate0) pausing (pauseTime:Number)",
" do (block:Procedure0) finally (endBlock:Procedure0) -> Done {",
" // Repeatedly execute block while condition is true, pausing by pauseTime",
" // between iterations. When condition fails, execute endBlock.",
"",
" def id:Number = timer.every(pauseTime)do{",
" if (condition.apply) then {",
" block.apply",
" } else {",
" timer.stop(id)",
" endBlock.apply",
" }",
" }",
"}",
"",
"method while(condition:Predicate0) pauseVarying (timeBlock:NumberBlock)",
" do (block:Procedure0) -> Done {",
" // Repeatedly execute block while condition is true, pausing by",
" // timeBlock.apply between iterations.",
"",
" if (condition.apply) then {",
" block.apply",
" timer.after(timeBlock.apply) do {",
" while (condition) pauseVarying (timeBlock) do (block)",
" }",
" }",
"}",
"",
"method for⟦T⟧(range':Collection⟦T⟧) pausing (pauseTime:Number)",
" do (block:Procedure1⟦T⟧) -> Done {",
" // Repeatedly execute block for each value in range', pausing pauseTime between",
" // iterations; block should take an element of range' as an argument.",
"",
" def it = range'.iterator",
" while {it.hasNext} pausing (pauseTime) do { block.apply(it.next) }",
"}",
"",
"method for⟦T⟧ (range':Collection⟦T⟧) pausing (pauseTime:Number)",
" do (block:Procedure1⟦T⟧) finally(endBlock:Procedure0) -> Done {",
" // Repeatedly execute block for each value in range', pausing pauseTime between",
" // iterations; block should take a T object as a parameter. When range'",
" // is exhausted, execute endBlock.",
"",
" def it:Iterator⟦T⟧ = range'.iterator",
" while {it.hasNext} pausing (pauseTime) do { block.apply(it.next) }",
" finally(endBlock)",
"}" ];
}
function gracecode_animation() {
importedModules["animation"] = this;
const var_$module = this;
this.definitionModule = "animation";
this.definitionLine = 1;
setLineNumber(1); // compilenode dialect
// Dialect "standard"
const var_$dialect = do_import("standard", gracecode_standard);
this.outer = var_$dialect;
setLineNumber(2); // compilenode import
// Import of "timer" as timer
if (typeof gracecode_timer == "undefined")
throw new GraceExceptionPacket(EnvironmentExceptionObject,
new GraceString("could not find module timer"));
var var_timer = do_import("timer", gracecode_timer);
var func0 = function(argcv) { // accessor method timer, line 2
const numArgs = arguments.length - 1;
if (numArgs > 0) raiseTypeArgError("timer", 0, numArgs - 0);
return var_timer;
}; // end of method timer
this.methods["timer"] = func0;
func0.methodName = "timer";
func0.paramCounts = [0];
func0.paramNames = [];
func0.definitionLine = 2;
func0.definitionModule = "animation";
func0.debug = "import";
func0.confidential = true;
this.closureKeys = this.closureKeys || [];
this.closureKeys.push("outer_animation_1");
this.outer_animation_1 = var_$dialect;
setLineNumber(4); // compilenode typedec
// Type decl NumberBlock
var func2 = function(argcv) { // method NumberBlock, line 1
var returnTarget = invocationCount;
invocationCount++;
setLineNumber(4); // compilenode member
var call3 = selfRequest(var_$dialect, "Function0", [0]);
return call3;
}; // end of method NumberBlock
function memofunc2(argcv) {
if (! this.data["memo$NumberBlock"]) // parameterless memo function
this.data["memo$NumberBlock"] = func2.call(this, argcv);
return this.data["memo$NumberBlock"];
};
this.methods["NumberBlock"] = memofunc2;
memofunc2.methodName = "NumberBlock";
memofunc2.paramCounts = [0];
memofunc2.paramNames = [];
memofunc2.definitionLine = 1;
memofunc2.definitionModule = "animation";
func2.methodName = "NumberBlock";
func2.paramCounts = [0];
func2.paramNames = [];
func2.definitionLine = 1;
func2.definitionModule = "animation";
setLineNumber(6); // compilenode typedec
// Type decl Animator
var func5 = function(argcv) { // method Animator, line 1
var returnTarget = invocationCount;
invocationCount++;
setLineNumber(6); // compilenode interfaceliteral
// interface literal
var iface6 = new GraceInterface("Animator");
sig7 = () => {
setLineNumber(9); // compilenode member
var call8 = selfRequest(var_$dialect, "Predicate0", [0]);
var call9 = selfRequest(var_$dialect, "Number", [0]);
setLineNumber(10); // compilenode member
var call10 = selfRequest(var_$dialect, "Procedure0", [0]);
var call11 = selfRequest(var_$dialect, "Done", [0]);
return new GraceSignature("while(1)pausing(1)do(1)", ["condition", "pauseTime", "block"], [], [call8, call9, call10], call11);
}
sig12 = () => {
setLineNumber(13); // compilenode member
var call13 = selfRequest(var_$dialect, "Predicate0", [0]);
var call14 = selfRequest(var_$dialect, "Number", [0]);
setLineNumber(14); // compilenode member
var call15 = selfRequest(var_$dialect, "Procedure0", [0]);
var call16 = selfRequest(var_$dialect, "Procedure0", [0]);
var call17 = selfRequest(var_$dialect, "Done", [0]);
return new GraceSignature("while(1)pausing(1)do(1)finally(1)", ["condition", "pauseTime", "block", "endBlock"], [], [call13, call14, call15, call16], call17);
}
sig18 = () => {
setLineNumber(18); // compilenode member
var call19 = selfRequest(var_$dialect, "Predicate0", [0]);
var call20 = selfRequest(var_$module, "NumberBlock", [0]);
setLineNumber(19); // compilenode member
var call21 = selfRequest(var_$dialect, "Procedure0", [0]);
var call22 = selfRequest(var_$dialect, "Done", [0]);
return new GraceSignature("while(1)pauseVarying(1)do(1)", ["condition", "timeBlock", "block"], [], [call19, call20, call21], call22);
}
sig23 = (var_T) => {
setLineNumber(24); // compilenode member
var call24 = selfRequest(var_$dialect, "Collection", [0]);
var call25 = selfRequest(var_$dialect, "Number", [0]);
var call26 = selfRequest(var_$dialect, "Procedure1", [0]);
var call27 = selfRequest(var_$dialect, "Done", [0]);
return new GraceSignature("for(1)pausing(1)do(1)", ["range'", "pauseTime", "block"], ["T"], [call24, call25, call26], call27);
}
sig28 = (var_T) => {
setLineNumber(27); // compilenode member
var call29 = selfRequest(var_$dialect, "Collection", [0]);
var call30 = selfRequest(var_$dialect, "Number", [0]);
var call31 = selfRequest(var_$dialect, "Procedure1", [0]);
setLineNumber(28); // compilenode member
var call32 = selfRequest(var_$dialect, "Procedure0", [0]);
var call33 = selfRequest(var_$dialect, "Done", [0]);
return new GraceSignature("for(1)pausing(1)do(1)finally(1)", ["range'", "pauseTime", "block", "endBlock"], ["T"], [call29, call30, call31, call32], call33);
}
iface6.typeMethods = {
"while(1)pausing(1)do(1)": sig7
, "while(1)pausing(1)do(1)finally(1)": sig12
, "while(1)pauseVarying(1)do(1)": sig18
, "for(1)pausing(1)do(1)": sig23
, "for(1)pausing(1)do(1)finally(1)": sig28
};
return iface6;
}; // end of method Animator
function memofunc5(argcv) {
if (! this.data["memo$Animator"]) // parameterless memo function
this.data["memo$Animator"] = func5.call(this, argcv);
return this.data["memo$Animator"];
};
this.methods["Animator"] = memofunc5;
memofunc5.methodName = "Animator";
memofunc5.paramCounts = [0];
memofunc5.paramNames = [];
memofunc5.definitionLine = 1;
memofunc5.definitionModule = "animation";
func5.methodName = "Animator";
func5.paramCounts = [0];
func5.paramNames = [];
func5.definitionLine = 1;
func5.definitionModule = "animation";
var func34 = function(argcv, var_condition, var_pauseTime, var_block) { // method while(_)pausing(_)do(_), line 34
var returnTarget = invocationCount;
invocationCount++;
const numArgs = arguments.length - 1;
if ((numArgs > 3) && (numArgs !== 3)) {
raiseTypeArgError("while(_)pausing(_)do(_)", 0, numArgs - 3);
}
setLineNumber(34); // compilenode member
var call35 = selfRequest(var_$dialect, "Predicate0", [0]);
assertTypeOrMsg(var_condition, call35, "argument 1 in request of `while(_)pausing(_)do(_)`", "Predicate0");
var call36 = selfRequest(var_$dialect, "Number", [0]);
assertTypeOrMsg(var_pauseTime, call36, "argument 2 in request of `while(_)pausing(_)do(_)`", "Number");
setLineNumber(35); // compilenode member
var call37 = selfRequest(var_$dialect, "Procedure0", [0]);
assertTypeOrMsg(var_block, call37, "argument 3 in request of `while(_)pausing(_)do(_)`", "Procedure0");
setLineNumber(38); // compilenode block
var block39 = new GraceBlock(this, 38, 0);
block39.guard = jsTrue;
block39.real = function block39() {
var if40 = GraceDone;
setLineNumber(39); // compilenode member
// call case 4: other requests
var call41 = request(var_condition, "apply", [0]);
if (Grace_isTrue(call41)) {
setLineNumber(40); // compilenode member
// call case 4: other requests
var call42 = request(var_block, "apply", [0]);
if40 = call42;
} else {
setLineNumber(42); // compilenode call
if (var_id === undefined) raiseUninitializedVariable("id");
// call case 4: other requests
var call43 = request(var_timer, "stop(1)", [1], var_id);
if40 = call43;
}
return if40;
};
let applyMeth39 = function apply (argcv) {
return this.real.apply(this.receiver);
};
applyMeth39.methodName = "apply";
applyMeth39.paramCounts = [0];
applyMeth39.paramNames = [];
applyMeth39.definitionLine = 38;
applyMeth39.definitionModule = "animation";
block39.methods["apply"] = applyMeth39;
// call case 4: other requests
var call38 = request(var_timer, "every(1)do(1)", [1, 1], var_pauseTime, block39);
var var_id = call38;
setLineNumber(38); // compilenode member
var call44 = selfRequest(var_$dialect, "Number", [0]);
assertTypeOrMsg(var_id, call44, "value of def id", "Number");
return GraceDone;
}; // end of method while(_)pausing(_)do(_)
setLineNumber(34); // compilenode member
var call45 = selfRequest(var_$dialect, "Predicate0", [0]);
var call46 = selfRequest(var_$dialect, "Number", [0]);
setLineNumber(35); // compilenode member
var call47 = selfRequest(var_$dialect, "Procedure0", [0]);
func34.paramTypes = [call45, call46, call47];
var call48 = selfRequest(var_$dialect, "Done", [0]);
func34.returnType = call48;
this.methods["while(1)pausing(1)do(1)"] = func34;
func34.methodName = "while(1)pausing(1)do(1)";
func34.paramCounts = [1, 1, 1];
func34.paramNames = ["condition", "pauseTime", "block"];
func34.definitionLine = 34;
func34.definitionModule = "animation";
var func49 = function(argcv, var_condition, var_pauseTime, var_block, var_endBlock) { // method while(_)pausing(_)do(_)finally(_), line 47
var returnTarget = invocationCount;
invocationCount++;
const numArgs = arguments.length - 1;
if ((numArgs > 4) && (numArgs !== 4)) {
raiseTypeArgError("while(_)pausing(_)do(_)finally(_)", 0, numArgs - 4);
}
setLineNumber(47); // compilenode member
var call50 = selfRequest(var_$dialect, "Predicate0", [0]);
assertTypeOrMsg(var_condition, call50, "argument 1 in request of `while(_)pausing(_)do(_)finally(_)`", "Predicate0");
var call51 = selfRequest(var_$dialect, "Number", [0]);
assertTypeOrMsg(var_pauseTime, call51, "argument 2 in request of `while(_)pausing(_)do(_)finally(_)`", "Number");
setLineNumber(48); // compilenode member
var call52 = selfRequest(var_$dialect, "Procedure0", [0]);
assertTypeOrMsg(var_block, call52, "argument 3 in request of `while(_)pausing(_)do(_)finally(_)`", "Procedure0");
var call53 = selfRequest(var_$dialect, "Procedure0", [0]);
assertTypeOrMsg(var_endBlock, call53, "argument 4 in request of `while(_)pausing(_)do(_)finally(_)`", "Procedure0");
setLineNumber(52); // compilenode block
var block55 = new GraceBlock(this, 52, 0);
block55.guard = jsTrue;
block55.real = function block55() {
var if56 = GraceDone;
setLineNumber(53); // compilenode member
// call case 4: other requests
var call57 = request(var_condition, "apply", [0]);
if (Grace_isTrue(call57)) {
setLineNumber(54); // compilenode member
// call case 4: other requests
var call58 = request(var_block, "apply", [0]);
if56 = call58;
} else {
setLineNumber(56); // compilenode call
if (var_id === undefined) raiseUninitializedVariable("id");
// call case 4: other requests
var call59 = request(var_timer, "stop(1)", [1], var_id);
setLineNumber(57); // compilenode member
// call case 4: other requests
var call60 = request(var_endBlock, "apply", [0]);
if56 = call60;
}
return if56;
};
let applyMeth55 = function apply (argcv) {
return this.real.apply(this.receiver);
};
applyMeth55.methodName = "apply";
applyMeth55.paramCounts = [0];
applyMeth55.paramNames = [];
applyMeth55.definitionLine = 52;
applyMeth55.definitionModule = "animation";
block55.methods["apply"] = applyMeth55;
// call case 4: other requests
var call54 = request(var_timer, "every(1)do(1)", [1, 1], var_pauseTime, block55);
var var_id = call54;
setLineNumber(52); // compilenode member
var call61 = selfRequest(var_$dialect, "Number", [0]);
assertTypeOrMsg(var_id, call61, "value of def id", "Number");
return GraceDone;
}; // end of method while(_)pausing(_)do(_)finally(_)
setLineNumber(47); // compilenode member
var call62 = selfRequest(var_$dialect, "Predicate0", [0]);
var call63 = selfRequest(var_$dialect, "Number", [0]);
setLineNumber(48); // compilenode member
var call64 = selfRequest(var_$dialect, "Procedure0", [0]);
var call65 = selfRequest(var_$dialect, "Procedure0", [0]);
func49.paramTypes = [call62, call63, call64, call65];
var call66 = selfRequest(var_$dialect, "Done", [0]);
func49.returnType = call66;
this.methods["while(1)pausing(1)do(1)finally(1)"] = func49;
func49.methodName = "while(1)pausing(1)do(1)finally(1)";
func49.paramCounts = [1, 1, 1, 1];
func49.paramNames = ["condition", "pauseTime", "block", "endBlock"];
func49.definitionLine = 47;
func49.definitionModule = "animation";
var func67 = function(argcv, var_condition, var_timeBlock, var_block) { // method while(_)pauseVarying(_)do(_), line 62
var returnTarget = invocationCount;
invocationCount++;
const numArgs = arguments.length - 1;
if ((numArgs > 3) && (numArgs !== 3)) {
raiseTypeArgError("while(_)pauseVarying(_)do(_)", 0, numArgs - 3);
}
setLineNumber(62); // compilenode member
var call68 = selfRequest(var_$dialect, "Predicate0", [0]);
assertTypeOrMsg(var_condition, call68, "argument 1 in request of `while(_)pauseVarying(_)do(_)`", "Predicate0");
var call69 = selfRequest(var_$module, "NumberBlock", [0]);
assertTypeOrMsg(var_timeBlock, call69, "argument 2 in request of `while(_)pauseVarying(_)do(_)`", "NumberBlock");
setLineNumber(63); // compilenode member
var call70 = selfRequest(var_$dialect, "Procedure0", [0]);
assertTypeOrMsg(var_block, call70, "argument 3 in request of `while(_)pauseVarying(_)do(_)`", "Procedure0");
var if71 = GraceDone;
setLineNumber(67); // compilenode member
// call case 4: other requests
var call72 = request(var_condition, "apply", [0]);
if (Grace_isTrue(call72)) {
setLineNumber(68); // compilenode member
// call case 4: other requests
var call73 = request(var_block, "apply", [0]);
setLineNumber(69); // compilenode member
// call case 4: other requests
var call75 = request(var_timeBlock, "apply", [0]);
var block76 = new GraceBlock(this, 69, 0);
block76.guard = jsTrue;
block76.real = function block76() {
setLineNumber(70); // compilenode call
var call77 = selfRequest(var_$module, "while(1)pauseVarying(1)do(1)", [1, 1, 1], var_condition, var_timeBlock, var_block);
return call77;
};
let applyMeth76 = function apply (argcv) {
return this.real.apply(this.receiver);
};
applyMeth76.methodName = "apply";
applyMeth76.paramCounts = [0];
applyMeth76.paramNames = [];
applyMeth76.definitionLine = 69;
applyMeth76.definitionModule = "animation";
block76.methods["apply"] = applyMeth76;
// call case 4: other requests
var call74 = request(var_timer, "after(1)do(1)", [1, 1], call75, block76);
if71 = call74;
}
return if71;
}; // end of method while(_)pauseVarying(_)do(_)
setLineNumber(62); // compilenode member
var call78 = selfRequest(var_$dialect, "Predicate0", [0]);
var call79 = selfRequest(var_$module, "NumberBlock", [0]);
setLineNumber(63); // compilenode member
var call80 = selfRequest(var_$dialect, "Procedure0", [0]);
func67.paramTypes = [call78, call79, call80];
var call81 = selfRequest(var_$dialect, "Done", [0]);
func67.returnType = call81;
this.methods["while(1)pauseVarying(1)do(1)"] = func67;
func67.methodName = "while(1)pauseVarying(1)do(1)";
func67.paramCounts = [1, 1, 1];
func67.paramNames = ["condition", "timeBlock", "block"];
func67.definitionLine = 62;
func67.definitionModule = "animation";
var func82 = function(argcv, var_range__39__, var_pauseTime, var_block, var_T) { // method for(_)pausing(_)do(_), line 75
var returnTarget = invocationCount;
invocationCount++;
if (! var_T) var_T = type_Unknown;
const numArgs = arguments.length - 1;
if ((numArgs > 3) && (numArgs !== 4)) {
raiseTypeArgError("for(_)pausing(_)do(_)", 1, numArgs - 3);
}
setLineNumber(75); // compilenode member
var call83 = selfRequest(var_$dialect, "Collection", [0]);
assertTypeOrMsg(var_range__39__, call83, "argument 1 in request of `for(_)pausing(_)do(_)`", "Collection");
var call84 = selfRequest(var_$dialect, "Number", [0]);
assertTypeOrMsg(var_pauseTime, call84, "argument 2 in request of `for(_)pausing(_)do(_)`", "Number");
setLineNumber(76); // compilenode member
var call85 = selfRequest(var_$dialect, "Procedure1", [0]);
assertTypeOrMsg(var_block, call85, "argument 3 in request of `for(_)pausing(_)do(_)`", "Procedure1");
setLineNumber(80); // compilenode member
// call case 4: other requests
var call86 = request(var_range__39__, "iterator", [0]);
var var_it = call86;
setLineNumber(81); // compilenode block
var block88 = new GraceBlock(this, 81, 0);
block88.guard = jsTrue;
block88.real = function block88() {
setLineNumber(81); // compilenode member
// call case 4: other requests
if (var_it === undefined) raiseUninitializedVariable("it");
var call89 = request(var_it, "hasNext", [0]);
return call89;
};
let applyMeth88 = function apply (argcv) {
return this.real.apply(this.receiver);
};
applyMeth88.methodName = "apply";
applyMeth88.paramCounts = [0];
applyMeth88.paramNames = [];
applyMeth88.definitionLine = 81;
applyMeth88.definitionModule = "animation";
block88.methods["apply"] = applyMeth88;
var block90 = new GraceBlock(this, 81, 0);
block90.guard = jsTrue;
block90.real = function block90() {
setLineNumber(81); // compilenode member
// call case 4: other requests
if (var_it === undefined) raiseUninitializedVariable("it");
var call92 = request(var_it, "next", [0]);
// call case 4: other requests
var call91 = request(var_block, "apply(1)", [1], call92);
return call91;
};
let applyMeth90 = function apply (argcv) {
return this.real.apply(this.receiver);
};
applyMeth90.methodName = "apply";
applyMeth90.paramCounts = [0];
applyMeth90.paramNames = [];
applyMeth90.definitionLine = 81;
applyMeth90.definitionModule = "animation";
block90.methods["apply"] = applyMeth90;
var call87 = selfRequest(var_$module, "while(1)pausing(1)do(1)", [1, 1, 1], block88, var_pauseTime, block90);
return call87;
}; // end of method for(_)pausing(_)do(_)
func82.paramTypes = (var_T) => {
setLineNumber(75); // compilenode member
var call93 = selfRequest(var_$dialect, "Collection", [0]);
var call94 = selfRequest(var_$dialect, "Number", [0]);
setLineNumber(76); // compilenode member
var call95 = selfRequest(var_$dialect, "Procedure1", [0]);
return [call93, call94, call95]; }
func82.returnType = (var_T) => {
var call96 = selfRequest(var_$dialect, "Done", [0]);
return call96; }
this.methods["for(1)pausing(1)do(1)"] = func82;
func82.methodName = "for(1)pausing(1)do(1)";
func82.paramCounts = [1, 1, 1];
func82.paramNames = ["range'", "pauseTime", "block"];
func82.typeParamNames = ["T"];
func82.definitionLine = 75;
func82.definitionModule = "animation";
var func97 = function(argcv, var_range__39__, var_pauseTime, var_block, var_endBlock, var_T) { // method for(_)pausing(_)do(_)finally(_), line 84
var returnTarget = invocationCount;
invocationCount++;
if (! var_T) var_T = type_Unknown;
const numArgs = arguments.length - 1;
if ((numArgs > 4) && (numArgs !== 5)) {
raiseTypeArgError("for(_)pausing(_)do(_)finally(_)", 1, numArgs - 4);
}
setLineNumber(84); // compilenode member
var call98 = selfRequest(var_$dialect, "Collection", [0]);
assertTypeOrMsg(var_range__39__, call98, "argument 1 in request of `for(_)pausing(_)do(_)finally(_)`", "Collection");
var call99 = selfRequest(var_$dialect, "Number", [0]);
assertTypeOrMsg(var_pauseTime, call99, "argument 2 in request of `for(_)pausing(_)do(_)finally(_)`", "Number");
setLineNumber(85); // compilenode member
var call100 = selfRequest(var_$dialect, "Procedure1", [0]);
assertTypeOrMsg(var_block, call100, "argument 3 in request of `for(_)pausing(_)do(_)finally(_)`", "Procedure1");
var call101 = selfRequest(var_$dialect, "Procedure0", [0]);
assertTypeOrMsg(var_endBlock, call101, "argument 4 in request of `for(_)pausing(_)do(_)finally(_)`", "Procedure0");
setLineNumber(90); // compilenode member
// call case 4: other requests
var call102 = request(var_range__39__, "iterator", [0]);
var var_it = call102;
var call103 = selfRequest(var_$dialect, "Iterator", [0]);
assertTypeOrMsg(var_it, call103, "value of def it", "Iterator");
setLineNumber(91); // compilenode block
var block105 = new GraceBlock(this, 91, 0);
block105.guard = jsTrue;
block105.real = function block105() {
setLineNumber(91); // compilenode member
// call case 4: other requests
if (var_it === undefined) raiseUninitializedVariable("it");
var call106 = request(var_it, "hasNext", [0]);
return call106;
};
let applyMeth105 = function apply (argcv) {
return this.real.apply(this.receiver);
};
applyMeth105.methodName = "apply";
applyMeth105.paramCounts = [0];
applyMeth105.paramNames = [];
applyMeth105.definitionLine = 91;
applyMeth105.definitionModule = "animation";
block105.methods["apply"] = applyMeth105;
var block107 = new GraceBlock(this, 91, 0);
block107.guard = jsTrue;
block107.real = function block107() {
setLineNumber(91); // compilenode member
// call case 4: other requests
if (var_it === undefined) raiseUninitializedVariable("it");
var call109 = request(var_it, "next", [0]);
// call case 4: other requests
var call108 = request(var_block, "apply(1)", [1], call109);
return call108;
};
let applyMeth107 = function apply (argcv) {
return this.real.apply(this.receiver);
};
applyMeth107.methodName = "apply";
applyMeth107.paramCounts = [0];
applyMeth107.paramNames = [];
applyMeth107.definitionLine = 91;
applyMeth107.definitionModule = "animation";
block107.methods["apply"] = applyMeth107;
var call104 = selfRequest(var_$module, "while(1)pausing(1)do(1)finally(1)", [1, 1, 1, 1], block105, var_pauseTime, block107, var_endBlock);
return call104;
}; // end of method for(_)pausing(_)do(_)finally(_)
func97.paramTypes = (var_T) => {
setLineNumber(84); // compilenode member
var call110 = selfRequest(var_$dialect, "Collection", [0]);
var call111 = selfRequest(var_$dialect, "Number", [0]);
setLineNumber(85); // compilenode member
var call112 = selfRequest(var_$dialect, "Procedure1", [0]);
var call113 = selfRequest(var_$dialect, "Procedure0", [0]);
return [call110, call111, call112, call113]; }
func97.returnType = (var_T) => {
var call114 = selfRequest(var_$dialect, "Done", [0]);
return call114; }
this.methods["for(1)pausing(1)do(1)finally(1)"] = func97;
func97.methodName = "for(1)pausing(1)do(1)finally(1)";
func97.paramCounts = [1, 1, 1, 1];
func97.paramNames = ["range'", "pauseTime", "block", "endBlock"];
func97.typeParamNames = ["T"];
func97.definitionLine = 84;
func97.definitionModule = "animation";
return this;
}
if (typeof global !== "undefined")
global.gracecode_animation = gracecode_animation;
if (typeof window !== "undefined")
window.gracecode_animation = gracecode_animation;
gracecode_animation.definitionModule = "animation";
gracecode_animation.sourceFile = gracecode_animation_sourceFile;
gracecode_animation.sha256 = gracecode_animation_sha256;
gracecode_animation.minigraceRevision = gracecode_animation_minigraceRevision;
gracecode_animation.minigraceGeneration = gracecode_animation_minigraceGeneration;
gracecode_animation.imports = [ ["standard", "5016aa3a5b2e0d35a67289d21c1e41cf8d73bef931ceea7b35f6a8b10a1386cf"],
["timer", "185c9965b498538e4b81db6c4b5f94de0d5a198f8bc2107a15e322247c15647f"] ];
gracecode_animation.definitionLine = 1;