diff --git a/src/kiss/AsyncEmbeddedScript.hx b/src/kiss/AsyncEmbeddedScript.hx index e4f1ee0..eb6999f 100644 --- a/src/kiss/AsyncEmbeddedScript.hx +++ b/src/kiss/AsyncEmbeddedScript.hx @@ -120,7 +120,17 @@ class AsyncEmbeddedScript { } } - // TODO skip to label by name + public function skipToLabel(name:String) { + var ip = labels[name]; + if (lastInstructionPointer > ip) { + throw "Rewinding AsyncEmbeddedScript is not implemented"; + } + skipToInstruction(ip); + } + + public function labelRunners():MapVoid> { + return [for (label => ip in labels) label => () -> skipToInstruction(ip)]; + } #if macro public static function build(dslHaxelib:String, dslFile:String, scriptFile:String):Array {