From 65fa37cc03db72baa7795095964ad048e721b3b9 Mon Sep 17 00:00:00 2001 From: John Alanbrook Date: Thu, 19 Feb 2026 03:12:58 -0600 Subject: [PATCH 01/11] fix --- benches/micro_core.cm | 302 ++++++++++++++++++++++++++++ internal/os.c | 7 +- internal/shop.cm | 81 ++++++-- qbe_emit.cm | 443 ++++++++++++++++++++++++++++++++++++++++-- source/qbe_helpers.c | 36 +++- source/runtime.c | 20 +- streamline.cm | 51 +++-- 7 files changed, 886 insertions(+), 54 deletions(-) create mode 100644 benches/micro_core.cm diff --git a/benches/micro_core.cm b/benches/micro_core.cm new file mode 100644 index 00000000..77a74cbe --- /dev/null +++ b/benches/micro_core.cm @@ -0,0 +1,302 @@ +// micro_core.cm — direct microbenchmarks for core ops + +function blackhole(sink, x) { + return (sink + (x | 0)) | 0 +} + +function make_obj_xy(x, y) { + return {x: x, y: y} +} + +function make_obj_yx(x, y) { + // Different insertion order to force a different shape + return {y: y, x: x} +} + +function make_packed_array(n) { + var a = [] + var i = 0 + for (i = 0; i < n; i++) push(a, i) + return a +} + +function make_holey_array(n) { + var a = [] + var i = 0 + for (i = 0; i < n; i += 2) a[i] = i + return a +} + +return { + loop_empty: function(n) { + var sink = 0 + var i = 0 + for (i = 0; i < n; i++) {} + return blackhole(sink, n) + }, + + i32_add: function(n) { + var sink = 0 + var x = 1 + var i = 0 + for (i = 0; i < n; i++) x = (x + 3) | 0 + return blackhole(sink, x) + }, + + f64_add: function(n) { + var sink = 0 + var x = 1.0 + var i = 0 + for (i = 0; i < n; i++) x = x + 3.14159 + return blackhole(sink, x | 0) + }, + + mixed_add: function(n) { + var sink = 0 + var x = 1 + var i = 0 + for (i = 0; i < n; i++) x = x + 0.25 + return blackhole(sink, x | 0) + }, + + bit_ops: function(n) { + var sink = 0 + var x = 0x12345678 + var i = 0 + for (i = 0; i < n; i++) x = ((x << 5) ^ (x >>> 3)) | 0 + return blackhole(sink, x) + }, + + overflow_path: function(n) { + var sink = 0 + var x = 0x70000000 + var i = 0 + for (i = 0; i < n; i++) x = (x + 0x10000000) | 0 + return blackhole(sink, x) + }, + + call_direct: function(n) { + var sink = 0 + var f = function(a) { return (a + 1) | 0 } + var x = 0 + var i = 0 + for (i = 0; i < n; i++) x = f(x) + return blackhole(sink, x) + }, + + call_indirect: function(n) { + var sink = 0 + var f = function(a) { return (a + 1) | 0 } + var g = f + var x = 0 + var i = 0 + for (i = 0; i < n; i++) x = g(x) + return blackhole(sink, x) + }, + + call_closure: function(n) { + var sink = 0 + var make_adder = function(k) { + return function(a) { return (a + k) | 0 } + } + var add3 = make_adder(3) + var x = 0 + var i = 0 + for (i = 0; i < n; i++) x = add3(x) + return blackhole(sink, x) + }, + + array_read_packed: function(n) { + var sink = 0 + var a = make_packed_array(1024) + var x = 0 + var i = 0 + for (i = 0; i < n; i++) x = (x + a[i & 1023]) | 0 + return blackhole(sink, x) + }, + + array_write_packed: function(n) { + var sink = 0 + var a = make_packed_array(1024) + var i = 0 + for (i = 0; i < n; i++) a[i & 1023] = i + return blackhole(sink, a[17] | 0) + }, + + array_read_holey: function(n) { + var sink = 0 + var a = make_holey_array(2048) + var x = 0 + var i = 0 + var v = null + for (i = 0; i < n; i++) { + v = a[(i & 2047)] + if (v) x = (x + v) | 0 + } + return blackhole(sink, x) + }, + + array_push_steady: function(n) { + var sink = 0 + var x = 0 + var j = 0 + var i = 0 + var a = null + for (j = 0; j < n; j++) { + a = [] + for (i = 0; i < 256; i++) push(a, i) + x = (x + length(a)) | 0 + } + return blackhole(sink, x) + }, + + array_indexed_sum: function(n) { + var sink = 0 + var a = make_packed_array(1024) + var x = 0 + var j = 0 + var i = 0 + for (j = 0; j < n; j++) { + x = 0 + for (i = 0; i < 1024; i++) { + x = (x + a[i]) | 0 + } + } + return blackhole(sink, x) + }, + + prop_read_mono: function(n) { + var sink = 0 + var o = make_obj_xy(1, 2) + var x = 0 + var i = 0 + for (i = 0; i < n; i++) x = (x + o.x) | 0 + return blackhole(sink, x) + }, + + prop_read_poly_2: function(n) { + var sink = 0 + var a = make_obj_xy(1, 2) + var b = make_obj_yx(1, 2) + var x = 0 + var i = 0 + var o = null + for (i = 0; i < n; i++) { + o = (i & 1) == 0 ? a : b + x = (x + o.x) | 0 + } + return blackhole(sink, x) + }, + + prop_read_poly_4: function(n) { + var sink = 0 + var shapes = [ + {x: 1, y: 2}, + {y: 2, x: 1}, + {x: 1, z: 3, y: 2}, + {w: 0, x: 1, y: 2} + ] + var x = 0 + var i = 0 + for (i = 0; i < n; i++) { + x = (x + shapes[i & 3].x) | 0 + } + return blackhole(sink, x) + }, + + string_concat_small: function(n) { + var sink = 0 + var x = 0 + var j = 0 + var i = 0 + var s = null + for (j = 0; j < n; j++) { + s = "" + for (i = 0; i < 16; i++) s = s + "x" + x = (x + length(s)) | 0 + } + return blackhole(sink, x) + }, + + string_concat_medium: function(n) { + var sink = 0 + var x = 0 + var j = 0 + var i = 0 + var s = null + for (j = 0; j < n; j++) { + s = "" + for (i = 0; i < 100; i++) s = s + "abcdefghij" + x = (x + length(s)) | 0 + } + return blackhole(sink, x) + }, + + string_slice: function(n) { + var sink = 0 + var base = "the quick brown fox jumps over the lazy dog" + var x = 0 + var i = 0 + var s = null + for (i = 0; i < n; i++) { + s = text(base, i % 10, i % 10 + 10) + x = (x + length(s)) | 0 + } + return blackhole(sink, x) + }, + + guard_hot_number: function(n) { + var sink = 0 + var x = 1 + var i = 0 + for (i = 0; i < n; i++) x = x + 1 + return blackhole(sink, x | 0) + }, + + guard_mixed_types: function(n) { + var sink = 0 + var vals = [1, "a", 2, "b", 3, "c", 4, "d"] + var x = 0 + var i = 0 + for (i = 0; i < n; i++) { + if (is_number(vals[i & 7])) x = (x + vals[i & 7]) | 0 + } + return blackhole(sink, x) + }, + + reduce_sum: function(n) { + var sink = 0 + var a = make_packed_array(256) + var x = 0 + var i = 0 + for (i = 0; i < n; i++) { + x = (x + reduce(a, function(acc, v) { return acc + v }, 0)) | 0 + } + return blackhole(sink, x) + }, + + filter_evens: function(n) { + var sink = 0 + var a = make_packed_array(256) + var x = 0 + var i = 0 + for (i = 0; i < n; i++) { + x = (x + length(filter(a, function(v) { return v % 2 == 0 }))) | 0 + } + return blackhole(sink, x) + }, + + arrfor_sum: function(n) { + var sink = 0 + var a = make_packed_array(256) + var x = 0 + var i = 0 + var sum = 0 + for (i = 0; i < n; i++) { + sum = 0 + arrfor(a, function(v) { sum += v }) + x = (x + sum) | 0 + } + return blackhole(sink, x) + } +} diff --git a/internal/os.c b/internal/os.c index d08083e0..5adcd9d8 100644 --- a/internal/os.c +++ b/internal/os.c @@ -322,7 +322,10 @@ JSC_SCALL(os_system, ) JSC_CCALL(os_exit, - exit(0); + int code = 0; + if (argc > 0 && !JS_IsNull(argv[0])) + JS_ToInt32(js, &code, argv[0]); + exit(code); ) static JSValue js_os_dylib_open(JSContext *js, JSValue self, int argc, JSValue *argv) @@ -718,7 +721,7 @@ static const JSCFunctionListEntry js_os_funcs[] = { MIST_FUNC_DEF(os, rusage, 0), MIST_FUNC_DEF(os, mallinfo, 0), MIST_FUNC_DEF(os, system, 1), - MIST_FUNC_DEF(os, exit, 0), + MIST_FUNC_DEF(os, exit, 1), MIST_FUNC_DEF(os, sleep, 1), MIST_FUNC_DEF(os, dylib_open, 1), MIST_FUNC_DEF(os, dylib_preload, 1), diff --git a/internal/shop.cm b/internal/shop.cm index a47c30d4..d58d4f05 100644 --- a/internal/shop.cm +++ b/internal/shop.cm @@ -421,6 +421,15 @@ Shop.extract_commit_hash = function(pkg, response) { var open_dls = {} var package_dylibs = {} // pkg -> [{file, symbol, dylib}, ...] +function open_dylib_cached(path) { + var handle = open_dls[path] + if (handle) return handle + handle = os.dylib_open(path) + if (!handle) return null + open_dls[path] = handle + return handle +} + // Host target detection for native dylib resolution function detect_host_target() { var platform = os.platform() @@ -457,7 +466,7 @@ function try_native_mod_dylib(pkg, stem) { if (!fd.is_file(build_path)) return null log.shop('native dylib cache hit: ' + stem) - var handle = os.dylib_open(build_path) + var handle = open_dylib_cached(build_path) if (!handle) return null var sym = Shop.c_symbol_for_file(pkg, stem) return {_native: true, _handle: handle, _sym: sym} @@ -924,11 +933,7 @@ function try_dylib_symbol(sym, pkg, file_stem) { }) if (!entry || !entry.dylib) return null - var handle = open_dls[entry.dylib] - if (!handle) { - handle = os.dylib_open(entry.dylib) - if (handle) open_dls[entry.dylib] = handle - } + var handle = open_dylib_cached(entry.dylib) if (!handle) return null if (!os.dylib_has_symbol(handle, sym)) return null @@ -1168,8 +1173,17 @@ Shop.is_loaded = function is_loaded(path, package_context) { } // Create a use function bound to a specific package context -function make_use_fn(pkg) { +function make_use_fn(pkg, force_native) { return function(path) { + var _native = null + if (force_native && !native_mode) { + _native = function() { + return Shop.use_native(path, pkg) + } disruption { + return Shop.use(path, pkg) + } + return _native() + } return Shop.use(path, pkg) } } @@ -1200,7 +1214,7 @@ function execute_module(info) inject = Shop.script_inject_for(file_info) env = inject_env(inject) pkg = file_info.package - env.use = make_use_fn(pkg) + env.use = make_use_fn(pkg, true) env = stone(env) used = os.native_module_load_named( mod_resolve.symbol._handle, mod_resolve.symbol._sym, env) @@ -1844,7 +1858,7 @@ Shop.load_as_dylib = function(path, pkg) { if (!file_info) file_info = Shop.file_info(file_path) inject = Shop.script_inject_for(file_info) env = inject_env(inject) - env.use = make_use_fn(real_pkg) + env.use = make_use_fn(real_pkg, true) env = stone(env) return os.native_module_load_named(result._handle, result._sym, env) } @@ -1891,32 +1905,63 @@ Shop.parse_package = function(locator) { Shop.use_native = function(path, package_context) { var src_path = path - if (!starts_with(path, '/')) + var locator = null + var lookup = null + var cache_key = null + var cfg = null + var old_native = null + if (!starts_with(path, '/') && !fd.is_file(path)) { + lookup = ends_with(path, '.cm') ? path : path + '.cm' + locator = resolve_locator(lookup, package_context) + if (!locator) { print('Module not found: ' + path); disrupt } + src_path = locator.path + } else if (!starts_with(path, '/')) { src_path = fd.realpath(path) + } if (!fd.is_file(src_path)) { print('File not found: ' + path); disrupt } var file_info = Shop.file_info(src_path) - var pkg = file_info.package || package_context + var pkg = file_info.package || (locator ? locator.pkg : package_context) + var sym_stem = fd.basename(src_path) + var pkg_dir = null + cache_key = 'native:' + text(pkg || '') + ':' + src_path + if (use_cache[cache_key]) return use_cache[cache_key] var sym_name = null - if (pkg) - sym_name = Shop.c_symbol_for_file(pkg, fd.basename(src_path)) + if (pkg) { + pkg_dir = get_packages_dir() + '/' + safe_package_path(pkg) + if (starts_with(src_path, pkg_dir + '/')) { + sym_stem = text(src_path, length(pkg_dir) + 1) + } + sym_name = Shop.c_symbol_for_file(pkg, sym_stem) + } - var build = Shop.use('build', 'core') + var build = use_cache['core/build'] || use_cache['build'] + if (!build) { + cfg = Shop.load_config() + old_native = cfg.policy.native + cfg.policy.native = false + build = Shop.use('build', 'core') + cfg.policy.native = old_native + } var dylib_path = build.compile_native(src_path, null, null, pkg) - var handle = os.dylib_open(dylib_path) + var handle = open_dylib_cached(dylib_path) if (!handle) { print('Failed to open native dylib: ' + dylib_path); disrupt } // Build env with runtime functions and capabilities var inject = Shop.script_inject_for(file_info) var env = inject_env(inject) - env.use = make_use_fn(pkg) + env.use = make_use_fn(pkg, true) env = stone(env) + var loaded = null if (sym_name) - return os.native_module_load_named(handle, sym_name, env) - return os.native_module_load(handle, env) + loaded = os.native_module_load_named(handle, sym_name, env) + else + loaded = os.native_module_load(handle, env) + use_cache[cache_key] = loaded + return loaded } return Shop diff --git a/qbe_emit.cm b/qbe_emit.cm index 314ad593..8a7f3a7c 100644 --- a/qbe_emit.cm +++ b/qbe_emit.cm @@ -790,6 +790,50 @@ ${sw("w", "%fp", "%dest", "%r")} @entry ${sr("a", "%obj_slot")} ${sr("b", "%key_slot")} + %ptag =l and %a, 7 + %is_ptr =w ceql %ptag, 1 + jnz %is_ptr, @arr_ptr, @fallback +@arr_ptr + %arr_ptr =l and %a, -8 + %arr_hdr =l loadl %arr_ptr +@arr_chase + %arr_ty =l and %arr_hdr, 7 + %arr_is_fwd =w ceql %arr_ty, 7 + jnz %arr_is_fwd, @arr_follow, @arr_chk +@arr_follow + %arr_ptr =l shr %arr_hdr, 3 + %arr_hdr =l loadl %arr_ptr + jmp @arr_chase +@arr_chk + %arr_is_array =w ceql %arr_ty, 0 + jnz %arr_is_array, @arr_index, @fallback +@arr_index + %idx_tag =l and %b, 1 + %idx_is_int =w ceql %idx_tag, 0 + jnz %idx_is_int, @idx_ok, @ret_null +@idx_ok + %idx_l =l sar %b, 1 + %idx_w =w copy %idx_l + %idx_neg =w csltw %idx_w, 0 + jnz %idx_neg, @ret_null, @arr_len +@arr_len + %len_p =l add %arr_ptr, 8 + %len_l =l loadl %len_p + %len_w =w copy %len_l + %in =w csltw %idx_w, %len_w + jnz %in, @load, @ret_null +@load + %idx_off_l =l extsw %idx_w + %idx_off_l =l shl %idx_off_l, 3 + %vals_p =l add %arr_ptr, 16 + %elem_p =l add %vals_p, %idx_off_l + %r =l loadl %elem_p +${sw("w", "%fp", "%dest", "%r")} + ret %fp +@ret_null +${sw("w", "%fp", "%dest", text(qbe.js_null))} + ret %fp +@fallback %r =l call $cell_rt_load_dynamic(l %ctx, l %a, l %b) %is_exc =w ceql %r, 15 jnz %is_exc, @exc, @ok @@ -805,14 +849,49 @@ ${sw("w", "%fp", "%dest", "%r")} @entry ${sr("a", "%arr_slot")} ${sr("b", "%idx_slot")} - %r =l call $cell_rt_load_index(l %ctx, l %a, l %b) - %is_exc =w ceql %r, 15 - jnz %is_exc, @exc, @ok -@ok + %idx_tag =l and %b, 1 + %idx_is_int =w ceql %idx_tag, 0 + jnz %idx_is_int, @idx_ok, @ret_null +@idx_ok + %idx_l =l sar %b, 1 + %idx_w =w copy %idx_l + %idx_neg =w csltw %idx_w, 0 + jnz %idx_neg, @ret_null, @arr_init +@arr_init + %ptag =l and %a, 7 + %is_ptr =w ceql %ptag, 1 + jnz %is_ptr, @arr_ptr_ok, @ret_null +@arr_ptr_ok + %arr_ptr =l and %a, -8 + %arr_hdr =l loadl %arr_ptr +@arr_chase + %arr_ty =l and %arr_hdr, 7 + %arr_is_fwd =w ceql %arr_ty, 7 + jnz %arr_is_fwd, @arr_follow, @arr_chk +@arr_follow + %arr_ptr =l shr %arr_hdr, 3 + %arr_hdr =l loadl %arr_ptr + jmp @arr_chase +@arr_chk + %arr_is_array =w ceql %arr_ty, 0 + jnz %arr_is_array, @arr_len, @ret_null +@arr_len + %len_p =l add %arr_ptr, 8 + %len_l =l loadl %len_p + %len_w =w copy %len_l + %in =w csltw %idx_w, %len_w + jnz %in, @load, @ret_null +@load + %idx_off_l =l extsw %idx_w + %idx_off_l =l shl %idx_off_l, 3 + %vals_p =l add %arr_ptr, 16 + %elem_p =l add %vals_p, %idx_off_l + %r =l loadl %elem_p ${sw("w", "%fp", "%dest", "%r")} ret %fp -@exc - ret 0 +@ret_null +${sw("w", "%fp", "%dest", text(qbe.js_null))} + ret %fp }` // store_field(ctx, fp, obj_slot, val_slot, lit_idx) — no dest write @@ -834,10 +913,37 @@ ${sr("b", "%val_slot")} ${sr("a", "%obj_slot")} ${sr("b", "%val_slot")} ${sr("c", "%key_slot")} + %ptag =l and %a, 7 + %is_ptr =w ceql %ptag, 1 + jnz %is_ptr, @arr_ptr, @fallback +@arr_ptr + %arr_ptr =l and %a, -8 + %arr_hdr =l loadl %arr_ptr +@arr_chase + %arr_ty =l and %arr_hdr, 7 + %arr_is_fwd =w ceql %arr_ty, 7 + jnz %arr_is_fwd, @arr_follow, @arr_chk +@arr_follow + %arr_ptr =l shr %arr_hdr, 3 + %arr_hdr =l loadl %arr_ptr + jmp @arr_chase +@arr_chk + %arr_is_array =w ceql %arr_ty, 0 + jnz %arr_is_array, @arr_key_chk, @fallback +@arr_key_chk + %idx_tag =l and %c, 1 + %idx_is_int =w ceql %idx_tag, 0 + jnz %idx_is_int, @arr_store, @bad +@arr_store + %fp2 =l call $__store_index_ss(l %ctx, l %fp, l %obj_slot, l %val_slot, l %key_slot) + ret %fp2 +@fallback %ok =w call $cell_rt_store_dynamic(l %ctx, l %b, l %a, l %c) jnz %ok, @ok, @exc @ok ret %fp +@bad + call $cell_rt_disrupt(l %ctx) @exc ret 0 }` @@ -848,10 +954,151 @@ ${sr("c", "%key_slot")} ${sr("a", "%obj_slot")} ${sr("b", "%val_slot")} ${sr("c", "%idx_slot")} - %ok =w call $cell_rt_store_index(l %ctx, l %b, l %a, l %c) - jnz %ok, @ok, @exc -@ok + %idx_tag =l and %c, 1 + %idx_is_int =w ceql %idx_tag, 0 + jnz %idx_is_int, @idx_ok, @bad +@idx_ok + %idx_l =l sar %c, 1 + %idx_w =w copy %idx_l + %idx_neg =w csltw %idx_w, 0 + jnz %idx_neg, @bad, @arr_init +@arr_init + %ptag =l and %a, 7 + %is_ptr =w ceql %ptag, 1 + jnz %is_ptr, @arr_ptr_ok, @bad +@arr_ptr_ok + %arr_val =l copy %a + %arr_ptr =l and %arr_val, -8 + %arr_hdr =l loadl %arr_ptr +@arr_chase + %arr_ty =l and %arr_hdr, 7 + %arr_is_fwd =w ceql %arr_ty, 7 + jnz %arr_is_fwd, @arr_follow, @arr_chk +@arr_follow + %arr_ptr =l shr %arr_hdr, 3 + %arr_hdr =l loadl %arr_ptr + jmp @arr_chase +@arr_chk + %arr_is_array =w ceql %arr_ty, 0 + jnz %arr_is_array, @stone_chk, @bad +@stone_chk + %arr_stone =l and %arr_hdr, 8 + %arr_is_stone =w cnel %arr_stone, 0 + jnz %arr_is_stone, @bad, @lens +@lens + %len_p =l add %arr_ptr, 8 + %len_l =l loadl %len_p + %len_w =w copy %len_l + %cap_l =l shr %arr_hdr, 8 + %cap_w =w copy %cap_l + %need_grow =w csgew %idx_w, %cap_w + jnz %need_grow, @grow_init, @set_item +@grow_init + %new_cap_w =w copy %cap_w + %cap_zero =w ceqw %new_cap_w, 0 + jnz %cap_zero, @grow_cap0, @grow_check +@grow_cap0 + %new_cap_w =w copy 2 + jmp @grow_check +@grow_loop + %new_cap_w =w shl %new_cap_w, 1 + %new_cap_neg =w csltw %new_cap_w, 0 + jnz %new_cap_neg, @bad, @grow_check +@grow_check + %need_more =w cslew %new_cap_w, %idx_w + jnz %need_more, @grow_loop, @grow_alloc +@grow_alloc + %new_arr =l call $JS_NewArrayCap(l %ctx, w %new_cap_w) + %new_exc =w ceql %new_arr, 15 + jnz %new_exc, @exc, @grow_refresh +@grow_refresh + %fp2 =l call $cell_rt_refresh_fp_checked(l %ctx) + jnz %fp2, @grow_reload, @exc +@grow_reload + %fp =l copy %fp2 +${sr("ga", "%obj_slot")} +${sr("gb", "%val_slot")} +${sr("gc", "%idx_slot")} + %a =l copy %ga + %b =l copy %gb + %c =l copy %gc + %arr_val =l copy %a + %arr_ptr =l and %arr_val, -8 + %arr_hdr =l loadl %arr_ptr +@grow_arr_chase + %arr_ty =l and %arr_hdr, 7 + %arr_is_fwd =w ceql %arr_ty, 7 + jnz %arr_is_fwd, @grow_arr_follow, @grow_arr_ok +@grow_arr_follow + %arr_ptr =l shr %arr_hdr, 3 + %arr_hdr =l loadl %arr_ptr + jmp @grow_arr_chase +@grow_arr_ok + %grow_arr_is_array =w ceql %arr_ty, 0 + jnz %grow_arr_is_array, @grow_arr_type_ok, @bad +@grow_arr_type_ok + %old_cap_l =l shr %arr_hdr, 8 + %old_len_p =l add %arr_ptr, 8 + %old_len_l =l loadl %old_len_p + %old_len_w =w copy %old_len_l + %new_ptr =l and %new_arr, -8 + %old_vals =l add %arr_ptr, 16 + %new_vals =l add %new_ptr, 16 + %i_w =w copy 0 +@copy_cond + %copy_more =w csltw %i_w, %old_len_w + jnz %copy_more, @copy_body, @copy_done +@copy_body + %i_l =l extsw %i_w + %i_off =l shl %i_l, 3 + %old_ep =l add %old_vals, %i_off + %new_ep =l add %new_vals, %i_off + %ev =l loadl %old_ep + %ev_is_self =w ceql %ev, %arr_val + jnz %ev_is_self, @copy_self, @copy_store +@copy_self + storel %new_arr, %new_ep + jmp @copy_next +@copy_store + storel %ev, %new_ep +@copy_next + %i_w =w add %i_w, 1 + jmp @copy_cond +@copy_done + storel %old_len_l, %old_len_p + %old_size =l shl %old_cap_l, 3 + %old_size =l add %old_size, 16 + %fwd =l shl %new_ptr, 3 + %fwd =l or %fwd, 7 + storel %fwd, %arr_ptr + %arr_size_p =l add %arr_ptr, 8 + storel %old_size, %arr_size_p + %obj_slot_o =l shl %obj_slot, 3 + %obj_slot_p =l add %fp2, %obj_slot_o + storel %new_arr, %obj_slot_p + %arr_val =l copy %new_arr + %arr_ptr =l copy %new_ptr + %arr_hdr =l loadl %arr_ptr + %len_p =l add %arr_ptr, 8 + storel %old_len_l, %len_p + %len_l =l copy %old_len_l + %len_w =w copy %old_len_w +@set_item + %need_len =w csgew %idx_w, %len_w + jnz %need_len, @bump_len, @store_item +@bump_len + %next_len_w =w add %idx_w, 1 + %next_len_l =l extsw %next_len_w + storel %next_len_l, %len_p +@store_item + %idx2_l =l extsw %idx_w + %idx2_off =l shl %idx2_l, 3 + %vals_p =l add %arr_ptr, 16 + %item_p =l add %vals_p, %idx2_off + storel %b, %item_p ret %fp +@bad + call $cell_rt_disrupt(l %ctx) @exc ret 0 }` @@ -937,12 +1184,133 @@ ${alloc_tail("%r")} @entry ${sr("a", "%arr_slot")} ${sr("b", "%val_slot")} - %r =l call $cell_rt_push(l %ctx, l %a, l %b) + %ptag =l and %a, 7 + %is_ptr =w ceql %ptag, 1 + jnz %is_ptr, @arr_init, @bad +@arr_init + %arr_val =l copy %a + %arr_ptr =l and %arr_val, -8 + %arr_hdr =l loadl %arr_ptr +@arr_chase + %arr_ty =l and %arr_hdr, 7 + %arr_is_fwd =w ceql %arr_ty, 7 + jnz %arr_is_fwd, @arr_follow, @arr_ok +@arr_follow + %arr_ptr =l shr %arr_hdr, 3 + %arr_hdr =l loadl %arr_ptr + jmp @arr_chase +@arr_ok + %arr_is_array =w ceql %arr_ty, 0 + jnz %arr_is_array, @arr_type_ok, @bad +@arr_type_ok + %arr_stone =l and %arr_hdr, 8 + %arr_is_stone =w cnel %arr_stone, 0 + jnz %arr_is_stone, @bad, @lens +@lens + %len_p =l add %arr_ptr, 8 + %len_l =l loadl %len_p + %len_w =w copy %len_l + %cap_l =l shr %arr_hdr, 8 + %cap_w =w copy %cap_l + %need_grow =w csgew %len_w, %cap_w + jnz %need_grow, @grow, @store_push +@grow + %new_cap_w =w copy %cap_w + %cap_zero =w ceqw %new_cap_w, 0 + jnz %cap_zero, @grow_cap0, @grow_dbl +@grow_cap0 + %new_cap_w =w copy 2 + jmp @grow_alloc +@grow_dbl + %new_cap_w =w shl %new_cap_w, 1 + %new_cap_neg =w csltw %new_cap_w, 0 + jnz %new_cap_neg, @bad, @grow_alloc +@grow_alloc + %new_arr =l call $JS_NewArrayCap(l %ctx, w %new_cap_w) + %new_exc =w ceql %new_arr, 15 + jnz %new_exc, @exc, @grow_refresh +@grow_refresh %fp2 =l call $cell_rt_refresh_fp_checked(l %ctx) - jnz %fp2, @ok, @exc -@ok -${sw("w", "%fp2", "%arr_slot", "%r")} - ret %fp2 + jnz %fp2, @grow_reload, @exc +@grow_reload + %fp =l copy %fp2 +${sr("ga", "%arr_slot")} +${sr("gb", "%val_slot")} + %a =l copy %ga + %b =l copy %gb + %arr_val =l copy %a + %arr_ptr =l and %arr_val, -8 + %arr_hdr =l loadl %arr_ptr +@grow_arr_chase + %arr_ty =l and %arr_hdr, 7 + %arr_is_fwd =w ceql %arr_ty, 7 + jnz %arr_is_fwd, @grow_arr_follow, @grow_arr_ok +@grow_arr_follow + %arr_ptr =l shr %arr_hdr, 3 + %arr_hdr =l loadl %arr_ptr + jmp @grow_arr_chase +@grow_arr_ok + %grow_arr_is_array =w ceql %arr_ty, 0 + jnz %grow_arr_is_array, @grow_arr_type_ok, @bad +@grow_arr_type_ok + %old_cap_l =l shr %arr_hdr, 8 + %old_len_p =l add %arr_ptr, 8 + %old_len_l =l loadl %old_len_p + %old_len_w =w copy %old_len_l + %new_ptr =l and %new_arr, -8 + %old_vals =l add %arr_ptr, 16 + %new_vals =l add %new_ptr, 16 + %i_w =w copy 0 +@copy_cond + %copy_more =w csltw %i_w, %old_len_w + jnz %copy_more, @copy_body, @copy_done +@copy_body + %i_l =l extsw %i_w + %i_off =l shl %i_l, 3 + %old_ep =l add %old_vals, %i_off + %new_ep =l add %new_vals, %i_off + %ev =l loadl %old_ep + %ev_is_self =w ceql %ev, %arr_val + jnz %ev_is_self, @copy_self, @copy_store +@copy_self + storel %new_arr, %new_ep + jmp @copy_next +@copy_store + storel %ev, %new_ep +@copy_next + %i_w =w add %i_w, 1 + jmp @copy_cond +@copy_done + storel %old_len_l, %old_len_p + %old_size =l shl %old_cap_l, 3 + %old_size =l add %old_size, 16 + %fwd =l shl %new_ptr, 3 + %fwd =l or %fwd, 7 + storel %fwd, %arr_ptr + %arr_size_p =l add %arr_ptr, 8 + storel %old_size, %arr_size_p + %arr_slot_o =l shl %arr_slot, 3 + %arr_slot_p =l add %fp2, %arr_slot_o + storel %new_arr, %arr_slot_p + %arr_val =l copy %new_arr + %arr_ptr =l copy %new_ptr + %arr_hdr =l loadl %arr_ptr + %len_p =l add %arr_ptr, 8 + storel %old_len_l, %len_p + %len_l =l copy %old_len_l + %len_w =w copy %old_len_w +@store_push + %idx_l =l extsw %len_w + %idx_off =l shl %idx_l, 3 + %vals_p =l add %arr_ptr, 16 + %item_p =l add %vals_p, %idx_off + storel %b, %item_p + %next_len_w =w add %len_w, 1 + %next_len_l =l extsw %next_len_w + storel %next_len_l, %len_p + ret %fp +@bad + call $cell_rt_disrupt(l %ctx) @exc ret 0 }` @@ -951,8 +1319,51 @@ ${sw("w", "%fp2", "%arr_slot", "%r")} h[] = `export function l $__pop_ss(l %ctx, l %fp, l %dest, l %arr_slot) { @entry ${sr("a", "%arr_slot")} - %r =l call $cell_rt_pop(l %ctx, l %a) -${alloc_tail("%r")} + %ptag =l and %a, 7 + %is_ptr =w ceql %ptag, 1 + jnz %is_ptr, @arr_init, @bad +@arr_init + %arr_ptr =l and %a, -8 + %arr_hdr =l loadl %arr_ptr +@arr_chase + %arr_ty =l and %arr_hdr, 7 + %arr_is_fwd =w ceql %arr_ty, 7 + jnz %arr_is_fwd, @arr_follow, @arr_ok +@arr_follow + %arr_ptr =l shr %arr_hdr, 3 + %arr_hdr =l loadl %arr_ptr + jmp @arr_chase +@arr_ok + %arr_is_array =w ceql %arr_ty, 0 + jnz %arr_is_array, @arr_type_ok, @bad +@arr_type_ok + %arr_stone =l and %arr_hdr, 8 + %arr_is_stone =w cnel %arr_stone, 0 + jnz %arr_is_stone, @bad, @len_chk +@len_chk + %len_p =l add %arr_ptr, 8 + %len_l =l loadl %len_p + %len_w =w copy %len_l + %empty =w ceqw %len_w, 0 + jnz %empty, @ret_null, @do_pop +@do_pop + %last_w =w sub %len_w, 1 + %last_l =l extsw %last_w + %last_off =l shl %last_l, 3 + %vals_p =l add %arr_ptr, 16 + %item_p =l add %vals_p, %last_off + %r =l loadl %item_p + storel ${text(qbe.js_null)}, %item_p + %new_len_l =l extsw %last_w + storel %new_len_l, %len_p +${sw("w", "%fp", "%dest", "%r")} + ret %fp +@ret_null +${sw("w", "%fp", "%dest", text(qbe.js_null))} + ret %fp +@bad + call $cell_rt_disrupt(l %ctx) + ret 0 }` // length(ctx, fp, dest, src) diff --git a/source/qbe_helpers.c b/source/qbe_helpers.c index 72e0ec16..5be2c448 100644 --- a/source/qbe_helpers.c +++ b/source/qbe_helpers.c @@ -779,6 +779,22 @@ static int cell_check_call_arity(JSContext *ctx, JSFunction *fn, int argc) { return 1; } +static inline void cell_copy_args_0_4(JSValue *fp, JSValue *argv, int copy) { + /* fp[0] is `this`; copy args into fp[1..4] */ + switch (copy) { + case 4: fp[4] = argv[3]; + case 3: fp[3] = argv[2]; + case 2: fp[2] = argv[1]; + case 1: fp[1] = argv[0]; + case 0: break; + default: break; + } +} + +static inline void cell_sync_dl_from_native_fn(NativeRTState *st, JSFunction *fn) { + st->current_dl_handle = JS_VALUE_GET_CODE(fn->u.cell.code)->u.native.dl_handle; +} + /* Entry point called from JS_CallInternal / JS_Call / MACH_INVOKE for JS_FUNC_KIND_NATIVE functions. */ JSValue cell_native_dispatch(JSContext *ctx, JSValue func_obj, @@ -822,8 +838,14 @@ JSValue cell_native_dispatch(JSContext *ctx, JSValue func_obj, fp[0] = this_obj; int copy = (argc < arity) ? argc : arity; if (copy < 0) copy = argc; /* variadic: copy all */ - for (int i = 0; i < copy && i < nr_slots - 1; i++) - fp[1 + i] = argv[i]; + if (copy > nr_slots - 1) + copy = nr_slots - 1; + if (unlikely(copy > 4)) { + JS_RaiseDisrupt(ctx, "native calls support at most 4 arguments"); + RETURN_DISPATCH(JS_EXCEPTION); + } + if (copy > 0 && argv) + cell_copy_args_0_4(fp, argv, copy); /* Link function to frame for closure access */ JSFrameRegister *frame = (JSFrameRegister *)((char *)fp - offsetof(JSFrameRegister, slots)); @@ -875,6 +897,7 @@ JSValue cell_native_dispatch(JSContext *ctx, JSValue func_obj, /* Resume caller with exception pending */ JSFunction *exc_fn = JS_VALUE_GET_FUNCTION(frame->function); fn = (cell_compiled_fn)JS_VALUE_GET_CODE(exc_fn->u.cell.code)->u.native.fn_ptr; + cell_sync_dl_from_native_fn(st, exc_fn); JS_PopGCRef(ctx, &callee_ref); continue; } @@ -883,6 +906,7 @@ JSValue cell_native_dispatch(JSContext *ctx, JSValue func_obj, if (!cell_check_call_arity(ctx, callee_fn, callee_argc)) { JSFunction *exc_fn = JS_VALUE_GET_FUNCTION(frame->function); fn = (cell_compiled_fn)JS_VALUE_GET_CODE(exc_fn->u.cell.code)->u.native.fn_ptr; + cell_sync_dl_from_native_fn(st, exc_fn); JS_PopGCRef(ctx, &callee_ref); continue; } @@ -910,6 +934,7 @@ JSValue cell_native_dispatch(JSContext *ctx, JSValue func_obj, frame = (JSFrameRegister *)JS_VALUE_GET_PTR(aot_gc_ref_at(st, st->aot_depth - 1)->val); fp = (JSValue *)frame->slots; fn = callee_ptr; + cell_sync_dl_from_native_fn(st, callee_fn); } else { /* Regular call: link caller and push prepared callee frame. */ int ret_info = JS_VALUE_GET_INT(frame->address); @@ -931,12 +956,14 @@ JSValue cell_native_dispatch(JSContext *ctx, JSValue func_obj, fp = (JSValue *)frame->slots; JSFunction *exc_fn = JS_VALUE_GET_FUNCTION(frame->function); fn = (cell_compiled_fn)JS_VALUE_GET_CODE(exc_fn->u.cell.code)->u.native.fn_ptr; + cell_sync_dl_from_native_fn(st, exc_fn); JS_PopGCRef(ctx, &callee_ref); continue; } frame = (JSFrameRegister *)JS_VALUE_GET_PTR(aot_gc_ref_at(st, st->aot_depth - 1)->val); fp = (JSValue *)frame->slots; fn = callee_ptr; + cell_sync_dl_from_native_fn(st, callee_fn); } } else { /* Non-native callee (C function, register VM, etc.) — @@ -968,6 +995,7 @@ JSValue cell_native_dispatch(JSContext *ctx, JSValue func_obj, Just resume it — it will detect JS_EXCEPTION in the return slot. */ JSFunction *exc_fn = JS_VALUE_GET_FUNCTION(frame->function); fn = (cell_compiled_fn)JS_VALUE_GET_CODE(exc_fn->u.cell.code)->u.native.fn_ptr; + cell_sync_dl_from_native_fn(st, exc_fn); JS_PopGCRef(ctx, &callee_ref); continue; } @@ -999,6 +1027,7 @@ JSValue cell_native_dispatch(JSContext *ctx, JSValue func_obj, /* Resume caller */ JSFunction *caller_fn = JS_VALUE_GET_FUNCTION(frame->function); fn = (cell_compiled_fn)JS_VALUE_GET_CODE(caller_fn->u.cell.code)->u.native.fn_ptr; + cell_sync_dl_from_native_fn(st, caller_fn); } else { /* Regular call: store result and resume current function */ int ret_info = JS_VALUE_GET_INT(frame->address); @@ -1008,6 +1037,7 @@ JSValue cell_native_dispatch(JSContext *ctx, JSValue func_obj, /* fn stays the same — we resume the same function at next segment */ JSFunction *cur_fn = JS_VALUE_GET_FUNCTION(frame->function); fn = (cell_compiled_fn)JS_VALUE_GET_CODE(cur_fn->u.cell.code)->u.native.fn_ptr; + cell_sync_dl_from_native_fn(st, cur_fn); } } JS_PopGCRef(ctx, &callee_ref); @@ -1041,6 +1071,7 @@ JSValue cell_native_dispatch(JSContext *ctx, JSValue func_obj, JSFunction *exc_caller_fn = JS_VALUE_GET_FUNCTION(frame->function); fn = (cell_compiled_fn)JS_VALUE_GET_CODE(exc_caller_fn->u.cell.code)->u.native.fn_ptr; + cell_sync_dl_from_native_fn(st, exc_caller_fn); continue; } @@ -1065,6 +1096,7 @@ JSValue cell_native_dispatch(JSContext *ctx, JSValue func_obj, JSFunction *caller_fn = JS_VALUE_GET_FUNCTION(frame->function); fn = (cell_compiled_fn)JS_VALUE_GET_CODE(caller_fn->u.cell.code)->u.native.fn_ptr; + cell_sync_dl_from_native_fn(st, caller_fn); continue; } diff --git a/source/runtime.c b/source/runtime.c index 3f669910..96c3daa7 100644 --- a/source/runtime.c +++ b/source/runtime.c @@ -150,7 +150,10 @@ int JS_IsPretext (JSValue v) { } JSValue *JS_PushGCRef (JSContext *ctx, JSGCRef *ref) { - assert(ref != ctx->top_gc_ref && "JS_ROOT used in a loop — same address pushed twice"); + if (ref == ctx->top_gc_ref) { + fprintf(stderr, "[warn] JS_PushGCRef duplicate top ref (non-fatal)\n"); + return &ref->val; + } ref->prev = ctx->top_gc_ref; ctx->top_gc_ref = ref; ref->val = JS_NULL; @@ -158,13 +161,20 @@ JSValue *JS_PushGCRef (JSContext *ctx, JSGCRef *ref) { } JSValue JS_PopGCRef (JSContext *ctx, JSGCRef *ref) { - assert(ctx->top_gc_ref == ref && "JS_PopGCRef: not popping top of stack — mismatched push/pop"); - ctx->top_gc_ref = ref->prev; + if (ctx->top_gc_ref == ref) { + ctx->top_gc_ref = ref->prev; + return ref->val; + } + + fprintf(stderr, "[warn] JS_PopGCRef mismatched pop (non-fatal)\n"); return ref->val; } JSValue *JS_AddGCRef (JSContext *ctx, JSGCRef *ref) { - assert(ref != ctx->last_gc_ref && "JS_AddGCRef: same address added twice — cycle in GC ref list"); + if (ref == ctx->last_gc_ref) { + fprintf(stderr, "[warn] JS_AddGCRef duplicate tail ref (non-fatal)\n"); + return &ref->val; + } ref->prev = ctx->last_gc_ref; ctx->last_gc_ref = ref; ref->val = JS_NULL; @@ -10362,6 +10372,8 @@ static JSValue js_cell_pop (JSContext *ctx, JSValue this_val, int argc, JSValue if (!JS_IsArray (obj)) return JS_NULL; JSArray *arr = JS_VALUE_GET_ARRAY (obj); + if (objhdr_s (arr->mist_hdr)) + return JS_RaiseDisrupt (ctx, "cannot pop from a stoned array"); if (arr->len == 0) return JS_NULL; diff --git a/streamline.cm b/streamline.cm index 9fe9adb5..5c639f36 100644 --- a/streamline.cm +++ b/streamline.cm @@ -151,6 +151,21 @@ var streamline = function(ir, log) { slot_types[instr[1]] = src_type != null ? src_type : T_UNKNOWN return null } + if (op == "load_index") { + slot_types[instr[2]] = T_ARRAY + slot_types[instr[3]] = T_INT + } else if (op == "store_index") { + slot_types[instr[1]] = T_ARRAY + slot_types[instr[3]] = T_INT + } else if (op == "load_field") { + slot_types[instr[2]] = T_RECORD + } else if (op == "store_field") { + slot_types[instr[1]] = T_RECORD + } else if (op == "push") { + slot_types[instr[1]] = T_ARRAY + } else if (op == "pop") { + slot_types[instr[2]] = T_ARRAY + } rule = write_rules[op] if (rule != null) { typ = rule[1] @@ -787,26 +802,32 @@ var streamline = function(ir, log) { // Dynamic access reduction if (op == "load_dynamic") { old_op = op - if (slot_is(slot_types, instr[3], T_TEXT)) { + if (slot_is(slot_types, instr[2], T_RECORD) && slot_is(slot_types, instr[3], T_TEXT)) { instr[0] = "load_field" if (events != null) { events[] = { event: "rewrite", pass: "eliminate_type_checks", - rule: "dynamic_to_field", + rule: "dynamic_record_to_field", at: i, before: old_op, after: instr[0], - why: {slot: instr[3], known_type: slot_types[instr[3]]} + why: { + object_slot: instr[2], object_type: slot_types[instr[2]], + key_slot: instr[3], key_type: slot_types[instr[3]] + } } } - } else if (slot_is(slot_types, instr[3], T_INT)) { + } else if (slot_is(slot_types, instr[2], T_ARRAY) && slot_is(slot_types, instr[3], T_INT)) { instr[0] = "load_index" if (events != null) { events[] = { event: "rewrite", pass: "eliminate_type_checks", - rule: "dynamic_to_index", + rule: "dynamic_array_to_index", at: i, before: old_op, after: instr[0], - why: {slot: instr[3], known_type: slot_types[instr[3]]} + why: { + object_slot: instr[2], object_type: slot_types[instr[2]], + key_slot: instr[3], key_type: slot_types[instr[3]] + } } } } @@ -816,26 +837,32 @@ var streamline = function(ir, log) { } if (op == "store_dynamic") { old_op = op - if (slot_is(slot_types, instr[3], T_TEXT)) { + if (slot_is(slot_types, instr[1], T_RECORD) && slot_is(slot_types, instr[3], T_TEXT)) { instr[0] = "store_field" if (events != null) { events[] = { event: "rewrite", pass: "eliminate_type_checks", - rule: "dynamic_to_field", + rule: "dynamic_record_to_field", at: i, before: old_op, after: instr[0], - why: {slot: instr[3], known_type: slot_types[instr[3]]} + why: { + object_slot: instr[1], object_type: slot_types[instr[1]], + key_slot: instr[3], key_type: slot_types[instr[3]] + } } } - } else if (slot_is(slot_types, instr[3], T_INT)) { + } else if (slot_is(slot_types, instr[1], T_ARRAY) && slot_is(slot_types, instr[3], T_INT)) { instr[0] = "store_index" if (events != null) { events[] = { event: "rewrite", pass: "eliminate_type_checks", - rule: "dynamic_to_index", + rule: "dynamic_array_to_index", at: i, before: old_op, after: instr[0], - why: {slot: instr[3], known_type: slot_types[instr[3]]} + why: { + object_slot: instr[1], object_type: slot_types[instr[1]], + key_slot: instr[3], key_type: slot_types[instr[3]] + } } } } From 7d0c96f3285ae3f02e5fd9f7b573fa5d5934431f Mon Sep 17 00:00:00 2001 From: John Alanbrook Date: Sat, 21 Feb 2026 13:44:34 -0600 Subject: [PATCH 02/11] inline --- bench_arith.ce | 86 +++++++++++++++++++++++++ bench_arith.js | 67 ++++++++++++++++++++ bench_arith.lua | 68 ++++++++++++++++++++ bench_array.ce | 113 +++++++++++++++++++++++++++++++++ bench_array.js | 93 +++++++++++++++++++++++++++ bench_array.lua | 93 +++++++++++++++++++++++++++ bench_fib.ce | 21 +++++++ bench_object.ce | 118 +++++++++++++++++++++++++++++++++++ bench_object.js | 99 +++++++++++++++++++++++++++++ bench_object.lua | 101 ++++++++++++++++++++++++++++++ mcode.cm | 115 ++++++++++++++++++++++++++++++++++ source/mach.c | 159 +++++++++++++++++++++++++++++++++++++++++++++++ source/runtime.c | 81 ++++++++++++++++++++++++ streamline.cm | 15 ++++- vm_suite.ce | 146 +++++++++++++++++++++++++++++++++++++++++++ 15 files changed, 1372 insertions(+), 3 deletions(-) create mode 100644 bench_arith.ce create mode 100644 bench_arith.js create mode 100644 bench_arith.lua create mode 100644 bench_array.ce create mode 100644 bench_array.js create mode 100644 bench_array.lua create mode 100644 bench_fib.ce create mode 100644 bench_object.ce create mode 100644 bench_object.js create mode 100644 bench_object.lua diff --git a/bench_arith.ce b/bench_arith.ce new file mode 100644 index 00000000..6abae5a5 --- /dev/null +++ b/bench_arith.ce @@ -0,0 +1,86 @@ +// bench_arith.ce — arithmetic and number crunching benchmark +// Tests: integer add/mul, float ops, loop counter overhead, conditionals + +var time = use('time') + +def iterations = 2000000 + +// 1. Integer sum in tight loop +function bench_int_sum() { + var i = 0 + var s = 0 + for (i = 0; i < iterations; i++) { + s = s + i + } + return s +} + +// 2. Integer multiply + mod (sieve-like) +function bench_int_mul_mod() { + var i = 0 + var s = 0 + for (i = 1; i < iterations; i++) { + s = s + (i * 7 % 1000) + } + return s +} + +// 3. Float math — accumulate with division +function bench_float_arith() { + var i = 0 + var s = 0.5 + for (i = 1; i < iterations; i++) { + s = s + 1.0 / i + } + return s +} + +// 4. Nested loop with branch (fizzbuzz-like counter) +function bench_branch() { + var i = 0 + var fizz = 0 + var buzz = 0 + var fizzbuzz = 0 + for (i = 1; i <= iterations; i++) { + if (i % 15 == 0) { + fizzbuzz = fizzbuzz + 1 + } else if (i % 3 == 0) { + fizz = fizz + 1 + } else if (i % 5 == 0) { + buzz = buzz + 1 + } + } + return fizz + buzz + fizzbuzz +} + +// 5. Nested loop (small inner) +function bench_nested() { + var i = 0 + var j = 0 + var s = 0 + def outer = 5000 + def inner = 5000 + for (i = 0; i < outer; i++) { + for (j = 0; j < inner; j++) { + s = s + 1 + } + } + return s +} + +// Run each and print timing +function run(name, fn) { + var start = time.number() + var result = fn() + var elapsed = time.number() - start + var ms = whole(elapsed * 100000) / 100 + log.console(` ${name}: ${ms} ms (result: ${result})`) +} + +log.console("=== Arithmetic Benchmark ===") +log.console(` iterations: ${iterations}`) +run("int_sum ", bench_int_sum) +run("int_mul_mod ", bench_int_mul_mod) +run("float_arith ", bench_float_arith) +run("branch ", bench_branch) +run("nested_loop ", bench_nested) diff --git a/bench_arith.js b/bench_arith.js new file mode 100644 index 00000000..0dda3616 --- /dev/null +++ b/bench_arith.js @@ -0,0 +1,67 @@ +// bench_arith.js — arithmetic and number crunching benchmark (QuickJS) + +const iterations = 2000000; + +function bench_int_sum() { + let s = 0; + for (let i = 0; i < iterations; i++) { + s = s + i; + } + return s; +} + +function bench_int_mul_mod() { + let s = 0; + for (let i = 1; i < iterations; i++) { + s = s + (i * 7 % 1000); + } + return s; +} + +function bench_float_arith() { + let s = 0.5; + for (let i = 1; i < iterations; i++) { + s = s + 1.0 / i; + } + return s; +} + +function bench_branch() { + let fizz = 0, buzz = 0, fizzbuzz = 0; + for (let i = 1; i <= iterations; i++) { + if (i % 15 === 0) { + fizzbuzz = fizzbuzz + 1; + } else if (i % 3 === 0) { + fizz = fizz + 1; + } else if (i % 5 === 0) { + buzz = buzz + 1; + } + } + return fizz + buzz + fizzbuzz; +} + +function bench_nested() { + let s = 0; + const outer = 5000, inner = 5000; + for (let i = 0; i < outer; i++) { + for (let j = 0; j < inner; j++) { + s = s + 1; + } + } + return s; +} + +function run(name, fn) { + const start = performance.now(); + const result = fn(); + const elapsed = performance.now() - start; + console.log(` ${name}: ${elapsed.toFixed(2)} ms (result: ${result})`); +} + +console.log("=== Arithmetic Benchmark ==="); +console.log(` iterations: ${iterations}`); +run("int_sum ", bench_int_sum); +run("int_mul_mod ", bench_int_mul_mod); +run("float_arith ", bench_float_arith); +run("branch ", bench_branch); +run("nested_loop ", bench_nested); diff --git a/bench_arith.lua b/bench_arith.lua new file mode 100644 index 00000000..bc6aaa13 --- /dev/null +++ b/bench_arith.lua @@ -0,0 +1,68 @@ +-- bench_arith.lua — arithmetic and number crunching benchmark (Lua) + +local iterations = 2000000 +local clock = os.clock + +local function bench_int_sum() + local s = 0 + for i = 0, iterations - 1 do + s = s + i + end + return s +end + +local function bench_int_mul_mod() + local s = 0 + for i = 1, iterations - 1 do + s = s + (i * 7 % 1000) + end + return s +end + +local function bench_float_arith() + local s = 0.5 + for i = 1, iterations - 1 do + s = s + 1.0 / i + end + return s +end + +local function bench_branch() + local fizz, buzz, fizzbuzz = 0, 0, 0 + for i = 1, iterations do + if i % 15 == 0 then + fizzbuzz = fizzbuzz + 1 + elseif i % 3 == 0 then + fizz = fizz + 1 + elseif i % 5 == 0 then + buzz = buzz + 1 + end + end + return fizz + buzz + fizzbuzz +end + +local function bench_nested() + local s = 0 + local outer, inner = 5000, 5000 + for i = 0, outer - 1 do + for j = 0, inner - 1 do + s = s + 1 + end + end + return s +end + +local function run(name, fn) + local start = clock() + local result = fn() + local elapsed = (clock() - start) * 1000 + print(string.format(" %s: %.2f ms (result: %s)", name, elapsed, tostring(result))) +end + +print("=== Arithmetic Benchmark ===") +print(string.format(" iterations: %d", iterations)) +run("int_sum ", bench_int_sum) +run("int_mul_mod ", bench_int_mul_mod) +run("float_arith ", bench_float_arith) +run("branch ", bench_branch) +run("nested_loop ", bench_nested) diff --git a/bench_array.ce b/bench_array.ce new file mode 100644 index 00000000..91f9d6d2 --- /dev/null +++ b/bench_array.ce @@ -0,0 +1,113 @@ +// bench_array.ce — array operation benchmark +// Tests: sequential access, push/build, index write, sum reduction, sort + +var time = use('time') + +def size = 100000 + +// 1. Build array with push +function bench_push() { + var a = [] + var i = 0 + for (i = 0; i < size; i++) { + a[] = i + } + return length(a) +} + +// 2. Index write into preallocated array +function bench_index_write() { + var a = array(size, 0) + var i = 0 + for (i = 0; i < size; i++) { + a[i] = i + } + return a[size - 1] +} + +// 3. Sequential read and sum +function bench_seq_read() { + var a = array(size, 0) + var i = 0 + for (i = 0; i < size; i++) { + a[i] = i + } + var s = 0 + for (i = 0; i < size; i++) { + s = s + a[i] + } + return s +} + +// 4. Reverse array in-place +function bench_reverse() { + var a = array(size, 0) + var i = 0 + for (i = 0; i < size; i++) { + a[i] = i + } + var lo = 0 + var hi = size - 1 + var tmp = 0 + while (lo < hi) { + tmp = a[lo] + a[lo] = a[hi] + a[hi] = tmp + lo = lo + 1 + hi = hi - 1 + } + return a[0] +} + +// 5. Nested array access (matrix-like, 300x300) +function bench_matrix() { + def n = 300 + var mat = array(n, null) + var i = 0 + var j = 0 + for (i = 0; i < n; i++) { + mat[i] = array(n, 0) + for (j = 0; j < n; j++) { + mat[i][j] = i * n + j + } + } + // sum diagonal + var s = 0 + for (i = 0; i < n; i++) { + s = s + mat[i][i] + } + return s +} + +// 6. filter-like: count evens +function bench_filter_count() { + var a = array(size, 0) + var i = 0 + for (i = 0; i < size; i++) { + a[i] = i + } + var count = 0 + for (i = 0; i < size; i++) { + if (a[i] % 2 == 0) { + count = count + 1 + } + } + return count +} + +function run(name, fn) { + var start = time.number() + var result = fn() + var elapsed = time.number() - start + var ms = whole(elapsed * 100000) / 100 + log.console(` ${name}: ${ms} ms (result: ${result})`) +} + +log.console("=== Array Benchmark ===") +log.console(` size: ${size}`) +run("push ", bench_push) +run("index_write ", bench_index_write) +run("seq_read_sum ", bench_seq_read) +run("reverse ", bench_reverse) +run("matrix_300 ", bench_matrix) +run("filter_count ", bench_filter_count) diff --git a/bench_array.js b/bench_array.js new file mode 100644 index 00000000..ea493be6 --- /dev/null +++ b/bench_array.js @@ -0,0 +1,93 @@ +// bench_array.js — array operation benchmark (QuickJS) + +const size = 100000; + +function bench_push() { + let a = []; + for (let i = 0; i < size; i++) { + a.push(i); + } + return a.length; +} + +function bench_index_write() { + let a = new Array(size).fill(0); + for (let i = 0; i < size; i++) { + a[i] = i; + } + return a[size - 1]; +} + +function bench_seq_read() { + let a = new Array(size).fill(0); + for (let i = 0; i < size; i++) { + a[i] = i; + } + let s = 0; + for (let i = 0; i < size; i++) { + s = s + a[i]; + } + return s; +} + +function bench_reverse() { + let a = new Array(size).fill(0); + for (let i = 0; i < size; i++) { + a[i] = i; + } + let lo = 0, hi = size - 1, tmp; + while (lo < hi) { + tmp = a[lo]; + a[lo] = a[hi]; + a[hi] = tmp; + lo = lo + 1; + hi = hi - 1; + } + return a[0]; +} + +function bench_matrix() { + const n = 300; + let mat = new Array(n); + for (let i = 0; i < n; i++) { + mat[i] = new Array(n).fill(0); + for (let j = 0; j < n; j++) { + mat[i][j] = i * n + j; + } + } + let s = 0; + for (let i = 0; i < n; i++) { + s = s + mat[i][i]; + } + return s; +} + +function bench_filter_count() { + let a = new Array(size).fill(0); + for (let i = 0; i < size; i++) { + a[i] = i; + } + let count = 0; + for (let i = 0; i < size; i++) { + if (a[i] % 2 === 0) { + count = count + 1; + } + } + return count; +} + +function run(name, fn) { + const start = performance.now(); + const result = fn(); + const elapsed = performance.now() - start; + console.log(` ${name}: ${elapsed.toFixed(2)} ms (result: ${result})`); +} + +console.log("=== Array Benchmark ==="); +console.log(` size: ${size}`); +run("push ", bench_push); +run("index_write ", bench_index_write); +run("seq_read_sum ", bench_seq_read); +run("reverse ", bench_reverse); +run("matrix_300 ", bench_matrix); +run("filter_count ", bench_filter_count); diff --git a/bench_array.lua b/bench_array.lua new file mode 100644 index 00000000..033dca1c --- /dev/null +++ b/bench_array.lua @@ -0,0 +1,93 @@ +-- bench_array.lua — array operation benchmark (Lua) + +local size = 100000 +local clock = os.clock + +local function bench_push() + local a = {} + for i = 0, size - 1 do + a[#a + 1] = i + end + return #a +end + +local function bench_index_write() + local a = {} + for i = 1, size do a[i] = 0 end + for i = 1, size do + a[i] = i - 1 + end + return a[size] +end + +local function bench_seq_read() + local a = {} + for i = 1, size do + a[i] = i - 1 + end + local s = 0 + for i = 1, size do + s = s + a[i] + end + return s +end + +local function bench_reverse() + local a = {} + for i = 1, size do + a[i] = i - 1 + end + local lo, hi = 1, size + while lo < hi do + a[lo], a[hi] = a[hi], a[lo] + lo = lo + 1 + hi = hi - 1 + end + return a[1] +end + +local function bench_matrix() + local n = 300 + local mat = {} + for i = 1, n do + mat[i] = {} + for j = 1, n do + mat[i][j] = (i - 1) * n + (j - 1) + end + end + local s = 0 + for i = 1, n do + s = s + mat[i][i] + end + return s +end + +local function bench_filter_count() + local a = {} + for i = 1, size do + a[i] = i - 1 + end + local count = 0 + for i = 1, size do + if a[i] % 2 == 0 then + count = count + 1 + end + end + return count +end + +local function run(name, fn) + local start = clock() + local result = fn() + local elapsed = (clock() - start) * 1000 + print(string.format(" %s: %.2f ms (result: %s)", name, elapsed, tostring(result))) +end + +print("=== Array Benchmark ===") +print(string.format(" size: %d", size)) +run("push ", bench_push) +run("index_write ", bench_index_write) +run("seq_read_sum ", bench_seq_read) +run("reverse ", bench_reverse) +run("matrix_300 ", bench_matrix) +run("filter_count ", bench_filter_count) diff --git a/bench_fib.ce b/bench_fib.ce new file mode 100644 index 00000000..ad734132 --- /dev/null +++ b/bench_fib.ce @@ -0,0 +1,21 @@ +var time = use('time') + +function fib(n) { + if (n < 2) { + return n + } + return fib(n - 1) + fib(n - 2) +} + +function run(name, fn) { + var start = time.number() + var result = fn() + var elapsed = time.number() - start + var ms = whole(elapsed * 100000) / 100 + log.console(` ${name}: ${ms} ms (result: ${result})`) +} + +log.console("=== Cell fib ===") +run("fib(25)", function() { return fib(25) }) +run("fib(30)", function() { return fib(30) }) +run("fib(35)", function() { return fib(35) }) diff --git a/bench_object.ce b/bench_object.ce new file mode 100644 index 00000000..b4c68efd --- /dev/null +++ b/bench_object.ce @@ -0,0 +1,118 @@ +// bench_object.ce — object/record and string benchmark +// Tests: property read/write, string concat, string interpolation, method-like dispatch + +var time = use('time') + +def iterations = 200000 + +// 1. Record create + property write +function bench_record_create() { + var i = 0 + var r = null + for (i = 0; i < iterations; i++) { + r = {x: i, y: i + 1, z: i + 2} + } + return r.z +} + +// 2. Property read in loop +function bench_prop_read() { + var obj = {x: 10, y: 20, z: 30, w: 40} + var i = 0 + var s = 0 + for (i = 0; i < iterations; i++) { + s = s + obj.x + obj.y + obj.z + obj.w + } + return s +} + +// 3. Dynamic property access (computed keys) +function bench_dynamic_prop() { + var obj = {a: 1, b: 2, c: 3, d: 4, e: 5} + var keys = ["a", "b", "c", "d", "e"] + var i = 0 + var j = 0 + var s = 0 + for (i = 0; i < iterations; i++) { + for (j = 0; j < 5; j++) { + s = s + obj[keys[j]] + } + } + return s +} + +// 4. String concatenation +function bench_string_concat() { + var i = 0 + var s = "" + def n = 10000 + for (i = 0; i < n; i++) { + s = s + "x" + } + return length(s) +} + +// 5. String interpolation +function bench_interpolation() { + var i = 0 + var s = "" + def n = 50000 + for (i = 0; i < n; i++) { + s = `item_${i}` + } + return s +} + +// 6. Prototype chain / method-like call +function make_point(x, y) { + return { + x: x, + y: y, + sum: function(self) { + return self.x + self.y + } + } +} + +function bench_method_call() { + var p = make_point(3, 4) + var i = 0 + var s = 0 + for (i = 0; i < iterations; i++) { + s = s + p.sum(p) + } + return s +} + +// 7. Function call overhead (simple recursion depth) +function fib(n) { + if (n <= 1) return n + return fib(n - 1) + fib(n - 2) +} + +function bench_fncall() { + var i = 0 + var s = 0 + for (i = 0; i < 20; i++) { + s = s + fib(25) + } + return s +} + +function run(name, fn) { + var start = time.number() + var result = fn() + var elapsed = time.number() - start + var ms = whole(elapsed * 100000) / 100 + log.console(` ${name}: ${ms} ms (result: ${result})`) +} + +log.console("=== Object / String / Call Benchmark ===") +log.console(` iterations: ${iterations}`) +run("record_create ", bench_record_create) +run("prop_read ", bench_prop_read) +run("dynamic_prop ", bench_dynamic_prop) +run("string_concat ", bench_string_concat) +run("interpolation ", bench_interpolation) +run("method_call ", bench_method_call) +run("fncall_fib25 ", bench_fncall) diff --git a/bench_object.js b/bench_object.js new file mode 100644 index 00000000..fe4b9595 --- /dev/null +++ b/bench_object.js @@ -0,0 +1,99 @@ +// bench_object.js — object/string/call benchmark (QuickJS) + +const iterations = 200000; + +function bench_record_create() { + let r; + for (let i = 0; i < iterations; i++) { + r = {x: i, y: i + 1, z: i + 2}; + } + return r.z; +} + +function bench_prop_read() { + const obj = {x: 10, y: 20, z: 30, w: 40}; + let s = 0; + for (let i = 0; i < iterations; i++) { + s = s + obj.x + obj.y + obj.z + obj.w; + } + return s; +} + +function bench_dynamic_prop() { + const obj = {a: 1, b: 2, c: 3, d: 4, e: 5}; + const keys = ["a", "b", "c", "d", "e"]; + let s = 0; + for (let i = 0; i < iterations; i++) { + for (let j = 0; j < 5; j++) { + s = s + obj[keys[j]]; + } + } + return s; +} + +function bench_string_concat() { + let s = ""; + const n = 10000; + for (let i = 0; i < n; i++) { + s = s + "x"; + } + return s.length; +} + +function bench_interpolation() { + let s = ""; + const n = 50000; + for (let i = 0; i < n; i++) { + s = `item_${i}`; + } + return s; +} + +function make_point(x, y) { + return { + x: x, + y: y, + sum: function(self) { + return self.x + self.y; + } + }; +} + +function bench_method_call() { + const p = make_point(3, 4); + let s = 0; + for (let i = 0; i < iterations; i++) { + s = s + p.sum(p); + } + return s; +} + +function fib(n) { + if (n <= 1) return n; + return fib(n - 1) + fib(n - 2); +} + +function bench_fncall() { + let s = 0; + for (let i = 0; i < 20; i++) { + s = s + fib(25); + } + return s; +} + +function run(name, fn) { + const start = performance.now(); + const result = fn(); + const elapsed = performance.now() - start; + console.log(` ${name}: ${elapsed.toFixed(2)} ms (result: ${result})`); +} + +console.log("=== Object / String / Call Benchmark ==="); +console.log(` iterations: ${iterations}`); +run("record_create ", bench_record_create); +run("prop_read ", bench_prop_read); +run("dynamic_prop ", bench_dynamic_prop); +run("string_concat ", bench_string_concat); +run("interpolation ", bench_interpolation); +run("method_call ", bench_method_call); +run("fncall_fib25 ", bench_fncall); diff --git a/bench_object.lua b/bench_object.lua new file mode 100644 index 00000000..d24dad0d --- /dev/null +++ b/bench_object.lua @@ -0,0 +1,101 @@ +-- bench_object.lua — object/string/call benchmark (Lua) + +local iterations = 200000 +local clock = os.clock + +local function bench_record_create() + local r + for i = 0, iterations - 1 do + r = {x = i, y = i + 1, z = i + 2} + end + return r.z +end + +local function bench_prop_read() + local obj = {x = 10, y = 20, z = 30, w = 40} + local s = 0 + for i = 0, iterations - 1 do + s = s + obj.x + obj.y + obj.z + obj.w + end + return s +end + +local function bench_dynamic_prop() + local obj = {a = 1, b = 2, c = 3, d = 4, e = 5} + local keys = {"a", "b", "c", "d", "e"} + local s = 0 + for i = 0, iterations - 1 do + for j = 1, 5 do + s = s + obj[keys[j]] + end + end + return s +end + +local function bench_string_concat() + local parts = {} + local n = 10000 + for i = 1, n do + parts[i] = "x" + end + local s = table.concat(parts) + return #s +end + +local function bench_interpolation() + local s = "" + local n = 50000 + for i = 0, n - 1 do + s = string.format("item_%d", i) + end + return s +end + +local function make_point(x, y) + return { + x = x, + y = y, + sum = function(self) + return self.x + self.y + end + } +end + +local function bench_method_call() + local p = make_point(3, 4) + local s = 0 + for i = 0, iterations - 1 do + s = s + p.sum(p) + end + return s +end + +local function fib(n) + if n <= 1 then return n end + return fib(n - 1) + fib(n - 2) +end + +local function bench_fncall() + local s = 0 + for i = 0, 19 do + s = s + fib(25) + end + return s +end + +local function run(name, fn) + local start = clock() + local result = fn() + local elapsed = (clock() - start) * 1000 + print(string.format(" %s: %.2f ms (result: %s)", name, elapsed, tostring(result))) +end + +print("=== Object / String / Call Benchmark ===") +print(string.format(" iterations: %d", iterations)) +run("record_create ", bench_record_create) +run("prop_read ", bench_prop_read) +run("dynamic_prop ", bench_dynamic_prop) +run("string_concat ", bench_string_concat) +run("interpolation ", bench_interpolation) +run("method_call ", bench_method_call) +run("fncall_fib25 ", bench_fncall) diff --git a/mcode.cm b/mcode.cm index c6fae5b3..c80eb7c5 100644 --- a/mcode.cm +++ b/mcode.cm @@ -38,6 +38,11 @@ var mcode = function(ast) { is_array: "is_array", is_function: "is_func", is_object: "is_record", is_stone: "is_stone", is_integer: "is_int", is_text: "is_text", is_number: "is_num", is_logical: "is_bool", is_null: "is_null", + is_blob: "is_blob", is_data: "is_data", + is_true: "is_true", is_false: "is_false", is_fit: "is_fit", + is_character: "is_char", is_digit: "is_digit", is_letter: "is_letter", + is_lower: "is_lower", is_upper: "is_upper", is_whitespace: "is_ws", + is_actor: "is_actor", length: "length" } @@ -873,6 +878,7 @@ var mcode = function(ast) { var inline_every = true var inline_some = true var inline_reduce = true + var inline_map = true // --- Helper: emit a reduce loop body --- // r = {acc, i, arr, fn, len, fn_arity}; emits loop updating acc in-place. @@ -1162,6 +1168,96 @@ var mcode = function(ast) { return dest } + // --- Inline expansion: array(arr, fn) → map --- + var expand_inline_map = function(dest, arr_slot, fn_slot) { + var result = alloc_slot() + var len = alloc_slot() + var i = alloc_slot() + var check = alloc_slot() + var item = alloc_slot() + var fn_arity = alloc_slot() + var arity_is_zero = alloc_slot() + var arity_is_one = alloc_slot() + var null_s = alloc_slot() + var zero = alloc_slot() + var one = alloc_slot() + var f = alloc_slot() + var val = alloc_slot() + var loop_label = gen_label("map_loop") + var call_one_label = gen_label("map_call_one") + var call_two_label = gen_label("map_call_two") + var call_done_label = gen_label("map_call_done") + var done_label = gen_label("map_done") + add_instr(["array", result, 0]) + emit_2("length", len, arr_slot) + emit_2("int", i, 0) + emit_2("int", zero, 0) + emit_2("int", one, 1) + emit_1("null", null_s) + emit_2("length", fn_arity, fn_slot) + emit_label(loop_label) + emit_3("lt", check, i, len) + emit_jump_cond("jump_false", check, done_label) + emit_3("load_index", item, arr_slot, i) + emit_3("eq", arity_is_zero, fn_arity, zero) + emit_jump_cond("jump_false", arity_is_zero, call_one_label) + emit_3("frame", f, fn_slot, 0) + emit_3("setarg", f, 0, null_s) + emit_2("invoke", f, val) + emit_jump(call_done_label) + emit_label(call_one_label) + emit_3("eq", arity_is_one, fn_arity, one) + emit_jump_cond("jump_false", arity_is_one, call_two_label) + emit_3("frame", f, fn_slot, 1) + emit_3("setarg", f, 0, null_s) + emit_3("setarg", f, 1, item) + emit_2("invoke", f, val) + emit_jump(call_done_label) + emit_label(call_two_label) + emit_3("frame", f, fn_slot, 2) + emit_3("setarg", f, 0, null_s) + emit_3("setarg", f, 1, item) + emit_3("setarg", f, 2, i) + emit_2("invoke", f, val) + emit_label(call_done_label) + emit_2("push", result, val) + emit_3("add", i, i, one) + emit_jump(loop_label) + emit_label(done_label) + emit_2("move", dest, result) + return dest + } + + // --- Inline expansion: array(arr, intrinsic_op) → map with direct opcode --- + var expand_inline_map_intrinsic = function(dest, arr_slot, opcode) { + var result = alloc_slot() + var len = alloc_slot() + var i = alloc_slot() + var check = alloc_slot() + var item = alloc_slot() + var val = alloc_slot() + var zero = alloc_slot() + var one = alloc_slot() + var loop_label = gen_label("mapi_loop") + var done_label = gen_label("mapi_done") + add_instr(["array", result, 0]) + emit_2("length", len, arr_slot) + emit_2("int", i, 0) + emit_2("int", zero, 0) + emit_2("int", one, 1) + emit_label(loop_label) + emit_3("lt", check, i, len) + emit_jump_cond("jump_false", check, done_label) + emit_3("load_index", item, arr_slot, i) + emit_2(opcode, val, item) + emit_2("push", result, val) + emit_3("add", i, i, one) + emit_jump(loop_label) + emit_label(done_label) + emit_2("move", dest, result) + return dest + } + // --- Inline expansion: reduce(arr, fn[, initial[, reverse]]) --- var expand_inline_reduce = function(dest, args, nargs) { var arr_slot = args.arr @@ -1929,6 +2025,25 @@ var mcode = function(ast) { d = alloc_slot() return expand_inline_reduce(d, {arr: a0, fn: a1, init: a2, rev: a3}, nargs) } + // array(arr, fn) → inline map expansion + // Skip when first arg is a number literal (that's array(N, fn) — creation, not map) + if (nargs == 2 && fname == "array" && inline_map + && args_list[0].kind != "number") { + // Specialized: array(arr, known_sensory_intrinsic) → direct opcode loop + if (args_list[1].kind == "name" && args_list[1].intrinsic == true + && sensory_ops[args_list[1].name] != null) { + a0 = gen_expr(args_list[0], -1) + d = alloc_slot() + return expand_inline_map_intrinsic(d, a0, sensory_ops[args_list[1].name]) + } + // General: array(arr, fn_literal) → map loop with arity dispatch + if (args_list[1].kind == "function") { + a0 = gen_expr(args_list[0], -1) + a1 = gen_expr(args_list[1], -1) + d = alloc_slot() + return expand_inline_map(d, a0, a1) + } + } } // Collect arg slots diff --git a/source/mach.c b/source/mach.c index 65c32b7a..d9efe270 100644 --- a/source/mach.c +++ b/source/mach.c @@ -269,6 +269,18 @@ typedef enum MachOpcode { MACH_IS_STONE, /* R(A) = is_stone(R(B)) */ MACH_LENGTH, /* R(A) = length(R(B)) — array/text/blob length */ MACH_IS_PROXY, /* R(A) = is_function(R(B)) && R(B).length == 2 */ + MACH_IS_BLOB, /* R(A) = is_blob(R(B)) */ + MACH_IS_DATA, /* R(A) = is_data(R(B)) — plain record, not array/func/blob */ + MACH_IS_TRUE, /* R(A) = (R(B) === true) */ + MACH_IS_FALSE, /* R(A) = (R(B) === false) */ + MACH_IS_FIT, /* R(A) = is_fit(R(B)) — safe integer */ + MACH_IS_CHAR, /* R(A) = is_character(R(B)) — single char text */ + MACH_IS_DIGIT, /* R(A) = is_digit(R(B)) */ + MACH_IS_LETTER, /* R(A) = is_letter(R(B)) */ + MACH_IS_LOWER, /* R(A) = is_lower(R(B)) */ + MACH_IS_UPPER, /* R(A) = is_upper(R(B)) */ + MACH_IS_WS, /* R(A) = is_whitespace(R(B)) */ + MACH_IS_ACTOR, /* R(A) = is_actor(R(B)) — has actor_sym property */ MACH_OP_COUNT } MachOpcode; @@ -381,6 +393,18 @@ static const char *mach_opcode_names[MACH_OP_COUNT] = { [MACH_IS_STONE] = "is_stone", [MACH_LENGTH] = "length", [MACH_IS_PROXY] = "is_proxy", + [MACH_IS_BLOB] = "is_blob", + [MACH_IS_DATA] = "is_data", + [MACH_IS_TRUE] = "is_true", + [MACH_IS_FALSE] = "is_false", + [MACH_IS_FIT] = "is_fit", + [MACH_IS_CHAR] = "is_char", + [MACH_IS_DIGIT] = "is_digit", + [MACH_IS_LETTER] = "is_letter", + [MACH_IS_LOWER] = "is_lower", + [MACH_IS_UPPER] = "is_upper", + [MACH_IS_WS] = "is_ws", + [MACH_IS_ACTOR] = "is_actor", }; /* ---- Compile-time constant pool entry ---- */ @@ -1397,6 +1421,12 @@ vm_dispatch: DT(MACH_IS_ARRAY), DT(MACH_IS_FUNC), DT(MACH_IS_RECORD), DT(MACH_IS_STONE), DT(MACH_LENGTH), DT(MACH_IS_PROXY), + DT(MACH_IS_BLOB), DT(MACH_IS_DATA), + DT(MACH_IS_TRUE), DT(MACH_IS_FALSE), + DT(MACH_IS_FIT), DT(MACH_IS_CHAR), + DT(MACH_IS_DIGIT), DT(MACH_IS_LETTER), + DT(MACH_IS_LOWER), DT(MACH_IS_UPPER), + DT(MACH_IS_WS), DT(MACH_IS_ACTOR), }; #pragma GCC diagnostic pop #undef DT @@ -2364,6 +2394,123 @@ vm_dispatch: frame->slots[a] = JS_NewBool(ctx, is_proxy); VM_BREAK(); } + VM_CASE(MACH_IS_BLOB): + frame->slots[a] = JS_NewBool(ctx, mist_is_blob(frame->slots[b])); + VM_BREAK(); + VM_CASE(MACH_IS_DATA): { + JSValue v = frame->slots[b]; + int result = 0; + if (mist_is_gc_object(v) && !mist_is_array(v) + && !mist_is_function(v) && !mist_is_blob(v)) + result = 1; + frame->slots[a] = JS_NewBool(ctx, result); + VM_BREAK(); + } + VM_CASE(MACH_IS_TRUE): + frame->slots[a] = JS_NewBool(ctx, frame->slots[b] == JS_TRUE); + VM_BREAK(); + VM_CASE(MACH_IS_FALSE): + frame->slots[a] = JS_NewBool(ctx, frame->slots[b] == JS_FALSE); + VM_BREAK(); + VM_CASE(MACH_IS_FIT): { + JSValue v = frame->slots[b]; + int result = 0; + if (JS_IsInt(v)) { + result = 1; + } else if (JS_IsShortFloat(v)) { + double d = JS_VALUE_GET_FLOAT64(v); + result = (isfinite(d) && trunc(d) == d && fabs(d) <= 9007199254740992.0); + } + frame->slots[a] = JS_NewBool(ctx, result); + VM_BREAK(); + } + VM_CASE(MACH_IS_CHAR): { + JSValue v = frame->slots[b]; + int result = 0; + if (MIST_IsImmediateASCII(v)) + result = (MIST_GetImmediateASCIILen(v) == 1); + else if (mist_is_text(v)) + result = (js_string_value_len(v) == 1); + frame->slots[a] = JS_NewBool(ctx, result); + VM_BREAK(); + } + VM_CASE(MACH_IS_DIGIT): { + JSValue v = frame->slots[b]; + int result = 0; + if (MIST_IsImmediateASCII(v) && MIST_GetImmediateASCIILen(v) == 1) { + int ch = MIST_GetImmediateASCIIChar(v, 0); + result = (ch >= '0' && ch <= '9'); + } else if (mist_is_text(v) && js_string_value_len(v) == 1) { + uint32_t ch = js_string_value_get(v, 0); + result = (ch >= '0' && ch <= '9'); + } + frame->slots[a] = JS_NewBool(ctx, result); + VM_BREAK(); + } + VM_CASE(MACH_IS_LETTER): { + JSValue v = frame->slots[b]; + int result = 0; + if (MIST_IsImmediateASCII(v) && MIST_GetImmediateASCIILen(v) == 1) { + int ch = MIST_GetImmediateASCIIChar(v, 0); + result = ((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z')); + } else if (mist_is_text(v) && js_string_value_len(v) == 1) { + uint32_t ch = js_string_value_get(v, 0); + result = ((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z')); + } + frame->slots[a] = JS_NewBool(ctx, result); + VM_BREAK(); + } + VM_CASE(MACH_IS_LOWER): { + JSValue v = frame->slots[b]; + int result = 0; + if (MIST_IsImmediateASCII(v) && MIST_GetImmediateASCIILen(v) == 1) { + int ch = MIST_GetImmediateASCIIChar(v, 0); + result = (ch >= 'a' && ch <= 'z'); + } else if (mist_is_text(v) && js_string_value_len(v) == 1) { + uint32_t ch = js_string_value_get(v, 0); + result = (ch >= 'a' && ch <= 'z'); + } + frame->slots[a] = JS_NewBool(ctx, result); + VM_BREAK(); + } + VM_CASE(MACH_IS_UPPER): { + JSValue v = frame->slots[b]; + int result = 0; + if (MIST_IsImmediateASCII(v) && MIST_GetImmediateASCIILen(v) == 1) { + int ch = MIST_GetImmediateASCIIChar(v, 0); + result = (ch >= 'A' && ch <= 'Z'); + } else if (mist_is_text(v) && js_string_value_len(v) == 1) { + uint32_t ch = js_string_value_get(v, 0); + result = (ch >= 'A' && ch <= 'Z'); + } + frame->slots[a] = JS_NewBool(ctx, result); + VM_BREAK(); + } + VM_CASE(MACH_IS_WS): { + JSValue v = frame->slots[b]; + int result = 0; + if (MIST_IsImmediateASCII(v) && MIST_GetImmediateASCIILen(v) == 1) { + int ch = MIST_GetImmediateASCIIChar(v, 0); + result = (ch == ' ' || ch == '\t' || ch == '\n' + || ch == '\r' || ch == '\f' || ch == '\v'); + } else if (mist_is_text(v) && js_string_value_len(v) == 1) { + uint32_t ch = js_string_value_get(v, 0); + result = (ch == ' ' || ch == '\t' || ch == '\n' + || ch == '\r' || ch == '\f' || ch == '\v'); + } + frame->slots[a] = JS_NewBool(ctx, result); + VM_BREAK(); + } + VM_CASE(MACH_IS_ACTOR): { + JSValue v = frame->slots[b]; + int result = 0; + if (mist_is_record(v) && !JS_IsNull(ctx->actor_sym)) { + result = JS_HasPropertyKey(ctx, v, ctx->actor_sym) > 0; + frame = (JSFrameRegister *)JS_VALUE_GET_PTR(frame_ref.val); + } + frame->slots[a] = JS_NewBool(ctx, result); + VM_BREAK(); + } /* Logical */ VM_CASE(MACH_NOT): { int bval = JS_ToBool(ctx, frame->slots[b]); @@ -3009,6 +3156,18 @@ static MachCode *mcode_lower_func(cJSON *fobj, const char *filename) { else if (strcmp(op, "is_stone") == 0) { AB2(MACH_IS_STONE); } else if (strcmp(op, "length") == 0) { AB2(MACH_LENGTH); } else if (strcmp(op, "is_proxy") == 0) { AB2(MACH_IS_PROXY); } + else if (strcmp(op, "is_blob") == 0) { AB2(MACH_IS_BLOB); } + else if (strcmp(op, "is_data") == 0) { AB2(MACH_IS_DATA); } + else if (strcmp(op, "is_true") == 0) { AB2(MACH_IS_TRUE); } + else if (strcmp(op, "is_false") == 0) { AB2(MACH_IS_FALSE); } + else if (strcmp(op, "is_fit") == 0) { AB2(MACH_IS_FIT); } + else if (strcmp(op, "is_char") == 0) { AB2(MACH_IS_CHAR); } + else if (strcmp(op, "is_digit") == 0) { AB2(MACH_IS_DIGIT); } + else if (strcmp(op, "is_letter") == 0) { AB2(MACH_IS_LETTER); } + else if (strcmp(op, "is_lower") == 0) { AB2(MACH_IS_LOWER); } + else if (strcmp(op, "is_upper") == 0) { AB2(MACH_IS_UPPER); } + else if (strcmp(op, "is_ws") == 0) { AB2(MACH_IS_WS); } + else if (strcmp(op, "is_actor") == 0) { AB2(MACH_IS_ACTOR); } /* Logical */ else if (strcmp(op, "not") == 0) { AB2(MACH_NOT); } else if (strcmp(op, "and") == 0) { ABC3(MACH_AND); } diff --git a/source/runtime.c b/source/runtime.c index acc23613..b749bc0e 100644 --- a/source/runtime.c +++ b/source/runtime.c @@ -11389,6 +11389,79 @@ static JSValue js_cell_is_letter (JSContext *ctx, JSValue this_val, int argc, JS return JS_NewBool (ctx, (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')); } +/* is_true(val) - check if value is exactly true */ +static JSValue js_cell_is_true (JSContext *ctx, JSValue this_val, int argc, JSValue *argv) { + if (argc < 1) return JS_FALSE; + return JS_NewBool (ctx, argv[0] == JS_TRUE); +} + +/* is_false(val) - check if value is exactly false */ +static JSValue js_cell_is_false (JSContext *ctx, JSValue this_val, int argc, JSValue *argv) { + if (argc < 1) return JS_FALSE; + return JS_NewBool (ctx, argv[0] == JS_FALSE); +} + +/* is_fit(val) - check if value is a safe integer (int32 or float with integer value <= 2^53) */ +static JSValue js_cell_is_fit (JSContext *ctx, JSValue this_val, int argc, JSValue *argv) { + if (argc < 1) return JS_FALSE; + JSValue val = argv[0]; + if (JS_IsInt (val)) return JS_TRUE; + if (JS_IsShortFloat (val)) { + double d = JS_VALUE_GET_FLOAT64 (val); + return JS_NewBool (ctx, isfinite (d) && trunc (d) == d && fabs (d) <= 9007199254740992.0); + } + return JS_FALSE; +} + +/* is_character(val) - check if value is a single character text */ +static JSValue js_cell_is_character (JSContext *ctx, JSValue this_val, int argc, JSValue *argv) { + if (argc < 1) return JS_FALSE; + JSValue val = argv[0]; + if (!JS_IsText (val)) return JS_FALSE; + return JS_NewBool (ctx, js_string_value_len (val) == 1); +} + +/* is_digit(val) - check if value is a single digit character */ +static JSValue js_cell_is_digit (JSContext *ctx, JSValue this_val, int argc, JSValue *argv) { + if (argc < 1) return JS_FALSE; + JSValue val = argv[0]; + if (!JS_IsText (val)) return JS_FALSE; + if (js_string_value_len (val) != 1) return JS_FALSE; + uint32_t c = js_string_value_get (val, 0); + return JS_NewBool (ctx, c >= '0' && c <= '9'); +} + +/* is_lower(val) - check if value is a single lowercase letter */ +static JSValue js_cell_is_lower (JSContext *ctx, JSValue this_val, int argc, JSValue *argv) { + if (argc < 1) return JS_FALSE; + JSValue val = argv[0]; + if (!JS_IsText (val)) return JS_FALSE; + if (js_string_value_len (val) != 1) return JS_FALSE; + uint32_t c = js_string_value_get (val, 0); + return JS_NewBool (ctx, c >= 'a' && c <= 'z'); +} + +/* is_upper(val) - check if value is a single uppercase letter */ +static JSValue js_cell_is_upper (JSContext *ctx, JSValue this_val, int argc, JSValue *argv) { + if (argc < 1) return JS_FALSE; + JSValue val = argv[0]; + if (!JS_IsText (val)) return JS_FALSE; + if (js_string_value_len (val) != 1) return JS_FALSE; + uint32_t c = js_string_value_get (val, 0); + return JS_NewBool (ctx, c >= 'A' && c <= 'Z'); +} + +/* is_whitespace(val) - check if value is a single whitespace character */ +static JSValue js_cell_is_whitespace (JSContext *ctx, JSValue this_val, int argc, JSValue *argv) { + if (argc < 1) return JS_FALSE; + JSValue val = argv[0]; + if (!JS_IsText (val)) return JS_FALSE; + if (js_string_value_len (val) != 1) return JS_FALSE; + uint32_t c = js_string_value_get (val, 0); + return JS_NewBool (ctx, c == ' ' || c == '\t' || c == '\n' + || c == '\r' || c == '\f' || c == '\v'); +} + /* is_proto(val, master) - check if val has master in prototype chain */ static JSValue js_cell_is_proto (JSContext *ctx, JSValue this_val, int argc, JSValue *argv) { if (argc < 2) return JS_FALSE; @@ -11556,6 +11629,14 @@ static void JS_AddIntrinsicBaseObjects (JSContext *ctx) { js_set_global_cfunc(ctx, "is_text", js_cell_is_text, 1); js_set_global_cfunc(ctx, "is_proto", js_cell_is_proto, 2); js_set_global_cfunc(ctx, "is_letter", js_cell_is_letter, 1); + js_set_global_cfunc(ctx, "is_true", js_cell_is_true, 1); + js_set_global_cfunc(ctx, "is_false", js_cell_is_false, 1); + js_set_global_cfunc(ctx, "is_fit", js_cell_is_fit, 1); + js_set_global_cfunc(ctx, "is_character", js_cell_is_character, 1); + js_set_global_cfunc(ctx, "is_digit", js_cell_is_digit, 1); + js_set_global_cfunc(ctx, "is_lower", js_cell_is_lower, 1); + js_set_global_cfunc(ctx, "is_upper", js_cell_is_upper, 1); + js_set_global_cfunc(ctx, "is_whitespace", js_cell_is_whitespace, 1); /* Utility functions */ js_set_global_cfunc(ctx, "apply", js_cell_fn_apply, 2); diff --git a/streamline.cm b/streamline.cm index 95c80daa..c1aa2704 100644 --- a/streamline.cm +++ b/streamline.cm @@ -46,13 +46,17 @@ var streamline = function(ir, log) { not: true, and: true, or: true, is_int: true, is_text: true, is_num: true, is_bool: true, is_null: true, is_identical: true, - is_array: true, is_func: true, is_record: true, is_stone: true + is_array: true, is_func: true, is_record: true, is_stone: true, + is_blob: true, is_data: true, + is_true: true, is_false: true, is_fit: true, + is_char: true, is_digit: true, is_letter: true, + is_lower: true, is_upper: true, is_ws: true, is_actor: true } var type_check_map = { is_int: T_INT, is_text: T_TEXT, is_num: T_NUM, is_bool: T_BOOL, is_null: T_NULL, is_array: T_ARRAY, is_func: T_FUNCTION, - is_record: T_RECORD + is_record: T_RECORD, is_blob: T_BLOB } // simplify_algebra dispatch tables @@ -359,7 +363,12 @@ var streamline = function(ir, log) { is_int: [1, T_BOOL], is_text: [1, T_BOOL], is_num: [1, T_BOOL], is_bool: [1, T_BOOL], is_null: [1, T_BOOL], is_identical: [1, T_BOOL], is_array: [1, T_BOOL], is_func: [1, T_BOOL], - is_record: [1, T_BOOL], is_stone: [1, T_BOOL] + is_record: [1, T_BOOL], is_stone: [1, T_BOOL], + is_blob: [1, T_BOOL], is_data: [1, T_BOOL], + is_true: [1, T_BOOL], is_false: [1, T_BOOL], is_fit: [1, T_BOOL], + is_char: [1, T_BOOL], is_digit: [1, T_BOOL], is_letter: [1, T_BOOL], + is_lower: [1, T_BOOL], is_upper: [1, T_BOOL], is_ws: [1, T_BOOL], + is_actor: [1, T_BOOL] } // Known intrinsic return types for invoke result inference. diff --git a/vm_suite.ce b/vm_suite.ce index 1d1f66cf..15ba88c0 100644 --- a/vm_suite.ce +++ b/vm_suite.ce @@ -981,6 +981,99 @@ run("is_proto", function() { if (!is_proto(b, a)) fail("is_proto failed on meme") }) +run("is_data", function() { + if (!is_data({})) fail("is_data {} should be true") + if (is_data([])) fail("is_data [] should be false") + if (is_data(42)) fail("is_data number should be false") + if (is_data("hello")) fail("is_data string should be false") + if (is_data(null)) fail("is_data null should be false") + if (is_data(true)) fail("is_data bool should be false") + if (is_data(function(){})) fail("is_data function should be false") +}) + +run("is_true", function() { + if (!is_true(true)) fail("is_true true should be true") + if (is_true(false)) fail("is_true false should be false") + if (is_true(1)) fail("is_true 1 should be false") + if (is_true("true")) fail("is_true string should be false") + if (is_true(null)) fail("is_true null should be false") +}) + +run("is_false", function() { + if (!is_false(false)) fail("is_false false should be true") + if (is_false(true)) fail("is_false true should be false") + if (is_false(0)) fail("is_false 0 should be false") + if (is_false("")) fail("is_false empty string should be false") + if (is_false(null)) fail("is_false null should be false") +}) + +run("is_fit", function() { + if (!is_fit(0)) fail("is_fit 0 should be true") + if (!is_fit(42)) fail("is_fit 42 should be true") + if (!is_fit(-100)) fail("is_fit -100 should be true") + if (!is_fit(3.0)) fail("is_fit 3.0 should be true") + if (is_fit(3.5)) fail("is_fit 3.5 should be false") + if (is_fit("42")) fail("is_fit string should be false") + if (is_fit(null)) fail("is_fit null should be false") +}) + +run("is_character", function() { + if (!is_character("a")) fail("is_character a should be true") + if (!is_character("Z")) fail("is_character Z should be true") + if (!is_character("5")) fail("is_character 5 should be true") + if (!is_character(" ")) fail("is_character space should be true") + if (is_character("ab")) fail("is_character ab should be false") + if (is_character("")) fail("is_character empty should be false") + if (is_character(42)) fail("is_character number should be false") + if (is_character(null)) fail("is_character null should be false") +}) + +run("is_digit", function() { + if (!is_digit("0")) fail("is_digit 0 should be true") + if (!is_digit("5")) fail("is_digit 5 should be true") + if (!is_digit("9")) fail("is_digit 9 should be true") + if (is_digit("a")) fail("is_digit a should be false") + if (is_digit("55")) fail("is_digit 55 should be false") + if (is_digit(5)) fail("is_digit number should be false") + if (is_digit(null)) fail("is_digit null should be false") +}) + +run("is_letter", function() { + if (!is_letter("a")) fail("is_letter a should be true") + if (!is_letter("Z")) fail("is_letter Z should be true") + if (is_letter("5")) fail("is_letter 5 should be false") + if (is_letter("ab")) fail("is_letter ab should be false") + if (is_letter(42)) fail("is_letter number should be false") +}) + +run("is_lower", function() { + if (!is_lower("a")) fail("is_lower a should be true") + if (!is_lower("z")) fail("is_lower z should be true") + if (is_lower("A")) fail("is_lower A should be false") + if (is_lower("5")) fail("is_lower 5 should be false") + if (is_lower("ab")) fail("is_lower ab should be false") + if (is_lower(42)) fail("is_lower number should be false") +}) + +run("is_upper", function() { + if (!is_upper("A")) fail("is_upper A should be true") + if (!is_upper("Z")) fail("is_upper Z should be true") + if (is_upper("a")) fail("is_upper a should be false") + if (is_upper("5")) fail("is_upper 5 should be false") + if (is_upper("AB")) fail("is_upper AB should be false") + if (is_upper(42)) fail("is_upper number should be false") +}) + +run("is_whitespace", function() { + if (!is_whitespace(" ")) fail("is_whitespace space should be true") + if (!is_whitespace("\t")) fail("is_whitespace tab should be true") + if (!is_whitespace("\n")) fail("is_whitespace newline should be true") + if (is_whitespace("a")) fail("is_whitespace a should be false") + if (is_whitespace(" ")) fail("is_whitespace two spaces should be false") + if (is_whitespace(42)) fail("is_whitespace number should be false") + if (is_whitespace(null)) fail("is_whitespace null should be false") +}) + // ============================================================================ // GLOBAL FUNCTIONS - LENGTH // ============================================================================ @@ -3409,6 +3502,59 @@ run("array map with exit", function() { if (length(result) != 5) fail("array map with exit length unexpected") }) +run("inline map intrinsic is_data", function() { + var items = [{}, [], "hello", 42, true] + var result = array(items, is_data) + if (result[0] != true) fail("is_data {} should be true") + if (result[1] != false) fail("is_data [] should be false") + if (result[2] != false) fail("is_data string should be false") + if (result[3] != false) fail("is_data number should be false") + if (result[4] != false) fail("is_data bool should be false") + if (length(result) != 5) fail("result length should be 5") +}) + +run("inline map intrinsic is_number", function() { + var items = [1, "two", 3.14, null, true] + var result = array(items, is_number) + if (result[0] != true) fail("1 should be number") + if (result[1] != false) fail("'two' should not be number") + if (result[2] != true) fail("3.14 should be number") + if (result[3] != false) fail("null should not be number") + if (result[4] != false) fail("true should not be number") +}) + +run("inline map intrinsic is_text", function() { + var items = ["hello", 42, "", null] + var result = array(items, is_text) + if (result[0] != true) fail("'hello' should be text") + if (result[1] != false) fail("42 should not be text") + if (result[2] != true) fail("'' should be text") + if (result[3] != false) fail("null should not be text") +}) + +run("inline map intrinsic is_digit", function() { + var chars = array("a5B2 ") + var result = array(chars, is_digit) + if (result[0] != false) fail("a should not be digit") + if (result[1] != true) fail("5 should be digit") + if (result[2] != false) fail("B should not be digit") + if (result[3] != true) fail("2 should be digit") + if (result[4] != false) fail("space should not be digit") +}) + +run("inline map lambda", function() { + var arr = [10, 20, 30] + var result = array(arr, function(x) { return x + 1 }) + if (result[0] != 11) fail("10+1 should be 11") + if (result[1] != 21) fail("20+1 should be 21") + if (result[2] != 31) fail("30+1 should be 31") +}) + +run("inline map empty array", function() { + var result = array([], is_number) + if (length(result) != 0) fail("map of empty should be empty") +}) + // ============================================================================ // STRING METHOD EDGE CASES // ============================================================================ From 2ac446f7cfc24b7ac216a77b7101b3fc2feb13ac Mon Sep 17 00:00:00 2001 From: John Alanbrook Date: Sat, 21 Feb 2026 15:05:57 -0600 Subject: [PATCH 03/11] inline fns --- streamline.cm | 389 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 386 insertions(+), 3 deletions(-) diff --git a/streamline.cm b/streamline.cm index c1aa2704..9e6883c4 100644 --- a/streamline.cm +++ b/streamline.cm @@ -2564,6 +2564,337 @@ var streamline = function(ir, log) { return null } + // ========================================================= + // Sensory function IR synthesis for callback inlining + // ========================================================= + var sensory_opcodes = { + is_array: "is_array", is_function: "is_func", is_object: "is_record", + is_stone: "is_stone", is_integer: "is_int", is_text: "is_text", + is_number: "is_num", is_logical: "is_bool", is_null: "is_null", + is_blob: "is_blob", is_data: "is_data", + is_true: "is_true", is_false: "is_false", is_fit: "is_fit", + is_character: "is_char", is_digit: "is_digit", is_letter: "is_letter", + is_lower: "is_lower", is_upper: "is_upper", is_whitespace: "is_ws", + is_actor: "is_actor", length: "length" + } + + var make_sensory_ir = function(name) { + var opcode = sensory_opcodes[name] + if (opcode == null) return null + return { + name: name, nr_args: 1, nr_close_slots: 0, nr_slots: 3, + instructions: [[opcode, 2, 1, 0, 0], ["return", 2, 0, 0]] + } + } + + // ========================================================= + // Inline eligibility check + // ========================================================= + var prefer_inline_set = { + filter: true, every: true, some: true, arrfor: true, + reduce: true, array: true + } + + var can_inline = function(callee_func, is_prefer) { + var instrs = null + var i = 0 + var instr = null + var count = 0 + var limit = 0 + if (callee_func.nr_close_slots > 0) return false + instrs = callee_func.instructions + if (instrs == null) return false + i = 0 + while (i < length(instrs)) { + instr = instrs[i] + if (is_array(instr)) { + if (instr[0] == "get" || instr[0] == "put") { + return false + } + // Reject if function creates child functions (closures may capture + // from the inlined frame, breaking get/put slot references) + if (instr[0] == "function") { + return false + } + } + i = i + 1 + } + if (callee_func.disruption_pc != null && callee_func.disruption_pc > 0) { + return false + } + count = 0 + i = 0 + while (i < length(instrs)) { + if (is_array(instrs[i])) count = count + 1 + i = i + 1 + } + limit = is_prefer ? 200 : 40 + return count <= limit + } + + // ========================================================= + // Pass: inline_calls — inline same-module + sensory functions + // ========================================================= + var inline_counter = 0 + + var inline_calls = function(func, ir, log) { + var instructions = func.instructions + var num_instr = 0 + var i = 0 + var j = 0 + var k = 0 + var instr = null + var op = null + var changed = false + var inline_count = 0 + var max_inlines = 20 + var slot_to_func_idx = {} + var slot_to_intrinsic = {} + var callee_slot = 0 + var frame_slot = 0 + var argc = 0 + var result_slot = 0 + var call_start = 0 + var call_end = 0 + var arg_slots = null + var callee_func = null + var is_prefer = false + var base = 0 + var remap = null + var cinstr = null + var cop = null + var new_instr = null + var refs = null + var label_prefix = null + var cont_label = null + var spliced = null + var before = null + var after = null + var inlined_body = null + var fi = null + var intrinsic_name = null + + if (instructions == null) return false + num_instr = length(instructions) + if (num_instr == 0) return false + + // Build resolution maps + i = 0 + while (i < num_instr) { + instr = instructions[i] + if (is_array(instr)) { + op = instr[0] + if (op == "function") { + slot_to_func_idx[text(instr[1])] = instr[2] + } else if (op == "access" && is_object(instr[2]) && instr[2].make == "intrinsic") { + slot_to_intrinsic[text(instr[1])] = instr[2].name + } + } + i = i + 1 + } + + // Scan for frame/setarg/invoke sequences and inline + i = 0 + while (i < length(instructions)) { + instr = instructions[i] + if (!is_array(instr) || instr[0] != "frame") { + i = i + 1 + continue + } + if (inline_count >= max_inlines) { + i = i + 1 + continue + } + + frame_slot = instr[1] + callee_slot = instr[2] + argc = instr[3] + call_start = i + + // Collect setarg and find invoke + arg_slots = array(argc + 1, -1) + j = i + 1 + call_end = -1 + while (j < length(instructions)) { + instr = instructions[j] + if (!is_array(instr)) { + j = j + 1 + continue + } + op = instr[0] + if (op == "setarg" && instr[1] == frame_slot) { + arg_slots[instr[2]] = instr[3] + } else if ((op == "invoke" || op == "tail_invoke") && instr[1] == frame_slot) { + result_slot = instr[2] + call_end = j + j = j + 1 + break + } else if (op == "frame" || op == "goframe") { + // Another frame before invoke — abort this pattern + break + } + j = j + 1 + } + + if (call_end < 0) { + i = i + 1 + continue + } + + // Resolve callee + callee_func = null + is_prefer = false + + fi = slot_to_func_idx[text(callee_slot)] + if (fi != null && ir.functions != null && fi >= 0 && fi < length(ir.functions)) { + callee_func = ir.functions[fi] + } + + if (callee_func == null) { + intrinsic_name = slot_to_intrinsic[text(callee_slot)] + if (intrinsic_name != null) { + if (sensory_opcodes[intrinsic_name] != null) { + callee_func = make_sensory_ir(intrinsic_name) + } + if (callee_func != null) { + is_prefer = true + } + } + } + + if (callee_func == null) { + i = i + 1 + continue + } + + // Check eligibility + if (!can_inline(callee_func, is_prefer)) { + i = i + 1 + continue + } + + // Slot remapping + base = func.nr_slots + func.nr_slots = func.nr_slots + callee_func.nr_slots + remap = array(callee_func.nr_slots, -1) + + // Slot 0 (this) → arg_slots[0] if provided, else allocate a null slot + if (length(arg_slots) > 0 && arg_slots[0] >= 0) { + remap[0] = arg_slots[0] + } else { + remap[0] = base + } + + // Params 1..nr_args → corresponding arg_slots + j = 1 + while (j <= callee_func.nr_args) { + if (j < length(arg_slots) && arg_slots[j] >= 0) { + remap[j] = arg_slots[j] + } else { + remap[j] = base + j + } + j = j + 1 + } + + // Temporaries → fresh slots + j = callee_func.nr_args + 1 + while (j < callee_func.nr_slots) { + remap[j] = base + j + j = j + 1 + } + + // Generate unique label prefix + inline_counter = inline_counter + 1 + label_prefix = "_inl" + text(inline_counter) + "_" + cont_label = label_prefix + "cont" + + // Build inlined body with remapping + inlined_body = [] + k = 0 + while (k < length(callee_func.instructions)) { + cinstr = callee_func.instructions[k] + + // Labels (strings that aren't nop markers) + if (is_text(cinstr)) { + if (starts_with(cinstr, "_nop_")) { + inlined_body[] = cinstr + } else { + inlined_body[] = label_prefix + cinstr + } + k = k + 1 + continue + } + + if (!is_array(cinstr)) { + inlined_body[] = cinstr + k = k + 1 + continue + } + + cop = cinstr[0] + + // Handle return → move + jump to continuation + if (cop == "return") { + new_instr = ["move", result_slot, remap[cinstr[1]], cinstr[2], cinstr[3]] + inlined_body[] = new_instr + inlined_body[] = ["jump", cont_label, cinstr[2], cinstr[3]] + k = k + 1 + continue + } + + // Clone and remap the instruction + new_instr = array(cinstr) + refs = get_slot_refs(cinstr) + j = 0 + while (j < length(refs)) { + if (new_instr[refs[j]] >= 0 && new_instr[refs[j]] < length(remap)) { + new_instr[refs[j]] = remap[new_instr[refs[j]]] + } + j = j + 1 + } + + // Remap labels in jump instructions + if (cop == "jump" && is_text(cinstr[1]) && !starts_with(cinstr[1], "_nop_")) { + new_instr[1] = label_prefix + cinstr[1] + } else if ((cop == "jump_true" || cop == "jump_false" || cop == "jump_not_null") + && is_text(cinstr[2]) && !starts_with(cinstr[2], "_nop_")) { + new_instr[2] = label_prefix + cinstr[2] + } + + // Skip function instructions (don't inline nested function definitions) + if (cop == "function") { + // Keep the instruction but don't remap func_id — it still refers to ir.functions + // Only remap slot position 1 (the destination slot) + new_instr = array(cinstr) + if (cinstr[1] >= 0 && cinstr[1] < length(remap)) { + new_instr[1] = remap[cinstr[1]] + } + } + + inlined_body[] = new_instr + k = k + 1 + } + + // Add continuation label + inlined_body[] = cont_label + + // Splice: replace instructions[call_start..call_end] with inlined_body + before = array(instructions, 0, call_start) + after = array(instructions, call_end + 1, length(instructions)) + spliced = array(before, inlined_body) + instructions = array(spliced, after) + func.instructions = instructions + + changed = true + inline_count = inline_count + 1 + + // Continue scanning from after the inlined body + i = call_start + length(inlined_body) + } + + return changed + } + // ========================================================= // Compose all passes // ========================================================= @@ -2666,13 +2997,12 @@ var streamline = function(ir, log) { ir._diagnostics = [] } - // Process main function + // Phase 1: Optimize all functions (bottom-up, existing behavior) if (ir.main != null) { optimize_function(ir.main, log) insert_stone_text(ir.main, log) } - // Process all sub-functions (resolve closure types from parent first) var fi = 0 if (ir.functions != null) { fi = 0 @@ -2684,7 +3014,60 @@ var streamline = function(ir, log) { } } - // Compress slots across all functions (must run after per-function passes) + // Phase 2: Inline pass + var changed_main = false + var changed_fns = null + if (ir.main != null) { + changed_main = inline_calls(ir.main, ir, log) + } + if (ir.functions != null) { + changed_fns = array(length(ir.functions), false) + fi = 0 + while (fi < length(ir.functions)) { + changed_fns[fi] = inline_calls(ir.functions[fi], ir, log) + fi = fi + 1 + } + } + + // Phase 3: Re-optimize inlined functions + if (changed_main) { + optimize_function(ir.main, log) + insert_stone_text(ir.main, log) + } + if (ir.functions != null) { + fi = 0 + while (fi < length(ir.functions)) { + if (changed_fns != null && changed_fns[fi]) { + optimize_function(ir.functions[fi], log) + insert_stone_text(ir.functions[fi], log) + } + fi = fi + 1 + } + } + + // Phase 4: Cascade — second inline round (callbacks inside inlined bodies) + if (changed_main) { + changed_main = inline_calls(ir.main, ir, log) + if (changed_main) { + optimize_function(ir.main, log) + insert_stone_text(ir.main, log) + } + } + if (ir.functions != null) { + fi = 0 + while (fi < length(ir.functions)) { + if (changed_fns != null && changed_fns[fi]) { + changed_fns[fi] = inline_calls(ir.functions[fi], ir, log) + if (changed_fns[fi]) { + optimize_function(ir.functions[fi], log) + insert_stone_text(ir.functions[fi], log) + } + } + fi = fi + 1 + } + } + + // Phase 5: Compress slots across all functions (must run after per-function passes) compress_slots(ir) // Expose DEF/USE functions via log if requested From bbeb757e4083c3797ed0f3d66eabc9f9e29d6853 Mon Sep 17 00:00:00 2001 From: John Alanbrook Date: Sat, 21 Feb 2026 16:23:44 -0600 Subject: [PATCH 04/11] faster --- qbe_emit.cm | 1029 +++++++++--------------------------------- source/qbe_helpers.c | 514 +++++++++------------ 2 files changed, 444 insertions(+), 1099 deletions(-) diff --git a/qbe_emit.cm b/qbe_emit.cm index 8a7f3a7c..7b1b759e 100644 --- a/qbe_emit.cm +++ b/qbe_emit.cm @@ -11,6 +11,7 @@ var emit_helpers = function(qbe) { var h = [] + var lb = "{" // --- Slot access IL fragments --- var sr = function(name, slot) { @@ -36,146 +37,10 @@ ${sw("w", "%fp2", "%dest", result_var)} ret 0` } - // --- Allocating tail without dest write --- - var alloc_tail_nw = function() { - return ` %fp2 =l call $cell_rt_refresh_fp_checked(l %ctx) - jnz %fp2, @ok, @exc -@ok - ret %fp2 -@exc - ret 0` - } - // ============================================================ // Category A: Pure QBE helpers (no C calls) // ============================================================ - // move - h[] = `export function $__move_ss(l %fp, l %dest, l %src) { -@entry -${sr("a", "%src")} -${sw("w", "%fp", "%dest", "%a")} - ret -}` - - // int comparisons - var int_ops = [ - ["eq_int", "ceqw"], ["ne_int", "cnew"], ["lt_int", "csltw"], - ["le_int", "cslew"], ["gt_int", "csgtw"], ["ge_int", "csgew"] - ] - var i = 0 - while (i < length(int_ops)) { - h[] = `export function $__${int_ops[i][0]}_ss(l %fp, l %dest, l %s1, l %s2) { -@entry -${sr("a", "%s1")} -${sr("b", "%s2")} - %ia =l sar %a, 1 - %ib =l sar %b, 1 - %iaw =w copy %ia - %ibw =w copy %ib - %cr =w ${int_ops[i][1]} %iaw, %ibw - %crext =l extuw %cr - %sh =l shl %crext, 5 - %r =l or %sh, 3 -${sw("w", "%fp", "%dest", "%r")} - ret -}` - i = i + 1 - } - - // bool comparisons - h[] = `export function $__eq_bool_ss(l %fp, l %dest, l %s1, l %s2) { -@entry -${sr("a", "%s1")} -${sr("b", "%s2")} - %cr =w ceql %a, %b - %crext =l extuw %cr - %sh =l shl %crext, 5 - %r =l or %sh, 3 -${sw("w", "%fp", "%dest", "%r")} - ret -}` - - h[] = `export function $__ne_bool_ss(l %fp, l %dest, l %s1, l %s2) { -@entry -${sr("a", "%s1")} -${sr("b", "%s2")} - %cr =w cnel %a, %b - %crext =l extuw %cr - %sh =l shl %crext, 5 - %r =l or %sh, 3 -${sw("w", "%fp", "%dest", "%r")} - ret -}` - - // is_identical (same as eq_bool) - h[] = `export function $__is_identical_ss(l %fp, l %dest, l %s1, l %s2) { -@entry -${sr("a", "%s1")} -${sr("b", "%s2")} - %cr =w ceql %a, %b - %crext =l extuw %cr - %sh =l shl %crext, 5 - %r =l or %sh, 3 -${sw("w", "%fp", "%dest", "%r")} - ret -}` - - // is_int: (val & 1) == 0 - h[] = `export function $__is_int_ss(l %fp, l %dest, l %src) { -@entry -${sr("a", "%src")} - %t =l and %a, 1 - %cr =w ceql %t, 0 - %crext =l extuw %cr - %sh =l shl %crext, 5 - %r =l or %sh, 3 -${sw("w", "%fp", "%dest", "%r")} - ret -}` - - // is_null: (val & 31) == 7 - h[] = `export function $__is_null_ss(l %fp, l %dest, l %src) { -@entry -${sr("a", "%src")} - %t =l and %a, 31 - %cr =w ceql %t, 7 - %crext =l extuw %cr - %sh =l shl %crext, 5 - %r =l or %sh, 3 -${sw("w", "%fp", "%dest", "%r")} - ret -}` - - // is_bool: (val & 31) == 3 - h[] = `export function $__is_bool_ss(l %fp, l %dest, l %src) { -@entry -${sr("a", "%src")} - %t =l and %a, 31 - %cr =w ceql %t, 3 - %crext =l extuw %cr - %sh =l shl %crext, 5 - %r =l or %sh, 3 -${sw("w", "%fp", "%dest", "%r")} - ret -}` - - // is_num: (val & 1 == 0) || (val & 7 == 5) - h[] = `export function $__is_num_ss(l %fp, l %dest, l %src) { -@entry -${sr("a", "%src")} - %t1 =l and %a, 1 - %ii =w ceql %t1, 0 - %t2 =l and %a, 7 - %fi =w ceql %t2, 5 - %cr =w or %ii, %fi - %crext =l extuw %cr - %sh =l shl %crext, 5 - %r =l or %sh, 3 -${sw("w", "%fp", "%dest", "%r")} - ret -}` - // ============================================================ // Category B: Non-allocating C call helpers // ============================================================ @@ -185,16 +50,16 @@ ${sw("w", "%fp", "%dest", "%r")} ["is_stone", "JS_IsStone", false], ["is_proxy", "cell_rt_is_proxy", true] ] + var i = 0 var tc_name = null var tc_cfn = null var tc_ctx = null - i = 0 while (i < length(tc_ops)) { tc_name = tc_ops[i][0] tc_cfn = tc_ops[i][1] tc_ctx = tc_ops[i][2] if (tc_ctx) { - h[] = `export function $__${tc_name}_ss(l %ctx, l %fp, l %dest, l %src) { + h[] = `export function $__${tc_name}_ss(l %ctx, l %fp, l %dest, l %src) ${lb} @entry ${sr("a", "%src")} %cr =w call $${tc_cfn}(l %ctx, l %a) @@ -205,7 +70,7 @@ ${sw("w", "%fp", "%dest", "%r")} ret }` } else { - h[] = `export function $__${tc_name}_ss(l %fp, l %dest, l %src) { + h[] = `export function $__${tc_name}_ss(l %fp, l %dest, l %src) ${lb} @entry ${sr("a", "%src")} %cr =w call $${tc_cfn}(l %a) @@ -219,46 +84,8 @@ ${sw("w", "%fp", "%dest", "%r")} i = i + 1 } - // is_text: immediate text OR ptr->header type check (OBJ_TEXT=2), chase forwards - h[] = `export function $__is_text_ss(l %fp, l %dest, l %src) { -@entry -${sr("a", "%src")} - %imm =l and %a, 31 - %is_imm =w ceql %imm, 11 - jnz %is_imm, @yes, @chk_ptr -@chk_ptr - %ptag =l and %a, 7 - %is_ptr =w ceql %ptag, 1 - jnz %is_ptr, @ptr, @no -@ptr - %ptr =l and %a, -8 - %hdr =l loadl %ptr -@chase - %ht =l and %hdr, 7 - %is_fwd =w ceql %ht, 7 - jnz %is_fwd, @follow, @chk -@follow - %ptr =l shr %hdr, 3 - %hdr =l loadl %ptr - jmp @chase -@chk - %cr =w ceql %ht, 2 - jmp @pack -@yes - %cr =w copy 1 - jmp @pack -@no - %cr =w copy 0 -@pack - %crext =l extuw %cr - %sh =l shl %crext, 5 - %r =l or %sh, 3 -${sw("w", "%fp", "%dest", "%r")} - ret -}` - // is_record: pointer + header type check (OBJ_RECORD=3), chase forwards - h[] = `export function $__is_record_ss(l %fp, l %dest, l %src) { + h[] = `export function $__is_record_ss(l %fp, l %dest, l %src) ${lb} @entry ${sr("a", "%src")} %ptag =l and %a, 7 @@ -289,7 +116,7 @@ ${sw("w", "%fp", "%dest", "%r")} }` // is_array: inline pointer+header check (OBJ_ARRAY=0), chase forwards - h[] = `export function $__is_array_ss(l %fp, l %dest, l %src) { + h[] = `export function $__is_array_ss(l %fp, l %dest, l %src) ${lb} @entry ${sr("a", "%src")} %ptag =l and %a, 7 @@ -320,7 +147,7 @@ ${sw("w", "%fp", "%dest", "%r")} }` // is_func: inline pointer+header check (OBJ_FUNCTION=4), chase forwards - h[] = `export function $__is_func_ss(l %fp, l %dest, l %src) { + h[] = `export function $__is_func_ss(l %fp, l %dest, l %src) ${lb} @entry ${sr("a", "%src")} %ptag =l and %a, 7 @@ -350,124 +177,11 @@ ${sw("w", "%fp", "%dest", "%r")} ret }` - // Float comparisons: decode short-float/int inline, then compare in QBE. - var fc_ops = [ - ["eq_float", "ceqd"], ["ne_float", "cned"], ["lt_float", "cltd"], - ["le_float", "cled"], ["gt_float", "cgtd"], ["ge_float", "cged"] - ] - i = 0 - while (i < length(fc_ops)) { - h[] = `export function $__${fc_ops[i][0]}_ss(l %ctx, l %fp, l %dest, l %s1, l %s2) { -@entry -${sr("a", "%s1")} -${sr("b", "%s2")} - %a_tag =l and %a, 1 - %a_is_int =w ceql %a_tag, 0 - jnz %a_is_int, @a_int, @a_float -@a_int - %a_isl =l sar %a, 1 - %a_iw =w copy %a_isl - %ad =d swtof %a_iw - jmp @a_done -@a_float - %a_sexp =l shr %a, 55 - %a_sexp =l and %a_sexp, 255 - %a_is_zero =w ceql %a_sexp, 0 - jnz %a_is_zero, @a_zero, @a_decode -@a_zero - %ad =d copy d_0.0 - jmp @a_done -@a_decode - %a_sign =l shr %a, 63 - %a_mant =l shr %a, 3 - %a_mant =l and %a_mant, 4503599627370495 - %a_dexp =l sub %a_sexp, 127 - %a_dexp =l add %a_dexp, 1023 - %a_s63 =l shl %a_sign, 63 - %a_e52 =l shl %a_dexp, 52 - %a_bits =l or %a_s63, %a_e52 - %a_bits =l or %a_bits, %a_mant - %ad =d cast %a_bits -@a_done - %b_tag =l and %b, 1 - %b_is_int =w ceql %b_tag, 0 - jnz %b_is_int, @b_int, @b_float -@b_int - %b_isl =l sar %b, 1 - %b_iw =w copy %b_isl - %bd =d swtof %b_iw - jmp @b_done -@b_float - %b_sexp =l shr %b, 55 - %b_sexp =l and %b_sexp, 255 - %b_is_zero =w ceql %b_sexp, 0 - jnz %b_is_zero, @b_zero, @b_decode -@b_zero - %bd =d copy d_0.0 - jmp @b_done -@b_decode - %b_sign =l shr %b, 63 - %b_mant =l shr %b, 3 - %b_mant =l and %b_mant, 4503599627370495 - %b_dexp =l sub %b_sexp, 127 - %b_dexp =l add %b_dexp, 1023 - %b_s63 =l shl %b_sign, 63 - %b_e52 =l shl %b_dexp, 52 - %b_bits =l or %b_s63, %b_e52 - %b_bits =l or %b_bits, %b_mant - %bd =d cast %b_bits -@b_done - %cr =w ${fc_ops[i][1]} %ad, %bd - %crext =l extuw %cr - %sh =l shl %crext, 5 - %r =l or %sh, 3 -${sw("w", "%fp", "%dest", "%r")} - ret -}` - i = i + 1 - } - - // Text comparisons: eq/ne via js_string_compare_value, others via cell_rt_* - var txcmp_sv = [ - ["eq_text", "ceqw", 1], ["ne_text", "cnew", 1] - ] - i = 0 - while (i < length(txcmp_sv)) { - h[] = `export function $__${txcmp_sv[i][0]}_ss(l %ctx, l %fp, l %dest, l %s1, l %s2) { -@entry -${sr("a", "%s1")} -${sr("b", "%s2")} - %scmp =w call $js_string_compare_value(l %ctx, l %a, l %b, w ${txcmp_sv[i][2]}) - %cr =w ${txcmp_sv[i][1]} %scmp, 0 - %crext =l extuw %cr - %sh =l shl %crext, 5 - %r =l or %sh, 3 -${sw("w", "%fp", "%dest", "%r")} - ret -}` - i = i + 1 - } - - // lt/le/gt/ge_text via cell_rt_* (return tagged JSValue directly) - var txcmp_rt = ["lt_text", "gt_text", "le_text", "ge_text"] - i = 0 - while (i < length(txcmp_rt)) { - h[] = `export function $__${txcmp_rt[i]}_ss(l %ctx, l %fp, l %dest, l %s1, l %s2) { -@entry -${sr("a", "%s1")} -${sr("b", "%s2")} - %r =l call $cell_rt_${txcmp_rt[i]}(l %ctx, l %a, l %b) -${sw("w", "%fp", "%dest", "%r")} - ret -}` - i = i + 1 - } - // eq_tol, ne_tol (return tagged JSValue directly) — needs tolerance (3rd value) var tol_ops = ["eq_tol", "ne_tol"] i = 0 while (i < length(tol_ops)) { - h[] = `export function $__${tol_ops[i]}_ss(l %ctx, l %fp, l %dest, l %s1, l %s2, l %s3) { + h[] = `export function $__${tol_ops[i]}_ss(l %ctx, l %fp, l %dest, l %s1, l %s2, l %s3) ${lb} @entry ${sr("a", "%s1")} ${sr("b", "%s2")} @@ -480,7 +194,7 @@ ${sw("w", "%fp", "%dest", "%r")} } // not: inline truthiness (no JS_ToBool call) - h[] = `export function $__not_ss(l %ctx, l %fp, l %dest, l %src) { + h[] = `export function $__not_ss(l %ctx, l %fp, l %dest, l %src) ${lb} @entry ${sr("a", "%src")} %t5 =l and %a, 31 @@ -553,7 +267,7 @@ ${sw("w", "%fp", "%dest", "%r")} }` // and, or (return tagged JSValue directly) - h[] = `export function $__and_ss(l %ctx, l %fp, l %dest, l %s1, l %s2) { + h[] = `export function $__and_ss(l %ctx, l %fp, l %dest, l %s1, l %s2) ${lb} @entry ${sr("a", "%s1")} ${sr("b", "%s2")} @@ -562,7 +276,7 @@ ${sw("w", "%fp", "%dest", "%r")} ret }` - h[] = `export function $__or_ss(l %ctx, l %fp, l %dest, l %s1, l %s2) { + h[] = `export function $__or_ss(l %ctx, l %fp, l %dest, l %s1, l %s2) ${lb} @entry ${sr("a", "%s1")} ${sr("b", "%s2")} @@ -571,178 +285,40 @@ ${sw("w", "%fp", "%dest", "%r")} ret }` - // Bitwise unary: bnot - h[] = `export function $__bnot_ss(l %ctx, l %fp, l %dest, l %src) { + // Bitwise unary/binary ops: mirror MACH mcode op behavior via JS_ToInt32 coercion. + h[] = `export function $__bnot_ss(l %ctx, l %fp, l %dest, l %src) ${lb} @entry ${sr("a", "%src")} - %tag =l and %a, 1 - %is_int =w ceql %tag, 0 - jnz %is_int, @ok, @bad -@ok - %ai =l sar %a, 1 - %aiw =w copy %ai - %rw =w xor %aiw, -1 - %rl =l extsw %rw - %r =l shl %rl, 1 + %r =l call $qbe_bnot(l %ctx, l %a) ${sw("w", "%fp", "%dest", "%r")} ret -@bad - call $cell_rt_disrupt(l %ctx) - ret }` - // Bitwise binary ops (int-only; type checks should be inserted upstream) - h[] = `export function $__band_ss(l %ctx, l %fp, l %dest, l %s1, l %s2) { + h[] = `export function $__band_ss(l %ctx, l %fp, l %dest, l %s1, l %s2) ${lb} @entry ${sr("a", "%s1")} ${sr("b", "%s2")} - %a_tag =l and %a, 1 - %b_tag =l and %b, 1 - %a_int =w ceql %a_tag, 0 - %b_int =w ceql %b_tag, 0 - %both_int =w and %a_int, %b_int - jnz %both_int, @ok, @bad -@ok - %ai =l sar %a, 1 - %bi =l sar %b, 1 - %aiw =w copy %ai - %biw =w copy %bi - %rw =w and %aiw, %biw - %rl =l extsw %rw - %r =l shl %rl, 1 + %r =l call $qbe_bitwise_and(l %ctx, l %a, l %b) ${sw("w", "%fp", "%dest", "%r")} ret -@bad - call $cell_rt_disrupt(l %ctx) - ret }` - h[] = `export function $__bor_ss(l %ctx, l %fp, l %dest, l %s1, l %s2) { + h[] = `export function $__bor_ss(l %ctx, l %fp, l %dest, l %s1, l %s2) ${lb} @entry ${sr("a", "%s1")} ${sr("b", "%s2")} - %a_tag =l and %a, 1 - %b_tag =l and %b, 1 - %a_int =w ceql %a_tag, 0 - %b_int =w ceql %b_tag, 0 - %both_int =w and %a_int, %b_int - jnz %both_int, @ok, @bad -@ok - %ai =l sar %a, 1 - %bi =l sar %b, 1 - %aiw =w copy %ai - %biw =w copy %bi - %rw =w or %aiw, %biw - %rl =l extsw %rw - %r =l shl %rl, 1 + %r =l call $qbe_bitwise_or(l %ctx, l %a, l %b) ${sw("w", "%fp", "%dest", "%r")} ret -@bad - call $cell_rt_disrupt(l %ctx) - ret }` - h[] = `export function $__bxor_ss(l %ctx, l %fp, l %dest, l %s1, l %s2) { + h[] = `export function $__bxor_ss(l %ctx, l %fp, l %dest, l %s1, l %s2) ${lb} @entry ${sr("a", "%s1")} ${sr("b", "%s2")} - %a_tag =l and %a, 1 - %b_tag =l and %b, 1 - %a_int =w ceql %a_tag, 0 - %b_int =w ceql %b_tag, 0 - %both_int =w and %a_int, %b_int - jnz %both_int, @ok, @bad -@ok - %ai =l sar %a, 1 - %bi =l sar %b, 1 - %aiw =w copy %ai - %biw =w copy %bi - %rw =w xor %aiw, %biw - %rl =l extsw %rw - %r =l shl %rl, 1 + %r =l call $qbe_bitwise_xor(l %ctx, l %a, l %b) ${sw("w", "%fp", "%dest", "%r")} ret -@bad - call $cell_rt_disrupt(l %ctx) - ret -}` - - h[] = `export function $__bshl_ss(l %ctx, l %fp, l %dest, l %s1, l %s2) { -@entry -${sr("a", "%s1")} -${sr("b", "%s2")} - %a_tag =l and %a, 1 - %b_tag =l and %b, 1 - %a_int =w ceql %a_tag, 0 - %b_int =w ceql %b_tag, 0 - %both_int =w and %a_int, %b_int - jnz %both_int, @ok, @bad -@ok - %ai =l sar %a, 1 - %bi =l sar %b, 1 - %aiw =w copy %ai - %biw =w copy %bi - %sh =w and %biw, 31 - %rw =w shl %aiw, %sh - %rl =l extsw %rw - %r =l shl %rl, 1 -${sw("w", "%fp", "%dest", "%r")} - ret -@bad - call $cell_rt_disrupt(l %ctx) - ret -}` - - h[] = `export function $__bshr_ss(l %ctx, l %fp, l %dest, l %s1, l %s2) { -@entry -${sr("a", "%s1")} -${sr("b", "%s2")} - %a_tag =l and %a, 1 - %b_tag =l and %b, 1 - %a_int =w ceql %a_tag, 0 - %b_int =w ceql %b_tag, 0 - %both_int =w and %a_int, %b_int - jnz %both_int, @ok, @bad -@ok - %ai =l sar %a, 1 - %bi =l sar %b, 1 - %aiw =w copy %ai - %biw =w copy %bi - %sh =w and %biw, 31 - %rw =w sar %aiw, %sh - %rl =l extsw %rw - %r =l shl %rl, 1 -${sw("w", "%fp", "%dest", "%r")} - ret -@bad - call $cell_rt_disrupt(l %ctx) - ret -}` - - h[] = `export function $__bushr_ss(l %ctx, l %fp, l %dest, l %s1, l %s2) { -@entry -${sr("a", "%s1")} -${sr("b", "%s2")} - %a_tag =l and %a, 1 - %b_tag =l and %b, 1 - %a_int =w ceql %a_tag, 0 - %b_int =w ceql %b_tag, 0 - %both_int =w and %a_int, %b_int - jnz %both_int, @ok, @bad -@ok - %ai =l sar %a, 1 - %bi =l sar %b, 1 - %aiw =w copy %ai - %biw =w copy %bi - %sh =w and %biw, 31 - %rw =w shr %aiw, %sh - %rl =l extsw %rw - %r =l shl %rl, 1 -${sw("w", "%fp", "%dest", "%r")} - ret -@bad - call $cell_rt_disrupt(l %ctx) - ret }` // ============================================================ @@ -750,16 +326,26 @@ ${sw("w", "%fp", "%dest", "%r")} // ============================================================ // concat allocates; keep refresh path - h[] = `export function l $__concat_ss(l %ctx, l %fp, l %dest, l %s1, l %s2) { + h[] = `export function l $__concat_ss(l %ctx, l %fp, l %dest, l %s1, l %s2) ${lb} @entry ${sr("a", "%s1")} ${sr("b", "%s2")} - %r =l call $JS_ConcatString(l %ctx, l %a, l %b) -${alloc_tail("%r")} + %same =w ceql %dest, %s1 + %r =l call $cell_rt_concat(l %ctx, l %a, l %b, w %same) + %is_exc =w ceql %r, 15 + jnz %is_exc, @exc, @refresh +@refresh + %fp2 =l call $cell_rt_refresh_fp_checked(l %ctx) + jnz %fp2, @ok, @exc +@ok +${sw("w", "%fp2", "%dest", "%r")} + ret %fp2 +@exc + ret 0 }` // access_lit(ctx, fp, dest, lit_idx) - h[] = `export function l $__access_lit_ss(l %ctx, l %fp, l %dest, l %lit_idx) { + h[] = `export function l $__access_lit_ss(l %ctx, l %fp, l %dest, l %lit_idx) ${lb} @entry %r =l call $cell_rt_access_lit(l %ctx, l %lit_idx) %is_exc =w ceql %r, 15 @@ -772,7 +358,7 @@ ${sw("w", "%fp", "%dest", "%r")} }` // Property access: load_field(ctx, fp, dest, obj_slot, lit_idx) - h[] = `export function l $__load_field_ss(l %ctx, l %fp, l %dest, l %obj_slot, l %lit_idx) { + h[] = `export function l $__load_field_ss(l %ctx, l %fp, l %dest, l %obj_slot, l %lit_idx) ${lb} @entry ${sr("a", "%obj_slot")} %r =l call $cell_rt_load_field_lit(l %ctx, l %a, l %lit_idx) @@ -786,7 +372,7 @@ ${sw("w", "%fp", "%dest", "%r")} }` // load_dynamic(ctx, fp, dest, obj_slot, key_slot) - h[] = `export function l $__load_dynamic_ss(l %ctx, l %fp, l %dest, l %obj_slot, l %key_slot) { + h[] = `export function l $__load_dynamic_ss(l %ctx, l %fp, l %dest, l %obj_slot, l %key_slot) ${lb} @entry ${sr("a", "%obj_slot")} ${sr("b", "%key_slot")} @@ -845,7 +431,7 @@ ${sw("w", "%fp", "%dest", "%r")} }` // load_index(ctx, fp, dest, arr_slot, idx_slot) - h[] = `export function l $__load_index_ss(l %ctx, l %fp, l %dest, l %arr_slot, l %idx_slot) { + h[] = `export function l $__load_index_ss(l %ctx, l %fp, l %dest, l %arr_slot, l %idx_slot) ${lb} @entry ${sr("a", "%arr_slot")} ${sr("b", "%idx_slot")} @@ -895,7 +481,7 @@ ${sw("w", "%fp", "%dest", text(qbe.js_null))} }` // store_field(ctx, fp, obj_slot, val_slot, lit_idx) — no dest write - h[] = `export function l $__store_field_ss(l %ctx, l %fp, l %obj_slot, l %val_slot, l %lit_idx) { + h[] = `export function l $__store_field_ss(l %ctx, l %fp, l %obj_slot, l %val_slot, l %lit_idx) ${lb} @entry ${sr("a", "%obj_slot")} ${sr("b", "%val_slot")} @@ -908,7 +494,7 @@ ${sr("b", "%val_slot")} }` // store_dynamic(ctx, fp, obj_slot, val_slot, key_slot) — no dest write - h[] = `export function l $__store_dynamic_ss(l %ctx, l %fp, l %obj_slot, l %val_slot, l %key_slot) { + h[] = `export function l $__store_dynamic_ss(l %ctx, l %fp, l %obj_slot, l %val_slot, l %key_slot) ${lb} @entry ${sr("a", "%obj_slot")} ${sr("b", "%val_slot")} @@ -949,7 +535,7 @@ ${sr("c", "%key_slot")} }` // store_index(ctx, fp, obj_slot, val_slot, idx_slot) — no dest write - h[] = `export function l $__store_index_ss(l %ctx, l %fp, l %obj_slot, l %val_slot, l %idx_slot) { + h[] = `export function l $__store_index_ss(l %ctx, l %fp, l %obj_slot, l %val_slot, l %idx_slot) ${lb} @entry ${sr("a", "%obj_slot")} ${sr("b", "%val_slot")} @@ -1104,7 +690,7 @@ ${sr("gc", "%idx_slot")} }` // frame(ctx, fp, dest, fn_slot, nargs) - h[] = `export function l $__frame_ss(l %ctx, l %fp, l %dest, l %fn_slot, l %nargs) { + h[] = `export function l $__frame_ss(l %ctx, l %fp, l %dest, l %fn_slot, l %nargs) ${lb} @entry ${sr("a", "%fn_slot")} %r =l call $cell_rt_frame(l %ctx, l %a, l %nargs) @@ -1112,60 +698,36 @@ ${alloc_tail("%r")} }` // goframe(ctx, fp, dest, fn_slot, nargs) - h[] = `export function l $__goframe_ss(l %ctx, l %fp, l %dest, l %fn_slot, l %nargs) { + h[] = `export function l $__goframe_ss(l %ctx, l %fp, l %dest, l %fn_slot, l %nargs) ${lb} @entry ${sr("a", "%fn_slot")} %r =l call $cell_rt_goframe(l %ctx, l %a, l %nargs) ${alloc_tail("%r")} }` - // invoke(ctx, fp, frame_slot, result_slot) — two checks: exc + refresh - h[] = `export function l $__invoke_ss(l %ctx, l %fp, l %frame_slot, l %result_slot) { -@entry -${sr("a", "%frame_slot")} - %r =l call $cell_rt_invoke(l %ctx, l %a) - %is_exc =w ceql %r, 15 - jnz %is_exc, @exc, @ok1 -@ok1 - %fp2 =l call $cell_rt_refresh_fp_checked(l %ctx) - jnz %fp2, @ok2, @exc -@ok2 -${sw("w", "%fp2", "%result_slot", "%r")} - ret %fp2 -@exc - ret 0 -}` - // function(ctx, fp, dest, fn_idx, arity, nr_slots) - h[] = `export function l $__function_ss(l %ctx, l %fp, l %dest, l %fn_idx, l %arity, l %nr_slots) { + h[] = `export function l $__function_ss(l %ctx, l %fp, l %dest, l %fn_idx, l %arity, l %nr_slots) ${lb} @entry %r =l call $cell_rt_make_function(l %ctx, l %fn_idx, l %fp, l %arity, l %nr_slots) ${alloc_tail("%r")} }` // new_record(ctx, fp, dest) - h[] = `export function l $__new_record_ss(l %ctx, l %fp, l %dest) { + h[] = `export function l $__new_record_ss(l %ctx, l %fp, l %dest) ${lb} @entry %r =l call $JS_NewObject(l %ctx) ${alloc_tail("%r")} }` // new_array(ctx, fp, dest) - h[] = `export function l $__new_array_ss(l %ctx, l %fp, l %dest) { + h[] = `export function l $__new_array_ss(l %ctx, l %fp, l %dest) ${lb} @entry %r =l call $JS_NewArray(l %ctx) ${alloc_tail("%r")} -}` - - // new_string(ctx, fp, dest, str_ptr) - h[] = `export function l $__new_string_ss(l %ctx, l %fp, l %dest, l %str_ptr) { -@entry - %r =l call $qbe_new_string(l %ctx, l %str_ptr) -${alloc_tail("%r")} }` // new_float64(ctx, fp, dest, val) — val is a double - h[] = `export function l $__new_float64_ss(l %ctx, l %fp, l %dest, d %val) { + h[] = `export function l $__new_float64_ss(l %ctx, l %fp, l %dest, d %val) ${lb} @entry %r =l call $qbe_new_float64(l %ctx, d %val) ${sw("w", "%fp", "%dest", "%r")} @@ -1173,14 +735,14 @@ ${sw("w", "%fp", "%dest", "%r")} }` // get_intrinsic(ctx, fp, dest, lit_idx) - h[] = `export function l $__get_intrinsic_ss(l %ctx, l %fp, l %dest, l %lit_idx) { + h[] = `export function l $__get_intrinsic_ss(l %ctx, l %fp, l %dest, l %lit_idx) ${lb} @entry %r =l call $cell_rt_get_intrinsic_lit(l %ctx, l %lit_idx) ${alloc_tail("%r")} }` // push(ctx, fp, arr_slot, val_slot) — write back arr in case GC moved it - h[] = `export function l $__push_ss(l %ctx, l %fp, l %arr_slot, l %val_slot) { + h[] = `export function l $__push_ss(l %ctx, l %fp, l %arr_slot, l %val_slot) ${lb} @entry ${sr("a", "%arr_slot")} ${sr("b", "%val_slot")} @@ -1316,7 +878,7 @@ ${sr("gb", "%val_slot")} }` // pop(ctx, fp, dest, arr_slot) - h[] = `export function l $__pop_ss(l %ctx, l %fp, l %dest, l %arr_slot) { + h[] = `export function l $__pop_ss(l %ctx, l %fp, l %dest, l %arr_slot) ${lb} @entry ${sr("a", "%arr_slot")} %ptag =l and %a, 7 @@ -1367,7 +929,7 @@ ${sw("w", "%fp", "%dest", text(qbe.js_null))} }` // length(ctx, fp, dest, src) - h[] = `export function l $__length_ss(l %ctx, l %fp, l %dest, l %src) { + h[] = `export function l $__length_ss(l %ctx, l %fp, l %dest, l %src) ${lb} @entry ${sr("a", "%src")} %r =l call $JS_CellLength(l %ctx, l %a) @@ -1375,7 +937,7 @@ ${alloc_tail("%r")} }` // delete_field(ctx, fp, dest, obj_slot, lit_idx) - h[] = `export function l $__delete_field_ss(l %ctx, l %fp, l %dest, l %obj_slot, l %lit_idx) { + h[] = `export function l $__delete_field_ss(l %ctx, l %fp, l %dest, l %obj_slot, l %lit_idx) ${lb} @entry ${sr("a", "%obj_slot")} %r =l call $cell_rt_delete_lit(l %ctx, l %a, l %lit_idx) @@ -1383,7 +945,7 @@ ${alloc_tail("%r")} }` // delete_dynamic(ctx, fp, dest, obj_slot, key_slot) - h[] = `export function l $__delete_dynamic_ss(l %ctx, l %fp, l %dest, l %obj_slot, l %key_slot) { + h[] = `export function l $__delete_dynamic_ss(l %ctx, l %fp, l %dest, l %obj_slot, l %key_slot) ${lb} @entry ${sr("a", "%obj_slot")} ${sr("b", "%key_slot")} @@ -1392,7 +954,7 @@ ${alloc_tail("%r")} }` // in(ctx, fp, dest, key_slot, obj_slot) - h[] = `export function l $__in_ss(l %ctx, l %fp, l %dest, l %key_slot, l %obj_slot) { + h[] = `export function l $__in_ss(l %ctx, l %fp, l %dest, l %key_slot, l %obj_slot) ${lb} @entry ${sr("a", "%key_slot")} ${sr("b", "%obj_slot")} @@ -1401,7 +963,7 @@ ${alloc_tail("%r")} }` // regexp(ctx, fp, dest, pat_ptr, flg_ptr) - h[] = `export function l $__regexp_ss(l %ctx, l %fp, l %dest, l %pat, l %flg) { + h[] = `export function l $__regexp_ss(l %ctx, l %fp, l %dest, l %pat, l %flg) ${lb} @entry %r =l call $cell_rt_regexp(l %ctx, l %pat, l %flg) ${alloc_tail("%r")} @@ -1479,8 +1041,6 @@ var qbe_emit = function(ir, qbe, export_name) { var compile_fn = function(fn, fn_idx, is_main) { var instrs = fn.instructions - var nr_slots = fn.nr_slots - var nr_args = fn.nr_args var disruption_pc = fn.disruption_pc != null ? fn.disruption_pc : 0 var has_handler = disruption_pc > 0 var name = is_main ? (export_name ? export_name : "cell_main") : "cell_fn_" + text(fn_idx) @@ -1496,22 +1056,13 @@ var qbe_emit = function(ir, qbe, export_name) { var pn = null var sl = null var lbl = null - var fop_id = 0 - var nr_elems = 0 - var ei = 0 - var elem_slot = 0 var v = null - var rv = null var lhs = null var rhs = null - var obj = null - var chk = null var pat_label = null var flg_label = null var in_handler = false - var tol = null var fn_arity = 0 - var arity_tmp = null var fn_nr_slots = 0 var invoke_count = 0 var si = 0 @@ -1522,11 +1073,7 @@ var qbe_emit = function(ir, qbe, export_name) { var has_invokes = false var seg_counter = 0 var ri = 0 - var seg_num = 0 var resume_val = 0 - // Native calls should mirror MACH semantics: function calls are mediated - // by the frame dispatcher, not recursive C calls. - var use_invoke_trampoline = true var j_lbl = null var j_idx = null var jt_lbl = null @@ -1535,9 +1082,6 @@ var qbe_emit = function(ir, qbe, export_name) { var jf_lbl = null var jf_idx = null var jf_backedge = false - var jn_lbl = null - var jn_idx = null - var jn_backedge = false var jnn_lbl = null var jnn_idx = null var jnn_backedge = false @@ -1549,14 +1093,11 @@ var qbe_emit = function(ir, qbe, export_name) { var peek3 = null var peek4 = null var peek5 = null - var floor_frame_slot = 0 - var floor_this_slot = 0 - var floor_arg_slot = 0 - var floor_dest_slot = 0 var text_frame_slot = 0 var text_this_slot = 0 var text_arg_slot = 0 var text_dest_slot = 0 + var cmp_id = 0 // Pre-scan: count invoke/tail_invoke points to assign segment numbers. // Must skip dead code (instructions after terminators) the same way @@ -1579,32 +1120,6 @@ var qbe_emit = function(ir, qbe, export_name) { if (!is_array(scan)) continue scan_op = scan[0] - // Keep invoke segment counting consistent with main-loop peephole: - // inline floor intrinsic call sequence does not emit an invoke. - if (false && scan_op == "access" && is_object(scan[2]) && scan[2].make == "intrinsic" && scan[2].name == "floor") { - if (si + 4 < length(instrs)) { - peek1 = instrs[si] - peek2 = instrs[si + 1] - peek3 = instrs[si + 2] - peek4 = instrs[si + 3] - peek5 = instrs[si + 4] - if (is_array(peek1) && peek1[0] == "frame" && peek1[2] == scan[1] && peek1[3] == 1 && - is_array(peek2) && peek2[0] == "null" && - is_array(peek3) && peek3[0] == "setarg" && - is_array(peek4) && peek4[0] == "setarg" && - is_array(peek5) && peek5[0] == "invoke") { - floor_frame_slot = peek1[1] - floor_this_slot = peek2[1] - if (peek3[1] == floor_frame_slot && peek3[2] == 0 && peek3[3] == floor_this_slot && - peek4[1] == floor_frame_slot && peek4[2] == 1 && - peek5[1] == floor_frame_slot && peek5[2] == floor_this_slot) { - si = si + 5 - continue - } - } - } - } - // Keep invoke segment counting consistent with main-loop peephole: // inline text intrinsic call sequence does not emit an invoke. if (scan_op == "access" && is_object(scan[2]) && scan[2].make == "intrinsic" && scan[2].name == "text") { @@ -1631,7 +1146,7 @@ var qbe_emit = function(ir, qbe, export_name) { } } - if (use_invoke_trampoline && (scan_op == "invoke" || scan_op == "tail_invoke")) { + if (scan_op == "invoke" || scan_op == "tail_invoke") { invoke_count = invoke_count + 1 } // Track terminators — same set as in the main loop @@ -1639,7 +1154,7 @@ var qbe_emit = function(ir, qbe, export_name) { scan_dead = true } } - has_invokes = use_invoke_trampoline && invoke_count > 0 + has_invokes = invoke_count > 0 // Function signature: (ctx, frame_ptr) → JSValue emit(`export function l $${name}(l %ctx, l %fp) {`) @@ -1885,6 +1400,23 @@ var qbe_emit = function(ir, qbe, export_name) { return `%${np}_d` } + // Convert a known numeric JSValue (int or short-float) to int32 in w. + var emit_num_to_int32_w = function(val) { + var np = fresh() + emit(` %${np}_tag =l and ${val}, 1`) + emit(` %${np}_is_int =w ceql %${np}_tag, 0`) + emit(` jnz %${np}_is_int, @${np}_int, @${np}_float`) + emit(`@${np}_int`) + emit(` %${np}_isl =l sar ${val}, 1`) + emit(` %${np}_iw =w copy %${np}_isl`) + emit(` jmp @${np}_done`) + emit(`@${np}_float`) + emit(` %${np}_fd =d copy ${emit_num_to_double(val)}`) + emit(` %${np}_iw =w dtosi %${np}_fd`) + emit(`@${np}_done`) + return `%${np}_iw` + } + // Walk instructions var last_was_term = false i = 0 @@ -1927,47 +1459,6 @@ var qbe_emit = function(ir, qbe, export_name) { a3 = instr[3] last_was_term = false - // Peephole: inline `floor(x)` intrinsic call sequence - // access floor; frame; null this; setarg 0 this; setarg 1 x; invoke - if (false && op == "access" && is_object(a2) && a2.make == "intrinsic" && a2.name == "floor") { - if (instr_idx + 5 < length(instrs)) { - peek1 = instrs[instr_idx + 1] - peek2 = instrs[instr_idx + 2] - peek3 = instrs[instr_idx + 3] - peek4 = instrs[instr_idx + 4] - peek5 = instrs[instr_idx + 5] - if (is_array(peek1) && peek1[0] == "frame" && peek1[2] == a1 && peek1[3] == 1 && - is_array(peek2) && peek2[0] == "null" && - is_array(peek3) && peek3[0] == "setarg" && - is_array(peek4) && peek4[0] == "setarg" && - is_array(peek5) && peek5[0] == "invoke") { - floor_frame_slot = peek1[1] - floor_this_slot = peek2[1] - if (peek3[1] == floor_frame_slot && peek3[2] == 0 && peek3[3] == floor_this_slot && - peek4[1] == floor_frame_slot && peek4[2] == 1 && - peek5[1] == floor_frame_slot && peek5[2] == floor_this_slot) { - floor_arg_slot = peek4[3] - floor_dest_slot = peek5[2] - v = s_read(floor_arg_slot) - p = fresh() - emit(` %${p}_is_num =w copy ${emit_is_num_w(v)}`) - emit(` jnz %${p}_is_num, @${p}_ok, @${p}_bad`) - emit(`@${p}_bad`) - s_write(floor_dest_slot, text(qbe.js_null)) - emit(` jmp @${p}_done`) - emit(`@${p}_ok`) - lhs_d = emit_num_to_double(v) - emit(` %${p}_fd =d call $floor(d ${lhs_d})`) - emit(` %${p}_r =l call $qbe_new_float64(l %ctx, d %${p}_fd)`) - s_write(floor_dest_slot, `%${p}_r`) - emit(`@${p}_done`) - i = instr_idx + 6 - continue - } - } - } - } - // Peephole: inline `text(x)` intrinsic call sequence // access text; frame; null this; setarg 0 this; setarg 1 x; invoke if (op == "access" && is_object(a2) && a2.make == "intrinsic" && a2.name == "text") { @@ -2097,34 +1588,11 @@ var qbe_emit = function(ir, qbe, export_name) { s_write(a1, `%${p}_tag`) emit(` jmp @${p}_done`) emit(`@${p}_slow`) - emit(` # mixed add: numeric add, text concat, else disrupt`) - emit(` %${p}_a_num =w copy ${emit_is_num_w(lhs)}`) - emit(` %${p}_b_num =w copy ${emit_is_num_w(rhs)}`) - emit(` %${p}_both_num =w and %${p}_a_num, %${p}_b_num`) - emit(` jnz %${p}_both_num, @${p}_num_add, @${p}_chk_text`) - emit(`@${p}_num_add`) lhs_d = emit_num_to_double(lhs) rhs_d = emit_num_to_double(rhs) emit(` %${p}_rd =d add ${lhs_d}, ${rhs_d}`) emit(` %${p}_r =l call $qbe_new_float64(l %ctx, d %${p}_rd)`) s_write(a1, `%${p}_r`) - emit(` jmp @${p}_done`) - emit(`@${p}_chk_text`) - emit(` %${p}_a_txt =w copy ${emit_is_text_w(lhs)}`) - emit(` %${p}_b_txt =w copy ${emit_is_text_w(rhs)}`) - emit(` %${p}_both_txt =w and %${p}_a_txt, %${p}_b_txt`) - emit(` jnz %${p}_both_txt, @${p}_txt_add, @${p}_bad`) - emit(`@${p}_txt_add`) - emit(` %fp =l call $__concat_ss(l %ctx, l %fp, l ${text(a1)}, l ${text(a2)}, l ${text(a3)})`) - emit_exc_check() - emit(` jmp @${p}_done`) - emit(`@${p}_bad`) - emit(` call $cell_rt_disrupt(l %ctx)`) - if (has_handler && !in_handler) { - emit(` jmp @disruption_handler`) - } else { - emit(` ret 15`) - } emit(`@${p}_done`) continue } @@ -2424,6 +1892,11 @@ var qbe_emit = function(ir, qbe, export_name) { emit_exc_check() continue } + if (op == "stone_text") { + v = s_read(a1) + emit(` call $cell_rt_stone_text(l ${v})`) + continue + } // --- Type checks — use qbe.cm macros (no GC, no refresh) --- @@ -2489,146 +1962,63 @@ var qbe_emit = function(ir, qbe, export_name) { emit(` call $__is_proxy_ss(l %ctx, l %fp, l ${text(a1)}, l ${text(a2)})`) continue } + if (op == "is_blob" || op == "is_data" || op == "is_fit" || + op == "is_char" || op == "is_digit" || op == "is_letter" || + op == "is_lower" || op == "is_upper" || op == "is_ws") { + v = s_read(a2) + p = fresh() + emit(` %${p}_w =w call $cell_rt_${op}(l ${v})`) + s_write(a1, emit_pack_bool_js(`%${p}_w`)) + continue + } + if (op == "is_true") { + v = s_read(a2) + p = fresh() + emit(` %${p}_w =w ceql ${v}, ${text(qbe.js_true)}`) + s_write(a1, emit_pack_bool_js(`%${p}_w`)) + continue + } + if (op == "is_false") { + v = s_read(a2) + p = fresh() + emit(` %${p}_w =w ceql ${v}, ${text(qbe.js_false)}`) + s_write(a1, emit_pack_bool_js(`%${p}_w`)) + continue + } + if (op == "is_actor") { + v = s_read(a2) + p = fresh() + emit(` %${p}_w =w call $cell_rt_is_actor(l %ctx, l ${v})`) + s_write(a1, emit_pack_bool_js(`%${p}_w`)) + continue + } // --- Comparisons (int path, no GC) --- - if (op == "eq_int") { + if (op == "eq" || op == "ne" || op == "lt" || op == "le" || op == "gt" || op == "ge") { lhs = s_read(a2) rhs = s_read(a3) p = fresh() - emit(` %${p}_ai =l sar ${lhs}, 1`) - emit(` %${p}_bi =l sar ${rhs}, 1`) - emit(` %${p}_aiw =w copy %${p}_ai`) - emit(` %${p}_biw =w copy %${p}_bi`) - emit(` %${p}_cr =w ceqw %${p}_aiw, %${p}_biw`) - emit(` %${p}_crext =l extuw %${p}_cr`) - emit(` %${p}_sh =l shl %${p}_crext, 5`) - emit(` %${p}_r =l or %${p}_sh, 3`) - s_write(a1, `%${p}_r`) - continue - } - if (op == "ne_int") { - lhs = s_read(a2) - rhs = s_read(a3) - p = fresh() - emit(` %${p}_ai =l sar ${lhs}, 1`) - emit(` %${p}_bi =l sar ${rhs}, 1`) - emit(` %${p}_aiw =w copy %${p}_ai`) - emit(` %${p}_biw =w copy %${p}_bi`) - emit(` %${p}_cr =w cnew %${p}_aiw, %${p}_biw`) - emit(` %${p}_crext =l extuw %${p}_cr`) - emit(` %${p}_sh =l shl %${p}_crext, 5`) - emit(` %${p}_r =l or %${p}_sh, 3`) - s_write(a1, `%${p}_r`) - continue - } - if (op == "lt_int") { - lhs = s_read(a2) - rhs = s_read(a3) - p = fresh() - emit(` %${p}_ai =l sar ${lhs}, 1`) - emit(` %${p}_bi =l sar ${rhs}, 1`) - emit(` %${p}_aiw =w copy %${p}_ai`) - emit(` %${p}_biw =w copy %${p}_bi`) - emit(` %${p}_cr =w csltw %${p}_aiw, %${p}_biw`) - emit(` %${p}_crext =l extuw %${p}_cr`) - emit(` %${p}_sh =l shl %${p}_crext, 5`) - emit(` %${p}_r =l or %${p}_sh, 3`) - s_write(a1, `%${p}_r`) - continue - } - if (op == "gt_int") { - lhs = s_read(a2) - rhs = s_read(a3) - p = fresh() - emit(` %${p}_ai =l sar ${lhs}, 1`) - emit(` %${p}_bi =l sar ${rhs}, 1`) - emit(` %${p}_aiw =w copy %${p}_ai`) - emit(` %${p}_biw =w copy %${p}_bi`) - emit(` %${p}_cr =w csgtw %${p}_aiw, %${p}_biw`) - emit(` %${p}_crext =l extuw %${p}_cr`) - emit(` %${p}_sh =l shl %${p}_crext, 5`) - emit(` %${p}_r =l or %${p}_sh, 3`) - s_write(a1, `%${p}_r`) - continue - } - if (op == "le_int") { - lhs = s_read(a2) - rhs = s_read(a3) - p = fresh() - emit(` %${p}_ai =l sar ${lhs}, 1`) - emit(` %${p}_bi =l sar ${rhs}, 1`) - emit(` %${p}_aiw =w copy %${p}_ai`) - emit(` %${p}_biw =w copy %${p}_bi`) - emit(` %${p}_cr =w cslew %${p}_aiw, %${p}_biw`) - emit(` %${p}_crext =l extuw %${p}_cr`) - emit(` %${p}_sh =l shl %${p}_crext, 5`) - emit(` %${p}_r =l or %${p}_sh, 3`) - s_write(a1, `%${p}_r`) - continue - } - if (op == "ge_int") { - lhs = s_read(a2) - rhs = s_read(a3) - p = fresh() - emit(` %${p}_ai =l sar ${lhs}, 1`) - emit(` %${p}_bi =l sar ${rhs}, 1`) - emit(` %${p}_aiw =w copy %${p}_ai`) - emit(` %${p}_biw =w copy %${p}_bi`) - emit(` %${p}_cr =w csgew %${p}_aiw, %${p}_biw`) - emit(` %${p}_crext =l extuw %${p}_cr`) - emit(` %${p}_sh =l shl %${p}_crext, 5`) - emit(` %${p}_r =l or %${p}_sh, 3`) + cmp_id = 0 + if (op == "eq") cmp_id = 0 + else if (op == "ne") cmp_id = 1 + else if (op == "lt") cmp_id = 2 + else if (op == "le") cmp_id = 3 + else if (op == "gt") cmp_id = 4 + else cmp_id = 5 + emit(` %${p}_r =l call $cell_rt_cmp(l %ctx, w ${text(cmp_id)}, l ${lhs}, l ${rhs})`) + emit(` %${p}_exc =w ceql %${p}_r, ${text(qbe.js_exception)}`) + if (has_handler && !in_handler) { + emit(` jnz %${p}_exc, @disruption_handler, @${p}_ok`) + } else { + needs_exc_ret = true + emit(` jnz %${p}_exc, @_exc_ret, @${p}_ok`) + } + emit(`@${p}_ok`) s_write(a1, `%${p}_r`) continue } - // --- Comparisons (float/text/bool) --- - - if (op == "eq_float") { - emit(` call $__eq_float_ss(l %ctx, l %fp, l ${text(a1)}, l ${text(a2)}, l ${text(a3)})`) - continue - } - if (op == "ne_float") { - emit(` call $__ne_float_ss(l %ctx, l %fp, l ${text(a1)}, l ${text(a2)}, l ${text(a3)})`) - continue - } - if (op == "lt_float") { - emit(` call $__lt_float_ss(l %ctx, l %fp, l ${text(a1)}, l ${text(a2)}, l ${text(a3)})`) - continue - } - if (op == "le_float") { - emit(` call $__le_float_ss(l %ctx, l %fp, l ${text(a1)}, l ${text(a2)}, l ${text(a3)})`) - continue - } - if (op == "gt_float") { - emit(` call $__gt_float_ss(l %ctx, l %fp, l ${text(a1)}, l ${text(a2)}, l ${text(a3)})`) - continue - } - if (op == "ge_float") { - emit(` call $__ge_float_ss(l %ctx, l %fp, l ${text(a1)}, l ${text(a2)}, l ${text(a3)})`) - continue - } - if (op == "eq_text") { - emit(` call $__eq_text_ss(l %ctx, l %fp, l ${text(a1)}, l ${text(a2)}, l ${text(a3)})`) - continue - } - if (op == "ne_text") { - emit(` call $__ne_text_ss(l %ctx, l %fp, l ${text(a1)}, l ${text(a2)}, l ${text(a3)})`) - continue - } - if (op == "lt_text" || op == "gt_text" || op == "le_text" || op == "ge_text") { - emit(` call $__${op}_ss(l %ctx, l %fp, l ${text(a1)}, l ${text(a2)}, l ${text(a3)})`) - continue - } - if (op == "eq_bool") { - emit(` call $__eq_bool_ss(l %fp, l ${text(a1)}, l ${text(a2)}, l ${text(a3)})`) - continue - } - if (op == "ne_bool") { - emit(` call $__ne_bool_ss(l %fp, l ${text(a1)}, l ${text(a2)}, l ${text(a3)})`) - continue - } if (op == "eq_tol" || op == "ne_tol") { a4 = instr[4] emit(` call $__${op}_ss(l %ctx, l %fp, l ${text(a1)}, l ${text(a2)}, l ${text(a3)}, l ${text(a4)})`) @@ -2669,15 +2059,84 @@ var qbe_emit = function(ir, qbe, export_name) { continue } if (op == "shl") { - emit(` call $__bshl_ss(l %ctx, l %fp, l ${text(a1)}, l ${text(a2)}, l ${text(a3)})`) + lhs = s_read(a2) + rhs = s_read(a3) + p = fresh() + emit(` %${p}_a_num =w copy ${emit_is_num_w(lhs)}`) + emit(` %${p}_b_num =w copy ${emit_is_num_w(rhs)}`) + emit(` %${p}_both_num =w and %${p}_a_num, %${p}_b_num`) + emit(` jnz %${p}_both_num, @${p}_ok, @${p}_bad`) + emit(`@${p}_ok`) + emit(` %${p}_aiw =w copy ${emit_num_to_int32_w(lhs)}`) + emit(` %${p}_biw =w copy ${emit_num_to_int32_w(rhs)}`) + emit(` %${p}_sh =w and %${p}_biw, 31`) + emit(` %${p}_rw =w shl %${p}_aiw, %${p}_sh`) + emit(` %${p}_rl =l extsw %${p}_rw`) + emit(` %${p}_r =l shl %${p}_rl, 1`) + s_write(a1, `%${p}_r`) + emit(` jmp @${p}_done`) + emit(`@${p}_bad`) + emit(` call $cell_rt_disrupt(l %ctx)`) + if (has_handler && !in_handler) { + emit(` jmp @disruption_handler`) + } else { + emit(` ret 15`) + } + emit(`@${p}_done`) continue } if (op == "shr") { - emit(` call $__bshr_ss(l %ctx, l %fp, l ${text(a1)}, l ${text(a2)}, l ${text(a3)})`) + lhs = s_read(a2) + rhs = s_read(a3) + p = fresh() + emit(` %${p}_a_num =w copy ${emit_is_num_w(lhs)}`) + emit(` %${p}_b_num =w copy ${emit_is_num_w(rhs)}`) + emit(` %${p}_both_num =w and %${p}_a_num, %${p}_b_num`) + emit(` jnz %${p}_both_num, @${p}_ok, @${p}_bad`) + emit(`@${p}_ok`) + emit(` %${p}_aiw =w copy ${emit_num_to_int32_w(lhs)}`) + emit(` %${p}_biw =w copy ${emit_num_to_int32_w(rhs)}`) + emit(` %${p}_sh =w and %${p}_biw, 31`) + emit(` %${p}_rw =w sar %${p}_aiw, %${p}_sh`) + emit(` %${p}_rl =l extsw %${p}_rw`) + emit(` %${p}_r =l shl %${p}_rl, 1`) + s_write(a1, `%${p}_r`) + emit(` jmp @${p}_done`) + emit(`@${p}_bad`) + emit(` call $cell_rt_disrupt(l %ctx)`) + if (has_handler && !in_handler) { + emit(` jmp @disruption_handler`) + } else { + emit(` ret 15`) + } + emit(`@${p}_done`) continue } if (op == "ushr") { - emit(` call $__bushr_ss(l %ctx, l %fp, l ${text(a1)}, l ${text(a2)}, l ${text(a3)})`) + lhs = s_read(a2) + rhs = s_read(a3) + p = fresh() + emit(` %${p}_a_num =w copy ${emit_is_num_w(lhs)}`) + emit(` %${p}_b_num =w copy ${emit_is_num_w(rhs)}`) + emit(` %${p}_both_num =w and %${p}_a_num, %${p}_b_num`) + emit(` jnz %${p}_both_num, @${p}_ok, @${p}_bad`) + emit(`@${p}_ok`) + emit(` %${p}_aiw =w copy ${emit_num_to_int32_w(lhs)}`) + emit(` %${p}_biw =w copy ${emit_num_to_int32_w(rhs)}`) + emit(` %${p}_sh =w and %${p}_biw, 31`) + emit(` %${p}_rw =w shr %${p}_aiw, %${p}_sh`) + emit(` %${p}_rl =l extsw %${p}_rw`) + emit(` %${p}_r =l shl %${p}_rl, 1`) + s_write(a1, `%${p}_r`) + emit(` jmp @${p}_done`) + emit(`@${p}_bad`) + emit(` call $cell_rt_disrupt(l %ctx)`) + if (has_handler && !in_handler) { + emit(` jmp @disruption_handler`) + } else { + emit(` ret 15`) + } + emit(`@${p}_done`) continue } @@ -2840,23 +2299,6 @@ var qbe_emit = function(ir, qbe, export_name) { emit(`@${p}_t`) continue } - if (op == "jump_null") { - v = s_read(a1) - p = fresh() - jn_lbl = sanitize(a2) - jn_idx = label_pos[jn_lbl] - jn_backedge = jn_idx != null && jn_idx < instr_idx - emit(` %${p} =w ceql ${v}, ${text(qbe.js_null)}`) - if (jn_backedge) { - emit(` jnz %${p}, @${p}_bn, @${p}_nn`) - emit(`@${p}_bn`) - emit_backedge_branch(jn_lbl) - } else { - emit(` jnz %${p}, @${jn_lbl}, @${p}_nn`) - } - emit(`@${p}_nn`) - continue - } if (op == "jump_not_null") { v = s_read(a1) p = fresh() @@ -2894,32 +2336,26 @@ var qbe_emit = function(ir, qbe, export_name) { continue } if (op == "invoke" || op == "tail_invoke") { - if (use_invoke_trampoline) { - // Signal dispatcher to call frame in slot a1 and resume at @_segN. - seg_counter = seg_counter + 1 - resume_val = seg_counter * 65536 + a2 - p = fresh() - emit(` %${p}_addrp =l sub %fp, 8`) - // frame->address holds JS_NewInt32((seg << 16) | ret_slot), tagged. - emit(` storel ${text(resume_val * 2)}, %${p}_addrp`) - emit(` call $cell_rt_signal_call(l %ctx, l %fp, l ${text(a1)})`) - emit(` ret ${text(qbe.js_null)}`) - emit(`@_seg${text(seg_counter)}`) - // Dispatcher writes JS_EXCEPTION into ret slot on error; branch here. - v = s_read(a2) - emit(` %${p}_exc =w ceql ${v}, ${text(qbe.js_exception)}`) - if (has_handler && !in_handler) { - emit(` jnz %${p}_exc, @disruption_handler, @${p}_ok`) - } else { - needs_exc_ret = true - emit(` jnz %${p}_exc, @_exc_ret, @${p}_ok`) - } - emit(`@${p}_ok`) + // Signal dispatcher to call frame in slot a1 and resume at @_segN. + seg_counter = seg_counter + 1 + resume_val = seg_counter * 65536 + a2 + p = fresh() + emit(` %${p}_addrp =l sub %fp, 8`) + // frame->address holds JS_NewInt32((seg << 16) | ret_slot), tagged. + emit(` storel ${text(resume_val * 2)}, %${p}_addrp`) + emit(` call $cell_rt_signal_call(l %ctx, l %fp, l ${text(a1)})`) + emit(` ret ${text(qbe.js_null)}`) + emit(`@_seg${text(seg_counter)}`) + // Dispatcher writes JS_EXCEPTION into ret slot on error; branch here. + v = s_read(a2) + emit(` %${p}_exc =w ceql ${v}, ${text(qbe.js_exception)}`) + if (has_handler && !in_handler) { + emit(` jnz %${p}_exc, @disruption_handler, @${p}_ok`) } else { - // Direct helper invoke path (disabled by default). - emit(` %fp =l call $__invoke_ss(l %ctx, l %fp, l ${text(a1)}, l ${text(a2)})`) - emit_exc_check() + needs_exc_ret = true + emit(` jnz %${p}_exc, @_exc_ret, @${p}_ok`) } + emit(`@${p}_ok`) continue } if (op == "goframe") { @@ -2928,30 +2364,9 @@ var qbe_emit = function(ir, qbe, export_name) { continue } if (op == "goinvoke") { - if (use_invoke_trampoline) { - // Tail call via dispatcher: no resume in this frame. - emit(` call $cell_rt_signal_tail_call(l %ctx, l %fp, l ${text(a1)})`) - emit(` ret ${text(qbe.js_null)}`) - } else { - // Direct helper goinvoke path (disabled by default). - v = s_read(a1) - p = fresh() - emit(` %${p}_r =l call $cell_rt_goinvoke(l %ctx, l ${v})`) - emit(` %${p}_exc =w ceql %${p}_r, ${text(qbe.js_exception)}`) - if (has_handler && !in_handler) { - emit(` jnz %${p}_exc, @${p}_exc, @${p}_ok`) - emit(`@${p}_exc`) - emit(` %fp =l call $cell_rt_refresh_fp(l %ctx)`) - emit(` jmp @disruption_handler`) - emit(`@${p}_ok`) - emit(` ret %${p}_r`) - } else { - needs_exc_ret = true - emit(` jnz %${p}_exc, @_exc_ret, @${p}_ok`) - emit(`@${p}_ok`) - emit(` ret %${p}_r`) - } - } + // Tail call via dispatcher: no resume in this frame. + emit(` call $cell_rt_signal_tail_call(l %ctx, l %fp, l ${text(a1)})`) + emit(` ret ${text(qbe.js_null)}`) last_was_term = true continue } @@ -3104,8 +2519,8 @@ var qbe_emit = function(ir, qbe, export_name) { // Export nr_slots for main function so the module loader can use right-sized frames var main_name = export_name ? sanitize(export_name) : "cell_main" - push(data_out, `export data $${main_name}_nr_slots = { w ${text(ir.main.nr_slots)} }`) - push(data_out, `export data $cell_lit_count = { w ${text(length(str_entries))} }`) + push(data_out, "export data $" + main_name + "_nr_slots = { w " + text(ir.main.nr_slots) + " }") + push(data_out, "export data $cell_lit_count = { w " + text(length(str_entries)) + " }") if (length(str_entries) > 0) { lit_data = [] si = 0 @@ -3113,7 +2528,7 @@ var qbe_emit = function(ir, qbe, export_name) { push(lit_data, `l ${str_entries[si].label}`) si = si + 1 } - push(data_out, `export data $cell_lit_table = { ${text(lit_data, ", ")} }`) + push(data_out, "export data $cell_lit_table = { " + text(lit_data, ", ") + " }") } return { diff --git a/source/qbe_helpers.c b/source/qbe_helpers.c index dfd77c83..bab79945 100644 --- a/source/qbe_helpers.c +++ b/source/qbe_helpers.c @@ -17,10 +17,6 @@ JSValue qbe_new_float64(JSContext *ctx, double d) { return __JS_NewFloat64(ctx, d); } -JSValue qbe_new_string(JSContext *ctx, const char *str) { - return JS_NewString(ctx, str); -} - /* Comparison op IDs (must match qbe.cm float_cmp_op_id values) */ enum { QBE_CMP_EQ = 0, @@ -31,128 +27,89 @@ enum { QBE_CMP_GE = 5 }; -/* ============================================================ - Float binary arithmetic - ============================================================ */ - -static inline JSValue qbe_float_binop(JSContext *ctx, JSValue a, JSValue b, - double (*op)(double, double)) { - double da, db; - JS_ToFloat64(ctx, &da, a); - JS_ToFloat64(ctx, &db, b); - double r = op(da, db); - if (!isfinite(r)) - return JS_NULL; - return JS_NewFloat64(ctx, r); -} - -static double op_add(double a, double b) { return a + b; } -static double op_sub(double a, double b) { return a - b; } -static double op_mul(double a, double b) { return a * b; } - -JSValue qbe_float_add(JSContext *ctx, JSValue a, JSValue b) { - return qbe_float_binop(ctx, a, b, op_add); -} - -/* Generic add: concat if both text, float add if both numeric, else type error */ -JSValue cell_rt_add(JSContext *ctx, JSValue a, JSValue b) { - if (JS_IsText(a) && JS_IsText(b)) - return JS_ConcatString(ctx, a, b); - if (JS_IsNumber(a) && JS_IsNumber(b)) - return qbe_float_binop(ctx, a, b, op_add); - JS_RaiseDisrupt(ctx, "cannot add incompatible types"); - return JS_NULL; -} - -JSValue qbe_float_sub(JSContext *ctx, JSValue a, JSValue b) { - return qbe_float_binop(ctx, a, b, op_sub); -} - -JSValue qbe_float_mul(JSContext *ctx, JSValue a, JSValue b) { - return qbe_float_binop(ctx, a, b, op_mul); -} - -JSValue qbe_float_div(JSContext *ctx, JSValue a, JSValue b) { - double da, db; - JS_ToFloat64(ctx, &da, a); - JS_ToFloat64(ctx, &db, b); - if (db == 0.0) - return JS_NULL; - double r = da / db; - if (!isfinite(r)) - return JS_NULL; - return JS_NewFloat64(ctx, r); -} - -JSValue qbe_float_mod(JSContext *ctx, JSValue a, JSValue b) { - double da, db; - JS_ToFloat64(ctx, &da, a); - JS_ToFloat64(ctx, &db, b); - if (db == 0.0) - return JS_NULL; - double r = fmod(da, db); - if (!isfinite(r)) - return JS_NULL; - return JS_NewFloat64(ctx, r); -} - -JSValue qbe_float_pow(JSContext *ctx, JSValue a, JSValue b) { - double da, db; - JS_ToFloat64(ctx, &da, a); - JS_ToFloat64(ctx, &db, b); - double r = pow(da, db); - if (!isfinite(r) && isfinite(da) && isfinite(db)) - return JS_NULL; - return JS_NewFloat64(ctx, r); -} - -/* ============================================================ - Float unary ops - ============================================================ */ - -JSValue qbe_float_neg(JSContext *ctx, JSValue v) { - double d; - JS_ToFloat64(ctx, &d, v); - return JS_NewFloat64(ctx, -d); -} - -JSValue qbe_float_inc(JSContext *ctx, JSValue v) { - double d; - JS_ToFloat64(ctx, &d, v); - return JS_NewFloat64(ctx, d + 1); -} - -JSValue qbe_float_dec(JSContext *ctx, JSValue v) { - double d; - JS_ToFloat64(ctx, &d, v); - return JS_NewFloat64(ctx, d - 1); -} - -/* ============================================================ - Float comparison — returns 0 or 1 for QBE branching - ============================================================ */ - -int qbe_float_cmp(JSContext *ctx, int op, JSValue a, JSValue b) { - double da, db; - JS_ToFloat64(ctx, &da, a); - JS_ToFloat64(ctx, &db, b); - switch (op) { - case QBE_CMP_EQ: return da == db; - case QBE_CMP_NE: return da != db; - case QBE_CMP_LT: return da < db; - case QBE_CMP_LE: return da <= db; - case QBE_CMP_GT: return da > db; - case QBE_CMP_GE: return da >= db; - default: return 0; +/* Generic comparison helper matching MACH eq/ne/lt/le/gt/ge semantics. */ +JSValue cell_rt_cmp(JSContext *ctx, int op, JSValue a, JSValue b) { + if (JS_VALUE_IS_BOTH_INT(a, b)) { + int32_t ia = JS_VALUE_GET_INT(a); + int32_t ib = JS_VALUE_GET_INT(b); + switch (op) { + case QBE_CMP_EQ: return JS_NewBool(ctx, ia == ib); + case QBE_CMP_NE: return JS_NewBool(ctx, ia != ib); + case QBE_CMP_LT: return JS_NewBool(ctx, ia < ib); + case QBE_CMP_LE: return JS_NewBool(ctx, ia <= ib); + case QBE_CMP_GT: return JS_NewBool(ctx, ia > ib); + case QBE_CMP_GE: return JS_NewBool(ctx, ia >= ib); + default: return JS_NewBool(ctx, 0); + } } -} -/* ============================================================ - Boolean conversion wrapper - ============================================================ */ + /* Fast path: identity after chasing forward pointers (matches MACH). */ + { + JSValue ca = JS_IsPtr(a) ? JS_MKPTR(chase(a)) : a; + JSValue cb = JS_IsPtr(b) ? JS_MKPTR(chase(b)) : b; + if (ca == cb) { + if (op == QBE_CMP_EQ || op == QBE_CMP_LE || op == QBE_CMP_GE) + return JS_TRUE; + if (op == QBE_CMP_NE) + return JS_FALSE; + } + } -int qbe_to_bool(JSContext *ctx, JSValue v) { - return JS_ToBool(ctx, v); + if (JS_IsNumber(a) && JS_IsNumber(b)) { + double da, db; + JS_ToFloat64(ctx, &da, a); + JS_ToFloat64(ctx, &db, b); + switch (op) { + case QBE_CMP_EQ: return JS_NewBool(ctx, da == db); + case QBE_CMP_NE: return JS_NewBool(ctx, da != db); + case QBE_CMP_LT: return JS_NewBool(ctx, da < db); + case QBE_CMP_LE: return JS_NewBool(ctx, da <= db); + case QBE_CMP_GT: return JS_NewBool(ctx, da > db); + case QBE_CMP_GE: return JS_NewBool(ctx, da >= db); + default: return JS_NewBool(ctx, 0); + } + } + + if (mist_is_text(a) && mist_is_text(b)) { + int cmp = js_string_compare_value(ctx, a, b, FALSE); + switch (op) { + case QBE_CMP_EQ: return JS_NewBool(ctx, cmp == 0); + case QBE_CMP_NE: return JS_NewBool(ctx, cmp != 0); + case QBE_CMP_LT: return JS_NewBool(ctx, cmp < 0); + case QBE_CMP_LE: return JS_NewBool(ctx, cmp <= 0); + case QBE_CMP_GT: return JS_NewBool(ctx, cmp > 0); + case QBE_CMP_GE: return JS_NewBool(ctx, cmp >= 0); + default: return JS_NewBool(ctx, 0); + } + } + + if (JS_IsNull(a) && JS_IsNull(b)) { + if (op == QBE_CMP_EQ || op == QBE_CMP_LE || op == QBE_CMP_GE) + return JS_TRUE; + return JS_FALSE; + } + + if (JS_IsBool(a) && JS_IsBool(b)) { + int ba = JS_VALUE_GET_BOOL(a); + int bb = JS_VALUE_GET_BOOL(b); + switch (op) { + case QBE_CMP_EQ: return JS_NewBool(ctx, ba == bb); + case QBE_CMP_NE: return JS_NewBool(ctx, ba != bb); + case QBE_CMP_LT: return JS_NewBool(ctx, ba < bb); + case QBE_CMP_LE: return JS_NewBool(ctx, ba <= bb); + case QBE_CMP_GT: return JS_NewBool(ctx, ba > bb); + case QBE_CMP_GE: return JS_NewBool(ctx, ba >= bb); + default: return JS_NewBool(ctx, 0); + } + } + + if (op == QBE_CMP_EQ) + return JS_NewBool(ctx, 0); + if (op == QBE_CMP_NE) + return JS_NewBool(ctx, 1); + + JS_RaiseDisrupt(ctx, "cannot compare: operands must be same type"); + return JS_EXCEPTION; } /* ============================================================ @@ -190,29 +147,37 @@ JSValue qbe_bitwise_xor(JSContext *ctx, JSValue a, JSValue b) { return JS_NewInt32(ctx, ia ^ ib); } -/* ============================================================ - Shift ops on floats (convert to int32, shift, re-tag) - ============================================================ */ +/* Concat helper matching MACH_CONCAT semantics exactly. */ +JSValue cell_rt_concat(JSContext *ctx, JSValue left, JSValue right, int self_assign) { + if (self_assign) { + /* Self-assign pattern: slot[a] = slot[a] + slot[c]. */ + if (JS_IsPtr(left)) { + JSText *s = (JSText *)chase(left); + int slen = (int)s->length; + int rlen = js_string_value_len(right); + int cap = (int)objhdr_cap56(s->hdr); + if (objhdr_type(s->hdr) == OBJ_TEXT + && !(s->hdr & OBJHDR_S_MASK) + && slen + rlen <= cap) { + /* In-place append, no allocation. */ + for (int i = 0; i < rlen; i++) + string_put(s, slen + i, js_string_value_get(right, i)); + s->length = slen + rlen; + return left; + } + } + /* Allocate with growth factor, leave unstoned. */ + JSValue res = JS_ConcatStringGrow(ctx, left, right); + if (JS_IsException(res)) + return JS_EXCEPTION; + return res; + } -JSValue qbe_shift_shl(JSContext *ctx, JSValue a, JSValue b) { - int32_t ia, ib; - JS_ToInt32(ctx, &ia, a); - JS_ToInt32(ctx, &ib, b); - return JS_NewInt32(ctx, ia << (ib & 31)); -} - -JSValue qbe_shift_sar(JSContext *ctx, JSValue a, JSValue b) { - int32_t ia, ib; - JS_ToInt32(ctx, &ia, a); - JS_ToInt32(ctx, &ib, b); - return JS_NewInt32(ctx, ia >> (ib & 31)); -} - -JSValue qbe_shift_shr(JSContext *ctx, JSValue a, JSValue b) { - int32_t ia, ib; - JS_ToInt32(ctx, &ia, a); - JS_ToInt32(ctx, &ib, b); - return JS_NewInt32(ctx, (uint32_t)ia >> (ib & 31)); + /* Different target: exact-fit stoned path. */ + JSValue res = JS_ConcatString(ctx, left, right); + if (JS_IsException(res)) + return JS_EXCEPTION; + return res; } /* ============================================================ @@ -381,13 +346,6 @@ static JSValue cell_rt_load_field_key(JSContext *ctx, JSValue obj, JSValue key) return JS_GetProperty(ctx, obj, key); } -JSValue cell_rt_load_field(JSContext *ctx, JSValue obj, const char *name) { - JSValue key = aot_key_from_cstr(ctx, name); - if (JS_IsException(key)) - return JS_EXCEPTION; - return cell_rt_load_field_key(ctx, obj, key); -} - JSValue cell_rt_load_field_lit(JSContext *ctx, JSValue obj, int64_t lit_idx) { JSValue key = aot_lit_from_index(ctx, lit_idx); if (JS_IsException(key)) @@ -395,29 +353,12 @@ JSValue cell_rt_load_field_lit(JSContext *ctx, JSValue obj, int64_t lit_idx) { return cell_rt_load_field_key(ctx, obj, key); } -/* Like cell_rt_load_field but without the function guard. - Used by load_dynamic when the key happens to be a static string. */ -JSValue cell_rt_load_prop_str(JSContext *ctx, JSValue obj, const char *name) { - JSValue key = aot_key_from_cstr(ctx, name); - if (JS_IsException(key)) - return JS_EXCEPTION; - return JS_GetProperty(ctx, obj, key); -} - static int cell_rt_store_field_key(JSContext *ctx, JSValue val, JSValue obj, JSValue key) { int ret = JS_SetProperty(ctx, obj, key, val); return (ret < 0 || JS_HasException(ctx)) ? 0 : 1; } -int cell_rt_store_field(JSContext *ctx, JSValue val, JSValue obj, - const char *name) { - JSValue key = aot_key_from_cstr(ctx, name); - if (JS_IsException(key)) - return 0; - return cell_rt_store_field_key(ctx, val, obj, key); -} - int cell_rt_store_field_lit(JSContext *ctx, JSValue val, JSValue obj, int64_t lit_idx) { JSValue key = aot_lit_from_index(ctx, lit_idx); @@ -455,25 +396,6 @@ int cell_rt_store_dynamic(JSContext *ctx, JSValue val, JSValue obj, } } -JSValue cell_rt_load_index(JSContext *ctx, JSValue arr, JSValue idx) { - if (JS_IsInt(idx)) - return JS_GetPropertyNumber(ctx, arr, (uint32_t)JS_VALUE_GET_INT(idx)); - return JS_GetProperty(ctx, arr, idx); -} - -int cell_rt_store_index(JSContext *ctx, JSValue val, JSValue arr, - JSValue idx) { - int ret = 0; - JSValue nr = JS_NULL; - if (JS_IsInt(idx)) - nr = JS_SetPropertyNumber(ctx, arr, (uint32_t)JS_VALUE_GET_INT(idx), val); - else - ret = JS_SetProperty(ctx, arr, idx, val); - if (JS_IsInt(idx)) - return JS_IsException(nr) ? 0 : 1; - return (ret < 0 || JS_HasException(ctx)) ? 0 : 1; -} - /* --- Intrinsic/global lookup --- */ void cell_rt_set_native_env(JSContext *ctx, JSValue env) { @@ -895,6 +817,12 @@ JSValue cell_native_dispatch(JSContext *ctx, JSValue func_obj, if (!JS_IsFunction(callee_fn_val)) { JS_RaiseDisrupt(ctx, "not a function"); + { + int ret_info = JS_VALUE_GET_INT(frame->address); + int ret_slot = ret_info & 0xFFFF; + if (ret_slot != 0xFFFF) + fp[ret_slot] = JS_EXCEPTION; + } /* Resume caller with exception pending */ JSFunction *exc_fn = JS_VALUE_GET_FUNCTION(frame->function); fn = (cell_compiled_fn)JS_VALUE_GET_CODE(FN_READ_CODE(exc_fn))->u.native.fn_ptr; @@ -905,6 +833,10 @@ JSValue cell_native_dispatch(JSContext *ctx, JSValue func_obj, JSFunction *callee_fn = JS_VALUE_GET_FUNCTION(callee_fn_val); if (!cell_check_call_arity(ctx, callee_fn, callee_argc)) { + int ret_info = JS_VALUE_GET_INT(frame->address); + int ret_slot = ret_info & 0xFFFF; + if (ret_slot != 0xFFFF) + fp[ret_slot] = JS_EXCEPTION; JSFunction *exc_fn = JS_VALUE_GET_FUNCTION(frame->function); fn = (cell_compiled_fn)JS_VALUE_GET_CODE(FN_READ_CODE(exc_fn))->u.native.fn_ptr; cell_sync_dl_from_native_fn(st, exc_fn); @@ -1191,56 +1123,10 @@ JSValue cell_rt_frame(JSContext *ctx, JSValue fn, int64_t nargs) { return JS_MKPTR(new_frame); } -void cell_rt_setarg(JSValue frame_val, int64_t idx, JSValue val) { - if (frame_val == JS_EXCEPTION || frame_val == JS_NULL) return; - JSFrameRegister *fr = (JSFrameRegister *)JS_VALUE_GET_PTR(frame_val); - fr->slots[idx] = val; -} - -/* cell_rt_invoke — still used for non-dispatch-loop paths (e.g. old code) */ -JSValue cell_rt_invoke(JSContext *ctx, JSValue frame_val) { - if (frame_val == JS_EXCEPTION) return JS_EXCEPTION; - JSFrameRegister *fr = (JSFrameRegister *)JS_VALUE_GET_PTR(frame_val); - int c_argc = JS_VALUE_GET_INT(fr->address); - if (c_argc < 0) c_argc = 0; - JSValue fn_val = fr->function; - - if (!JS_IsFunction(fn_val)) { - JS_RaiseDisrupt(ctx, "not a function"); - return JS_EXCEPTION; - } - - JSFunction *fn = JS_VALUE_GET_FUNCTION(fn_val); - JSValue result; - if (!cell_check_call_arity(ctx, fn, c_argc)) - return JS_EXCEPTION; - - if (fn->kind == JS_FUNC_KIND_C) { - result = js_call_c_function(ctx, fn_val, fr->slots[0], c_argc, &fr->slots[1]); - } else if (fn->kind == JS_FUNC_KIND_NATIVE) { - result = cell_native_dispatch(ctx, fn_val, fr->slots[0], c_argc, &fr->slots[1]); - } else { - JSValue args[c_argc > 0 ? c_argc : 1]; - for (int i = 0; i < c_argc; i++) - args[i] = fr->slots[i + 1]; - result = JS_CallInternal(ctx, fn_val, fr->slots[0], c_argc, args, 0); - } - - if (JS_IsException(result)) - return JS_EXCEPTION; - if (JS_HasException(ctx)) - JS_GetException(ctx); - return result; -} - JSValue cell_rt_goframe(JSContext *ctx, JSValue fn, int64_t nargs) { return cell_rt_frame(ctx, fn, nargs); } -JSValue cell_rt_goinvoke(JSContext *ctx, JSValue frame_val) { - return cell_rt_invoke(ctx, frame_val); -} - /* --- Array push/pop --- */ JSValue cell_rt_push(JSContext *ctx, JSValue arr, JSValue val) { @@ -1268,13 +1154,6 @@ static JSValue cell_rt_delete_key(JSContext *ctx, JSValue obj, JSValue key) { return JS_NewBool(ctx, ret >= 0); } -JSValue cell_rt_delete_str(JSContext *ctx, JSValue obj, const char *name) { - JSValue key = aot_key_from_cstr(ctx, name); - if (JS_IsException(key)) - return JS_EXCEPTION; - return cell_rt_delete_key(ctx, obj, key); -} - JSValue cell_rt_delete_lit(JSContext *ctx, JSValue obj, int64_t lit_idx) { JSValue key = aot_lit_from_index(ctx, lit_idx); if (JS_IsException(key)) @@ -1282,49 +1161,6 @@ JSValue cell_rt_delete_lit(JSContext *ctx, JSValue obj, int64_t lit_idx) { return cell_rt_delete_key(ctx, obj, key); } -/* --- Typeof --- */ - -JSValue cell_rt_typeof(JSContext *ctx, JSValue val) { - if (JS_IsNull(val)) return JS_NewString(ctx, "null"); - if (JS_IsInt(val) || JS_IsNumber(val)) return JS_NewString(ctx, "number"); - if (JS_IsBool(val)) return JS_NewString(ctx, "logical"); - if (JS_IsText(val)) return JS_NewString(ctx, "text"); - if (JS_IsFunction(val)) return JS_NewString(ctx, "function"); - if (JS_IsArray(val)) return JS_NewString(ctx, "array"); - if (JS_IsRecord(val)) return JS_NewString(ctx, "object"); - return JS_NewString(ctx, "unknown"); -} - -/* --- Text comparison stubs (called from QBE type-dispatch branches) --- */ - -JSValue cell_rt_lt_text(JSContext *ctx, JSValue a, JSValue b) { - const char *sa = JS_ToCString(ctx, a); - const char *sb = JS_ToCString(ctx, b); - int r = (sa && sb) ? strcmp(sa, sb) < 0 : 0; - return JS_NewBool(ctx, r); -} - -JSValue cell_rt_gt_text(JSContext *ctx, JSValue a, JSValue b) { - const char *sa = JS_ToCString(ctx, a); - const char *sb = JS_ToCString(ctx, b); - int r = (sa && sb) ? strcmp(sa, sb) > 0 : 0; - return JS_NewBool(ctx, r); -} - -JSValue cell_rt_le_text(JSContext *ctx, JSValue a, JSValue b) { - const char *sa = JS_ToCString(ctx, a); - const char *sb = JS_ToCString(ctx, b); - int r = (sa && sb) ? strcmp(sa, sb) <= 0 : 0; - return JS_NewBool(ctx, r); -} - -JSValue cell_rt_ge_text(JSContext *ctx, JSValue a, JSValue b) { - const char *sa = JS_ToCString(ctx, a); - const char *sb = JS_ToCString(ctx, b); - int r = (sa && sb) ? strcmp(sa, sb) >= 0 : 0; - return JS_NewBool(ctx, r); -} - static int cell_rt_tol_eq_inner(JSContext *ctx, JSValue a, JSValue b, JSValue tol) { if (JS_IsNumber(a) && JS_IsNumber(b) && JS_IsNumber(tol)) { @@ -1358,6 +1194,108 @@ JSValue cell_rt_ne_tol(JSContext *ctx, JSValue a, JSValue b, JSValue tol) { return JS_NewBool(ctx, !cell_rt_tol_eq_inner(ctx, a, b, tol)); } +/* --- Extended type checks and text stoning --- */ + +void cell_rt_stone_text(JSValue v) { + stone_mutable_text(v); +} + +int cell_rt_is_blob(JSValue v) { + return mist_is_blob(v); +} + +int cell_rt_is_data(JSValue v) { + return mist_is_gc_object(v) && !mist_is_array(v) + && !mist_is_function(v) && !mist_is_blob(v); +} + +int cell_rt_is_fit(JSValue v) { + if (JS_IsInt(v)) + return 1; + if (JS_IsShortFloat(v)) { + double d = JS_VALUE_GET_FLOAT64(v); + return isfinite(d) && trunc(d) == d && fabs(d) <= 9007199254740992.0; + } + return 0; +} + +int cell_rt_is_char(JSValue v) { + if (MIST_IsImmediateASCII(v)) + return MIST_GetImmediateASCIILen(v) == 1; + if (mist_is_text(v)) + return js_string_value_len(v) == 1; + return 0; +} + +int cell_rt_is_digit(JSValue v) { + if (MIST_IsImmediateASCII(v) && MIST_GetImmediateASCIILen(v) == 1) { + int ch = MIST_GetImmediateASCIIChar(v, 0); + return ch >= '0' && ch <= '9'; + } + if (mist_is_text(v) && js_string_value_len(v) == 1) { + uint32_t ch = js_string_value_get(v, 0); + return ch >= '0' && ch <= '9'; + } + return 0; +} + +int cell_rt_is_letter(JSValue v) { + if (MIST_IsImmediateASCII(v) && MIST_GetImmediateASCIILen(v) == 1) { + int ch = MIST_GetImmediateASCIIChar(v, 0); + return (ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z'); + } + if (mist_is_text(v) && js_string_value_len(v) == 1) { + uint32_t ch = js_string_value_get(v, 0); + return (ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z'); + } + return 0; +} + +int cell_rt_is_lower(JSValue v) { + if (MIST_IsImmediateASCII(v) && MIST_GetImmediateASCIILen(v) == 1) { + int ch = MIST_GetImmediateASCIIChar(v, 0); + return ch >= 'a' && ch <= 'z'; + } + if (mist_is_text(v) && js_string_value_len(v) == 1) { + uint32_t ch = js_string_value_get(v, 0); + return ch >= 'a' && ch <= 'z'; + } + return 0; +} + +int cell_rt_is_upper(JSValue v) { + if (MIST_IsImmediateASCII(v) && MIST_GetImmediateASCIILen(v) == 1) { + int ch = MIST_GetImmediateASCIIChar(v, 0); + return ch >= 'A' && ch <= 'Z'; + } + if (mist_is_text(v) && js_string_value_len(v) == 1) { + uint32_t ch = js_string_value_get(v, 0); + return ch >= 'A' && ch <= 'Z'; + } + return 0; +} + +int cell_rt_is_ws(JSValue v) { + if (MIST_IsImmediateASCII(v) && MIST_GetImmediateASCIILen(v) == 1) { + int ch = MIST_GetImmediateASCIIChar(v, 0); + return ch == ' ' || ch == '\t' || ch == '\n' + || ch == '\r' || ch == '\f' || ch == '\v'; + } + if (mist_is_text(v) && js_string_value_len(v) == 1) { + uint32_t ch = js_string_value_get(v, 0); + return ch == ' ' || ch == '\t' || ch == '\n' + || ch == '\r' || ch == '\f' || ch == '\v'; + } + return 0; +} + +int cell_rt_is_actor(JSContext *ctx, JSValue v) { + int result = 0; + if (mist_is_record(v) && !JS_IsNull(ctx->actor_sym)) + result = JS_HasPropertyKey(ctx, v, ctx->actor_sym) > 0; + return result; +} + /* --- Type check: is_proxy (function with arity 2) --- */ int cell_rt_is_proxy(JSContext *ctx, JSValue v) { @@ -1367,14 +1305,6 @@ int cell_rt_is_proxy(JSContext *ctx, JSValue v) { return fn->length == 2; } -/* --- Identity check (chases forwarding pointers) --- */ - -JSValue cell_rt_is_identical(JSContext *ctx, JSValue a, JSValue b) { - if (JS_IsPtr(a)) a = JS_MKPTR(chase(a)); - if (JS_IsPtr(b)) b = JS_MKPTR(chase(b)); - return JS_NewBool(ctx, a == b); -} - /* --- Short-circuit and/or (non-allocating) --- */ JSValue cell_rt_and(JSContext *ctx, JSValue left, JSValue right) { From cc7fc6b667453c35c76d0304590fa38a29819de4 Mon Sep 17 00:00:00 2001 From: John Alanbrook Date: Sat, 21 Feb 2026 17:03:00 -0600 Subject: [PATCH 05/11] fix inlining default params issue --- streamline.cm | 12 ++++++ vm_suite.ce | 107 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 119 insertions(+) diff --git a/streamline.cm b/streamline.cm index 9e6883c4..86376382 100644 --- a/streamline.cm +++ b/streamline.cm @@ -2809,7 +2809,19 @@ var streamline = function(ir, log) { cont_label = label_prefix + "cont" // Build inlined body with remapping + // Unmapped params (e.g. caller passes 1 arg to a 2-param function) + // must be explicitly nulled. compress_slots may merge the fresh + // slot (base+j) with a previously-live slot that holds a non-null + // value, so the default-param jump_not_null preamble would skip + // the default assignment and use a stale value instead. inlined_body = [] + j = 0 + while (j <= callee_func.nr_args) { + if (!(j < length(arg_slots) && arg_slots[j] >= 0)) { + inlined_body[] = ["null", remap[j], 0, 0] + } + j = j + 1 + } k = 0 while (k < length(callee_func.instructions)) { cinstr = callee_func.instructions[k] diff --git a/vm_suite.ce b/vm_suite.ce index 15ba88c0..6e1605fc 100644 --- a/vm_suite.ce +++ b/vm_suite.ce @@ -3555,6 +3555,113 @@ run("inline map empty array", function() { if (length(result) != 0) fail("map of empty should be empty") }) +// ============================================================================ +// NUMERIC INTRINSIC CALLBACK INLINING +// ============================================================================ + +var mymap = function(arr, fn) { + var result = array(length(arr)) + var i = 0 + while (i < length(arr)) { + result[i] = fn(arr[i]) + i = i + 1 + } + return result +} + +var myfold = function(arr, fn) { + var acc = arr[0] + var i = 1 + while (i < length(arr)) { + acc = fn(acc, arr[i]) + i = i + 1 + } + return acc +} + +run("inline callback abs", function() { + var result = mymap([-3, 5, -1.5, 0], function(a) { return abs(a) }) + assert_eq(result[0], 3, "abs(-3)") + assert_eq(result[1], 5, "abs(5)") + assert_eq(result[2], 1.5, "abs(-1.5)") + assert_eq(result[3], 0, "abs(0)") +}) + +run("inline callback neg", function() { + var result = mymap([3, -5, 0, 1.5], function(a) { return neg(a) }) + assert_eq(result[0], -3, "neg(3)") + assert_eq(result[1], 5, "neg(-5)") + assert_eq(result[2], 0, "neg(0)") + assert_eq(result[3], -1.5, "neg(1.5)") +}) + +run("inline callback sign", function() { + var result = mymap([-7, 0, 42, -0.5], function(a) { return sign(a) }) + assert_eq(result[0], -1, "sign(-7)") + assert_eq(result[1], 0, "sign(0)") + assert_eq(result[2], 1, "sign(42)") + assert_eq(result[3], -1, "sign(-0.5)") +}) + +run("inline callback fraction", function() { + var result = mymap([3.75, -2.5, 5.0], function(a) { return fraction(a) }) + assert_eq(result[0], 0.75, "fraction(3.75)") + assert_eq(result[1], -0.5, "fraction(-2.5)") + assert_eq(result[2], 0, "fraction(5.0)") +}) + +run("inline callback floor", function() { + var result = mymap([3.7, -2.3, 5.0, 1.9], function(a) { return floor(a) }) + assert_eq(result[0], 3, "floor(3.7)") + assert_eq(result[1], -3, "floor(-2.3)") + assert_eq(result[2], 5, "floor(5.0)") + assert_eq(result[3], 1, "floor(1.9)") +}) + +run("inline callback ceiling", function() { + var result = mymap([3.2, -2.7, 5.0, 1.1], function(a) { return ceiling(a) }) + assert_eq(result[0], 4, "ceiling(3.2)") + assert_eq(result[1], -2, "ceiling(-2.7)") + assert_eq(result[2], 5, "ceiling(5.0)") + assert_eq(result[3], 2, "ceiling(1.1)") +}) + +run("inline callback round", function() { + var result = mymap([3.5, -2.5, 5.0, 1.4], function(a) { return round(a) }) + assert_eq(result[0], 4, "round(3.5)") + assert_eq(result[1], -3, "round(-2.5)") + assert_eq(result[2], 5, "round(5.0)") + assert_eq(result[3], 1, "round(1.4)") +}) + +run("inline callback trunc", function() { + var result = mymap([3.7, -2.3, 5.0, -1.9], function(a) { return trunc(a) }) + assert_eq(result[0], 3, "trunc(3.7)") + assert_eq(result[1], -2, "trunc(-2.3)") + assert_eq(result[2], 5, "trunc(5.0)") + assert_eq(result[3], -1, "trunc(-1.9)") +}) + +run("inline callback max", function() { + var result = myfold([3, 7, 2, 9, 1], function(a, b) { return max(a, b) }) + assert_eq(result, 9, "max reduce") +}) + +run("inline callback min", function() { + var result = myfold([3, 7, 2, 9, 1], function(a, b) { return min(a, b) }) + assert_eq(result, 1, "min reduce") +}) + +run("inline callback modulo", function() { + var result = myfold([17, 5], function(a, b) { return modulo(a, b) }) + assert_eq(result, 2, "modulo") +}) + +run("inline callback remainder", function() { + var result = myfold([-17, 5], function(a, b) { return remainder(a, b) }) + assert_eq(result, -2, "remainder") +}) + // ============================================================================ // STRING METHOD EDGE CASES // ============================================================================ From 6d6b53009ff56f8e478ac35b3d544b252f697f9d Mon Sep 17 00:00:00 2001 From: John Alanbrook Date: Sat, 21 Feb 2026 17:25:14 -0600 Subject: [PATCH 06/11] hash fingerprint for copmile chain --- internal/shop.cm | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/internal/shop.cm b/internal/shop.cm index c8545949..1143f3c1 100644 --- a/internal/shop.cm +++ b/internal/shop.cm @@ -13,14 +13,33 @@ var os = use('internal/os') var link = use('link') // These come from env (via core_extras in engine.cm): -// analyze, run_ast_fn, core_json, use_cache, shop_path, actor_api, runtime_env, -// content_hash, cache_path, ensure_build_dir +// analyze, run_ast_fn, core_json, use_cache, core_path, shop_path, actor_api, +// runtime_env, content_hash, cache_path, ensure_build_dir var shop_json = core_json var global_shop_path = shop_path var my$_ = actor_api var core = "core" +// Compiler fingerprint: hash of all compiler source files so that any compiler +// change invalidates the entire build cache. Folded into hash_path(). +var compiler_fingerprint = (function() { + var files = [ + "tokenize", "parse", "fold", "mcode", "streamline", + "qbe", "qbe_emit", "ir_stats" + ] + var combined = "" + var i = 0 + var path = null + while (i < length(files)) { + path = core_path + '/' + files[i] + '.cm' + if (fd.is_file(path)) + combined = combined + text(fd.slurp(path)) + i = i + 1 + } + return content_hash(stone(blob(combined))) +})() + // Make a package name safe for use in C identifiers. // Replaces /, ., -, @ with _ so the result is a valid C identifier fragment. function safe_c_name(name) { @@ -43,7 +62,7 @@ function put_into_cache(content, obj) function hash_path(content, salt) { var s = salt || 'mach' - return global_shop_path + '/build/' + content_hash(stone(blob(text(content) + '\n' + s))) + return global_shop_path + '/build/' + content_hash(stone(blob(text(content) + '\n' + s + '\n' + compiler_fingerprint))) } var Shop = {} From 99fa86a09c885230892dbc55dd9f055a7d9073e7 Mon Sep 17 00:00:00 2001 From: John Alanbrook Date: Sat, 21 Feb 2026 19:06:41 -0600 Subject: [PATCH 07/11] asserts only for frame gets --- qbe_emit.cm | 566 ++++++++++++++++++++++++++++++++++++------- source/mach.c | 32 +-- source/qbe_helpers.c | 176 -------------- 3 files changed, 490 insertions(+), 284 deletions(-) diff --git a/qbe_emit.cm b/qbe_emit.cm index 7b1b759e..8aade4c9 100644 --- a/qbe_emit.cm +++ b/qbe_emit.cm @@ -41,49 +41,6 @@ ${sw("w", "%fp2", "%dest", result_var)} // Category A: Pure QBE helpers (no C calls) // ============================================================ - // ============================================================ - // Category B: Non-allocating C call helpers - // ============================================================ - - // Type checks via C (no ctx needed except is_proxy) - var tc_ops = [ - ["is_stone", "JS_IsStone", false], - ["is_proxy", "cell_rt_is_proxy", true] - ] - var i = 0 - var tc_name = null - var tc_cfn = null - var tc_ctx = null - while (i < length(tc_ops)) { - tc_name = tc_ops[i][0] - tc_cfn = tc_ops[i][1] - tc_ctx = tc_ops[i][2] - if (tc_ctx) { - h[] = `export function $__${tc_name}_ss(l %ctx, l %fp, l %dest, l %src) ${lb} -@entry -${sr("a", "%src")} - %cr =w call $${tc_cfn}(l %ctx, l %a) - %crext =l extuw %cr - %sh =l shl %crext, 5 - %r =l or %sh, 3 -${sw("w", "%fp", "%dest", "%r")} - ret -}` - } else { - h[] = `export function $__${tc_name}_ss(l %fp, l %dest, l %src) ${lb} -@entry -${sr("a", "%src")} - %cr =w call $${tc_cfn}(l %a) - %crext =l extuw %cr - %sh =l shl %crext, 5 - %r =l or %sh, 3 -${sw("w", "%fp", "%dest", "%r")} - ret -}` - } - i = i + 1 - } - // is_record: pointer + header type check (OBJ_RECORD=3), chase forwards h[] = `export function $__is_record_ss(l %fp, l %dest, l %src) ${lb} @entry @@ -179,7 +136,7 @@ ${sw("w", "%fp", "%dest", "%r")} // eq_tol, ne_tol (return tagged JSValue directly) — needs tolerance (3rd value) var tol_ops = ["eq_tol", "ne_tol"] - i = 0 + var i = 0 while (i < length(tol_ops)) { h[] = `export function $__${tol_ops[i]}_ss(l %ctx, l %fp, l %dest, l %s1, l %s2, l %s3) ${lb} @entry @@ -266,25 +223,6 @@ ${sw("w", "%fp", "%dest", "%r")} ret }` - // and, or (return tagged JSValue directly) - h[] = `export function $__and_ss(l %ctx, l %fp, l %dest, l %s1, l %s2) ${lb} -@entry -${sr("a", "%s1")} -${sr("b", "%s2")} - %r =l call $cell_rt_and(l %ctx, l %a, l %b) -${sw("w", "%fp", "%dest", "%r")} - ret -}` - - h[] = `export function $__or_ss(l %ctx, l %fp, l %dest, l %s1, l %s2) ${lb} -@entry -${sr("a", "%s1")} -${sr("b", "%s2")} - %r =l call $cell_rt_or(l %ctx, l %a, l %b) -${sw("w", "%fp", "%dest", "%r")} - ret -}` - // Bitwise unary/binary ops: mirror MACH mcode op behavior via JS_ToInt32 coercion. h[] = `export function $__bnot_ss(l %ctx, l %fp, l %dest, l %src) ${lb} @entry @@ -325,7 +263,7 @@ ${sw("w", "%fp", "%dest", "%r")} // Category C: Allocating helpers (return fp or 0) // ============================================================ - // concat allocates; keep refresh path + // concat allocates; runtime helper mirrors MACH self-assign fast path h[] = `export function l $__concat_ss(l %ctx, l %fp, l %dest, l %s1, l %s2) ${lb} @entry ${sr("a", "%s1")} @@ -1098,6 +1036,8 @@ var qbe_emit = function(ir, qbe, export_name) { var text_arg_slot = 0 var text_dest_slot = 0 var cmp_id = 0 + var depth = 0 + var d = 0 // Pre-scan: count invoke/tail_invoke points to assign segment numbers. // Must skip dead code (instructions after terminators) the same way @@ -1234,14 +1174,7 @@ var qbe_emit = function(ir, qbe, export_name) { // Poll pause/interrupt state on taken backward jumps. var emit_backedge_branch = function(target_label) { - var chk_lbl = fresh() - emit(` %${chk_lbl} =w call $cell_rt_check_backedge(l %ctx)`) - if (has_handler && !in_handler) { - emit(` jnz %${chk_lbl}, @disruption_handler, @${target_label}`) - } else { - needs_exc_ret = true - emit(` jnz %${chk_lbl}, @_exc_ret, @${target_label}`) - } + emit(` jmp @${target_label}`) } // Inline JS_ToBool equivalent for hot branch paths. @@ -1894,7 +1827,24 @@ var qbe_emit = function(ir, qbe, export_name) { } if (op == "stone_text") { v = s_read(a1) - emit(` call $cell_rt_stone_text(l ${v})`) + p = fresh() + emit(` %${p}_ptag =l and ${v}, 7`) + emit(` %${p}_is_ptr =w ceql %${p}_ptag, 1`) + emit(` jnz %${p}_is_ptr, @${p}_ptr, @${p}_done`) + emit(`@${p}_ptr`) + emit(` %${p}_ptr =l and ${v}, -8`) + emit(` %${p}_hdr =l loadl %${p}_ptr`) + emit(` %${p}_ht =l and %${p}_hdr, 7`) + emit(` %${p}_is_text =w ceql %${p}_ht, 2`) + emit(` jnz %${p}_is_text, @${p}_stone_chk, @${p}_done`) + emit(`@${p}_stone_chk`) + emit(` %${p}_s =l and %${p}_hdr, 8`) + emit(` %${p}_is_stone =w cnel %${p}_s, 0`) + emit(` jnz %${p}_is_stone, @${p}_done, @${p}_set`) + emit(`@${p}_set`) + emit(` %${p}_new_hdr =l or %${p}_hdr, 8`) + emit(` storel %${p}_new_hdr, %${p}_ptr`) + emit(`@${p}_done`) continue } @@ -1955,19 +1905,279 @@ var qbe_emit = function(ir, qbe, export_name) { continue } if (op == "is_stone") { - emit(` call $__is_stone_ss(l %fp, l ${text(a1)}, l ${text(a2)})`) + v = s_read(a2) + p = fresh() + emit(` %${p}_ptag =l and ${v}, 7`) + emit(` %${p}_is_ptr =w ceql %${p}_ptag, 1`) + emit(` jnz %${p}_is_ptr, @${p}_ptr, @${p}_yes`) + emit(`@${p}_ptr`) + emit(` %${p}_ptr =l and ${v}, -8`) + emit(` %${p}_hdr =l loadl %${p}_ptr`) + emit(`@${p}_chase`) + emit(` %${p}_ht =l and %${p}_hdr, 7`) + emit(` %${p}_is_fwd =w ceql %${p}_ht, 7`) + emit(` jnz %${p}_is_fwd, @${p}_follow, @${p}_chk`) + emit(`@${p}_follow`) + emit(` %${p}_ptr =l shr %${p}_hdr, 3`) + emit(` %${p}_hdr =l loadl %${p}_ptr`) + emit(` jmp @${p}_chase`) + emit(`@${p}_chk`) + emit(` %${p}_s =l and %${p}_hdr, 8`) + emit(` %${p}_w =w cnel %${p}_s, 0`) + emit(` jmp @${p}_done`) + emit(`@${p}_yes`) + emit(` %${p}_w =w copy 1`) + emit(`@${p}_done`) + s_write(a1, emit_pack_bool_js(`%${p}_w`)) continue } if (op == "is_proxy") { - emit(` call $__is_proxy_ss(l %ctx, l %fp, l ${text(a1)}, l ${text(a2)})`) + v = s_read(a2) + p = fresh() + emit(` %${p}_ptag =l and ${v}, 7`) + emit(` %${p}_is_ptr =w ceql %${p}_ptag, 1`) + emit(` jnz %${p}_is_ptr, @${p}_ptr, @${p}_no`) + emit(`@${p}_ptr`) + emit(` %${p}_ptr =l and ${v}, -8`) + emit(` %${p}_hdr =l loadl %${p}_ptr`) + emit(`@${p}_chase`) + emit(` %${p}_ht =l and %${p}_hdr, 7`) + emit(` %${p}_is_fwd =w ceql %${p}_ht, 7`) + emit(` jnz %${p}_is_fwd, @${p}_follow, @${p}_chk`) + emit(`@${p}_follow`) + emit(` %${p}_ptr =l shr %${p}_hdr, 3`) + emit(` %${p}_hdr =l loadl %${p}_ptr`) + emit(` jmp @${p}_chase`) + emit(`@${p}_chk`) + emit(` %${p}_is_fn =w ceql %${p}_ht, 4`) + emit(` jnz %${p}_is_fn, @${p}_len_chk, @${p}_no`) + emit(`@${p}_len_chk`) + emit(` %${p}_len_p =l add %${p}_ptr, 16`) + emit(` %${p}_len_q =l loadl %${p}_len_p`) + emit(` %${p}_len =l and %${p}_len_q, 65535`) + emit(` %${p}_w =w ceql %${p}_len, 2`) + emit(` jmp @${p}_done`) + emit(`@${p}_no`) + emit(` %${p}_w =w copy 0`) + emit(`@${p}_done`) + s_write(a1, emit_pack_bool_js(`%${p}_w`)) continue } - if (op == "is_blob" || op == "is_data" || op == "is_fit" || - op == "is_char" || op == "is_digit" || op == "is_letter" || + if (op == "is_blob") { + v = s_read(a2) + p = fresh() + emit(` %${p}_ptag =l and ${v}, 7`) + emit(` %${p}_is_ptr =w ceql %${p}_ptag, 1`) + emit(` jnz %${p}_is_ptr, @${p}_ptr, @${p}_no`) + emit(`@${p}_ptr`) + emit(` %${p}_ptr =l and ${v}, -8`) + emit(` %${p}_hdr =l loadl %${p}_ptr`) + emit(`@${p}_chase`) + emit(` %${p}_ht =l and %${p}_hdr, 7`) + emit(` %${p}_is_fwd =w ceql %${p}_ht, 7`) + emit(` jnz %${p}_is_fwd, @${p}_follow, @${p}_chk`) + emit(`@${p}_follow`) + emit(` %${p}_ptr =l shr %${p}_hdr, 3`) + emit(` %${p}_hdr =l loadl %${p}_ptr`) + emit(` jmp @${p}_chase`) + emit(`@${p}_chk`) + emit(` %${p}_w =w ceql %${p}_ht, 1`) + emit(` jmp @${p}_done`) + emit(`@${p}_no`) + emit(` %${p}_w =w copy 0`) + emit(`@${p}_done`) + s_write(a1, emit_pack_bool_js(`%${p}_w`)) + continue + } + if (op == "is_data") { + v = s_read(a2) + p = fresh() + emit(` %${p}_ptag =l and ${v}, 7`) + emit(` %${p}_is_ptr =w ceql %${p}_ptag, 1`) + emit(` jnz %${p}_is_ptr, @${p}_ptr, @${p}_no`) + emit(`@${p}_ptr`) + emit(` %${p}_ptr =l and ${v}, -8`) + emit(` %${p}_hdr =l loadl %${p}_ptr`) + emit(`@${p}_chase`) + emit(` %${p}_ht =l and %${p}_hdr, 7`) + emit(` %${p}_is_fwd =w ceql %${p}_ht, 7`) + emit(` jnz %${p}_is_fwd, @${p}_follow, @${p}_chk`) + emit(`@${p}_follow`) + emit(` %${p}_ptr =l shr %${p}_hdr, 3`) + emit(` %${p}_hdr =l loadl %${p}_ptr`) + emit(` jmp @${p}_chase`) + emit(`@${p}_chk`) + emit(` %${p}_is_arr =w ceql %${p}_ht, 0`) + emit(` %${p}_is_fn =w ceql %${p}_ht, 4`) + emit(` %${p}_is_blob =w ceql %${p}_ht, 1`) + emit(` %${p}_bad =w or %${p}_is_arr, %${p}_is_fn`) + emit(` %${p}_bad =w or %${p}_bad, %${p}_is_blob`) + emit(` %${p}_w =w ceqw %${p}_bad, 0`) + emit(` jmp @${p}_done`) + emit(`@${p}_no`) + emit(` %${p}_w =w copy 0`) + emit(`@${p}_done`) + s_write(a1, emit_pack_bool_js(`%${p}_w`)) + continue + } + if (op == "is_fit") { + v = s_read(a2) + p = fresh() + emit(` %${p}_tag =l and ${v}, 1`) + emit(` %${p}_is_int =w ceql %${p}_tag, 0`) + emit(` jnz %${p}_is_int, @${p}_yes, @${p}_sfloat_chk`) + emit(`@${p}_sfloat_chk`) + emit(` %${p}_ptag =l and ${v}, 7`) + emit(` %${p}_is_sfloat =w ceql %${p}_ptag, 5`) + emit(` jnz %${p}_is_sfloat, @${p}_sfloat, @${p}_no`) + emit(`@${p}_sfloat`) + lhs_d = emit_num_to_double(v) + emit(` %${p}_ti =d call $trunc(d ${lhs_d})`) + emit(` %${p}_eqi =w ceqd ${lhs_d}, %${p}_ti`) + emit(` %${p}_ad =d call $fabs(d ${lhs_d})`) + emit(` %${p}_ltlim =w cltd %${p}_ad, d_9007199254740992.0`) + emit(` %${p}_eqlim =w ceqd %${p}_ad, d_9007199254740992.0`) + emit(` %${p}_lim =w or %${p}_ltlim, %${p}_eqlim`) + emit(` %${p}_w =w and %${p}_eqi, %${p}_lim`) + emit(` jmp @${p}_done`) + emit(`@${p}_yes`) + emit(` %${p}_w =w copy 1`) + emit(` jmp @${p}_done`) + emit(`@${p}_no`) + emit(` %${p}_w =w copy 0`) + emit(`@${p}_done`) + s_write(a1, emit_pack_bool_js(`%${p}_w`)) + continue + } + if (op == "is_char") { + v = s_read(a2) + p = fresh() + emit(` %${p}_imm =l and ${v}, 31`) + emit(` %${p}_is_imm =w ceql %${p}_imm, 11`) + emit(` jnz %${p}_is_imm, @${p}_imm_path, @${p}_ptr_chk`) + emit(`@${p}_imm_path`) + emit(` %${p}_ilen =l shr ${v}, 5`) + emit(` %${p}_ilen =l and %${p}_ilen, 7`) + emit(` %${p}_w =w ceql %${p}_ilen, 1`) + emit(` jmp @${p}_done`) + emit(`@${p}_ptr_chk`) + emit(` %${p}_ptag =l and ${v}, 7`) + emit(` %${p}_is_ptr =w ceql %${p}_ptag, 1`) + emit(` jnz %${p}_is_ptr, @${p}_ptr, @${p}_no`) + emit(`@${p}_ptr`) + emit(` %${p}_ptr =l and ${v}, -8`) + emit(` %${p}_hdr =l loadl %${p}_ptr`) + emit(`@${p}_chase`) + emit(` %${p}_ht =l and %${p}_hdr, 7`) + emit(` %${p}_is_fwd =w ceql %${p}_ht, 7`) + emit(` jnz %${p}_is_fwd, @${p}_follow, @${p}_chk`) + emit(`@${p}_follow`) + emit(` %${p}_ptr =l shr %${p}_hdr, 3`) + emit(` %${p}_hdr =l loadl %${p}_ptr`) + emit(` jmp @${p}_chase`) + emit(`@${p}_chk`) + emit(` %${p}_is_text =w ceql %${p}_ht, 2`) + emit(` jnz %${p}_is_text, @${p}_len_chk, @${p}_no`) + emit(`@${p}_len_chk`) + emit(` %${p}_len_p =l add %${p}_ptr, 8`) + emit(` %${p}_len_l =l loadl %${p}_len_p`) + emit(` %${p}_w =w ceql %${p}_len_l, 1`) + emit(` jmp @${p}_done`) + emit(`@${p}_no`) + emit(` %${p}_w =w copy 0`) + emit(`@${p}_done`) + s_write(a1, emit_pack_bool_js(`%${p}_w`)) + continue + } + if (op == "is_digit" || op == "is_letter" || op == "is_lower" || op == "is_upper" || op == "is_ws") { v = s_read(a2) p = fresh() - emit(` %${p}_w =w call $cell_rt_${op}(l ${v})`) + emit(` %${p}_imm =l and ${v}, 31`) + emit(` %${p}_is_imm =w ceql %${p}_imm, 11`) + emit(` jnz %${p}_is_imm, @${p}_imm_len, @${p}_ptr_chk`) + emit(`@${p}_imm_len`) + emit(` %${p}_ilen =l shr ${v}, 5`) + emit(` %${p}_ilen =l and %${p}_ilen, 7`) + emit(` %${p}_imm_one =w ceql %${p}_ilen, 1`) + emit(` jnz %${p}_imm_one, @${p}_imm_char, @${p}_no`) + emit(`@${p}_imm_char`) + emit(` %${p}_ch_l =l shr ${v}, 8`) + emit(` %${p}_ch_l =l and %${p}_ch_l, 255`) + emit(` %${p}_ch_w =w copy %${p}_ch_l`) + emit(` jmp @${p}_pred`) + emit(`@${p}_ptr_chk`) + emit(` %${p}_ptag =l and ${v}, 7`) + emit(` %${p}_is_ptr =w ceql %${p}_ptag, 1`) + emit(` jnz %${p}_is_ptr, @${p}_ptr, @${p}_no`) + emit(`@${p}_ptr`) + emit(` %${p}_ptr =l and ${v}, -8`) + emit(` %${p}_hdr =l loadl %${p}_ptr`) + emit(`@${p}_chase`) + emit(` %${p}_ht =l and %${p}_hdr, 7`) + emit(` %${p}_is_fwd =w ceql %${p}_ht, 7`) + emit(` jnz %${p}_is_fwd, @${p}_follow, @${p}_text_chk`) + emit(`@${p}_follow`) + emit(` %${p}_ptr =l shr %${p}_hdr, 3`) + emit(` %${p}_hdr =l loadl %${p}_ptr`) + emit(` jmp @${p}_chase`) + emit(`@${p}_text_chk`) + emit(` %${p}_is_text =w ceql %${p}_ht, 2`) + emit(` jnz %${p}_is_text, @${p}_text_len, @${p}_no`) + emit(`@${p}_text_len`) + emit(` %${p}_len_p =l add %${p}_ptr, 8`) + emit(` %${p}_len_l =l loadl %${p}_len_p`) + emit(` %${p}_text_one =w ceql %${p}_len_l, 1`) + emit(` jnz %${p}_text_one, @${p}_text_char, @${p}_no`) + emit(`@${p}_text_char`) + emit(` %${p}_pack_p =l add %${p}_ptr, 24`) + emit(` %${p}_pack =l loadl %${p}_pack_p`) + emit(` %${p}_ch_l =l shr %${p}_pack, 32`) + emit(` %${p}_ch_l =l and %${p}_ch_l, 255`) + emit(` %${p}_ch_w =w copy %${p}_ch_l`) + emit(`@${p}_pred`) + if (op == "is_digit") { + emit(` %${p}_lt_0 =w csltw %${p}_ch_w, 48`) + emit(` %${p}_ge_0 =w ceqw %${p}_lt_0, 0`) + emit(` %${p}_lt_9 =w csltw %${p}_ch_w, 58`) + emit(` %${p}_w =w and %${p}_ge_0, %${p}_lt_9`) + } else if (op == "is_lower") { + emit(` %${p}_lt_a =w csltw %${p}_ch_w, 97`) + emit(` %${p}_ge_a =w ceqw %${p}_lt_a, 0`) + emit(` %${p}_lt_z =w csltw %${p}_ch_w, 123`) + emit(` %${p}_w =w and %${p}_ge_a, %${p}_lt_z`) + } else if (op == "is_upper") { + emit(` %${p}_lt_A =w csltw %${p}_ch_w, 65`) + emit(` %${p}_ge_A =w ceqw %${p}_lt_A, 0`) + emit(` %${p}_lt_Z =w csltw %${p}_ch_w, 91`) + emit(` %${p}_w =w and %${p}_ge_A, %${p}_lt_Z`) + } else if (op == "is_letter") { + emit(` %${p}_lt_A =w csltw %${p}_ch_w, 65`) + emit(` %${p}_ge_A =w ceqw %${p}_lt_A, 0`) + emit(` %${p}_lt_Z =w csltw %${p}_ch_w, 91`) + emit(` %${p}_is_upper =w and %${p}_ge_A, %${p}_lt_Z`) + emit(` %${p}_lt_a =w csltw %${p}_ch_w, 97`) + emit(` %${p}_ge_a =w ceqw %${p}_lt_a, 0`) + emit(` %${p}_lt_z =w csltw %${p}_ch_w, 123`) + emit(` %${p}_is_lower =w and %${p}_ge_a, %${p}_lt_z`) + emit(` %${p}_w =w or %${p}_is_upper, %${p}_is_lower`) + } else { + emit(` %${p}_is_sp =w ceqw %${p}_ch_w, 32`) + emit(` %${p}_is_tb =w ceqw %${p}_ch_w, 9`) + emit(` %${p}_is_nl =w ceqw %${p}_ch_w, 10`) + emit(` %${p}_is_cr =w ceqw %${p}_ch_w, 13`) + emit(` %${p}_is_ff =w ceqw %${p}_ch_w, 12`) + emit(` %${p}_is_vt =w ceqw %${p}_ch_w, 11`) + emit(` %${p}_w =w or %${p}_is_sp, %${p}_is_tb`) + emit(` %${p}_w =w or %${p}_w, %${p}_is_nl`) + emit(` %${p}_w =w or %${p}_w, %${p}_is_cr`) + emit(` %${p}_w =w or %${p}_w, %${p}_is_ff`) + emit(` %${p}_w =w or %${p}_w, %${p}_is_vt`) + } + emit(` jmp @${p}_done`) + emit(`@${p}_no`) + emit(` %${p}_w =w copy 0`) + emit(`@${p}_done`) s_write(a1, emit_pack_bool_js(`%${p}_w`)) continue } @@ -1999,6 +2209,33 @@ var qbe_emit = function(ir, qbe, export_name) { lhs = s_read(a2) rhs = s_read(a3) p = fresh() + emit(` %${p}_a_tag =l and ${lhs}, 1`) + emit(` %${p}_b_tag =l and ${rhs}, 1`) + emit(` %${p}_a_int =w ceql %${p}_a_tag, 0`) + emit(` %${p}_b_int =w ceql %${p}_b_tag, 0`) + emit(` %${p}_both_int =w and %${p}_a_int, %${p}_b_int`) + emit(` jnz %${p}_both_int, @${p}_int, @${p}_slow`) + emit(`@${p}_int`) + emit(` %${p}_ai =l sar ${lhs}, 1`) + emit(` %${p}_bi =l sar ${rhs}, 1`) + emit(` %${p}_aiw =w copy %${p}_ai`) + emit(` %${p}_biw =w copy %${p}_bi`) + if (op == "eq") { + emit(` %${p}_w =w ceqw %${p}_aiw, %${p}_biw`) + } else if (op == "ne") { + emit(` %${p}_w =w cnew %${p}_aiw, %${p}_biw`) + } else if (op == "lt") { + emit(` %${p}_w =w csltw %${p}_aiw, %${p}_biw`) + } else if (op == "le") { + emit(` %${p}_w =w cslew %${p}_aiw, %${p}_biw`) + } else if (op == "gt") { + emit(` %${p}_w =w csgtw %${p}_aiw, %${p}_biw`) + } else { + emit(` %${p}_w =w csgew %${p}_aiw, %${p}_biw`) + } + s_write(a1, emit_pack_bool_js(`%${p}_w`)) + emit(` jmp @${p}_done`) + emit(`@${p}_slow`) cmp_id = 0 if (op == "eq") cmp_id = 0 else if (op == "ne") cmp_id = 1 @@ -2016,6 +2253,7 @@ var qbe_emit = function(ir, qbe, export_name) { } emit(`@${p}_ok`) s_write(a1, `%${p}_r`) + emit(`@${p}_done`) continue } @@ -2032,11 +2270,31 @@ var qbe_emit = function(ir, qbe, export_name) { continue } if (op == "and") { - emit(` call $__and_ss(l %ctx, l %fp, l ${text(a1)}, l ${text(a2)}, l ${text(a3)})`) + lhs = s_read(a2) + rhs = s_read(a3) + p = fresh() + truthy = emit_truthy_w(lhs) + emit(` jnz ${truthy}, @${p}_t, @${p}_f`) + emit(`@${p}_t`) + s_write(a1, rhs) + emit(` jmp @${p}_done`) + emit(`@${p}_f`) + s_write(a1, lhs) + emit(`@${p}_done`) continue } if (op == "or") { - emit(` call $__or_ss(l %ctx, l %fp, l ${text(a1)}, l ${text(a2)}, l ${text(a3)})`) + lhs = s_read(a2) + rhs = s_read(a3) + p = fresh() + truthy = emit_truthy_w(lhs) + emit(` jnz ${truthy}, @${p}_t, @${p}_f`) + emit(`@${p}_t`) + s_write(a1, lhs) + emit(` jmp @${p}_done`) + emit(`@${p}_f`) + s_write(a1, rhs) + emit(`@${p}_done`) continue } @@ -2210,8 +2468,66 @@ var qbe_emit = function(ir, qbe, export_name) { } if (op == "store_index") { // IR: ["store_index", obj, val, idx] + lhs = s_read(a1) + rhs = s_read(a2) + v = s_read(a3) + p = fresh() + emit(` %${p}_idx_tag =l and ${v}, 1`) + emit(` %${p}_idx_is_int =w ceql %${p}_idx_tag, 0`) + emit(` jnz %${p}_idx_is_int, @${p}_idx_ok, @${p}_slow`) + emit(`@${p}_idx_ok`) + emit(` %${p}_idx_l =l sar ${v}, 1`) + emit(` %${p}_idx_w =w copy %${p}_idx_l`) + emit(` %${p}_idx_neg =w csltw %${p}_idx_w, 0`) + emit(` jnz %${p}_idx_neg, @${p}_slow, @${p}_arr_ptr_chk`) + emit(`@${p}_arr_ptr_chk`) + emit(` %${p}_ptag =l and ${lhs}, 7`) + emit(` %${p}_is_ptr =w ceql %${p}_ptag, 1`) + emit(` jnz %${p}_is_ptr, @${p}_arr_ptr, @${p}_slow`) + emit(`@${p}_arr_ptr`) + emit(` %${p}_arr_ptr =l and ${lhs}, -8`) + emit(` %${p}_arr_hdr =l loadl %${p}_arr_ptr`) + emit(`@${p}_arr_chase`) + emit(` %${p}_arr_ty =l and %${p}_arr_hdr, 7`) + emit(` %${p}_arr_is_fwd =w ceql %${p}_arr_ty, 7`) + emit(` jnz %${p}_arr_is_fwd, @${p}_arr_follow, @${p}_arr_chk`) + emit(`@${p}_arr_follow`) + emit(` %${p}_arr_ptr =l shr %${p}_arr_hdr, 3`) + emit(` %${p}_arr_hdr =l loadl %${p}_arr_ptr`) + emit(` jmp @${p}_arr_chase`) + emit(`@${p}_arr_chk`) + emit(` %${p}_arr_is_array =w ceql %${p}_arr_ty, 0`) + emit(` jnz %${p}_arr_is_array, @${p}_arr_stone_chk, @${p}_slow`) + emit(`@${p}_arr_stone_chk`) + emit(` %${p}_arr_stone =l and %${p}_arr_hdr, 8`) + emit(` %${p}_arr_is_stone =w cnel %${p}_arr_stone, 0`) + emit(` jnz %${p}_arr_is_stone, @${p}_slow, @${p}_cap_chk`) + emit(`@${p}_cap_chk`) + emit(` %${p}_cap_l =l shr %${p}_arr_hdr, 8`) + emit(` %${p}_cap_w =w copy %${p}_cap_l`) + emit(` %${p}_in_cap =w csltw %${p}_idx_w, %${p}_cap_w`) + emit(` jnz %${p}_in_cap, @${p}_len_chk, @${p}_slow`) + emit(`@${p}_len_chk`) + emit(` %${p}_len_p =l add %${p}_arr_ptr, 8`) + emit(` %${p}_len_l =l loadl %${p}_len_p`) + emit(` %${p}_len_w =w copy %${p}_len_l`) + emit(` %${p}_need_len =w csgew %${p}_idx_w, %${p}_len_w`) + emit(` jnz %${p}_need_len, @${p}_bump_len, @${p}_store`) + emit(`@${p}_bump_len`) + emit(` %${p}_next_len_w =w add %${p}_idx_w, 1`) + emit(` %${p}_next_len_l =l extsw %${p}_next_len_w`) + emit(` storel %${p}_next_len_l, %${p}_len_p`) + emit(`@${p}_store`) + emit(` %${p}_idx2_l =l extsw %${p}_idx_w`) + emit(` %${p}_idx2_off =l shl %${p}_idx2_l, 3`) + emit(` %${p}_vals_p =l add %${p}_arr_ptr, 16`) + emit(` %${p}_item_p =l add %${p}_vals_p, %${p}_idx2_off`) + emit(` storel ${rhs}, %${p}_item_p`) + emit(` jmp @${p}_done`) + emit(`@${p}_slow`) emit(` %fp =l call $__store_index_ss(l %ctx, l %fp, l ${text(a1)}, l ${text(a2)}, l ${text(a3)})`) emit_exc_check() + emit(`@${p}_done`) continue } if (op == "store_dynamic") { @@ -2240,15 +2556,53 @@ var qbe_emit = function(ir, qbe, export_name) { if (op == "get") { // mcode: get(dest, slot, depth) — a2=slot, a3=depth - p = fresh() - emit(` %${p} =l call $cell_rt_get_closure(l %ctx, l %fp, l ${text(a3)}, l ${text(a2)})`) - s_write(a1, `%${p}`) + depth = a3 + if (depth == 0) { + v = s_read(a2) + s_write(a1, v) + } else { + p = fresh() + emit(` %${p}_fp =l copy %fp`) + d = 0 + while (d < depth) { + emit(` %${p}_fn_p_${text(d)} =l sub %${p}_fp, 24`) + emit(` %${p}_fn_${text(d)} =l loadl %${p}_fn_p_${text(d)}`) + emit(` %${p}_fn_ptr_${text(d)} =l and %${p}_fn_${text(d)}, -8`) + emit(` %${p}_outer_p_${text(d)} =l add %${p}_fn_ptr_${text(d)}, 40`) + emit(` %${p}_outer_${text(d)} =l loadl %${p}_outer_p_${text(d)}`) + emit(` %${p}_outer_ptr_${text(d)} =l and %${p}_outer_${text(d)}, -8`) + emit(` %${p}_fp =l add %${p}_outer_ptr_${text(d)}, 32`) + d = d + 1 + } + emit(` %${p}_slotp =l add %${p}_fp, ${text(a2 * 8)}`) + emit(` %${p}_val =l loadl %${p}_slotp`) + s_write(a1, `%${p}_val`) + } continue } if (op == "put") { // mcode: put(val, slot, depth) — a2=slot, a3=depth v = s_read(a1) - emit(` call $cell_rt_put_closure(l %ctx, l %fp, l ${v}, l ${text(a3)}, l ${text(a2)})`) + depth = a3 + if (depth == 0) { + s_write(a2, v) + } else { + p = fresh() + emit(` %${p}_fp =l copy %fp`) + d = 0 + while (d < depth) { + emit(` %${p}_fn_p_${text(d)} =l sub %${p}_fp, 24`) + emit(` %${p}_fn_${text(d)} =l loadl %${p}_fn_p_${text(d)}`) + emit(` %${p}_fn_ptr_${text(d)} =l and %${p}_fn_${text(d)}, -8`) + emit(` %${p}_outer_p_${text(d)} =l add %${p}_fn_ptr_${text(d)}, 40`) + emit(` %${p}_outer_${text(d)} =l loadl %${p}_outer_p_${text(d)}`) + emit(` %${p}_outer_ptr_${text(d)} =l and %${p}_outer_${text(d)}, -8`) + emit(` %${p}_fp =l add %${p}_outer_ptr_${text(d)}, 32`) + d = d + 1 + } + emit(` %${p}_slotp =l add %${p}_fp, ${text(a2 * 8)}`) + emit(` storel ${v}, %${p}_slotp`) + } continue } @@ -2401,8 +2755,52 @@ var qbe_emit = function(ir, qbe, export_name) { // --- Array push/pop [G] --- if (op == "push") { + lhs = s_read(a1) + rhs = s_read(a2) + p = fresh() + emit(` %${p}_ptag =l and ${lhs}, 7`) + emit(` %${p}_is_ptr =w ceql %${p}_ptag, 1`) + emit(` jnz %${p}_is_ptr, @${p}_arr_ptr, @${p}_slow`) + emit(`@${p}_arr_ptr`) + emit(` %${p}_arr_ptr =l and ${lhs}, -8`) + emit(` %${p}_arr_hdr =l loadl %${p}_arr_ptr`) + emit(`@${p}_arr_chase`) + emit(` %${p}_arr_ty =l and %${p}_arr_hdr, 7`) + emit(` %${p}_arr_is_fwd =w ceql %${p}_arr_ty, 7`) + emit(` jnz %${p}_arr_is_fwd, @${p}_arr_follow, @${p}_arr_chk`) + emit(`@${p}_arr_follow`) + emit(` %${p}_arr_ptr =l shr %${p}_arr_hdr, 3`) + emit(` %${p}_arr_hdr =l loadl %${p}_arr_ptr`) + emit(` jmp @${p}_arr_chase`) + emit(`@${p}_arr_chk`) + emit(` %${p}_arr_is_array =w ceql %${p}_arr_ty, 0`) + emit(` jnz %${p}_arr_is_array, @${p}_arr_stone_chk, @${p}_slow`) + emit(`@${p}_arr_stone_chk`) + emit(` %${p}_arr_stone =l and %${p}_arr_hdr, 8`) + emit(` %${p}_arr_is_stone =w cnel %${p}_arr_stone, 0`) + emit(` jnz %${p}_arr_is_stone, @${p}_slow, @${p}_lens`) + emit(`@${p}_lens`) + emit(` %${p}_len_p =l add %${p}_arr_ptr, 8`) + emit(` %${p}_len_l =l loadl %${p}_len_p`) + emit(` %${p}_len_w =w copy %${p}_len_l`) + emit(` %${p}_cap_l =l shr %${p}_arr_hdr, 8`) + emit(` %${p}_cap_w =w copy %${p}_cap_l`) + emit(` %${p}_in_cap =w csltw %${p}_len_w, %${p}_cap_w`) + emit(` jnz %${p}_in_cap, @${p}_store, @${p}_slow`) + emit(`@${p}_store`) + emit(` %${p}_idx_l =l extsw %${p}_len_w`) + emit(` %${p}_idx_off =l shl %${p}_idx_l, 3`) + emit(` %${p}_vals_p =l add %${p}_arr_ptr, 16`) + emit(` %${p}_item_p =l add %${p}_vals_p, %${p}_idx_off`) + emit(` storel ${rhs}, %${p}_item_p`) + emit(` %${p}_next_len_w =w add %${p}_len_w, 1`) + emit(` %${p}_next_len_l =l extsw %${p}_next_len_w`) + emit(` storel %${p}_next_len_l, %${p}_len_p`) + emit(` jmp @${p}_done`) + emit(`@${p}_slow`) emit(` %fp =l call $__push_ss(l %ctx, l %fp, l ${text(a1)}, l ${text(a2)})`) emit_exc_check() + emit(`@${p}_done`) continue } if (op == "pop") { diff --git a/source/mach.c b/source/mach.c index f3261c60..1bb25edf 100644 --- a/source/mach.c +++ b/source/mach.c @@ -24,6 +24,7 @@ */ #include "quickjs-internal.h" +#include /* ============================================================ Mach VM instruction definitions (private to mach.c) @@ -2018,21 +2019,12 @@ vm_dispatch: int depth = b; JSFunction *fn = JS_VALUE_GET_FUNCTION(frame->function); JSFrameRegister *target = (JSFrameRegister *)JS_VALUE_GET_PTR(fn->u.cell.outer_frame); - if (!target) { - fprintf(stderr, "GETUP: NULL outer_frame at depth 0! pc=%d a=%d depth=%d slot=%d nr_slots=%d instr=0x%08x\n", - pc-1, a, depth, c, code->nr_slots, instr); - result = JS_RaiseDisrupt(ctx, "GETUP: NULL outer_frame"); - goto disrupt; - } + assert(depth > 0); + assert(target != NULL); for (int d = 1; d < depth; d++) { fn = JS_VALUE_GET_FUNCTION(target->function); JSFrameRegister *next = (JSFrameRegister *)JS_VALUE_GET_PTR(fn->u.cell.outer_frame); - if (!next) { - fprintf(stderr, "GETUP: NULL outer_frame at depth %d! pc=%d a=%d depth=%d slot=%d nr_slots=%d instr=0x%08x\n", - d, pc-1, a, depth, c, code->nr_slots, instr); - result = JS_RaiseDisrupt(ctx, "GETUP: NULL outer_frame at depth %d", d); - goto disrupt; - } + assert(next != NULL); target = next; } stone_mutable_text(target->slots[c]); @@ -2045,22 +2037,14 @@ vm_dispatch: int depth = b; JSFunction *fn = JS_VALUE_GET_FUNCTION(frame->function); JSFrameRegister *target = (JSFrameRegister *)JS_VALUE_GET_PTR(fn->u.cell.outer_frame); + assert(depth > 0); + assert(target != NULL); for (int d = 1; d < depth; d++) { fn = JS_VALUE_GET_FUNCTION(target->function); target = (JSFrameRegister *)JS_VALUE_GET_PTR(fn->u.cell.outer_frame); + assert(target != NULL); } - { - uint64_t tcap = objhdr_cap56(target->header); - if ((unsigned)c >= tcap) { - fprintf(stderr, "MACH_SETUP OOB: slot=%d >= target_cap=%llu depth=%d " - "cur_fn=%s (%s) pc=%u\n", - c, (unsigned long long)tcap, depth, - code->name_cstr ? code->name_cstr : "?", - code->filename_cstr ? code->filename_cstr : "?", pc - 1); - fflush(stderr); - VM_BREAK(); - } - } + assert((unsigned)c < objhdr_cap56(target->header)); target->slots[c] = frame->slots[a]; VM_BREAK(); } diff --git a/source/qbe_helpers.c b/source/qbe_helpers.c index bab79945..a684b8a1 100644 --- a/source/qbe_helpers.c +++ b/source/qbe_helpers.c @@ -150,7 +150,6 @@ JSValue qbe_bitwise_xor(JSContext *ctx, JSValue a, JSValue b) { /* Concat helper matching MACH_CONCAT semantics exactly. */ JSValue cell_rt_concat(JSContext *ctx, JSValue left, JSValue right, int self_assign) { if (self_assign) { - /* Self-assign pattern: slot[a] = slot[a] + slot[c]. */ if (JS_IsPtr(left)) { JSText *s = (JSText *)chase(left); int slen = (int)s->length; @@ -159,21 +158,18 @@ JSValue cell_rt_concat(JSContext *ctx, JSValue left, JSValue right, int self_ass if (objhdr_type(s->hdr) == OBJ_TEXT && !(s->hdr & OBJHDR_S_MASK) && slen + rlen <= cap) { - /* In-place append, no allocation. */ for (int i = 0; i < rlen; i++) string_put(s, slen + i, js_string_value_get(right, i)); s->length = slen + rlen; return left; } } - /* Allocate with growth factor, leave unstoned. */ JSValue res = JS_ConcatStringGrow(ctx, left, right); if (JS_IsException(res)) return JS_EXCEPTION; return res; } - /* Different target: exact-fit stoned path. */ JSValue res = JS_ConcatString(ctx, left, right); if (JS_IsException(res)) return JS_EXCEPTION; @@ -468,52 +464,6 @@ JSValue cell_rt_get_intrinsic_lit(JSContext *ctx, int64_t lit_idx) { return cell_rt_get_intrinsic_key(ctx, key); } -/* --- Closure access --- - Walk the outer_frame chain on JSFunction (JS_FUNC_KIND_NATIVE). - The frame's function field links to the JSFunction, whose - u.native.outer_frame points to the enclosing frame. - GC traces outer_frame naturally — no registry needed. */ - -/* Get the outer frame's slots from a frame pointer. - The frame's function must be JS_FUNC_KIND_NATIVE. */ -static JSValue *get_outer_frame_slots(JSValue *fp) { - /* fp points to frame->slots[0]; frame header is before it */ - JSFrameRegister *frame = (JSFrameRegister *)((char *)fp - offsetof(JSFrameRegister, slots)); - if (JS_IsNull(frame->function)) - return NULL; - JSFunction *fn = JS_VALUE_GET_FUNCTION(frame->function); - if (fn->kind != JS_FUNC_KIND_NATIVE) - return NULL; - JSValue outer = fn->u.cell.outer_frame; - if (JS_IsNull(outer)) - return NULL; - JSFrameRegister *outer_frame = (JSFrameRegister *)JS_VALUE_GET_PTR(outer); - return (JSValue *)outer_frame->slots; -} - -JSValue cell_rt_get_closure(JSContext *ctx, void *fp, int64_t depth, - int64_t slot) { - (void)ctx; - JSValue *frame = (JSValue *)fp; - for (int64_t d = 0; d < depth; d++) { - frame = get_outer_frame_slots(frame); - if (!frame) - return JS_NULL; - } - return frame[slot]; -} - -void cell_rt_put_closure(JSContext *ctx, void *fp, JSValue val, int64_t depth, - int64_t slot) { - (void)ctx; - JSValue *frame = (JSValue *)fp; - for (int64_t d = 0; d < depth; d++) { - frame = get_outer_frame_slots(frame); - if (!frame) return; - } - frame[slot] = val; -} - /* --- GC-managed AOT frame stack --- Each native dispatch loop pushes a GC ref so the GC can find and update the current frame pointer when it moves objects. @@ -662,18 +612,6 @@ typedef JSValue (*cell_compiled_fn)(JSContext *ctx, void *fp); to call another function (instead of recursing via C stack). ============================================================ */ -/* Poll pause state on taken backward jumps (AOT backedges). - MACH can suspend/resume a register VM frame at pc granularity; native AOT - does not currently have an equivalent resume point, so we acknowledge timer - pauses by clearing pause_flag and continuing the current turn. */ -int cell_rt_check_backedge(JSContext *ctx) { - int pf = atomic_load_explicit(&ctx->pause_flag, memory_order_relaxed); - if (pf >= 1) { - atomic_store_explicit(&ctx->pause_flag, 0, memory_order_relaxed); - } - return 0; -} - void cell_rt_signal_call(JSContext *ctx, void *fp, int64_t frame_slot) { NativeRTState *st = native_state(ctx); if (!st) return; @@ -1194,101 +1132,6 @@ JSValue cell_rt_ne_tol(JSContext *ctx, JSValue a, JSValue b, JSValue tol) { return JS_NewBool(ctx, !cell_rt_tol_eq_inner(ctx, a, b, tol)); } -/* --- Extended type checks and text stoning --- */ - -void cell_rt_stone_text(JSValue v) { - stone_mutable_text(v); -} - -int cell_rt_is_blob(JSValue v) { - return mist_is_blob(v); -} - -int cell_rt_is_data(JSValue v) { - return mist_is_gc_object(v) && !mist_is_array(v) - && !mist_is_function(v) && !mist_is_blob(v); -} - -int cell_rt_is_fit(JSValue v) { - if (JS_IsInt(v)) - return 1; - if (JS_IsShortFloat(v)) { - double d = JS_VALUE_GET_FLOAT64(v); - return isfinite(d) && trunc(d) == d && fabs(d) <= 9007199254740992.0; - } - return 0; -} - -int cell_rt_is_char(JSValue v) { - if (MIST_IsImmediateASCII(v)) - return MIST_GetImmediateASCIILen(v) == 1; - if (mist_is_text(v)) - return js_string_value_len(v) == 1; - return 0; -} - -int cell_rt_is_digit(JSValue v) { - if (MIST_IsImmediateASCII(v) && MIST_GetImmediateASCIILen(v) == 1) { - int ch = MIST_GetImmediateASCIIChar(v, 0); - return ch >= '0' && ch <= '9'; - } - if (mist_is_text(v) && js_string_value_len(v) == 1) { - uint32_t ch = js_string_value_get(v, 0); - return ch >= '0' && ch <= '9'; - } - return 0; -} - -int cell_rt_is_letter(JSValue v) { - if (MIST_IsImmediateASCII(v) && MIST_GetImmediateASCIILen(v) == 1) { - int ch = MIST_GetImmediateASCIIChar(v, 0); - return (ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z'); - } - if (mist_is_text(v) && js_string_value_len(v) == 1) { - uint32_t ch = js_string_value_get(v, 0); - return (ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z'); - } - return 0; -} - -int cell_rt_is_lower(JSValue v) { - if (MIST_IsImmediateASCII(v) && MIST_GetImmediateASCIILen(v) == 1) { - int ch = MIST_GetImmediateASCIIChar(v, 0); - return ch >= 'a' && ch <= 'z'; - } - if (mist_is_text(v) && js_string_value_len(v) == 1) { - uint32_t ch = js_string_value_get(v, 0); - return ch >= 'a' && ch <= 'z'; - } - return 0; -} - -int cell_rt_is_upper(JSValue v) { - if (MIST_IsImmediateASCII(v) && MIST_GetImmediateASCIILen(v) == 1) { - int ch = MIST_GetImmediateASCIIChar(v, 0); - return ch >= 'A' && ch <= 'Z'; - } - if (mist_is_text(v) && js_string_value_len(v) == 1) { - uint32_t ch = js_string_value_get(v, 0); - return ch >= 'A' && ch <= 'Z'; - } - return 0; -} - -int cell_rt_is_ws(JSValue v) { - if (MIST_IsImmediateASCII(v) && MIST_GetImmediateASCIILen(v) == 1) { - int ch = MIST_GetImmediateASCIIChar(v, 0); - return ch == ' ' || ch == '\t' || ch == '\n' - || ch == '\r' || ch == '\f' || ch == '\v'; - } - if (mist_is_text(v) && js_string_value_len(v) == 1) { - uint32_t ch = js_string_value_get(v, 0); - return ch == ' ' || ch == '\t' || ch == '\n' - || ch == '\r' || ch == '\f' || ch == '\v'; - } - return 0; -} - int cell_rt_is_actor(JSContext *ctx, JSValue v) { int result = 0; if (mist_is_record(v) && !JS_IsNull(ctx->actor_sym)) @@ -1296,25 +1139,6 @@ int cell_rt_is_actor(JSContext *ctx, JSValue v) { return result; } -/* --- Type check: is_proxy (function with arity 2) --- */ - -int cell_rt_is_proxy(JSContext *ctx, JSValue v) { - (void)ctx; - if (!JS_IsFunction(v)) return 0; - JSFunction *fn = JS_VALUE_GET_FUNCTION(v); - return fn->length == 2; -} - -/* --- Short-circuit and/or (non-allocating) --- */ - -JSValue cell_rt_and(JSContext *ctx, JSValue left, JSValue right) { - return JS_ToBool(ctx, left) ? right : left; -} - -JSValue cell_rt_or(JSContext *ctx, JSValue left, JSValue right) { - return JS_ToBool(ctx, left) ? left : right; -} - /* --- Exception checking --- After potentially-throwing runtime calls, QBE-generated code needs to check for pending exceptions and branch to the disruption handler. */ From 017b63ba806e54f605ecee1803ecf532a6841229 Mon Sep 17 00:00:00 2001 From: John Alanbrook Date: Sat, 21 Feb 2026 19:23:53 -0600 Subject: [PATCH 08/11] inline intrinsics --- mcode.cm | 367 +++++++++++++++++++++++++++++++++++--------------- streamline.cm | 51 ++++++- vm_suite.ce | 181 +++++++++++++++++++++++++ 3 files changed, 487 insertions(+), 112 deletions(-) diff --git a/mcode.cm b/mcode.cm index c80eb7c5..ab9f62ca 100644 --- a/mcode.cm +++ b/mcode.cm @@ -879,6 +879,77 @@ var mcode = function(ast) { var inline_some = true var inline_reduce = true var inline_map = true + var inline_find = true + + // --- Helper: emit arity-dispatched callback invocation --- + // ctx = {fn, fn_arity, result, null_s, frame, zero, one, az, ao, prefix} + // args = [slot_for_arg1, slot_for_arg2] — data args (not this) + // max_args = 1 or 2 — how many data args to support + var emit_arity_call = function(ctx, args, max_args) { + var call_one = gen_label(ctx.prefix + "_c1") + var call_two = gen_label(ctx.prefix + "_c2") + var call_done = gen_label(ctx.prefix + "_cd") + emit_3("eq", ctx.az, ctx.fn_arity, ctx.zero) + emit_jump_cond("jump_false", ctx.az, call_one) + emit_3("frame", ctx.frame, ctx.fn, 0) + emit_3("setarg", ctx.frame, 0, ctx.null_s) + emit_2("invoke", ctx.frame, ctx.result) + emit_jump(call_done) + emit_label(call_one) + if (max_args >= 2) { + emit_3("eq", ctx.ao, ctx.fn_arity, ctx.one) + emit_jump_cond("jump_false", ctx.ao, call_two) + } + emit_3("frame", ctx.frame, ctx.fn, 1) + emit_3("setarg", ctx.frame, 0, ctx.null_s) + emit_3("setarg", ctx.frame, 1, args[0]) + emit_2("invoke", ctx.frame, ctx.result) + if (max_args < 2) { + emit_label(call_done) + return null + } + emit_jump(call_done) + emit_label(call_two) + emit_3("frame", ctx.frame, ctx.fn, 2) + emit_3("setarg", ctx.frame, 0, ctx.null_s) + emit_3("setarg", ctx.frame, 1, args[0]) + emit_3("setarg", ctx.frame, 2, args[1]) + emit_2("invoke", ctx.frame, ctx.result) + emit_label(call_done) + return null + } + + // --- Helper: forward loop scaffolding --- + // L = {arr, len, i, check, item, one, loop_label, done_label} + // body_fn(L) — called between element load and increment + var emit_forward_loop = function(L, body_fn) { + emit_2("int", L.i, 0) + emit_label(L.loop_label) + emit_3("lt", L.check, L.i, L.len) + emit_jump_cond("jump_false", L.check, L.done_label) + emit_3("load_index", L.item, L.arr, L.i) + body_fn(L) + emit_3("add", L.i, L.i, L.one) + emit_jump(L.loop_label) + emit_label(L.done_label) + return null + } + + // --- Helper: reverse loop scaffolding --- + var emit_reverse_loop = function(L, body_fn) { + var zero = alloc_slot() + emit_2("int", zero, 0) + emit_3("subtract", L.i, L.len, L.one) + emit_label(L.loop_label) + emit_3("ge", L.check, L.i, zero) + emit_jump_cond("jump_false", L.check, L.done_label) + emit_3("load_index", L.item, L.arr, L.i) + body_fn(L) + emit_3("subtract", L.i, L.i, L.one) + emit_jump(L.loop_label) + emit_label(L.done_label) + return null + } // --- Helper: emit a reduce loop body --- // r = {acc, i, arr, fn, len, fn_arity}; emits loop updating acc in-place. @@ -895,13 +966,12 @@ var mcode = function(ast) { var null_s = alloc_slot() var one = alloc_slot() var zero = alloc_slot() - var arity_is_zero = alloc_slot() - var arity_is_one = alloc_slot() + var az = alloc_slot() + var ao = alloc_slot() var f = alloc_slot() var loop_label = gen_label("reduce_loop") - var call_one_label = gen_label("reduce_call_one") - var call_two_label = gen_label("reduce_call_two") - var call_done_label = gen_label("reduce_call_done") + var ctx = {fn: fn_slot, fn_arity: fn_arity, result: acc, null_s: null_s, + frame: f, zero: zero, one: one, az: az, ao: ao, prefix: "reduce"} emit_2("int", one, 1) emit_2("int", zero, 0) emit_1("null", null_s) @@ -913,27 +983,7 @@ var mcode = function(ast) { } emit_jump_cond("jump_false", check, done_label) emit_3("load_index", item, arr_slot, i) - emit_3("eq", arity_is_zero, fn_arity, zero) - emit_jump_cond("jump_false", arity_is_zero, call_one_label) - emit_3("frame", f, fn_slot, 0) - emit_3("setarg", f, 0, null_s) - emit_2("invoke", f, acc) - emit_jump(call_done_label) - emit_label(call_one_label) - emit_3("eq", arity_is_one, fn_arity, one) - emit_jump_cond("jump_false", arity_is_one, call_two_label) - emit_3("frame", f, fn_slot, 1) - emit_3("setarg", f, 0, null_s) - emit_3("setarg", f, 1, acc) - emit_2("invoke", f, acc) - emit_jump(call_done_label) - emit_label(call_two_label) - emit_3("frame", f, fn_slot, 2) - emit_3("setarg", f, 0, null_s) - emit_3("setarg", f, 1, acc) - emit_3("setarg", f, 2, item) - emit_2("invoke", f, acc) - emit_label(call_done_label) + emit_arity_call(ctx, [acc, item], 2) if (forward) { emit_3("add", i, i, one) } else { @@ -942,60 +992,63 @@ var mcode = function(ast) { emit_jump(loop_label) } - // --- Inline expansion: arrfor(arr, fn) --- - var expand_inline_arrfor = function(dest, arr_slot, fn_slot) { + // --- Inline expansion: arrfor(arr, fn[, rev[, exit]]) --- + var expand_inline_arrfor = function(dest, args, nargs) { + var arr_slot = args.arr + var fn_slot = args.fn var len = alloc_slot() var i = alloc_slot() var check = alloc_slot() var item = alloc_slot() var fn_arity = alloc_slot() - var arity_is_zero = alloc_slot() - var arity_is_one = alloc_slot() + var az = alloc_slot() + var ao = alloc_slot() var null_s = alloc_slot() var zero = alloc_slot() var one = alloc_slot() var f = alloc_slot() - var discard = alloc_slot() - var loop_label = gen_label("arrfor_loop") - var done_label = gen_label("arrfor_done") - var call_one_label = gen_label("arrfor_call_one") - var call_two_label = gen_label("arrfor_call_two") - var call_done_label = gen_label("arrfor_call_done") + var val = alloc_slot() + var eq_check = alloc_slot() + var early_exit = gen_label("arrfor_exit") + var done_final = gen_label("arrfor_final") + var rev_label = gen_label("arrfor_rev") + var final_label = gen_label("arrfor_fwd_done") + var fwd_L = {arr: arr_slot, len: len, i: i, check: check, item: item, one: one, + loop_label: gen_label("arrfor_fwd"), done_label: gen_label("arrfor_fwd_d")} + var rev_L = {arr: arr_slot, len: len, i: i, check: check, item: item, one: one, + loop_label: gen_label("arrfor_rev_l"), done_label: gen_label("arrfor_rev_d")} + var ctx = {fn: fn_slot, fn_arity: fn_arity, result: val, null_s: null_s, + frame: f, zero: zero, one: one, az: az, ao: ao, prefix: "arrfor"} + var body_fn = function(L) { + emit_arity_call(ctx, [L.item, L.i], 2) + if (nargs >= 4 && args.exit >= 0) { + emit_3("eq", eq_check, val, args.exit) + emit_jump_cond("jump_true", eq_check, early_exit) + } + return null + } emit_2("length", len, arr_slot) - emit_2("int", i, 0) emit_2("int", zero, 0) emit_2("int", one, 1) emit_1("null", null_s) emit_2("length", fn_arity, fn_slot) - emit_label(loop_label) - emit_3("lt", check, i, len) - emit_jump_cond("jump_false", check, done_label) - emit_3("load_index", item, arr_slot, i) - emit_3("eq", arity_is_zero, fn_arity, zero) - emit_jump_cond("jump_false", arity_is_zero, call_one_label) - emit_3("frame", f, fn_slot, 0) - emit_3("setarg", f, 0, null_s) - emit_2("invoke", f, discard) - emit_jump(call_done_label) - emit_label(call_one_label) - emit_3("eq", arity_is_one, fn_arity, one) - emit_jump_cond("jump_false", arity_is_one, call_two_label) - emit_3("frame", f, fn_slot, 1) - emit_3("setarg", f, 0, null_s) - emit_3("setarg", f, 1, item) - emit_2("invoke", f, discard) - emit_jump(call_done_label) - emit_label(call_two_label) - emit_3("frame", f, fn_slot, 2) - emit_3("setarg", f, 0, null_s) - emit_3("setarg", f, 1, item) - emit_3("setarg", f, 2, i) - emit_2("invoke", f, discard) - emit_label(call_done_label) - emit_3("add", i, i, one) - emit_jump(loop_label) - emit_label(done_label) + if (nargs <= 2) { + emit_forward_loop(fwd_L, body_fn) + } else { + emit_jump_cond("jump_true", args.rev, rev_label) + emit_forward_loop(fwd_L, body_fn) + emit_jump(final_label) + emit_label(rev_label) + emit_reverse_loop(rev_L, body_fn) + emit_label(final_label) + } emit_1("null", dest) + emit_jump(done_final) + if (nargs >= 4 && args.exit >= 0) { + emit_label(early_exit) + emit_2("move", dest, val) + } + emit_label(done_final) return dest } @@ -1113,61 +1166,151 @@ var mcode = function(ast) { var check = alloc_slot() var item = alloc_slot() var fn_arity = alloc_slot() - var arity_is_zero = alloc_slot() - var arity_is_one = alloc_slot() + var az = alloc_slot() + var ao = alloc_slot() var null_s = alloc_slot() var zero = alloc_slot() var one = alloc_slot() var f = alloc_slot() var val = alloc_slot() - var loop_label = gen_label("filter_loop") - var call_one_label = gen_label("filter_call_one") - var call_two_label = gen_label("filter_call_two") - var call_done_label = gen_label("filter_call_done") - var skip_label = gen_label("filter_skip") - var done_label = gen_label("filter_done") + var skip = gen_label("filter_skip") + var ctx = {fn: fn_slot, fn_arity: fn_arity, result: val, null_s: null_s, + frame: f, zero: zero, one: one, az: az, ao: ao, prefix: "filter"} + var L = {arr: arr_slot, len: len, i: i, check: check, item: item, one: one, + loop_label: gen_label("filter_loop"), done_label: gen_label("filter_done")} add_instr(["array", result, 0]) emit_2("length", len, arr_slot) - emit_2("int", i, 0) emit_2("int", zero, 0) emit_2("int", one, 1) emit_1("null", null_s) emit_2("length", fn_arity, fn_slot) - emit_label(loop_label) - emit_3("lt", check, i, len) - emit_jump_cond("jump_false", check, done_label) - emit_3("load_index", item, arr_slot, i) - emit_3("eq", arity_is_zero, fn_arity, zero) - emit_jump_cond("jump_false", arity_is_zero, call_one_label) - emit_3("frame", f, fn_slot, 0) - emit_3("setarg", f, 0, null_s) - emit_2("invoke", f, val) - emit_jump(call_done_label) - emit_label(call_one_label) - emit_3("eq", arity_is_one, fn_arity, one) - emit_jump_cond("jump_false", arity_is_one, call_two_label) - emit_3("frame", f, fn_slot, 1) - emit_3("setarg", f, 0, null_s) - emit_3("setarg", f, 1, item) - emit_2("invoke", f, val) - emit_jump(call_done_label) - emit_label(call_two_label) - emit_3("frame", f, fn_slot, 2) - emit_3("setarg", f, 0, null_s) - emit_3("setarg", f, 1, item) - emit_3("setarg", f, 2, i) - emit_2("invoke", f, val) - emit_label(call_done_label) - emit_jump_cond("jump_false", val, skip_label) - emit_2("push", result, item) - emit_label(skip_label) - emit_3("add", i, i, one) - emit_jump(loop_label) - emit_label(done_label) + emit_forward_loop(L, function(L) { + emit_arity_call(ctx, [L.item, L.i], 2) + emit_jump_cond("jump_false", val, skip) + emit_2("push", result, L.item) + emit_label(skip) + return null + }) emit_2("move", dest, result) return dest } + // --- Inline expansion: find(arr, target[, rev[, from]]) --- + var expand_inline_find = function(dest, args, nargs) { + var arr_slot = args.arr + var target = args.target + var len = alloc_slot() + var i = alloc_slot() + var check = alloc_slot() + var item = alloc_slot() + var fn_arity = alloc_slot() + var az = alloc_slot() + var ao = alloc_slot() + var null_s = alloc_slot() + var zero = alloc_slot() + var one = alloc_slot() + var f = alloc_slot() + var val = alloc_slot() + var is_fn = alloc_slot() + var eq_check = alloc_slot() + var fn_mode_label = gen_label("find_fn") + var found_label = gen_label("find_found") + var not_found_label = gen_label("find_nf") + var final_label = gen_label("find_final") + var vrev = gen_label("find_vrev") + var vdone = gen_label("find_vdone") + var frev = gen_label("find_frev") + var fdone = gen_label("find_fdone") + var vL = {arr: arr_slot, len: len, i: i, check: check, item: item, one: one, + loop_label: gen_label("find_vl"), done_label: gen_label("find_vd")} + var vrL = {arr: arr_slot, len: len, i: i, check: check, item: item, one: one, + loop_label: gen_label("find_vrl"), done_label: gen_label("find_vrd")} + var fL = {arr: arr_slot, len: len, i: i, check: check, item: item, one: one, + loop_label: gen_label("find_fl"), done_label: gen_label("find_fd")} + var ffL = {arr: arr_slot, len: len, i: i, check: check, item: item, one: one, + loop_label: gen_label("find_ffl"), done_label: gen_label("find_ffd")} + var frL = {arr: arr_slot, len: len, i: i, check: check, item: item, one: one, + loop_label: gen_label("find_frl"), done_label: gen_label("find_frd")} + var ctx = {fn: target, fn_arity: fn_arity, result: val, null_s: null_s, + frame: f, zero: zero, one: one, az: az, ao: ao, prefix: "find"} + var val_body = function(L) { + emit_3("eq", eq_check, L.item, target) + emit_jump_cond("jump_true", eq_check, found_label) + return null + } + var fn_body = function(L) { + emit_arity_call(ctx, [L.item, L.i], 2) + emit_jump_cond("jump_true", val, found_label) + return null + } + emit_2("length", len, arr_slot) + emit_2("int", zero, 0) + emit_2("int", one, 1) + emit_1("null", null_s) + emit_2("is_func", is_fn, target) + emit_jump_cond("jump_true", is_fn, fn_mode_label) + // === Value mode === + if (nargs <= 2) { + emit_forward_loop(vL, val_body) + } else { + emit_jump_cond("jump_true", args.rev, vrev) + if (nargs >= 4 && args.from >= 0) { + emit_2("move", i, args.from) + } + if (nargs >= 4 && args.from >= 0) { + emit_label(vL.loop_label) + emit_3("lt", vL.check, vL.i, vL.len) + emit_jump_cond("jump_false", vL.check, vL.done_label) + emit_3("load_index", vL.item, vL.arr, vL.i) + val_body(vL) + emit_3("add", vL.i, vL.i, vL.one) + emit_jump(vL.loop_label) + emit_label(vL.done_label) + } else { + emit_forward_loop(vL, val_body) + } + emit_jump(vdone) + emit_label(vrev) + emit_reverse_loop(vrL, val_body) + emit_label(vdone) + } + emit_jump(not_found_label) + // === Function mode === + emit_label(fn_mode_label) + emit_2("length", fn_arity, target) + if (nargs <= 2) { + emit_forward_loop(fL, fn_body) + } else { + emit_jump_cond("jump_true", args.rev, frev) + if (nargs >= 4 && args.from >= 0) { + emit_2("move", i, args.from) + } + if (nargs >= 4 && args.from >= 0) { + emit_label(ffL.loop_label) + emit_3("lt", ffL.check, ffL.i, ffL.len) + emit_jump_cond("jump_false", ffL.check, ffL.done_label) + emit_3("load_index", ffL.item, ffL.arr, ffL.i) + fn_body(ffL) + emit_3("add", ffL.i, ffL.i, ffL.one) + emit_jump(ffL.loop_label) + emit_label(ffL.done_label) + } else { + emit_forward_loop(ffL, fn_body) + } + emit_jump(fdone) + emit_label(frev) + emit_reverse_loop(frL, fn_body) + emit_label(fdone) + } + emit_label(not_found_label) + emit_1("null", dest) + emit_jump(final_label) + emit_label(found_label) + emit_2("move", dest, i) + emit_label(final_label) + return dest + } + // --- Inline expansion: array(arr, fn) → map --- var expand_inline_map = function(dest, arr_slot, fn_slot) { var result = alloc_slot() @@ -1993,11 +2136,13 @@ var mcode = function(ast) { return a1 } // Callback intrinsics → inline mcode loops - if (nargs == 2 && fname == "arrfor" && inline_arrfor) { + if (fname == "arrfor" && nargs >= 2 && nargs <= 4 && inline_arrfor) { a0 = gen_expr(args_list[0], -1) a1 = gen_expr(args_list[1], -1) + a2 = nargs >= 3 ? gen_expr(args_list[2], -1) : -1 + a3 = nargs >= 4 ? gen_expr(args_list[3], -1) : -1 d = alloc_slot() - return expand_inline_arrfor(d, a0, a1) + return expand_inline_arrfor(d, {arr: a0, fn: a1, rev: a2, exit: a3}, nargs) } if (nargs == 2 && fname == "every" && inline_every) { a0 = gen_expr(args_list[0], -1) @@ -2017,6 +2162,14 @@ var mcode = function(ast) { d = alloc_slot() return expand_inline_filter(d, a0, a1) } + if (fname == "find" && nargs >= 2 && nargs <= 4 && inline_find) { + a0 = gen_expr(args_list[0], -1) + a1 = gen_expr(args_list[1], -1) + a2 = nargs >= 3 ? gen_expr(args_list[2], -1) : -1 + a3 = nargs >= 4 ? gen_expr(args_list[3], -1) : -1 + d = alloc_slot() + return expand_inline_find(d, {arr: a0, target: a1, rev: a2, from: a3}, nargs) + } if (fname == "reduce" && nargs >= 2 && nargs <= 4 && inline_reduce) { a0 = gen_expr(args_list[0], -1) a1 = gen_expr(args_list[1], -1) diff --git a/streamline.cm b/streamline.cm index 86376382..5d6f0073 100644 --- a/streamline.cm +++ b/streamline.cm @@ -2595,12 +2595,11 @@ var streamline = function(ir, log) { reduce: true, array: true } - var can_inline = function(callee_func, is_prefer) { + // Structural eligibility: closures, get/put, disruption, nested functions + var can_inline_structural = function(callee_func) { var instrs = null var i = 0 var instr = null - var count = 0 - var limit = 0 if (callee_func.nr_close_slots > 0) return false instrs = callee_func.instructions if (instrs == null) return false @@ -2622,7 +2621,16 @@ var streamline = function(ir, log) { if (callee_func.disruption_pc != null && callee_func.disruption_pc > 0) { return false } - count = 0 + return true + } + + // Size eligibility: instruction count check + var can_inline_size = function(callee_func, is_prefer) { + var instrs = callee_func.instructions + var count = 0 + var i = 0 + var limit = 0 + if (instrs == null) return false i = 0 while (i < length(instrs)) { if (is_array(instrs[i])) count = count + 1 @@ -2632,6 +2640,11 @@ var streamline = function(ir, log) { return count <= limit } + var can_inline = function(callee_func, is_prefer) { + if (!can_inline_structural(callee_func)) return false + return can_inline_size(callee_func, is_prefer) + } + // ========================================================= // Pass: inline_calls — inline same-module + sensory functions // ========================================================= @@ -2673,6 +2686,9 @@ var streamline = function(ir, log) { var inlined_body = null var fi = null var intrinsic_name = null + var is_single_use = false + var ref_count = 0 + var ri = 0 if (instructions == null) return false num_instr = length(instructions) @@ -2767,8 +2783,33 @@ var streamline = function(ir, log) { continue } + // Check if callee is a single-use function literal — skip size limit + is_single_use = false + if (fi != null) { + ref_count = 0 + ri = 0 + while (ri < length(instructions)) { + if (is_array(instructions[ri])) { + // Count frame instructions that use this slot as callee (position 2) + if (instructions[ri][0] == "frame" && instructions[ri][2] == callee_slot) { + ref_count = ref_count + 1 + } + // Also count setarg where slot is passed as value (position 3) + if (instructions[ri][0] == "setarg" && instructions[ri][3] == callee_slot) { + ref_count = ref_count + 1 + } + } + ri = ri + 1 + } + if (ref_count <= 1) is_single_use = true + } + // Check eligibility - if (!can_inline(callee_func, is_prefer)) { + if (!can_inline_structural(callee_func)) { + i = i + 1 + continue + } + if (!is_single_use && !can_inline_size(callee_func, is_prefer)) { i = i + 1 continue } diff --git a/vm_suite.ce b/vm_suite.ce index 6e1605fc..f6795f9b 100644 --- a/vm_suite.ce +++ b/vm_suite.ce @@ -5982,6 +5982,187 @@ run("gc closure - factory pattern survives gc", function() { assert_eq(b.say(), "hello bob", "second factory closure") }) +// ============================================================================ +// INLINE LOOP EXPANSION TESTS +// ============================================================================ + +// --- filter inline expansion --- + +run("filter inline - integer predicate", function() { + var result = filter([0, 1.25, 2, 3.5, 4, 5.75], is_integer) + assert_eq(length(result), 3, "filter integer count") + assert_eq(result[0], 0, "filter integer [0]") + assert_eq(result[1], 2, "filter integer [1]") + assert_eq(result[2], 4, "filter integer [2]") +}) + +run("filter inline - all pass", function() { + var result = filter([1, 2, 3], function(x) { return true }) + assert_eq(length(result), 3, "filter all pass length") +}) + +run("filter inline - none pass", function() { + var result = filter([1, 2, 3], function(x) { return false }) + assert_eq(length(result), 0, "filter none pass length") +}) + +run("filter inline - empty", function() { + var result = filter([], is_integer) + assert_eq(length(result), 0, "filter empty length") +}) + +run("filter inline - with index", function() { + var result = filter([10, 20, 30], function(e, i) { return i > 0 }) + assert_eq(length(result), 2, "filter index length") + assert_eq(result[0], 20, "filter index [0]") + assert_eq(result[1], 30, "filter index [1]") +}) + +run("filter inline - large callback", function() { + var result = filter([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], function(x) { + var a = x * 2 + var b = a + 1 + var c = b * 3 + var d = c - a + return d > 20 + }) + if (length(result) < 1) fail("filter large callback should return elements") +}) + +// --- find inline expansion --- + +run("find inline - function forward", function() { + var idx = find([1, 2, 3], function(x) { return x == 2 }) + assert_eq(idx, 1, "find fn forward") +}) + +run("find inline - function not found", function() { + var idx = find([1, 2, 3], function(x) { return x == 99 }) + assert_eq(idx, null, "find fn not found") +}) + +run("find inline - value forward", function() { + var idx = find([10, 20, 30], 20) + assert_eq(idx, 1, "find value forward") +}) + +run("find inline - value not found", function() { + var idx = find([10, 20, 30], 99) + assert_eq(idx, null, "find value not found") +}) + +run("find inline - reverse", function() { + var idx = find([1, 2, 1, 2], function(x) { return x == 1 }, true) + assert_eq(idx, 2, "find reverse") +}) + +run("find inline - from", function() { + var idx = find([1, 2, 3, 2], function(x) { return x == 2 }, false, 2) + assert_eq(idx, 3, "find from") +}) + +run("find inline - empty", function() { + var idx = find([], 1) + assert_eq(idx, null, "find empty") +}) + +run("find inline - value reverse", function() { + var idx = find([10, 20, 30, 20], 20, true) + assert_eq(idx, 3, "find value reverse") +}) + +run("find inline - value with from", function() { + var idx = find([10, 20, 30, 20], 20, false, 2) + assert_eq(idx, 3, "find value with from") +}) + +run("find inline - with index callback", function() { + var idx = find(["a", "b", "c"], (x, i) => i == 2) + assert_eq(idx, 2, "find index callback") +}) + +// --- arrfor inline expansion --- + +run("arrfor inline - basic sum", function() { + var sum = 0 + arrfor([1, 2, 3, 4, 5], function(x) { sum = sum + x }) + assert_eq(sum, 15, "arrfor basic sum") +}) + +run("arrfor inline - reverse", function() { + var order = [] + arrfor([1, 2, 3], function(x) { order[] = x }, true) + assert_eq(order[0], 3, "arrfor reverse [0]") + assert_eq(order[1], 2, "arrfor reverse [1]") + assert_eq(order[2], 1, "arrfor reverse [2]") +}) + +run("arrfor inline - exit", function() { + var result = arrfor([1, 2, 3, 4, 5], function(x) { + if (x > 3) return true + return null + }, false, true) + assert_eq(result, true, "arrfor exit") +}) + +run("arrfor inline - no exit returns null", function() { + var result = arrfor([1, 2, 3], function(x) { }) + assert_eq(result, null, "arrfor no exit null") +}) + +run("arrfor inline - with index", function() { + var indices = [] + arrfor([10, 20, 30], (x, i) => { indices[] = i }) + assert_eq(indices[0], 0, "arrfor index [0]") + assert_eq(indices[1], 1, "arrfor index [1]") + assert_eq(indices[2], 2, "arrfor index [2]") +}) + +run("arrfor inline - reverse with index", function() { + var items = [] + arrfor(["a", "b", "c"], function(x, i) { items[] = text(i) + x }, true) + assert_eq(items[0], "2c", "arrfor rev index [0]") + assert_eq(items[1], "1b", "arrfor rev index [1]") + assert_eq(items[2], "0a", "arrfor rev index [2]") +}) + +// --- reduce inline expansion --- + +run("reduce inline - no initial forward", function() { + var result = reduce([1, 2, 3, 4, 5, 6, 7, 8, 9], function(a, b) { return a + b }) + assert_eq(result, 45, "reduce sum 1-9") +}) + +run("reduce inline - single element", function() { + var result = reduce([42], function(a, b) { return a + b }) + assert_eq(result, 42, "reduce single") +}) + +run("reduce inline - empty", function() { + var result = reduce([], function(a, b) { return a + b }) + assert_eq(result, null, "reduce empty") +}) + +run("reduce inline - with initial", function() { + var result = reduce([1, 2, 3], function(a, b) { return a + b }, 10) + assert_eq(result, 16, "reduce with initial") +}) + +run("reduce inline - with initial empty", function() { + var result = reduce([], function(a, b) { return a + b }, 99) + assert_eq(result, 99, "reduce initial empty") +}) + +run("reduce inline - reverse", function() { + var result = reduce([1, 2, 3], function(a, b) { return a - b }, 0, true) + assert_eq(result, -6, "reduce reverse") +}) + +run("reduce inline - intrinsic callback", function() { + var result = reduce([3, 7, 2, 9, 1], max) + assert_eq(result, 9, "reduce max") +}) + // ============================================================================ // SUMMARY // ============================================================================ From cec0b99207ac4623fa7723c369ec09fa5f131795 Mon Sep 17 00:00:00 2001 From: John Alanbrook Date: Sat, 21 Feb 2026 19:43:05 -0600 Subject: [PATCH 09/11] correct apply check and add apply opcode --- mcode.cm | 8 ++++++++ source/mach.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++ source/runtime.c | 10 +++++++++- 3 files changed, 64 insertions(+), 1 deletion(-) diff --git a/mcode.cm b/mcode.cm index ab9f62ca..d28f0c61 100644 --- a/mcode.cm +++ b/mcode.cm @@ -2135,6 +2135,14 @@ var mcode = function(ast) { emit_label(guard_done) return a1 } + // apply(fn, arr) → direct opcode + if (nargs == 2 && fname == "apply") { + a0 = gen_expr(args_list[0], -1) + a1 = gen_expr(args_list[1], -1) + d = alloc_slot() + emit_3("apply", d, a0, a1) + return d + } // Callback intrinsics → inline mcode loops if (fname == "arrfor" && nargs >= 2 && nargs <= 4 && inline_arrfor) { a0 = gen_expr(args_list[0], -1) diff --git a/source/mach.c b/source/mach.c index d9efe270..59d06174 100644 --- a/source/mach.c +++ b/source/mach.c @@ -281,6 +281,7 @@ typedef enum MachOpcode { MACH_IS_UPPER, /* R(A) = is_upper(R(B)) */ MACH_IS_WS, /* R(A) = is_whitespace(R(B)) */ MACH_IS_ACTOR, /* R(A) = is_actor(R(B)) — has actor_sym property */ + MACH_APPLY, /* R(A) = apply(R(B), R(C)) — call fn with args from array (ABC) */ MACH_OP_COUNT } MachOpcode; @@ -405,6 +406,7 @@ static const char *mach_opcode_names[MACH_OP_COUNT] = { [MACH_IS_UPPER] = "is_upper", [MACH_IS_WS] = "is_ws", [MACH_IS_ACTOR] = "is_actor", + [MACH_APPLY] = "apply", }; /* ---- Compile-time constant pool entry ---- */ @@ -1427,6 +1429,7 @@ vm_dispatch: DT(MACH_IS_DIGIT), DT(MACH_IS_LETTER), DT(MACH_IS_LOWER), DT(MACH_IS_UPPER), DT(MACH_IS_WS), DT(MACH_IS_ACTOR), + DT(MACH_APPLY), }; #pragma GCC diagnostic pop #undef DT @@ -2511,6 +2514,49 @@ vm_dispatch: frame->slots[a] = JS_NewBool(ctx, result); VM_BREAK(); } + VM_CASE(MACH_APPLY): { + /* A=dest, B=fn, C=arr_or_val */ + JSValue fn_val = frame->slots[b]; + JSValue arg_val = frame->slots[c]; + if (!mist_is_function(fn_val)) { + frame->slots[a] = fn_val; + VM_BREAK(); + } + JSFunction *fn = JS_VALUE_GET_FUNCTION(fn_val); + JSValue ret; + ctx->reg_current_frame = frame_ref.val; + ctx->current_register_pc = pc > 0 ? pc - 1 : 0; + ctx->vm_call_depth++; + if (!mist_is_array(arg_val)) { + /* Non-array: use as single argument */ + if (!mach_check_call_arity(ctx, fn, 1)) { + ctx->vm_call_depth--; + goto disrupt; + } + ret = JS_CallInternal(ctx, fn_val, JS_NULL, 1, &arg_val, 0); + } else { + JSArray *arr = JS_VALUE_GET_ARRAY(arg_val); + int len = arr->len; + if (!mach_check_call_arity(ctx, fn, len)) { + ctx->vm_call_depth--; + goto disrupt; + } + if (len == 0) { + ret = JS_CallInternal(ctx, fn_val, JS_NULL, 0, NULL, 0); + } else { + JSValue *args = alloca(sizeof(JSValue) * len); + for (int i = 0; i < len; i++) + args[i] = arr->values[i]; + ret = JS_CallInternal(ctx, fn_val, JS_NULL, len, args, 0); + } + } + ctx->vm_call_depth--; + frame = (JSFrameRegister *)JS_VALUE_GET_PTR(frame_ref.val); + ctx->reg_current_frame = JS_NULL; + if (JS_IsException(ret)) goto disrupt; + frame->slots[a] = ret; + VM_BREAK(); + } /* Logical */ VM_CASE(MACH_NOT): { int bval = JS_ToBool(ctx, frame->slots[b]); @@ -3168,6 +3214,7 @@ static MachCode *mcode_lower_func(cJSON *fobj, const char *filename) { else if (strcmp(op, "is_upper") == 0) { AB2(MACH_IS_UPPER); } else if (strcmp(op, "is_ws") == 0) { AB2(MACH_IS_WS); } else if (strcmp(op, "is_actor") == 0) { AB2(MACH_IS_ACTOR); } + else if (strcmp(op, "apply") == 0) { ABC3(MACH_APPLY); } /* Logical */ else if (strcmp(op, "not") == 0) { AB2(MACH_NOT); } else if (strcmp(op, "and") == 0) { ABC3(MACH_AND); } diff --git a/source/runtime.c b/source/runtime.c index b749bc0e..65d34188 100644 --- a/source/runtime.c +++ b/source/runtime.c @@ -9432,15 +9432,23 @@ static JSValue js_cell_fn_apply (JSContext *ctx, JSValue this_val, int argc, JSV if (argc < 1) return JS_NULL; if (!JS_IsFunction (argv[0])) return argv[0]; + JSFunction *fn = JS_VALUE_GET_FUNCTION (argv[0]); + if (argc < 2) return JS_CallInternal (ctx, argv[0], JS_NULL, 0, NULL, 0); - if (!JS_IsArray (argv[1])) + if (!JS_IsArray (argv[1])) { + if (fn->length >= 0 && 1 > fn->length) + return JS_RaiseDisrupt (ctx, "too many arguments for apply: expected %d, got 1", fn->length); return JS_CallInternal (ctx, argv[0], JS_NULL, 1, &argv[1], 0); + } JSArray *arr = JS_VALUE_GET_ARRAY (argv[1]); int len = arr->len; + if (fn->length >= 0 && len > fn->length) + return JS_RaiseDisrupt (ctx, "too many arguments for apply: expected %d, got %d", fn->length, len); + if (len == 0) return JS_CallInternal (ctx, argv[0], JS_NULL, 0, NULL, 0); From 8e963793776aae731c39cd2eefa3783896d49a28 Mon Sep 17 00:00:00 2001 From: John Alanbrook Date: Sat, 21 Feb 2026 20:42:17 -0600 Subject: [PATCH 10/11] wary booleans --- boot/bootstrap.cm.mcode | 161 +- boot/fold.cm.mcode | 4786 +++---- boot/mcode.cm.mcode | 25586 +++++++++++++++++----------------- boot/parse.cm.mcode | 9732 ++++++------- boot/streamline.cm.mcode | 27739 +++++++++++++++++++------------------ boot/tokenize.cm.mcode | 2047 ++- mcode.cm | 32 +- source/mach.c | 112 +- streamline.cm | 142 +- 9 files changed, 34034 insertions(+), 36303 deletions(-) diff --git a/boot/bootstrap.cm.mcode b/boot/bootstrap.cm.mcode index a86ee147..9fff19e5 100644 --- a/boot/bootstrap.cm.mcode +++ b/boot/bootstrap.cm.mcode @@ -95,22 +95,9 @@ "nr_close_slots": 0, "instructions": [ ["move", 2, 1, 14, 14], - [ - "access", - 3, - { - "name": "is_blob", - "kind": "name", - "make": "intrinsic" - }, - 15, - 8 - ], - ["frame", 4, 3, 1, 15, 8], - ["setarg", 4, 1, 1, 15, 8], - ["invoke", 4, 3, 15, 8], + ["is_blob", 3, 1, 15, 16], "_nop_bl_1", - ["jump_true", 3, "if_else_6", 15, 8], + ["jump_true", 3, "if_else_6", 15, 16], [ "access", 3, @@ -199,7 +186,7 @@ "_nop_ur_1", "_nop_ur_2" ], - "_write_types": [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "null", "text", "array", null, null, null, "text", null, null, null, null], + "_write_types": [null, null, null, "bool", null, null, null, null, null, null, null, null, null, null, null, null, null, "null", "text", "array", null, null, null, "text", null, null, null, null], "name": "content_hash", "filename": ".cell/packages/core/internal/bootstrap.cm", "nr_args": 1 @@ -222,7 +209,7 @@ 8 ], "_nop_bl_1", - ["jump_true", 2, "if_else_10", 20, 8], + ["wary_true", 2, "if_else_10", 20, 8], ["null", 2, 20, 26], ["return", 2, 20, 26], "_nop_ur_1", @@ -345,7 +332,7 @@ 8 ], "_nop_bl_1", - ["jump_true", 1, "if_else_18", 25, 8], + ["wary_true", 1, "if_else_18", 25, 8], ["null", 1, 25, 26], ["return", 1, 25, 26], "_nop_ur_1", @@ -427,7 +414,7 @@ ["invoke", 5, 3, 27, 8], "call_done_26", "_nop_bl_2", - ["jump_true", 3, "if_else_23", 27, 8], + ["wary_true", 3, "if_else_23", 27, 8], ["get", 2, 11, 1, 27, 24], ["is_proxy", 3, 2, 27, 24], ["jump_false", 3, "record_path_27", 27, 24], @@ -628,7 +615,7 @@ ["invoke", 8, 6, 36, 8], "call_done_41", "_nop_bl_1", - ["jump_true", 6, "if_else_38", 36, 8], + ["wary_true", 6, "if_else_38", 36, 8], ["access", 5, "error: missing seed: ", 37, 14], "_nop_tc_7", "_nop_tc_8", @@ -1026,30 +1013,11 @@ "call_done_63", "if_end_58", ["access", 3, 1, 66, 17], - "_nop_tc_1", - "_nop_tc_2", - "_nop_tc_3", - "_nop_tc_4", ["add", 5, 5, 3, 66, 17], - ["jump", "num_done_65", 66, 17], - "num_err_64", - "_nop_ucfg_1", - "_nop_ucfg_2", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "num_done_65", ["jump", "while_start_55", 66, 17], "while_end_56", ["disrupt", 68, 5], - "_nop_ucfg_13", + "_nop_ucfg_1", "if_else_53", "if_end_54", ["get", 3, 15, 1, 70, 10], @@ -1060,7 +1028,7 @@ "_nop_ur_1", "_nop_ur_2" ], - "_write_types": [null, null, null, "int", null, null, "bool", null, null, null, null, null, null, null, null, null, null, null, "null", "bool", "bool", null, "int", "int", "bool", null, "int", "bool", null, null, null, null, "null", "bool", "bool", null, "null", "bool", null, null, null, null, null, null, null, null, "array", null, "text", null, null, null, null, null, "null", "text", "array", null, null, null, "array", null, "text", null, null, null, null, null, "null", "text", "array", null, null, null, "int", null, null, null, null, null, null, null, null, null, null, null, null, null], + "_write_types": [null, null, null, "int", null, null, "bool", null, null, null, null, null, null, null, null, null, null, null, "null", "bool", "bool", null, "int", "int", "bool", null, "int", "bool", null, null, null, null, "null", "bool", "bool", null, "null", "bool", null, null, null, null, null, null, null, null, "array", null, "text", null, null, null, null, null, "null", "text", "array", null, null, null, "array", null, "text", null, null, null, null, null, "null", "text", "array", null, null, null, "int", null, null, null, null], "name": "analyze", "filename": ".cell/packages/core/internal/bootstrap.cm", "nr_args": 2 @@ -1078,7 +1046,7 @@ "instructions": [ ["get", 3, 11, 1, 74, 21], ["is_proxy", 4, 3, 74, 21], - ["jump_false", 4, "record_path_66", 74, 21], + ["jump_false", 4, "record_path_64", 74, 21], ["null", 4, 74, 21], ["access", 5, "slurp", 74, 21], ["array", 6, 0, 74, 21], @@ -1089,14 +1057,14 @@ ["setarg", 7, 1, 5, 74, 21], ["setarg", 7, 2, 6, 74, 21], ["invoke", 7, 4, 74, 21], - ["jump", "call_done_67", 74, 21], - "record_path_66", + ["jump", "call_done_65", 74, 21], + "record_path_64", ["load_field", 5, 3, "slurp", 74, 21], ["frame", 6, 5, 1, 74, 21], ["setarg", 6, 0, 3, 74, 21], ["setarg", 6, 1, 2, 74, 21], ["invoke", 6, 4, 74, 21], - "call_done_67", + "call_done_65", ["move", 3, 4, 74, 21], ["get", 5, 4, 1, 75, 14], ["frame", 6, 5, 1, 75, 14], @@ -1113,10 +1081,10 @@ ["null", 8, 79, 20], ["null", 9, 80, 19], ["move", 10, 4, 81, 7], - ["jump_false", 4, "and_end_70", 81, 7], + ["wary_false", 4, "and_end_68", 81, 7], ["get", 4, 11, 1, 81, 17], ["is_proxy", 11, 4, 81, 17], - ["jump_false", 11, "record_path_71", 81, 17], + ["jump_false", 11, "record_path_69", 81, 17], ["null", 11, 81, 17], ["access", 12, "is_file", 81, 17], ["array", 13, 0, 81, 17], @@ -1127,22 +1095,22 @@ ["setarg", 14, 1, 12, 81, 17], ["setarg", 14, 2, 13, 81, 17], ["invoke", 14, 11, 81, 17], - ["jump", "call_done_72", 81, 17], - "record_path_71", + ["jump", "call_done_70", 81, 17], + "record_path_69", ["load_field", 12, 4, "is_file", 81, 17], ["frame", 13, 12, 1, 81, 17], ["setarg", 13, 0, 4, 81, 17], ["setarg", 13, 1, 5, 81, 17], ["invoke", 13, 11, 81, 17], - "call_done_72", + "call_done_70", ["move", 10, 11, 81, 17], - "and_end_70", - ["jump_false", 10, "if_else_68", 81, 17], + "and_end_68", + ["wary_false", 10, "if_else_66", 81, 17], ["null", 4, 81, 37], ["return", 4, 81, 37], "_nop_ur_1", - "if_else_68", - "if_end_69", + "if_else_66", + "if_end_67", [ "access", 4, @@ -1174,7 +1142,7 @@ ["move", 7, 3, 83, 14], ["get", 3, 12, 1, 84, 16], ["is_proxy", 4, 3, 84, 16], - ["jump_false", 4, "record_path_73", 84, 16], + ["jump_false", 4, "record_path_71", 84, 16], ["null", 4, 84, 16], ["access", 6, "encode", 84, 16], ["array", 10, 0, 84, 16], @@ -1185,14 +1153,14 @@ ["setarg", 11, 1, 6, 84, 16], ["setarg", 11, 2, 10, 84, 16], ["invoke", 11, 4, 84, 16], - ["jump", "call_done_74", 84, 16], - "record_path_73", + ["jump", "call_done_72", 84, 16], + "record_path_71", ["load_field", 6, 3, "encode", 84, 16], ["frame", 10, 6, 1, 84, 16], ["setarg", 10, 0, 3, 84, 16], ["setarg", 10, 1, 7, 84, 16], ["invoke", 10, 4, 84, 16], - "call_done_74", + "call_done_72", ["move", 8, 4, 84, 16], [ "access", @@ -1210,13 +1178,13 @@ ["setarg", 6, 2, 4, 85, 15], ["invoke", 6, 3, 85, 15], ["move", 9, 3, 85, 15], - ["jump_false", 5, "if_else_75", 86, 7], + ["wary_false", 5, "if_else_73", 86, 7], ["get", 3, 6, 1, 87, 5], ["frame", 4, 3, 0, 87, 5], ["invoke", 4, 3, 87, 5], ["get", 3, 11, 1, 88, 5], ["is_proxy", 4, 3, 88, 5], - ["jump_false", 4, "record_path_77", 88, 5], + ["jump_false", 4, "record_path_75", 88, 5], ["null", 4, 88, 5], ["access", 6, "slurpwrite", 88, 5], ["array", 7, 0, 88, 5], @@ -1228,18 +1196,18 @@ ["setarg", 8, 1, 6, 88, 5], ["setarg", 8, 2, 7, 88, 5], ["invoke", 8, 4, 88, 5], - ["jump", "call_done_78", 88, 5], - "record_path_77", + ["jump", "call_done_76", 88, 5], + "record_path_75", ["load_field", 6, 3, "slurpwrite", 88, 5], ["frame", 7, 6, 2, 88, 5], ["setarg", 7, 0, 3, 88, 5], ["setarg", 7, 1, 5, 88, 5], ["setarg", 7, 2, 9, 88, 5], ["invoke", 7, 4, 88, 5], - "call_done_78", - ["jump", "if_end_76", 88, 5], - "if_else_75", - "if_end_76", + "call_done_76", + ["jump", "if_end_74", 88, 5], + "if_else_73", + "if_end_74", ["null", 3, 88, 5], ["return", 3, 88, 5] ], @@ -1369,10 +1337,10 @@ ["move", 1, 22, 99, 26], ["access", 17, 0, 101, 10], ["null", 18, 102, 13], - "while_start_79", + "while_start_77", ["length", 19, 1, 103, 20], ["lt", 20, 17, 19, 103, 20], - ["jump_false", 20, "while_end_80", 103, 20], + ["jump_false", 20, "while_end_78", 103, 20], ["load_index", 19, 1, 17, 104, 22], ["move", 18, 19, 104, 22], ["load_field", 20, 19, "name", 105, 21], @@ -1389,19 +1357,19 @@ ], ["access", 21, "/", 105, 45], ["is_text", 22, 19, 105, 45], - ["jump_false", 22, "add_cn_82", 105, 45], + ["jump_false", 22, "add_cn_80", 105, 45], "_nop_tc_1", "_nop_tc_2", ["concat", 23, 19, 21, 105, 45], - ["jump", "add_done_81", 105, 45], - "add_cn_82", + ["jump", "add_done_79", 105, 45], + "add_cn_80", ["is_num", 22, 19, 105, 45], - ["jump_false", 22, "add_err_83", 105, 45], + ["jump_false", 22, "add_err_81", 105, 45], "_nop_tc_3", "_nop_dj_1", "_nop_ucfg_1", "_nop_ucfg_2", - "add_err_83", + "add_err_81", [ "access", 19, @@ -1426,22 +1394,22 @@ ["setarg", 22, 2, 24, 105, 45], ["invoke", 22, 19, 105, 45], ["disrupt", 105, 45], - "add_done_81", + "add_done_79", ["load_field", 19, 18, "path", 105, 51], "_nop_tc_1", "_nop_tc_2", ["is_text", 21, 19, 105, 51], - ["jump_false", 21, "add_cn_85", 105, 51], + ["jump_false", 21, "add_cn_83", 105, 51], ["concat", 21, 23, 19, 105, 51], - ["jump", "add_done_84", 105, 51], - "add_cn_85", + ["jump", "add_done_82", 105, 51], + "add_cn_83", "_nop_tc_3", - ["jump", "add_err_86", 105, 51], + ["jump", "add_err_84", 105, 51], "_nop_ucfg_1", "_nop_ucfg_2", "_nop_ucfg_3", "_nop_ucfg_4", - "add_err_86", + "add_err_84", [ "access", 19, @@ -1466,35 +1434,16 @@ ["setarg", 23, 2, 24, 105, 51], ["invoke", 23, 19, 105, 51], ["disrupt", 105, 51], - "add_done_84", + "add_done_82", ["frame", 19, 9, 2, 105, 3], ["setarg", 19, 1, 20, 105, 3], ["stone_text", 21], ["setarg", 19, 2, 21, 105, 3], ["invoke", 19, 20, 105, 3], ["access", 19, 1, 106, 13], - "_nop_tc_4", - "_nop_tc_5", - "_nop_tc_6", - "_nop_tc_7", ["add", 17, 17, 19, 106, 13], - ["jump", "num_done_88", 106, 13], - "num_err_87", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "_nop_ucfg_13", - "_nop_ucfg_14", - "num_done_88", - ["jump", "while_start_79", 106, 13], - "while_end_80", + ["jump", "while_start_77", 106, 13], + "while_end_78", ["access", 1, "bootstrap: cache seeded\n", 108, 10], [ "access", @@ -1508,7 +1457,7 @@ 1 ], ["is_proxy", 17, 9, 108, 1], - ["jump_false", 17, "record_path_89", 108, 1], + ["jump_false", 17, "record_path_85", 108, 1], ["null", 17, 108, 1], ["access", 18, "print", 108, 1], ["array", 19, 0, 108, 1], @@ -1520,18 +1469,18 @@ ["setarg", 20, 1, 18, 108, 1], ["setarg", 20, 2, 19, 108, 1], ["invoke", 20, 17, 108, 1], - ["jump", "call_done_90", 108, 1], - "record_path_89", + ["jump", "call_done_86", 108, 1], + "record_path_85", ["load_field", 18, 9, "print", 108, 1], ["frame", 19, 18, 1, 108, 1], ["setarg", 19, 0, 9, 108, 1], ["stone_text", 1], ["setarg", 19, 1, 1, 108, 1], ["invoke", 19, 17, 108, 1], - "call_done_90", + "call_done_86", ["return", 17, 108, 1] ], - "_write_types": [null, "function", "function", "function", null, "function", null, null, null, null, null, null, null, null, "function", "int", "function", "function", null, "array", "function", "function", "function", "function", "function", "function", "function", null, null, "text", null, null, "text", null, null, "text", null, null, "text", null, null, "text", null, null, "text", null, null, "text", null, null, "text", null, null, "record", "text", "text", "record", "text", "text", "record", "text", "text", "record", "text", "text", "record", "text", "text", "record", "text", "text", "array", "int", "bool", null, null, null, "text", "text", "bool", null, null, "text", "text", "array", null, null, "null", null, null, "bool", "bool", null, "text", "text", "array", null, null, "null", null, null, "int", null, null, null, null, null, null, null, null, null, "text", null, null, null, "null", "text", "array", null, null, null], + "_write_types": [null, "function", "function", "function", null, "function", null, null, null, null, null, null, null, null, "function", "int", "function", "function", null, "array", "function", "function", "function", "function", "function", "function", "function", null, null, "text", null, null, "text", null, null, "text", null, null, "text", null, null, "text", null, null, "text", null, null, "text", null, null, "text", null, null, "record", "text", "text", "record", "text", "text", "record", "text", "text", "record", "text", "text", "record", "text", "text", "record", "text", "text", "array", "int", "bool", null, null, null, "text", "text", "bool", null, null, "text", "text", "array", null, null, "null", null, null, "bool", "bool", null, "text", "text", "array", null, null, "null", null, null, "int", "text", null, null, null, "null", "text", "array", null, null, null], "nr_args": 0 }, "name": ".cell/packages/core/internal/bootstrap.cm", diff --git a/boot/fold.cm.mcode b/boot/fold.cm.mcode index fbee66d2..e8cf00ef 100644 --- a/boot/fold.cm.mcode +++ b/boot/fold.cm.mcode @@ -167,33 +167,14 @@ ["setarg", 7, 1, 6, 68, 14], ["invoke", 7, 2, 68, 14], "_nop_bl_1", - ["jump_true", 2, "if_else_27", 68, 14], + ["wary_true", 2, "if_else_27", 68, 14], ["false", 2, 68, 44], ["return", 2, 68, 44], "_nop_ur_5", "if_else_27", "if_end_28", ["access", 2, 1, 69, 17], - "_nop_tc_1", - "_nop_tc_2", - "_nop_tc_3", - "_nop_tc_4", ["add", 4, 4, 2, 69, 17], - ["jump", "num_done_30", 69, 17], - "num_err_29", - "_nop_ucfg_1", - "_nop_ucfg_2", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "num_done_30", ["jump", "while_start_25", 69, 17], "while_end_26", ["true", 2, 71, 14], @@ -203,18 +184,18 @@ "if_end_24", ["access", 2, "record", 73, 14], ["eq", 6, 3, 2, 73, 14], - ["jump_false", 6, "if_else_31", 73, 14], + ["jump_false", 6, "if_else_29", 73, 14], ["access", 4, 0, 74, 11], - "while_start_33", + "while_start_31", ["load_field", 2, 1, "list", 75, 25], ["length", 6, 2, 75, 25], ["lt", 2, 4, 6, 75, 25], - ["jump_false", 2, "while_end_34", 75, 25], + ["jump_false", 2, "while_end_32", 75, 25], ["load_field", 2, 1, "list", 76, 13], ["load_index", 6, 2, 4, 76, 23], ["load_field", 2, 6, "computed", 76, 23], ["move", 6, 2, 76, 23], - ["jump_false", 2, "and_end_37", 76, 23], + ["wary_false", 2, "and_end_35", 76, 23], ["load_field", 2, 1, "list", 76, 47], ["load_index", 7, 2, 4, 76, 57], ["load_field", 2, 7, "left", 76, 57], @@ -224,13 +205,13 @@ ["invoke", 8, 2, 76, 39], ["not", 7, 2, 76, 39], ["move", 6, 7, 76, 39], - "and_end_37", - ["jump_false", 6, "if_else_35", 76, 39], + "and_end_35", + ["wary_false", 6, "if_else_33", 76, 39], ["false", 2, 76, 74], ["return", 2, 76, 74], "_nop_ur_7", - "if_else_35", - "if_end_36", + "if_else_33", + "if_end_34", ["load_field", 2, 1, "list", 77, 22], ["load_index", 6, 2, 4, 77, 32], ["load_field", 2, 6, "right", 77, 32], @@ -239,139 +220,120 @@ ["setarg", 7, 1, 2, 77, 14], ["invoke", 7, 2, 77, 14], "_nop_bl_2", - ["jump_true", 2, "if_else_38", 77, 14], + ["wary_true", 2, "if_else_36", 77, 14], ["false", 2, 77, 50], ["return", 2, 77, 50], "_nop_ur_8", - "if_else_38", - "if_end_39", + "if_else_36", + "if_end_37", ["access", 2, 1, 78, 17], - "_nop_tc_5", - "_nop_tc_6", - "_nop_tc_7", - "_nop_tc_8", ["add", 4, 4, 2, 78, 17], - ["jump", "num_done_41", 78, 17], - "num_err_40", - "_nop_ucfg_13", - "_nop_ucfg_14", - "_nop_ucfg_15", - "_nop_ucfg_16", - "_nop_ucfg_17", - "_nop_ucfg_18", - "_nop_ucfg_19", - "_nop_ucfg_20", - "_nop_ucfg_21", - "_nop_ucfg_22", - "_nop_ucfg_23", - "_nop_ucfg_24", - "num_done_41", - ["jump", "while_start_33", 78, 17], - "while_end_34", + ["jump", "while_start_31", 78, 17], + "while_end_32", ["true", 2, 80, 14], ["return", 2, 80, 14], "_nop_ur_9", - "if_else_31", - "if_end_32", + "if_else_29", + "if_end_30", ["access", 2, "then", 82, 14], ["eq", 6, 3, 2, 82, 14], - ["jump_false", 6, "if_else_42", 82, 14], + ["jump_false", 6, "if_else_38", 82, 14], ["load_field", 2, 1, "expression", 83, 22], ["get", 6, 13, 1, 83, 14], ["frame", 7, 6, 1, 83, 14], ["setarg", 7, 1, 2, 83, 14], ["invoke", 7, 2, 83, 14], ["move", 6, 2, 83, 14], - ["jump_false", 2, "and_end_45", 83, 14], + ["wary_false", 2, "and_end_41", 83, 14], ["load_field", 2, 1, "then", 83, 50], ["get", 7, 13, 1, 83, 42], ["frame", 8, 7, 1, 83, 42], ["setarg", 8, 1, 2, 83, 42], ["invoke", 8, 2, 83, 42], ["move", 6, 2, 83, 42], - "and_end_45", + "and_end_41", ["move", 2, 6, 83, 42], - ["jump_false", 6, "and_end_44", 83, 42], + ["wary_false", 6, "and_end_40", 83, 42], ["load_field", 6, 1, "else", 83, 72], ["get", 7, 13, 1, 83, 64], ["frame", 8, 7, 1, 83, 64], ["setarg", 8, 1, 6, 83, 64], ["invoke", 8, 6, 83, 64], ["move", 2, 6, 83, 64], - "and_end_44", + "and_end_40", ["return", 2, 83, 64], "_nop_ur_10", - "if_else_42", - "if_end_43", + "if_else_38", + "if_end_39", ["access", 2, "==", 85, 14], ["eq", 6, 3, 2, 85, 14], ["move", 2, 6, 85, 14], - ["jump_true", 6, "or_end_50", 85, 14], + ["jump_true", 6, "or_end_46", 85, 14], ["access", 6, "!=", 85, 27], ["eq", 7, 3, 6, 85, 27], ["move", 2, 7, 85, 27], - "or_end_50", + "or_end_46", ["move", 6, 2, 85, 27], - ["jump_true", 2, "or_end_49", 85, 27], + ["jump_true", 2, "or_end_45", 85, 27], ["access", 2, "&&", 85, 40], ["eq", 7, 3, 2, 85, 40], ["move", 6, 7, 85, 40], - "or_end_49", + "or_end_45", ["move", 2, 6, 85, 40], - ["jump_true", 6, "or_end_48", 85, 40], + ["jump_true", 6, "or_end_44", 85, 40], ["access", 6, "||", 85, 53], ["eq", 7, 3, 6, 85, 53], ["move", 2, 7, 85, 53], - "or_end_48", - ["jump_false", 2, "if_else_46", 85, 53], + "or_end_44", + ["jump_false", 2, "if_else_42", 85, 53], ["load_field", 2, 1, "left", 86, 22], ["get", 6, 13, 1, 86, 14], ["frame", 7, 6, 1, 86, 14], ["setarg", 7, 1, 2, 86, 14], ["invoke", 7, 2, 86, 14], ["move", 6, 2, 86, 14], - ["jump_false", 2, "and_end_51", 86, 14], + ["wary_false", 2, "and_end_47", 86, 14], ["load_field", 2, 1, "right", 86, 44], ["get", 7, 13, 1, 86, 36], ["frame", 8, 7, 1, 86, 36], ["setarg", 8, 1, 2, 86, 36], ["invoke", 8, 2, 86, 36], ["move", 6, 2, 86, 36], - "and_end_51", + "and_end_47", ["return", 6, 86, 36], "_nop_ur_11", - "if_else_46", - "if_end_47", + "if_else_42", + "if_end_43", ["access", 2, "(", 88, 14], ["eq", 6, 3, 2, 88, 14], - ["jump_false", 6, "if_else_52", 88, 14], + ["jump_false", 6, "if_else_48", 88, 14], ["load_field", 2, 1, "expression", 89, 16], ["move", 5, 2, 89, 16], ["null", 3, 90, 21], ["ne", 6, 2, 3, 90, 21], ["move", 2, 6, 90, 21], - ["jump_false", 6, "and_end_57", 90, 21], + ["jump_false", 6, "and_end_53", 90, 21], ["load_field", 3, 5, "intrinsic", 90, 29], ["true", 6, 90, 49], ["eq", 7, 3, 6, 90, 49], ["move", 2, 7, 90, 49], - "and_end_57", + "and_end_53", ["move", 3, 2, 90, 49], - ["jump_false", 2, "and_end_56", 90, 49], + ["jump_false", 2, "and_end_52", 90, 49], ["get", 2, 12, 1, 90, 57], ["load_field", 6, 5, "name", 90, 73], ["load_dynamic", 5, 2, 6, 90, 73], ["true", 2, 90, 89], ["eq", 6, 5, 2, 90, 89], ["move", 3, 6, 90, 89], - "and_end_56", - ["jump_false", 3, "if_else_54", 90, 89], + "and_end_52", + ["jump_false", 3, "if_else_50", 90, 89], ["access", 4, 0, 91, 13], - "while_start_58", + "while_start_54", ["load_field", 2, 1, "list", 92, 27], ["length", 3, 2, 92, 27], ["lt", 2, 4, 3, 92, 27], - ["jump_false", 2, "while_end_59", 92, 27], + ["jump_false", 2, "while_end_55", 92, 27], ["load_field", 2, 1, "list", 93, 24], ["load_index", 3, 2, 4, 93, 34], ["get", 2, 13, 1, 93, 16], @@ -379,49 +341,30 @@ ["setarg", 5, 1, 3, 93, 16], ["invoke", 5, 2, 93, 16], "_nop_bl_3", - ["jump_true", 2, "if_else_60", 93, 16], + ["wary_true", 2, "if_else_56", 93, 16], ["false", 2, 93, 46], ["return", 2, 93, 46], "_nop_ur_12", - "if_else_60", - "if_end_61", + "if_else_56", + "if_end_57", ["access", 2, 1, 94, 19], - "_nop_tc_9", - "_nop_tc_10", - "_nop_tc_11", - "_nop_tc_12", ["add", 4, 4, 2, 94, 19], - ["jump", "num_done_63", 94, 19], - "num_err_62", - "_nop_ucfg_25", - "_nop_ucfg_26", - "_nop_ucfg_27", - "_nop_ucfg_28", - "_nop_ucfg_29", - "_nop_ucfg_30", - "_nop_ucfg_31", - "_nop_ucfg_32", - "_nop_ucfg_33", - "_nop_ucfg_34", - "_nop_ucfg_35", - "_nop_ucfg_36", - "num_done_63", - ["jump", "while_start_58", 94, 19], - "while_end_59", + ["jump", "while_start_54", 94, 19], + "while_end_55", ["true", 2, 96, 16], ["return", 2, 96, 16], "_nop_ur_13", - "if_else_54", - "if_end_55", - ["jump", "if_end_53", 96, 16], - "if_else_52", - "if_end_53", + "if_else_50", + "if_end_51", + ["jump", "if_end_49", 96, 16], + "if_else_48", + "if_end_49", ["false", 2, 99, 12], ["return", 2, 99, 12], "_nop_ur_14", "_nop_ur_15" ], - "_write_types": [null, null, "int", null, null, "null", "bool", "bool", null, "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", null, null, null, null, "text", "bool", null, "int", "bool", null, null, null, null, null, null, "bool", "int", null, null, null, null, null, null, null, null, null, "bool", "text", "bool", null, "int", "bool", null, null, null, null, null, null, null, null, null, null, "bool", "bool", null, null, null, null, null, null, null, "bool", "int", null, null, null, null, null, null, null, null, null, "bool", "text", "bool", null, null, null, null, null, null, null, null, null, null, null, null, null, null, "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", null, null, null, null, null, null, null, null, null, "text", "bool", null, "null", "bool", "bool", null, "bool", "bool", "bool", null, null, null, "bool", "bool", null, "int", "bool", null, null, null, null, null, null, "bool", "int", null, null, null, null, null, null, null, null, null, "bool", "bool", null], + "_write_types": [null, null, "int", null, null, "null", "bool", "bool", null, "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", null, null, null, null, "text", "bool", null, "int", "bool", null, null, null, null, null, null, "bool", "int", "bool", "text", "bool", null, "int", "bool", null, null, null, null, null, null, null, null, null, null, "bool", "bool", null, null, null, null, null, null, null, "bool", "int", "bool", "text", "bool", null, null, null, null, null, null, null, null, null, null, null, null, null, null, "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", null, null, null, null, null, null, null, null, null, "text", "bool", null, "null", "bool", "bool", null, "bool", "bool", "bool", null, null, null, "bool", "bool", null, "int", "bool", null, null, null, null, null, null, "bool", "int", "bool", "bool", null], "name": "", "filename": ".cell/packages/core/fold.cm", "nr_args": 1 @@ -520,7 +463,7 @@ "nr_slots": 6, "nr_close_slots": 0, "instructions": [ - ["jump_false", 1, "if_else_64", 120, 9], + ["wary_false", 1, "if_else_58", 120, 9], ["record", 3, 1], ["access", 4, "true", 120, 42], ["store_field", 3, 4, "kind", 120, 42], @@ -531,8 +474,8 @@ ["tail_invoke", 5, 3, 120, 21], ["return", 3, 120, 21], "_nop_ur_1", - "if_else_64", - "if_end_65", + "if_else_58", + "if_end_59", ["record", 3, 1], ["access", 4, "false", 121, 33], ["store_field", 3, 4, "kind", 121, 33], @@ -581,45 +524,45 @@ "instructions": [ ["null", 2, 129, 17], ["eq", 3, 1, 2, 129, 17], - ["jump_false", 3, "if_else_66", 129, 17], + ["jump_false", 3, "if_else_60", 129, 17], ["null", 2, 129, 30], ["return", 2, 129, 30], "_nop_ur_1", - "if_else_66", - "if_end_67", + "if_else_60", + "if_end_61", ["load_field", 2, 1, "kind", 130, 13], ["move", 3, 2, 130, 13], ["null", 4, 131, 14], ["access", 5, "true", 132, 14], ["eq", 6, 2, 5, 132, 14], - ["jump_false", 6, "if_else_68", 132, 14], + ["jump_false", 6, "if_else_62", 132, 14], ["true", 2, 132, 29], ["return", 2, 132, 29], "_nop_ur_2", - "if_else_68", - "if_end_69", + "if_else_62", + "if_end_63", ["access", 2, "false", 133, 14], ["eq", 5, 3, 2, 133, 14], ["move", 2, 5, 133, 14], - ["jump_true", 5, "or_end_72", 133, 14], + ["jump_true", 5, "or_end_66", 133, 14], ["access", 5, "null", 133, 30], ["eq", 6, 3, 5, 133, 30], ["move", 2, 6, 133, 30], - "or_end_72", - ["jump_false", 2, "if_else_70", 133, 30], + "or_end_66", + ["jump_false", 2, "if_else_64", 133, 30], ["false", 2, 133, 45], ["return", 2, 133, 45], "_nop_ur_3", - "if_else_70", - "if_end_71", + "if_else_64", + "if_end_65", ["access", 2, "number", 134, 14], ["eq", 5, 3, 2, 134, 14], - ["jump_false", 5, "if_else_73", 134, 14], + ["jump_false", 5, "if_else_67", 134, 14], ["load_field", 2, 1, "number", 135, 12], ["move", 4, 2, 135, 12], ["null", 5, 136, 17], ["eq", 6, 2, 5, 136, 17], - ["jump_false", 6, "if_else_75", 136, 17], + ["jump_false", 6, "if_else_69", 136, 17], ["load_field", 2, 1, "value", 136, 35], [ "access", @@ -636,26 +579,26 @@ ["setarg", 6, 1, 2, 136, 28], ["invoke", 6, 2, 136, 28], ["move", 4, 2, 136, 28], - ["jump", "if_end_76", 136, 28], - "if_else_75", - "if_end_76", + ["jump", "if_end_70", 136, 28], + "if_else_69", + "if_end_70", ["access", 2, 0, 137, 20], ["ne", 5, 4, 2, 137, 20], ["return", 5, 137, 20], "_nop_ur_4", - "if_else_73", - "if_end_74", + "if_else_67", + "if_end_68", ["access", 2, "text", 139, 14], ["eq", 4, 3, 2, 139, 14], - ["jump_false", 4, "if_else_77", 139, 14], + ["jump_false", 4, "if_else_71", 139, 14], ["load_field", 2, 1, "value", 139, 36], ["length", 3, 2, 139, 36], ["access", 2, 0, 139, 50], ["gt", 4, 3, 2, 139, 50], ["return", 4, 139, 50], "_nop_ur_5", - "if_else_77", - "if_end_78", + "if_else_71", + "if_end_72", ["null", 2, 140, 12], ["return", 2, 140, 12], "_nop_ur_6", @@ -673,50 +616,31 @@ "nr_close_slots": 0, "instructions": [ ["access", 2, 0, 148, 13], - "while_start_79", + "while_start_73", ["get", 3, 2, 1, 149, 16], ["lt", 4, 2, 3, 149, 16], - ["jump_false", 4, "while_end_80", 149, 16], + ["jump_false", 4, "while_end_74", 149, 16], ["get", 3, 3, 1, 150, 11], ["load_index", 4, 3, 2, 150, 18], ["load_field", 3, 4, "function_nr", 150, 18], ["eq", 4, 3, 1, 150, 36], - ["jump_false", 4, "if_else_81", 150, 36], + ["jump_false", 4, "if_else_75", 150, 36], ["get", 3, 3, 1, 150, 50], ["load_index", 4, 3, 2, 150, 57], ["return", 4, 150, 57], "_nop_ur_1", - "if_else_81", - "if_end_82", + "if_else_75", + "if_end_76", ["access", 3, 1, 151, 15], - "_nop_tc_1", - "_nop_tc_2", - "_nop_tc_3", - "_nop_tc_4", ["add", 2, 2, 3, 151, 15], - ["jump", "num_done_84", 151, 15], - "num_err_83", - "_nop_ucfg_1", - "_nop_ucfg_2", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "num_done_84", - ["jump", "while_start_79", 151, 15], - "while_end_80", + ["jump", "while_start_73", 151, 15], + "while_end_74", ["null", 2, 153, 12], ["return", 2, 153, 12], "_nop_ur_2", "_nop_ur_3" ], - "_write_types": [null, null, "int", null, "bool", null, null, null, "bool", null, null, "int", null, null, null, null, null, null, null, null, null, "null", null], + "_write_types": [null, null, "int", null, "bool", null, null, null, "bool", null, null, "int", "null", null], "name": "", "filename": ".cell/packages/core/fold.cm", "nr_args": 1 @@ -734,12 +658,12 @@ ["move", 4, 3, 157, 14], ["null", 5, 158, 15], ["eq", 6, 3, 5, 158, 15], - ["jump_false", 6, "if_else_85", 158, 15], + ["jump_false", 6, "if_else_77", 158, 15], ["null", 3, 158, 28], ["return", 3, 158, 28], "_nop_ur_1", - "if_else_85", - "if_end_86", + "if_else_77", + "if_end_78", ["load_dynamic", 3, 4, 2, 159, 15], ["return", 3, 159, 15], "_nop_ur_2", @@ -775,13 +699,13 @@ ["load_dynamic", 7, 6, 4, 177, 20], ["null", 4, 177, 28], ["eq", 6, 7, 4, 177, 28], - ["jump_false", 6, "if_else_87", 177, 28], + ["jump_false", 6, "if_else_79", 177, 28], ["record", 4, 0], ["get", 6, 22, 1, 177, 34], ["store_dynamic", 6, 4, 5, 177, 45], - ["jump", "if_end_88", 177, 45], - "if_else_87", - "if_end_88", + ["jump", "if_end_80", 177, 45], + "if_else_79", + "if_end_80", ["get", 4, 22, 1, 178, 5], ["load_dynamic", 6, 4, 5, 178, 16], ["store_dynamic", 6, 3, 2, 178, 21], @@ -818,12 +742,12 @@ ["load_dynamic", 6, 5, 3, 183, 20], ["null", 3, 183, 28], ["eq", 5, 6, 3, 183, 28], - ["jump_false", 5, "if_else_89", 183, 28], + ["jump_false", 5, "if_else_81", 183, 28], ["null", 3, 183, 41], ["return", 3, 183, 41], "_nop_ur_1", - "if_else_89", - "if_end_90", + "if_else_81", + "if_end_82", ["get", 3, 22, 1, 184, 12], ["load_dynamic", 5, 3, 4, 184, 23], ["load_dynamic", 3, 5, 2, 184, 28], @@ -861,13 +785,13 @@ ["load_dynamic", 7, 6, 4, 189, 20], ["null", 4, 189, 28], ["eq", 6, 7, 4, 189, 28], - ["jump_false", 6, "if_else_91", 189, 28], + ["jump_false", 6, "if_else_83", 189, 28], ["record", 4, 0], ["get", 6, 23, 1, 189, 34], ["store_dynamic", 6, 4, 5, 189, 45], - ["jump", "if_end_92", 189, 45], - "if_else_91", - "if_end_92", + ["jump", "if_end_84", 189, 45], + "if_else_83", + "if_end_84", ["get", 4, 23, 1, 190, 5], ["load_dynamic", 6, 4, 5, 190, 16], ["store_dynamic", 6, 3, 2, 190, 21], @@ -887,16 +811,16 @@ "instructions": [ ["null", 2, 197, 17], ["eq", 3, 1, 2, 197, 17], - ["jump_false", 3, "if_else_93", 197, 17], + ["jump_false", 3, "if_else_85", 197, 17], ["null", 2, 197, 30], ["return", 2, 197, 30], "_nop_ur_1", - "if_else_93", - "if_end_94", + "if_else_85", + "if_end_86", ["load_field", 2, 1, "statements", 198, 9], ["null", 3, 198, 28], ["ne", 4, 2, 3, 198, 28], - ["jump_false", 4, "if_else_95", 198, 28], + ["jump_false", 4, "if_else_87", 198, 28], ["load_field", 2, 1, "statements", 198, 49], ["load_field", 3, 1, "function_nr", 198, 66], ["get", 4, 4, 1, 198, 34], @@ -904,13 +828,13 @@ ["setarg", 5, 1, 2, 198, 34], ["setarg", 5, 2, 3, 198, 34], ["invoke", 5, 2, 198, 34], - ["jump", "if_end_96", 198, 34], - "if_else_95", - "if_end_96", + ["jump", "if_end_88", 198, 34], + "if_else_87", + "if_end_88", ["load_field", 2, 1, "disruption", 199, 9], ["null", 3, 199, 28], ["ne", 4, 2, 3, 199, 28], - ["jump_false", 4, "if_else_97", 199, 28], + ["jump_false", 4, "if_else_89", 199, 28], ["load_field", 2, 1, "disruption", 199, 49], ["load_field", 3, 1, "function_nr", 199, 66], ["get", 4, 4, 1, 199, 34], @@ -918,9 +842,9 @@ ["setarg", 5, 1, 2, 199, 34], ["setarg", 5, 2, 3, 199, 34], ["invoke", 5, 2, 199, 34], - ["jump", "if_end_98", 199, 34], - "if_else_97", - "if_end_98", + ["jump", "if_end_90", 199, 34], + "if_else_89", + "if_end_90", ["null", 2, 199, 34], ["return", 2, 199, 34] ], @@ -943,32 +867,32 @@ ["null", 8, 208, 14], ["null", 9, 209, 16], ["null", 10, 210, 22], - "while_start_99", + "while_start_91", ["length", 11, 1, 211, 23], ["lt", 12, 3, 11, 211, 23], - ["jump_false", 12, "while_end_100", 211, 23], + ["jump_false", 12, "while_end_92", 211, 23], ["load_index", 11, 1, 3, 212, 20], ["move", 5, 11, 212, 20], ["load_field", 12, 11, "kind", 213, 14], ["move", 6, 12, 213, 14], ["access", 11, "def", 214, 19], ["eq", 13, 12, 11, 214, 19], - ["jump_false", 13, "if_else_101", 214, 19], + ["jump_false", 13, "if_else_93", 214, 19], ["load_field", 11, 5, "left", 215, 16], ["load_field", 12, 11, "name", 215, 16], ["move", 7, 12, 215, 16], ["null", 11, 216, 21], ["ne", 13, 12, 11, 216, 21], ["move", 11, 13, 216, 21], - ["jump_false", 13, "and_end_105", 216, 21], + ["jump_false", 13, "and_end_97", 216, 21], ["load_field", 12, 5, "right", 216, 40], ["get", 13, 11, 1, 216, 29], ["frame", 14, 13, 1, 216, 29], ["setarg", 14, 1, 12, 216, 29], ["invoke", 14, 12, 216, 29], ["move", 11, 12, 216, 29], - "and_end_105", - ["jump_false", 11, "if_else_103", 216, 29], + "and_end_97", + ["wary_false", 11, "if_else_95", 216, 29], ["get", 11, 21, 1, 217, 16], ["frame", 12, 11, 2, 217, 16], ["setarg", 12, 1, 2, 217, 16], @@ -978,12 +902,12 @@ ["null", 12, 218, 21], ["ne", 13, 11, 12, 218, 21], ["move", 11, 13, 218, 21], - ["jump_false", 13, "and_end_108", 218, 21], + ["jump_false", 13, "and_end_100", 218, 21], ["load_field", 12, 8, "closure", 218, 30], ["not", 13, 12, 218, 30], ["move", 11, 13, 218, 30], - "and_end_108", - ["jump_false", 11, "if_else_106", 218, 30], + "and_end_100", + ["jump_false", 11, "if_else_98", 218, 30], ["load_field", 11, 5, "right", 219, 41], ["get", 12, 24, 1, 219, 13], ["frame", 13, 12, 3, 219, 13], @@ -991,43 +915,43 @@ ["setarg", 13, 2, 7, 219, 13], ["setarg", 13, 3, 11, 219, 13], ["invoke", 13, 11, 219, 13], - ["jump", "if_end_107", 219, 13], - "if_else_106", - "if_end_107", - ["jump", "if_end_104", 219, 13], - "if_else_103", - "if_end_104", + ["jump", "if_end_99", 219, 13], + "if_else_98", + "if_end_99", + ["jump", "if_end_96", 219, 13], + "if_else_95", + "if_end_96", ["null", 11, 222, 21], ["ne", 12, 7, 11, 222, 21], ["move", 11, 12, 222, 21], - ["jump_false", 12, "and_end_112", 222, 21], + ["jump_false", 12, "and_end_104", 222, 21], ["load_field", 12, 5, "right", 222, 29], ["null", 13, 222, 43], ["ne", 14, 12, 13, 222, 43], ["move", 11, 14, 222, 43], - "and_end_112", + "and_end_104", ["move", 12, 11, 222, 43], - ["jump_false", 11, "and_end_111", 222, 43], + ["jump_false", 11, "and_end_103", 222, 43], ["load_field", 11, 5, "right", 222, 51], ["load_field", 13, 11, "kind", 222, 51], ["access", 11, "(", 222, 70], ["eq", 14, 13, 11, 222, 70], ["move", 12, 14, 222, 70], - "and_end_111", - ["jump_false", 12, "if_else_109", 222, 70], + "and_end_103", + ["jump_false", 12, "if_else_101", 222, 70], ["load_field", 11, 5, "right", 223, 24], ["load_field", 12, 11, "expression", 223, 24], ["move", 10, 12, 223, 24], ["null", 11, 224, 29], ["ne", 13, 12, 11, 224, 29], ["move", 11, 13, 224, 29], - ["jump_false", 13, "and_end_115", 224, 29], + ["jump_false", 13, "and_end_107", 224, 29], ["load_field", 12, 10, "intrinsic", 224, 37], ["true", 13, 224, 61], ["eq", 14, 12, 13, 224, 61], ["move", 11, 14, 224, 61], - "and_end_115", - ["jump_false", 11, "if_else_113", 224, 61], + "and_end_107", + ["jump_false", 11, "if_else_105", 224, 61], ["get", 11, 21, 1, 225, 18], ["frame", 12, 11, 2, 225, 18], ["setarg", 12, 1, 2, 225, 18], @@ -1037,52 +961,52 @@ ["null", 12, 226, 23], ["ne", 13, 11, 12, 226, 23], ["move", 11, 13, 226, 23], - ["jump_false", 13, "and_end_118", 226, 23], + ["jump_false", 13, "and_end_110", 226, 23], ["load_field", 12, 8, "type_tag", 226, 31], ["null", 13, 226, 46], ["eq", 14, 12, 13, 226, 46], ["move", 11, 14, 226, 46], - "and_end_118", - ["jump_false", 11, "if_else_116", 226, 46], + "and_end_110", + ["jump_false", 11, "if_else_108", 226, 46], ["get", 11, 5, 1, 227, 19], ["load_field", 12, 10, "name", 227, 32], ["load_dynamic", 13, 11, 12, 227, 32], ["null", 11, 227, 52], ["ne", 12, 13, 11, 227, 52], - ["jump_false", 12, "if_else_119", 227, 52], + ["jump_false", 12, "if_else_111", 227, 52], ["get", 11, 5, 1, 227, 72], ["load_field", 12, 10, "name", 227, 85], ["load_dynamic", 13, 11, 12, 227, 85], ["store_field", 8, 13, "type_tag", 227, 58], - ["jump", "if_end_120", 227, 58], - "if_else_119", - "if_end_120", - ["jump", "if_end_117", 227, 58], - "if_else_116", - "if_end_117", - ["jump", "if_end_114", 227, 58], - "if_else_113", - "if_end_114", - ["jump", "if_end_110", 227, 58], - "if_else_109", - "if_end_110", + ["jump", "if_end_112", 227, 58], + "if_else_111", + "if_end_112", + ["jump", "if_end_109", 227, 58], + "if_else_108", + "if_end_109", + ["jump", "if_end_106", 227, 58], + "if_else_105", + "if_end_106", ["jump", "if_end_102", 227, 58], "if_else_101", + "if_end_102", + ["jump", "if_end_94", 227, 58], + "if_else_93", ["access", 11, "function", 231, 26], ["eq", 12, 6, 11, 231, 26], - ["jump_false", 12, "if_else_121", 231, 26], + ["jump_false", 12, "if_else_113", 231, 26], ["load_field", 11, 5, "name", 232, 16], ["move", 7, 11, 232, 16], ["null", 12, 233, 21], ["ne", 13, 11, 12, 233, 21], ["move", 11, 13, 233, 21], - ["jump_false", 13, "and_end_125", 233, 21], + ["jump_false", 13, "and_end_117", 233, 21], ["load_field", 12, 5, "arity", 233, 29], ["null", 13, 233, 43], ["ne", 14, 12, 13, 233, 43], ["move", 11, 14, 233, 43], - "and_end_125", - ["jump_false", 11, "if_else_123", 233, 43], + "and_end_117", + ["jump_false", 11, "if_else_115", 233, 43], ["load_field", 11, 5, "arity", 234, 39], ["get", 12, 26, 1, 234, 11], ["frame", 13, 12, 3, 234, 11], @@ -1090,44 +1014,44 @@ ["setarg", 13, 2, 7, 234, 11], ["setarg", 13, 3, 11, 234, 11], ["invoke", 13, 11, 234, 11], - ["jump", "if_end_124", 234, 11], - "if_else_123", - "if_end_124", + ["jump", "if_end_116", 234, 11], + "if_else_115", + "if_end_116", ["get", 11, 27, 1, 236, 9], ["frame", 12, 11, 1, 236, 9], ["setarg", 12, 1, 5, 236, 9], ["invoke", 12, 11, 236, 9], - ["jump", "if_end_122", 236, 9], - "if_else_121", + ["jump", "if_end_114", 236, 9], + "if_else_113", ["access", 11, "var", 237, 26], ["eq", 12, 6, 11, 237, 26], - ["jump_false", 12, "if_else_126", 237, 26], + ["jump_false", 12, "if_else_118", 237, 26], ["load_field", 11, 5, "right", 238, 13], ["null", 12, 238, 27], ["ne", 13, 11, 12, 238, 27], ["move", 11, 13, 238, 27], - ["jump_false", 13, "and_end_131", 238, 27], + ["jump_false", 13, "and_end_123", 238, 27], ["load_field", 12, 5, "right", 238, 35], ["load_field", 13, 12, "kind", 238, 35], ["access", 12, "function", 238, 54], ["eq", 14, 13, 12, 238, 54], ["move", 11, 14, 238, 54], - "and_end_131", + "and_end_123", ["move", 12, 11, 238, 54], - ["jump_false", 11, "and_end_130", 238, 54], + ["jump_false", 11, "and_end_122", 238, 54], ["load_field", 11, 5, "right", 238, 68], ["load_field", 13, 11, "arity", 238, 68], ["null", 11, 238, 88], ["ne", 14, 13, 11, 238, 88], ["move", 12, 14, 238, 88], - "and_end_130", - ["jump_false", 12, "if_else_128", 238, 88], + "and_end_122", + ["jump_false", 12, "if_else_120", 238, 88], ["load_field", 11, 5, "left", 239, 18], ["load_field", 12, 11, "name", 239, 18], ["move", 7, 12, 239, 18], ["null", 11, 240, 23], ["ne", 13, 12, 11, 240, 23], - ["jump_false", 13, "if_else_132", 240, 23], + ["jump_false", 13, "if_else_124", 240, 23], ["get", 11, 21, 1, 241, 18], ["frame", 12, 11, 2, 241, 18], ["setarg", 12, 1, 2, 241, 18], @@ -1137,13 +1061,13 @@ ["null", 12, 242, 23], ["ne", 13, 11, 12, 242, 23], ["move", 11, 13, 242, 23], - ["jump_false", 13, "and_end_136", 242, 23], + ["jump_false", 13, "and_end_128", 242, 23], ["load_field", 12, 8, "make", 242, 31], ["access", 13, "var", 242, 42], ["eq", 14, 12, 13, 242, 42], ["move", 11, 14, 242, 42], - "and_end_136", - ["jump_false", 11, "if_else_134", 242, 42], + "and_end_128", + ["jump_false", 11, "if_else_126", 242, 42], ["load_field", 11, 5, "right", 243, 43], ["load_field", 12, 11, "arity", 243, 43], ["get", 11, 26, 1, 243, 15], @@ -1152,26 +1076,26 @@ ["setarg", 13, 2, 7, 243, 15], ["setarg", 13, 3, 12, 243, 15], ["invoke", 13, 11, 243, 15], - ["jump", "if_end_135", 243, 15], - "if_else_134", - "if_end_135", - ["jump", "if_end_133", 243, 15], - "if_else_132", - "if_end_133", - ["jump", "if_end_129", 243, 15], - "if_else_128", - "if_end_129", ["jump", "if_end_127", 243, 15], "if_else_126", + "if_end_127", + ["jump", "if_end_125", 243, 15], + "if_else_124", + "if_end_125", + ["jump", "if_end_121", 243, 15], + "if_else_120", + "if_end_121", + ["jump", "if_end_119", 243, 15], + "if_else_118", ["access", 11, "var_list", 247, 26], ["eq", 12, 6, 11, 247, 26], - ["jump_false", 12, "if_else_137", 247, 26], + ["jump_false", 12, "if_else_129", 247, 26], ["access", 4, 0, 248, 13], - "while_start_139", + "while_start_131", ["load_field", 11, 5, "list", 249, 27], ["length", 12, 11, 249, 27], ["lt", 11, 4, 12, 249, 27], - ["jump_false", 11, "while_end_140", 249, 27], + ["jump_false", 11, "while_end_132", 249, 27], ["load_field", 11, 5, "list", 250, 18], ["load_index", 12, 11, 4, 250, 28], ["move", 9, 12, 250, 28], @@ -1179,35 +1103,35 @@ ["access", 12, "var", 251, 28], ["eq", 13, 11, 12, 251, 28], ["move", 11, 13, 251, 28], - ["jump_false", 13, "and_end_145", 251, 28], + ["jump_false", 13, "and_end_137", 251, 28], ["load_field", 12, 9, "right", 251, 37], ["null", 13, 251, 51], ["ne", 14, 12, 13, 251, 51], ["move", 11, 14, 251, 51], - "and_end_145", + "and_end_137", ["move", 12, 11, 251, 51], - ["jump_false", 11, "and_end_144", 251, 51], + ["jump_false", 11, "and_end_136", 251, 51], ["load_field", 11, 9, "right", 251, 59], ["load_field", 13, 11, "kind", 251, 59], ["access", 11, "function", 251, 78], ["eq", 14, 13, 11, 251, 78], ["move", 12, 14, 251, 78], - "and_end_144", + "and_end_136", ["move", 11, 12, 251, 78], - ["jump_false", 12, "and_end_143", 251, 78], + ["jump_false", 12, "and_end_135", 251, 78], ["load_field", 12, 9, "right", 251, 92], ["load_field", 13, 12, "arity", 251, 92], ["null", 12, 251, 112], ["ne", 14, 13, 12, 251, 112], ["move", 11, 14, 251, 112], - "and_end_143", - ["jump_false", 11, "if_else_141", 251, 112], + "and_end_135", + ["jump_false", 11, "if_else_133", 251, 112], ["load_field", 11, 9, "left", 252, 20], ["load_field", 12, 11, "name", 252, 20], ["move", 7, 12, 252, 20], ["null", 11, 253, 25], ["ne", 13, 12, 11, 253, 25], - ["jump_false", 13, "if_else_146", 253, 25], + ["jump_false", 13, "if_else_138", 253, 25], ["get", 11, 21, 1, 254, 20], ["frame", 12, 11, 2, 254, 20], ["setarg", 12, 1, 2, 254, 20], @@ -1217,13 +1141,13 @@ ["null", 12, 255, 25], ["ne", 13, 11, 12, 255, 25], ["move", 11, 13, 255, 25], - ["jump_false", 13, "and_end_150", 255, 25], + ["jump_false", 13, "and_end_142", 255, 25], ["load_field", 12, 8, "make", 255, 33], ["access", 13, "var", 255, 44], ["eq", 14, 12, 13, 255, 44], ["move", 11, 14, 255, 44], - "and_end_150", - ["jump_false", 11, "if_else_148", 255, 44], + "and_end_142", + ["jump_false", 11, "if_else_140", 255, 44], ["load_field", 11, 9, "right", 256, 45], ["load_field", 12, 11, "arity", 256, 45], ["get", 11, 26, 1, 256, 17], @@ -1232,71 +1156,33 @@ ["setarg", 13, 2, 7, 256, 17], ["setarg", 13, 3, 12, 256, 17], ["invoke", 13, 11, 256, 17], - ["jump", "if_end_149", 256, 17], - "if_else_148", - "if_end_149", - ["jump", "if_end_147", 256, 17], - "if_else_146", - "if_end_147", - ["jump", "if_end_142", 256, 17], - "if_else_141", - "if_end_142", + ["jump", "if_end_141", 256, 17], + "if_else_140", + "if_end_141", + ["jump", "if_end_139", 256, 17], + "if_else_138", + "if_end_139", + ["jump", "if_end_134", 256, 17], + "if_else_133", + "if_end_134", ["access", 11, 1, 260, 19], - "_nop_tc_1", - "_nop_tc_2", - "_nop_tc_3", - "_nop_tc_4", ["add", 4, 4, 11, 260, 19], - ["jump", "num_done_152", 260, 19], - "num_err_151", - "_nop_ucfg_1", - "_nop_ucfg_2", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "num_done_152", - ["jump", "while_start_139", 260, 19], - "while_end_140", - ["jump", "if_end_138", 260, 19], - "if_else_137", - "if_end_138", - "if_end_127", - "if_end_122", - "if_end_102", + ["jump", "while_start_131", 260, 19], + "while_end_132", + ["jump", "if_end_130", 260, 19], + "if_else_129", + "if_end_130", + "if_end_119", + "if_end_114", + "if_end_94", ["access", 11, 1, 263, 15], - "_nop_tc_5", - "_nop_tc_6", - "_nop_tc_7", - "_nop_tc_8", ["add", 3, 3, 11, 263, 15], - ["jump", "num_done_154", 263, 15], - "num_err_153", - "_nop_ucfg_13", - "_nop_ucfg_14", - "_nop_ucfg_15", - "_nop_ucfg_16", - "_nop_ucfg_17", - "_nop_ucfg_18", - "_nop_ucfg_19", - "_nop_ucfg_20", - "_nop_ucfg_21", - "_nop_ucfg_22", - "_nop_ucfg_23", - "_nop_ucfg_24", - "num_done_154", - ["jump", "while_start_99", 263, 15], - "while_end_100", + ["jump", "while_start_91", 263, 15], + "while_end_92", ["null", 3, 263, 15], ["return", 3, 263, 15] ], - "_write_types": [null, null, null, "int", null, "int", null, null, null, null, null, "int", "bool", null, null, "text", "bool", null, null, "null", "bool", null, null, null, null, null, null, null, null, "null", "bool", "bool", null, "bool", null, null, null, null, "null", "bool", "bool", null, "null", "bool", "bool", null, null, "text", "bool", null, null, "null", "bool", "bool", null, "bool", "bool", null, null, null, "null", "bool", "bool", null, "null", "bool", null, null, null, "null", "bool", null, null, null, "text", "bool", null, "null", "bool", "bool", null, "null", "bool", null, null, null, null, null, null, null, "text", "bool", null, "null", "bool", "bool", null, null, "text", "bool", "bool", null, null, "null", "bool", null, null, "null", "bool", null, null, null, "null", "bool", "bool", null, "text", "bool", null, null, null, null, null, "text", "bool", null, "int", "bool", null, null, null, "text", "bool", "bool", null, "null", "bool", "bool", null, null, "text", "bool", "bool", null, null, "null", "bool", null, null, "null", "bool", null, null, null, "null", "bool", "bool", null, "text", "bool", null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "null"], + "_write_types": [null, null, null, "int", null, "int", null, null, null, null, null, "int", "bool", null, null, "text", "bool", null, null, "null", "bool", null, null, null, null, null, null, null, null, "null", "bool", "bool", null, "bool", null, null, null, null, "null", "bool", "bool", null, "null", "bool", "bool", null, null, "text", "bool", null, null, "null", "bool", "bool", null, "bool", "bool", null, null, null, "null", "bool", "bool", null, "null", "bool", null, null, null, "null", "bool", null, null, null, "text", "bool", null, "null", "bool", "bool", null, "null", "bool", null, null, null, null, null, null, null, "text", "bool", null, "null", "bool", "bool", null, null, "text", "bool", "bool", null, null, "null", "bool", null, null, "null", "bool", null, null, null, "null", "bool", "bool", null, "text", "bool", null, null, null, null, null, "text", "bool", null, "int", "bool", null, null, null, "text", "bool", "bool", null, "null", "bool", "bool", null, null, "text", "bool", "bool", null, null, "null", "bool", null, null, "null", "bool", null, null, null, "null", "bool", "bool", null, "text", "bool", null, null, null, null, null, "int", "int", "null"], "name": "", "filename": ".cell/packages/core/fold.cm", "nr_args": 2 @@ -1309,100 +1195,100 @@ "instructions": [ ["null", 2, 269, 17], ["eq", 3, 1, 2, 269, 17], - ["jump_false", 3, "if_else_155", 269, 17], + ["jump_false", 3, "if_else_143", 269, 17], ["null", 2, 269, 30], ["return", 2, 269, 30], "_nop_ur_1", - "if_else_155", - "if_end_156", + "if_else_143", + "if_end_144", ["load_field", 2, 1, "kind", 270, 13], ["move", 3, 2, 270, 13], ["access", 4, 0, 271, 13], ["access", 5, "function", 272, 14], ["eq", 6, 2, 5, 272, 14], - ["jump_false", 6, "if_else_157", 272, 14], + ["jump_false", 6, "if_else_145", 272, 14], ["get", 2, 27, 1, 273, 7], ["frame", 5, 2, 1, 273, 7], ["setarg", 5, 1, 1, 273, 7], ["invoke", 5, 2, 273, 7], - ["jump", "if_end_158", 273, 7], - "if_else_157", - "if_end_158", + ["jump", "if_end_146", 273, 7], + "if_else_145", + "if_end_146", ["load_field", 2, 1, "left", 275, 9], ["null", 5, 275, 22], ["ne", 6, 2, 5, 275, 22], - ["jump_false", 6, "if_else_159", 275, 22], + ["jump_false", 6, "if_else_147", 275, 22], ["load_field", 2, 1, "left", 275, 46], ["get", 5, 28, 1, 275, 28], ["frame", 6, 5, 1, 275, 28], ["setarg", 6, 1, 2, 275, 28], ["invoke", 6, 2, 275, 28], - ["jump", "if_end_160", 275, 28], - "if_else_159", - "if_end_160", + ["jump", "if_end_148", 275, 28], + "if_else_147", + "if_end_148", ["load_field", 2, 1, "right", 276, 9], ["null", 5, 276, 23], ["ne", 6, 2, 5, 276, 23], - ["jump_false", 6, "if_else_161", 276, 23], + ["jump_false", 6, "if_else_149", 276, 23], ["load_field", 2, 1, "right", 276, 47], ["get", 5, 28, 1, 276, 29], ["frame", 6, 5, 1, 276, 29], ["setarg", 6, 1, 2, 276, 29], ["invoke", 6, 2, 276, 29], - ["jump", "if_end_162", 276, 29], - "if_else_161", - "if_end_162", + ["jump", "if_end_150", 276, 29], + "if_else_149", + "if_end_150", ["load_field", 2, 1, "expression", 277, 9], ["null", 5, 277, 28], ["ne", 6, 2, 5, 277, 28], - ["jump_false", 6, "if_else_163", 277, 28], + ["jump_false", 6, "if_else_151", 277, 28], ["load_field", 2, 1, "expression", 277, 52], ["get", 5, 28, 1, 277, 34], ["frame", 6, 5, 1, 277, 34], ["setarg", 6, 1, 2, 277, 34], ["invoke", 6, 2, 277, 34], - ["jump", "if_end_164", 277, 34], - "if_else_163", - "if_end_164", + ["jump", "if_end_152", 277, 34], + "if_else_151", + "if_end_152", ["load_field", 2, 1, "then", 278, 9], ["null", 5, 278, 22], ["ne", 6, 2, 5, 278, 22], - ["jump_false", 6, "if_else_165", 278, 22], + ["jump_false", 6, "if_else_153", 278, 22], ["load_field", 2, 1, "then", 278, 46], ["get", 5, 28, 1, 278, 28], ["frame", 6, 5, 1, 278, 28], ["setarg", 6, 1, 2, 278, 28], ["invoke", 6, 2, 278, 28], - ["jump", "if_end_166", 278, 28], - "if_else_165", - "if_end_166", + ["jump", "if_end_154", 278, 28], + "if_else_153", + "if_end_154", ["load_field", 2, 1, "else", 279, 9], ["null", 5, 279, 22], ["ne", 6, 2, 5, 279, 22], - ["jump_false", 6, "if_else_167", 279, 22], + ["jump_false", 6, "if_else_155", 279, 22], ["load_field", 2, 1, "else", 279, 46], ["get", 5, 28, 1, 279, 28], ["frame", 6, 5, 1, 279, 28], ["setarg", 6, 1, 2, 279, 28], ["invoke", 6, 2, 279, 28], - ["jump", "if_end_168", 279, 28], - "if_else_167", - "if_end_168", + ["jump", "if_end_156", 279, 28], + "if_else_155", + "if_end_156", ["access", 2, "(", 280, 14], ["eq", 5, 3, 2, 280, 14], ["move", 2, 5, 280, 14], - ["jump_true", 5, "or_end_171", 280, 14], + ["jump_true", 5, "or_end_159", 280, 14], ["access", 5, "array", 280, 26], ["eq", 6, 3, 5, 280, 26], ["move", 2, 6, 280, 26], - "or_end_171", - ["jump_false", 2, "if_else_169", 280, 26], + "or_end_159", + ["jump_false", 2, "if_else_157", 280, 26], ["access", 4, 0, 281, 11], - "while_start_172", + "while_start_160", ["load_field", 2, 1, "list", 282, 25], ["length", 5, 2, 282, 25], ["lt", 2, 4, 5, 282, 25], - ["jump_false", 2, "while_end_173", 282, 25], + ["jump_false", 2, "while_end_161", 282, 25], ["load_field", 2, 1, "list", 283, 27], ["load_index", 5, 2, 4, 283, 37], ["get", 2, 28, 1, 283, 9], @@ -1410,44 +1296,25 @@ ["setarg", 6, 1, 5, 283, 9], ["invoke", 6, 2, 283, 9], ["access", 2, 1, 284, 17], - "_nop_tc_1", - "_nop_tc_2", - "_nop_tc_3", - "_nop_tc_4", ["add", 4, 4, 2, 284, 17], - ["jump", "num_done_175", 284, 17], - "num_err_174", - "_nop_ucfg_1", - "_nop_ucfg_2", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "num_done_175", - ["jump", "while_start_172", 284, 17], - "while_end_173", - ["jump", "if_end_170", 284, 17], - "if_else_169", - "if_end_170", + ["jump", "while_start_160", 284, 17], + "while_end_161", + ["jump", "if_end_158", 284, 17], + "if_else_157", + "if_end_158", ["access", 2, "record", 287, 14], ["eq", 5, 3, 2, 287, 14], - ["jump_false", 5, "if_else_176", 287, 14], + ["jump_false", 5, "if_else_162", 287, 14], ["access", 4, 0, 288, 11], - "while_start_178", + "while_start_164", ["load_field", 2, 1, "list", 289, 25], ["length", 3, 2, 289, 25], ["lt", 2, 4, 3, 289, 25], - ["jump_false", 2, "while_end_179", 289, 25], + ["jump_false", 2, "while_end_165", 289, 25], ["load_field", 2, 1, "list", 290, 13], ["load_index", 3, 2, 4, 290, 23], ["load_field", 2, 3, "computed", 290, 23], - ["jump_false", 2, "if_else_180", 290, 23], + ["wary_false", 2, "if_else_166", 290, 23], ["load_field", 2, 1, "list", 290, 54], ["load_index", 3, 2, 4, 290, 64], ["load_field", 2, 3, "left", 290, 64], @@ -1455,9 +1322,9 @@ ["frame", 5, 3, 1, 290, 36], ["setarg", 5, 1, 2, 290, 36], ["invoke", 5, 2, 290, 36], - ["jump", "if_end_181", 290, 36], - "if_else_180", - "if_end_181", + ["jump", "if_end_167", 290, 36], + "if_else_166", + "if_end_167", ["load_field", 2, 1, "list", 291, 27], ["load_index", 3, 2, 4, 291, 37], ["load_field", 2, 3, "right", 291, 37], @@ -1466,35 +1333,16 @@ ["setarg", 5, 1, 2, 291, 9], ["invoke", 5, 2, 291, 9], ["access", 2, 1, 292, 17], - "_nop_tc_5", - "_nop_tc_6", - "_nop_tc_7", - "_nop_tc_8", ["add", 4, 4, 2, 292, 17], - ["jump", "num_done_183", 292, 17], - "num_err_182", - "_nop_ucfg_13", - "_nop_ucfg_14", - "_nop_ucfg_15", - "_nop_ucfg_16", - "_nop_ucfg_17", - "_nop_ucfg_18", - "_nop_ucfg_19", - "_nop_ucfg_20", - "_nop_ucfg_21", - "_nop_ucfg_22", - "_nop_ucfg_23", - "_nop_ucfg_24", - "num_done_183", - ["jump", "while_start_178", 292, 17], - "while_end_179", - ["jump", "if_end_177", 292, 17], - "if_else_176", - "if_end_177", + ["jump", "while_start_164", 292, 17], + "while_end_165", + ["jump", "if_end_163", 292, 17], + "if_else_162", + "if_end_163", ["null", 2, 292, 17], ["return", 2, 292, 17] ], - "_write_types": [null, null, "int", null, "null", "bool", "null", null, "text", "bool", null, null, null, null, "null", "bool", null, null, null, null, null, "null", "bool", null, null, null, null, null, "null", "bool", null, null, null, null, null, "null", "bool", null, null, null, null, null, "null", "bool", null, null, null, null, "text", "bool", "bool", "text", "bool", null, "int", "bool", null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "text", "bool", null, "int", "bool", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "null"], + "_write_types": [null, null, "int", null, "null", "bool", "null", null, "text", "bool", null, null, null, null, "null", "bool", null, null, null, null, null, "null", "bool", null, null, null, null, null, "null", "bool", null, null, null, null, null, "null", "bool", null, null, null, null, null, "null", "bool", null, null, null, null, "text", "bool", "bool", "text", "bool", null, "int", "bool", null, null, null, null, null, "int", "text", "bool", null, "int", "bool", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "int", "null"], "name": "", "filename": ".cell/packages/core/fold.cm", "nr_args": 1 @@ -1509,10 +1357,10 @@ ["access", 4, 0, 300, 13], ["null", 5, 301, 16], ["null", 6, 302, 16], - "while_start_184", + "while_start_168", ["length", 7, 1, 303, 23], ["lt", 8, 3, 7, 303, 23], - ["jump_false", 8, "while_end_185", 303, 23], + ["jump_false", 8, "while_end_169", 303, 23], ["load_index", 7, 1, 3, 304, 20], ["move", 5, 7, 304, 20], ["load_field", 8, 7, "kind", 305, 14], @@ -1520,28 +1368,28 @@ ["access", 7, "var", 306, 19], ["eq", 9, 8, 7, 306, 19], ["move", 7, 9, 306, 19], - ["jump_true", 9, "or_end_188", 306, 19], + ["jump_true", 9, "or_end_172", 306, 19], ["access", 8, "def", 306, 36], ["eq", 9, 6, 8, 306, 36], ["move", 7, 9, 306, 36], - "or_end_188", - ["jump_false", 7, "if_else_186", 306, 36], + "or_end_172", + ["jump_false", 7, "if_else_170", 306, 36], ["load_field", 7, 5, "right", 307, 27], ["get", 8, 28, 1, 307, 9], ["frame", 9, 8, 1, 307, 9], ["setarg", 9, 1, 7, 307, 9], ["invoke", 9, 7, 307, 9], - ["jump", "if_end_187", 307, 9], - "if_else_186", + ["jump", "if_end_171", 307, 9], + "if_else_170", ["access", 7, "var_list", 308, 26], ["eq", 8, 6, 7, 308, 26], - ["jump_false", 8, "if_else_189", 308, 26], + ["jump_false", 8, "if_else_173", 308, 26], ["access", 4, 0, 309, 13], - "while_start_191", + "while_start_175", ["load_field", 7, 5, "list", 310, 27], ["length", 8, 7, 310, 27], ["lt", 7, 4, 8, 310, 27], - ["jump_false", 7, "while_end_192", 310, 27], + ["jump_false", 7, "while_end_176", 310, 27], ["load_field", 7, 5, "list", 311, 29], ["load_index", 8, 7, 4, 311, 39], ["load_field", 7, 8, "right", 311, 39], @@ -1550,43 +1398,24 @@ ["setarg", 9, 1, 7, 311, 11], ["invoke", 9, 7, 311, 11], ["access", 7, 1, 312, 19], - "_nop_tc_1", - "_nop_tc_2", - "_nop_tc_3", - "_nop_tc_4", ["add", 4, 4, 7, 312, 19], - ["jump", "num_done_194", 312, 19], - "num_err_193", - "_nop_ucfg_1", - "_nop_ucfg_2", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "num_done_194", - ["jump", "while_start_191", 312, 19], - "while_end_192", - ["jump", "if_end_190", 312, 19], - "if_else_189", + ["jump", "while_start_175", 312, 19], + "while_end_176", + ["jump", "if_end_174", 312, 19], + "if_else_173", ["access", 7, "call", 314, 26], ["eq", 8, 6, 7, 314, 26], - ["jump_false", 8, "if_else_195", 314, 26], + ["jump_false", 8, "if_else_177", 314, 26], ["load_field", 7, 5, "expression", 315, 27], ["get", 8, 28, 1, 315, 9], ["frame", 9, 8, 1, 315, 9], ["setarg", 9, 1, 7, 315, 9], ["invoke", 9, 7, 315, 9], - ["jump", "if_end_196", 315, 9], - "if_else_195", + ["jump", "if_end_178", 315, 9], + "if_else_177", ["access", 7, "if", 316, 26], ["eq", 8, 6, 7, 316, 26], - ["jump_false", 8, "if_else_197", 316, 26], + ["jump_false", 8, "if_else_179", 316, 26], ["load_field", 7, 5, "expression", 317, 27], ["get", 8, 28, 1, 317, 9], ["frame", 9, 8, 1, 317, 9], @@ -1607,27 +1436,27 @@ ["load_field", 7, 5, "else", 320, 13], ["null", 8, 320, 26], ["ne", 9, 7, 8, 320, 26], - ["jump_false", 9, "if_else_199", 320, 26], + ["jump_false", 9, "if_else_181", 320, 26], ["load_field", 7, 5, "else", 320, 52], ["get", 8, 29, 1, 320, 32], ["frame", 9, 8, 2, 320, 32], ["setarg", 9, 1, 7, 320, 32], ["setarg", 9, 2, 2, 320, 32], ["invoke", 9, 7, 320, 32], - ["jump", "if_end_200", 320, 32], - "if_else_199", - "if_end_200", - ["jump", "if_end_198", 320, 32], - "if_else_197", + ["jump", "if_end_182", 320, 32], + "if_else_181", + "if_end_182", + ["jump", "if_end_180", 320, 32], + "if_else_179", ["access", 7, "while", 321, 26], ["eq", 8, 6, 7, 321, 26], ["move", 7, 8, 321, 26], - ["jump_true", 8, "or_end_203", 321, 26], + ["jump_true", 8, "or_end_185", 321, 26], ["access", 8, "do", 321, 45], ["eq", 9, 6, 8, 321, 45], ["move", 7, 9, 321, 45], - "or_end_203", - ["jump_false", 7, "if_else_201", 321, 45], + "or_end_185", + ["jump_false", 7, "if_else_183", 321, 45], ["load_field", 7, 5, "expression", 322, 27], ["get", 8, 28, 1, 322, 9], ["frame", 9, 8, 1, 322, 9], @@ -1639,45 +1468,45 @@ ["setarg", 9, 1, 7, 323, 9], ["setarg", 9, 2, 2, 323, 9], ["invoke", 9, 7, 323, 9], - ["jump", "if_end_202", 323, 9], - "if_else_201", + ["jump", "if_end_184", 323, 9], + "if_else_183", ["access", 7, "for", 324, 26], ["eq", 8, 6, 7, 324, 26], - ["jump_false", 8, "if_else_204", 324, 26], + ["jump_false", 8, "if_else_186", 324, 26], ["load_field", 7, 5, "init", 325, 13], ["null", 8, 325, 26], ["ne", 9, 7, 8, 325, 26], - ["jump_false", 9, "if_else_206", 325, 26], + ["jump_false", 9, "if_else_188", 325, 26], ["load_field", 7, 5, "init", 326, 15], ["load_field", 8, 7, "kind", 326, 15], ["access", 7, "var", 326, 33], ["eq", 9, 8, 7, 326, 33], ["move", 7, 9, 326, 33], - ["jump_true", 9, "or_end_210", 326, 33], + ["jump_true", 9, "or_end_192", 326, 33], ["load_field", 8, 5, "init", 326, 42], ["load_field", 9, 8, "kind", 326, 42], ["access", 8, "def", 326, 60], ["eq", 10, 9, 8, 326, 60], ["move", 7, 10, 326, 60], - "or_end_210", - ["jump_false", 7, "if_else_208", 326, 60], + "or_end_192", + ["jump_false", 7, "if_else_190", 326, 60], ["load_field", 7, 5, "init", 327, 31], ["load_field", 8, 7, "right", 327, 31], ["get", 7, 28, 1, 327, 13], ["frame", 9, 7, 1, 327, 13], ["setarg", 9, 1, 8, 327, 13], ["invoke", 9, 7, 327, 13], - ["jump", "if_end_209", 327, 13], - "if_else_208", + ["jump", "if_end_191", 327, 13], + "if_else_190", ["load_field", 7, 5, "init", 329, 31], ["get", 8, 28, 1, 329, 13], ["frame", 9, 8, 1, 329, 13], ["setarg", 9, 1, 7, 329, 13], ["invoke", 9, 7, 329, 13], - "if_end_209", - ["jump", "if_end_207", 329, 13], - "if_else_206", - "if_end_207", + "if_end_191", + ["jump", "if_end_189", 329, 13], + "if_else_188", + "if_end_189", ["load_field", 7, 5, "test", 332, 27], ["get", 8, 28, 1, 332, 9], ["frame", 9, 8, 1, 332, 9], @@ -1694,42 +1523,42 @@ ["setarg", 9, 1, 7, 334, 9], ["setarg", 9, 2, 2, 334, 9], ["invoke", 9, 7, 334, 9], - ["jump", "if_end_205", 334, 9], - "if_else_204", + ["jump", "if_end_187", 334, 9], + "if_else_186", ["access", 7, "return", 335, 26], ["eq", 8, 6, 7, 335, 26], ["move", 7, 8, 335, 26], - ["jump_true", 8, "or_end_213", 335, 26], + ["jump_true", 8, "or_end_195", 335, 26], ["access", 8, "go", 335, 46], ["eq", 9, 6, 8, 335, 46], ["move", 7, 9, 335, 46], - "or_end_213", - ["jump_false", 7, "if_else_211", 335, 46], + "or_end_195", + ["jump_false", 7, "if_else_193", 335, 46], ["load_field", 7, 5, "expression", 336, 27], ["get", 8, 28, 1, 336, 9], ["frame", 9, 8, 1, 336, 9], ["setarg", 9, 1, 7, 336, 9], ["invoke", 9, 7, 336, 9], - ["jump", "if_end_212", 336, 9], - "if_else_211", + ["jump", "if_end_194", 336, 9], + "if_else_193", ["access", 7, "block", 337, 26], ["eq", 8, 6, 7, 337, 26], - ["jump_false", 8, "if_else_214", 337, 26], + ["jump_false", 8, "if_else_196", 337, 26], ["load_field", 7, 5, "statements", 338, 29], ["get", 8, 29, 1, 338, 9], ["frame", 9, 8, 2, 338, 9], ["setarg", 9, 1, 7, 338, 9], ["setarg", 9, 2, 2, 338, 9], ["invoke", 9, 7, 338, 9], - ["jump", "if_end_215", 338, 9], - "if_else_214", + ["jump", "if_end_197", 338, 9], + "if_else_196", ["access", 7, "label", 339, 26], ["eq", 8, 6, 7, 339, 26], - ["jump_false", 8, "if_else_216", 339, 26], + ["jump_false", 8, "if_else_198", 339, 26], ["load_field", 7, 5, "statement", 340, 13], ["null", 8, 340, 31], ["ne", 9, 7, 8, 340, 31], - ["jump_false", 9, "if_else_218", 340, 31], + ["jump_false", 9, "if_else_200", 340, 31], ["load_field", 7, 5, "statement", 341, 32], ["array", 8, 1, 341, 32], ["push", 8, 7, 341, 32], @@ -1738,53 +1567,34 @@ ["setarg", 9, 1, 8, 341, 11], ["setarg", 9, 2, 2, 341, 11], ["invoke", 9, 7, 341, 11], - ["jump", "if_end_219", 341, 11], - "if_else_218", - "if_end_219", - ["jump", "if_end_217", 341, 11], - "if_else_216", + ["jump", "if_end_201", 341, 11], + "if_else_200", + "if_end_201", + ["jump", "if_end_199", 341, 11], + "if_else_198", ["access", 7, "function", 343, 26], ["eq", 8, 6, 7, 343, 26], - ["jump_false", 8, "if_else_220", 343, 26], - ["jump", "if_end_221", 343, 38], - "if_else_220", - "if_end_221", - "if_end_217", - "if_end_215", - "if_end_212", - "if_end_205", - "if_end_202", - "if_end_198", - "if_end_196", - "if_end_190", + ["jump_false", 8, "if_else_202", 343, 26], + ["jump", "if_end_203", 343, 38], + "if_else_202", + "if_end_203", + "if_end_199", + "if_end_197", + "if_end_194", "if_end_187", + "if_end_184", + "if_end_180", + "if_end_178", + "if_end_174", + "if_end_171", ["access", 7, 1, 347, 15], - "_nop_tc_5", - "_nop_tc_6", - "_nop_tc_7", - "_nop_tc_8", ["add", 3, 3, 7, 347, 15], - ["jump", "num_done_223", 347, 15], - "num_err_222", - "_nop_ucfg_13", - "_nop_ucfg_14", - "_nop_ucfg_15", - "_nop_ucfg_16", - "_nop_ucfg_17", - "_nop_ucfg_18", - "_nop_ucfg_19", - "_nop_ucfg_20", - "_nop_ucfg_21", - "_nop_ucfg_22", - "_nop_ucfg_23", - "_nop_ucfg_24", - "num_done_223", - ["jump", "while_start_184", 347, 15], - "while_end_185", + ["jump", "while_start_168", 347, 15], + "while_end_169", ["null", 3, 347, 15], ["return", 3, 347, 15] ], - "_write_types": [null, null, null, "int", "int", null, null, "int", "bool", null, null, "text", "bool", "bool", "text", "bool", null, null, null, null, "text", "bool", null, "int", "bool", null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "text", "bool", null, null, null, null, "text", "bool", null, null, null, null, null, null, null, null, null, null, null, null, null, "null", "bool", null, null, null, null, "text", "bool", "bool", "text", "bool", null, null, null, null, null, null, null, null, "text", "bool", null, "null", "bool", null, null, "text", "bool", "bool", null, null, "text", "bool", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "text", "bool", "bool", "text", "bool", null, null, null, null, "text", "bool", null, null, null, null, "text", "bool", null, "null", "bool", null, "array", null, null, null, "text", "bool", "int", null, null, null, null, null, null, null, null, null, "null"], + "_write_types": [null, null, null, "int", "int", null, null, "int", "bool", null, null, "text", "bool", "bool", "text", "bool", null, null, null, null, "text", "bool", null, "int", "bool", null, null, null, null, null, null, "int", "text", "bool", null, null, null, null, "text", "bool", null, null, null, null, null, null, null, null, null, null, null, null, null, "null", "bool", null, null, null, null, "text", "bool", "bool", "text", "bool", null, null, null, null, null, null, null, null, "text", "bool", null, "null", "bool", null, null, "text", "bool", "bool", null, null, "text", "bool", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "text", "bool", "bool", "text", "bool", null, null, null, null, "text", "bool", null, null, null, null, "text", "bool", null, "null", "bool", null, "array", null, null, null, "text", "bool", "int", "null"], "name": "", "filename": ".cell/packages/core/fold.cm", "nr_args": 2 @@ -1843,12 +1653,12 @@ "instructions": [ ["null", 3, 367, 17], ["eq", 4, 1, 3, 367, 17], - ["jump_false", 4, "if_else_224", 367, 17], + ["jump_false", 4, "if_else_204", 367, 17], ["null", 3, 367, 30], ["return", 3, 367, 30], "_nop_ur_1", - "if_else_224", - "if_end_225", + "if_else_204", + "if_end_205", ["load_field", 3, 1, "kind", 368, 13], ["move", 4, 3, 368, 13], ["null", 5, 369, 16], @@ -1870,7 +1680,7 @@ ["load_dynamic", 21, 20, 3, 387, 20], ["true", 3, 387, 26], ["eq", 20, 21, 3, 387, 26], - ["jump_false", 20, "if_else_226", 387, 26], + ["jump_false", 20, "if_else_206", 387, 26], ["load_field", 3, 1, "left", 388, 29], ["get", 20, 31, 1, 388, 19], ["frame", 21, 20, 2, 388, 19], @@ -1885,17 +1695,17 @@ ["setarg", 21, 2, 2, 389, 20], ["invoke", 21, 3, 389, 20], ["store_field", 1, 3, "right", 389, 7], - ["jump", "if_end_227", 389, 7], - "if_else_226", + ["jump", "if_end_207", 389, 7], + "if_else_206", ["access", 3, ".", 390, 21], ["eq", 20, 4, 3, 390, 21], ["move", 3, 20, 390, 21], - ["jump_true", 20, "or_end_230", 390, 21], + ["jump_true", 20, "or_end_210", 390, 21], ["access", 20, "[", 390, 33], ["eq", 21, 4, 20, 390, 33], ["move", 3, 21, 390, 33], - "or_end_230", - ["jump_false", 3, "if_else_228", 390, 33], + "or_end_210", + ["jump_false", 3, "if_else_208", 390, 33], ["load_field", 3, 1, "left", 391, 29], ["get", 20, 31, 1, 391, 19], ["frame", 21, 20, 2, 391, 19], @@ -1906,13 +1716,13 @@ ["access", 3, "[", 392, 16], ["eq", 20, 4, 3, 392, 16], ["move", 3, 20, 392, 16], - ["jump_false", 20, "and_end_233", 392, 16], + ["jump_false", 20, "and_end_213", 392, 16], ["load_field", 20, 1, "right", 392, 23], ["null", 21, 392, 37], ["ne", 22, 20, 21, 392, 37], ["move", 3, 22, 392, 37], - "and_end_233", - ["jump_false", 3, "if_else_231", 392, 37], + "and_end_213", + ["jump_false", 3, "if_else_211", 392, 37], ["load_field", 3, 1, "right", 392, 66], ["get", 20, 31, 1, 392, 56], ["frame", 21, 20, 2, 392, 56], @@ -1920,16 +1730,16 @@ ["setarg", 21, 2, 2, 392, 56], ["invoke", 21, 3, 392, 56], ["store_field", 1, 3, "right", 392, 43], - ["jump", "if_end_232", 392, 43], - "if_else_231", - "if_end_232", - ["jump", "if_end_229", 392, 43], - "if_else_228", + ["jump", "if_end_212", 392, 43], + "if_else_211", + "if_end_212", + ["jump", "if_end_209", 392, 43], + "if_else_208", ["get", 3, 7, 1, 393, 16], ["load_dynamic", 20, 3, 4, 393, 26], ["true", 3, 393, 32], ["eq", 21, 20, 3, 393, 32], - ["jump_false", 21, "if_else_234", 393, 32], + ["jump_false", 21, "if_else_214", 393, 32], ["load_field", 3, 1, "expression", 394, 35], ["get", 20, 31, 1, 394, 25], ["frame", 21, 20, 2, 394, 25], @@ -1937,23 +1747,23 @@ ["setarg", 21, 2, 2, 394, 25], ["invoke", 21, 3, 394, 25], ["store_field", 1, 3, "expression", 394, 7], - ["jump", "if_end_235", 394, 7], - "if_else_234", + ["jump", "if_end_215", 394, 7], + "if_else_214", ["access", 3, "++", 395, 21], ["eq", 20, 4, 3, 395, 21], ["move", 3, 20, 395, 21], - ["jump_true", 20, "or_end_238", 395, 21], + ["jump_true", 20, "or_end_218", 395, 21], ["access", 20, "--", 395, 34], ["eq", 21, 4, 20, 395, 34], ["move", 3, 21, 395, 34], - "or_end_238", - ["jump_false", 3, "if_else_236", 395, 34], + "or_end_218", + ["jump_false", 3, "if_else_216", 395, 34], ["return", 1, 396, 14], "_nop_ur_2", - "if_else_236", + "if_else_216", ["access", 3, "then", 397, 21], ["eq", 20, 4, 3, 397, 21], - ["jump_false", 20, "if_else_239", 397, 21], + ["jump_false", 20, "if_else_219", 397, 21], ["load_field", 3, 1, "expression", 398, 35], ["get", 20, 31, 1, 398, 25], ["frame", 21, 20, 2, 398, 25], @@ -1975,11 +1785,11 @@ ["setarg", 21, 2, 2, 400, 19], ["invoke", 21, 3, 400, 19], ["store_field", 1, 3, "else", 400, 7], - ["jump", "if_end_240", 400, 7], - "if_else_239", + ["jump", "if_end_220", 400, 7], + "if_else_219", ["access", 3, "(", 401, 21], ["eq", 20, 4, 3, 401, 21], - ["jump_false", 20, "if_else_241", 401, 21], + ["jump_false", 20, "if_else_221", 401, 21], ["load_field", 3, 1, "expression", 402, 35], ["get", 20, 31, 1, 402, 25], ["frame", 21, 20, 2, 402, 25], @@ -1988,11 +1798,11 @@ ["invoke", 21, 3, 402, 25], ["store_field", 1, 3, "expression", 402, 7], ["access", 10, 0, 403, 11], - "while_start_243", + "while_start_223", ["load_field", 3, 1, "list", 404, 25], ["length", 20, 3, 404, 25], ["lt", 3, 10, 20, 404, 25], - ["jump_false", 3, "while_end_244", 404, 25], + ["jump_false", 3, "while_end_224", 404, 25], ["load_field", 3, 1, "list", 405, 34], ["load_index", 20, 3, 10, 405, 44], ["get", 3, 31, 1, 405, 24], @@ -2003,45 +1813,26 @@ ["load_field", 20, 1, "list", 405, 9], ["store_index", 20, 3, 10, 405, 19], ["access", 3, 1, 406, 17], - "_nop_tc_1", - "_nop_tc_2", - "_nop_tc_3", - "_nop_tc_4", ["add", 10, 10, 3, 406, 17], - ["jump", "num_done_246", 406, 17], - "num_err_245", - "_nop_ucfg_1", - "_nop_ucfg_2", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "num_done_246", - ["jump", "while_start_243", 406, 17], - "while_end_244", - ["jump", "if_end_242", 406, 17], - "if_else_241", + ["jump", "while_start_223", 406, 17], + "while_end_224", + ["jump", "if_end_222", 406, 17], + "if_else_221", ["access", 3, "array", 408, 21], ["eq", 20, 4, 3, 408, 21], ["move", 3, 20, 408, 21], - ["jump_true", 20, "or_end_249", 408, 21], + ["jump_true", 20, "or_end_227", 408, 21], ["access", 20, "text literal", 408, 37], ["eq", 21, 4, 20, 408, 37], ["move", 3, 21, 408, 37], - "or_end_249", - ["jump_false", 3, "if_else_247", 408, 37], + "or_end_227", + ["jump_false", 3, "if_else_225", 408, 37], ["access", 10, 0, 409, 11], - "while_start_250", + "while_start_228", ["load_field", 3, 1, "list", 410, 25], ["length", 20, 3, 410, 25], ["lt", 3, 10, 20, 410, 25], - ["jump_false", 3, "while_end_251", 410, 25], + ["jump_false", 3, "while_end_229", 410, 25], ["load_field", 3, 1, "list", 411, 34], ["load_index", 20, 3, 10, 411, 44], ["get", 3, 31, 1, 411, 24], @@ -2052,43 +1843,24 @@ ["load_field", 20, 1, "list", 411, 9], ["store_index", 20, 3, 10, 411, 19], ["access", 3, 1, 412, 17], - "_nop_tc_5", - "_nop_tc_6", - "_nop_tc_7", - "_nop_tc_8", ["add", 10, 10, 3, 412, 17], - ["jump", "num_done_253", 412, 17], - "num_err_252", - "_nop_ucfg_13", - "_nop_ucfg_14", - "_nop_ucfg_15", - "_nop_ucfg_16", - "_nop_ucfg_17", - "_nop_ucfg_18", - "_nop_ucfg_19", - "_nop_ucfg_20", - "_nop_ucfg_21", - "_nop_ucfg_22", - "_nop_ucfg_23", - "_nop_ucfg_24", - "num_done_253", - ["jump", "while_start_250", 412, 17], - "while_end_251", - ["jump", "if_end_248", 412, 17], - "if_else_247", + ["jump", "while_start_228", 412, 17], + "while_end_229", + ["jump", "if_end_226", 412, 17], + "if_else_225", ["access", 3, "record", 414, 21], ["eq", 20, 4, 3, 414, 21], - ["jump_false", 20, "if_else_254", 414, 21], + ["jump_false", 20, "if_else_230", 414, 21], ["access", 10, 0, 415, 11], - "while_start_256", + "while_start_232", ["load_field", 3, 1, "list", 416, 25], ["length", 20, 3, 416, 25], ["lt", 3, 10, 20, 416, 25], - ["jump_false", 3, "while_end_257", 416, 25], + ["jump_false", 3, "while_end_233", 416, 25], ["load_field", 3, 1, "list", 417, 13], ["load_index", 20, 3, 10, 417, 23], ["load_field", 3, 20, "computed", 417, 23], - ["jump_false", 3, "if_else_258", 417, 23], + ["wary_false", 3, "if_else_234", 417, 23], ["load_field", 3, 1, "list", 418, 41], ["load_index", 20, 3, 10, 418, 51], ["load_field", 3, 20, "left", 418, 51], @@ -2100,9 +1872,9 @@ ["load_field", 20, 1, "list", 418, 11], ["load_index", 21, 20, 10, 418, 21], ["store_field", 21, 3, "left", 418, 21], - ["jump", "if_end_259", 418, 21], - "if_else_258", - "if_end_259", + ["jump", "if_end_235", 418, 21], + "if_else_234", + "if_end_235", ["load_field", 3, 1, "list", 420, 40], ["load_index", 20, 3, 10, 420, 50], ["load_field", 3, 20, "right", 420, 50], @@ -2115,45 +1887,26 @@ ["load_index", 21, 20, 10, 420, 19], ["store_field", 21, 3, "right", 420, 19], ["access", 3, 1, 421, 17], - "_nop_tc_9", - "_nop_tc_10", - "_nop_tc_11", - "_nop_tc_12", ["add", 10, 10, 3, 421, 17], - ["jump", "num_done_261", 421, 17], - "num_err_260", - "_nop_ucfg_25", - "_nop_ucfg_26", - "_nop_ucfg_27", - "_nop_ucfg_28", - "_nop_ucfg_29", - "_nop_ucfg_30", - "_nop_ucfg_31", - "_nop_ucfg_32", - "_nop_ucfg_33", - "_nop_ucfg_34", - "_nop_ucfg_35", - "_nop_ucfg_36", - "num_done_261", - ["jump", "while_start_256", 421, 17], - "while_end_257", - ["jump", "if_end_255", 421, 17], - "if_else_254", + ["jump", "while_start_232", 421, 17], + "while_end_233", + ["jump", "if_end_231", 421, 17], + "if_else_230", ["access", 3, "function", 423, 21], ["eq", 10, 4, 3, 423, 21], - ["jump_false", 10, "if_else_262", 423, 21], + ["jump_false", 10, "if_else_236", 423, 21], ["get", 3, 34, 1, 424, 7], ["frame", 10, 3, 1, 424, 7], ["setarg", 10, 1, 1, 424, 7], ["invoke", 10, 3, 424, 7], ["return", 1, 425, 14], "_nop_ur_3", - "if_else_262", + "if_else_236", ["get", 3, 8, 1, 426, 16], ["load_dynamic", 10, 3, 4, 426, 27], ["true", 3, 426, 33], ["eq", 20, 10, 3, 426, 33], - ["jump_false", 20, "if_else_264", 426, 33], + ["jump_false", 20, "if_else_238", 426, 33], ["load_field", 3, 1, "right", 427, 30], ["get", 10, 31, 1, 427, 20], ["frame", 20, 10, 2, 427, 20], @@ -2163,27 +1916,27 @@ ["store_field", 1, 3, "right", 427, 7], ["return", 1, 428, 14], "_nop_ur_4", - "if_else_264", - "if_end_265", - "if_end_263", - "if_end_255", - "if_end_248", - "if_end_242", - "if_end_240", + "if_else_238", + "if_end_239", "if_end_237", - "if_end_235", - "if_end_229", - "if_end_227", + "if_end_231", + "if_end_226", + "if_end_222", + "if_end_220", + "if_end_217", + "if_end_215", + "if_end_209", + "if_end_207", ["access", 3, "name", 432, 14], ["eq", 10, 4, 3, 432, 14], ["move", 3, 10, 432, 14], - ["jump_false", 10, "and_end_268", 432, 14], + ["jump_false", 10, "and_end_242", 432, 14], ["load_field", 10, 1, "level", 432, 24], ["access", 20, 0, 432, 38], ["eq", 21, 10, 20, 432, 38], ["move", 3, 21, 432, 38], - "and_end_268", - ["jump_false", 3, "if_else_266", 432, 38], + "and_end_242", + ["jump_false", 3, "if_else_240", 432, 38], ["load_field", 3, 1, "name", 433, 30], ["get", 10, 25, 1, 433, 13], ["frame", 20, 10, 2, 433, 13], @@ -2193,7 +1946,7 @@ ["move", 12, 3, 433, 13], ["null", 10, 434, 18], ["ne", 20, 3, 10, 434, 18], - ["jump_false", 20, "if_else_269", 434, 18], + ["jump_false", 20, "if_else_243", 434, 18], ["load_field", 3, 1, "name", 435, 31], ["get", 10, 21, 1, 435, 14], ["frame", 20, 10, 2, 435, 14], @@ -2204,12 +1957,12 @@ ["null", 10, 436, 19], ["ne", 20, 3, 10, 436, 19], ["move", 3, 20, 436, 19], - ["jump_false", 20, "and_end_273", 436, 19], + ["jump_false", 20, "and_end_247", 436, 19], ["load_field", 10, 11, "closure", 436, 28], ["not", 20, 10, 436, 28], ["move", 3, 20, 436, 28], - "and_end_273", - ["jump_false", 3, "if_else_271", 436, 28], + "and_end_247", + ["jump_false", 3, "if_else_245", 436, 28], ["record", 3, 3], ["load_field", 10, 12, "kind", 437, 40], ["store_field", 3, 10, "kind", 437, 40], @@ -2224,11 +1977,11 @@ ["tail_invoke", 12, 3, 437, 18], ["return", 3, 437, 18], "_nop_ur_5", - "if_else_271", - "if_end_272", - ["jump", "if_end_270", 437, 18], - "if_else_269", - "if_end_270", + "if_else_245", + "if_end_246", + ["jump", "if_end_244", 437, 18], + "if_else_243", + "if_end_244", ["load_field", 3, 1, "name", 440, 29], ["get", 10, 21, 1, 440, 12], ["frame", 12, 10, 2, 440, 12], @@ -2239,27 +1992,27 @@ ["null", 10, 441, 17], ["ne", 12, 3, 10, 441, 17], ["move", 3, 12, 441, 17], - ["jump_false", 12, "and_end_276", 441, 17], + ["jump_false", 12, "and_end_250", 441, 17], ["load_field", 10, 11, "type_tag", 441, 25], ["null", 12, 441, 40], ["ne", 20, 10, 12, 441, 40], ["move", 3, 20, 441, 40], - "and_end_276", - ["jump_false", 3, "if_else_274", 441, 40], + "and_end_250", + ["jump_false", 3, "if_else_248", 441, 40], ["load_field", 3, 11, "type_tag", 442, 25], ["store_field", 1, 3, "type_tag", 442, 9], - ["jump", "if_end_275", 442, 9], - "if_else_274", - "if_end_275", + ["jump", "if_end_249", 442, 9], + "if_else_248", + "if_end_249", ["return", 1, 444, 14], "_nop_ur_6", - "if_else_266", - "if_end_267", + "if_else_240", + "if_end_241", ["get", 3, 9, 1, 448, 9], ["load_dynamic", 10, 3, 4, 448, 19], ["true", 3, 448, 25], ["eq", 12, 10, 3, 448, 25], - ["jump_false", 12, "if_else_277", 448, 25], + ["jump_false", 12, "if_else_251", 448, 25], ["load_field", 3, 1, "left", 449, 14], ["move", 5, 3, 449, 14], ["load_field", 10, 1, "right", 450, 15], @@ -2267,33 +2020,33 @@ ["null", 10, 451, 19], ["ne", 12, 3, 10, 451, 19], ["move", 3, 12, 451, 19], - ["jump_false", 12, "and_end_283", 451, 19], + ["jump_false", 12, "and_end_257", 451, 19], ["null", 10, 451, 36], ["ne", 12, 6, 10, 451, 36], ["move", 3, 12, 451, 36], - "and_end_283", + "and_end_257", ["move", 10, 3, 451, 36], - ["jump_false", 3, "and_end_282", 451, 36], + ["jump_false", 3, "and_end_256", 451, 36], ["load_field", 3, 5, "kind", 451, 44], ["access", 12, "number", 451, 57], ["eq", 20, 3, 12, 451, 57], ["move", 10, 20, 451, 57], - "and_end_282", + "and_end_256", ["move", 3, 10, 451, 57], - ["jump_false", 10, "and_end_281", 451, 57], + ["jump_false", 10, "and_end_255", 451, 57], ["load_field", 10, 6, "kind", 451, 69], ["access", 12, "number", 451, 83], ["eq", 20, 10, 12, 451, 83], ["move", 3, 20, 451, 83], - "and_end_281", - ["jump_false", 3, "if_else_279", 451, 83], + "and_end_255", + ["jump_false", 3, "if_else_253", 451, 83], ["load_field", 3, 5, "number", 452, 14], ["move", 7, 3, 452, 14], ["load_field", 10, 6, "number", 453, 14], ["move", 8, 10, 453, 14], ["null", 10, 454, 19], ["eq", 12, 3, 10, 454, 19], - ["jump_false", 12, "if_else_284", 454, 19], + ["jump_false", 12, "if_else_258", 454, 19], ["load_field", 3, 5, "value", 454, 37], [ "access", @@ -2310,12 +2063,12 @@ ["setarg", 12, 1, 3, 454, 30], ["invoke", 12, 3, 454, 30], ["move", 7, 3, 454, 30], - ["jump", "if_end_285", 454, 30], - "if_else_284", - "if_end_285", + ["jump", "if_end_259", 454, 30], + "if_else_258", + "if_end_259", ["null", 3, 455, 19], ["eq", 10, 8, 3, 455, 19], - ["jump_false", 10, "if_else_286", 455, 19], + ["jump_false", 10, "if_else_260", 455, 19], ["load_field", 3, 6, "value", 455, 37], [ "access", @@ -2332,61 +2085,61 @@ ["setarg", 12, 1, 3, 455, 30], ["invoke", 12, 3, 455, 30], ["move", 8, 3, 455, 30], - ["jump", "if_end_287", 455, 30], - "if_else_286", - "if_end_287", + ["jump", "if_end_261", 455, 30], + "if_else_260", + "if_end_261", ["access", 3, "/", 456, 18], ["eq", 10, 4, 3, 456, 18], - ["jump_false", 10, "if_else_288", 456, 18], + ["jump_false", 10, "if_else_262", 456, 18], ["access", 3, 0, 457, 21], ["eq", 10, 8, 3, 457, 21], - ["jump_false", 10, "if_else_290", 457, 21], + ["jump_false", 10, "if_else_264", 457, 21], ["get", 3, 18, 1, 457, 31], ["frame", 10, 3, 1, 457, 31], ["setarg", 10, 1, 1, 457, 31], ["tail_invoke", 10, 3, 457, 31], ["return", 3, 457, 31], "_nop_ur_7", - "if_else_290", - "if_end_291", - ["jump", "if_end_289", 457, 31], - "if_else_288", - "if_end_289", + "if_else_264", + "if_end_265", + ["jump", "if_end_263", 457, 31], + "if_else_262", + "if_end_263", ["access", 3, "%", 459, 18], ["eq", 10, 4, 3, 459, 18], - ["jump_false", 10, "if_else_292", 459, 18], + ["jump_false", 10, "if_else_266", 459, 18], ["access", 3, 0, 460, 21], ["eq", 10, 8, 3, 460, 21], - ["jump_false", 10, "if_else_294", 460, 21], + ["jump_false", 10, "if_else_268", 460, 21], ["get", 3, 18, 1, 460, 31], ["frame", 10, 3, 1, 460, 31], ["setarg", 10, 1, 1, 460, 31], ["tail_invoke", 10, 3, 460, 31], ["return", 3, 460, 31], "_nop_ur_8", - "if_else_294", - "if_end_295", - ["jump", "if_end_293", 460, 31], - "if_else_292", - "if_end_293", + "if_else_268", + "if_end_269", + ["jump", "if_end_267", 460, 31], + "if_else_266", + "if_end_267", ["null", 9, 462, 18], ["access", 3, "+", 463, 18], ["eq", 10, 4, 3, 463, 18], - ["jump_false", 10, "if_else_296", 463, 18], + ["jump_false", 10, "if_else_270", 463, 18], ["is_text", 3, 7, 463, 37], - ["jump_false", 3, "add_cn_299", 463, 37], + ["jump_false", 3, "add_cn_273", 463, 37], ["is_text", 10, 8, 463, 37], - ["jump_false", 10, "add_cn_299", 463, 37], + ["jump_false", 10, "add_cn_273", 463, 37], ["concat", 12, 7, 8, 463, 37], - ["jump", "add_done_298", 463, 37], - "add_cn_299", + ["jump", "add_done_272", 463, 37], + "add_cn_273", ["is_num", 3, 7, 463, 37], - ["jump_false", 3, "add_err_300", 463, 37], + ["jump_false", 3, "add_err_274", 463, 37], ["is_num", 10, 8, 463, 37], - ["jump_false", 10, "add_err_300", 463, 37], + ["jump_false", 10, "add_err_274", 463, 37], ["add", 12, 7, 8, 463, 37], - ["jump", "add_done_298", 463, 37], - "add_err_300", + ["jump", "add_done_272", 463, 37], + "add_err_274", [ "access", 3, @@ -2411,20 +2164,20 @@ ["setarg", 20, 2, 21, 463, 37], ["invoke", 20, 3, 463, 37], ["disrupt", 463, 37], - "add_done_298", + "add_done_272", ["move", 9, 12, 463, 37], - ["jump", "if_end_297", 463, 37], - "if_else_296", + ["jump", "if_end_271", 463, 37], + "if_else_270", ["access", 3, "-", 464, 23], ["eq", 10, 4, 3, 464, 23], - ["jump_false", 10, "if_else_301", 464, 23], + ["jump_false", 10, "if_else_275", 464, 23], ["is_num", 3, 7, 464, 42], - ["jump_false", 3, "num_err_303", 464, 42], + ["jump_false", 3, "num_err_277", 464, 42], ["is_num", 3, 8, 464, 42], - ["jump_false", 3, "num_err_303", 464, 42], + ["jump_false", 3, "num_err_277", 464, 42], ["subtract", 9, 7, 8, 464, 42], - ["jump", "num_done_304", 464, 42], - "num_err_303", + ["jump", "num_done_278", 464, 42], + "num_err_277", [ "access", 3, @@ -2437,7 +2190,7 @@ 42 ], ["access", 10, "error", 464, 42], - ["access", 12, "cannot apply '-': operands must be numbers", 464, 42], + ["access", 12, "operands must be numbers", 464, 42], ["array", 20, 0, 464, 42], ["stone_text", 12], ["push", 20, 12, 464, 42], @@ -2449,246 +2202,62 @@ ["setarg", 12, 2, 20, 464, 42], ["invoke", 12, 3, 464, 42], ["disrupt", 464, 42], - "num_done_304", - ["jump", "if_end_302", 464, 42], - "if_else_301", + "num_done_278", + ["jump", "if_end_276", 464, 42], + "if_else_275", ["access", 3, "*", 465, 23], ["eq", 10, 4, 3, 465, 23], - ["jump_false", 10, "if_else_305", 465, 23], - ["is_num", 3, 7, 465, 42], - ["jump_false", 3, "num_err_307", 465, 42], - ["is_num", 3, 8, 465, 42], - ["jump_false", 3, "num_err_307", 465, 42], + ["jump_false", 10, "if_else_279", 465, 23], ["multiply", 9, 7, 8, 465, 42], - ["jump", "num_done_308", 465, 42], - "num_err_307", - [ - "access", - 3, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 465, - 42 - ], - ["access", 10, "error", 465, 42], - ["access", 12, "cannot apply '*': operands must be numbers", 465, 42], - ["array", 20, 0, 465, 42], - ["stone_text", 12], - ["push", 20, 12, 465, 42], - ["frame", 12, 3, 2, 465, 42], - ["null", 3, 465, 42], - ["setarg", 12, 0, 3, 465, 42], - ["stone_text", 10], - ["setarg", 12, 1, 10, 465, 42], - ["setarg", 12, 2, 20, 465, 42], - ["invoke", 12, 3, 465, 42], - ["disrupt", 465, 42], - "num_done_308", - ["jump", "if_end_306", 465, 42], - "if_else_305", + ["jump", "if_end_280", 465, 42], + "if_else_279", ["access", 3, "/", 466, 23], ["eq", 10, 4, 3, 466, 23], - ["jump_false", 10, "if_else_309", 466, 23], - ["is_num", 3, 7, 466, 42], - ["jump_false", 3, "num_err_311", 466, 42], - ["is_num", 3, 8, 466, 42], - ["jump_false", 3, "num_err_311", 466, 42], + ["jump_false", 10, "if_else_281", 466, 23], ["divide", 9, 7, 8, 466, 42], - ["jump", "num_done_312", 466, 42], - "num_err_311", - [ - "access", - 3, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 466, - 42 - ], - ["access", 10, "error", 466, 42], - ["access", 12, "cannot apply '/': operands must be numbers", 466, 42], - ["array", 20, 0, 466, 42], - ["stone_text", 12], - ["push", 20, 12, 466, 42], - ["frame", 12, 3, 2, 466, 42], - ["null", 3, 466, 42], - ["setarg", 12, 0, 3, 466, 42], - ["stone_text", 10], - ["setarg", 12, 1, 10, 466, 42], - ["setarg", 12, 2, 20, 466, 42], - ["invoke", 12, 3, 466, 42], - ["disrupt", 466, 42], - "num_done_312", - ["jump", "if_end_310", 466, 42], - "if_else_309", + ["jump", "if_end_282", 466, 42], + "if_else_281", ["access", 3, "%", 467, 23], ["eq", 10, 4, 3, 467, 23], - ["jump_false", 10, "if_else_313", 467, 23], - ["is_num", 3, 7, 467, 54], - ["jump_false", 3, "num_err_315", 467, 54], - ["is_num", 3, 8, 467, 54], - ["jump_false", 3, "num_err_315", 467, 54], + ["jump_false", 10, "if_else_283", 467, 23], ["divide", 3, 7, 8, 467, 54], - ["jump", "num_done_316", 467, 54], - "num_err_315", - [ - "access", - 10, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 467, - 54 - ], - ["access", 12, "error", 467, 54], - ["access", 20, "cannot apply '/': operands must be numbers", 467, 54], - ["array", 21, 0, 467, 54], - ["stone_text", 20], - ["push", 21, 20, 467, 54], - ["frame", 20, 10, 2, 467, 54], ["null", 10, 467, 54], - ["setarg", 20, 0, 10, 467, 54], - ["stone_text", 12], - ["setarg", 20, 1, 12, 467, 54], - ["setarg", 20, 2, 21, 467, 54], - ["invoke", 20, 10, 467, 54], - ["disrupt", 467, 54], - "num_done_316", - ["null", 10, 467, 54], - "_nop_tc_13", - "_nop_tc_14", - ["trunc", 12, 3, 10, 467, 54], - ["jump", "trunc_arg_done_318", 467, 54], - "trunc_arg_bad_317", - "_nop_ucfg_37", - "trunc_arg_done_318", "_nop_tc_1", "_nop_tc_2", - ["is_num", 3, 8, 467, 60], - ["jump_false", 3, "num_err_319", 467, 60], + ["trunc", 12, 3, 10, 467, 54], + ["jump", "trunc_arg_done_286", 467, 54], + "trunc_arg_bad_285", + "_nop_ucfg_1", + "trunc_arg_done_286", + "_nop_tc_1", + "_nop_tc_2", ["multiply", 3, 12, 8, 467, 60], - ["jump", "num_done_320", 467, 60], - "num_err_319", - [ - "access", - 10, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 467, - 60 - ], - ["access", 12, "error", 467, 60], - ["access", 20, "cannot apply '*': operands must be numbers", 467, 60], - ["array", 21, 0, 467, 60], - ["stone_text", 20], - ["push", 21, 20, 467, 60], - ["frame", 20, 10, 2, 467, 60], - ["null", 10, 467, 60], - ["setarg", 20, 0, 10, 467, 60], - ["stone_text", 12], - ["setarg", 20, 1, 12, 467, 60], - ["setarg", 20, 2, 21, 467, 60], - ["invoke", 20, 10, 467, 60], - ["disrupt", 467, 60], - "num_done_320", - ["is_num", 10, 7, 467, 60], - ["jump_false", 10, "num_err_321", 467, 60], - "_nop_tc_15", - "_nop_tc_16", ["subtract", 9, 7, 3, 467, 60], - ["jump", "num_done_322", 467, 60], - "num_err_321", - [ - "access", - 3, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 467, - 60 - ], - ["access", 10, "error", 467, 60], - ["access", 12, "cannot apply '-': operands must be numbers", 467, 60], - ["array", 20, 0, 467, 60], - ["stone_text", 12], - ["push", 20, 12, 467, 60], - ["frame", 12, 3, 2, 467, 60], - ["null", 3, 467, 60], - ["setarg", 12, 0, 3, 467, 60], - ["stone_text", 10], - ["setarg", 12, 1, 10, 467, 60], - ["setarg", 12, 2, 20, 467, 60], - ["invoke", 12, 3, 467, 60], - ["disrupt", 467, 60], - "num_done_322", - ["jump", "if_end_314", 467, 60], - "if_else_313", + ["jump", "if_end_284", 467, 60], + "if_else_283", ["access", 3, "**", 468, 23], ["eq", 10, 4, 3, 468, 23], - ["jump_false", 10, "if_else_323", 468, 23], - ["is_num", 3, 7, 468, 44], - ["jump_false", 3, "num_err_325", 468, 44], - ["is_num", 3, 8, 468, 44], - ["jump_false", 3, "num_err_325", 468, 44], + ["jump_false", 10, "if_else_287", 468, 23], ["pow", 9, 7, 8, 468, 44], - ["jump", "num_done_326", 468, 44], - "num_err_325", - [ - "access", - 3, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 468, - 44 - ], - ["access", 10, "error", 468, 44], - ["access", 12, "cannot apply '**': operands must be numbers", 468, 44], - ["array", 20, 0, 468, 44], - ["stone_text", 12], - ["push", 20, 12, 468, 44], - ["frame", 12, 3, 2, 468, 44], - ["null", 3, 468, 44], - ["setarg", 12, 0, 3, 468, 44], - ["stone_text", 10], - ["setarg", 12, 1, 10, 468, 44], - ["setarg", 12, 2, 20, 468, 44], - ["invoke", 12, 3, 468, 44], - ["disrupt", 468, 44], - "num_done_326", - ["jump", "if_end_324", 468, 44], - "if_else_323", - "if_end_324", - "if_end_314", - "if_end_310", - "if_end_306", - "if_end_302", - "if_end_297", + ["jump", "if_end_288", 468, 44], + "if_else_287", + "if_end_288", + "if_end_284", + "if_end_282", + "if_end_280", + "if_end_276", + "if_end_271", ["null", 3, 469, 23], ["eq", 10, 9, 3, 469, 23], - ["jump_false", 10, "if_else_327", 469, 23], + ["jump_false", 10, "if_else_289", 469, 23], ["get", 3, 18, 1, 469, 36], ["frame", 10, 3, 1, 469, 36], ["setarg", 10, 1, 1, 469, 36], ["tail_invoke", 10, 3, 469, 36], ["return", 3, 469, 36], "_nop_ur_9", - "if_else_327", - "if_end_328", + "if_else_289", + "if_end_290", ["get", 3, 15, 1, 470, 16], ["frame", 10, 3, 2, 470, 16], ["setarg", 10, 1, 9, 470, 16], @@ -2696,53 +2265,53 @@ ["tail_invoke", 10, 3, 470, 16], ["return", 3, 470, 16], "_nop_ur_10", - "if_else_279", - "if_end_280", + "if_else_253", + "if_end_254", ["access", 3, "+", 473, 16], - ["eq", 9, 4, 3, 473, 16], - ["move", 3, 9, 473, 16], - ["jump_false", 9, "and_end_334", 473, 16], - ["null", 9, 473, 31], - ["ne", 10, 5, 9, 473, 31], - ["move", 3, 10, 473, 31], - "and_end_334", - ["move", 9, 3, 473, 31], - ["jump_false", 3, "and_end_333", 473, 31], + ["eq", 10, 4, 3, 473, 16], + ["move", 3, 10, 473, 16], + ["jump_false", 10, "and_end_296", 473, 16], + ["null", 10, 473, 31], + ["ne", 12, 5, 10, 473, 31], + ["move", 3, 12, 473, 31], + "and_end_296", + ["move", 10, 3, 473, 31], + ["jump_false", 3, "and_end_295", 473, 31], ["null", 3, 473, 48], - ["ne", 10, 6, 3, 473, 48], - ["move", 9, 10, 473, 48], - "and_end_333", - ["move", 3, 9, 473, 48], - ["jump_false", 9, "and_end_332", 473, 48], - ["load_field", 9, 5, "kind", 473, 56], - ["access", 10, "text", 473, 69], - ["eq", 12, 9, 10, 473, 69], - ["move", 3, 12, 473, 69], - "and_end_332", - ["move", 9, 3, 473, 69], - ["jump_false", 3, "and_end_331", 473, 69], + ["ne", 12, 6, 3, 473, 48], + ["move", 10, 12, 473, 48], + "and_end_295", + ["move", 3, 10, 473, 48], + ["jump_false", 10, "and_end_294", 473, 48], + ["load_field", 10, 5, "kind", 473, 56], + ["access", 12, "text", 473, 69], + ["eq", 20, 10, 12, 473, 69], + ["move", 3, 20, 473, 69], + "and_end_294", + ["move", 10, 3, 473, 69], + ["jump_false", 3, "and_end_293", 473, 69], ["load_field", 3, 6, "kind", 473, 79], - ["access", 10, "text", 473, 93], - ["eq", 12, 3, 10, 473, 93], - ["move", 9, 12, 473, 93], - "and_end_331", - ["jump_false", 9, "if_else_329", 473, 93], + ["access", 12, "text", 473, 93], + ["eq", 20, 3, 12, 473, 93], + ["move", 10, 20, 473, 93], + "and_end_293", + ["jump_false", 10, "if_else_291", 473, 93], ["load_field", 3, 5, "value", 474, 26], - ["load_field", 9, 6, "value", 474, 39], - ["is_text", 10, 3, 474, 39], - ["jump_false", 10, "add_cn_336", 474, 39], - ["is_text", 12, 9, 474, 39], - ["jump_false", 12, "add_cn_336", 474, 39], - ["concat", 20, 3, 9, 474, 39], - ["jump", "add_done_335", 474, 39], - "add_cn_336", - ["is_num", 10, 3, 474, 39], - ["jump_false", 10, "add_err_337", 474, 39], - ["is_num", 12, 9, 474, 39], - ["jump_false", 12, "add_err_337", 474, 39], - ["add", 20, 3, 9, 474, 39], - ["jump", "add_done_335", 474, 39], - "add_err_337", + ["load_field", 10, 6, "value", 474, 39], + ["is_text", 12, 3, 474, 39], + ["jump_false", 12, "add_cn_298", 474, 39], + ["is_text", 20, 10, 474, 39], + ["jump_false", 20, "add_cn_298", 474, 39], + ["concat", 21, 3, 10, 474, 39], + ["jump", "add_done_297", 474, 39], + "add_cn_298", + ["is_num", 12, 3, 474, 39], + ["jump_false", 12, "add_err_299", 474, 39], + ["is_num", 20, 10, 474, 39], + ["jump_false", 20, "add_err_299", 474, 39], + ["add", 21, 3, 10, 474, 39], + ["jump", "add_done_297", 474, 39], + "add_err_299", [ "access", 3, @@ -2754,73 +2323,73 @@ 474, 39 ], - ["access", 9, "error", 474, 39], - ["access", 10, "cannot apply '+': operands must both be text or both be numbers", 474, 39], - ["array", 12, 0, 474, 39], - ["stone_text", 10], - ["push", 12, 10, 474, 39], - ["frame", 10, 3, 2, 474, 39], + ["access", 10, "error", 474, 39], + ["access", 12, "cannot apply '+': operands must both be text or both be numbers", 474, 39], + ["array", 20, 0, 474, 39], + ["stone_text", 12], + ["push", 20, 12, 474, 39], + ["frame", 12, 3, 2, 474, 39], ["null", 3, 474, 39], - ["setarg", 10, 0, 3, 474, 39], - ["stone_text", 9], - ["setarg", 10, 1, 9, 474, 39], - ["setarg", 10, 2, 12, 474, 39], - ["invoke", 10, 3, 474, 39], + ["setarg", 12, 0, 3, 474, 39], + ["stone_text", 10], + ["setarg", 12, 1, 10, 474, 39], + ["setarg", 12, 2, 20, 474, 39], + ["invoke", 12, 3, 474, 39], ["disrupt", 474, 39], - "add_done_335", + "add_done_297", ["get", 3, 16, 1, 474, 16], - ["frame", 9, 3, 2, 474, 16], - ["setarg", 9, 1, 20, 474, 16], - ["setarg", 9, 2, 1, 474, 16], - ["tail_invoke", 9, 3, 474, 16], + ["frame", 10, 3, 2, 474, 16], + ["setarg", 10, 1, 21, 474, 16], + ["setarg", 10, 2, 1, 474, 16], + ["tail_invoke", 10, 3, 474, 16], ["return", 3, 474, 16], "_nop_ur_11", - "if_else_329", - "if_end_330", + "if_else_291", + "if_end_292", ["return", 1, 476, 14], "_nop_ur_12", - "if_else_277", - "if_end_278", + "if_else_251", + "if_end_252", ["get", 3, 10, 1, 480, 9], - ["load_dynamic", 9, 3, 4, 480, 24], + ["load_dynamic", 10, 3, 4, 480, 24], ["true", 3, 480, 30], - ["eq", 10, 9, 3, 480, 30], - ["jump_false", 10, "if_else_338", 480, 30], + ["eq", 12, 10, 3, 480, 30], + ["jump_false", 12, "if_else_300", 480, 30], ["load_field", 3, 1, "left", 481, 14], ["move", 5, 3, 481, 14], - ["load_field", 9, 1, "right", 482, 15], - ["move", 6, 9, 482, 15], - ["null", 9, 483, 19], - ["ne", 10, 3, 9, 483, 19], - ["move", 3, 10, 483, 19], - ["jump_false", 10, "and_end_342", 483, 19], - ["null", 9, 483, 36], - ["ne", 10, 6, 9, 483, 36], - ["move", 3, 10, 483, 36], - "and_end_342", - ["jump_false", 3, "if_else_340", 483, 36], + ["load_field", 10, 1, "right", 482, 15], + ["move", 6, 10, 482, 15], + ["null", 10, 483, 19], + ["ne", 12, 3, 10, 483, 19], + ["move", 3, 12, 483, 19], + ["jump_false", 12, "and_end_304", 483, 19], + ["null", 10, 483, 36], + ["ne", 12, 6, 10, 483, 36], + ["move", 3, 12, 483, 36], + "and_end_304", + ["jump_false", 3, "if_else_302", 483, 36], ["load_field", 3, 5, "kind", 484, 13], - ["access", 9, "number", 484, 26], - ["eq", 10, 3, 9, 484, 26], - ["move", 3, 10, 484, 26], - ["jump_false", 10, "and_end_345", 484, 26], - ["load_field", 9, 6, "kind", 484, 38], - ["access", 10, "number", 484, 52], - ["eq", 12, 9, 10, 484, 52], - ["move", 3, 12, 484, 52], - "and_end_345", - ["jump_false", 3, "if_else_343", 484, 52], + ["access", 10, "number", 484, 26], + ["eq", 12, 3, 10, 484, 26], + ["move", 3, 12, 484, 26], + ["jump_false", 12, "and_end_307", 484, 26], + ["load_field", 10, 6, "kind", 484, 38], + ["access", 12, "number", 484, 52], + ["eq", 20, 10, 12, 484, 52], + ["move", 3, 20, 484, 52], + "and_end_307", + ["jump_false", 3, "if_else_305", 484, 52], ["load_field", 3, 5, "number", 485, 16], ["move", 7, 3, 485, 16], - ["load_field", 9, 6, "number", 486, 16], - ["move", 8, 9, 486, 16], - ["null", 9, 487, 21], - ["eq", 10, 3, 9, 487, 21], - ["jump_false", 10, "if_else_346", 487, 21], + ["load_field", 10, 6, "number", 486, 16], + ["move", 8, 10, 486, 16], + ["null", 10, 487, 21], + ["eq", 12, 3, 10, 487, 21], + ["jump_false", 12, "if_else_308", 487, 21], ["load_field", 3, 5, "value", 487, 39], [ "access", - 9, + 10, { "name": "number", "kind": "name", @@ -2829,20 +2398,20 @@ 487, 32 ], - ["frame", 10, 9, 1, 487, 32], - ["setarg", 10, 1, 3, 487, 32], - ["invoke", 10, 3, 487, 32], + ["frame", 12, 10, 1, 487, 32], + ["setarg", 12, 1, 3, 487, 32], + ["invoke", 12, 3, 487, 32], ["move", 7, 3, 487, 32], - ["jump", "if_end_347", 487, 32], - "if_else_346", - "if_end_347", + ["jump", "if_end_309", 487, 32], + "if_else_308", + "if_end_309", ["null", 3, 488, 21], - ["eq", 9, 8, 3, 488, 21], - ["jump_false", 9, "if_else_348", 488, 21], + ["eq", 10, 8, 3, 488, 21], + ["jump_false", 10, "if_else_310", 488, 21], ["load_field", 3, 6, "value", 488, 39], [ "access", - 9, + 10, { "name": "number", "kind": "name", @@ -2851,210 +2420,210 @@ 488, 32 ], - ["frame", 10, 9, 1, 488, 32], - ["setarg", 10, 1, 3, 488, 32], - ["invoke", 10, 3, 488, 32], + ["frame", 12, 10, 1, 488, 32], + ["setarg", 12, 1, 3, 488, 32], + ["invoke", 12, 3, 488, 32], ["move", 8, 3, 488, 32], - ["jump", "if_end_349", 488, 32], - "if_else_348", - "if_end_349", + ["jump", "if_end_311", 488, 32], + "if_else_310", + "if_end_311", ["access", 3, "==", 489, 20], - ["eq", 9, 4, 3, 489, 20], - ["jump_false", 9, "if_else_350", 489, 20], + ["eq", 10, 4, 3, 489, 20], + ["jump_false", 10, "if_else_312", 489, 20], ["eq", 3, 7, 8, 489, 49], - ["get", 9, 17, 1, 489, 33], - ["frame", 10, 9, 2, 489, 33], - ["setarg", 10, 1, 3, 489, 33], - ["setarg", 10, 2, 1, 489, 33], - ["tail_invoke", 10, 3, 489, 33], + ["get", 10, 17, 1, 489, 33], + ["frame", 12, 10, 2, 489, 33], + ["setarg", 12, 1, 3, 489, 33], + ["setarg", 12, 2, 1, 489, 33], + ["tail_invoke", 12, 3, 489, 33], ["return", 3, 489, 33], "_nop_ur_13", - "if_else_350", - "if_end_351", + "if_else_312", + "if_end_313", ["access", 3, "!=", 490, 20], - ["eq", 9, 4, 3, 490, 20], - ["jump_false", 9, "if_else_352", 490, 20], + ["eq", 10, 4, 3, 490, 20], + ["jump_false", 10, "if_else_314", 490, 20], ["ne", 3, 7, 8, 490, 49], - ["get", 9, 17, 1, 490, 33], - ["frame", 10, 9, 2, 490, 33], - ["setarg", 10, 1, 3, 490, 33], - ["setarg", 10, 2, 1, 490, 33], - ["tail_invoke", 10, 3, 490, 33], + ["get", 10, 17, 1, 490, 33], + ["frame", 12, 10, 2, 490, 33], + ["setarg", 12, 1, 3, 490, 33], + ["setarg", 12, 2, 1, 490, 33], + ["tail_invoke", 12, 3, 490, 33], ["return", 3, 490, 33], "_nop_ur_14", - "if_else_352", - "if_end_353", + "if_else_314", + "if_end_315", ["access", 3, "<", 491, 20], - ["eq", 9, 4, 3, 491, 20], - ["jump_false", 9, "if_else_354", 491, 20], + ["eq", 10, 4, 3, 491, 20], + ["jump_false", 10, "if_else_316", 491, 20], ["lt", 3, 7, 8, 491, 47], - ["get", 9, 17, 1, 491, 32], - ["frame", 10, 9, 2, 491, 32], - ["setarg", 10, 1, 3, 491, 32], - ["setarg", 10, 2, 1, 491, 32], - ["tail_invoke", 10, 3, 491, 32], + ["get", 10, 17, 1, 491, 32], + ["frame", 12, 10, 2, 491, 32], + ["setarg", 12, 1, 3, 491, 32], + ["setarg", 12, 2, 1, 491, 32], + ["tail_invoke", 12, 3, 491, 32], ["return", 3, 491, 32], "_nop_ur_15", - "if_else_354", - "if_end_355", + "if_else_316", + "if_end_317", ["access", 3, ">", 492, 20], - ["eq", 9, 4, 3, 492, 20], - ["jump_false", 9, "if_else_356", 492, 20], + ["eq", 10, 4, 3, 492, 20], + ["jump_false", 10, "if_else_318", 492, 20], ["gt", 3, 7, 8, 492, 47], - ["get", 9, 17, 1, 492, 32], - ["frame", 10, 9, 2, 492, 32], - ["setarg", 10, 1, 3, 492, 32], - ["setarg", 10, 2, 1, 492, 32], - ["tail_invoke", 10, 3, 492, 32], + ["get", 10, 17, 1, 492, 32], + ["frame", 12, 10, 2, 492, 32], + ["setarg", 12, 1, 3, 492, 32], + ["setarg", 12, 2, 1, 492, 32], + ["tail_invoke", 12, 3, 492, 32], ["return", 3, 492, 32], "_nop_ur_16", - "if_else_356", - "if_end_357", + "if_else_318", + "if_end_319", ["access", 3, "<=", 493, 20], - ["eq", 9, 4, 3, 493, 20], - ["jump_false", 9, "if_else_358", 493, 20], + ["eq", 10, 4, 3, 493, 20], + ["jump_false", 10, "if_else_320", 493, 20], ["le", 3, 7, 8, 493, 49], - ["get", 9, 17, 1, 493, 33], - ["frame", 10, 9, 2, 493, 33], - ["setarg", 10, 1, 3, 493, 33], - ["setarg", 10, 2, 1, 493, 33], - ["tail_invoke", 10, 3, 493, 33], + ["get", 10, 17, 1, 493, 33], + ["frame", 12, 10, 2, 493, 33], + ["setarg", 12, 1, 3, 493, 33], + ["setarg", 12, 2, 1, 493, 33], + ["tail_invoke", 12, 3, 493, 33], ["return", 3, 493, 33], "_nop_ur_17", - "if_else_358", - "if_end_359", + "if_else_320", + "if_end_321", ["access", 3, ">=", 494, 20], - ["eq", 9, 4, 3, 494, 20], - ["jump_false", 9, "if_else_360", 494, 20], + ["eq", 10, 4, 3, 494, 20], + ["jump_false", 10, "if_else_322", 494, 20], ["ge", 3, 7, 8, 494, 49], - ["get", 9, 17, 1, 494, 33], - ["frame", 10, 9, 2, 494, 33], - ["setarg", 10, 1, 3, 494, 33], - ["setarg", 10, 2, 1, 494, 33], - ["tail_invoke", 10, 3, 494, 33], + ["get", 10, 17, 1, 494, 33], + ["frame", 12, 10, 2, 494, 33], + ["setarg", 12, 1, 3, 494, 33], + ["setarg", 12, 2, 1, 494, 33], + ["tail_invoke", 12, 3, 494, 33], ["return", 3, 494, 33], "_nop_ur_18", - "if_else_360", - "if_end_361", - ["jump", "if_end_344", 494, 33], - "if_else_343", - "if_end_344", + "if_else_322", + "if_end_323", + ["jump", "if_end_306", 494, 33], + "if_else_305", + "if_end_306", ["load_field", 3, 5, "kind", 496, 13], - ["access", 9, "text", 496, 26], - ["eq", 10, 3, 9, 496, 26], - ["move", 3, 10, 496, 26], - ["jump_false", 10, "and_end_364", 496, 26], - ["load_field", 9, 6, "kind", 496, 36], - ["access", 10, "text", 496, 50], - ["eq", 12, 9, 10, 496, 50], - ["move", 3, 12, 496, 50], - "and_end_364", - ["jump_false", 3, "if_else_362", 496, 50], + ["access", 10, "text", 496, 26], + ["eq", 12, 3, 10, 496, 26], + ["move", 3, 12, 496, 26], + ["jump_false", 12, "and_end_326", 496, 26], + ["load_field", 10, 6, "kind", 496, 36], + ["access", 12, "text", 496, 50], + ["eq", 20, 10, 12, 496, 50], + ["move", 3, 20, 496, 50], + "and_end_326", + ["jump_false", 3, "if_else_324", 496, 50], ["access", 3, "==", 497, 20], - ["eq", 9, 4, 3, 497, 20], - ["jump_false", 9, "if_else_365", 497, 20], + ["eq", 10, 4, 3, 497, 20], + ["jump_false", 10, "if_else_327", 497, 20], ["load_field", 3, 5, "value", 497, 43], - ["load_field", 9, 6, "value", 497, 57], - ["eq", 10, 3, 9, 497, 57], + ["load_field", 10, 6, "value", 497, 57], + ["eq", 12, 3, 10, 497, 57], ["get", 3, 17, 1, 497, 33], - ["frame", 9, 3, 2, 497, 33], - ["setarg", 9, 1, 10, 497, 33], - ["setarg", 9, 2, 1, 497, 33], - ["tail_invoke", 9, 3, 497, 33], + ["frame", 10, 3, 2, 497, 33], + ["setarg", 10, 1, 12, 497, 33], + ["setarg", 10, 2, 1, 497, 33], + ["tail_invoke", 10, 3, 497, 33], ["return", 3, 497, 33], "_nop_ur_19", - "if_else_365", - "if_end_366", + "if_else_327", + "if_end_328", ["access", 3, "!=", 498, 20], - ["eq", 9, 4, 3, 498, 20], - ["jump_false", 9, "if_else_367", 498, 20], + ["eq", 10, 4, 3, 498, 20], + ["jump_false", 10, "if_else_329", 498, 20], ["load_field", 3, 5, "value", 498, 43], - ["load_field", 9, 6, "value", 498, 57], - ["ne", 10, 3, 9, 498, 57], + ["load_field", 10, 6, "value", 498, 57], + ["ne", 12, 3, 10, 498, 57], ["get", 3, 17, 1, 498, 33], - ["frame", 9, 3, 2, 498, 33], - ["setarg", 9, 1, 10, 498, 33], - ["setarg", 9, 2, 1, 498, 33], - ["tail_invoke", 9, 3, 498, 33], + ["frame", 10, 3, 2, 498, 33], + ["setarg", 10, 1, 12, 498, 33], + ["setarg", 10, 2, 1, 498, 33], + ["tail_invoke", 10, 3, 498, 33], ["return", 3, 498, 33], "_nop_ur_20", - "if_else_367", - "if_end_368", - ["jump", "if_end_363", 498, 33], - "if_else_362", - "if_end_363", - ["jump", "if_end_341", 498, 33], - "if_else_340", - "if_end_341", + "if_else_329", + "if_end_330", + ["jump", "if_end_325", 498, 33], + "if_else_324", + "if_end_325", + ["jump", "if_end_303", 498, 33], + "if_else_302", + "if_end_303", ["return", 1, 501, 14], "_nop_ur_21", - "if_else_338", - "if_end_339", + "if_else_300", + "if_end_301", ["access", 3, "&", 505, 14], - ["eq", 9, 4, 3, 505, 14], - ["move", 3, 9, 505, 14], - ["jump_true", 9, "or_end_374", 505, 14], - ["access", 9, "|", 505, 26], - ["eq", 10, 4, 9, 505, 26], - ["move", 3, 10, 505, 26], - "or_end_374", - ["move", 9, 3, 505, 26], - ["jump_true", 3, "or_end_373", 505, 26], + ["eq", 10, 4, 3, 505, 14], + ["move", 3, 10, 505, 14], + ["jump_true", 10, "or_end_336", 505, 14], + ["access", 10, "|", 505, 26], + ["eq", 12, 4, 10, 505, 26], + ["move", 3, 12, 505, 26], + "or_end_336", + ["move", 10, 3, 505, 26], + ["jump_true", 3, "or_end_335", 505, 26], ["access", 3, "^", 505, 38], - ["eq", 10, 4, 3, 505, 38], - ["move", 9, 10, 505, 38], - "or_end_373", - ["move", 3, 9, 505, 38], - ["jump_true", 9, "or_end_372", 505, 38], - ["access", 9, "<<", 505, 50], - ["eq", 10, 4, 9, 505, 50], - ["move", 3, 10, 505, 50], - "or_end_372", - ["move", 9, 3, 505, 50], - ["jump_true", 3, "or_end_371", 505, 50], + ["eq", 12, 4, 3, 505, 38], + ["move", 10, 12, 505, 38], + "or_end_335", + ["move", 3, 10, 505, 38], + ["jump_true", 10, "or_end_334", 505, 38], + ["access", 10, "<<", 505, 50], + ["eq", 12, 4, 10, 505, 50], + ["move", 3, 12, 505, 50], + "or_end_334", + ["move", 10, 3, 505, 50], + ["jump_true", 3, "or_end_333", 505, 50], ["access", 3, ">>", 505, 63], - ["eq", 10, 4, 3, 505, 63], - ["move", 9, 10, 505, 63], - "or_end_371", - ["jump_false", 9, "if_else_369", 505, 63], + ["eq", 12, 4, 3, 505, 63], + ["move", 10, 12, 505, 63], + "or_end_333", + ["jump_false", 10, "if_else_331", 505, 63], ["load_field", 3, 1, "left", 506, 14], ["move", 5, 3, 506, 14], - ["load_field", 9, 1, "right", 507, 15], - ["move", 6, 9, 507, 15], - ["null", 9, 508, 19], - ["ne", 10, 3, 9, 508, 19], - ["move", 3, 10, 508, 19], - ["jump_false", 10, "and_end_379", 508, 19], - ["null", 9, 508, 36], - ["ne", 10, 6, 9, 508, 36], - ["move", 3, 10, 508, 36], - "and_end_379", - ["move", 9, 3, 508, 36], - ["jump_false", 3, "and_end_378", 508, 36], + ["load_field", 10, 1, "right", 507, 15], + ["move", 6, 10, 507, 15], + ["null", 10, 508, 19], + ["ne", 12, 3, 10, 508, 19], + ["move", 3, 12, 508, 19], + ["jump_false", 12, "and_end_341", 508, 19], + ["null", 10, 508, 36], + ["ne", 12, 6, 10, 508, 36], + ["move", 3, 12, 508, 36], + "and_end_341", + ["move", 10, 3, 508, 36], + ["jump_false", 3, "and_end_340", 508, 36], ["load_field", 3, 5, "kind", 508, 44], - ["access", 10, "number", 508, 57], - ["eq", 12, 3, 10, 508, 57], - ["move", 9, 12, 508, 57], - "and_end_378", - ["move", 3, 9, 508, 57], - ["jump_false", 9, "and_end_377", 508, 57], - ["load_field", 9, 6, "kind", 508, 69], - ["access", 10, "number", 508, 83], - ["eq", 12, 9, 10, 508, 83], - ["move", 3, 12, 508, 83], - "and_end_377", - ["jump_false", 3, "if_else_375", 508, 83], + ["access", 12, "number", 508, 57], + ["eq", 20, 3, 12, 508, 57], + ["move", 10, 20, 508, 57], + "and_end_340", + ["move", 3, 10, 508, 57], + ["jump_false", 10, "and_end_339", 508, 57], + ["load_field", 10, 6, "kind", 508, 69], + ["access", 12, "number", 508, 83], + ["eq", 20, 10, 12, 508, 83], + ["move", 3, 20, 508, 83], + "and_end_339", + ["jump_false", 3, "if_else_337", 508, 83], ["load_field", 3, 5, "number", 509, 14], ["move", 7, 3, 509, 14], - ["load_field", 9, 6, "number", 510, 14], - ["move", 8, 9, 510, 14], - ["null", 9, 511, 19], - ["eq", 10, 3, 9, 511, 19], - ["jump_false", 10, "if_else_380", 511, 19], + ["load_field", 10, 6, "number", 510, 14], + ["move", 8, 10, 510, 14], + ["null", 10, 511, 19], + ["eq", 12, 3, 10, 511, 19], + ["jump_false", 12, "if_else_342", 511, 19], ["load_field", 3, 5, "value", 511, 37], [ "access", - 5, + 10, { "name": "number", "kind": "name", @@ -3063,20 +2632,20 @@ 511, 30 ], - ["frame", 9, 5, 1, 511, 30], - ["setarg", 9, 1, 3, 511, 30], - ["invoke", 9, 3, 511, 30], + ["frame", 12, 10, 1, 511, 30], + ["setarg", 12, 1, 3, 511, 30], + ["invoke", 12, 3, 511, 30], ["move", 7, 3, 511, 30], - ["jump", "if_end_381", 511, 30], - "if_else_380", - "if_end_381", + ["jump", "if_end_343", 511, 30], + "if_else_342", + "if_end_343", ["null", 3, 512, 19], - ["eq", 5, 8, 3, 512, 19], - ["jump_false", 5, "if_else_382", 512, 19], + ["eq", 10, 8, 3, 512, 19], + ["jump_false", 10, "if_else_344", 512, 19], ["load_field", 3, 6, "value", 512, 37], [ "access", - 5, + 10, { "name": "number", "kind": "name", @@ -3085,151 +2654,151 @@ 512, 30 ], - ["frame", 6, 5, 1, 512, 30], - ["setarg", 6, 1, 3, 512, 30], - ["invoke", 6, 3, 512, 30], + ["frame", 12, 10, 1, 512, 30], + ["setarg", 12, 1, 3, 512, 30], + ["invoke", 12, 3, 512, 30], ["move", 8, 3, 512, 30], - ["jump", "if_end_383", 512, 30], - "if_else_382", - "if_end_383", + ["jump", "if_end_345", 512, 30], + "if_else_344", + "if_end_345", ["access", 3, "&", 513, 18], - ["eq", 5, 4, 3, 513, 18], - ["jump_false", 5, "if_else_384", 513, 18], + ["eq", 10, 4, 3, 513, 18], + ["jump_false", 10, "if_else_346", 513, 18], ["bitand", 3, 7, 8, 513, 47], - ["get", 5, 15, 1, 513, 30], - ["frame", 6, 5, 2, 513, 30], - ["setarg", 6, 1, 3, 513, 30], - ["setarg", 6, 2, 1, 513, 30], - ["tail_invoke", 6, 3, 513, 30], + ["get", 10, 15, 1, 513, 30], + ["frame", 12, 10, 2, 513, 30], + ["setarg", 12, 1, 3, 513, 30], + ["setarg", 12, 2, 1, 513, 30], + ["tail_invoke", 12, 3, 513, 30], ["return", 3, 513, 30], "_nop_ur_22", - "if_else_384", - "if_end_385", + "if_else_346", + "if_end_347", ["access", 3, "|", 514, 18], - ["eq", 5, 4, 3, 514, 18], - ["jump_false", 5, "if_else_386", 514, 18], + ["eq", 10, 4, 3, 514, 18], + ["jump_false", 10, "if_else_348", 514, 18], ["bitor", 3, 7, 8, 514, 47], - ["get", 5, 15, 1, 514, 30], - ["frame", 6, 5, 2, 514, 30], - ["setarg", 6, 1, 3, 514, 30], - ["setarg", 6, 2, 1, 514, 30], - ["tail_invoke", 6, 3, 514, 30], + ["get", 10, 15, 1, 514, 30], + ["frame", 12, 10, 2, 514, 30], + ["setarg", 12, 1, 3, 514, 30], + ["setarg", 12, 2, 1, 514, 30], + ["tail_invoke", 12, 3, 514, 30], ["return", 3, 514, 30], "_nop_ur_23", - "if_else_386", - "if_end_387", + "if_else_348", + "if_end_349", ["access", 3, "^", 515, 18], - ["eq", 5, 4, 3, 515, 18], - ["jump_false", 5, "if_else_388", 515, 18], + ["eq", 10, 4, 3, 515, 18], + ["jump_false", 10, "if_else_350", 515, 18], ["bitxor", 3, 7, 8, 515, 47], - ["get", 5, 15, 1, 515, 30], - ["frame", 6, 5, 2, 515, 30], - ["setarg", 6, 1, 3, 515, 30], - ["setarg", 6, 2, 1, 515, 30], - ["tail_invoke", 6, 3, 515, 30], + ["get", 10, 15, 1, 515, 30], + ["frame", 12, 10, 2, 515, 30], + ["setarg", 12, 1, 3, 515, 30], + ["setarg", 12, 2, 1, 515, 30], + ["tail_invoke", 12, 3, 515, 30], ["return", 3, 515, 30], "_nop_ur_24", - "if_else_388", - "if_end_389", + "if_else_350", + "if_end_351", ["access", 3, "<<", 516, 18], - ["eq", 5, 4, 3, 516, 18], - ["jump_false", 5, "if_else_390", 516, 18], + ["eq", 10, 4, 3, 516, 18], + ["jump_false", 10, "if_else_352", 516, 18], ["shl", 3, 7, 8, 516, 49], - ["get", 5, 15, 1, 516, 31], - ["frame", 6, 5, 2, 516, 31], - ["setarg", 6, 1, 3, 516, 31], - ["setarg", 6, 2, 1, 516, 31], - ["tail_invoke", 6, 3, 516, 31], + ["get", 10, 15, 1, 516, 31], + ["frame", 12, 10, 2, 516, 31], + ["setarg", 12, 1, 3, 516, 31], + ["setarg", 12, 2, 1, 516, 31], + ["tail_invoke", 12, 3, 516, 31], ["return", 3, 516, 31], "_nop_ur_25", - "if_else_390", - "if_end_391", + "if_else_352", + "if_end_353", ["access", 3, ">>", 517, 18], - ["eq", 5, 4, 3, 517, 18], - ["jump_false", 5, "if_else_392", 517, 18], + ["eq", 10, 4, 3, 517, 18], + ["jump_false", 10, "if_else_354", 517, 18], ["shr", 3, 7, 8, 517, 49], - ["get", 5, 15, 1, 517, 31], - ["frame", 6, 5, 2, 517, 31], - ["setarg", 6, 1, 3, 517, 31], - ["setarg", 6, 2, 1, 517, 31], - ["tail_invoke", 6, 3, 517, 31], + ["get", 10, 15, 1, 517, 31], + ["frame", 12, 10, 2, 517, 31], + ["setarg", 12, 1, 3, 517, 31], + ["setarg", 12, 2, 1, 517, 31], + ["tail_invoke", 12, 3, 517, 31], ["return", 3, 517, 31], "_nop_ur_26", - "if_else_392", - "if_end_393", - ["jump", "if_end_376", 517, 31], - "if_else_375", - "if_end_376", + "if_else_354", + "if_end_355", + ["jump", "if_end_338", 517, 31], + "if_else_337", + "if_end_338", ["return", 1, 519, 14], "_nop_ur_27", - "if_else_369", - "if_end_370", + "if_else_331", + "if_end_332", ["access", 3, "!", 523, 14], - ["eq", 5, 4, 3, 523, 14], - ["jump_false", 5, "if_else_394", 523, 14], + ["eq", 10, 4, 3, 523, 14], + ["jump_false", 10, "if_else_356", 523, 14], ["load_field", 3, 1, "expression", 524, 11], - ["null", 5, 524, 30], - ["ne", 6, 3, 5, 524, 30], - ["jump_false", 6, "if_else_396", 524, 30], + ["null", 10, 524, 30], + ["ne", 12, 3, 10, 524, 30], + ["jump_false", 12, "if_else_358", 524, 30], ["load_field", 3, 1, "expression", 525, 14], - ["load_field", 5, 3, "kind", 525, 14], - ["move", 13, 5, 525, 14], + ["load_field", 10, 3, "kind", 525, 14], + ["move", 13, 10, 525, 14], ["access", 3, "true", 526, 19], - ["eq", 6, 5, 3, 526, 19], - ["jump_false", 6, "if_else_398", 526, 19], + ["eq", 12, 10, 3, 526, 19], + ["jump_false", 12, "if_else_360", 526, 19], ["false", 3, 526, 44], - ["get", 5, 17, 1, 526, 34], - ["frame", 6, 5, 2, 526, 34], - ["setarg", 6, 1, 3, 526, 34], - ["setarg", 6, 2, 1, 526, 34], - ["tail_invoke", 6, 3, 526, 34], + ["get", 10, 17, 1, 526, 34], + ["frame", 12, 10, 2, 526, 34], + ["setarg", 12, 1, 3, 526, 34], + ["setarg", 12, 2, 1, 526, 34], + ["tail_invoke", 12, 3, 526, 34], ["return", 3, 526, 34], "_nop_ur_28", - "if_else_398", - "if_end_399", + "if_else_360", + "if_end_361", ["access", 3, "false", 527, 19], - ["eq", 5, 13, 3, 527, 19], - ["jump_false", 5, "if_else_400", 527, 19], + ["eq", 10, 13, 3, 527, 19], + ["jump_false", 10, "if_else_362", 527, 19], ["true", 3, 527, 45], - ["get", 5, 17, 1, 527, 35], - ["frame", 6, 5, 2, 527, 35], - ["setarg", 6, 1, 3, 527, 35], - ["setarg", 6, 2, 1, 527, 35], - ["tail_invoke", 6, 3, 527, 35], + ["get", 10, 17, 1, 527, 35], + ["frame", 12, 10, 2, 527, 35], + ["setarg", 12, 1, 3, 527, 35], + ["setarg", 12, 2, 1, 527, 35], + ["tail_invoke", 12, 3, 527, 35], ["return", 3, 527, 35], "_nop_ur_29", - "if_else_400", - "if_end_401", - ["jump", "if_end_397", 527, 35], - "if_else_396", - "if_end_397", + "if_else_362", + "if_end_363", + ["jump", "if_end_359", 527, 35], + "if_else_358", + "if_end_359", ["return", 1, 529, 14], "_nop_ur_30", - "if_else_394", - "if_end_395", + "if_else_356", + "if_end_357", ["access", 3, "~", 531, 14], - ["eq", 5, 4, 3, 531, 14], - ["jump_false", 5, "if_else_402", 531, 14], + ["eq", 10, 4, 3, 531, 14], + ["jump_false", 10, "if_else_364", 531, 14], ["load_field", 3, 1, "expression", 532, 11], - ["null", 5, 532, 30], - ["ne", 6, 3, 5, 532, 30], - ["move", 3, 6, 532, 30], - ["jump_false", 6, "and_end_406", 532, 30], - ["load_field", 5, 1, "expression", 532, 38], - ["load_field", 6, 5, "kind", 532, 38], - ["access", 5, "number", 532, 62], - ["eq", 8, 6, 5, 532, 62], - ["move", 3, 8, 532, 62], - "and_end_406", - ["jump_false", 3, "if_else_404", 532, 62], + ["null", 10, 532, 30], + ["ne", 12, 3, 10, 532, 30], + ["move", 3, 12, 532, 30], + ["jump_false", 12, "and_end_368", 532, 30], + ["load_field", 10, 1, "expression", 532, 38], + ["load_field", 12, 10, "kind", 532, 38], + ["access", 10, "number", 532, 62], + ["eq", 20, 12, 10, 532, 62], + ["move", 3, 20, 532, 62], + "and_end_368", + ["jump_false", 3, "if_else_366", 532, 62], ["load_field", 3, 1, "expression", 533, 14], - ["load_field", 5, 3, "number", 533, 14], - ["move", 7, 5, 533, 14], + ["load_field", 10, 3, "number", 533, 14], + ["move", 7, 10, 533, 14], ["null", 3, 534, 19], - ["eq", 6, 5, 3, 534, 19], - ["jump_false", 6, "if_else_407", 534, 19], + ["eq", 12, 10, 3, 534, 19], + ["jump_false", 12, "if_else_369", 534, 19], ["load_field", 3, 1, "expression", 534, 37], - ["load_field", 5, 3, "value", 534, 37], + ["load_field", 10, 3, "value", 534, 37], [ "access", 3, @@ -3241,50 +2810,50 @@ 534, 30 ], - ["frame", 6, 3, 1, 534, 30], - ["setarg", 6, 1, 5, 534, 30], - ["invoke", 6, 3, 534, 30], + ["frame", 12, 3, 1, 534, 30], + ["setarg", 12, 1, 10, 534, 30], + ["invoke", 12, 3, 534, 30], ["move", 7, 3, 534, 30], - ["jump", "if_end_408", 534, 30], - "if_else_407", - "if_end_408", + ["jump", "if_end_370", 534, 30], + "if_else_369", + "if_end_370", ["bitnot", 3, 7, 535, 29], - ["get", 5, 15, 1, 535, 16], - ["frame", 6, 5, 2, 535, 16], - ["setarg", 6, 1, 3, 535, 16], - ["setarg", 6, 2, 1, 535, 16], - ["tail_invoke", 6, 3, 535, 16], + ["get", 10, 15, 1, 535, 16], + ["frame", 12, 10, 2, 535, 16], + ["setarg", 12, 1, 3, 535, 16], + ["setarg", 12, 2, 1, 535, 16], + ["tail_invoke", 12, 3, 535, 16], ["return", 3, 535, 16], "_nop_ur_31", - "if_else_404", - "if_end_405", + "if_else_366", + "if_end_367", ["return", 1, 537, 14], "_nop_ur_32", - "if_else_402", - "if_end_403", + "if_else_364", + "if_end_365", ["access", 3, "-unary", 539, 14], - ["eq", 5, 4, 3, 539, 14], - ["jump_false", 5, "if_else_409", 539, 14], + ["eq", 10, 4, 3, 539, 14], + ["jump_false", 10, "if_else_371", 539, 14], ["load_field", 3, 1, "expression", 540, 11], - ["null", 5, 540, 30], - ["ne", 6, 3, 5, 540, 30], - ["move", 3, 6, 540, 30], - ["jump_false", 6, "and_end_413", 540, 30], - ["load_field", 5, 1, "expression", 540, 38], - ["load_field", 6, 5, "kind", 540, 38], - ["access", 5, "number", 540, 62], - ["eq", 8, 6, 5, 540, 62], - ["move", 3, 8, 540, 62], - "and_end_413", - ["jump_false", 3, "if_else_411", 540, 62], + ["null", 10, 540, 30], + ["ne", 12, 3, 10, 540, 30], + ["move", 3, 12, 540, 30], + ["jump_false", 12, "and_end_375", 540, 30], + ["load_field", 10, 1, "expression", 540, 38], + ["load_field", 12, 10, "kind", 540, 38], + ["access", 10, "number", 540, 62], + ["eq", 20, 12, 10, 540, 62], + ["move", 3, 20, 540, 62], + "and_end_375", + ["jump_false", 3, "if_else_373", 540, 62], ["load_field", 3, 1, "expression", 541, 14], - ["load_field", 5, 3, "number", 541, 14], - ["move", 7, 5, 541, 14], + ["load_field", 10, 3, "number", 541, 14], + ["move", 7, 10, 541, 14], ["null", 3, 542, 19], - ["eq", 6, 5, 3, 542, 19], - ["jump_false", 6, "if_else_414", 542, 19], + ["eq", 12, 10, 3, 542, 19], + ["jump_false", 12, "if_else_376", 542, 19], ["load_field", 3, 1, "expression", 542, 37], - ["load_field", 5, 3, "value", 542, 37], + ["load_field", 10, 3, "value", 542, 37], [ "access", 3, @@ -3296,46 +2865,17 @@ 542, 30 ], - ["frame", 6, 3, 1, 542, 30], - ["setarg", 6, 1, 5, 542, 30], - ["invoke", 6, 3, 542, 30], + ["frame", 12, 3, 1, 542, 30], + ["setarg", 12, 1, 10, 542, 30], + ["invoke", 12, 3, 542, 30], ["move", 7, 3, 542, 30], - ["jump", "if_end_415", 542, 30], - "if_else_414", - "if_end_415", + ["jump", "if_end_377", 542, 30], + "if_else_376", + "if_end_377", ["access", 3, 0, 543, 28], - "_nop_tc_17", - "_nop_tc_18", - ["is_num", 5, 7, 543, 32], - ["jump_false", 5, "num_err_416", 543, 32], + ["is_num", 10, 7, 543, 32], + ["jump_false", 10, "num_err_277", 543, 32], ["subtract", 5, 3, 7, 543, 32], - ["jump", "num_done_417", 543, 32], - "num_err_416", - [ - "access", - 3, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 543, - 32 - ], - ["access", 6, "error", 543, 32], - ["access", 7, "cannot apply '-': operands must be numbers", 543, 32], - ["array", 8, 0, 543, 32], - ["stone_text", 7], - ["push", 8, 7, 543, 32], - ["frame", 7, 3, 2, 543, 32], - ["null", 3, 543, 32], - ["setarg", 7, 0, 3, 543, 32], - ["stone_text", 6], - ["setarg", 7, 1, 6, 543, 32], - ["setarg", 7, 2, 8, 543, 32], - ["invoke", 7, 3, 543, 32], - ["disrupt", 543, 32], - "num_done_417", ["get", 3, 15, 1, 543, 16], ["frame", 6, 3, 2, 543, 16], ["setarg", 6, 1, 5, 543, 16], @@ -3343,15 +2883,15 @@ ["tail_invoke", 6, 3, 543, 16], ["return", 3, 543, 16], "_nop_ur_33", - "if_else_411", - "if_end_412", + "if_else_373", + "if_end_374", ["return", 1, 545, 14], "_nop_ur_34", - "if_else_409", - "if_end_410", + "if_else_371", + "if_end_372", ["access", 3, "then", 549, 14], ["eq", 5, 4, 3, 549, 14], - ["jump_false", 5, "if_else_418", 549, 14], + ["jump_false", 5, "if_else_378", 549, 14], ["load_field", 3, 1, "expression", 550, 30], ["get", 5, 19, 1, 550, 12], ["frame", 6, 5, 1, 550, 12], @@ -3360,46 +2900,46 @@ ["move", 17, 3, 550, 12], ["true", 5, 551, 17], ["eq", 6, 3, 5, 551, 17], - ["jump_false", 6, "if_else_420", 551, 17], + ["jump_false", 6, "if_else_380", 551, 17], ["load_field", 3, 1, "then", 551, 30], ["return", 3, 551, 30], "_nop_ur_35", - "if_else_420", - "if_end_421", + "if_else_380", + "if_end_381", ["false", 3, 552, 17], ["eq", 5, 17, 3, 552, 17], - ["jump_false", 5, "if_else_422", 552, 17], + ["jump_false", 5, "if_else_382", 552, 17], ["load_field", 3, 1, "else", 552, 31], ["return", 3, 552, 31], "_nop_ur_36", - "if_else_422", - "if_end_423", + "if_else_382", + "if_end_383", ["return", 1, 553, 14], "_nop_ur_37", - "if_else_418", - "if_end_419", + "if_else_378", + "if_end_379", ["access", 3, "(", 557, 14], ["eq", 5, 4, 3, 557, 14], - ["jump_false", 5, "if_else_424", 557, 14], + ["jump_false", 5, "if_else_384", 557, 14], ["load_field", 3, 1, "expression", 558, 16], ["move", 14, 3, 558, 16], ["null", 4, 559, 21], ["ne", 5, 3, 4, 559, 21], ["move", 3, 5, 559, 21], - ["jump_false", 5, "and_end_429", 559, 21], + ["jump_false", 5, "and_end_389", 559, 21], ["load_field", 4, 14, "kind", 559, 29], ["access", 5, "name", 559, 44], ["eq", 6, 4, 5, 559, 44], ["move", 3, 6, 559, 44], - "and_end_429", + "and_end_389", ["move", 4, 3, 559, 44], - ["jump_false", 3, "and_end_428", 559, 44], + ["jump_false", 3, "and_end_388", 559, 44], ["load_field", 3, 14, "level", 559, 54], ["access", 5, 0, 559, 70], ["eq", 6, 3, 5, 559, 70], ["move", 4, 6, 559, 70], - "and_end_428", - ["jump_false", 4, "if_else_426", 559, 70], + "and_end_388", + ["jump_false", 4, "if_else_386", 559, 70], ["null", 15, 560, 14], [ "access", @@ -3420,43 +2960,43 @@ ["load_dynamic", 5, 4, 3, 562, 24], ["null", 3, 562, 33], ["ne", 4, 5, 3, 562, 33], - ["jump_false", 4, "if_else_430", 562, 33], + ["jump_false", 4, "if_else_390", 562, 33], ["get", 3, 23, 1, 562, 44], ["load_dynamic", 4, 3, 16, 562, 55], ["load_field", 3, 14, "name", 562, 61], ["load_dynamic", 5, 4, 3, 562, 61], ["move", 15, 5, 562, 61], - ["jump", "if_end_431", 562, 61], - "if_else_430", - "if_end_431", + ["jump", "if_end_391", 562, 61], + "if_else_390", + "if_end_391", ["null", 3, 563, 19], ["ne", 4, 15, 3, 563, 19], - ["jump_false", 4, "if_else_432", 563, 19], + ["jump_false", 4, "if_else_392", 563, 19], ["store_field", 1, 15, "arity", 563, 25], - ["jump", "if_end_433", 563, 25], - "if_else_432", - "if_end_433", - ["jump", "if_end_427", 563, 25], - "if_else_426", - "if_end_427", + ["jump", "if_end_393", 563, 25], + "if_else_392", + "if_end_393", + ["jump", "if_end_387", 563, 25], + "if_else_386", + "if_end_387", ["null", 3, 565, 21], ["ne", 4, 14, 3, 565, 21], ["move", 3, 4, 565, 21], - ["jump_false", 4, "and_end_437", 565, 21], + ["jump_false", 4, "and_end_397", 565, 21], ["load_field", 4, 14, "intrinsic", 565, 29], ["true", 5, 565, 49], ["eq", 6, 4, 5, 565, 49], ["move", 3, 6, 565, 49], - "and_end_437", + "and_end_397", ["move", 4, 3, 565, 49], - ["jump_false", 3, "and_end_436", 565, 49], + ["jump_false", 3, "and_end_396", 565, 49], ["load_field", 3, 1, "list", 565, 64], ["length", 5, 3, 565, 64], ["access", 3, 1, 565, 78], ["eq", 6, 5, 3, 565, 78], ["move", 4, 6, 565, 78], - "and_end_436", - ["jump_false", 4, "if_else_434", 565, 78], + "and_end_396", + ["jump_false", 4, "if_else_394", 565, 78], ["load_field", 3, 1, "list", 566, 15], ["access", 4, 0, 566, 25], ["load_index", 5, 3, 4, 566, 25], @@ -3465,22 +3005,22 @@ ["load_field", 3, 5, "type_tag", 568, 13], ["null", 4, 568, 29], ["ne", 5, 3, 4, 568, 29], - ["jump_false", 5, "if_else_438", 568, 29], + ["jump_false", 5, "if_else_398", 568, 29], ["load_field", 3, 19, "type_tag", 569, 17], ["move", 18, 3, 569, 17], - ["jump", "if_end_439", 569, 17], - "if_else_438", + ["jump", "if_end_399", 569, 17], + "if_else_398", ["load_field", 3, 19, "kind", 570, 20], ["access", 4, "name", 570, 32], ["eq", 5, 3, 4, 570, 32], ["move", 3, 5, 570, 32], - ["jump_false", 5, "and_end_442", 570, 32], + ["jump_false", 5, "and_end_402", 570, 32], ["load_field", 4, 19, "level", 570, 42], ["access", 5, 0, 570, 55], ["eq", 6, 4, 5, 570, 55], ["move", 3, 6, 570, 55], - "and_end_442", - ["jump_false", 3, "if_else_440", 570, 55], + "and_end_402", + ["jump_false", 3, "if_else_400", 570, 55], ["load_field", 3, 19, "name", 571, 33], ["get", 4, 21, 1, 571, 16], ["frame", 5, 4, 2, 571, 16], @@ -3490,23 +3030,23 @@ ["move", 11, 3, 571, 16], ["null", 4, 572, 21], ["ne", 5, 3, 4, 572, 21], - ["jump_false", 5, "if_else_443", 572, 21], + ["jump_false", 5, "if_else_403", 572, 21], ["load_field", 3, 11, "type_tag", 572, 33], ["move", 18, 3, 572, 33], - ["jump", "if_end_444", 572, 33], - "if_else_443", - "if_end_444", - ["jump", "if_end_441", 572, 33], - "if_else_440", - "if_end_441", - "if_end_439", + ["jump", "if_end_404", 572, 33], + "if_else_403", + "if_end_404", + ["jump", "if_end_401", 572, 33], + "if_else_400", + "if_end_401", + "if_end_399", ["null", 3, 574, 20], ["ne", 4, 18, 3, 574, 20], - ["jump_false", 4, "if_else_445", 574, 20], + ["jump_false", 4, "if_else_405", 574, 20], ["load_field", 3, 14, "name", 575, 15], ["access", 4, "is_array", 575, 30], ["eq", 5, 3, 4, 575, 30], - ["jump_false", 5, "if_else_447", 575, 30], + ["jump_false", 5, "if_else_407", 575, 30], ["access", 3, "array", 575, 66], ["eq", 4, 18, 3, 575, 66], ["get", 3, 17, 1, 575, 49], @@ -3516,12 +3056,12 @@ ["tail_invoke", 5, 3, 575, 49], ["return", 3, 575, 49], "_nop_ur_38", - "if_else_447", - "if_end_448", + "if_else_407", + "if_end_408", ["load_field", 3, 14, "name", 576, 15], ["access", 4, "is_text", 576, 30], ["eq", 5, 3, 4, 576, 30], - ["jump_false", 5, "if_else_449", 576, 30], + ["jump_false", 5, "if_else_409", 576, 30], ["access", 3, "text", 576, 65], ["eq", 4, 18, 3, 576, 65], ["get", 3, 17, 1, 576, 48], @@ -3531,20 +3071,20 @@ ["tail_invoke", 5, 3, 576, 48], ["return", 3, 576, 48], "_nop_ur_39", - "if_else_449", - "if_end_450", + "if_else_409", + "if_end_410", ["load_field", 3, 14, "name", 577, 15], ["access", 4, "is_number", 577, 30], ["eq", 5, 3, 4, 577, 30], - ["jump_false", 5, "if_else_451", 577, 30], + ["jump_false", 5, "if_else_411", 577, 30], ["access", 3, "number", 577, 67], ["eq", 4, 18, 3, 577, 67], ["move", 3, 4, 577, 67], - ["jump_true", 4, "or_end_453", 577, 67], + ["jump_true", 4, "or_end_413", 577, 67], ["access", 4, "integer", 577, 86], ["eq", 5, 18, 4, 577, 86], ["move", 3, 5, 577, 86], - "or_end_453", + "or_end_413", ["get", 4, 17, 1, 577, 50], ["frame", 5, 4, 2, 577, 50], ["setarg", 5, 1, 3, 577, 50], @@ -3552,12 +3092,12 @@ ["tail_invoke", 5, 3, 577, 50], ["return", 3, 577, 50], "_nop_ur_40", - "if_else_451", - "if_end_452", + "if_else_411", + "if_end_412", ["load_field", 3, 14, "name", 578, 15], ["access", 4, "is_integer", 578, 30], ["eq", 5, 3, 4, 578, 30], - ["jump_false", 5, "if_else_454", 578, 30], + ["jump_false", 5, "if_else_414", 578, 30], ["access", 3, "integer", 578, 68], ["eq", 4, 18, 3, 578, 68], ["get", 3, 17, 1, 578, 51], @@ -3567,12 +3107,12 @@ ["tail_invoke", 5, 3, 578, 51], ["return", 3, 578, 51], "_nop_ur_41", - "if_else_454", - "if_end_455", + "if_else_414", + "if_end_415", ["load_field", 3, 14, "name", 579, 15], ["access", 4, "is_function", 579, 30], ["eq", 5, 3, 4, 579, 30], - ["jump_false", 5, "if_else_456", 579, 30], + ["jump_false", 5, "if_else_416", 579, 30], ["access", 3, "function", 579, 69], ["eq", 4, 18, 3, 579, 69], ["get", 3, 17, 1, 579, 52], @@ -3582,12 +3122,12 @@ ["tail_invoke", 5, 3, 579, 52], ["return", 3, 579, 52], "_nop_ur_42", - "if_else_456", - "if_end_457", + "if_else_416", + "if_end_417", ["load_field", 3, 14, "name", 580, 15], ["access", 4, "is_logical", 580, 30], ["eq", 5, 3, 4, 580, 30], - ["jump_false", 5, "if_else_458", 580, 30], + ["jump_false", 5, "if_else_418", 580, 30], ["access", 3, "logical", 580, 68], ["eq", 4, 18, 3, 580, 68], ["get", 3, 17, 1, 580, 51], @@ -3597,12 +3137,12 @@ ["tail_invoke", 5, 3, 580, 51], ["return", 3, 580, 51], "_nop_ur_43", - "if_else_458", - "if_end_459", + "if_else_418", + "if_end_419", ["load_field", 3, 14, "name", 581, 15], ["access", 4, "is_null", 581, 30], ["eq", 5, 3, 4, 581, 30], - ["jump_false", 5, "if_else_460", 581, 30], + ["jump_false", 5, "if_else_420", 581, 30], ["access", 3, "null", 581, 65], ["eq", 4, 18, 3, 581, 65], ["get", 3, 17, 1, 581, 48], @@ -3612,12 +3152,12 @@ ["tail_invoke", 5, 3, 581, 48], ["return", 3, 581, 48], "_nop_ur_44", - "if_else_460", - "if_end_461", + "if_else_420", + "if_end_421", ["load_field", 3, 14, "name", 582, 15], ["access", 4, "is_object", 582, 30], ["eq", 5, 3, 4, 582, 30], - ["jump_false", 5, "if_else_462", 582, 30], + ["jump_false", 5, "if_else_422", 582, 30], ["access", 3, "record", 582, 67], ["eq", 4, 18, 3, 582, 67], ["get", 3, 17, 1, 582, 50], @@ -3627,46 +3167,46 @@ ["tail_invoke", 5, 3, 582, 50], ["return", 3, 582, 50], "_nop_ur_45", - "if_else_462", - "if_end_463", + "if_else_422", + "if_end_423", ["load_field", 3, 14, "name", 583, 15], ["access", 4, "length", 583, 30], ["eq", 5, 3, 4, 583, 30], - ["jump_false", 5, "if_else_464", 583, 30], + ["jump_false", 5, "if_else_424", 583, 30], ["access", 3, "array", 584, 24], ["eq", 4, 18, 3, 584, 24], - ["jump_false", 4, "if_else_466", 584, 24], + ["jump_false", 4, "if_else_426", 584, 24], ["access", 3, "array_length", 584, 45], ["store_field", 1, 3, "hint", 584, 33], - ["jump", "if_end_467", 584, 33], - "if_else_466", + ["jump", "if_end_427", 584, 33], + "if_else_426", ["access", 3, "text", 585, 29], ["eq", 4, 18, 3, 585, 29], - ["jump_false", 4, "if_else_468", 585, 29], + ["jump_false", 4, "if_else_428", 585, 29], ["access", 3, "text_length", 585, 49], ["store_field", 1, 3, "hint", 585, 37], - ["jump", "if_end_469", 585, 37], - "if_else_468", - "if_end_469", - "if_end_467", - ["jump", "if_end_465", 585, 37], - "if_else_464", - "if_end_465", - ["jump", "if_end_446", 585, 37], - "if_else_445", - "if_end_446", - ["jump", "if_end_435", 585, 37], - "if_else_434", - "if_end_435", - ["return", 1, 589, 14], - "_nop_ur_46", + ["jump", "if_end_429", 585, 37], + "if_else_428", + "if_end_429", + "if_end_427", + ["jump", "if_end_425", 585, 37], "if_else_424", "if_end_425", + ["jump", "if_end_406", 585, 37], + "if_else_405", + "if_end_406", + ["jump", "if_end_395", 585, 37], + "if_else_394", + "if_end_395", + ["return", 1, 589, 14], + "_nop_ur_46", + "if_else_384", + "if_end_385", ["return", 1, 592, 12], "_nop_ur_47", "_nop_ur_48" ], - "_write_types": [null, null, null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, null, "null", "bool", "null", null, null, null, "bool", "bool", null, null, null, null, null, null, null, null, "text", "bool", "bool", "text", "bool", null, null, null, null, "text", "bool", "bool", null, "null", "bool", null, null, null, null, null, null, "bool", "bool", null, null, null, null, "text", "bool", "bool", "text", "bool", "text", "bool", null, null, null, null, null, null, null, null, null, null, null, null, "text", "bool", null, null, null, null, null, "int", "bool", null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "text", "bool", "bool", "text", "bool", null, "int", "bool", null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "text", "bool", null, "int", "bool", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "text", "bool", null, null, null, null, null, "bool", "bool", null, null, null, null, "text", "bool", "bool", null, "int", "bool", null, null, null, null, "null", "bool", null, null, null, null, "null", "bool", "bool", null, "bool", "record", null, null, null, null, null, null, null, null, null, null, "null", "bool", "bool", null, "null", "bool", null, null, null, "bool", "bool", null, null, "null", "bool", "bool", "null", "bool", "bool", null, "text", "bool", "bool", null, "text", "bool", null, null, "null", "bool", null, null, null, null, "null", "bool", null, null, null, null, "text", "bool", "int", "bool", null, null, null, "text", "bool", "int", "bool", null, null, null, "text", "bool", null, "bool", "bool", null, "text", "text", "array", null, null, "null", "text", "bool", "bool", "bool", null, "text", "text", "array", null, null, "null", "text", "bool", "bool", "bool", null, "text", "text", "array", null, null, "null", "text", "bool", "bool", "bool", null, "text", "text", "array", null, null, "null", "text", "bool", "num", "bool", "bool", null, "text", "text", "array", null, null, "null", "null", "num", null, "num", "bool", "bool", null, "text", "text", "array", null, null, "null", "bool", null, null, "text", "text", "array", null, null, "null", "text", "bool", "bool", "bool", null, "text", "text", "array", null, null, "null", "null", "bool", null, null, null, null, null, null, "text", "bool", "bool", "null", "bool", "bool", "null", "bool", "bool", null, "text", "bool", "bool", null, "text", "bool", null, null, null, "bool", "bool", null, "text", "text", "array", null, null, "null", null, null, null, null, null, "bool", "bool", null, null, "null", "bool", "bool", "null", "bool", null, "text", "bool", "bool", null, "text", "bool", null, null, "null", "bool", null, null, null, null, "null", "bool", null, null, null, null, "text", "bool", "bool", null, null, null, "text", "bool", "bool", null, null, null, "text", "bool", "bool", null, null, null, "text", "bool", "bool", null, null, null, "text", "bool", "bool", null, null, null, "text", "bool", "bool", null, null, null, null, "text", "bool", "bool", null, "text", "bool", "text", "bool", null, null, "bool", null, null, null, "text", "bool", null, null, "bool", null, null, null, "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", null, null, "null", "bool", "bool", "null", "bool", "bool", null, "text", "bool", "bool", null, "text", "bool", null, null, "null", "bool", null, null, null, null, "null", "bool", null, null, null, null, "text", "bool", "int", null, null, null, "text", "bool", "int", null, null, null, "text", "bool", "int", null, null, null, "text", "bool", "int", null, null, null, "text", "bool", "int", null, null, null, "text", "bool", null, "null", "bool", null, null, "text", "bool", "bool", null, null, null, "text", "bool", "bool", null, null, null, "text", "bool", null, "null", "bool", "bool", null, null, "text", "bool", null, null, "null", "bool", null, null, null, null, null, "int", null, null, null, "text", "bool", null, "null", "bool", "bool", null, null, "text", "bool", null, null, "null", "bool", null, null, null, null, null, "int", "num", null, "bool", null, "text", "text", "array", null, null, "null", null, null, null, "text", "bool", null, null, null, null, "bool", "bool", null, "bool", "bool", null, "text", "bool", null, "null", "bool", "bool", null, "text", "bool", "bool", null, "int", "bool", null, null, null, null, null, "null", "bool", null, null, null, null, "null", "bool", "null", "bool", "bool", null, "bool", "bool", "bool", null, "int", "int", "bool", null, "int", null, null, "null", "bool", null, null, "text", "bool", "bool", null, "int", "bool", null, null, null, null, "null", "bool", null, "null", "bool", null, "text", "bool", "text", "bool", null, null, null, null, "text", "bool", "text", "bool", null, null, null, null, "text", "bool", "text", "bool", "bool", "text", "bool", null, null, null, null, "text", "bool", "text", "bool", null, null, null, null, "text", "bool", "text", "bool", null, null, null, null, "text", "bool", "text", "bool", null, null, null, null, "text", "bool", "text", "bool", null, null, null, null, "text", "bool", "text", "bool", null, null, null, null, "text", "bool", "text", "bool", "text", "text", "bool", "text", null], + "_write_types": [null, null, null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, null, "null", "bool", "null", null, null, null, "bool", "bool", null, null, null, null, null, null, null, null, "text", "bool", "bool", "text", "bool", null, null, null, null, "text", "bool", "bool", null, "null", "bool", null, null, null, null, null, null, "bool", "bool", null, null, null, null, "text", "bool", "bool", "text", "bool", "text", "bool", null, null, null, null, null, null, null, null, null, null, null, null, "text", "bool", null, null, null, null, null, "int", "bool", null, null, null, null, null, null, "int", "text", "bool", "bool", "text", "bool", null, "int", "bool", null, null, null, null, null, null, "int", "text", "bool", null, "int", "bool", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "int", "text", "bool", null, null, null, null, null, "bool", "bool", null, null, null, null, "text", "bool", "bool", null, "int", "bool", null, null, null, null, "null", "bool", null, null, null, null, "null", "bool", "bool", null, "bool", "record", null, null, null, null, null, null, null, null, null, null, "null", "bool", "bool", null, "null", "bool", null, null, null, "bool", "bool", null, null, "null", "bool", "bool", "null", "bool", "bool", null, "text", "bool", "bool", null, "text", "bool", null, null, "null", "bool", null, null, null, null, "null", "bool", null, null, null, null, "text", "bool", "int", "bool", null, null, null, "text", "bool", "int", "bool", null, null, null, "text", "bool", null, "bool", "bool", null, "text", "text", "array", null, null, "null", "text", "bool", "bool", null, "text", "text", "array", null, null, "null", "text", "bool", "text", "bool", "text", "bool", "num", "null", "num", null, "num", "bool", "text", "bool", "null", "bool", null, null, null, null, null, null, "text", "bool", "bool", "null", "bool", "bool", "null", "bool", "bool", null, "text", "bool", "bool", null, "text", "bool", null, null, null, "bool", "bool", null, "text", "text", "array", null, null, "null", null, null, null, null, null, "bool", "bool", null, null, "null", "bool", "bool", "null", "bool", null, "text", "bool", "bool", null, "text", "bool", null, null, "null", "bool", null, null, null, null, "null", "bool", null, null, null, null, "text", "bool", "bool", null, null, null, "text", "bool", "bool", null, null, null, "text", "bool", "bool", null, null, null, "text", "bool", "bool", null, null, null, "text", "bool", "bool", null, null, null, "text", "bool", "bool", null, null, null, null, "text", "bool", "bool", null, "text", "bool", "text", "bool", null, null, "bool", null, null, null, "text", "bool", null, null, "bool", null, null, null, "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", null, null, "null", "bool", "bool", "null", "bool", "bool", null, "text", "bool", "bool", null, "text", "bool", null, null, "null", "bool", null, null, null, null, "null", "bool", null, null, null, null, "text", "bool", "int", null, null, null, "text", "bool", "int", null, null, null, "text", "bool", "int", null, null, null, "text", "bool", "int", null, null, null, "text", "bool", "int", null, null, null, "text", "bool", null, "null", "bool", null, null, "text", "bool", "bool", null, null, null, "text", "bool", "bool", null, null, null, "text", "bool", null, "null", "bool", "bool", null, null, "text", "bool", null, null, "null", "bool", null, null, null, null, null, "int", null, null, null, "text", "bool", null, "null", "bool", "bool", null, null, "text", "bool", null, null, "null", "bool", null, null, null, null, null, "int", "num", "bool", null, null, null, "text", "bool", null, null, null, null, "bool", "bool", null, "bool", "bool", null, "text", "bool", null, "null", "bool", "bool", null, "text", "bool", "bool", null, "int", "bool", null, null, null, null, null, "null", "bool", null, null, null, null, "null", "bool", "null", "bool", "bool", null, "bool", "bool", "bool", null, "int", "int", "bool", null, "int", null, null, "null", "bool", null, null, "text", "bool", "bool", null, "int", "bool", null, null, null, null, "null", "bool", null, "null", "bool", null, "text", "bool", "text", "bool", null, null, null, null, "text", "bool", "text", "bool", null, null, null, null, "text", "bool", "text", "bool", "bool", "text", "bool", null, null, null, null, "text", "bool", "text", "bool", null, null, null, null, "text", "bool", "text", "bool", null, null, null, null, "text", "bool", "text", "bool", null, null, null, null, "text", "bool", "text", "bool", null, null, null, null, "text", "bool", "text", "bool", null, null, null, null, "text", "bool", "text", "bool", "text", "text", "bool", "text", null], "name": "", "filename": ".cell/packages/core/fold.cm", "nr_args": 2 @@ -3679,12 +3219,12 @@ "instructions": [ ["null", 3, 598, 17], ["eq", 4, 1, 3, 598, 17], - ["jump_false", 4, "if_else_470", 598, 17], + ["jump_false", 4, "if_else_430", 598, 17], ["null", 3, 598, 30], ["return", 3, 598, 30], "_nop_ur_1", - "if_else_470", - "if_end_471", + "if_else_430", + "if_end_431", ["load_field", 3, 1, "kind", 599, 13], ["move", 4, 3, 599, 13], ["access", 5, 0, 600, 13], @@ -3693,12 +3233,12 @@ ["access", 8, "var", 606, 14], ["eq", 9, 3, 8, 606, 14], ["move", 3, 9, 606, 14], - ["jump_true", 9, "or_end_474", 606, 14], + ["jump_true", 9, "or_end_434", 606, 14], ["access", 8, "def", 606, 28], ["eq", 9, 4, 8, 606, 28], ["move", 3, 9, 606, 28], - "or_end_474", - ["jump_false", 3, "if_else_472", 606, 28], + "or_end_434", + ["jump_false", 3, "if_else_432", 606, 28], ["load_field", 3, 1, "right", 607, 30], ["get", 8, 31, 1, 607, 20], ["frame", 9, 8, 2, 607, 20], @@ -3711,25 +3251,25 @@ ["frame", 9, 8, 1, 608, 11], ["setarg", 9, 1, 3, 608, 11], ["invoke", 9, 3, 608, 11], - ["jump_false", 3, "if_else_475", 608, 11], + ["wary_false", 3, "if_else_435", 608, 11], ["true", 3, 608, 44], ["store_field", 1, 3, "pure", 608, 32], - ["jump", "if_end_476", 608, 32], - "if_else_475", - "if_end_476", + ["jump", "if_end_436", 608, 32], + "if_else_435", + "if_end_436", ["return", 1, 609, 14], "_nop_ur_2", - "if_else_472", - "if_end_473", + "if_else_432", + "if_end_433", ["access", 3, "var_list", 611, 14], ["eq", 8, 4, 3, 611, 14], - ["jump_false", 8, "if_else_477", 611, 14], + ["jump_false", 8, "if_else_437", 611, 14], ["access", 5, 0, 612, 11], - "while_start_479", + "while_start_439", ["load_field", 3, 1, "list", 613, 25], ["length", 8, 3, 613, 25], ["lt", 3, 5, 8, 613, 25], - ["jump_false", 3, "while_end_480", 613, 25], + ["jump_false", 3, "while_end_440", 613, 25], ["load_field", 3, 1, "list", 614, 34], ["load_index", 8, 3, 5, 614, 44], ["get", 3, 32, 1, 614, 24], @@ -3740,35 +3280,16 @@ ["load_field", 8, 1, "list", 614, 9], ["store_index", 8, 3, 5, 614, 19], ["access", 3, 1, 615, 17], - "_nop_tc_1", - "_nop_tc_2", - "_nop_tc_3", - "_nop_tc_4", ["add", 5, 5, 3, 615, 17], - ["jump", "num_done_482", 615, 17], - "num_err_481", - "_nop_ucfg_1", - "_nop_ucfg_2", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "num_done_482", - ["jump", "while_start_479", 615, 17], - "while_end_480", + ["jump", "while_start_439", 615, 17], + "while_end_440", ["return", 1, 617, 14], "_nop_ur_3", - "if_else_477", - "if_end_478", + "if_else_437", + "if_end_438", ["access", 3, "call", 619, 14], ["eq", 5, 4, 3, 619, 14], - ["jump_false", 5, "if_else_483", 619, 14], + ["jump_false", 5, "if_else_441", 619, 14], ["load_field", 3, 1, "expression", 620, 35], ["get", 5, 31, 1, 620, 25], ["frame", 8, 5, 2, 620, 25], @@ -3778,11 +3299,11 @@ ["store_field", 1, 3, "expression", 620, 7], ["return", 1, 621, 14], "_nop_ur_4", - "if_else_483", - "if_end_484", + "if_else_441", + "if_end_442", ["access", 3, "if", 623, 14], ["eq", 5, 4, 3, 623, 14], - ["jump_false", 5, "if_else_485", 623, 14], + ["jump_false", 5, "if_else_443", 623, 14], ["load_field", 3, 1, "expression", 624, 35], ["get", 5, 31, 1, 624, 25], ["frame", 8, 5, 2, 624, 25], @@ -3798,7 +3319,7 @@ ["move", 7, 3, 625, 12], ["true", 5, 626, 17], ["eq", 8, 3, 5, 626, 17], - ["jump_false", 8, "if_else_487", 626, 17], + ["jump_false", 8, "if_else_445", 626, 17], ["load_field", 3, 1, "then", 627, 32], ["get", 5, 33, 1, 627, 21], ["frame", 8, 5, 2, 627, 21], @@ -3823,23 +3344,23 @@ ["store_field", 3, 5, "to_column", 630, 43], ["return", 3, 630, 43], "_nop_ur_5", - "if_else_487", - "if_end_488", + "if_else_445", + "if_end_446", ["false", 3, 632, 17], ["eq", 5, 7, 3, 632, 17], - ["jump_false", 5, "if_else_489", 632, 17], + ["jump_false", 5, "if_else_447", 632, 17], ["load_field", 3, 1, "else", 633, 13], ["null", 5, 633, 26], ["ne", 7, 3, 5, 633, 26], ["move", 3, 7, 633, 26], - ["jump_false", 7, "and_end_493", 633, 26], + ["jump_false", 7, "and_end_451", 633, 26], ["load_field", 5, 1, "else", 633, 41], ["length", 7, 5, 633, 41], ["access", 5, 0, 633, 54], ["gt", 8, 7, 5, 633, 54], ["move", 3, 8, 633, 54], - "and_end_493", - ["jump_false", 3, "if_else_491", 633, 54], + "and_end_451", + ["jump_false", 3, "if_else_449", 633, 54], ["load_field", 3, 1, "else", 634, 34], ["get", 5, 33, 1, 634, 23], ["frame", 7, 5, 2, 634, 23], @@ -3864,20 +3385,20 @@ ["store_field", 3, 5, "to_column", 637, 45], ["return", 3, 637, 45], "_nop_ur_6", - "if_else_491", - "if_end_492", + "if_else_449", + "if_end_450", ["load_field", 3, 1, "list", 639, 13], ["null", 5, 639, 26], ["ne", 7, 3, 5, 639, 26], ["move", 3, 7, 639, 26], - ["jump_false", 7, "and_end_496", 639, 26], + ["jump_false", 7, "and_end_454", 639, 26], ["load_field", 5, 1, "list", 639, 41], ["length", 7, 5, 639, 41], ["access", 5, 0, 639, 54], ["gt", 8, 7, 5, 639, 54], ["move", 3, 8, 639, 54], - "and_end_496", - ["jump_false", 3, "if_else_494", 639, 54], + "and_end_454", + ["jump_false", 3, "if_else_452", 639, 54], ["load_field", 3, 1, "list", 640, 28], ["access", 5, 0, 640, 38], ["load_index", 7, 3, 5, 640, 38], @@ -3888,13 +3409,13 @@ ["tail_invoke", 5, 3, 640, 18], ["return", 3, 640, 18], "_nop_ur_7", - "if_else_494", - "if_end_495", + "if_else_452", + "if_end_453", ["null", 3, 642, 16], ["return", 3, 642, 16], "_nop_ur_8", - "if_else_489", - "if_end_490", + "if_else_447", + "if_end_448", ["load_field", 3, 1, "then", 644, 30], ["get", 5, 33, 1, 644, 19], ["frame", 7, 5, 2, 644, 19], @@ -3912,7 +3433,7 @@ ["load_field", 3, 1, "else", 646, 11], ["null", 5, 646, 24], ["ne", 7, 3, 5, 646, 24], - ["jump_false", 7, "if_else_497", 646, 24], + ["jump_false", 7, "if_else_455", 646, 24], ["load_field", 3, 1, "else", 646, 53], ["get", 5, 33, 1, 646, 42], ["frame", 7, 5, 2, 646, 42], @@ -3920,16 +3441,16 @@ ["setarg", 7, 2, 2, 646, 42], ["invoke", 7, 3, 646, 42], ["store_field", 1, 3, "else", 646, 30], - ["jump", "if_end_498", 646, 30], - "if_else_497", - "if_end_498", + ["jump", "if_end_456", 646, 30], + "if_else_455", + "if_end_456", ["return", 1, 647, 14], "_nop_ur_9", - "if_else_485", - "if_end_486", + "if_else_443", + "if_end_444", ["access", 3, "while", 649, 14], ["eq", 5, 4, 3, 649, 14], - ["jump_false", 5, "if_else_499", 649, 14], + ["jump_false", 5, "if_else_457", 649, 14], ["load_field", 3, 1, "expression", 650, 35], ["get", 5, 31, 1, 650, 25], ["frame", 7, 5, 2, 650, 25], @@ -3942,19 +3463,19 @@ ["access", 3, "false", 651, 35], ["eq", 7, 5, 3, 651, 35], ["move", 3, 7, 651, 35], - ["jump_true", 7, "or_end_503", 651, 35], + ["jump_true", 7, "or_end_461", 651, 35], ["load_field", 5, 1, "expression", 651, 46], ["load_field", 7, 5, "kind", 651, 46], ["access", 5, "null", 651, 70], ["eq", 8, 7, 5, 651, 70], ["move", 3, 8, 651, 70], - "or_end_503", - ["jump_false", 3, "if_else_501", 651, 70], + "or_end_461", + ["jump_false", 3, "if_else_459", 651, 70], ["null", 3, 651, 85], ["return", 3, 651, 85], "_nop_ur_10", - "if_else_501", - "if_end_502", + "if_else_459", + "if_end_460", ["load_field", 3, 1, "statements", 652, 36], ["get", 5, 33, 1, 652, 25], ["frame", 7, 5, 2, 652, 25], @@ -3964,11 +3485,11 @@ ["store_field", 1, 3, "statements", 652, 7], ["return", 1, 653, 14], "_nop_ur_11", - "if_else_499", - "if_end_500", + "if_else_457", + "if_end_458", ["access", 3, "do", 655, 14], ["eq", 5, 4, 3, 655, 14], - ["jump_false", 5, "if_else_504", 655, 14], + ["jump_false", 5, "if_else_462", 655, 14], ["load_field", 3, 1, "statements", 656, 36], ["get", 5, 33, 1, 656, 25], ["frame", 7, 5, 2, 656, 25], @@ -3985,27 +3506,27 @@ ["store_field", 1, 3, "expression", 657, 7], ["return", 1, 658, 14], "_nop_ur_12", - "if_else_504", - "if_end_505", + "if_else_462", + "if_end_463", ["access", 3, "for", 660, 14], ["eq", 5, 4, 3, 660, 14], - ["jump_false", 5, "if_else_506", 660, 14], + ["jump_false", 5, "if_else_464", 660, 14], ["load_field", 3, 1, "init", 661, 11], ["null", 5, 661, 24], ["ne", 7, 3, 5, 661, 24], - ["jump_false", 7, "if_else_508", 661, 24], + ["jump_false", 7, "if_else_466", 661, 24], ["load_field", 3, 1, "init", 662, 14], ["load_field", 5, 3, "kind", 662, 14], ["move", 6, 5, 662, 14], ["access", 3, "var", 663, 19], ["eq", 7, 5, 3, 663, 19], ["move", 3, 7, 663, 19], - ["jump_true", 7, "or_end_512", 663, 19], + ["jump_true", 7, "or_end_470", 663, 19], ["access", 5, "def", 663, 34], ["eq", 7, 6, 5, 663, 34], ["move", 3, 7, 663, 34], - "or_end_512", - ["jump_false", 3, "if_else_510", 663, 34], + "or_end_470", + ["jump_false", 3, "if_else_468", 663, 34], ["load_field", 3, 1, "init", 664, 33], ["get", 5, 32, 1, 664, 23], ["frame", 6, 5, 2, 664, 23], @@ -4013,8 +3534,8 @@ ["setarg", 6, 2, 2, 664, 23], ["invoke", 6, 3, 664, 23], ["store_field", 1, 3, "init", 664, 11], - ["jump", "if_end_511", 664, 11], - "if_else_510", + ["jump", "if_end_469", 664, 11], + "if_else_468", ["load_field", 3, 1, "init", 666, 33], ["get", 5, 31, 1, 666, 23], ["frame", 6, 5, 2, 666, 23], @@ -4022,14 +3543,14 @@ ["setarg", 6, 2, 2, 666, 23], ["invoke", 6, 3, 666, 23], ["store_field", 1, 3, "init", 666, 11], - "if_end_511", - ["jump", "if_end_509", 666, 11], - "if_else_508", - "if_end_509", + "if_end_469", + ["jump", "if_end_467", 666, 11], + "if_else_466", + "if_end_467", ["load_field", 3, 1, "test", 669, 11], ["null", 5, 669, 24], ["ne", 6, 3, 5, 669, 24], - ["jump_false", 6, "if_else_513", 669, 24], + ["jump_false", 6, "if_else_471", 669, 24], ["load_field", 3, 1, "test", 669, 52], ["get", 5, 31, 1, 669, 42], ["frame", 6, 5, 2, 669, 42], @@ -4037,13 +3558,13 @@ ["setarg", 6, 2, 2, 669, 42], ["invoke", 6, 3, 669, 42], ["store_field", 1, 3, "test", 669, 30], - ["jump", "if_end_514", 669, 30], - "if_else_513", - "if_end_514", + ["jump", "if_end_472", 669, 30], + "if_else_471", + "if_end_472", ["load_field", 3, 1, "update", 670, 11], ["null", 5, 670, 26], ["ne", 6, 3, 5, 670, 26], - ["jump_false", 6, "if_else_515", 670, 26], + ["jump_false", 6, "if_else_473", 670, 26], ["load_field", 3, 1, "update", 670, 56], ["get", 5, 31, 1, 670, 46], ["frame", 6, 5, 2, 670, 46], @@ -4051,9 +3572,9 @@ ["setarg", 6, 2, 2, 670, 46], ["invoke", 6, 3, 670, 46], ["store_field", 1, 3, "update", 670, 32], - ["jump", "if_end_516", 670, 32], - "if_else_515", - "if_end_516", + ["jump", "if_end_474", 670, 32], + "if_else_473", + "if_end_474", ["load_field", 3, 1, "statements", 671, 36], ["get", 5, 33, 1, 671, 25], ["frame", 6, 5, 2, 671, 25], @@ -4063,17 +3584,17 @@ ["store_field", 1, 3, "statements", 671, 7], ["return", 1, 672, 14], "_nop_ur_13", - "if_else_506", - "if_end_507", + "if_else_464", + "if_end_465", ["access", 3, "return", 674, 14], ["eq", 5, 4, 3, 674, 14], ["move", 3, 5, 674, 14], - ["jump_true", 5, "or_end_519", 674, 14], + ["jump_true", 5, "or_end_477", 674, 14], ["access", 5, "go", 674, 31], ["eq", 6, 4, 5, 674, 31], ["move", 3, 6, 674, 31], - "or_end_519", - ["jump_false", 3, "if_else_517", 674, 31], + "or_end_477", + ["jump_false", 3, "if_else_475", 674, 31], ["load_field", 3, 1, "expression", 675, 35], ["get", 5, 31, 1, 675, 25], ["frame", 6, 5, 2, 675, 25], @@ -4083,11 +3604,11 @@ ["store_field", 1, 3, "expression", 675, 7], ["return", 1, 676, 14], "_nop_ur_14", - "if_else_517", - "if_end_518", + "if_else_475", + "if_end_476", ["access", 3, "block", 678, 14], ["eq", 5, 4, 3, 678, 14], - ["jump_false", 5, "if_else_520", 678, 14], + ["jump_false", 5, "if_else_478", 678, 14], ["load_field", 3, 1, "statements", 679, 36], ["get", 5, 33, 1, 679, 25], ["frame", 6, 5, 2, 679, 25], @@ -4097,11 +3618,11 @@ ["store_field", 1, 3, "statements", 679, 7], ["return", 1, 680, 14], "_nop_ur_15", - "if_else_520", - "if_end_521", + "if_else_478", + "if_end_479", ["access", 3, "label", 682, 14], ["eq", 5, 4, 3, 682, 14], - ["jump_false", 5, "if_else_522", 682, 14], + ["jump_false", 5, "if_else_480", 682, 14], ["load_field", 3, 1, "statement", 683, 34], ["get", 5, 32, 1, 683, 24], ["frame", 6, 5, 2, 683, 24], @@ -4111,24 +3632,24 @@ ["store_field", 1, 3, "statement", 683, 7], ["return", 1, 684, 14], "_nop_ur_16", - "if_else_522", - "if_end_523", + "if_else_480", + "if_end_481", ["access", 3, "function", 686, 14], ["eq", 5, 4, 3, 686, 14], - ["jump_false", 5, "if_else_524", 686, 14], + ["jump_false", 5, "if_else_482", 686, 14], ["get", 3, 34, 1, 687, 7], ["frame", 4, 3, 1, 687, 7], ["setarg", 4, 1, 1, 687, 7], ["invoke", 4, 3, 687, 7], ["return", 1, 688, 14], "_nop_ur_17", - "if_else_524", - "if_end_525", + "if_else_482", + "if_end_483", ["return", 1, 690, 12], "_nop_ur_18", "_nop_ur_19" ], - "_write_types": [null, null, null, "int", null, null, null, "null", "bool", "null", null, "text", "bool", "bool", "text", "bool", null, null, null, null, null, null, null, null, "bool", "text", "bool", null, "int", "bool", null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "text", "bool", null, null, null, null, "text", "bool", null, null, null, null, null, null, null, null, "bool", "bool", null, null, null, null, "record", "text", null, null, null, null, null, null, "bool", "bool", null, "null", "bool", "bool", null, "int", "int", "bool", null, null, null, null, "record", "text", null, null, null, null, null, null, null, "null", "bool", "bool", null, "int", "int", "bool", null, "int", null, null, null, null, "null", null, null, null, null, null, null, null, null, null, "null", "bool", null, null, null, null, "text", "bool", null, null, null, null, null, null, "text", "bool", "bool", null, null, "text", "bool", "null", null, null, null, null, "text", "bool", null, null, null, null, null, null, null, null, "text", "bool", null, "null", "bool", null, null, "text", "bool", "bool", "text", "bool", null, null, null, null, null, null, null, null, null, "null", "bool", null, null, null, null, null, "null", "bool", null, null, null, null, null, null, null, null, "text", "bool", "bool", "text", "bool", null, null, null, null, "text", "bool", null, null, null, null, "text", "bool", null, null, null, null, "text", "bool", null, null, null, null], + "_write_types": [null, null, null, "int", null, null, null, "null", "bool", "null", null, "text", "bool", "bool", "text", "bool", null, null, null, null, null, null, null, null, "bool", "text", "bool", null, "int", "bool", null, null, null, null, null, null, "int", "text", "bool", null, null, null, null, "text", "bool", null, null, null, null, null, null, null, null, "bool", "bool", null, null, null, null, "record", "text", null, null, null, null, null, null, "bool", "bool", null, "null", "bool", "bool", null, "int", "int", "bool", null, null, null, null, "record", "text", null, null, null, null, null, null, null, "null", "bool", "bool", null, "int", "int", "bool", null, "int", null, null, null, null, "null", null, null, null, null, null, null, null, null, null, "null", "bool", null, null, null, null, "text", "bool", null, null, null, null, null, null, "text", "bool", "bool", null, null, "text", "bool", "null", null, null, null, null, "text", "bool", null, null, null, null, null, null, null, null, "text", "bool", null, "null", "bool", null, null, "text", "bool", "bool", "text", "bool", null, null, null, null, null, null, null, null, null, "null", "bool", null, null, null, null, null, "null", "bool", null, null, null, null, null, null, null, null, "text", "bool", "bool", "text", "bool", null, null, null, null, "text", "bool", null, null, null, null, "text", "bool", null, null, null, null, "text", "bool", null, null, null, null], "name": "", "filename": ".cell/packages/core/fold.cm", "nr_args": 2 @@ -4136,7 +3657,7 @@ { "_closure_slot_types": {}, "disruption_pc": 0, - "nr_slots": 15, + "nr_slots": 17, "nr_close_slots": 0, "instructions": [ ["access", 3, 0, 694, 13], @@ -4145,10 +3666,10 @@ ["move", 6, 5, 696, 15], ["null", 5, 697, 14], ["null", 7, 698, 16], - "while_start_526", + "while_start_484", ["length", 8, 1, 699, 23], ["lt", 9, 3, 8, 699, 23], - ["jump_false", 9, "while_end_527", 699, 23], + ["jump_false", 9, "while_end_485", 699, 23], ["load_index", 8, 1, 3, 700, 30], ["get", 9, 32, 1, 700, 14], ["frame", 10, 9, 2, 700, 14], @@ -4158,49 +3679,30 @@ ["move", 4, 8, 700, 14], ["null", 9, 701, 19], ["eq", 10, 8, 9, 701, 19], - ["jump_false", 10, "if_else_528", 701, 19], + ["jump_false", 10, "if_else_486", 701, 19], ["access", 8, 1, 702, 17], - "_nop_tc_1", - "_nop_tc_2", - "_nop_tc_3", - "_nop_tc_4", ["add", 3, 3, 8, 702, 17], - ["jump", "num_done_531", 702, 17], - "num_err_530", + ["jump", "while_start_484", 703, 9], "_nop_ucfg_1", - "_nop_ucfg_2", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "num_done_531", - ["jump", "while_start_526", 703, 9], - "_nop_ucfg_13", - "if_else_528", - "if_end_529", + "if_else_486", + "if_end_487", ["load_field", 8, 4, "kind", 706, 11], ["access", 9, "var", 706, 24], ["eq", 10, 8, 9, 706, 24], ["move", 8, 10, 706, 24], - ["jump_true", 10, "or_end_534", 706, 24], + ["jump_true", 10, "or_end_490", 706, 24], ["load_field", 9, 4, "kind", 706, 33], ["access", 10, "def", 706, 46], ["eq", 11, 9, 10, 706, 46], ["move", 8, 11, 706, 46], - "or_end_534", - ["jump_false", 8, "if_else_532", 706, 46], + "or_end_490", + ["jump_false", 8, "if_else_488", 706, 46], ["load_field", 8, 4, "left", 707, 16], ["load_field", 9, 8, "name", 707, 16], ["move", 7, 9, 707, 16], ["null", 8, 708, 21], ["ne", 10, 9, 8, 708, 21], - ["jump_false", 10, "if_else_535", 708, 21], + ["jump_false", 10, "if_else_491", 708, 21], ["get", 8, 21, 1, 709, 16], ["frame", 9, 8, 2, 709, 16], ["setarg", 9, 1, 2, 709, 16], @@ -4210,53 +3712,53 @@ ["null", 9, 710, 21], ["ne", 10, 8, 9, 710, 21], ["move", 8, 10, 710, 21], - ["jump_false", 10, "and_end_539", 710, 21], + ["jump_false", 10, "and_end_495", 710, 21], ["load_field", 9, 5, "nr_uses", 710, 29], ["access", 10, 0, 710, 43], ["eq", 11, 9, 10, 710, 43], ["move", 8, 11, 710, 43], - "and_end_539", - ["jump_false", 8, "if_else_537", 710, 43], + "and_end_495", + ["jump_false", 8, "if_else_493", 710, 43], ["load_field", 8, 4, "right", 711, 25], ["get", 9, 13, 1, 711, 17], ["frame", 10, 9, 1, 711, 17], ["setarg", 10, 1, 8, 711, 17], ["invoke", 10, 8, 711, 17], - ["jump_false", 8, "if_else_540", 711, 17], + ["wary_false", 8, "if_else_496", 711, 17], ["true", 8, 711, 50], ["store_field", 4, 8, "dead", 711, 38], - ["jump", "if_end_541", 711, 38], - "if_else_540", - "if_end_541", + ["jump", "if_end_497", 711, 38], + "if_else_496", + "if_end_497", ["load_field", 8, 4, "right", 712, 17], ["null", 9, 712, 31], ["ne", 10, 8, 9, 712, 31], ["move", 8, 10, 712, 31], - ["jump_false", 10, "and_end_546", 712, 31], + ["jump_false", 10, "and_end_502", 712, 31], ["load_field", 9, 4, "right", 712, 39], ["load_field", 10, 9, "kind", 712, 39], ["access", 9, "(", 712, 58], ["eq", 11, 10, 9, 712, 58], ["move", 8, 11, 712, 58], - "and_end_546", + "and_end_502", ["move", 9, 8, 712, 58], - ["jump_false", 8, "and_end_545", 712, 58], + ["jump_false", 8, "and_end_501", 712, 58], ["load_field", 8, 4, "right", 712, 65], ["load_field", 10, 8, "expression", 712, 65], ["null", 8, 712, 90], ["ne", 11, 10, 8, 712, 90], ["move", 9, 11, 712, 90], - "and_end_545", + "and_end_501", ["move", 8, 9, 712, 90], - ["jump_false", 9, "and_end_544", 712, 90], + ["jump_false", 9, "and_end_500", 712, 90], ["load_field", 9, 4, "right", 712, 98], ["load_field", 10, 9, "expression", 712, 98], ["load_field", 9, 10, "name", 712, 98], ["access", 10, "use", 712, 128], ["eq", 11, 9, 10, 712, 128], ["move", 8, 11, 712, 128], - "and_end_544", - ["jump_false", 8, "if_else_542", 712, 128], + "and_end_500", + ["jump_false", 8, "if_else_498", 712, 128], ["get", 8, 1, 1, 713, 20], ["load_field", 9, 8, "_diagnostics", 713, 20], ["record", 8, 4], @@ -4266,12 +3768,10 @@ ["load_field", 11, 10, "from_row", 715, 23], ["access", 10, 1, 715, 44], ["is_num", 12, 11, 715, 44], - ["jump_false", 12, "num_err_547", 715, 44], - "_nop_tc_5", - "_nop_tc_6", + ["jump_false", 12, "num_err_503", 715, 44], ["add", 12, 11, 10, 715, 44], - ["jump", "num_done_548", 715, 44], - "num_err_547", + ["jump", "num_done_504", 715, 44], + "num_err_503", [ "access", 10, @@ -4284,7 +3784,7 @@ 44 ], ["access", 11, "error", 715, 44], - ["access", 13, "cannot apply '+': operands must be numbers", 715, 44], + ["access", 13, "operands must be numbers", 715, 44], ["array", 14, 0, 715, 44], ["stone_text", 13], ["push", 14, 13, 715, 44], @@ -4296,44 +3796,15 @@ ["setarg", 13, 2, 14, 715, 44], ["invoke", 13, 10, 715, 44], ["disrupt", 715, 44], - "num_done_548", + "num_done_504", ["store_field", 8, 12, "line", 715, 44], ["load_field", 10, 4, "left", 716, 22], ["load_field", 11, 10, "from_column", 716, 22], ["access", 10, 1, 716, 46], - ["is_num", 12, 11, 716, 46], - ["jump_false", 12, "num_err_549", 716, 46], - "_nop_tc_7", - "_nop_tc_8", - ["add", 12, 11, 10, 716, 46], - ["jump", "num_done_550", 716, 46], - "num_err_549", - [ - "access", - 10, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 716, - 46 - ], - ["access", 11, "error", 716, 46], - ["access", 13, "cannot apply '+': operands must be numbers", 716, 46], - ["array", 14, 0, 716, 46], - ["stone_text", 13], - ["push", 14, 13, 716, 46], - ["frame", 13, 10, 2, 716, 46], - ["null", 10, 716, 46], - ["setarg", 13, 0, 10, 716, 46], - ["stone_text", 11], - ["setarg", 13, 1, 11, 716, 46], - ["setarg", 13, 2, 14, 716, 46], - ["invoke", 13, 10, 716, 46], - ["disrupt", 716, 46], - "num_done_550", - ["store_field", 8, 12, "col", 716, 46], + ["is_num", 13, 11, 716, 46], + ["jump_false", 13, "num_err_503", 716, 46], + ["add", 13, 11, 10, 716, 46], + ["store_field", 8, 13, "col", 716, 46], ["array", 10, 0, 1, 1], ["push", 10, 7, 1, 1], [ @@ -4347,21 +3818,21 @@ 1, 1 ], - ["access", 12, "unused import '{0}'", 1, 1], - ["frame", 13, 11, 2, 1, 1], - ["stone_text", 12], - ["setarg", 13, 1, 12, 1, 1], - ["setarg", 13, 2, 10, 1, 1], - ["invoke", 13, 10, 1, 1], + ["access", 13, "unused import '{0}'", 1, 1], + ["frame", 14, 11, 2, 1, 1], + ["stone_text", 13], + ["setarg", 14, 1, 13, 1, 1], + ["setarg", 14, 2, 10, 1, 1], + ["invoke", 14, 10, 1, 1], ["store_field", 8, 10, "message", 1, 1], ["is_array", 10, 9, 1, 1], - ["jump_false", 10, "push_err_551", 1, 1], + ["jump_false", 10, "push_err_505", 1, 1], ["push", 9, 8, 1, 1], - ["jump", "push_done_552", 1, 1], - "push_err_551", + ["jump", "push_done_506", 1, 1], + "push_err_505", [ "access", - 8, + 10, { "name": "log", "kind": "name", @@ -4370,108 +3841,50 @@ 1, 1 ], - ["access", 9, "error", 1, 1], - ["access", 10, "cannot push: target must be an array", 1, 1], - ["array", 11, 0, 1, 1], - ["stone_text", 10], - ["push", 11, 10, 1, 1], - ["frame", 10, 8, 2, 1, 1], - ["null", 8, 1, 1], - ["setarg", 10, 0, 8, 1, 1], - ["stone_text", 9], - ["setarg", 10, 1, 9, 1, 1], - ["setarg", 10, 2, 11, 1, 1], - ["invoke", 10, 8, 1, 1], + ["access", 11, "error", 1, 1], + ["access", 13, "cannot push: target must be an array", 1, 1], + ["array", 14, 0, 1, 1], + ["stone_text", 13], + ["push", 14, 13, 1, 1], + ["frame", 13, 10, 2, 1, 1], + ["null", 10, 1, 1], + ["setarg", 13, 0, 10, 1, 1], + ["stone_text", 11], + ["setarg", 13, 1, 11, 1, 1], + ["setarg", 13, 2, 14, 1, 1], + ["invoke", 13, 10, 1, 1], ["disrupt", 1, 1], - "push_done_552", - ["jump", "if_end_543", 1, 1], - "if_else_542", - ["load_field", 8, 4, "kind", 719, 24], - ["access", 9, "def", 719, 37], - ["eq", 10, 8, 9, 719, 37], - ["jump_false", 10, "if_else_553", 719, 37], - ["get", 8, 1, 1, 720, 20], - ["load_field", 9, 8, "_diagnostics", 720, 20], - ["record", 8, 4], - ["access", 10, "warning", 721, 27], - ["store_field", 8, 10, "severity", 721, 27], - ["load_field", 10, 4, "left", 722, 23], - ["load_field", 11, 10, "from_row", 722, 23], - ["access", 10, 1, 722, 44], - ["is_num", 12, 11, 722, 44], - ["jump_false", 12, "num_err_555", 722, 44], - "_nop_tc_9", - "_nop_tc_10", - ["add", 12, 11, 10, 722, 44], - ["jump", "num_done_556", 722, 44], - "num_err_555", + "push_done_506", + ["jump", "if_end_499", 1, 1], + "if_else_498", + ["load_field", 10, 4, "kind", 719, 24], + ["access", 11, "def", 719, 37], + ["eq", 13, 10, 11, 719, 37], + ["jump_false", 13, "if_else_507", 719, 37], + ["get", 10, 1, 1, 720, 20], + ["load_field", 11, 10, "_diagnostics", 720, 20], + ["record", 10, 4], + ["access", 13, "warning", 721, 27], + ["store_field", 10, 13, "severity", 721, 27], + ["load_field", 13, 4, "left", 722, 23], + ["load_field", 14, 13, "from_row", 722, 23], + ["access", 13, 1, 722, 44], + ["is_num", 15, 14, 722, 44], + ["jump_false", 15, "num_err_503", 722, 44], + ["add", 15, 14, 13, 722, 44], + ["store_field", 10, 15, "line", 722, 44], + ["load_field", 13, 4, "left", 723, 22], + ["load_field", 14, 13, "from_column", 723, 22], + ["access", 13, 1, 723, 46], + ["is_num", 15, 14, 723, 46], + ["jump_false", 15, "num_err_503", 723, 46], + ["add", 15, 14, 13, 723, 46], + ["store_field", 10, 15, "col", 723, 46], + ["array", 13, 0, 1, 1], + ["push", 13, 7, 1, 1], [ "access", - 10, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 722, - 44 - ], - ["access", 11, "error", 722, 44], - ["access", 13, "cannot apply '+': operands must be numbers", 722, 44], - ["array", 14, 0, 722, 44], - ["stone_text", 13], - ["push", 14, 13, 722, 44], - ["frame", 13, 10, 2, 722, 44], - ["null", 10, 722, 44], - ["setarg", 13, 0, 10, 722, 44], - ["stone_text", 11], - ["setarg", 13, 1, 11, 722, 44], - ["setarg", 13, 2, 14, 722, 44], - ["invoke", 13, 10, 722, 44], - ["disrupt", 722, 44], - "num_done_556", - ["store_field", 8, 12, "line", 722, 44], - ["load_field", 10, 4, "left", 723, 22], - ["load_field", 11, 10, "from_column", 723, 22], - ["access", 10, 1, 723, 46], - ["is_num", 12, 11, 723, 46], - ["jump_false", 12, "num_err_557", 723, 46], - "_nop_tc_11", - "_nop_tc_12", - ["add", 12, 11, 10, 723, 46], - ["jump", "num_done_558", 723, 46], - "num_err_557", - [ - "access", - 10, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 723, - 46 - ], - ["access", 11, "error", 723, 46], - ["access", 13, "cannot apply '+': operands must be numbers", 723, 46], - ["array", 14, 0, 723, 46], - ["stone_text", 13], - ["push", 14, 13, 723, 46], - ["frame", 13, 10, 2, 723, 46], - ["null", 10, 723, 46], - ["setarg", 13, 0, 10, 723, 46], - ["stone_text", 11], - ["setarg", 13, 1, 11, 723, 46], - ["setarg", 13, 2, 14, 723, 46], - ["invoke", 13, 10, 723, 46], - ["disrupt", 723, 46], - "num_done_558", - ["store_field", 8, 12, "col", 723, 46], - ["array", 10, 0, 1, 1], - ["push", 10, 7, 1, 1], - [ - "access", - 11, + 14, { "name": "format", "kind": "name", @@ -4480,21 +3893,21 @@ 1, 1 ], - ["access", 12, "unused constant '{0}'", 1, 1], - ["frame", 13, 11, 2, 1, 1], - ["stone_text", 12], - ["setarg", 13, 1, 12, 1, 1], - ["setarg", 13, 2, 10, 1, 1], - ["invoke", 13, 10, 1, 1], - ["store_field", 8, 10, "message", 1, 1], - ["is_array", 10, 9, 1, 1], - ["jump_false", 10, "push_err_559", 1, 1], - ["push", 9, 8, 1, 1], - ["jump", "push_done_560", 1, 1], - "push_err_559", + ["access", 15, "unused constant '{0}'", 1, 1], + ["frame", 16, 14, 2, 1, 1], + ["stone_text", 15], + ["setarg", 16, 1, 15, 1, 1], + ["setarg", 16, 2, 13, 1, 1], + ["invoke", 16, 13, 1, 1], + ["store_field", 10, 13, "message", 1, 1], + ["is_array", 13, 11, 1, 1], + ["jump_false", 13, "push_err_509", 1, 1], + ["push", 11, 10, 1, 1], + ["jump", "push_done_510", 1, 1], + "push_err_509", [ "access", - 8, + 10, { "name": "log", "kind": "name", @@ -4503,104 +3916,46 @@ 1, 1 ], - ["access", 9, "error", 1, 1], - ["access", 10, "cannot push: target must be an array", 1, 1], - ["array", 11, 0, 1, 1], - ["stone_text", 10], - ["push", 11, 10, 1, 1], - ["frame", 10, 8, 2, 1, 1], - ["null", 8, 1, 1], - ["setarg", 10, 0, 8, 1, 1], - ["stone_text", 9], - ["setarg", 10, 1, 9, 1, 1], - ["setarg", 10, 2, 11, 1, 1], - ["invoke", 10, 8, 1, 1], + ["access", 11, "error", 1, 1], + ["access", 13, "cannot push: target must be an array", 1, 1], + ["array", 14, 0, 1, 1], + ["stone_text", 13], + ["push", 14, 13, 1, 1], + ["frame", 13, 10, 2, 1, 1], + ["null", 10, 1, 1], + ["setarg", 13, 0, 10, 1, 1], + ["stone_text", 11], + ["setarg", 13, 1, 11, 1, 1], + ["setarg", 13, 2, 14, 1, 1], + ["invoke", 13, 10, 1, 1], ["disrupt", 1, 1], - "push_done_560", - ["jump", "if_end_554", 1, 1], - "if_else_553", - ["get", 8, 1, 1, 727, 20], - ["load_field", 9, 8, "_diagnostics", 727, 20], - ["record", 8, 4], - ["access", 10, "warning", 728, 27], - ["store_field", 8, 10, "severity", 728, 27], - ["load_field", 10, 4, "left", 729, 23], - ["load_field", 11, 10, "from_row", 729, 23], - ["access", 10, 1, 729, 44], - ["is_num", 12, 11, 729, 44], - ["jump_false", 12, "num_err_561", 729, 44], - "_nop_tc_13", - "_nop_tc_14", - ["add", 12, 11, 10, 729, 44], - ["jump", "num_done_562", 729, 44], - "num_err_561", + "push_done_510", + ["jump", "if_end_508", 1, 1], + "if_else_507", + ["get", 10, 1, 1, 727, 20], + ["load_field", 11, 10, "_diagnostics", 727, 20], + ["record", 10, 4], + ["access", 13, "warning", 728, 27], + ["store_field", 10, 13, "severity", 728, 27], + ["load_field", 13, 4, "left", 729, 23], + ["load_field", 14, 13, "from_row", 729, 23], + ["access", 13, 1, 729, 44], + ["is_num", 15, 14, 729, 44], + ["jump_false", 15, "num_err_503", 729, 44], + ["add", 15, 14, 13, 729, 44], + ["store_field", 10, 15, "line", 729, 44], + ["load_field", 13, 4, "left", 730, 22], + ["load_field", 14, 13, "from_column", 730, 22], + ["access", 13, 1, 730, 46], + ["is_num", 15, 14, 730, 46], + ["jump_false", 15, "num_err_503", 730, 46], + ["add", 15, 14, 13, 730, 46], + ["store_field", 10, 15, "col", 730, 46], + ["array", 13, 0, 1, 1], + ["push", 13, 7, 1, 1], [ "access", - 10, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 729, - 44 - ], - ["access", 11, "error", 729, 44], - ["access", 13, "cannot apply '+': operands must be numbers", 729, 44], - ["array", 14, 0, 729, 44], - ["stone_text", 13], - ["push", 14, 13, 729, 44], - ["frame", 13, 10, 2, 729, 44], - ["null", 10, 729, 44], - ["setarg", 13, 0, 10, 729, 44], - ["stone_text", 11], - ["setarg", 13, 1, 11, 729, 44], - ["setarg", 13, 2, 14, 729, 44], - ["invoke", 13, 10, 729, 44], - ["disrupt", 729, 44], - "num_done_562", - ["store_field", 8, 12, "line", 729, 44], - ["load_field", 10, 4, "left", 730, 22], - ["load_field", 11, 10, "from_column", 730, 22], - ["access", 10, 1, 730, 46], - ["is_num", 12, 11, 730, 46], - ["jump_false", 12, "num_err_563", 730, 46], - "_nop_tc_15", - "_nop_tc_16", - ["add", 12, 11, 10, 730, 46], - ["jump", "num_done_564", 730, 46], - "num_err_563", - [ - "access", - 10, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 730, - 46 - ], - ["access", 11, "error", 730, 46], - ["access", 13, "cannot apply '+': operands must be numbers", 730, 46], - ["array", 14, 0, 730, 46], - ["stone_text", 13], - ["push", 14, 13, 730, 46], - ["frame", 13, 10, 2, 730, 46], - ["null", 10, 730, 46], - ["setarg", 13, 0, 10, 730, 46], - ["stone_text", 11], - ["setarg", 13, 1, 11, 730, 46], - ["setarg", 13, 2, 14, 730, 46], - ["invoke", 13, 10, 730, 46], - ["disrupt", 730, 46], - "num_done_564", - ["store_field", 8, 12, "col", 730, 46], - ["array", 10, 0, 1, 1], - ["push", 10, 7, 1, 1], - [ - "access", - 11, + 14, { "name": "format", "kind": "name", @@ -4609,21 +3964,21 @@ 1, 1 ], - ["access", 12, "unused variable '{0}'", 1, 1], - ["frame", 13, 11, 2, 1, 1], - ["stone_text", 12], - ["setarg", 13, 1, 12, 1, 1], - ["setarg", 13, 2, 10, 1, 1], - ["invoke", 13, 10, 1, 1], - ["store_field", 8, 10, "message", 1, 1], - ["is_array", 10, 9, 1, 1], - ["jump_false", 10, "push_err_565", 1, 1], - ["push", 9, 8, 1, 1], - ["jump", "push_done_566", 1, 1], - "push_err_565", + ["access", 15, "unused variable '{0}'", 1, 1], + ["frame", 16, 14, 2, 1, 1], + ["stone_text", 15], + ["setarg", 16, 1, 15, 1, 1], + ["setarg", 16, 2, 13, 1, 1], + ["invoke", 16, 13, 1, 1], + ["store_field", 10, 13, "message", 1, 1], + ["is_array", 13, 11, 1, 1], + ["jump_false", 13, "push_err_511", 1, 1], + ["push", 11, 10, 1, 1], + ["jump", "push_done_512", 1, 1], + "push_err_511", [ "access", - 8, + 10, { "name": "log", "kind": "name", @@ -4632,160 +3987,102 @@ 1, 1 ], - ["access", 9, "error", 1, 1], - ["access", 10, "cannot push: target must be an array", 1, 1], - ["array", 11, 0, 1, 1], - ["stone_text", 10], - ["push", 11, 10, 1, 1], - ["frame", 10, 8, 2, 1, 1], - ["null", 8, 1, 1], - ["setarg", 10, 0, 8, 1, 1], - ["stone_text", 9], - ["setarg", 10, 1, 9, 1, 1], - ["setarg", 10, 2, 11, 1, 1], - ["invoke", 10, 8, 1, 1], + ["access", 11, "error", 1, 1], + ["access", 13, "cannot push: target must be an array", 1, 1], + ["array", 14, 0, 1, 1], + ["stone_text", 13], + ["push", 14, 13, 1, 1], + ["frame", 13, 10, 2, 1, 1], + ["null", 10, 1, 1], + ["setarg", 13, 0, 10, 1, 1], + ["stone_text", 11], + ["setarg", 13, 1, 11, 1, 1], + ["setarg", 13, 2, 14, 1, 1], + ["invoke", 13, 10, 1, 1], ["disrupt", 1, 1], - "push_done_566", - "if_end_554", - "if_end_543", - ["jump", "if_end_538", 1, 1], - "if_else_537", - "if_end_538", - ["jump", "if_end_536", 1, 1], - "if_else_535", - "if_end_536", - ["jump", "if_end_533", 1, 1], - "if_else_532", - "if_end_533", - ["load_field", 8, 4, "kind", 738, 11], - ["access", 9, "call", 738, 24], - ["eq", 10, 8, 9, 738, 24], - ["move", 8, 10, 738, 24], - ["jump_false", 10, "and_end_569", 738, 24], - ["load_field", 9, 4, "expression", 738, 42], - ["get", 10, 13, 1, 738, 34], - ["frame", 11, 10, 1, 738, 34], - ["setarg", 11, 1, 9, 738, 34], - ["invoke", 11, 9, 738, 34], - ["move", 8, 9, 738, 34], - "and_end_569", - ["jump_false", 8, "if_else_567", 738, 34], - ["true", 8, 739, 21], - ["store_field", 4, 8, "dead", 739, 9], - ["jump", "if_end_568", 739, 9], - "if_else_567", - "if_end_568", - ["load_field", 8, 4, "kind", 742, 11], - ["access", 9, "function", 742, 24], - ["eq", 10, 8, 9, 742, 24], - ["move", 8, 10, 742, 24], - ["jump_false", 10, "and_end_572", 742, 24], - ["load_field", 9, 4, "name", 742, 38], - ["null", 10, 742, 51], - ["ne", 11, 9, 10, 742, 51], - ["move", 8, 11, 742, 51], - "and_end_572", - ["jump_false", 8, "if_else_570", 742, 51], - ["load_field", 8, 4, "name", 743, 31], - ["get", 9, 21, 1, 743, 14], - ["frame", 10, 9, 2, 743, 14], - ["setarg", 10, 1, 2, 743, 14], - ["setarg", 10, 2, 8, 743, 14], - ["invoke", 10, 8, 743, 14], - ["move", 5, 8, 743, 14], - ["null", 9, 744, 19], - ["ne", 10, 8, 9, 744, 19], - ["move", 8, 10, 744, 19], - ["jump_false", 10, "and_end_575", 744, 19], - ["load_field", 9, 5, "nr_uses", 744, 27], - ["access", 10, 0, 744, 41], - ["eq", 11, 9, 10, 744, 41], - ["move", 8, 11, 744, 41], - "and_end_575", - ["jump_false", 8, "if_else_573", 744, 41], - ["true", 8, 745, 23], - ["store_field", 4, 8, "dead", 745, 11], - ["get", 8, 1, 1, 746, 16], - ["load_field", 9, 8, "_diagnostics", 746, 16], - ["record", 8, 4], - ["access", 10, "warning", 747, 23], - ["store_field", 8, 10, "severity", 747, 23], - ["load_field", 10, 4, "from_row", 748, 19], - ["access", 11, 1, 748, 35], - ["is_num", 12, 10, 748, 35], - ["jump_false", 12, "num_err_576", 748, 35], - "_nop_tc_17", - "_nop_tc_18", - ["add", 12, 10, 11, 748, 35], - ["jump", "num_done_577", 748, 35], - "num_err_576", + "push_done_512", + "if_end_508", + "if_end_499", + ["jump", "if_end_494", 1, 1], + "if_else_493", + "if_end_494", + ["jump", "if_end_492", 1, 1], + "if_else_491", + "if_end_492", + ["jump", "if_end_489", 1, 1], + "if_else_488", + "if_end_489", + ["load_field", 10, 4, "kind", 738, 11], + ["access", 11, "call", 738, 24], + ["eq", 13, 10, 11, 738, 24], + ["move", 10, 13, 738, 24], + ["jump_false", 13, "and_end_515", 738, 24], + ["load_field", 11, 4, "expression", 738, 42], + ["get", 13, 13, 1, 738, 34], + ["frame", 14, 13, 1, 738, 34], + ["setarg", 14, 1, 11, 738, 34], + ["invoke", 14, 11, 738, 34], + ["move", 10, 11, 738, 34], + "and_end_515", + ["wary_false", 10, "if_else_513", 738, 34], + ["true", 10, 739, 21], + ["store_field", 4, 10, "dead", 739, 9], + ["jump", "if_end_514", 739, 9], + "if_else_513", + "if_end_514", + ["load_field", 10, 4, "kind", 742, 11], + ["access", 11, "function", 742, 24], + ["eq", 13, 10, 11, 742, 24], + ["move", 10, 13, 742, 24], + ["jump_false", 13, "and_end_518", 742, 24], + ["load_field", 11, 4, "name", 742, 38], + ["null", 13, 742, 51], + ["ne", 14, 11, 13, 742, 51], + ["move", 10, 14, 742, 51], + "and_end_518", + ["jump_false", 10, "if_else_516", 742, 51], + ["load_field", 10, 4, "name", 743, 31], + ["get", 11, 21, 1, 743, 14], + ["frame", 13, 11, 2, 743, 14], + ["setarg", 13, 1, 2, 743, 14], + ["setarg", 13, 2, 10, 743, 14], + ["invoke", 13, 10, 743, 14], + ["move", 5, 10, 743, 14], + ["null", 11, 744, 19], + ["ne", 13, 10, 11, 744, 19], + ["move", 10, 13, 744, 19], + ["jump_false", 13, "and_end_521", 744, 19], + ["load_field", 11, 5, "nr_uses", 744, 27], + ["access", 13, 0, 744, 41], + ["eq", 14, 11, 13, 744, 41], + ["move", 10, 14, 744, 41], + "and_end_521", + ["jump_false", 10, "if_else_519", 744, 41], + ["true", 10, 745, 23], + ["store_field", 4, 10, "dead", 745, 11], + ["get", 10, 1, 1, 746, 16], + ["load_field", 11, 10, "_diagnostics", 746, 16], + ["record", 10, 4], + ["access", 13, "warning", 747, 23], + ["store_field", 10, 13, "severity", 747, 23], + ["load_field", 13, 4, "from_row", 748, 19], + ["access", 14, 1, 748, 35], + ["is_num", 15, 13, 748, 35], + ["jump_false", 15, "num_err_503", 748, 35], + ["add", 15, 13, 14, 748, 35], + ["store_field", 10, 15, "line", 748, 35], + ["load_field", 13, 4, "from_column", 749, 18], + ["access", 14, 1, 749, 37], + ["is_num", 15, 13, 749, 37], + ["jump_false", 15, "num_err_503", 749, 37], + ["add", 8, 13, 14, 749, 37], + ["store_field", 10, 8, "col", 749, 37], + ["load_field", 8, 4, "name", 1, 1], + ["array", 9, 0, 1, 1], + ["push", 9, 8, 1, 1], [ "access", - 10, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 748, - 35 - ], - ["access", 11, "error", 748, 35], - ["access", 13, "cannot apply '+': operands must be numbers", 748, 35], - ["array", 14, 0, 748, 35], - ["stone_text", 13], - ["push", 14, 13, 748, 35], - ["frame", 13, 10, 2, 748, 35], - ["null", 10, 748, 35], - ["setarg", 13, 0, 10, 748, 35], - ["stone_text", 11], - ["setarg", 13, 1, 11, 748, 35], - ["setarg", 13, 2, 14, 748, 35], - ["invoke", 13, 10, 748, 35], - ["disrupt", 748, 35], - "num_done_577", - ["store_field", 8, 12, "line", 748, 35], - ["load_field", 10, 4, "from_column", 749, 18], - ["access", 11, 1, 749, 37], - ["is_num", 12, 10, 749, 37], - ["jump_false", 12, "num_err_578", 749, 37], - "_nop_tc_19", - "_nop_tc_20", - ["add", 12, 10, 11, 749, 37], - ["jump", "num_done_579", 749, 37], - "num_err_578", - [ - "access", - 10, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 749, - 37 - ], - ["access", 11, "error", 749, 37], - ["access", 13, "cannot apply '+': operands must be numbers", 749, 37], - ["array", 14, 0, 749, 37], - ["stone_text", 13], - ["push", 14, 13, 749, 37], - ["frame", 13, 10, 2, 749, 37], - ["null", 10, 749, 37], - ["setarg", 13, 0, 10, 749, 37], - ["stone_text", 11], - ["setarg", 13, 1, 11, 749, 37], - ["setarg", 13, 2, 14, 749, 37], - ["invoke", 13, 10, 749, 37], - ["disrupt", 749, 37], - "num_done_579", - ["store_field", 8, 12, "col", 749, 37], - ["load_field", 10, 4, "name", 1, 1], - ["array", 11, 0, 1, 1], - ["push", 11, 10, 1, 1], - [ - "access", - 10, + 8, { "name": "format", "kind": "name", @@ -4795,17 +4092,17 @@ 1 ], ["access", 12, "unused function '{0}'", 1, 1], - ["frame", 13, 10, 2, 1, 1], + ["frame", 13, 8, 2, 1, 1], ["stone_text", 12], ["setarg", 13, 1, 12, 1, 1], - ["setarg", 13, 2, 11, 1, 1], - ["invoke", 13, 10, 1, 1], - ["store_field", 8, 10, "message", 1, 1], - ["is_array", 10, 9, 1, 1], - ["jump_false", 10, "push_err_580", 1, 1], - ["push", 9, 8, 1, 1], - ["jump", "push_done_581", 1, 1], - "push_err_580", + ["setarg", 13, 2, 9, 1, 1], + ["invoke", 13, 8, 1, 1], + ["store_field", 10, 8, "message", 1, 1], + ["is_array", 8, 11, 1, 1], + ["jump_false", 8, "push_err_522", 1, 1], + ["push", 11, 10, 1, 1], + ["jump", "push_done_523", 1, 1], + "push_err_522", [ "access", 8, @@ -4830,66 +4127,47 @@ ["setarg", 10, 2, 11, 1, 1], ["invoke", 10, 8, 1, 1], ["disrupt", 1, 1], - "push_done_581", - ["jump", "if_end_574", 1, 1], - "if_else_573", - "if_end_574", - ["jump", "if_end_571", 1, 1], - "if_else_570", - "if_end_571", + "push_done_523", + ["jump", "if_end_520", 1, 1], + "if_else_519", + "if_end_520", + ["jump", "if_end_517", 1, 1], + "if_else_516", + "if_end_517", ["load_field", 8, 4, "dead", 754, 11], ["true", 9, 754, 24], ["ne", 10, 8, 9, 754, 24], - ["jump_false", 10, "if_else_582", 754, 24], - "_nop_tc_21", - "_nop_tc_22", + ["jump_false", 10, "if_else_524", 754, 24], + "_nop_tc_1", + "_nop_tc_2", ["push", 6, 4, 754, 40], - ["jump", "push_done_585", 754, 40], - "push_err_584", - "_nop_ucfg_14", - "_nop_ucfg_15", - "_nop_ucfg_16", - "_nop_ucfg_17", - "_nop_ucfg_18", - "_nop_ucfg_19", - "_nop_ucfg_20", - "_nop_ucfg_21", - "_nop_ucfg_22", - "_nop_ucfg_23", - "_nop_ucfg_24", - "_nop_ucfg_25", - "push_done_585", - ["jump", "if_end_583", 754, 40], - "if_else_582", - "if_end_583", + ["jump", "push_done_527", 754, 40], + "push_err_526", + "_nop_ucfg_2", + "_nop_ucfg_3", + "_nop_ucfg_4", + "_nop_ucfg_5", + "_nop_ucfg_6", + "_nop_ucfg_7", + "_nop_ucfg_8", + "_nop_ucfg_9", + "_nop_ucfg_10", + "_nop_ucfg_11", + "_nop_ucfg_12", + "_nop_ucfg_13", + "push_done_527", + ["jump", "if_end_525", 754, 40], + "if_else_524", + "if_end_525", ["access", 8, 1, 755, 15], - "_nop_tc_23", - "_nop_tc_24", - "_nop_tc_25", - "_nop_tc_26", ["add", 3, 3, 8, 755, 15], - ["jump", "num_done_587", 755, 15], - "num_err_586", - "_nop_ucfg_26", - "_nop_ucfg_27", - "_nop_ucfg_28", - "_nop_ucfg_29", - "_nop_ucfg_30", - "_nop_ucfg_31", - "_nop_ucfg_32", - "_nop_ucfg_33", - "_nop_ucfg_34", - "_nop_ucfg_35", - "_nop_ucfg_36", - "_nop_ucfg_37", - "num_done_587", - ["jump", "while_start_526", 755, 15], - "while_end_527", + ["jump", "while_start_484", 755, 15], + "while_end_485", ["return", 6, 757, 12], "_nop_ur_1", "_nop_ur_2" ], - "_write_types": [null, null, null, "int", null, "array", null, null, "array", "int", "bool", null, null, null, null, "null", "bool", "int", null, null, null, null, null, null, null, null, null, null, "text", "bool", "bool", null, "text", "bool", null, null, "null", "bool", null, null, null, "null", "bool", "bool", null, "int", "bool", null, null, null, null, "bool", null, "null", "bool", "bool", null, null, "text", "bool", "bool", null, null, "null", "bool", "bool", null, null, null, "text", "bool", null, null, "record", "text", null, null, "int", "num", "bool", null, null, "text", "text", "array", null, null, "null", null, null, "int", "num", "bool", null, null, "text", "text", "array", null, null, "null", "array", null, "text", null, null, "bool", null, "text", "text", "array", null, null, "null", null, "text", "bool", null, null, "record", "text", null, null, "int", "num", "bool", null, null, "text", "text", "array", null, null, "null", null, null, "int", "num", "bool", null, null, "text", "text", "array", null, null, "null", "array", null, "text", null, null, "bool", null, "text", "text", "array", null, null, "null", null, null, "record", "text", null, null, "int", "num", "bool", null, null, "text", "text", "array", null, null, "null", null, null, "int", "num", "bool", null, null, "text", "text", "array", null, null, "null", "array", null, "text", null, null, "bool", null, "text", "text", "array", null, null, "null", null, "text", "bool", null, null, null, null, null, "bool", null, "text", "bool", "bool", null, "null", "bool", null, null, null, null, "null", "bool", "bool", null, "int", "bool", "bool", null, null, "record", "text", null, "int", "num", "bool", null, null, "text", "text", "array", null, null, "null", null, "int", "num", "bool", null, null, "text", "text", "array", null, null, "null", null, "array", null, "text", null, null, "bool", null, "text", "text", "array", null, null, "null", null, "bool", "bool", null, null, null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, null], + "_write_types": [null, null, null, "int", null, "array", null, null, "array", "int", "bool", null, null, null, null, "null", "bool", "int", null, "text", "bool", "bool", null, "text", "bool", null, null, "null", "bool", null, null, null, "null", "bool", "bool", null, "int", "bool", null, null, null, null, "bool", null, "null", "bool", "bool", null, null, "text", "bool", "bool", null, null, "null", "bool", "bool", null, null, null, "text", "bool", null, null, "record", "text", null, null, "int", "num", "bool", null, "text", "text", "array", null, null, "null", null, null, "int", "num", "bool", "array", null, "text", null, null, "bool", null, "text", "text", "array", null, null, "null", null, "text", "bool", null, null, "record", "text", null, null, "int", "num", "bool", null, null, "int", "num", "bool", "array", null, "text", null, null, "bool", null, "text", "text", "array", null, null, "null", null, null, "record", "text", null, null, "int", "num", "bool", null, null, "int", "num", "bool", "array", null, "text", null, null, "bool", null, "text", "text", "array", null, null, "null", null, "text", "bool", null, null, null, null, null, "bool", null, "text", "bool", "bool", null, "null", "bool", null, null, null, null, "null", "bool", "bool", null, "int", "bool", "bool", null, null, "record", "text", null, "int", "num", "bool", null, "int", "num", "bool", null, "array", null, "text", null, null, "bool", null, "text", "text", "array", null, null, "null", null, "bool", "bool", null, null, null, null, null, null, null, null, "int", null], "name": "", "filename": ".cell/packages/core/fold.cm", "nr_args": 2 @@ -4902,34 +4180,34 @@ "instructions": [ ["null", 2, 761, 17], ["eq", 3, 1, 2, 761, 17], - ["jump_false", 3, "if_else_588", 761, 17], + ["jump_false", 3, "if_else_528", 761, 17], ["null", 2, 761, 30], ["return", 2, 761, 30], "_nop_ur_1", - "if_else_588", - "if_end_589", + "if_else_528", + "if_end_529", ["load_field", 2, 1, "function_nr", 762, 17], ["move", 3, 2, 762, 17], ["null", 4, 763, 18], ["eq", 5, 2, 4, 763, 18], - ["jump_false", 5, "if_else_590", 763, 18], + ["jump_false", 5, "if_else_530", 763, 18], ["null", 2, 763, 31], ["return", 2, 763, 31], "_nop_ur_2", - "if_else_590", - "if_end_591", + "if_else_530", + "if_end_531", ["access", 2, 0, 765, 13], - "while_start_592", + "while_start_532", ["load_field", 4, 1, "list", 766, 23], ["length", 5, 4, 766, 23], ["lt", 4, 2, 5, 766, 23], - ["jump_false", 4, "while_end_593", 766, 23], + ["jump_false", 4, "while_end_533", 766, 23], ["load_field", 4, 1, "list", 767, 11], ["load_index", 5, 4, 2, 767, 21], ["load_field", 4, 5, "expression", 767, 21], ["null", 5, 767, 38], ["ne", 6, 4, 5, 767, 38], - ["jump_false", 6, "if_else_594", 767, 38], + ["jump_false", 6, "if_else_534", 767, 38], ["load_field", 4, 1, "list", 768, 45], ["load_index", 5, 4, 2, 768, 55], ["load_field", 4, 5, "expression", 768, 55], @@ -4941,36 +4219,17 @@ ["load_field", 5, 1, "list", 768, 9], ["load_index", 6, 5, 2, 768, 19], ["store_field", 6, 4, "expression", 768, 19], - ["jump", "if_end_595", 768, 19], - "if_else_594", - "if_end_595", + ["jump", "if_end_535", 768, 19], + "if_else_534", + "if_end_535", ["access", 4, 1, 770, 15], - "_nop_tc_1", - "_nop_tc_2", - "_nop_tc_3", - "_nop_tc_4", ["add", 2, 2, 4, 770, 15], - ["jump", "num_done_597", 770, 15], - "num_err_596", - "_nop_ucfg_1", - "_nop_ucfg_2", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "num_done_597", - ["jump", "while_start_592", 770, 15], - "while_end_593", + ["jump", "while_start_532", 770, 15], + "while_end_533", ["load_field", 2, 1, "statements", 772, 9], ["null", 4, 772, 28], ["ne", 5, 2, 4, 772, 28], - ["jump_false", 5, "if_else_598", 772, 28], + ["jump_false", 5, "if_else_536", 772, 28], ["load_field", 2, 1, "statements", 772, 63], ["get", 4, 33, 1, 772, 52], ["frame", 5, 4, 2, 772, 52], @@ -4978,13 +4237,13 @@ ["setarg", 5, 2, 3, 772, 52], ["invoke", 5, 2, 772, 52], ["store_field", 1, 2, "statements", 772, 34], - ["jump", "if_end_599", 772, 34], - "if_else_598", - "if_end_599", + ["jump", "if_end_537", 772, 34], + "if_else_536", + "if_end_537", ["load_field", 2, 1, "disruption", 773, 9], ["null", 4, 773, 28], ["ne", 5, 2, 4, 773, 28], - ["jump_false", 5, "if_else_600", 773, 28], + ["jump_false", 5, "if_else_538", 773, 28], ["load_field", 2, 1, "disruption", 773, 63], ["get", 4, 33, 1, 773, 52], ["frame", 5, 4, 2, 773, 52], @@ -4992,13 +4251,13 @@ ["setarg", 5, 2, 3, 773, 52], ["invoke", 5, 2, 773, 52], ["store_field", 1, 2, "disruption", 773, 34], - ["jump", "if_end_601", 773, 34], - "if_else_600", - "if_end_601", + ["jump", "if_end_539", 773, 34], + "if_else_538", + "if_end_539", ["null", 2, 773, 34], ["return", 2, 773, 34] ], - "_write_types": [null, null, null, "int", "null", "bool", "null", null, "null", "bool", "null", null, "int", "bool", null, null, null, "null", "bool", null, null, null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, null, "null", "bool", null, null, null, null, null, "null", "bool", null, null, null, null, "null"], + "_write_types": [null, null, null, "int", "null", "bool", "null", null, "null", "bool", "null", null, "int", "bool", null, null, null, "null", "bool", null, null, null, null, null, null, null, null, "int", null, "null", "bool", null, null, null, null, null, "null", "bool", null, null, null, null, "null"], "name": "", "filename": ".cell/packages/core/fold.cm", "nr_args": 1 @@ -5011,22 +4270,22 @@ "instructions": [ ["null", 2, 816, 19], ["eq", 3, 1, 2, 816, 19], - ["jump_false", 3, "if_else_625", 816, 19], + ["jump_false", 3, "if_else_555", 816, 19], ["null", 2, 816, 32], ["return", 2, 816, 32], "_nop_ur_1", - "if_else_625", - "if_end_626", + "if_else_555", + "if_end_556", ["load_field", 2, 1, "function_nr", 817, 19], ["move", 3, 2, 817, 19], ["null", 4, 818, 20], ["eq", 5, 2, 4, 818, 20], - ["jump_false", 5, "if_else_627", 818, 20], + ["jump_false", 5, "if_else_557", 818, 20], ["null", 2, 818, 33], ["return", 2, 818, 33], "_nop_ur_2", - "if_else_627", - "if_end_628", + "if_else_557", + "if_end_558", ["get", 2, 20, 2, 819, 16], ["frame", 4, 2, 1, 819, 16], ["setarg", 4, 1, 3, 819, 16], @@ -5034,12 +4293,12 @@ ["move", 3, 2, 819, 16], ["null", 4, 820, 17], ["eq", 5, 2, 4, 820, 17], - ["jump_false", 5, "if_else_629", 820, 17], + ["jump_false", 5, "if_else_559", 820, 17], ["null", 2, 820, 30], ["return", 2, 820, 30], "_nop_ur_3", - "if_else_629", - "if_end_630", + "if_else_559", + "if_end_560", [ "access", 2, @@ -5059,102 +4318,45 @@ ["access", 5, 0, 823, 16], ["access", 6, 0, 824, 16], ["null", 7, 825, 17], - "while_start_631", + "while_start_561", ["length", 8, 4, 826, 26], ["lt", 9, 6, 8, 826, 26], - ["jump_false", 9, "while_end_632", 826, 26], + ["jump_false", 9, "while_end_562", 826, 26], ["load_index", 8, 4, 6, 827, 18], ["access", 9, "function_nr", 827, 25], ["ne", 10, 8, 9, 827, 25], - ["jump_false", 10, "if_else_633", 827, 25], + ["jump_false", 10, "if_else_563", 827, 25], ["load_index", 8, 4, 6, 828, 25], ["load_dynamic", 9, 3, 8, 828, 25], ["move", 7, 9, 828, 25], ["null", 8, 829, 22], ["ne", 10, 9, 8, 829, 22], - ["jump_false", 10, "if_else_635", 829, 22], + ["jump_false", 10, "if_else_565", 829, 22], ["access", 8, 1, 830, 21], - "_nop_tc_1", - "_nop_tc_2", - "_nop_tc_3", - "_nop_tc_4", ["add", 2, 2, 8, 830, 21], - ["jump", "num_done_638", 830, 21], - "num_err_637", - "_nop_ucfg_1", - "_nop_ucfg_2", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "num_done_638", ["load_field", 8, 7, "closure", 831, 17], - ["jump_false", 8, "if_else_639", 831, 17], + ["wary_false", 8, "if_else_567", 831, 17], ["access", 8, 1, 831, 40], - "_nop_tc_5", - "_nop_tc_6", - "_nop_tc_7", - "_nop_tc_8", ["add", 5, 5, 8, 831, 40], - ["jump", "num_done_642", 831, 40], - "num_err_641", - "_nop_ucfg_13", - "_nop_ucfg_14", - "_nop_ucfg_15", - "_nop_ucfg_16", - "_nop_ucfg_17", - "_nop_ucfg_18", - "_nop_ucfg_19", - "_nop_ucfg_20", - "_nop_ucfg_21", - "_nop_ucfg_22", - "_nop_ucfg_23", - "_nop_ucfg_24", - "num_done_642", - ["jump", "if_end_640", 831, 40], - "if_else_639", - "if_end_640", - ["jump", "if_end_636", 831, 40], - "if_else_635", - "if_end_636", - ["jump", "if_end_634", 831, 40], - "if_else_633", - "if_end_634", + ["jump", "if_end_568", 831, 40], + "if_else_567", + "if_end_568", + ["jump", "if_end_566", 831, 40], + "if_else_565", + "if_end_566", + ["jump", "if_end_564", 831, 40], + "if_else_563", + "if_end_564", ["access", 8, 1, 834, 19], - "_nop_tc_9", - "_nop_tc_10", - "_nop_tc_11", - "_nop_tc_12", ["add", 6, 6, 8, 834, 19], - ["jump", "num_done_644", 834, 19], - "num_err_643", - "_nop_ucfg_25", - "_nop_ucfg_26", - "_nop_ucfg_27", - "_nop_ucfg_28", - "_nop_ucfg_29", - "_nop_ucfg_30", - "_nop_ucfg_31", - "_nop_ucfg_32", - "_nop_ucfg_33", - "_nop_ucfg_34", - "_nop_ucfg_35", - "_nop_ucfg_36", - "num_done_644", - ["jump", "while_start_631", 834, 19], - "while_end_632", + ["jump", "while_start_561", 834, 19], + "while_end_562", ["store_field", 1, 2, "nr_slots", 836, 7], ["store_field", 1, 5, "nr_close_slots", 837, 7], ["null", 2, 837, 7], ["return", 2, 837, 7] ], - "_write_types": [null, null, "int", null, null, null, "int", "int", null, "null", "bool", "null", null, "null", "bool", "null", null, null, null, "null", "bool", "null", null, null, null, "int", "bool", null, "text", "bool", null, null, "null", "bool", "int", null, null, null, null, null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "null"], + "_write_types": [null, null, "int", null, null, null, "int", "int", null, "null", "bool", "null", null, "null", "bool", "null", null, null, null, "null", "bool", "null", null, null, null, "int", "bool", null, "text", "bool", null, null, "null", "bool", "int", null, "int", "int", "null"], "name": "", "filename": ".cell/packages/core/fold.cm", "nr_args": 1 @@ -5167,18 +4369,18 @@ "instructions": [ ["null", 2, 844, 19], ["eq", 3, 1, 2, 844, 19], - ["jump_false", 3, "if_else_645", 844, 19], + ["jump_false", 3, "if_else_569", 844, 19], ["null", 2, 844, 32], ["return", 2, 844, 32], "_nop_ur_1", - "if_else_645", - "if_end_646", + "if_else_569", + "if_end_570", ["load_field", 2, 1, "kind", 845, 15], ["move", 3, 2, 845, 15], ["access", 4, 0, 846, 15], ["access", 5, "function", 847, 16], ["eq", 6, 2, 5, 847, 16], - ["jump_false", 6, "if_else_647", 847, 16], + ["jump_false", 6, "if_else_571", 847, 16], ["get", 2, 2, 1, 848, 9], ["frame", 5, 2, 1, 848, 9], ["setarg", 5, 1, 1, 848, 9], @@ -5196,89 +4398,89 @@ ["null", 2, 851, 16], ["return", 2, 851, 16], "_nop_ur_2", - "if_else_647", - "if_end_648", + "if_else_571", + "if_end_572", ["load_field", 2, 1, "left", 853, 11], ["null", 5, 853, 24], ["ne", 6, 2, 5, 853, 24], - ["jump_false", 6, "if_else_649", 853, 24], + ["jump_false", 6, "if_else_573", 853, 24], ["load_field", 2, 1, "left", 853, 48], ["get", 5, 4, 1, 853, 30], ["frame", 6, 5, 1, 853, 30], ["setarg", 6, 1, 2, 853, 30], ["invoke", 6, 2, 853, 30], - ["jump", "if_end_650", 853, 30], - "if_else_649", - "if_end_650", + ["jump", "if_end_574", 853, 30], + "if_else_573", + "if_end_574", ["load_field", 2, 1, "right", 854, 11], ["null", 5, 854, 25], ["ne", 6, 2, 5, 854, 25], - ["jump_false", 6, "if_else_651", 854, 25], + ["jump_false", 6, "if_else_575", 854, 25], ["load_field", 2, 1, "right", 854, 49], ["get", 5, 4, 1, 854, 31], ["frame", 6, 5, 1, 854, 31], ["setarg", 6, 1, 2, 854, 31], ["invoke", 6, 2, 854, 31], - ["jump", "if_end_652", 854, 31], - "if_else_651", - "if_end_652", + ["jump", "if_end_576", 854, 31], + "if_else_575", + "if_end_576", ["load_field", 2, 1, "expression", 855, 11], ["null", 5, 855, 30], ["ne", 6, 2, 5, 855, 30], - ["jump_false", 6, "if_else_653", 855, 30], + ["jump_false", 6, "if_else_577", 855, 30], ["load_field", 2, 1, "expression", 855, 54], ["get", 5, 4, 1, 855, 36], ["frame", 6, 5, 1, 855, 36], ["setarg", 6, 1, 2, 855, 36], ["invoke", 6, 2, 855, 36], - ["jump", "if_end_654", 855, 36], - "if_else_653", - "if_end_654", + ["jump", "if_end_578", 855, 36], + "if_else_577", + "if_end_578", ["load_field", 2, 1, "then", 856, 11], ["null", 5, 856, 24], ["ne", 6, 2, 5, 856, 24], - ["jump_false", 6, "if_else_655", 856, 24], + ["jump_false", 6, "if_else_579", 856, 24], ["load_field", 2, 1, "then", 856, 48], ["get", 5, 4, 1, 856, 30], ["frame", 6, 5, 1, 856, 30], ["setarg", 6, 1, 2, 856, 30], ["invoke", 6, 2, 856, 30], - ["jump", "if_end_656", 856, 30], - "if_else_655", - "if_end_656", + ["jump", "if_end_580", 856, 30], + "if_else_579", + "if_end_580", ["load_field", 2, 1, "else", 857, 11], ["null", 5, 857, 24], ["ne", 6, 2, 5, 857, 24], - ["jump_false", 6, "if_else_657", 857, 24], + ["jump_false", 6, "if_else_581", 857, 24], ["load_field", 2, 1, "else", 857, 48], ["get", 5, 4, 1, 857, 30], ["frame", 6, 5, 1, 857, 30], ["setarg", 6, 1, 2, 857, 30], ["invoke", 6, 2, 857, 30], - ["jump", "if_end_658", 857, 30], - "if_else_657", - "if_end_658", + ["jump", "if_end_582", 857, 30], + "if_else_581", + "if_end_582", ["access", 2, "(", 858, 16], ["eq", 5, 3, 2, 858, 16], ["move", 2, 5, 858, 16], - ["jump_true", 5, "or_end_662", 858, 16], + ["jump_true", 5, "or_end_586", 858, 16], ["access", 5, "array", 858, 28], ["eq", 6, 3, 5, 858, 28], ["move", 2, 6, 858, 28], - "or_end_662", + "or_end_586", ["move", 5, 2, 858, 28], - ["jump_true", 2, "or_end_661", 858, 28], + ["jump_true", 2, "or_end_585", 858, 28], ["access", 2, "text literal", 858, 44], ["eq", 6, 3, 2, 858, 44], ["move", 5, 6, 858, 44], - "or_end_661", - ["jump_false", 5, "if_else_659", 858, 44], + "or_end_585", + ["jump_false", 5, "if_else_583", 858, 44], ["access", 4, 0, 859, 13], - "while_start_663", + "while_start_587", ["load_field", 2, 1, "list", 860, 27], ["length", 5, 2, 860, 27], ["lt", 2, 4, 5, 860, 27], - ["jump_false", 2, "while_end_664", 860, 27], + ["jump_false", 2, "while_end_588", 860, 27], ["load_field", 2, 1, "list", 861, 29], ["load_index", 5, 2, 4, 861, 39], ["get", 2, 4, 1, 861, 11], @@ -5286,44 +4488,25 @@ ["setarg", 6, 1, 5, 861, 11], ["invoke", 6, 2, 861, 11], ["access", 2, 1, 862, 19], - "_nop_tc_1", - "_nop_tc_2", - "_nop_tc_3", - "_nop_tc_4", ["add", 4, 4, 2, 862, 19], - ["jump", "num_done_666", 862, 19], - "num_err_665", - "_nop_ucfg_1", - "_nop_ucfg_2", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "num_done_666", - ["jump", "while_start_663", 862, 19], - "while_end_664", - ["jump", "if_end_660", 862, 19], - "if_else_659", - "if_end_660", + ["jump", "while_start_587", 862, 19], + "while_end_588", + ["jump", "if_end_584", 862, 19], + "if_else_583", + "if_end_584", ["access", 2, "record", 865, 16], ["eq", 5, 3, 2, 865, 16], - ["jump_false", 5, "if_else_667", 865, 16], + ["jump_false", 5, "if_else_589", 865, 16], ["access", 4, 0, 866, 13], - "while_start_669", + "while_start_591", ["load_field", 2, 1, "list", 867, 27], ["length", 3, 2, 867, 27], ["lt", 2, 4, 3, 867, 27], - ["jump_false", 2, "while_end_670", 867, 27], + ["jump_false", 2, "while_end_592", 867, 27], ["load_field", 2, 1, "list", 868, 15], ["load_index", 3, 2, 4, 868, 25], ["load_field", 2, 3, "computed", 868, 25], - ["jump_false", 2, "if_else_671", 868, 25], + ["wary_false", 2, "if_else_593", 868, 25], ["load_field", 2, 1, "list", 868, 56], ["load_index", 3, 2, 4, 868, 66], ["load_field", 2, 3, "left", 868, 66], @@ -5331,9 +4514,9 @@ ["frame", 5, 3, 1, 868, 38], ["setarg", 5, 1, 2, 868, 38], ["invoke", 5, 2, 868, 38], - ["jump", "if_end_672", 868, 38], - "if_else_671", - "if_end_672", + ["jump", "if_end_594", 868, 38], + "if_else_593", + "if_end_594", ["load_field", 2, 1, "list", 869, 29], ["load_index", 3, 2, 4, 869, 39], ["load_field", 2, 3, "right", 869, 39], @@ -5342,35 +4525,16 @@ ["setarg", 5, 1, 2, 869, 11], ["invoke", 5, 2, 869, 11], ["access", 2, 1, 870, 19], - "_nop_tc_5", - "_nop_tc_6", - "_nop_tc_7", - "_nop_tc_8", ["add", 4, 4, 2, 870, 19], - ["jump", "num_done_674", 870, 19], - "num_err_673", - "_nop_ucfg_13", - "_nop_ucfg_14", - "_nop_ucfg_15", - "_nop_ucfg_16", - "_nop_ucfg_17", - "_nop_ucfg_18", - "_nop_ucfg_19", - "_nop_ucfg_20", - "_nop_ucfg_21", - "_nop_ucfg_22", - "_nop_ucfg_23", - "_nop_ucfg_24", - "num_done_674", - ["jump", "while_start_669", 870, 19], - "while_end_670", - ["jump", "if_end_668", 870, 19], - "if_else_667", - "if_end_668", + ["jump", "while_start_591", 870, 19], + "while_end_592", + ["jump", "if_end_590", 870, 19], + "if_else_589", + "if_end_590", ["null", 2, 870, 19], ["return", 2, 870, 19] ], - "_write_types": [null, null, "int", null, "null", "bool", "null", null, "text", "bool", null, null, null, null, null, null, null, null, null, null, null, "null", null, "null", "bool", null, null, null, null, null, "null", "bool", null, null, null, null, null, "null", "bool", null, null, null, null, null, "null", "bool", null, null, null, null, null, "null", "bool", null, null, null, null, "text", "bool", "bool", "text", "bool", "bool", "text", "bool", null, "int", "bool", null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "text", "bool", null, "int", "bool", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "null"], + "_write_types": [null, null, "int", null, "null", "bool", "null", null, "text", "bool", null, null, null, null, null, null, null, null, null, null, null, "null", null, "null", "bool", null, null, null, null, null, "null", "bool", null, null, null, null, null, "null", "bool", null, null, null, null, null, "null", "bool", null, null, null, null, null, "null", "bool", null, null, null, null, "text", "bool", "bool", "text", "bool", "bool", "text", "bool", null, "int", "bool", null, null, null, null, null, "int", "text", "bool", null, "int", "bool", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "int", "null"], "name": "", "filename": ".cell/packages/core/fold.cm", "nr_args": 1 @@ -5383,27 +4547,27 @@ "instructions": [ ["null", 2, 876, 20], ["eq", 3, 1, 2, 876, 20], - ["jump_false", 3, "if_else_675", 876, 20], + ["jump_false", 3, "if_else_595", 876, 20], ["null", 2, 876, 33], ["return", 2, 876, 33], "_nop_ur_1", - "if_else_675", - "if_end_676", + "if_else_595", + "if_end_596", ["access", 2, 0, 877, 15], ["access", 3, 0, 878, 15], ["null", 4, 879, 18], ["null", 5, 880, 15], - "while_start_677", + "while_start_597", ["length", 6, 1, 881, 25], ["lt", 7, 2, 6, 881, 25], - ["jump_false", 7, "while_end_678", 881, 25], + ["jump_false", 7, "while_end_598", 881, 25], ["load_index", 6, 1, 2, 882, 22], ["move", 4, 6, 882, 22], ["load_field", 7, 6, "kind", 883, 13], ["move", 5, 7, 883, 13], ["access", 6, "function", 884, 18], ["eq", 8, 7, 6, 884, 18], - ["jump_false", 8, "if_else_679", 884, 18], + ["jump_false", 8, "if_else_599", 884, 18], ["get", 6, 2, 1, 885, 11], ["frame", 7, 6, 1, 885, 11], ["setarg", 7, 1, 4, 885, 11], @@ -5418,33 +4582,33 @@ ["frame", 8, 7, 1, 887, 11], ["setarg", 8, 1, 6, 887, 11], ["invoke", 8, 6, 887, 11], - ["jump", "if_end_680", 887, 11], - "if_else_679", + ["jump", "if_end_600", 887, 11], + "if_else_599", ["access", 6, "var", 888, 25], ["eq", 7, 5, 6, 888, 25], ["move", 6, 7, 888, 25], - ["jump_true", 7, "or_end_683", 888, 25], + ["jump_true", 7, "or_end_603", 888, 25], ["access", 7, "def", 888, 39], ["eq", 8, 5, 7, 888, 39], ["move", 6, 8, 888, 39], - "or_end_683", - ["jump_false", 6, "if_else_681", 888, 39], + "or_end_603", + ["jump_false", 6, "if_else_601", 888, 39], ["load_field", 6, 4, "right", 889, 29], ["get", 7, 4, 1, 889, 11], ["frame", 8, 7, 1, 889, 11], ["setarg", 8, 1, 6, 889, 11], ["invoke", 8, 6, 889, 11], - ["jump", "if_end_682", 889, 11], - "if_else_681", + ["jump", "if_end_602", 889, 11], + "if_else_601", ["access", 6, "var_list", 890, 25], ["eq", 7, 5, 6, 890, 25], - ["jump_false", 7, "if_else_684", 890, 25], + ["jump_false", 7, "if_else_604", 890, 25], ["access", 3, 0, 891, 15], - "while_start_686", + "while_start_606", ["load_field", 6, 4, "list", 892, 29], ["length", 7, 6, 892, 29], ["lt", 6, 3, 7, 892, 29], - ["jump_false", 6, "while_end_687", 892, 29], + ["jump_false", 6, "while_end_607", 892, 29], ["load_field", 6, 4, "list", 893, 31], ["load_index", 7, 6, 3, 893, 41], ["load_field", 6, 7, "right", 893, 41], @@ -5453,43 +4617,24 @@ ["setarg", 8, 1, 6, 893, 13], ["invoke", 8, 6, 893, 13], ["access", 6, 1, 894, 21], - "_nop_tc_1", - "_nop_tc_2", - "_nop_tc_3", - "_nop_tc_4", ["add", 3, 3, 6, 894, 21], - ["jump", "num_done_689", 894, 21], - "num_err_688", - "_nop_ucfg_1", - "_nop_ucfg_2", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "num_done_689", - ["jump", "while_start_686", 894, 21], - "while_end_687", - ["jump", "if_end_685", 894, 21], - "if_else_684", + ["jump", "while_start_606", 894, 21], + "while_end_607", + ["jump", "if_end_605", 894, 21], + "if_else_604", ["access", 6, "call", 896, 25], ["eq", 7, 5, 6, 896, 25], - ["jump_false", 7, "if_else_690", 896, 25], + ["jump_false", 7, "if_else_608", 896, 25], ["load_field", 6, 4, "expression", 897, 29], ["get", 7, 4, 1, 897, 11], ["frame", 8, 7, 1, 897, 11], ["setarg", 8, 1, 6, 897, 11], ["invoke", 8, 6, 897, 11], - ["jump", "if_end_691", 897, 11], - "if_else_690", + ["jump", "if_end_609", 897, 11], + "if_else_608", ["access", 6, "if", 898, 25], ["eq", 7, 5, 6, 898, 25], - ["jump_false", 7, "if_else_692", 898, 25], + ["jump_false", 7, "if_else_610", 898, 25], ["load_field", 6, 4, "expression", 899, 29], ["get", 7, 4, 1, 899, 11], ["frame", 8, 7, 1, 899, 11], @@ -5508,26 +4653,26 @@ ["load_field", 6, 4, "else", 902, 15], ["null", 7, 902, 28], ["ne", 8, 6, 7, 902, 28], - ["jump_false", 8, "if_else_694", 902, 28], + ["jump_false", 8, "if_else_612", 902, 28], ["load_field", 6, 4, "else", 902, 53], ["get", 7, 3, 1, 902, 34], ["frame", 8, 7, 1, 902, 34], ["setarg", 8, 1, 6, 902, 34], ["invoke", 8, 6, 902, 34], - ["jump", "if_end_695", 902, 34], - "if_else_694", - "if_end_695", - ["jump", "if_end_693", 902, 34], - "if_else_692", + ["jump", "if_end_613", 902, 34], + "if_else_612", + "if_end_613", + ["jump", "if_end_611", 902, 34], + "if_else_610", ["access", 6, "while", 903, 25], ["eq", 7, 5, 6, 903, 25], ["move", 6, 7, 903, 25], - ["jump_true", 7, "or_end_698", 903, 25], + ["jump_true", 7, "or_end_616", 903, 25], ["access", 7, "do", 903, 41], ["eq", 8, 5, 7, 903, 41], ["move", 6, 8, 903, 41], - "or_end_698", - ["jump_false", 6, "if_else_696", 903, 41], + "or_end_616", + ["jump_false", 6, "if_else_614", 903, 41], ["load_field", 6, 4, "expression", 904, 29], ["get", 7, 4, 1, 904, 11], ["frame", 8, 7, 1, 904, 11], @@ -5538,45 +4683,45 @@ ["frame", 8, 7, 1, 905, 11], ["setarg", 8, 1, 6, 905, 11], ["invoke", 8, 6, 905, 11], - ["jump", "if_end_697", 905, 11], - "if_else_696", + ["jump", "if_end_615", 905, 11], + "if_else_614", ["access", 6, "for", 906, 25], ["eq", 7, 5, 6, 906, 25], - ["jump_false", 7, "if_else_699", 906, 25], + ["jump_false", 7, "if_else_617", 906, 25], ["load_field", 6, 4, "init", 907, 15], ["null", 7, 907, 28], ["ne", 8, 6, 7, 907, 28], - ["jump_false", 8, "if_else_701", 907, 28], + ["jump_false", 8, "if_else_619", 907, 28], ["load_field", 6, 4, "init", 908, 17], ["load_field", 7, 6, "kind", 908, 17], ["access", 6, "var", 908, 35], ["eq", 8, 7, 6, 908, 35], ["move", 6, 8, 908, 35], - ["jump_true", 8, "or_end_705", 908, 35], + ["jump_true", 8, "or_end_623", 908, 35], ["load_field", 7, 4, "init", 908, 44], ["load_field", 8, 7, "kind", 908, 44], ["access", 7, "def", 908, 62], ["eq", 9, 8, 7, 908, 62], ["move", 6, 9, 908, 62], - "or_end_705", - ["jump_false", 6, "if_else_703", 908, 62], + "or_end_623", + ["jump_false", 6, "if_else_621", 908, 62], ["load_field", 6, 4, "init", 909, 33], ["load_field", 7, 6, "right", 909, 33], ["get", 6, 4, 1, 909, 15], ["frame", 8, 6, 1, 909, 15], ["setarg", 8, 1, 7, 909, 15], ["invoke", 8, 6, 909, 15], - ["jump", "if_end_704", 909, 15], - "if_else_703", + ["jump", "if_end_622", 909, 15], + "if_else_621", ["load_field", 6, 4, "init", 911, 33], ["get", 7, 4, 1, 911, 15], ["frame", 8, 7, 1, 911, 15], ["setarg", 8, 1, 6, 911, 15], ["invoke", 8, 6, 911, 15], - "if_end_704", - ["jump", "if_end_702", 911, 15], - "if_else_701", - "if_end_702", + "if_end_622", + ["jump", "if_end_620", 911, 15], + "if_else_619", + "if_end_620", ["load_field", 6, 4, "test", 914, 29], ["get", 7, 4, 1, 914, 11], ["frame", 8, 7, 1, 914, 11], @@ -5592,41 +4737,41 @@ ["frame", 8, 7, 1, 916, 11], ["setarg", 8, 1, 6, 916, 11], ["invoke", 8, 6, 916, 11], - ["jump", "if_end_700", 916, 11], - "if_else_699", + ["jump", "if_end_618", 916, 11], + "if_else_617", ["access", 6, "return", 917, 25], ["eq", 7, 5, 6, 917, 25], ["move", 6, 7, 917, 25], - ["jump_true", 7, "or_end_708", 917, 25], + ["jump_true", 7, "or_end_626", 917, 25], ["access", 7, "go", 917, 42], ["eq", 8, 5, 7, 917, 42], ["move", 6, 8, 917, 42], - "or_end_708", - ["jump_false", 6, "if_else_706", 917, 42], + "or_end_626", + ["jump_false", 6, "if_else_624", 917, 42], ["load_field", 6, 4, "expression", 918, 29], ["get", 7, 4, 1, 918, 11], ["frame", 8, 7, 1, 918, 11], ["setarg", 8, 1, 6, 918, 11], ["invoke", 8, 6, 918, 11], - ["jump", "if_end_707", 918, 11], - "if_else_706", + ["jump", "if_end_625", 918, 11], + "if_else_624", ["access", 6, "block", 919, 25], ["eq", 7, 5, 6, 919, 25], - ["jump_false", 7, "if_else_709", 919, 25], + ["jump_false", 7, "if_else_627", 919, 25], ["load_field", 6, 4, "statements", 920, 30], ["get", 7, 3, 1, 920, 11], ["frame", 8, 7, 1, 920, 11], ["setarg", 8, 1, 6, 920, 11], ["invoke", 8, 6, 920, 11], - ["jump", "if_end_710", 920, 11], - "if_else_709", + ["jump", "if_end_628", 920, 11], + "if_else_627", ["access", 6, "label", 921, 25], ["eq", 7, 5, 6, 921, 25], - ["jump_false", 7, "if_else_711", 921, 25], + ["jump_false", 7, "if_else_629", 921, 25], ["load_field", 6, 4, "statement", 922, 15], ["null", 7, 922, 33], ["ne", 8, 6, 7, 922, 33], - ["jump_false", 8, "if_else_713", 922, 33], + ["jump_false", 8, "if_else_631", 922, 33], ["load_field", 6, 4, "statement", 922, 59], ["array", 7, 1, 922, 59], ["push", 7, 6, 922, 59], @@ -5634,48 +4779,29 @@ ["frame", 8, 6, 1, 922, 39], ["setarg", 8, 1, 7, 922, 39], ["invoke", 8, 6, 922, 39], - ["jump", "if_end_714", 922, 39], - "if_else_713", - "if_end_714", - ["jump", "if_end_712", 922, 39], - "if_else_711", - "if_end_712", - "if_end_710", - "if_end_707", - "if_end_700", - "if_end_697", - "if_end_693", - "if_end_691", - "if_end_685", - "if_end_682", - "if_end_680", + ["jump", "if_end_632", 922, 39], + "if_else_631", + "if_end_632", + ["jump", "if_end_630", 922, 39], + "if_else_629", + "if_end_630", + "if_end_628", + "if_end_625", + "if_end_618", + "if_end_615", + "if_end_611", + "if_end_609", + "if_end_605", + "if_end_602", + "if_end_600", ["access", 6, 1, 924, 17], - "_nop_tc_5", - "_nop_tc_6", - "_nop_tc_7", - "_nop_tc_8", ["add", 2, 2, 6, 924, 17], - ["jump", "num_done_716", 924, 17], - "num_err_715", - "_nop_ucfg_13", - "_nop_ucfg_14", - "_nop_ucfg_15", - "_nop_ucfg_16", - "_nop_ucfg_17", - "_nop_ucfg_18", - "_nop_ucfg_19", - "_nop_ucfg_20", - "_nop_ucfg_21", - "_nop_ucfg_22", - "_nop_ucfg_23", - "_nop_ucfg_24", - "num_done_716", - ["jump", "while_start_677", 924, 17], - "while_end_678", + ["jump", "while_start_597", 924, 17], + "while_end_598", ["null", 2, 924, 17], ["return", 2, 924, 17] ], - "_write_types": [null, null, "int", "int", null, null, "null", "bool", "null", "int", "bool", null, null, "text", "bool", null, null, null, null, null, null, null, null, null, null, null, "text", "bool", "bool", "text", "bool", null, null, null, null, "text", "bool", null, "int", "bool", null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "text", "bool", null, null, null, null, "text", "bool", null, null, null, null, null, null, null, null, null, null, null, null, null, "null", "bool", null, null, null, null, "text", "bool", "bool", "text", "bool", null, null, null, null, null, null, null, null, "text", "bool", null, "null", "bool", null, null, "text", "bool", "bool", null, null, "text", "bool", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "text", "bool", "bool", "text", "bool", null, null, null, null, "text", "bool", null, null, null, null, "text", "bool", null, "null", "bool", null, "array", null, null, null, "int", null, null, null, null, null, null, null, null, null, "null"], + "_write_types": [null, null, "int", "int", null, null, "null", "bool", "null", "int", "bool", null, null, "text", "bool", null, null, null, null, null, null, null, null, null, null, null, "text", "bool", "bool", "text", "bool", null, null, null, null, "text", "bool", null, "int", "bool", null, null, null, null, null, null, "int", "text", "bool", null, null, null, null, "text", "bool", null, null, null, null, null, null, null, null, null, null, null, null, null, "null", "bool", null, null, null, null, "text", "bool", "bool", "text", "bool", null, null, null, null, null, null, null, null, "text", "bool", null, "null", "bool", null, null, "text", "bool", "bool", null, null, "text", "bool", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "text", "bool", "bool", "text", "bool", null, null, null, null, "text", "bool", null, null, null, null, "text", "bool", null, "null", "bool", null, "array", null, null, null, "int", "null"], "name": "", "filename": ".cell/packages/core/fold.cm", "nr_args": 1 @@ -5688,127 +4814,127 @@ "instructions": [ ["null", 2, 937, 19], ["eq", 3, 1, 2, 937, 19], - ["jump_false", 3, "if_else_717", 937, 19], + ["jump_false", 3, "if_else_633", 937, 19], ["null", 2, 937, 32], ["return", 2, 937, 32], "_nop_ur_1", - "if_else_717", - "if_end_718", + "if_else_633", + "if_end_634", ["load_field", 2, 1, "kind", 938, 15], ["move", 3, 2, 938, 15], ["access", 4, 0, 939, 15], ["access", 5, "name", 940, 16], ["eq", 6, 2, 5, 940, 16], ["move", 2, 6, 940, 16], - ["jump_false", 6, "and_end_723", 940, 16], + ["jump_false", 6, "and_end_639", 940, 16], ["load_field", 5, 1, "level", 940, 26], ["access", 6, -1, 940, 40], ["eq", 7, 5, 6, 940, 40], ["move", 2, 7, 940, 40], - "and_end_723", + "and_end_639", ["move", 5, 2, 940, 40], - ["jump_false", 2, "and_end_722", 940, 40], + ["jump_false", 2, "and_end_638", 940, 40], ["load_field", 2, 1, "name", 940, 46], ["null", 6, 940, 59], ["ne", 7, 2, 6, 940, 59], ["move", 5, 7, 940, 59], - "and_end_722", + "and_end_638", ["move", 2, 5, 940, 59], - ["jump_false", 5, "and_end_721", 940, 59], + ["jump_false", 5, "and_end_637", 940, 59], ["load_field", 5, 1, "make", 940, 67], ["access", 6, "functino", 940, 80], ["ne", 7, 5, 6, 940, 80], ["move", 2, 7, 940, 80], - "and_end_721", - ["jump_false", 2, "if_else_719", 940, 80], + "and_end_637", + ["jump_false", 2, "if_else_635", 940, 80], ["true", 2, 941, 38], ["get", 5, 6, 1, 941, 9], ["load_field", 6, 1, "name", 941, 25], ["store_dynamic", 5, 2, 6, 941, 25], - ["jump", "if_end_720", 941, 25], - "if_else_719", - "if_end_720", + ["jump", "if_end_636", 941, 25], + "if_else_635", + "if_end_636", ["load_field", 2, 1, "left", 943, 11], ["null", 5, 943, 24], ["ne", 6, 2, 5, 943, 24], - ["jump_false", 6, "if_else_724", 943, 24], + ["jump_false", 6, "if_else_640", 943, 24], ["load_field", 2, 1, "left", 943, 54], ["get", 5, 7, 1, 943, 30], ["frame", 6, 5, 1, 943, 30], ["setarg", 6, 1, 2, 943, 30], ["invoke", 6, 2, 943, 30], - ["jump", "if_end_725", 943, 30], - "if_else_724", - "if_end_725", + ["jump", "if_end_641", 943, 30], + "if_else_640", + "if_end_641", ["load_field", 2, 1, "right", 944, 11], ["null", 5, 944, 25], ["ne", 6, 2, 5, 944, 25], - ["jump_false", 6, "if_else_726", 944, 25], + ["jump_false", 6, "if_else_642", 944, 25], ["load_field", 2, 1, "right", 944, 55], ["get", 5, 7, 1, 944, 31], ["frame", 6, 5, 1, 944, 31], ["setarg", 6, 1, 2, 944, 31], ["invoke", 6, 2, 944, 31], - ["jump", "if_end_727", 944, 31], - "if_else_726", - "if_end_727", + ["jump", "if_end_643", 944, 31], + "if_else_642", + "if_end_643", ["load_field", 2, 1, "expression", 945, 11], ["null", 5, 945, 30], ["ne", 6, 2, 5, 945, 30], - ["jump_false", 6, "if_else_728", 945, 30], + ["jump_false", 6, "if_else_644", 945, 30], ["load_field", 2, 1, "expression", 945, 60], ["get", 5, 7, 1, 945, 36], ["frame", 6, 5, 1, 945, 36], ["setarg", 6, 1, 2, 945, 36], ["invoke", 6, 2, 945, 36], - ["jump", "if_end_729", 945, 36], - "if_else_728", - "if_end_729", + ["jump", "if_end_645", 945, 36], + "if_else_644", + "if_end_645", ["load_field", 2, 1, "then", 946, 11], ["null", 5, 946, 24], ["ne", 6, 2, 5, 946, 24], - ["jump_false", 6, "if_else_730", 946, 24], + ["jump_false", 6, "if_else_646", 946, 24], ["load_field", 2, 1, "then", 946, 54], ["get", 5, 7, 1, 946, 30], ["frame", 6, 5, 1, 946, 30], ["setarg", 6, 1, 2, 946, 30], ["invoke", 6, 2, 946, 30], - ["jump", "if_end_731", 946, 30], - "if_else_730", - "if_end_731", + ["jump", "if_end_647", 946, 30], + "if_else_646", + "if_end_647", ["load_field", 2, 1, "else", 947, 11], ["null", 5, 947, 24], ["ne", 6, 2, 5, 947, 24], - ["jump_false", 6, "if_else_732", 947, 24], + ["jump_false", 6, "if_else_648", 947, 24], ["load_field", 2, 1, "else", 947, 54], ["get", 5, 7, 1, 947, 30], ["frame", 6, 5, 1, 947, 30], ["setarg", 6, 1, 2, 947, 30], ["invoke", 6, 2, 947, 30], - ["jump", "if_end_733", 947, 30], - "if_else_732", - "if_end_733", + ["jump", "if_end_649", 947, 30], + "if_else_648", + "if_end_649", ["access", 2, "(", 948, 16], ["eq", 5, 3, 2, 948, 16], ["move", 2, 5, 948, 16], - ["jump_true", 5, "or_end_737", 948, 16], + ["jump_true", 5, "or_end_653", 948, 16], ["access", 5, "array", 948, 28], ["eq", 6, 3, 5, 948, 28], ["move", 2, 6, 948, 28], - "or_end_737", + "or_end_653", ["move", 5, 2, 948, 28], - ["jump_true", 2, "or_end_736", 948, 28], + ["jump_true", 2, "or_end_652", 948, 28], ["access", 2, "text literal", 948, 44], ["eq", 6, 3, 2, 948, 44], ["move", 5, 6, 948, 44], - "or_end_736", - ["jump_false", 5, "if_else_734", 948, 44], + "or_end_652", + ["jump_false", 5, "if_else_650", 948, 44], ["access", 4, 0, 949, 13], - "while_start_738", + "while_start_654", ["load_field", 2, 1, "list", 950, 27], ["length", 5, 2, 950, 27], ["lt", 2, 4, 5, 950, 27], - ["jump_false", 2, "while_end_739", 950, 27], + ["jump_false", 2, "while_end_655", 950, 27], ["load_field", 2, 1, "list", 951, 35], ["load_index", 5, 2, 4, 951, 45], ["get", 2, 7, 1, 951, 11], @@ -5816,44 +4942,25 @@ ["setarg", 6, 1, 5, 951, 11], ["invoke", 6, 2, 951, 11], ["access", 2, 1, 952, 19], - "_nop_tc_1", - "_nop_tc_2", - "_nop_tc_3", - "_nop_tc_4", ["add", 4, 4, 2, 952, 19], - ["jump", "num_done_741", 952, 19], - "num_err_740", - "_nop_ucfg_1", - "_nop_ucfg_2", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "num_done_741", - ["jump", "while_start_738", 952, 19], - "while_end_739", - ["jump", "if_end_735", 952, 19], - "if_else_734", - "if_end_735", + ["jump", "while_start_654", 952, 19], + "while_end_655", + ["jump", "if_end_651", 952, 19], + "if_else_650", + "if_end_651", ["access", 2, "record", 955, 16], ["eq", 5, 3, 2, 955, 16], - ["jump_false", 5, "if_else_742", 955, 16], + ["jump_false", 5, "if_else_656", 955, 16], ["access", 4, 0, 956, 13], - "while_start_744", + "while_start_658", ["load_field", 2, 1, "list", 957, 27], ["length", 5, 2, 957, 27], ["lt", 2, 4, 5, 957, 27], - ["jump_false", 2, "while_end_745", 957, 27], + ["jump_false", 2, "while_end_659", 957, 27], ["load_field", 2, 1, "list", 958, 15], ["load_index", 5, 2, 4, 958, 25], ["load_field", 2, 5, "computed", 958, 25], - ["jump_false", 2, "if_else_746", 958, 25], + ["wary_false", 2, "if_else_660", 958, 25], ["load_field", 2, 1, "list", 958, 62], ["load_index", 5, 2, 4, 958, 72], ["load_field", 2, 5, "left", 958, 72], @@ -5861,9 +4968,9 @@ ["frame", 6, 5, 1, 958, 38], ["setarg", 6, 1, 2, 958, 38], ["invoke", 6, 2, 958, 38], - ["jump", "if_end_747", 958, 38], - "if_else_746", - "if_end_747", + ["jump", "if_end_661", 958, 38], + "if_else_660", + "if_end_661", ["load_field", 2, 1, "list", 959, 35], ["load_index", 5, 2, 4, 959, 45], ["load_field", 2, 5, "right", 959, 45], @@ -5872,34 +4979,15 @@ ["setarg", 6, 1, 2, 959, 11], ["invoke", 6, 2, 959, 11], ["access", 2, 1, 960, 19], - "_nop_tc_5", - "_nop_tc_6", - "_nop_tc_7", - "_nop_tc_8", ["add", 4, 4, 2, 960, 19], - ["jump", "num_done_749", 960, 19], - "num_err_748", - "_nop_ucfg_13", - "_nop_ucfg_14", - "_nop_ucfg_15", - "_nop_ucfg_16", - "_nop_ucfg_17", - "_nop_ucfg_18", - "_nop_ucfg_19", - "_nop_ucfg_20", - "_nop_ucfg_21", - "_nop_ucfg_22", - "_nop_ucfg_23", - "_nop_ucfg_24", - "num_done_749", - ["jump", "while_start_744", 960, 19], - "while_end_745", - ["jump", "if_end_743", 960, 19], - "if_else_742", - "if_end_743", + ["jump", "while_start_658", 960, 19], + "while_end_659", + ["jump", "if_end_657", 960, 19], + "if_else_656", + "if_end_657", ["access", 2, "function", 963, 16], ["eq", 5, 3, 2, 963, 16], - ["jump_false", 5, "if_else_750", 963, 16], + ["jump_false", 5, "if_else_662", 963, 16], ["load_field", 2, 1, "statements", 964, 28], ["get", 3, 5, 1, 964, 9], ["frame", 5, 3, 1, 964, 9], @@ -5911,17 +4999,17 @@ ["setarg", 5, 1, 2, 965, 9], ["invoke", 5, 2, 965, 9], ["access", 4, 0, 966, 13], - "while_start_752", + "while_start_664", ["load_field", 2, 1, "list", 967, 27], ["length", 3, 2, 967, 27], ["lt", 2, 4, 3, 967, 27], - ["jump_false", 2, "while_end_753", 967, 27], + ["jump_false", 2, "while_end_665", 967, 27], ["load_field", 2, 1, "list", 968, 15], ["load_index", 3, 2, 4, 968, 25], ["load_field", 2, 3, "expression", 968, 25], ["null", 3, 968, 42], ["ne", 5, 2, 3, 968, 42], - ["jump_false", 5, "if_else_754", 968, 42], + ["jump_false", 5, "if_else_666", 968, 42], ["load_field", 2, 1, "list", 969, 37], ["load_index", 3, 2, 4, 969, 47], ["load_field", 2, 3, "expression", 969, 47], @@ -5929,39 +5017,20 @@ ["frame", 5, 3, 1, 969, 13], ["setarg", 5, 1, 2, 969, 13], ["invoke", 5, 2, 969, 13], - ["jump", "if_end_755", 969, 13], - "if_else_754", - "if_end_755", + ["jump", "if_end_667", 969, 13], + "if_else_666", + "if_end_667", ["access", 2, 1, 971, 19], - "_nop_tc_9", - "_nop_tc_10", - "_nop_tc_11", - "_nop_tc_12", ["add", 4, 4, 2, 971, 19], - ["jump", "num_done_757", 971, 19], - "num_err_756", - "_nop_ucfg_25", - "_nop_ucfg_26", - "_nop_ucfg_27", - "_nop_ucfg_28", - "_nop_ucfg_29", - "_nop_ucfg_30", - "_nop_ucfg_31", - "_nop_ucfg_32", - "_nop_ucfg_33", - "_nop_ucfg_34", - "_nop_ucfg_35", - "_nop_ucfg_36", - "num_done_757", - ["jump", "while_start_752", 971, 19], - "while_end_753", - ["jump", "if_end_751", 971, 19], - "if_else_750", - "if_end_751", + ["jump", "while_start_664", 971, 19], + "while_end_665", + ["jump", "if_end_663", 971, 19], + "if_else_662", + "if_end_663", ["null", 2, 971, 19], ["return", 2, 971, 19] ], - "_write_types": [null, null, "int", null, "null", "bool", "null", null, "text", "bool", "bool", null, "int", "bool", "bool", null, "null", "bool", "bool", null, "text", "bool", "bool", null, null, null, "null", "bool", null, null, null, null, null, "null", "bool", null, null, null, null, null, "null", "bool", null, null, null, null, null, "null", "bool", null, null, null, null, null, "null", "bool", null, null, null, null, "text", "bool", "bool", "text", "bool", "bool", "text", "bool", null, "int", "bool", null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "text", "bool", null, "int", "bool", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "text", "bool", null, null, null, null, null, null, null, null, null, "int", "bool", null, null, null, "null", "bool", null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "null"], + "_write_types": [null, null, "int", null, "null", "bool", "null", null, "text", "bool", "bool", null, "int", "bool", "bool", null, "null", "bool", "bool", null, "text", "bool", "bool", null, null, null, "null", "bool", null, null, null, null, null, "null", "bool", null, null, null, null, null, "null", "bool", null, null, null, null, null, "null", "bool", null, null, null, null, null, "null", "bool", null, null, null, null, "text", "bool", "bool", "text", "bool", "bool", "text", "bool", null, "int", "bool", null, null, null, null, null, "int", "text", "bool", null, "int", "bool", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "int", "text", "bool", null, null, null, null, null, null, null, null, null, "int", "bool", null, null, null, "null", "bool", null, null, null, null, null, null, "int", "null"], "name": "", "filename": ".cell/packages/core/fold.cm", "nr_args": 1 @@ -5974,21 +5043,21 @@ "instructions": [ ["null", 2, 977, 20], ["eq", 3, 1, 2, 977, 20], - ["jump_false", 3, "if_else_758", 977, 20], + ["jump_false", 3, "if_else_668", 977, 20], ["null", 2, 977, 33], ["return", 2, 977, 33], "_nop_ur_1", - "if_else_758", - "if_end_759", + "if_else_668", + "if_end_669", ["access", 2, 0, 978, 15], ["access", 3, 0, 979, 15], ["access", 4, 0, 980, 16], ["null", 5, 981, 18], ["null", 6, 982, 15], - "while_start_760", + "while_start_670", ["length", 7, 1, 983, 25], ["lt", 8, 2, 7, 983, 25], - ["jump_false", 8, "while_end_761", 983, 25], + ["jump_false", 8, "while_end_671", 983, 25], ["load_index", 7, 1, 2, 984, 22], ["move", 5, 7, 984, 22], ["load_field", 8, 7, "kind", 985, 13], @@ -5996,28 +5065,28 @@ ["access", 7, "var", 986, 18], ["eq", 9, 8, 7, 986, 18], ["move", 7, 9, 986, 18], - ["jump_true", 9, "or_end_764", 986, 18], + ["jump_true", 9, "or_end_674", 986, 18], ["access", 8, "def", 986, 32], ["eq", 9, 6, 8, 986, 32], ["move", 7, 9, 986, 32], - "or_end_764", - ["jump_false", 7, "if_else_762", 986, 32], + "or_end_674", + ["jump_false", 7, "if_else_672", 986, 32], ["load_field", 7, 5, "right", 987, 35], ["get", 8, 7, 1, 987, 11], ["frame", 9, 8, 1, 987, 11], ["setarg", 9, 1, 7, 987, 11], ["invoke", 9, 7, 987, 11], - ["jump", "if_end_763", 987, 11], - "if_else_762", + ["jump", "if_end_673", 987, 11], + "if_else_672", ["access", 7, "var_list", 988, 25], ["eq", 8, 6, 7, 988, 25], - ["jump_false", 8, "if_else_765", 988, 25], + ["jump_false", 8, "if_else_675", 988, 25], ["access", 3, 0, 989, 15], - "while_start_767", + "while_start_677", ["load_field", 7, 5, "list", 990, 29], ["length", 8, 7, 990, 29], ["lt", 7, 3, 8, 990, 29], - ["jump_false", 7, "while_end_768", 990, 29], + ["jump_false", 7, "while_end_678", 990, 29], ["load_field", 7, 5, "list", 991, 37], ["load_index", 8, 7, 3, 991, 47], ["load_field", 7, 8, "right", 991, 47], @@ -6026,43 +5095,24 @@ ["setarg", 9, 1, 7, 991, 13], ["invoke", 9, 7, 991, 13], ["access", 7, 1, 992, 21], - "_nop_tc_1", - "_nop_tc_2", - "_nop_tc_3", - "_nop_tc_4", ["add", 3, 3, 7, 992, 21], - ["jump", "num_done_770", 992, 21], - "num_err_769", - "_nop_ucfg_1", - "_nop_ucfg_2", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "num_done_770", - ["jump", "while_start_767", 992, 21], - "while_end_768", - ["jump", "if_end_766", 992, 21], - "if_else_765", + ["jump", "while_start_677", 992, 21], + "while_end_678", + ["jump", "if_end_676", 992, 21], + "if_else_675", ["access", 7, "call", 994, 25], ["eq", 8, 6, 7, 994, 25], - ["jump_false", 8, "if_else_771", 994, 25], + ["jump_false", 8, "if_else_679", 994, 25], ["load_field", 7, 5, "expression", 995, 35], ["get", 8, 7, 1, 995, 11], ["frame", 9, 8, 1, 995, 11], ["setarg", 9, 1, 7, 995, 11], ["invoke", 9, 7, 995, 11], - ["jump", "if_end_772", 995, 11], - "if_else_771", + ["jump", "if_end_680", 995, 11], + "if_else_679", ["access", 7, "if", 996, 25], ["eq", 8, 6, 7, 996, 25], - ["jump_false", 8, "if_else_773", 996, 25], + ["jump_false", 8, "if_else_681", 996, 25], ["load_field", 7, 5, "expression", 997, 35], ["get", 8, 7, 1, 997, 11], ["frame", 9, 8, 1, 997, 11], @@ -6081,26 +5131,26 @@ ["load_field", 7, 5, "else", 1000, 15], ["null", 8, 1000, 28], ["ne", 9, 7, 8, 1000, 28], - ["jump_false", 9, "if_else_775", 1000, 28], + ["jump_false", 9, "if_else_683", 1000, 28], ["load_field", 7, 5, "else", 1000, 53], ["get", 8, 5, 1, 1000, 34], ["frame", 9, 8, 1, 1000, 34], ["setarg", 9, 1, 7, 1000, 34], ["invoke", 9, 7, 1000, 34], - ["jump", "if_end_776", 1000, 34], - "if_else_775", - "if_end_776", - ["jump", "if_end_774", 1000, 34], - "if_else_773", + ["jump", "if_end_684", 1000, 34], + "if_else_683", + "if_end_684", + ["jump", "if_end_682", 1000, 34], + "if_else_681", ["access", 7, "while", 1001, 25], ["eq", 8, 6, 7, 1001, 25], ["move", 7, 8, 1001, 25], - ["jump_true", 8, "or_end_779", 1001, 25], + ["jump_true", 8, "or_end_687", 1001, 25], ["access", 8, "do", 1001, 41], ["eq", 9, 6, 8, 1001, 41], ["move", 7, 9, 1001, 41], - "or_end_779", - ["jump_false", 7, "if_else_777", 1001, 41], + "or_end_687", + ["jump_false", 7, "if_else_685", 1001, 41], ["load_field", 7, 5, "expression", 1002, 35], ["get", 8, 7, 1, 1002, 11], ["frame", 9, 8, 1, 1002, 11], @@ -6111,45 +5161,45 @@ ["frame", 9, 8, 1, 1003, 11], ["setarg", 9, 1, 7, 1003, 11], ["invoke", 9, 7, 1003, 11], - ["jump", "if_end_778", 1003, 11], - "if_else_777", + ["jump", "if_end_686", 1003, 11], + "if_else_685", ["access", 7, "for", 1004, 25], ["eq", 8, 6, 7, 1004, 25], - ["jump_false", 8, "if_else_780", 1004, 25], + ["jump_false", 8, "if_else_688", 1004, 25], ["load_field", 7, 5, "init", 1005, 15], ["null", 8, 1005, 28], ["ne", 9, 7, 8, 1005, 28], - ["jump_false", 9, "if_else_782", 1005, 28], + ["jump_false", 9, "if_else_690", 1005, 28], ["load_field", 7, 5, "init", 1006, 17], ["load_field", 8, 7, "kind", 1006, 17], ["access", 7, "var", 1006, 35], ["eq", 9, 8, 7, 1006, 35], ["move", 7, 9, 1006, 35], - ["jump_true", 9, "or_end_786", 1006, 35], + ["jump_true", 9, "or_end_694", 1006, 35], ["load_field", 8, 5, "init", 1006, 44], ["load_field", 9, 8, "kind", 1006, 44], ["access", 8, "def", 1006, 62], ["eq", 10, 9, 8, 1006, 62], ["move", 7, 10, 1006, 62], - "or_end_786", - ["jump_false", 7, "if_else_784", 1006, 62], + "or_end_694", + ["jump_false", 7, "if_else_692", 1006, 62], ["load_field", 7, 5, "init", 1007, 39], ["load_field", 8, 7, "right", 1007, 39], ["get", 7, 7, 1, 1007, 15], ["frame", 9, 7, 1, 1007, 15], ["setarg", 9, 1, 8, 1007, 15], ["invoke", 9, 7, 1007, 15], - ["jump", "if_end_785", 1007, 15], - "if_else_784", + ["jump", "if_end_693", 1007, 15], + "if_else_692", ["load_field", 7, 5, "init", 1009, 39], ["get", 8, 7, 1, 1009, 15], ["frame", 9, 8, 1, 1009, 15], ["setarg", 9, 1, 7, 1009, 15], ["invoke", 9, 7, 1009, 15], - "if_end_785", - ["jump", "if_end_783", 1009, 15], - "if_else_782", - "if_end_783", + "if_end_693", + ["jump", "if_end_691", 1009, 15], + "if_else_690", + "if_end_691", ["load_field", 7, 5, "test", 1012, 35], ["get", 8, 7, 1, 1012, 11], ["frame", 9, 8, 1, 1012, 11], @@ -6165,27 +5215,27 @@ ["frame", 9, 8, 1, 1014, 11], ["setarg", 9, 1, 7, 1014, 11], ["invoke", 9, 7, 1014, 11], - ["jump", "if_end_781", 1014, 11], - "if_else_780", + ["jump", "if_end_689", 1014, 11], + "if_else_688", ["access", 7, "return", 1015, 25], ["eq", 8, 6, 7, 1015, 25], ["move", 7, 8, 1015, 25], - ["jump_true", 8, "or_end_789", 1015, 25], + ["jump_true", 8, "or_end_697", 1015, 25], ["access", 8, "go", 1015, 42], ["eq", 9, 6, 8, 1015, 42], ["move", 7, 9, 1015, 42], - "or_end_789", - ["jump_false", 7, "if_else_787", 1015, 42], + "or_end_697", + ["jump_false", 7, "if_else_695", 1015, 42], ["load_field", 7, 5, "expression", 1016, 35], ["get", 8, 7, 1, 1016, 11], ["frame", 9, 8, 1, 1016, 11], ["setarg", 9, 1, 7, 1016, 11], ["invoke", 9, 7, 1016, 11], - ["jump", "if_end_788", 1016, 11], - "if_else_787", + ["jump", "if_end_696", 1016, 11], + "if_else_695", ["access", 7, "function", 1017, 25], ["eq", 8, 6, 7, 1017, 25], - ["jump_false", 8, "if_else_790", 1017, 25], + ["jump_false", 8, "if_else_698", 1017, 25], ["load_field", 7, 5, "statements", 1018, 30], ["get", 8, 5, 1, 1018, 11], ["frame", 9, 8, 1, 1018, 11], @@ -6197,17 +5247,17 @@ ["setarg", 9, 1, 7, 1019, 11], ["invoke", 9, 7, 1019, 11], ["access", 4, 0, 1020, 16], - "while_start_792", + "while_start_700", ["load_field", 7, 5, "list", 1021, 30], ["length", 8, 7, 1021, 30], ["lt", 7, 4, 8, 1021, 30], - ["jump_false", 7, "while_end_793", 1021, 30], + ["jump_false", 7, "while_end_701", 1021, 30], ["load_field", 7, 5, "list", 1022, 17], ["load_index", 8, 7, 4, 1022, 27], ["load_field", 7, 8, "expression", 1022, 27], ["null", 8, 1022, 45], ["ne", 9, 7, 8, 1022, 45], - ["jump_false", 9, "if_else_794", 1022, 45], + ["jump_false", 9, "if_else_702", 1022, 45], ["load_field", 7, 5, "list", 1023, 39], ["load_index", 8, 7, 4, 1023, 49], ["load_field", 7, 8, "expression", 1023, 49], @@ -6215,51 +5265,32 @@ ["frame", 9, 8, 1, 1023, 15], ["setarg", 9, 1, 7, 1023, 15], ["invoke", 9, 7, 1023, 15], - ["jump", "if_end_795", 1023, 15], - "if_else_794", - "if_end_795", + ["jump", "if_end_703", 1023, 15], + "if_else_702", + "if_end_703", ["access", 7, 1, 1025, 23], - "_nop_tc_5", - "_nop_tc_6", - "_nop_tc_7", - "_nop_tc_8", ["add", 4, 4, 7, 1025, 23], - ["jump", "num_done_797", 1025, 23], - "num_err_796", - "_nop_ucfg_13", - "_nop_ucfg_14", - "_nop_ucfg_15", - "_nop_ucfg_16", - "_nop_ucfg_17", - "_nop_ucfg_18", - "_nop_ucfg_19", - "_nop_ucfg_20", - "_nop_ucfg_21", - "_nop_ucfg_22", - "_nop_ucfg_23", - "_nop_ucfg_24", - "num_done_797", - ["jump", "while_start_792", 1025, 23], - "while_end_793", - ["jump", "if_end_791", 1025, 23], - "if_else_790", + ["jump", "while_start_700", 1025, 23], + "while_end_701", + ["jump", "if_end_699", 1025, 23], + "if_else_698", ["access", 7, "block", 1027, 25], ["eq", 8, 6, 7, 1027, 25], - ["jump_false", 8, "if_else_798", 1027, 25], + ["jump_false", 8, "if_else_704", 1027, 25], ["load_field", 7, 5, "statements", 1028, 30], ["get", 8, 5, 1, 1028, 11], ["frame", 9, 8, 1, 1028, 11], ["setarg", 9, 1, 7, 1028, 11], ["invoke", 9, 7, 1028, 11], - ["jump", "if_end_799", 1028, 11], - "if_else_798", + ["jump", "if_end_705", 1028, 11], + "if_else_704", ["access", 7, "label", 1029, 25], ["eq", 8, 6, 7, 1029, 25], - ["jump_false", 8, "if_else_800", 1029, 25], + ["jump_false", 8, "if_else_706", 1029, 25], ["load_field", 7, 5, "statement", 1030, 15], ["null", 8, 1030, 33], ["ne", 9, 7, 8, 1030, 33], - ["jump_false", 9, "if_else_802", 1030, 33], + ["jump_false", 9, "if_else_708", 1030, 33], ["load_field", 7, 5, "statement", 1030, 59], ["array", 8, 1, 1030, 59], ["push", 8, 7, 1030, 59], @@ -6267,48 +5298,29 @@ ["frame", 9, 7, 1, 1030, 39], ["setarg", 9, 1, 8, 1030, 39], ["invoke", 9, 7, 1030, 39], - ["jump", "if_end_803", 1030, 39], - "if_else_802", - "if_end_803", - ["jump", "if_end_801", 1030, 39], - "if_else_800", - "if_end_801", - "if_end_799", - "if_end_791", - "if_end_788", - "if_end_781", - "if_end_778", - "if_end_774", - "if_end_772", - "if_end_766", - "if_end_763", + ["jump", "if_end_709", 1030, 39], + "if_else_708", + "if_end_709", + ["jump", "if_end_707", 1030, 39], + "if_else_706", + "if_end_707", + "if_end_705", + "if_end_699", + "if_end_696", + "if_end_689", + "if_end_686", + "if_end_682", + "if_end_680", + "if_end_676", + "if_end_673", ["access", 7, 1, 1032, 17], - "_nop_tc_9", - "_nop_tc_10", - "_nop_tc_11", - "_nop_tc_12", ["add", 2, 2, 7, 1032, 17], - ["jump", "num_done_805", 1032, 17], - "num_err_804", - "_nop_ucfg_25", - "_nop_ucfg_26", - "_nop_ucfg_27", - "_nop_ucfg_28", - "_nop_ucfg_29", - "_nop_ucfg_30", - "_nop_ucfg_31", - "_nop_ucfg_32", - "_nop_ucfg_33", - "_nop_ucfg_34", - "_nop_ucfg_35", - "_nop_ucfg_36", - "num_done_805", - ["jump", "while_start_760", 1032, 17], - "while_end_761", + ["jump", "while_start_670", 1032, 17], + "while_end_671", ["null", 2, 1032, 17], ["return", 2, 1032, 17] ], - "_write_types": [null, null, "int", "int", null, "int", null, "null", "bool", "null", "int", "bool", null, null, "text", "bool", "bool", "text", "bool", null, null, null, null, "text", "bool", null, "int", "bool", null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "text", "bool", null, null, null, null, "text", "bool", null, null, null, null, null, null, null, null, null, null, null, null, null, "null", "bool", null, null, null, null, "text", "bool", "bool", "text", "bool", null, null, null, null, null, null, null, null, "text", "bool", null, "null", "bool", null, null, "text", "bool", "bool", null, null, "text", "bool", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "text", "bool", "bool", "text", "bool", null, null, null, null, "text", "bool", null, null, null, null, null, null, null, null, null, "int", "bool", null, null, null, "null", "bool", null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "text", "bool", null, null, null, null, "text", "bool", null, "null", "bool", null, "array", null, null, null, "int", null, null, null, null, null, null, null, null, null, "null"], + "_write_types": [null, null, "int", "int", null, "int", null, "null", "bool", "null", "int", "bool", null, null, "text", "bool", "bool", "text", "bool", null, null, null, null, "text", "bool", null, "int", "bool", null, null, null, null, null, null, "int", "text", "bool", null, null, null, null, "text", "bool", null, null, null, null, null, null, null, null, null, null, null, null, null, "null", "bool", null, null, null, null, "text", "bool", "bool", "text", "bool", null, null, null, null, null, null, null, null, "text", "bool", null, "null", "bool", null, null, "text", "bool", "bool", null, null, "text", "bool", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "text", "bool", "bool", "text", "bool", null, null, null, null, "text", "bool", null, null, null, null, null, null, null, null, null, "int", "bool", null, null, null, "null", "bool", null, null, null, null, null, null, "int", "text", "bool", null, null, null, null, "text", "bool", null, "null", "bool", null, "array", null, null, null, "int", "null"], "name": "", "filename": ".cell/packages/core/fold.cm", "nr_args": 1 @@ -6327,10 +5339,10 @@ ["null", 6, 786, 17], ["access", 7, 0, 787, 17], ["access", 8, 0, 788, 23], - "while_start_602", + "while_start_540", ["get", 9, 2, 1, 791, 16], ["lt", 10, 1, 9, 791, 16], - ["jump_false", 10, "while_end_603", 791, 16], + ["jump_false", 10, "while_end_541", 791, 16], ["get", 9, 3, 1, 792, 12], ["load_index", 10, 9, 1, 792, 19], ["move", 2, 10, 792, 19], @@ -6352,147 +5364,71 @@ ["access", 7, 0, 794, 15], ["access", 8, 0, 795, 21], ["access", 4, 0, 796, 11], - "while_start_604", + "while_start_542", ["length", 9, 3, 797, 25], ["lt", 10, 4, 9, 797, 25], - ["jump_false", 10, "while_end_605", 797, 25], + ["jump_false", 10, "while_end_543", 797, 25], ["load_index", 9, 3, 4, 798, 20], ["move", 5, 9, 798, 20], ["access", 10, "function_nr", 799, 20], ["ne", 11, 9, 10, 799, 20], - ["jump_false", 11, "if_else_606", 799, 20], + ["jump_false", 11, "if_else_544", 799, 20], ["load_dynamic", 9, 2, 5, 800, 22], ["move", 6, 9, 800, 22], ["null", 10, 801, 24], ["ne", 11, 9, 10, 801, 24], ["move", 9, 11, 801, 24], - ["jump_false", 11, "and_end_612", 801, 24], + ["jump_false", 11, "and_end_550", 801, 24], ["load_field", 10, 6, "nr_uses", 801, 32], ["access", 11, 0, 801, 49], ["eq", 12, 10, 11, 801, 49], ["move", 9, 12, 801, 49], - "and_end_612", + "and_end_550", ["move", 10, 9, 801, 49], - ["jump_false", 9, "and_end_611", 801, 49], + ["jump_false", 9, "and_end_549", 801, 49], ["load_field", 9, 6, "make", 801, 54], ["access", 11, "input", 801, 68], ["ne", 12, 9, 11, 801, 68], ["move", 10, 12, 801, 68], - "and_end_611", + "and_end_549", ["move", 9, 10, 801, 68], - ["jump_false", 10, "and_end_610", 801, 68], + ["jump_false", 10, "and_end_548", 801, 68], ["load_field", 10, 6, "make", 801, 79], ["access", 11, "function", 801, 93], ["ne", 12, 10, 11, 801, 93], ["move", 9, 12, 801, 93], - "and_end_610", - ["jump_false", 9, "if_else_608", 801, 93], + "and_end_548", + ["jump_false", 9, "if_else_546", 801, 93], ["delete", 9, 2, 5, 802, 23], - ["jump", "if_end_609", 802, 23], - "if_else_608", + ["jump", "if_end_547", 802, 23], + "if_else_546", ["null", 9, 803, 31], ["ne", 10, 6, 9, 803, 31], - ["jump_false", 10, "if_else_613", 803, 31], + ["jump_false", 10, "if_else_551", 803, 31], ["access", 9, 1, 804, 29], - "_nop_tc_1", - "_nop_tc_2", - "_nop_tc_3", - "_nop_tc_4", ["add", 7, 7, 9, 804, 29], - ["jump", "num_done_616", 804, 29], - "num_err_615", - "_nop_ucfg_1", - "_nop_ucfg_2", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "num_done_616", ["load_field", 9, 6, "closure", 805, 17], - ["jump_false", 9, "if_else_617", 805, 17], + ["wary_false", 9, "if_else_553", 805, 17], ["access", 9, 1, 805, 60], - "_nop_tc_5", - "_nop_tc_6", - "_nop_tc_7", - "_nop_tc_8", ["add", 8, 8, 9, 805, 60], - ["jump", "num_done_620", 805, 60], - "num_err_619", - "_nop_ucfg_13", - "_nop_ucfg_14", - "_nop_ucfg_15", - "_nop_ucfg_16", - "_nop_ucfg_17", - "_nop_ucfg_18", - "_nop_ucfg_19", - "_nop_ucfg_20", - "_nop_ucfg_21", - "_nop_ucfg_22", - "_nop_ucfg_23", - "_nop_ucfg_24", - "num_done_620", - ["jump", "if_end_618", 805, 60], - "if_else_617", - "if_end_618", - ["jump", "if_end_614", 805, 60], - "if_else_613", - "if_end_614", - "if_end_609", - ["jump", "if_end_607", 805, 60], - "if_else_606", - "if_end_607", + ["jump", "if_end_554", 805, 60], + "if_else_553", + "if_end_554", + ["jump", "if_end_552", 805, 60], + "if_else_551", + "if_end_552", + "if_end_547", + ["jump", "if_end_545", 805, 60], + "if_else_544", + "if_end_545", ["access", 9, 1, 808, 17], - "_nop_tc_9", - "_nop_tc_10", - "_nop_tc_11", - "_nop_tc_12", ["add", 4, 4, 9, 808, 17], - ["jump", "num_done_622", 808, 17], - "num_err_621", - "_nop_ucfg_25", - "_nop_ucfg_26", - "_nop_ucfg_27", - "_nop_ucfg_28", - "_nop_ucfg_29", - "_nop_ucfg_30", - "_nop_ucfg_31", - "_nop_ucfg_32", - "_nop_ucfg_33", - "_nop_ucfg_34", - "_nop_ucfg_35", - "_nop_ucfg_36", - "num_done_622", - ["jump", "while_start_604", 808, 17], - "while_end_605", + ["jump", "while_start_542", 808, 17], + "while_end_543", ["access", 9, 1, 810, 15], - "_nop_tc_13", - "_nop_tc_14", - "_nop_tc_15", - "_nop_tc_16", ["add", 1, 1, 9, 810, 15], - ["jump", "num_done_624", 810, 15], - "num_err_623", - "_nop_ucfg_37", - "_nop_ucfg_38", - "_nop_ucfg_39", - "_nop_ucfg_40", - "_nop_ucfg_41", - "_nop_ucfg_42", - "_nop_ucfg_43", - "_nop_ucfg_44", - "_nop_ucfg_45", - "_nop_ucfg_46", - "_nop_ucfg_47", - "_nop_ucfg_48", - "num_done_624", - ["jump", "while_start_602", 810, 15], - "while_end_603", + ["jump", "while_start_540", 810, 15], + "while_end_541", ["null", 2, 814, 27], ["function", 3, 22, 815, 23], ["move", 2, 3, 815, 23], @@ -6533,72 +5469,53 @@ ["array", 8, 0, 1039, 26], ["move", 9, 8, 1039, 26], ["access", 1, 0, 1040, 9], - "while_start_806", + "while_start_710", ["get", 8, 1, 1, 1041, 23], ["load_field", 10, 8, "intrinsics", 1041, 23], ["length", 8, 10, 1041, 23], ["lt", 10, 1, 8, 1041, 23], - ["jump_false", 10, "while_end_807", 1041, 23], + ["jump_false", 10, "while_end_711", 1041, 23], ["get", 8, 1, 1, 1042, 27], ["load_field", 10, 8, "intrinsics", 1042, 27], ["load_index", 8, 10, 1, 1042, 42], ["load_dynamic", 10, 6, 8, 1042, 42], ["true", 8, 1042, 49], ["eq", 11, 10, 8, 1042, 49], - ["jump_false", 11, "if_else_808", 1042, 49], + ["jump_false", 11, "if_else_712", 1042, 49], ["get", 8, 1, 1, 1043, 30], ["load_field", 10, 8, "intrinsics", 1043, 30], ["load_index", 8, 10, 1, 1043, 45], - "_nop_tc_17", - "_nop_tc_18", + "_nop_tc_1", + "_nop_tc_2", ["push", 9, 8, 1043, 45], - ["jump", "push_done_811", 1043, 45], - "push_err_810", - "_nop_ucfg_49", - "_nop_ucfg_50", - "_nop_ucfg_51", - "_nop_ucfg_52", - "_nop_ucfg_53", - "_nop_ucfg_54", - "_nop_ucfg_55", - "_nop_ucfg_56", - "_nop_ucfg_57", - "_nop_ucfg_58", - "_nop_ucfg_59", - "_nop_ucfg_60", - "push_done_811", - ["jump", "if_end_809", 1043, 45], - "if_else_808", - "if_end_809", + ["jump", "push_done_715", 1043, 45], + "push_err_714", + "_nop_ucfg_1", + "_nop_ucfg_2", + "_nop_ucfg_3", + "_nop_ucfg_4", + "_nop_ucfg_5", + "_nop_ucfg_6", + "_nop_ucfg_7", + "_nop_ucfg_8", + "_nop_ucfg_9", + "_nop_ucfg_10", + "_nop_ucfg_11", + "_nop_ucfg_12", + "push_done_715", + ["jump", "if_end_713", 1043, 45], + "if_else_712", + "if_end_713", ["access", 8, 1, 1045, 15], - "_nop_tc_19", - "_nop_tc_20", - "_nop_tc_21", - "_nop_tc_22", ["add", 1, 1, 8, 1045, 15], - ["jump", "num_done_813", 1045, 15], - "num_err_812", - "_nop_ucfg_61", - "_nop_ucfg_62", - "_nop_ucfg_63", - "_nop_ucfg_64", - "_nop_ucfg_65", - "_nop_ucfg_66", - "_nop_ucfg_67", - "_nop_ucfg_68", - "_nop_ucfg_69", - "_nop_ucfg_70", - "_nop_ucfg_71", - "_nop_ucfg_72", - "num_done_813", - ["jump", "while_start_806", 1045, 15], - "while_end_807", + ["jump", "while_start_710", 1045, 15], + "while_end_711", ["get", 1, 1, 1, 1047, 5], ["store_field", 1, 9, "intrinsics", 1047, 5], ["null", 1, 1047, 5], ["return", 1, 1047, 5] ], - "_write_types": [null, null, null, null, "record", null, null, "int", null, "int", "int", null, null, "array", null, "int", null, "bool", null, null, null, null, null, "int", "bool", null, "text", "bool", null, "null", "bool", "bool", null, "int", "bool", "bool", null, "text", "bool", "bool", null, "text", "bool", null, "null", "bool", "int", null, null, null, null, null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "function", "function", "function", null, null, null, null, null, null, null, null, "record", "function", "function", null, null, null, null, null, null, null, null, "array", null, null, "int", "bool", null, null, null, null, "bool", "bool", null, null, null, null, null, null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, null, "null"], + "_write_types": [null, null, null, null, "record", null, null, "int", null, "int", "int", null, null, "array", null, "int", null, "bool", null, null, null, null, null, "int", "bool", null, "text", "bool", null, "null", "bool", "bool", null, "int", "bool", "bool", null, "text", "bool", "bool", null, "text", "bool", null, "null", "bool", "int", null, "int", "int", "int", "function", "function", "function", null, null, null, null, null, null, null, null, "record", "function", "function", null, null, null, null, null, null, null, null, "array", null, null, "int", "bool", null, null, null, null, "bool", "bool", null, null, null, null, null, null, null, null, null, null, null, "int", null, "null"], "name": "", "filename": ".cell/packages/core/fold.cm", "nr_args": 0 @@ -6833,56 +5750,37 @@ ["invoke", 38, 30, 1057, 20], ["store_field", 1, 30, "statements", 1057, 3], ["access", 30, 0, 1058, 12], - "while_start_814", + "while_start_716", ["load_field", 35, 1, "functions", 1059, 22], ["length", 36, 35, 1059, 22], ["lt", 35, 30, 36, 1059, 22], - ["jump_false", 35, "while_end_815", 1059, 22], + ["jump_false", 35, "while_end_717", 1059, 22], ["load_field", 35, 1, "functions", 1060, 13], ["load_index", 36, 35, 30, 1060, 27], ["frame", 35, 34, 1, 1060, 5], ["setarg", 35, 1, 36, 1060, 5], ["invoke", 35, 36, 1060, 5], ["access", 35, 1, 1061, 15], - "_nop_tc_1", - "_nop_tc_2", - "_nop_tc_3", - "_nop_tc_4", ["add", 30, 30, 35, 1061, 15], - ["jump", "num_done_817", 1061, 15], - "num_err_816", - "_nop_ucfg_1", - "_nop_ucfg_2", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "num_done_817", - ["jump", "while_start_814", 1061, 15], - "while_end_815", + ["jump", "while_start_716", 1061, 15], + "while_end_717", ["array", 35, 0, 1065, 18], ["move", 36, 35, 1065, 18], ["null", 35, 1066, 12], ["null", 38, 1067, 15], ["access", 30, 0, 1068, 8], - "while_start_818", + "while_start_718", ["load_field", 39, 1, "functions", 1069, 22], ["length", 40, 39, 1069, 22], ["lt", 39, 30, 40, 1069, 22], - ["jump_false", 39, "while_end_819", 1069, 22], + ["jump_false", 39, "while_end_719", 1069, 22], ["load_field", 39, 1, "functions", 1070, 10], ["load_index", 40, 39, 30, 1070, 24], ["move", 35, 40, 1070, 24], ["load_field", 39, 40, "name", 1071, 9], ["null", 40, 1071, 20], ["ne", 41, 39, 40, 1071, 20], - ["jump_false", 41, "if_else_820", 1071, 20], + ["jump_false", 41, "if_else_720", 1071, 20], ["access", 39, 0, 1072, 25], ["load_field", 40, 35, "name", 1072, 28], ["frame", 41, 21, 2, 1072, 15], @@ -6893,13 +5791,13 @@ ["null", 40, 1073, 20], ["ne", 41, 39, 40, 1073, 20], ["move", 39, 41, 1073, 20], - ["jump_false", 41, "and_end_824", 1073, 20], + ["jump_false", 41, "and_end_724", 1073, 20], ["load_field", 40, 38, "nr_uses", 1073, 28], ["access", 41, 0, 1073, 45], ["eq", 42, 40, 41, 1073, 45], ["move", 39, 42, 1073, 45], - "and_end_824", - ["jump_false", 39, "if_else_822", 1073, 45], + "and_end_724", + ["jump_false", 39, "if_else_722", 1073, 45], ["true", 39, 1074, 19], ["store_field", 35, 39, "dead", 1074, 9], ["load_field", 39, 1, "_diagnostics", 1075, 14], @@ -6909,12 +5807,10 @@ ["load_field", 41, 35, "from_row", 1077, 17], ["access", 42, 1, 1077, 31], ["is_num", 43, 41, 1077, 31], - ["jump_false", 43, "num_err_825", 1077, 31], - "_nop_tc_5", - "_nop_tc_6", + ["jump_false", 43, "num_err_725", 1077, 31], ["add", 43, 41, 42, 1077, 31], - ["jump", "num_done_826", 1077, 31], - "num_err_825", + ["jump", "num_done_726", 1077, 31], + "num_err_725", [ "access", 41, @@ -6927,7 +5823,7 @@ 31 ], ["access", 42, "error", 1077, 31], - ["access", 44, "cannot apply '+': operands must be numbers", 1077, 31], + ["access", 44, "operands must be numbers", 1077, 31], ["array", 45, 0, 1077, 31], ["stone_text", 44], ["push", 45, 44, 1077, 31], @@ -6939,42 +5835,13 @@ ["setarg", 44, 2, 45, 1077, 31], ["invoke", 44, 41, 1077, 31], ["disrupt", 1077, 31], - "num_done_826", + "num_done_726", ["store_field", 40, 43, "line", 1077, 31], ["load_field", 41, 35, "from_column", 1078, 16], ["access", 42, 1, 1078, 33], - ["is_num", 43, 41, 1078, 33], - ["jump_false", 43, "num_err_827", 1078, 33], - "_nop_tc_7", - "_nop_tc_8", + ["is_num", 44, 41, 1078, 33], + ["jump_false", 44, "num_err_725", 1078, 33], ["add", 43, 41, 42, 1078, 33], - ["jump", "num_done_828", 1078, 33], - "num_err_827", - [ - "access", - 41, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 1078, - 33 - ], - ["access", 42, "error", 1078, 33], - ["access", 44, "cannot apply '+': operands must be numbers", 1078, 33], - ["array", 45, 0, 1078, 33], - ["stone_text", 44], - ["push", 45, 44, 1078, 33], - ["frame", 44, 41, 2, 1078, 33], - ["null", 41, 1078, 33], - ["setarg", 44, 0, 41, 1078, 33], - ["stone_text", 42], - ["setarg", 44, 1, 42, 1078, 33], - ["setarg", 44, 2, 45, 1078, 33], - ["invoke", 44, 41, 1078, 33], - ["disrupt", 1078, 33], - "num_done_828", ["store_field", 40, 43, "col", 1078, 33], ["load_field", 41, 35, "name", 1, 1], ["array", 42, 0, 1, 1], @@ -6998,10 +5865,10 @@ ["invoke", 44, 41, 1, 1], ["store_field", 40, 41, "message", 1, 1], ["is_array", 41, 39, 1, 1], - ["jump_false", 41, "push_err_829", 1, 1], + ["jump_false", 41, "push_err_727", 1, 1], ["push", 39, 40, 1, 1], - ["jump", "push_done_830", 1, 1], - "push_err_829", + ["jump", "push_done_728", 1, 1], + "push_err_727", [ "access", 39, @@ -7026,61 +5893,42 @@ ["setarg", 41, 2, 42, 1, 1], ["invoke", 41, 39, 1, 1], ["disrupt", 1, 1], - "push_done_830", - ["jump", "if_end_823", 1, 1], - "if_else_822", - "if_end_823", - ["jump", "if_end_821", 1, 1], - "if_else_820", - "if_end_821", + "push_done_728", + ["jump", "if_end_723", 1, 1], + "if_else_722", + "if_end_723", + ["jump", "if_end_721", 1, 1], + "if_else_720", + "if_end_721", ["load_field", 39, 35, "dead", 1083, 9], ["true", 40, 1083, 20], ["ne", 41, 39, 40, 1083, 20], - ["jump_false", 41, "if_else_831", 1083, 20], - "_nop_tc_9", - "_nop_tc_10", + ["jump_false", 41, "if_else_729", 1083, 20], + "_nop_tc_1", + "_nop_tc_2", ["push", 36, 35, 1084, 22], - ["jump", "push_done_834", 1084, 22], - "push_err_833", - "_nop_ucfg_13", - "_nop_ucfg_14", - "_nop_ucfg_15", - "_nop_ucfg_16", - "_nop_ucfg_17", - "_nop_ucfg_18", - "_nop_ucfg_19", - "_nop_ucfg_20", - "_nop_ucfg_21", - "_nop_ucfg_22", - "_nop_ucfg_23", - "_nop_ucfg_24", - "push_done_834", - ["jump", "if_end_832", 1084, 22], - "if_else_831", - "if_end_832", + ["jump", "push_done_732", 1084, 22], + "push_err_731", + "_nop_ucfg_1", + "_nop_ucfg_2", + "_nop_ucfg_3", + "_nop_ucfg_4", + "_nop_ucfg_5", + "_nop_ucfg_6", + "_nop_ucfg_7", + "_nop_ucfg_8", + "_nop_ucfg_9", + "_nop_ucfg_10", + "_nop_ucfg_11", + "_nop_ucfg_12", + "push_done_732", + ["jump", "if_end_730", 1084, 22], + "if_else_729", + "if_end_730", ["access", 39, 1, 1086, 15], - "_nop_tc_11", - "_nop_tc_12", - "_nop_tc_13", - "_nop_tc_14", ["add", 30, 30, 39, 1086, 15], - ["jump", "num_done_836", 1086, 15], - "num_err_835", - "_nop_ucfg_25", - "_nop_ucfg_26", - "_nop_ucfg_27", - "_nop_ucfg_28", - "_nop_ucfg_29", - "_nop_ucfg_30", - "_nop_ucfg_31", - "_nop_ucfg_32", - "_nop_ucfg_33", - "_nop_ucfg_34", - "_nop_ucfg_35", - "_nop_ucfg_36", - "num_done_836", - ["jump", "while_start_818", 1086, 15], - "while_end_819", + ["jump", "while_start_718", 1086, 15], + "while_end_719", ["store_field", 1, 36, "functions", 1088, 3], ["frame", 30, 37, 0, 1091, 3], ["invoke", 30, 35, 1091, 3], @@ -7088,7 +5936,7 @@ "_nop_ur_1", "_nop_ur_2" ], - "_write_types": [null, null, "record", "record", "record", "record", "record", "function", "function", "record", null, null, null, null, "function", "function", "function", "function", "function", "function", "function", "function", "int", null, null, null, null, "record", "function", "function", "function", null, "record", "record", "function", "int", null, null, "array", "function", null, "int", "array", "record", "text", "text", "text", "text", "text", "record", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "record", "bool", "bool", "bool", "bool", "bool", "record", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "record", "bool", "bool", "bool", "bool", "bool", "bool", "record", "bool", "bool", "bool", "bool", "bool", "bool", "function", "record", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "function", "function", "function", "function", "function", "function", "function", "function", "function", "record", "record", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", null, null, null, "int", null, null, null, "int", "bool", null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "array", null, "int", "bool", null, null, null, "null", "bool", "int", null, null, null, "null", "bool", "bool", null, "int", "bool", "bool", null, "record", "text", null, "int", "num", "bool", null, null, "text", "text", "array", null, null, "null", null, "int", "num", "bool", null, null, "text", "text", "array", null, null, "null", null, "array", null, "text", null, null, "bool", null, "text", "text", "array", null, null, "null", null, "bool", "bool", null, null, null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, null, null, null], + "_write_types": [null, null, "record", "record", "record", "record", "record", "function", "function", "record", null, null, null, null, "function", "function", "function", "function", "function", "function", "function", "function", "int", null, null, null, null, "record", "function", "function", "function", null, "record", "record", "function", "int", null, null, "array", "function", null, "int", "array", "record", "text", "text", "text", "text", "text", "record", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "record", "bool", "bool", "bool", "bool", "bool", "record", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "record", "bool", "bool", "bool", "bool", "bool", "bool", "record", "bool", "bool", "bool", "bool", "bool", "bool", "function", "record", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool", "function", "function", "function", "function", "function", "function", "function", "function", "function", "record", "record", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", null, null, null, "int", null, null, null, "int", "bool", null, null, null, null, "int", "array", null, "int", "bool", null, null, null, "null", "bool", "int", null, null, null, "null", "bool", "bool", null, "int", "bool", "bool", null, "record", "text", null, "int", "num", "bool", null, "text", "text", "array", null, null, "null", null, "int", "num", "bool", null, "array", null, "text", null, null, "bool", null, "text", "text", "array", null, null, "null", null, "bool", "bool", null, null, null, null, null, null, null, null, "int", null, null, null], "name": "", "filename": ".cell/packages/core/fold.cm", "nr_args": 1 diff --git a/boot/mcode.cm.mcode b/boot/mcode.cm.mcode index 67539734..f258ef84 100644 --- a/boot/mcode.cm.mcode +++ b/boot/mcode.cm.mcode @@ -6,48 +6,52 @@ "nr_slots": 3, "nr_close_slots": 0, "instructions": [ - ["record", 1, 18], - ["get", 2, 2, 1, 104, 21], - ["store_field", 1, 2, "instructions", 104, 21], - ["get", 2, 13, 1, 105, 13], - ["store_field", 1, 2, "vars", 105, 13], - ["get", 2, 14, 1, 106, 18], - ["store_field", 1, 2, "this_slot", 106, 18], - ["get", 2, 15, 1, 107, 16], - ["store_field", 1, 2, "nr_args", 107, 16], - ["get", 2, 16, 1, 108, 23], - ["store_field", 1, 2, "nr_close_slots", 108, 23], - ["get", 2, 17, 1, 109, 23], - ["store_field", 1, 2, "nr_local_slots", 109, 23], - ["get", 2, 18, 1, 110, 23], - ["store_field", 1, 2, "next_temp_slot", 110, 23], - ["get", 2, 19, 1, 111, 17], - ["store_field", 1, 2, "max_slot", 111, 17], - ["get", 2, 22, 1, 112, 19], - ["store_field", 1, 2, "loop_break", 112, 19], - ["get", 2, 23, 1, 113, 22], - ["store_field", 1, 2, "loop_continue", 113, 22], - ["get", 2, 25, 1, 114, 18], - ["store_field", 1, 2, "label_map", 114, 18], - ["get", 2, 26, 1, 115, 17], - ["store_field", 1, 2, "is_arrow", 115, 17], - ["get", 2, 27, 1, 116, 20], - ["store_field", 1, 2, "function_nr", 116, 20], - ["get", 2, 29, 1, 117, 24], - ["store_field", 1, 2, "intrinsic_cache", 117, 24], - ["get", 2, 30, 1, 118, 17], - ["store_field", 1, 2, "cur_line", 118, 17], - ["get", 2, 31, 1, 119, 16], - ["store_field", 1, 2, "cur_col", 119, 16], - ["get", 2, 33, 1, 120, 23], - ["store_field", 1, 2, "has_disruption", 120, 23], - ["get", 2, 35, 1, 121, 19], - ["store_field", 1, 2, "slot_types", 121, 19], - ["return", 1, 121, 19], + ["record", 1, 20], + ["get", 2, 2, 1, 111, 21], + ["store_field", 1, 2, "instructions", 111, 21], + ["get", 2, 13, 1, 112, 13], + ["store_field", 1, 2, "vars", 112, 13], + ["get", 2, 14, 1, 113, 18], + ["store_field", 1, 2, "this_slot", 113, 18], + ["get", 2, 15, 1, 114, 16], + ["store_field", 1, 2, "nr_args", 114, 16], + ["get", 2, 16, 1, 115, 23], + ["store_field", 1, 2, "nr_close_slots", 115, 23], + ["get", 2, 17, 1, 116, 23], + ["store_field", 1, 2, "nr_local_slots", 116, 23], + ["get", 2, 18, 1, 117, 23], + ["store_field", 1, 2, "next_temp_slot", 117, 23], + ["get", 2, 19, 1, 118, 17], + ["store_field", 1, 2, "max_slot", 118, 17], + ["get", 2, 22, 1, 119, 19], + ["store_field", 1, 2, "loop_break", 119, 19], + ["get", 2, 23, 1, 120, 22], + ["store_field", 1, 2, "loop_continue", 120, 22], + ["get", 2, 25, 1, 121, 18], + ["store_field", 1, 2, "label_map", 121, 18], + ["get", 2, 26, 1, 122, 17], + ["store_field", 1, 2, "is_arrow", 122, 17], + ["get", 2, 27, 1, 123, 20], + ["store_field", 1, 2, "function_nr", 123, 20], + ["get", 2, 29, 1, 124, 24], + ["store_field", 1, 2, "intrinsic_cache", 124, 24], + ["get", 2, 30, 1, 125, 17], + ["store_field", 1, 2, "cur_line", 125, 17], + ["get", 2, 31, 1, 126, 16], + ["store_field", 1, 2, "cur_col", 126, 16], + ["get", 2, 33, 1, 127, 23], + ["store_field", 1, 2, "has_disruption", 127, 23], + ["get", 2, 35, 1, 128, 19], + ["store_field", 1, 2, "slot_types", 128, 19], + ["get", 2, 34, 1, 129, 22], + ["store_field", 1, 2, "num_err_label", 129, 22], + ["get", 2, 36, 1, 130, 24], + ["store_field", 1, 2, "num_err_emitted", 130, 24], + ["return", 1, 130, 24], "_nop_ur_1", "_nop_ur_2" ], - "_write_types": [null, "record", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null], + "_write_types": [null, "record", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null], "name": "", "filename": ".cell/packages/core/mcode.cm", "nr_args": 0 @@ -58,46 +62,50 @@ "nr_slots": 3, "nr_close_slots": 0, "instructions": [ - ["load_field", 2, 1, "instructions", 126, 22], - ["put", 2, 2, 1, 126, 22], - ["load_field", 2, 1, "vars", 127, 14], - ["put", 2, 13, 1, 127, 14], - ["load_field", 2, 1, "this_slot", 128, 19], - ["put", 2, 14, 1, 128, 19], - ["load_field", 2, 1, "nr_args", 129, 17], - ["put", 2, 15, 1, 129, 17], - ["load_field", 2, 1, "nr_close_slots", 130, 24], - ["put", 2, 16, 1, 130, 24], - ["load_field", 2, 1, "nr_local_slots", 131, 24], - ["put", 2, 17, 1, 131, 24], - ["load_field", 2, 1, "next_temp_slot", 132, 24], - ["put", 2, 18, 1, 132, 24], - ["load_field", 2, 1, "max_slot", 133, 18], - ["put", 2, 19, 1, 133, 18], - ["load_field", 2, 1, "loop_break", 134, 20], - ["put", 2, 22, 1, 134, 20], - ["load_field", 2, 1, "loop_continue", 135, 23], - ["put", 2, 23, 1, 135, 23], - ["load_field", 2, 1, "label_map", 136, 19], - ["put", 2, 25, 1, 136, 19], - ["load_field", 2, 1, "is_arrow", 137, 18], - ["put", 2, 26, 1, 137, 18], - ["load_field", 2, 1, "function_nr", 138, 21], - ["put", 2, 27, 1, 138, 21], - ["load_field", 2, 1, "intrinsic_cache", 139, 25], - ["put", 2, 29, 1, 139, 25], - ["load_field", 2, 1, "cur_line", 140, 18], - ["put", 2, 30, 1, 140, 18], - ["load_field", 2, 1, "cur_col", 141, 17], - ["put", 2, 31, 1, 141, 17], - ["load_field", 2, 1, "has_disruption", 142, 24], - ["put", 2, 33, 1, 142, 24], - ["load_field", 2, 1, "slot_types", 143, 20], - ["put", 2, 35, 1, 143, 20], - ["null", 2, 143, 20], - ["return", 2, 143, 20] + ["load_field", 2, 1, "instructions", 135, 22], + ["put", 2, 2, 1, 135, 22], + ["load_field", 2, 1, "vars", 136, 14], + ["put", 2, 13, 1, 136, 14], + ["load_field", 2, 1, "this_slot", 137, 19], + ["put", 2, 14, 1, 137, 19], + ["load_field", 2, 1, "nr_args", 138, 17], + ["put", 2, 15, 1, 138, 17], + ["load_field", 2, 1, "nr_close_slots", 139, 24], + ["put", 2, 16, 1, 139, 24], + ["load_field", 2, 1, "nr_local_slots", 140, 24], + ["put", 2, 17, 1, 140, 24], + ["load_field", 2, 1, "next_temp_slot", 141, 24], + ["put", 2, 18, 1, 141, 24], + ["load_field", 2, 1, "max_slot", 142, 18], + ["put", 2, 19, 1, 142, 18], + ["load_field", 2, 1, "loop_break", 143, 20], + ["put", 2, 22, 1, 143, 20], + ["load_field", 2, 1, "loop_continue", 144, 23], + ["put", 2, 23, 1, 144, 23], + ["load_field", 2, 1, "label_map", 145, 19], + ["put", 2, 25, 1, 145, 19], + ["load_field", 2, 1, "is_arrow", 146, 18], + ["put", 2, 26, 1, 146, 18], + ["load_field", 2, 1, "function_nr", 147, 21], + ["put", 2, 27, 1, 147, 21], + ["load_field", 2, 1, "intrinsic_cache", 148, 25], + ["put", 2, 29, 1, 148, 25], + ["load_field", 2, 1, "cur_line", 149, 18], + ["put", 2, 30, 1, 149, 18], + ["load_field", 2, 1, "cur_col", 150, 17], + ["put", 2, 31, 1, 150, 17], + ["load_field", 2, 1, "has_disruption", 151, 24], + ["put", 2, 33, 1, 151, 24], + ["load_field", 2, 1, "slot_types", 152, 20], + ["put", 2, 35, 1, 152, 20], + ["load_field", 2, 1, "num_err_label", 153, 23], + ["put", 2, 34, 1, 153, 23], + ["load_field", 2, 1, "num_err_emitted", 154, 25], + ["put", 2, 36, 1, 154, 25], + ["null", 2, 154, 25], + ["return", 2, 154, 25] ], - "_write_types": [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "null"], + "_write_types": [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "null"], "name": "", "filename": ".cell/packages/core/mcode.cm", "nr_args": 1 @@ -108,16 +116,14 @@ "nr_slots": 7, "nr_close_slots": 0, "instructions": [ - ["get", 1, 18, 1, 148, 16], - ["move", 2, 1, 148, 16], - ["get", 1, 18, 1, 149, 24], - ["access", 3, 1, 149, 43], - ["is_num", 4, 1, 149, 43], - ["jump_false", 4, "num_err_0", 149, 43], - "_nop_tc_1", - "_nop_tc_2", - ["add", 4, 1, 3, 149, 43], - ["jump", "num_done_1", 149, 43], + ["get", 1, 18, 1, 159, 16], + ["move", 2, 1, 159, 16], + ["get", 1, 18, 1, 160, 24], + ["access", 3, 1, 160, 43], + ["is_num", 4, 1, 160, 43], + ["jump_false", 4, "num_err_0", 160, 43], + ["add", 4, 1, 3, 160, 43], + ["jump", "num_done_1", 160, 43], "num_err_0", [ "access", @@ -127,36 +133,36 @@ "kind": "name", "make": "intrinsic" }, - 149, + 160, 43 ], - ["access", 3, "error", 149, 43], - ["access", 5, "cannot apply '+': operands must be numbers", 149, 43], - ["array", 6, 0, 149, 43], + ["access", 3, "error", 160, 43], + ["access", 5, "operands must be numbers", 160, 43], + ["array", 6, 0, 160, 43], ["stone_text", 5], - ["push", 6, 5, 149, 43], - ["frame", 5, 1, 2, 149, 43], - ["null", 1, 149, 43], - ["setarg", 5, 0, 1, 149, 43], + ["push", 6, 5, 160, 43], + ["frame", 5, 1, 2, 160, 43], + ["null", 1, 160, 43], + ["setarg", 5, 0, 1, 160, 43], ["stone_text", 3], - ["setarg", 5, 1, 3, 149, 43], - ["setarg", 5, 2, 6, 149, 43], - ["invoke", 5, 1, 149, 43], - ["disrupt", 149, 43], + ["setarg", 5, 1, 3, 160, 43], + ["setarg", 5, 2, 6, 160, 43], + ["invoke", 5, 1, 160, 43], + ["disrupt", 160, 43], "num_done_1", - ["put", 4, 18, 1, 149, 43], - ["get", 1, 19, 1, 150, 16], - ["gt", 3, 2, 1, 150, 16], - ["jump_false", 3, "if_else_2", 150, 16], - ["put", 2, 19, 1, 151, 20], - ["jump", "if_end_3", 151, 20], + ["put", 4, 18, 1, 160, 43], + ["get", 1, 19, 1, 161, 16], + ["gt", 3, 2, 1, 161, 16], + ["jump_false", 3, "if_else_2", 161, 16], + ["put", 2, 19, 1, 162, 20], + ["jump", "if_end_3", 162, 20], "if_else_2", "if_end_3", - ["return", 2, 153, 12], + ["return", 2, 164, 12], "_nop_ur_1", "_nop_ur_2" ], - "_write_types": [null, null, null, null, "int", "num", "bool", null, null, "text", "text", "array", null, null, "null", null, "bool", null], + "_write_types": [null, null, null, null, "int", "num", "bool", null, "text", "text", "array", null, null, "null", null, "bool", null], "name": "", "filename": ".cell/packages/core/mcode.cm", "nr_args": 0 @@ -167,17 +173,17 @@ "nr_slots": 8, "nr_close_slots": 0, "instructions": [ - ["get", 4, 13, 1, 158, 10], + ["get", 4, 13, 1, 169, 10], ["record", 5, 4], - ["store_field", 5, 1, "name", 158, 25], - ["store_field", 5, 2, "slot", 158, 37], - ["store_field", 5, 3, "is_const", 158, 53], - ["false", 6, 158, 75], - ["store_field", 5, 6, "is_closure", 158, 75], - ["is_array", 6, 4, 158, 75], - ["jump_false", 6, "push_err_4", 158, 75], - ["push", 4, 5, 158, 75], - ["jump", "push_done_5", 158, 75], + ["store_field", 5, 1, "name", 169, 25], + ["store_field", 5, 2, "slot", 169, 37], + ["store_field", 5, 3, "is_const", 169, 53], + ["false", 6, 169, 75], + ["store_field", 5, 6, "is_closure", 169, 75], + ["is_array", 6, 4, 169, 75], + ["jump_false", 6, "push_err_4", 169, 75], + ["push", 4, 5, 169, 75], + ["jump", "push_done_5", 169, 75], "push_err_4", [ "access", @@ -187,25 +193,25 @@ "kind": "name", "make": "intrinsic" }, - 158, + 169, 75 ], - ["access", 5, "error", 158, 75], - ["access", 6, "cannot push: target must be an array", 158, 75], - ["array", 7, 0, 158, 75], + ["access", 5, "error", 169, 75], + ["access", 6, "cannot push: target must be an array", 169, 75], + ["array", 7, 0, 169, 75], ["stone_text", 6], - ["push", 7, 6, 158, 75], - ["frame", 6, 4, 2, 158, 75], - ["null", 4, 158, 75], - ["setarg", 6, 0, 4, 158, 75], + ["push", 7, 6, 169, 75], + ["frame", 6, 4, 2, 169, 75], + ["null", 4, 169, 75], + ["setarg", 6, 0, 4, 169, 75], ["stone_text", 5], - ["setarg", 6, 1, 5, 158, 75], - ["setarg", 6, 2, 7, 158, 75], - ["invoke", 6, 4, 158, 75], - ["disrupt", 158, 75], + ["setarg", 6, 1, 5, 169, 75], + ["setarg", 6, 2, 7, 169, 75], + ["invoke", 6, 4, 169, 75], + ["disrupt", 169, 75], "push_done_5", - ["null", 4, 158, 75], - ["return", 4, 158, 75] + ["null", 4, 169, 75], + ["return", 4, 169, 75] ], "_write_types": [null, null, null, null, null, "record", "bool", "bool", null, "text", "text", "array", null, null, "null", "null"], "name": "", @@ -218,53 +224,34 @@ "nr_slots": 5, "nr_close_slots": 0, "instructions": [ - ["access", 2, 0, 162, 14], + ["access", 2, 0, 173, 14], "while_start_6", - ["get", 3, 13, 1, 163, 24], - ["length", 4, 3, 163, 24], - ["lt", 3, 2, 4, 163, 24], - ["jump_false", 3, "while_end_7", 163, 24], - ["get", 3, 13, 1, 164, 11], - ["load_index", 4, 3, 2, 164, 18], - ["load_field", 3, 4, "name", 164, 18], - ["eq", 4, 3, 1, 164, 30], - ["jump_false", 4, "if_else_8", 164, 30], - ["get", 3, 13, 1, 165, 16], - ["load_index", 4, 3, 2, 165, 23], - ["load_field", 3, 4, "slot", 165, 23], - ["return", 3, 165, 23], + ["get", 3, 13, 1, 174, 24], + ["length", 4, 3, 174, 24], + ["lt", 3, 2, 4, 174, 24], + ["jump_false", 3, "while_end_7", 174, 24], + ["get", 3, 13, 1, 175, 11], + ["load_index", 4, 3, 2, 175, 18], + ["load_field", 3, 4, "name", 175, 18], + ["eq", 4, 3, 1, 175, 30], + ["jump_false", 4, "if_else_8", 175, 30], + ["get", 3, 13, 1, 176, 16], + ["load_index", 4, 3, 2, 176, 23], + ["load_field", 3, 4, "slot", 176, 23], + ["return", 3, 176, 23], "_nop_ur_1", "if_else_8", "if_end_9", - ["access", 3, 1, 167, 17], - "_nop_tc_1", - "_nop_tc_2", - "_nop_tc_3", - "_nop_tc_4", - ["add", 2, 2, 3, 167, 17], - ["jump", "num_done_11", 167, 17], - "num_err_10", - "_nop_ucfg_1", - "_nop_ucfg_2", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "num_done_11", - ["jump", "while_start_6", 167, 17], + ["access", 3, 1, 178, 17], + ["add", 2, 2, 3, 178, 17], + ["jump", "while_start_6", 178, 17], "while_end_7", - ["access", 2, -1, 169, 12], - ["return", 2, 169, 12], + ["access", 2, -1, 180, 12], + ["return", 2, 180, 12], "_nop_ur_2", "_nop_ur_3" ], - "_write_types": [null, null, "int", null, "int", "bool", null, null, null, "bool", null, null, null, "int", null, null, null, null, null, null, null, null, null, "int", null], + "_write_types": [null, null, "int", null, "int", "bool", null, null, null, "bool", null, null, null, "int", "int", null], "name": "", "filename": ".cell/packages/core/mcode.cm", "nr_args": 1 @@ -275,53 +262,34 @@ "nr_slots": 5, "nr_close_slots": 0, "instructions": [ - ["access", 2, 0, 174, 14], - "while_start_12", - ["get", 3, 29, 1, 175, 24], - ["length", 4, 3, 175, 24], - ["lt", 3, 2, 4, 175, 24], - ["jump_false", 3, "while_end_13", 175, 24], - ["get", 3, 29, 1, 176, 11], - ["load_index", 4, 3, 2, 176, 29], - ["load_field", 3, 4, "name", 176, 29], - ["eq", 4, 3, 1, 176, 41], - ["jump_false", 4, "if_else_14", 176, 41], - ["get", 3, 29, 1, 177, 16], - ["load_index", 4, 3, 2, 177, 34], - ["load_field", 3, 4, "slot", 177, 34], - ["return", 3, 177, 34], + ["access", 2, 0, 185, 14], + "while_start_10", + ["get", 3, 29, 1, 186, 24], + ["length", 4, 3, 186, 24], + ["lt", 3, 2, 4, 186, 24], + ["jump_false", 3, "while_end_11", 186, 24], + ["get", 3, 29, 1, 187, 11], + ["load_index", 4, 3, 2, 187, 29], + ["load_field", 3, 4, "name", 187, 29], + ["eq", 4, 3, 1, 187, 41], + ["jump_false", 4, "if_else_12", 187, 41], + ["get", 3, 29, 1, 188, 16], + ["load_index", 4, 3, 2, 188, 34], + ["load_field", 3, 4, "slot", 188, 34], + ["return", 3, 188, 34], "_nop_ur_1", - "if_else_14", - "if_end_15", - ["access", 3, 1, 179, 17], - "_nop_tc_1", - "_nop_tc_2", - "_nop_tc_3", - "_nop_tc_4", - ["add", 2, 2, 3, 179, 17], - ["jump", "num_done_17", 179, 17], - "num_err_16", - "_nop_ucfg_1", - "_nop_ucfg_2", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "num_done_17", - ["jump", "while_start_12", 179, 17], - "while_end_13", - ["access", 2, -1, 181, 12], - ["return", 2, 181, 12], + "if_else_12", + "if_end_13", + ["access", 3, 1, 190, 17], + ["add", 2, 2, 3, 190, 17], + ["jump", "while_start_10", 190, 17], + "while_end_11", + ["access", 2, -1, 192, 12], + ["return", 2, 192, 12], "_nop_ur_2", "_nop_ur_3" ], - "_write_types": [null, null, "int", null, "int", "bool", null, null, null, "bool", null, null, null, "int", null, null, null, null, null, null, null, null, null, "int", null], + "_write_types": [null, null, "int", null, "int", "bool", null, null, null, "bool", null, null, null, "int", "int", null], "name": "", "filename": ".cell/packages/core/mcode.cm", "nr_args": 1 @@ -332,61 +300,42 @@ "nr_slots": 6, "nr_close_slots": 0, "instructions": [ - ["get", 2, 28, 1, 186, 9], - ["null", 3, 186, 21], - ["eq", 4, 2, 3, 186, 21], - ["jump_false", 4, "if_else_18", 186, 21], - ["null", 2, 187, 14], - ["return", 2, 187, 14], + ["get", 2, 28, 1, 197, 9], + ["null", 3, 197, 21], + ["eq", 4, 2, 3, 197, 21], + ["jump_false", 4, "if_else_14", 197, 21], + ["null", 2, 198, 14], + ["return", 2, 198, 14], "_nop_ur_1", + "if_else_14", + "if_end_15", + ["access", 2, 0, 200, 14], + ["null", 3, 201, 17], + "while_start_16", + ["get", 4, 28, 1, 202, 24], + ["length", 5, 4, 202, 24], + ["lt", 4, 2, 5, 202, 24], + ["jump_false", 4, "while_end_17", 202, 24], + ["get", 4, 28, 1, 203, 15], + ["load_index", 5, 4, 2, 203, 24], + ["move", 3, 5, 203, 24], + ["load_field", 4, 5, "function_nr", 204, 11], + ["eq", 5, 4, 1, 204, 32], + ["jump_false", 5, "if_else_18", 204, 32], + ["return", 3, 205, 16], + "_nop_ur_2", "if_else_18", "if_end_19", - ["access", 2, 0, 189, 14], - ["null", 3, 190, 17], - "while_start_20", - ["get", 4, 28, 1, 191, 24], - ["length", 5, 4, 191, 24], - ["lt", 4, 2, 5, 191, 24], - ["jump_false", 4, "while_end_21", 191, 24], - ["get", 4, 28, 1, 192, 15], - ["load_index", 5, 4, 2, 192, 24], - ["move", 3, 5, 192, 24], - ["load_field", 4, 5, "function_nr", 193, 11], - ["eq", 5, 4, 1, 193, 32], - ["jump_false", 5, "if_else_22", 193, 32], - ["return", 3, 194, 16], - "_nop_ur_2", - "if_else_22", - "if_end_23", - ["access", 4, 1, 196, 17], - "_nop_tc_1", - "_nop_tc_2", - "_nop_tc_3", - "_nop_tc_4", - ["add", 2, 2, 4, 196, 17], - ["jump", "num_done_25", 196, 17], - "num_err_24", - "_nop_ucfg_1", - "_nop_ucfg_2", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "num_done_25", - ["jump", "while_start_20", 196, 17], - "while_end_21", - ["null", 2, 198, 12], - ["return", 2, 198, 12], + ["access", 4, 1, 207, 17], + ["add", 2, 2, 4, 207, 17], + ["jump", "while_start_16", 207, 17], + "while_end_17", + ["null", 2, 209, 12], + ["return", 2, 209, 12], "_nop_ur_3", "_nop_ur_4" ], - "_write_types": [null, null, "int", null, null, "null", "bool", "null", null, "int", "bool", null, null, null, "bool", "int", null, null, null, null, null, null, null, null, null, "null", null], + "_write_types": [null, null, "int", null, null, "null", "bool", "null", null, "int", "bool", null, null, null, "bool", "int", "null", null], "name": "", "filename": ".cell/packages/core/mcode.cm", "nr_args": 1 @@ -397,21 +346,21 @@ "nr_slots": 8, "nr_close_slots": 0, "instructions": [ - ["access", 2, "_", 203, 26], - ["is_text", 3, 1, 203, 26], - ["jump_false", 3, "add_cn_27", 203, 26], + ["access", 2, "_", 214, 26], + ["is_text", 3, 1, 214, 26], + ["jump_false", 3, "add_cn_21", 214, 26], "_nop_tc_1", "_nop_tc_2", - ["concat", 4, 1, 2, 203, 26], - ["jump", "add_done_26", 203, 26], - "add_cn_27", - ["is_num", 3, 1, 203, 26], - ["jump_false", 3, "add_err_28", 203, 26], + ["concat", 4, 1, 2, 214, 26], + ["jump", "add_done_20", 214, 26], + "add_cn_21", + ["is_num", 3, 1, 214, 26], + ["jump_false", 3, "add_err_22", 214, 26], "_nop_tc_3", "_nop_dj_1", "_nop_ucfg_1", "_nop_ucfg_2", - "add_err_28", + "add_err_22", [ "access", 2, @@ -420,24 +369,24 @@ "kind": "name", "make": "intrinsic" }, - 203, + 214, 26 ], - ["access", 3, "error", 203, 26], - ["access", 5, "cannot apply '+': operands must both be text or both be numbers", 203, 26], - ["array", 6, 0, 203, 26], + ["access", 3, "error", 214, 26], + ["access", 5, "cannot apply '+': operands must both be text or both be numbers", 214, 26], + ["array", 6, 0, 214, 26], ["stone_text", 5], - ["push", 6, 5, 203, 26], - ["frame", 5, 2, 2, 203, 26], - ["null", 2, 203, 26], - ["setarg", 5, 0, 2, 203, 26], + ["push", 6, 5, 214, 26], + ["frame", 5, 2, 2, 214, 26], + ["null", 2, 214, 26], + ["setarg", 5, 0, 2, 214, 26], ["stone_text", 3], - ["setarg", 5, 1, 3, 203, 26], - ["setarg", 5, 2, 6, 203, 26], - ["invoke", 5, 2, 203, 26], - ["disrupt", 203, 26], - "add_done_26", - ["get", 2, 20, 1, 203, 37], + ["setarg", 5, 1, 3, 214, 26], + ["setarg", 5, 2, 6, 214, 26], + ["invoke", 5, 2, 214, 26], + ["disrupt", 214, 26], + "add_done_20", + ["get", 2, 20, 1, 214, 37], [ "access", 3, @@ -446,26 +395,26 @@ "kind": "name", "make": "intrinsic" }, - 203, + 214, 32 ], - ["frame", 5, 3, 1, 203, 32], - ["setarg", 5, 1, 2, 203, 32], - ["invoke", 5, 2, 203, 32], + ["frame", 5, 3, 1, 214, 32], + ["setarg", 5, 1, 2, 214, 32], + ["invoke", 5, 2, 214, 32], "_nop_tc_1", "_nop_tc_2", - ["is_text", 3, 2, 203, 32], - ["jump_false", 3, "add_cn_30", 203, 32], - ["concat", 3, 4, 2, 203, 32], - ["jump", "add_done_29", 203, 32], - "add_cn_30", + ["is_text", 3, 2, 214, 32], + ["jump_false", 3, "add_cn_24", 214, 32], + ["concat", 3, 4, 2, 214, 32], + ["jump", "add_done_23", 214, 32], + "add_cn_24", "_nop_tc_3", - ["jump", "add_err_31", 203, 32], + ["jump", "add_err_25", 214, 32], "_nop_ucfg_1", "_nop_ucfg_2", "_nop_ucfg_3", "_nop_ucfg_4", - "add_err_31", + "add_err_25", [ "access", 2, @@ -474,33 +423,31 @@ "kind": "name", "make": "intrinsic" }, - 203, + 214, 32 ], - ["access", 4, "error", 203, 32], - ["access", 5, "cannot apply '+': operands must both be text or both be numbers", 203, 32], - ["array", 6, 0, 203, 32], + ["access", 4, "error", 214, 32], + ["access", 5, "cannot apply '+': operands must both be text or both be numbers", 214, 32], + ["array", 6, 0, 214, 32], ["stone_text", 5], - ["push", 6, 5, 203, 32], - ["frame", 5, 2, 2, 203, 32], - ["null", 2, 203, 32], - ["setarg", 5, 0, 2, 203, 32], + ["push", 6, 5, 214, 32], + ["frame", 5, 2, 2, 214, 32], + ["null", 2, 214, 32], + ["setarg", 5, 0, 2, 214, 32], ["stone_text", 4], - ["setarg", 5, 1, 4, 203, 32], - ["setarg", 5, 2, 6, 203, 32], - ["invoke", 5, 2, 203, 32], - ["disrupt", 203, 32], - "add_done_29", - ["move", 2, 3, 203, 32], - ["get", 3, 20, 1, 204, 23], - ["access", 4, 1, 204, 41], - ["is_num", 5, 3, 204, 41], - ["jump_false", 5, "num_err_32", 204, 41], - "_nop_tc_4", - "_nop_tc_5", - ["add", 5, 3, 4, 204, 41], - ["jump", "num_done_33", 204, 41], - "num_err_32", + ["setarg", 5, 1, 4, 214, 32], + ["setarg", 5, 2, 6, 214, 32], + ["invoke", 5, 2, 214, 32], + ["disrupt", 214, 32], + "add_done_23", + ["move", 2, 3, 214, 32], + ["get", 3, 20, 1, 215, 23], + ["access", 4, 1, 215, 41], + ["is_num", 5, 3, 215, 41], + ["jump_false", 5, "num_err_26", 215, 41], + ["add", 5, 3, 4, 215, 41], + ["jump", "num_done_27", 215, 41], + "num_err_26", [ "access", 3, @@ -509,29 +456,29 @@ "kind": "name", "make": "intrinsic" }, - 204, + 215, 41 ], - ["access", 4, "error", 204, 41], - ["access", 6, "cannot apply '+': operands must be numbers", 204, 41], - ["array", 7, 0, 204, 41], + ["access", 4, "error", 215, 41], + ["access", 6, "operands must be numbers", 215, 41], + ["array", 7, 0, 215, 41], ["stone_text", 6], - ["push", 7, 6, 204, 41], - ["frame", 6, 3, 2, 204, 41], - ["null", 3, 204, 41], - ["setarg", 6, 0, 3, 204, 41], + ["push", 7, 6, 215, 41], + ["frame", 6, 3, 2, 215, 41], + ["null", 3, 215, 41], + ["setarg", 6, 0, 3, 215, 41], ["stone_text", 4], - ["setarg", 6, 1, 4, 204, 41], - ["setarg", 6, 2, 7, 204, 41], - ["invoke", 6, 3, 204, 41], - ["disrupt", 204, 41], - "num_done_33", - ["put", 5, 20, 1, 204, 41], - ["return", 2, 205, 12], + ["setarg", 6, 1, 4, 215, 41], + ["setarg", 6, 2, 7, 215, 41], + ["invoke", 6, 3, 215, 41], + ["disrupt", 215, 41], + "num_done_27", + ["put", 5, 20, 1, 215, 41], + ["return", 2, 216, 12], "_nop_ur_1", "_nop_ur_2" ], - "_write_types": [null, null, null, "text", "text", "bool", null, null, "text", "text", "array", null, null, "null", null, null, null, null, null, "bool", "bool", null, "text", "text", "array", null, null, "null", null, "int", "num", "bool", null, null, "text", "text", "array", null, null, "null", null], + "_write_types": [null, null, null, "text", "text", "bool", null, null, "text", "text", "array", null, null, "null", null, null, null, null, null, "bool", "bool", null, "text", "text", "array", null, null, "null", null, "int", "num", "bool", null, "text", "text", "array", null, null, "null", null], "name": "", "filename": ".cell/packages/core/mcode.cm", "nr_args": 1 @@ -542,19 +489,17 @@ "nr_slots": 7, "nr_close_slots": 0, "instructions": [ - ["load_field", 2, 1, "from_row", 210, 9], - ["null", 3, 210, 26], - ["ne", 4, 2, 3, 210, 26], - ["jump_false", 4, "if_else_34", 210, 26], - ["load_field", 2, 1, "from_row", 211, 20], - ["access", 3, 1, 211, 36], - ["is_num", 4, 2, 211, 36], - ["jump_false", 4, "num_err_36", 211, 36], - "_nop_tc_1", - "_nop_tc_2", - ["add", 4, 2, 3, 211, 36], - ["jump", "num_done_37", 211, 36], - "num_err_36", + ["load_field", 2, 1, "from_row", 221, 9], + ["null", 3, 221, 26], + ["ne", 4, 2, 3, 221, 26], + ["jump_false", 4, "if_else_28", 221, 26], + ["load_field", 2, 1, "from_row", 222, 20], + ["access", 3, 1, 222, 36], + ["is_num", 4, 2, 222, 36], + ["jump_false", 4, "num_err_30", 222, 36], + ["add", 4, 2, 3, 222, 36], + ["jump", "num_done_31", 222, 36], + "num_err_30", [ "access", 2, @@ -563,73 +508,44 @@ "kind": "name", "make": "intrinsic" }, - 211, + 222, 36 ], - ["access", 3, "error", 211, 36], - ["access", 5, "cannot apply '+': operands must be numbers", 211, 36], - ["array", 6, 0, 211, 36], + ["access", 3, "error", 222, 36], + ["access", 5, "operands must be numbers", 222, 36], + ["array", 6, 0, 222, 36], ["stone_text", 5], - ["push", 6, 5, 211, 36], - ["frame", 5, 2, 2, 211, 36], - ["null", 2, 211, 36], - ["setarg", 5, 0, 2, 211, 36], + ["push", 6, 5, 222, 36], + ["frame", 5, 2, 2, 222, 36], + ["null", 2, 222, 36], + ["setarg", 5, 0, 2, 222, 36], ["stone_text", 3], - ["setarg", 5, 1, 3, 211, 36], - ["setarg", 5, 2, 6, 211, 36], - ["invoke", 5, 2, 211, 36], - ["disrupt", 211, 36], - "num_done_37", - ["put", 4, 30, 1, 211, 36], - ["jump", "if_end_35", 211, 36], - "if_else_34", - "if_end_35", - ["load_field", 2, 1, "from_column", 213, 9], - ["null", 3, 213, 29], - ["ne", 4, 2, 3, 213, 29], - ["jump_false", 4, "if_else_38", 213, 29], - ["load_field", 2, 1, "from_column", 214, 19], - ["access", 3, 1, 214, 38], - ["is_num", 4, 2, 214, 38], - ["jump_false", 4, "num_err_40", 214, 38], - "_nop_tc_3", - "_nop_tc_4", - ["add", 4, 2, 3, 214, 38], - ["jump", "num_done_41", 214, 38], - "num_err_40", - [ - "access", - 2, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 214, - 38 - ], - ["access", 3, "error", 214, 38], - ["access", 5, "cannot apply '+': operands must be numbers", 214, 38], - ["array", 6, 0, 214, 38], - ["stone_text", 5], - ["push", 6, 5, 214, 38], - ["frame", 5, 2, 2, 214, 38], - ["null", 2, 214, 38], - ["setarg", 5, 0, 2, 214, 38], - ["stone_text", 3], - ["setarg", 5, 1, 3, 214, 38], - ["setarg", 5, 2, 6, 214, 38], - ["invoke", 5, 2, 214, 38], - ["disrupt", 214, 38], - "num_done_41", - ["put", 4, 31, 1, 214, 38], - ["jump", "if_end_39", 214, 38], - "if_else_38", - "if_end_39", - ["null", 2, 214, 38], - ["return", 2, 214, 38] + ["setarg", 5, 1, 3, 222, 36], + ["setarg", 5, 2, 6, 222, 36], + ["invoke", 5, 2, 222, 36], + ["disrupt", 222, 36], + "num_done_31", + ["put", 4, 30, 1, 222, 36], + ["jump", "if_end_29", 222, 36], + "if_else_28", + "if_end_29", + ["load_field", 2, 1, "from_column", 224, 9], + ["null", 3, 224, 29], + ["ne", 5, 2, 3, 224, 29], + ["jump_false", 5, "if_else_32", 224, 29], + ["load_field", 2, 1, "from_column", 225, 19], + ["access", 3, 1, 225, 38], + ["is_num", 5, 2, 225, 38], + ["jump_false", 5, "num_err_30", 225, 38], + ["add", 4, 2, 3, 225, 38], + ["put", 4, 31, 1, 225, 38], + ["jump", "if_end_33", 225, 38], + "if_else_32", + "if_end_33", + ["null", 2, 225, 38], + ["return", 2, 225, 38] ], - "_write_types": [null, null, null, "null", "bool", null, "int", "num", "bool", null, null, "text", "text", "array", null, null, "null", null, "null", "bool", null, "int", "num", "bool", null, null, "text", "text", "array", null, null, "null", "null"], + "_write_types": [null, null, null, "null", "bool", null, "int", "num", "bool", null, "text", "text", "array", null, null, "null", null, "null", "bool", null, "int", "num", "bool", "null"], "name": "", "filename": ".cell/packages/core/mcode.cm", "nr_args": 1 @@ -640,12 +556,12 @@ "nr_slots": 6, "nr_close_slots": 0, "instructions": [ - ["get", 2, 30, 1, 220, 17], + ["get", 2, 30, 1, 231, 17], "_nop_tc_1", "_nop_tc_2", - ["push", 1, 2, 220, 17], - ["jump", "push_done_43", 220, 17], - "push_err_42", + ["push", 1, 2, 231, 17], + ["jump", "push_done_35", 231, 17], + "push_err_34", "_nop_ucfg_1", "_nop_ucfg_2", "_nop_ucfg_3", @@ -658,13 +574,13 @@ "_nop_ucfg_10", "_nop_ucfg_11", "_nop_ucfg_12", - "push_done_43", - ["get", 2, 31, 1, 221, 17], + "push_done_35", + ["get", 2, 31, 1, 232, 17], "_nop_tc_3", "_nop_tc_4", - ["push", 1, 2, 221, 17], - ["jump", "push_done_45", 221, 17], - "push_err_44", + ["push", 1, 2, 232, 17], + ["jump", "push_done_37", 232, 17], + "push_err_36", "_nop_ucfg_13", "_nop_ucfg_14", "_nop_ucfg_15", @@ -677,13 +593,13 @@ "_nop_ucfg_22", "_nop_ucfg_23", "_nop_ucfg_24", - "push_done_45", - ["get", 2, 2, 1, 222, 10], - ["is_array", 3, 2, 222, 26], - ["jump_false", 3, "push_err_46", 222, 26], - ["push", 2, 1, 222, 26], - ["jump", "push_done_47", 222, 26], - "push_err_46", + "push_done_37", + ["get", 2, 2, 1, 233, 10], + ["is_array", 3, 2, 233, 26], + ["jump_false", 3, "push_err_38", 233, 26], + ["push", 2, 1, 233, 26], + ["jump", "push_done_39", 233, 26], + "push_err_38", [ "access", 2, @@ -692,25 +608,25 @@ "kind": "name", "make": "intrinsic" }, - 222, + 233, 26 ], - ["access", 3, "error", 222, 26], - ["access", 4, "cannot push: target must be an array", 222, 26], - ["array", 5, 0, 222, 26], + ["access", 3, "error", 233, 26], + ["access", 4, "cannot push: target must be an array", 233, 26], + ["array", 5, 0, 233, 26], ["stone_text", 4], - ["push", 5, 4, 222, 26], - ["frame", 4, 2, 2, 222, 26], - ["null", 2, 222, 26], - ["setarg", 4, 0, 2, 222, 26], + ["push", 5, 4, 233, 26], + ["frame", 4, 2, 2, 233, 26], + ["null", 2, 233, 26], + ["setarg", 4, 0, 2, 233, 26], ["stone_text", 3], - ["setarg", 4, 1, 3, 222, 26], - ["setarg", 4, 2, 5, 222, 26], - ["invoke", 4, 2, 222, 26], - ["disrupt", 222, 26], - "push_done_47", - ["null", 2, 222, 26], - ["return", 2, 222, 26] + ["setarg", 4, 1, 3, 233, 26], + ["setarg", 4, 2, 5, 233, 26], + ["invoke", 4, 2, 233, 26], + ["disrupt", 233, 26], + "push_done_39", + ["null", 2, 233, 26], + ["return", 2, 233, 26] ], "_write_types": [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "bool", null, "text", "text", "array", null, null, "null", "null"], "name": "", @@ -723,12 +639,12 @@ "nr_slots": 6, "nr_close_slots": 0, "instructions": [ - ["get", 2, 2, 1, 226, 10], - ["is_array", 3, 2, 226, 26], - ["jump_false", 3, "push_err_48", 226, 26], - ["push", 2, 1, 226, 26], - ["jump", "push_done_49", 226, 26], - "push_err_48", + ["get", 2, 2, 1, 237, 10], + ["is_array", 3, 2, 237, 26], + ["jump_false", 3, "push_err_40", 237, 26], + ["push", 2, 1, 237, 26], + ["jump", "push_done_41", 237, 26], + "push_err_40", [ "access", 2, @@ -737,25 +653,25 @@ "kind": "name", "make": "intrinsic" }, - 226, + 237, 26 ], - ["access", 3, "error", 226, 26], - ["access", 4, "cannot push: target must be an array", 226, 26], - ["array", 5, 0, 226, 26], + ["access", 3, "error", 237, 26], + ["access", 4, "cannot push: target must be an array", 237, 26], + ["array", 5, 0, 237, 26], ["stone_text", 4], - ["push", 5, 4, 226, 26], - ["frame", 4, 2, 2, 226, 26], - ["null", 2, 226, 26], - ["setarg", 4, 0, 2, 226, 26], + ["push", 5, 4, 237, 26], + ["frame", 4, 2, 2, 237, 26], + ["null", 2, 237, 26], + ["setarg", 4, 0, 2, 237, 26], ["stone_text", 3], - ["setarg", 4, 1, 3, 226, 26], - ["setarg", 4, 2, 5, 226, 26], - ["invoke", 4, 2, 226, 26], - ["disrupt", 226, 26], - "push_done_49", - ["null", 2, 226, 26], - ["return", 2, 226, 26] + ["setarg", 4, 1, 3, 237, 26], + ["setarg", 4, 2, 5, 237, 26], + ["invoke", 4, 2, 237, 26], + ["disrupt", 237, 26], + "push_done_41", + ["null", 2, 237, 26], + ["return", 2, 237, 26] ], "_write_types": [null, null, null, "bool", null, "text", "text", "array", null, null, "null", "null"], "name": "", @@ -768,14 +684,14 @@ "nr_slots": 5, "nr_close_slots": 0, "instructions": [ - ["array", 2, 1, 230, 16], - ["push", 2, 1, 230, 16], - ["get", 3, 51, 1, 230, 5], - ["frame", 4, 3, 1, 230, 5], - ["setarg", 4, 1, 2, 230, 5], - ["invoke", 4, 2, 230, 5], - ["null", 2, 230, 5], - ["return", 2, 230, 5] + ["array", 2, 1, 241, 16], + ["push", 2, 1, 241, 16], + ["get", 3, 53, 1, 241, 5], + ["frame", 4, 3, 1, 241, 5], + ["setarg", 4, 1, 2, 241, 5], + ["invoke", 4, 2, 241, 5], + ["null", 2, 241, 5], + ["return", 2, 241, 5] ], "_write_types": [null, null, "array", null, null, null, "null"], "name": "", @@ -788,15 +704,15 @@ "nr_slots": 6, "nr_close_slots": 0, "instructions": [ - ["array", 3, 2, 234, 20], - ["push", 3, 1, 234, 20], - ["push", 3, 2, 234, 20], - ["get", 4, 51, 1, 234, 5], - ["frame", 5, 4, 1, 234, 5], - ["setarg", 5, 1, 3, 234, 5], - ["invoke", 5, 3, 234, 5], - ["null", 3, 234, 5], - ["return", 3, 234, 5] + ["array", 3, 2, 245, 20], + ["push", 3, 1, 245, 20], + ["push", 3, 2, 245, 20], + ["get", 4, 53, 1, 245, 5], + ["frame", 5, 4, 1, 245, 5], + ["setarg", 5, 1, 3, 245, 5], + ["invoke", 5, 3, 245, 5], + ["null", 3, 245, 5], + ["return", 3, 245, 5] ], "_write_types": [null, null, null, "array", null, null, null, "null"], "name": "", @@ -809,16 +725,16 @@ "nr_slots": 7, "nr_close_slots": 0, "instructions": [ - ["array", 4, 3, 238, 23], - ["push", 4, 1, 238, 23], - ["push", 4, 2, 238, 23], - ["push", 4, 3, 238, 23], - ["get", 5, 51, 1, 238, 5], - ["frame", 6, 5, 1, 238, 5], - ["setarg", 6, 1, 4, 238, 5], - ["invoke", 6, 4, 238, 5], - ["null", 4, 238, 5], - ["return", 4, 238, 5] + ["array", 4, 3, 249, 23], + ["push", 4, 1, 249, 23], + ["push", 4, 2, 249, 23], + ["push", 4, 3, 249, 23], + ["get", 5, 53, 1, 249, 5], + ["frame", 6, 5, 1, 249, 5], + ["setarg", 6, 1, 4, 249, 5], + ["invoke", 6, 4, 249, 5], + ["null", 4, 249, 5], + ["return", 4, 249, 5] ], "_write_types": [null, null, null, null, "array", null, null, null, "null"], "name": "", @@ -831,17 +747,17 @@ "nr_slots": 8, "nr_close_slots": 0, "instructions": [ - ["array", 5, 4, 242, 26], - ["push", 5, 1, 242, 26], - ["push", 5, 2, 242, 26], - ["push", 5, 3, 242, 26], - ["push", 5, 4, 242, 26], - ["get", 6, 51, 1, 242, 5], - ["frame", 7, 6, 1, 242, 5], - ["setarg", 7, 1, 5, 242, 5], - ["invoke", 7, 5, 242, 5], - ["null", 5, 242, 5], - ["return", 5, 242, 5] + ["array", 5, 4, 253, 26], + ["push", 5, 1, 253, 26], + ["push", 5, 2, 253, 26], + ["push", 5, 3, 253, 26], + ["push", 5, 4, 253, 26], + ["get", 6, 53, 1, 253, 5], + ["frame", 7, 6, 1, 253, 5], + ["setarg", 7, 1, 5, 253, 5], + ["invoke", 7, 5, 253, 5], + ["null", 5, 253, 5], + ["return", 5, 253, 5] ], "_write_types": [null, null, null, null, null, "array", null, null, null, "null"], "name": "", @@ -854,27 +770,27 @@ "nr_slots": 8, "nr_close_slots": 0, "instructions": [ - ["access", 3, 0, 251, 27], - ["load_index", 4, 2, 3, 251, 27], - ["access", 3, 1, 251, 36], - ["load_index", 5, 2, 3, 251, 36], - ["access", 3, 2, 251, 45], - ["load_index", 6, 2, 3, 251, 45], - ["access", 3, 3, 251, 54], - ["load_index", 7, 2, 3, 251, 54], - ["array", 3, 5, 251, 54], - ["push", 3, 1, 251, 54], - ["push", 3, 4, 251, 54], - ["push", 3, 5, 251, 54], - ["push", 3, 6, 251, 54], - ["push", 3, 7, 251, 54], - ["move", 4, 3, 251, 54], - ["get", 4, 51, 1, 252, 5], - ["frame", 5, 4, 1, 252, 5], - ["setarg", 5, 1, 3, 252, 5], - ["invoke", 5, 3, 252, 5], - ["null", 3, 252, 5], - ["return", 3, 252, 5] + ["access", 3, 0, 262, 27], + ["load_index", 4, 2, 3, 262, 27], + ["access", 3, 1, 262, 36], + ["load_index", 5, 2, 3, 262, 36], + ["access", 3, 2, 262, 45], + ["load_index", 6, 2, 3, 262, 45], + ["access", 3, 3, 262, 54], + ["load_index", 7, 2, 3, 262, 54], + ["array", 3, 5, 262, 54], + ["push", 3, 1, 262, 54], + ["push", 3, 4, 262, 54], + ["push", 3, 5, 262, 54], + ["push", 3, 6, 262, 54], + ["push", 3, 7, 262, 54], + ["move", 4, 3, 262, 54], + ["get", 4, 53, 1, 263, 5], + ["frame", 5, 4, 1, 263, 5], + ["setarg", 5, 1, 3, 263, 5], + ["invoke", 5, 3, 263, 5], + ["null", 3, 263, 5], + ["return", 3, 263, 5] ], "_write_types": [null, null, null, "array", "int", null, "int", null, "int", null, "int", null, "array", null, null, null, "null"], "name": "", @@ -887,18 +803,18 @@ "nr_slots": 6, "nr_close_slots": 0, "instructions": [ - ["access", 3, "access", 256, 16], - ["array", 4, 3, 256, 32], + ["access", 3, "access", 267, 16], + ["array", 4, 3, 267, 32], ["stone_text", 3], - ["push", 4, 3, 256, 32], - ["push", 4, 1, 256, 32], - ["push", 4, 2, 256, 32], - ["get", 3, 51, 1, 256, 5], - ["frame", 5, 3, 1, 256, 5], - ["setarg", 5, 1, 4, 256, 5], - ["invoke", 5, 3, 256, 5], - ["null", 3, 256, 5], - ["return", 3, 256, 5] + ["push", 4, 3, 267, 32], + ["push", 4, 1, 267, 32], + ["push", 4, 2, 267, 32], + ["get", 3, 53, 1, 267, 5], + ["frame", 5, 3, 1, 267, 5], + ["setarg", 5, 1, 4, 267, 5], + ["invoke", 5, 3, 267, 5], + ["null", 3, 267, 5], + ["return", 3, 267, 5] ], "_write_types": [null, null, null, "text", "array", null, null, null, "null"], "name": "", @@ -911,18 +827,18 @@ "nr_slots": 6, "nr_close_slots": 0, "instructions": [ - ["access", 3, "access", 260, 16], - ["array", 4, 3, 260, 32], + ["access", 3, "access", 271, 16], + ["array", 4, 3, 271, 32], ["stone_text", 3], - ["push", 4, 3, 260, 32], - ["push", 4, 1, 260, 32], - ["push", 4, 2, 260, 32], - ["get", 3, 51, 1, 260, 5], - ["frame", 5, 3, 1, 260, 5], - ["setarg", 5, 1, 4, 260, 5], - ["invoke", 5, 3, 260, 5], - ["null", 3, 260, 5], - ["return", 3, 260, 5] + ["push", 4, 3, 271, 32], + ["push", 4, 1, 271, 32], + ["push", 4, 2, 271, 32], + ["get", 3, 53, 1, 271, 5], + ["frame", 5, 3, 1, 271, 5], + ["setarg", 5, 1, 4, 271, 5], + ["invoke", 5, 3, 271, 5], + ["null", 3, 271, 5], + ["return", 3, 271, 5] ], "_write_types": [null, null, null, "text", "array", null, null, null, "null"], "name": "", @@ -935,26 +851,26 @@ "nr_slots": 6, "nr_close_slots": 0, "instructions": [ - ["jump_false", 2, "if_else_50", 264, 9], - ["access", 3, "true", 265, 14], - ["get", 4, 54, 1, 265, 7], - ["frame", 5, 4, 2, 265, 7], + ["wary_false", 2, "if_else_42", 275, 9], + ["access", 3, "true", 276, 14], + ["get", 4, 56, 1, 276, 7], + ["frame", 5, 4, 2, 276, 7], ["stone_text", 3], - ["setarg", 5, 1, 3, 265, 7], - ["setarg", 5, 2, 1, 265, 7], - ["invoke", 5, 3, 265, 7], - ["jump", "if_end_51", 265, 7], - "if_else_50", - ["access", 3, "false", 267, 14], - ["get", 4, 54, 1, 267, 7], - ["frame", 5, 4, 2, 267, 7], + ["setarg", 5, 1, 3, 276, 7], + ["setarg", 5, 2, 1, 276, 7], + ["invoke", 5, 3, 276, 7], + ["jump", "if_end_43", 276, 7], + "if_else_42", + ["access", 3, "false", 278, 14], + ["get", 4, 56, 1, 278, 7], + ["frame", 5, 4, 2, 278, 7], ["stone_text", 3], - ["setarg", 5, 1, 3, 267, 7], - ["setarg", 5, 2, 1, 267, 7], - ["invoke", 5, 3, 267, 7], - "if_end_51", - ["null", 3, 267, 7], - ["return", 3, 267, 7] + ["setarg", 5, 1, 3, 278, 7], + ["setarg", 5, 2, 1, 278, 7], + ["invoke", 5, 3, 278, 7], + "if_end_43", + ["null", 3, 278, 7], + ["return", 3, 278, 7] ], "_write_types": [null, null, null, "text", null, null, null, "text", null, null, null, "null"], "name": "", @@ -967,15 +883,15 @@ "nr_slots": 5, "nr_close_slots": 0, "instructions": [ - ["access", 2, "null", 272, 12], - ["get", 3, 54, 1, 272, 5], - ["frame", 4, 3, 2, 272, 5], + ["access", 2, "null", 283, 12], + ["get", 3, 56, 1, 283, 5], + ["frame", 4, 3, 2, 283, 5], ["stone_text", 2], - ["setarg", 4, 1, 2, 272, 5], - ["setarg", 4, 2, 1, 272, 5], - ["invoke", 4, 2, 272, 5], - ["null", 2, 272, 5], - ["return", 2, 272, 5] + ["setarg", 4, 1, 2, 283, 5], + ["setarg", 4, 2, 1, 283, 5], + ["invoke", 4, 2, 283, 5], + ["null", 2, 283, 5], + ["return", 2, 283, 5] ], "_write_types": [null, null, "text", null, null, null, "null"], "name": "", @@ -988,139 +904,139 @@ "nr_slots": 11, "nr_close_slots": 0, "instructions": [ - ["get", 2, 44, 1, 276, 20], - ["frame", 3, 2, 0, 276, 20], - ["invoke", 3, 2, 276, 20], - ["move", 3, 2, 276, 20], - ["access", 3, "access", 277, 16], + ["get", 2, 46, 1, 287, 20], + ["frame", 3, 2, 0, 287, 20], + ["invoke", 3, 2, 287, 20], + ["move", 3, 2, 287, 20], + ["access", 3, "access", 288, 16], ["record", 4, 3], - ["access", 5, "name", 277, 43], - ["store_field", 4, 5, "kind", 277, 43], - ["access", 5, "log", 277, 57], - ["store_field", 4, 5, "name", 277, 57], - ["access", 5, "intrinsic", 277, 70], - ["store_field", 4, 5, "make", 277, 70], - ["array", 5, 3, 277, 70], + ["access", 5, "name", 288, 43], + ["store_field", 4, 5, "kind", 288, 43], + ["access", 5, "log", 288, 57], + ["store_field", 4, 5, "name", 288, 57], + ["access", 5, "intrinsic", 288, 70], + ["store_field", 4, 5, "make", 288, 70], + ["array", 5, 3, 288, 70], ["stone_text", 3], - ["push", 5, 3, 277, 70], - ["push", 5, 2, 277, 70], - ["push", 5, 4, 277, 70], - ["get", 3, 51, 1, 277, 5], - ["frame", 4, 3, 1, 277, 5], - ["setarg", 4, 1, 5, 277, 5], - ["invoke", 4, 3, 277, 5], - ["get", 3, 44, 1, 278, 21], - ["frame", 4, 3, 0, 278, 21], - ["invoke", 4, 3, 278, 21], - ["move", 4, 3, 278, 21], - ["access", 4, "error", 279, 31], - ["get", 5, 59, 1, 279, 5], - ["frame", 6, 5, 2, 279, 5], - ["setarg", 6, 1, 3, 279, 5], + ["push", 5, 3, 288, 70], + ["push", 5, 2, 288, 70], + ["push", 5, 4, 288, 70], + ["get", 3, 53, 1, 288, 5], + ["frame", 4, 3, 1, 288, 5], + ["setarg", 4, 1, 5, 288, 5], + ["invoke", 4, 3, 288, 5], + ["get", 3, 46, 1, 289, 21], + ["frame", 4, 3, 0, 289, 21], + ["invoke", 4, 3, 289, 21], + ["move", 4, 3, 289, 21], + ["access", 4, "error", 290, 31], + ["get", 5, 61, 1, 290, 5], + ["frame", 6, 5, 2, 290, 5], + ["setarg", 6, 1, 3, 290, 5], ["stone_text", 4], - ["setarg", 6, 2, 4, 279, 5], - ["invoke", 6, 4, 279, 5], - ["get", 4, 44, 1, 280, 20], - ["frame", 5, 4, 0, 280, 20], - ["invoke", 5, 4, 280, 20], - ["move", 5, 4, 280, 20], - ["get", 5, 59, 1, 281, 5], - ["frame", 6, 5, 2, 281, 5], - ["setarg", 6, 1, 4, 281, 5], - ["setarg", 6, 2, 1, 281, 5], - ["invoke", 6, 5, 281, 5], - ["get", 5, 44, 1, 282, 20], - ["frame", 6, 5, 0, 282, 20], - ["invoke", 6, 5, 282, 20], - ["move", 6, 5, 282, 20], - ["access", 6, "array", 283, 16], - ["access", 7, 0, 283, 35], - ["array", 8, 3, 283, 35], + ["setarg", 6, 2, 4, 290, 5], + ["invoke", 6, 4, 290, 5], + ["get", 4, 46, 1, 291, 20], + ["frame", 5, 4, 0, 291, 20], + ["invoke", 5, 4, 291, 20], + ["move", 5, 4, 291, 20], + ["get", 5, 61, 1, 292, 5], + ["frame", 6, 5, 2, 292, 5], + ["setarg", 6, 1, 4, 292, 5], + ["setarg", 6, 2, 1, 292, 5], + ["invoke", 6, 5, 292, 5], + ["get", 5, 46, 1, 293, 20], + ["frame", 6, 5, 0, 293, 20], + ["invoke", 6, 5, 293, 20], + ["move", 6, 5, 293, 20], + ["access", 6, "array", 294, 16], + ["access", 7, 0, 294, 35], + ["array", 8, 3, 294, 35], ["stone_text", 6], - ["push", 8, 6, 283, 35], - ["push", 8, 5, 283, 35], - ["push", 8, 7, 283, 35], - ["get", 6, 51, 1, 283, 5], - ["frame", 7, 6, 1, 283, 5], - ["setarg", 7, 1, 8, 283, 5], - ["invoke", 7, 6, 283, 5], - ["access", 6, "push", 284, 12], - ["get", 7, 55, 1, 284, 5], - ["frame", 8, 7, 3, 284, 5], + ["push", 8, 6, 294, 35], + ["push", 8, 5, 294, 35], + ["push", 8, 7, 294, 35], + ["get", 6, 53, 1, 294, 5], + ["frame", 7, 6, 1, 294, 5], + ["setarg", 7, 1, 8, 294, 5], + ["invoke", 7, 6, 294, 5], + ["access", 6, "push", 295, 12], + ["get", 7, 57, 1, 295, 5], + ["frame", 8, 7, 3, 295, 5], ["stone_text", 6], - ["setarg", 8, 1, 6, 284, 5], - ["setarg", 8, 2, 5, 284, 5], - ["setarg", 8, 3, 4, 284, 5], - ["invoke", 8, 4, 284, 5], - ["get", 4, 44, 1, 285, 18], - ["frame", 6, 4, 0, 285, 18], - ["invoke", 6, 4, 285, 18], - ["move", 6, 4, 285, 18], - ["get", 6, 44, 1, 286, 22], - ["frame", 7, 6, 0, 286, 22], - ["invoke", 7, 6, 286, 22], - ["move", 7, 6, 286, 22], - ["access", 7, "frame", 287, 12], - ["access", 8, 2, 287, 43], - ["get", 9, 56, 1, 287, 5], - ["frame", 10, 9, 4, 287, 5], + ["setarg", 8, 1, 6, 295, 5], + ["setarg", 8, 2, 5, 295, 5], + ["setarg", 8, 3, 4, 295, 5], + ["invoke", 8, 4, 295, 5], + ["get", 4, 46, 1, 296, 18], + ["frame", 6, 4, 0, 296, 18], + ["invoke", 6, 4, 296, 18], + ["move", 6, 4, 296, 18], + ["get", 6, 46, 1, 297, 22], + ["frame", 7, 6, 0, 297, 22], + ["invoke", 7, 6, 297, 22], + ["move", 7, 6, 297, 22], + ["access", 7, "frame", 298, 12], + ["access", 8, 2, 298, 43], + ["get", 9, 58, 1, 298, 5], + ["frame", 10, 9, 4, 298, 5], ["stone_text", 7], - ["setarg", 10, 1, 7, 287, 5], - ["setarg", 10, 2, 6, 287, 5], - ["setarg", 10, 3, 2, 287, 5], - ["setarg", 10, 4, 8, 287, 5], - ["invoke", 10, 2, 287, 5], - ["get", 2, 44, 1, 288, 21], - ["frame", 7, 2, 0, 288, 21], - ["invoke", 7, 2, 288, 21], - ["move", 7, 2, 288, 21], - ["access", 7, "null", 289, 12], - ["get", 8, 54, 1, 289, 5], - ["frame", 9, 8, 2, 289, 5], + ["setarg", 10, 1, 7, 298, 5], + ["setarg", 10, 2, 6, 298, 5], + ["setarg", 10, 3, 2, 298, 5], + ["setarg", 10, 4, 8, 298, 5], + ["invoke", 10, 2, 298, 5], + ["get", 2, 46, 1, 299, 21], + ["frame", 7, 2, 0, 299, 21], + ["invoke", 7, 2, 299, 21], + ["move", 7, 2, 299, 21], + ["access", 7, "null", 300, 12], + ["get", 8, 56, 1, 300, 5], + ["frame", 9, 8, 2, 300, 5], ["stone_text", 7], - ["setarg", 9, 1, 7, 289, 5], - ["setarg", 9, 2, 2, 289, 5], - ["invoke", 9, 7, 289, 5], - ["access", 7, "setarg", 290, 12], - ["access", 8, 0, 290, 34], - ["get", 9, 56, 1, 290, 5], - ["frame", 10, 9, 4, 290, 5], + ["setarg", 9, 1, 7, 300, 5], + ["setarg", 9, 2, 2, 300, 5], + ["invoke", 9, 7, 300, 5], + ["access", 7, "setarg", 301, 12], + ["access", 8, 0, 301, 34], + ["get", 9, 58, 1, 301, 5], + ["frame", 10, 9, 4, 301, 5], ["stone_text", 7], - ["setarg", 10, 1, 7, 290, 5], - ["setarg", 10, 2, 6, 290, 5], - ["setarg", 10, 3, 8, 290, 5], - ["setarg", 10, 4, 2, 290, 5], - ["invoke", 10, 2, 290, 5], - ["access", 2, "setarg", 291, 12], - ["access", 7, 1, 291, 34], - ["get", 8, 56, 1, 291, 5], - ["frame", 9, 8, 4, 291, 5], + ["setarg", 10, 1, 7, 301, 5], + ["setarg", 10, 2, 6, 301, 5], + ["setarg", 10, 3, 8, 301, 5], + ["setarg", 10, 4, 2, 301, 5], + ["invoke", 10, 2, 301, 5], + ["access", 2, "setarg", 302, 12], + ["access", 7, 1, 302, 34], + ["get", 8, 58, 1, 302, 5], + ["frame", 9, 8, 4, 302, 5], ["stone_text", 2], - ["setarg", 9, 1, 2, 291, 5], - ["setarg", 9, 2, 6, 291, 5], - ["setarg", 9, 3, 7, 291, 5], - ["setarg", 9, 4, 3, 291, 5], - ["invoke", 9, 2, 291, 5], - ["access", 2, "setarg", 292, 12], - ["access", 3, 2, 292, 34], - ["get", 7, 56, 1, 292, 5], - ["frame", 8, 7, 4, 292, 5], + ["setarg", 9, 1, 2, 302, 5], + ["setarg", 9, 2, 6, 302, 5], + ["setarg", 9, 3, 7, 302, 5], + ["setarg", 9, 4, 3, 302, 5], + ["invoke", 9, 2, 302, 5], + ["access", 2, "setarg", 303, 12], + ["access", 3, 2, 303, 34], + ["get", 7, 58, 1, 303, 5], + ["frame", 8, 7, 4, 303, 5], ["stone_text", 2], - ["setarg", 8, 1, 2, 292, 5], - ["setarg", 8, 2, 6, 292, 5], - ["setarg", 8, 3, 3, 292, 5], - ["setarg", 8, 4, 5, 292, 5], - ["invoke", 8, 2, 292, 5], - ["access", 2, "invoke", 293, 12], - ["get", 3, 55, 1, 293, 5], - ["frame", 5, 3, 3, 293, 5], + ["setarg", 8, 1, 2, 303, 5], + ["setarg", 8, 2, 6, 303, 5], + ["setarg", 8, 3, 3, 303, 5], + ["setarg", 8, 4, 5, 303, 5], + ["invoke", 8, 2, 303, 5], + ["access", 2, "invoke", 304, 12], + ["get", 3, 57, 1, 304, 5], + ["frame", 5, 3, 3, 304, 5], ["stone_text", 2], - ["setarg", 5, 1, 2, 293, 5], - ["setarg", 5, 2, 6, 293, 5], - ["setarg", 5, 3, 4, 293, 5], - ["invoke", 5, 2, 293, 5], - ["null", 2, 293, 5], - ["return", 2, 293, 5] + ["setarg", 5, 1, 2, 304, 5], + ["setarg", 5, 2, 6, 304, 5], + ["setarg", 5, 3, 4, 304, 5], + ["invoke", 5, 2, 304, 5], + ["null", 2, 304, 5], + ["return", 2, 304, 5] ], "_write_types": [null, null, null, null, null, null, null, null, null, null, null, null, "text", "record", "text", "text", "text", "array", null, null, null, null, null, null, "text", null, null, null, null, null, null, null, null, null, null, null, null, "text", "int", "array", null, null, null, "text", null, null, null, null, null, null, null, null, null, "text", "int", null, null, null, null, null, null, "text", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", null, null, null, "null"], "name": "", @@ -1133,17 +1049,17 @@ "nr_slots": 5, "nr_close_slots": 0, "instructions": [ - ["access", 2, "jump", 297, 16], - ["array", 3, 2, 297, 24], + ["access", 2, "jump", 308, 16], + ["array", 3, 2, 308, 24], ["stone_text", 2], - ["push", 3, 2, 297, 24], - ["push", 3, 1, 297, 24], - ["get", 2, 51, 1, 297, 5], - ["frame", 4, 2, 1, 297, 5], - ["setarg", 4, 1, 3, 297, 5], - ["invoke", 4, 2, 297, 5], - ["null", 2, 297, 5], - ["return", 2, 297, 5] + ["push", 3, 2, 308, 24], + ["push", 3, 1, 308, 24], + ["get", 2, 53, 1, 308, 5], + ["frame", 4, 2, 1, 308, 5], + ["setarg", 4, 1, 3, 308, 5], + ["invoke", 4, 2, 308, 5], + ["null", 2, 308, 5], + ["return", 2, 308, 5] ], "_write_types": [null, null, "text", "array", null, null, null, "null"], "name": "", @@ -1156,16 +1072,16 @@ "nr_slots": 7, "nr_close_slots": 0, "instructions": [ - ["array", 4, 3, 301, 26], - ["push", 4, 1, 301, 26], - ["push", 4, 2, 301, 26], - ["push", 4, 3, 301, 26], - ["get", 5, 51, 1, 301, 5], - ["frame", 6, 5, 1, 301, 5], - ["setarg", 6, 1, 4, 301, 5], - ["invoke", 6, 4, 301, 5], - ["null", 4, 301, 5], - ["return", 4, 301, 5] + ["array", 4, 3, 312, 26], + ["push", 4, 1, 312, 26], + ["push", 4, 2, 312, 26], + ["push", 4, 3, 312, 26], + ["get", 5, 53, 1, 312, 5], + ["frame", 6, 5, 1, 312, 5], + ["setarg", 6, 1, 4, 312, 5], + ["invoke", 6, 4, 312, 5], + ["null", 4, 312, 5], + ["return", 4, 312, 5] ], "_write_types": [null, null, null, null, "array", null, null, null, "null"], "name": "", @@ -1178,25 +1094,25 @@ "nr_slots": 6, "nr_close_slots": 0, "instructions": [ - ["null", 2, 314, 17], - ["eq", 3, 1, 2, 314, 17], - ["jump_false", 3, "if_else_52", 314, 17], - ["false", 2, 314, 32], - ["return", 2, 314, 32], + ["null", 2, 325, 17], + ["eq", 3, 1, 2, 325, 17], + ["jump_false", 3, "if_else_44", 325, 17], + ["false", 2, 325, 32], + ["return", 2, 325, 32], "_nop_ur_1", - "if_else_52", - "if_end_53", - ["load_field", 2, 1, "kind", 315, 12], - ["access", 3, "text", 315, 25], - ["eq", 4, 2, 3, 315, 25], - ["move", 2, 4, 315, 25], - ["jump_true", 4, "or_end_54", 315, 25], - ["load_field", 3, 1, "kind", 315, 35], - ["access", 4, "text literal", 315, 48], - ["eq", 5, 3, 4, 315, 48], - ["move", 2, 5, 315, 48], - "or_end_54", - ["return", 2, 315, 48], + "if_else_44", + "if_end_45", + ["load_field", 2, 1, "kind", 326, 12], + ["access", 3, "text", 326, 25], + ["eq", 4, 2, 3, 326, 25], + ["move", 2, 4, 326, 25], + ["jump_true", 4, "or_end_46", 326, 25], + ["load_field", 3, 1, "kind", 326, 35], + ["access", 4, "text literal", 326, 48], + ["eq", 5, 3, 4, 326, 48], + ["move", 2, 5, 326, 48], + "or_end_46", + ["return", 2, 326, 48], "_nop_ur_2", "_nop_ur_3" ], @@ -1211,18 +1127,18 @@ "nr_slots": 5, "nr_close_slots": 0, "instructions": [ - ["null", 2, 320, 17], - ["eq", 3, 1, 2, 320, 17], - ["jump_false", 3, "if_else_55", 320, 17], - ["false", 2, 320, 32], - ["return", 2, 320, 32], + ["null", 2, 331, 17], + ["eq", 3, 1, 2, 331, 17], + ["jump_false", 3, "if_else_47", 331, 17], + ["false", 2, 331, 32], + ["return", 2, 331, 32], "_nop_ur_1", - "if_else_55", - "if_end_56", - ["load_field", 2, 1, "kind", 321, 12], - ["access", 3, "number", 321, 25], - ["eq", 4, 2, 3, 321, 25], - ["return", 4, 321, 25], + "if_else_47", + "if_end_48", + ["load_field", 2, 1, "kind", 332, 12], + ["access", 3, "number", 332, 25], + ["eq", 4, 2, 3, 332, 25], + ["return", 4, 332, 25], "_nop_ur_2", "_nop_ur_3" ], @@ -1237,7 +1153,7 @@ "nr_slots": 6, "nr_close_slots": 0, "instructions": [ - ["get", 2, 35, 1, 338, 13], + ["get", 2, 35, 1, 349, 13], [ "access", 3, @@ -1246,23 +1162,23 @@ "kind": "name", "make": "intrinsic" }, - 338, + 349, 26 ], - ["frame", 4, 3, 1, 338, 26], - ["setarg", 4, 1, 1, 338, 26], - ["invoke", 4, 3, 338, 26], - ["load_dynamic", 4, 2, 3, 338, 26], - ["move", 2, 4, 338, 26], - ["access", 3, "num", 339, 17], - ["eq", 5, 4, 3, 339, 17], - ["move", 3, 5, 339, 17], - ["jump_true", 5, "or_end_57", 339, 17], - ["access", 4, "int", 339, 31], - ["eq", 5, 2, 4, 339, 31], - ["move", 3, 5, 339, 31], - "or_end_57", - ["return", 3, 339, 31], + ["frame", 4, 3, 1, 349, 26], + ["setarg", 4, 1, 1, 349, 26], + ["invoke", 4, 3, 349, 26], + ["load_dynamic", 4, 2, 3, 349, 26], + ["move", 2, 4, 349, 26], + ["access", 3, "num", 350, 17], + ["eq", 5, 4, 3, 350, 17], + ["move", 3, 5, 350, 17], + ["jump_true", 5, "or_end_49", 350, 17], + ["access", 4, "int", 350, 31], + ["eq", 5, 2, 4, 350, 31], + ["move", 3, 5, 350, 31], + "or_end_49", + ["return", 3, 350, 31], "_nop_ur_1", "_nop_ur_2" ], @@ -1277,7 +1193,7 @@ "nr_slots": 5, "nr_close_slots": 0, "instructions": [ - ["get", 2, 35, 1, 343, 12], + ["get", 2, 35, 1, 354, 12], [ "access", 3, @@ -1286,16 +1202,16 @@ "kind": "name", "make": "intrinsic" }, - 343, + 354, 25 ], - ["frame", 4, 3, 1, 343, 25], - ["setarg", 4, 1, 1, 343, 25], - ["invoke", 4, 3, 343, 25], - ["load_dynamic", 4, 2, 3, 343, 25], - ["access", 2, "text", 343, 40], - ["eq", 3, 4, 2, 343, 40], - ["return", 3, 343, 40], + ["frame", 4, 3, 1, 354, 25], + ["setarg", 4, 1, 1, 354, 25], + ["invoke", 4, 3, 354, 25], + ["load_dynamic", 4, 2, 3, 354, 25], + ["access", 2, "text", 354, 40], + ["eq", 3, 4, 2, 354, 40], + ["return", 3, 354, 40], "_nop_ur_1", "_nop_ur_2" ], @@ -1310,7 +1226,7 @@ "nr_slots": 6, "nr_close_slots": 0, "instructions": [ - ["get", 3, 35, 1, 347, 5], + ["get", 3, 35, 1, 358, 5], [ "access", 4, @@ -1319,15 +1235,15 @@ "kind": "name", "make": "intrinsic" }, - 347, + 358, 18 ], - ["frame", 5, 4, 1, 347, 18], - ["setarg", 5, 1, 1, 347, 18], - ["invoke", 5, 4, 347, 18], - ["store_dynamic", 3, 2, 4, 347, 18], - ["null", 3, 347, 18], - ["return", 3, 347, 18] + ["frame", 5, 4, 1, 358, 18], + ["setarg", 5, 1, 1, 358, 18], + ["invoke", 5, 4, 358, 18], + ["store_dynamic", 3, 2, 4, 358, 18], + ["null", 3, 358, 18], + ["return", 3, 358, 18] ], "_write_types": [null, null, null, null, null, null, null, "null"], "name": "", @@ -1340,7 +1256,7 @@ "nr_slots": 7, "nr_close_slots": 0, "instructions": [ - ["get", 3, 35, 1, 351, 32], + ["get", 3, 35, 1, 362, 32], [ "access", 4, @@ -1349,14 +1265,14 @@ "kind": "name", "make": "intrinsic" }, - 351, + 362, 45 ], - ["frame", 5, 4, 1, 351, 45], - ["setarg", 5, 1, 2, 351, 45], - ["invoke", 5, 4, 351, 45], - ["load_dynamic", 5, 3, 4, 351, 45], - ["get", 3, 35, 1, 351, 5], + ["frame", 5, 4, 1, 362, 45], + ["setarg", 5, 1, 2, 362, 45], + ["invoke", 5, 4, 362, 45], + ["load_dynamic", 5, 3, 4, 362, 45], + ["get", 3, 35, 1, 362, 5], [ "access", 4, @@ -1365,15 +1281,15 @@ "kind": "name", "make": "intrinsic" }, - 351, + 362, 18 ], - ["frame", 6, 4, 1, 351, 18], - ["setarg", 6, 1, 1, 351, 18], - ["invoke", 6, 4, 351, 18], - ["store_dynamic", 3, 5, 4, 351, 18], - ["null", 3, 351, 18], - ["return", 3, 351, 18] + ["frame", 6, 4, 1, 362, 18], + ["setarg", 6, 1, 1, 362, 18], + ["invoke", 6, 4, 362, 18], + ["store_dynamic", 3, 5, 4, 362, 18], + ["null", 3, 362, 18], + ["return", 3, 362, 18] ], "_write_types": [null, null, null, null, null, null, null, null, null, null, null, null, "null"], "name": "", @@ -1386,305 +1302,305 @@ "nr_slots": 11, "nr_close_slots": 0, "instructions": [ - ["get", 1, 38, 1, 357, 39], - ["get", 2, 66, 1, 357, 23], - ["frame", 3, 2, 1, 357, 23], - ["setarg", 3, 1, 1, 357, 23], - ["invoke", 3, 1, 357, 23], - ["move", 2, 1, 357, 23], - ["jump_true", 1, "or_end_58", 357, 23], - ["get", 1, 36, 1, 357, 62], - ["get", 3, 67, 1, 357, 50], - ["frame", 4, 3, 1, 357, 50], - ["setarg", 4, 1, 1, 357, 50], - ["invoke", 4, 1, 357, 50], - ["move", 2, 1, 357, 50], - "or_end_58", - ["move", 1, 2, 357, 50], - ["get", 2, 38, 1, 358, 38], - ["get", 3, 65, 1, 358, 24], - ["frame", 4, 3, 1, 358, 24], - ["setarg", 4, 1, 2, 358, 24], - ["invoke", 4, 2, 358, 24], - ["move", 3, 2, 358, 24], - ["jump_true", 2, "or_end_59", 358, 24], - ["get", 2, 36, 1, 358, 62], - ["get", 4, 68, 1, 358, 49], - ["frame", 5, 4, 1, 358, 49], - ["setarg", 5, 1, 2, 358, 49], - ["invoke", 5, 2, 358, 49], - ["move", 3, 2, 358, 49], - "or_end_59", - ["move", 2, 3, 358, 49], - ["get", 3, 39, 1, 359, 40], - ["get", 4, 66, 1, 359, 24], - ["frame", 5, 4, 1, 359, 24], - ["setarg", 5, 1, 3, 359, 24], - ["invoke", 5, 3, 359, 24], - ["move", 4, 3, 359, 24], - ["jump_true", 3, "or_end_60", 359, 24], - ["get", 3, 37, 1, 359, 63], - ["get", 5, 67, 1, 359, 51], - ["frame", 6, 5, 1, 359, 51], - ["setarg", 6, 1, 3, 359, 51], - ["invoke", 6, 3, 359, 51], - ["move", 4, 3, 359, 51], - "or_end_60", - ["move", 3, 4, 359, 51], - ["get", 4, 39, 1, 360, 39], - ["get", 5, 65, 1, 360, 25], - ["frame", 6, 5, 1, 360, 25], - ["setarg", 6, 1, 4, 360, 25], - ["invoke", 6, 4, 360, 25], - ["move", 5, 4, 360, 25], - ["jump_true", 4, "or_end_61", 360, 25], - ["get", 4, 37, 1, 360, 63], - ["get", 6, 68, 1, 360, 50], - ["frame", 7, 6, 1, 360, 50], - ["setarg", 7, 1, 4, 360, 50], - ["invoke", 7, 4, 360, 50], - ["move", 5, 4, 360, 50], - "or_end_61", - ["move", 4, 5, 360, 50], - ["move", 5, 2, 363, 9], - ["jump_false", 2, "and_end_64", 363, 9], - ["move", 5, 4, 363, 25], - "and_end_64", - ["jump_false", 5, "if_else_62", 363, 25], - ["access", 2, "concat", 364, 14], - ["get", 4, 34, 1, 364, 24], - ["get", 5, 36, 1, 364, 34], - ["get", 6, 37, 1, 364, 44], - ["get", 7, 56, 1, 364, 7], - ["frame", 8, 7, 4, 364, 7], + ["get", 1, 40, 1, 368, 39], + ["get", 2, 68, 1, 368, 23], + ["frame", 3, 2, 1, 368, 23], + ["setarg", 3, 1, 1, 368, 23], + ["invoke", 3, 1, 368, 23], + ["move", 2, 1, 368, 23], + ["wary_true", 1, "or_end_50", 368, 23], + ["get", 1, 38, 1, 368, 62], + ["get", 3, 69, 1, 368, 50], + ["frame", 4, 3, 1, 368, 50], + ["setarg", 4, 1, 1, 368, 50], + ["invoke", 4, 1, 368, 50], + ["move", 2, 1, 368, 50], + "or_end_50", + ["move", 1, 2, 368, 50], + ["get", 2, 40, 1, 369, 38], + ["get", 3, 67, 1, 369, 24], + ["frame", 4, 3, 1, 369, 24], + ["setarg", 4, 1, 2, 369, 24], + ["invoke", 4, 2, 369, 24], + ["move", 3, 2, 369, 24], + ["wary_true", 2, "or_end_51", 369, 24], + ["get", 2, 38, 1, 369, 62], + ["get", 4, 70, 1, 369, 49], + ["frame", 5, 4, 1, 369, 49], + ["setarg", 5, 1, 2, 369, 49], + ["invoke", 5, 2, 369, 49], + ["move", 3, 2, 369, 49], + "or_end_51", + ["move", 2, 3, 369, 49], + ["get", 3, 41, 1, 370, 40], + ["get", 4, 68, 1, 370, 24], + ["frame", 5, 4, 1, 370, 24], + ["setarg", 5, 1, 3, 370, 24], + ["invoke", 5, 3, 370, 24], + ["move", 4, 3, 370, 24], + ["wary_true", 3, "or_end_52", 370, 24], + ["get", 3, 39, 1, 370, 63], + ["get", 5, 69, 1, 370, 51], + ["frame", 6, 5, 1, 370, 51], + ["setarg", 6, 1, 3, 370, 51], + ["invoke", 6, 3, 370, 51], + ["move", 4, 3, 370, 51], + "or_end_52", + ["move", 3, 4, 370, 51], + ["get", 4, 41, 1, 371, 39], + ["get", 5, 67, 1, 371, 25], + ["frame", 6, 5, 1, 371, 25], + ["setarg", 6, 1, 4, 371, 25], + ["invoke", 6, 4, 371, 25], + ["move", 5, 4, 371, 25], + ["wary_true", 4, "or_end_53", 371, 25], + ["get", 4, 39, 1, 371, 63], + ["get", 6, 70, 1, 371, 50], + ["frame", 7, 6, 1, 371, 50], + ["setarg", 7, 1, 4, 371, 50], + ["invoke", 7, 4, 371, 50], + ["move", 5, 4, 371, 50], + "or_end_53", + ["move", 4, 5, 371, 50], + ["move", 5, 2, 374, 9], + ["wary_false", 2, "and_end_56", 374, 9], + ["move", 5, 4, 374, 25], + "and_end_56", + ["wary_false", 5, "if_else_54", 374, 25], + ["access", 2, "concat", 375, 14], + ["get", 4, 37, 1, 375, 24], + ["get", 5, 38, 1, 375, 34], + ["get", 6, 39, 1, 375, 44], + ["get", 7, 58, 1, 375, 7], + ["frame", 8, 7, 4, 375, 7], ["stone_text", 2], - ["setarg", 8, 1, 2, 364, 7], - ["setarg", 8, 2, 4, 364, 7], - ["setarg", 8, 3, 5, 364, 7], - ["setarg", 8, 4, 6, 364, 7], - ["invoke", 8, 2, 364, 7], - ["get", 2, 34, 1, 365, 17], - ["access", 4, "text", 365, 27], - ["get", 5, 69, 1, 365, 7], - ["frame", 6, 5, 2, 365, 7], - ["setarg", 6, 1, 2, 365, 7], + ["setarg", 8, 1, 2, 375, 7], + ["setarg", 8, 2, 4, 375, 7], + ["setarg", 8, 3, 5, 375, 7], + ["setarg", 8, 4, 6, 375, 7], + ["invoke", 8, 2, 375, 7], + ["get", 2, 37, 1, 376, 17], + ["access", 4, "text", 376, 27], + ["get", 5, 71, 1, 376, 7], + ["frame", 6, 5, 2, 376, 7], + ["setarg", 6, 1, 2, 376, 7], ["stone_text", 4], - ["setarg", 6, 2, 4, 365, 7], - ["invoke", 6, 2, 365, 7], - ["null", 2, 366, 14], - ["return", 2, 366, 14], + ["setarg", 6, 2, 4, 376, 7], + ["invoke", 6, 2, 376, 7], + ["null", 2, 377, 14], + ["return", 2, 377, 14], "_nop_ur_1", - "if_else_62", - "if_end_63", - ["move", 2, 1, 369, 9], - ["jump_false", 1, "and_end_67", 369, 9], - ["move", 2, 3, 369, 24], - "and_end_67", - ["jump_false", 2, "if_else_65", 369, 24], - ["access", 2, "add", 370, 14], - ["get", 4, 34, 1, 370, 21], - ["get", 5, 36, 1, 370, 31], - ["get", 6, 37, 1, 370, 41], - ["get", 7, 56, 1, 370, 7], - ["frame", 8, 7, 4, 370, 7], + "if_else_54", + "if_end_55", + ["move", 2, 1, 380, 9], + ["wary_false", 1, "and_end_59", 380, 9], + ["move", 2, 3, 380, 24], + "and_end_59", + ["wary_false", 2, "if_else_57", 380, 24], + ["access", 2, "add", 381, 14], + ["get", 4, 37, 1, 381, 21], + ["get", 5, 38, 1, 381, 31], + ["get", 6, 39, 1, 381, 41], + ["get", 7, 58, 1, 381, 7], + ["frame", 8, 7, 4, 381, 7], ["stone_text", 2], - ["setarg", 8, 1, 2, 370, 7], - ["setarg", 8, 2, 4, 370, 7], - ["setarg", 8, 3, 5, 370, 7], - ["setarg", 8, 4, 6, 370, 7], - ["invoke", 8, 2, 370, 7], - ["get", 2, 34, 1, 371, 17], - ["access", 4, "num", 371, 27], - ["get", 5, 69, 1, 371, 7], - ["frame", 6, 5, 2, 371, 7], - ["setarg", 6, 1, 2, 371, 7], + ["setarg", 8, 1, 2, 381, 7], + ["setarg", 8, 2, 4, 381, 7], + ["setarg", 8, 3, 5, 381, 7], + ["setarg", 8, 4, 6, 381, 7], + ["invoke", 8, 2, 381, 7], + ["get", 2, 37, 1, 382, 17], + ["access", 4, "num", 382, 27], + ["get", 5, 71, 1, 382, 7], + ["frame", 6, 5, 2, 382, 7], + ["setarg", 6, 1, 2, 382, 7], ["stone_text", 4], - ["setarg", 6, 2, 4, 371, 7], - ["invoke", 6, 2, 371, 7], - ["null", 2, 372, 14], - ["return", 2, 372, 14], + ["setarg", 6, 2, 4, 382, 7], + ["invoke", 6, 2, 382, 7], + ["null", 2, 383, 14], + ["return", 2, 383, 14], "_nop_ur_2", - "if_else_65", - "if_end_66", - ["move", 2, 1, 375, 9], - ["jump_true", 1, "or_end_70", 375, 9], - ["move", 2, 3, 375, 24], - "or_end_70", - ["jump_false", 2, "if_else_68", 375, 24], - ["access", 1, "add", 376, 26], - ["get", 2, 72, 1, 376, 7], - ["frame", 3, 2, 1, 376, 7], + "if_else_57", + "if_end_58", + ["move", 2, 1, 386, 9], + ["wary_true", 1, "or_end_62", 386, 9], + ["move", 2, 3, 386, 24], + "or_end_62", + ["wary_false", 2, "if_else_60", 386, 24], + ["access", 1, "add", 387, 26], + ["get", 2, 74, 1, 387, 7], + ["frame", 3, 2, 1, 387, 7], ["stone_text", 1], - ["setarg", 3, 1, 1, 376, 7], - ["invoke", 3, 1, 376, 7], - ["get", 1, 34, 1, 377, 17], - ["access", 2, "num", 377, 27], - ["get", 3, 69, 1, 377, 7], - ["frame", 4, 3, 2, 377, 7], - ["setarg", 4, 1, 1, 377, 7], + ["setarg", 3, 1, 1, 387, 7], + ["invoke", 3, 1, 387, 7], + ["get", 1, 37, 1, 388, 17], + ["access", 2, "num", 388, 27], + ["get", 3, 71, 1, 388, 7], + ["frame", 4, 3, 2, 388, 7], + ["setarg", 4, 1, 1, 388, 7], ["stone_text", 2], - ["setarg", 4, 2, 2, 377, 7], - ["invoke", 4, 1, 377, 7], - ["null", 1, 378, 14], - ["return", 1, 378, 14], + ["setarg", 4, 2, 2, 388, 7], + ["invoke", 4, 1, 388, 7], + ["null", 1, 389, 14], + ["return", 1, 389, 14], "_nop_ur_3", - "if_else_68", - "if_end_69", - ["get", 1, 44, 1, 381, 14], - ["frame", 2, 1, 0, 381, 14], - ["invoke", 2, 1, 381, 14], - ["move", 2, 1, 381, 14], - ["get", 2, 44, 1, 382, 14], - ["frame", 3, 2, 0, 382, 14], - ["invoke", 3, 2, 382, 14], - ["move", 3, 2, 382, 14], - ["access", 3, "add_done", 383, 26], - ["get", 4, 49, 1, 383, 16], - ["frame", 5, 4, 1, 383, 16], + "if_else_60", + "if_end_61", + ["get", 1, 46, 1, 392, 14], + ["frame", 2, 1, 0, 392, 14], + ["invoke", 2, 1, 392, 14], + ["move", 2, 1, 392, 14], + ["get", 2, 46, 1, 393, 14], + ["frame", 3, 2, 0, 393, 14], + ["invoke", 3, 2, 393, 14], + ["move", 3, 2, 393, 14], + ["access", 3, "add_done", 394, 26], + ["get", 4, 51, 1, 394, 16], + ["frame", 5, 4, 1, 394, 16], ["stone_text", 3], - ["setarg", 5, 1, 3, 383, 16], - ["invoke", 5, 3, 383, 16], - ["move", 4, 3, 383, 16], - ["access", 4, "add_cn", 384, 31], - ["get", 5, 49, 1, 384, 21], - ["frame", 6, 5, 1, 384, 21], + ["setarg", 5, 1, 3, 394, 16], + ["invoke", 5, 3, 394, 16], + ["move", 4, 3, 394, 16], + ["access", 4, "add_cn", 395, 31], + ["get", 5, 51, 1, 395, 21], + ["frame", 6, 5, 1, 395, 21], ["stone_text", 4], - ["setarg", 6, 1, 4, 384, 21], - ["invoke", 6, 4, 384, 21], - ["move", 5, 4, 384, 21], - ["access", 5, "is_text", 387, 12], - ["get", 6, 36, 1, 387, 27], - ["get", 7, 55, 1, 387, 5], - ["frame", 8, 7, 3, 387, 5], + ["setarg", 6, 1, 4, 395, 21], + ["invoke", 6, 4, 395, 21], + ["move", 5, 4, 395, 21], + ["access", 5, "is_text", 398, 12], + ["get", 6, 38, 1, 398, 27], + ["get", 7, 57, 1, 398, 5], + ["frame", 8, 7, 3, 398, 5], ["stone_text", 5], - ["setarg", 8, 1, 5, 387, 5], - ["setarg", 8, 2, 1, 387, 5], - ["setarg", 8, 3, 6, 387, 5], - ["invoke", 8, 5, 387, 5], - ["access", 5, "jump_false", 388, 20], - ["get", 6, 64, 1, 388, 5], - ["frame", 7, 6, 3, 388, 5], - ["stone_text", 5], - ["setarg", 7, 1, 5, 388, 5], - ["setarg", 7, 2, 1, 388, 5], - ["setarg", 7, 3, 4, 388, 5], - ["invoke", 7, 5, 388, 5], - ["access", 5, "is_text", 389, 12], - ["get", 6, 37, 1, 389, 27], - ["get", 7, 55, 1, 389, 5], - ["frame", 8, 7, 3, 389, 5], - ["stone_text", 5], - ["setarg", 8, 1, 5, 389, 5], - ["setarg", 8, 2, 2, 389, 5], - ["setarg", 8, 3, 6, 389, 5], - ["invoke", 8, 5, 389, 5], - ["access", 5, "jump_false", 390, 20], - ["get", 6, 64, 1, 390, 5], - ["frame", 7, 6, 3, 390, 5], - ["stone_text", 5], - ["setarg", 7, 1, 5, 390, 5], - ["setarg", 7, 2, 2, 390, 5], - ["setarg", 7, 3, 4, 390, 5], - ["invoke", 7, 5, 390, 5], - ["access", 5, "concat", 391, 12], - ["get", 6, 34, 1, 391, 22], - ["get", 7, 36, 1, 391, 32], - ["get", 8, 37, 1, 391, 42], - ["get", 9, 56, 1, 391, 5], - ["frame", 10, 9, 4, 391, 5], - ["stone_text", 5], - ["setarg", 10, 1, 5, 391, 5], - ["setarg", 10, 2, 6, 391, 5], - ["setarg", 10, 3, 7, 391, 5], - ["setarg", 10, 4, 8, 391, 5], - ["invoke", 10, 5, 391, 5], - ["get", 5, 63, 1, 392, 5], - ["frame", 6, 5, 1, 392, 5], - ["setarg", 6, 1, 3, 392, 5], - ["invoke", 6, 5, 392, 5], - ["access", 5, "add_err", 395, 25], - ["get", 6, 49, 1, 395, 15], - ["frame", 7, 6, 1, 395, 15], - ["stone_text", 5], - ["setarg", 7, 1, 5, 395, 15], - ["invoke", 7, 5, 395, 15], - ["move", 6, 5, 395, 15], - ["get", 6, 52, 1, 396, 5], - ["frame", 7, 6, 1, 396, 5], - ["setarg", 7, 1, 4, 396, 5], - ["invoke", 7, 4, 396, 5], - ["access", 4, "is_num", 397, 12], - ["get", 6, 36, 1, 397, 26], - ["get", 7, 55, 1, 397, 5], - ["frame", 8, 7, 3, 397, 5], - ["stone_text", 4], - ["setarg", 8, 1, 4, 397, 5], - ["setarg", 8, 2, 1, 397, 5], - ["setarg", 8, 3, 6, 397, 5], - ["invoke", 8, 4, 397, 5], - ["access", 4, "jump_false", 398, 20], - ["get", 6, 64, 1, 398, 5], - ["frame", 7, 6, 3, 398, 5], - ["stone_text", 4], - ["setarg", 7, 1, 4, 398, 5], - ["setarg", 7, 2, 1, 398, 5], - ["setarg", 7, 3, 5, 398, 5], - ["invoke", 7, 1, 398, 5], - ["access", 1, "is_num", 399, 12], - ["get", 4, 37, 1, 399, 26], - ["get", 6, 55, 1, 399, 5], + ["setarg", 8, 1, 5, 398, 5], + ["setarg", 8, 2, 1, 398, 5], + ["setarg", 8, 3, 6, 398, 5], + ["invoke", 8, 5, 398, 5], + ["access", 5, "jump_false", 399, 20], + ["get", 6, 66, 1, 399, 5], ["frame", 7, 6, 3, 399, 5], - ["stone_text", 1], - ["setarg", 7, 1, 1, 399, 5], - ["setarg", 7, 2, 2, 399, 5], + ["stone_text", 5], + ["setarg", 7, 1, 5, 399, 5], + ["setarg", 7, 2, 1, 399, 5], ["setarg", 7, 3, 4, 399, 5], - ["invoke", 7, 1, 399, 5], - ["access", 1, "jump_false", 400, 20], - ["get", 4, 64, 1, 400, 5], - ["frame", 6, 4, 3, 400, 5], + ["invoke", 7, 5, 399, 5], + ["access", 5, "is_text", 400, 12], + ["get", 6, 39, 1, 400, 27], + ["get", 7, 57, 1, 400, 5], + ["frame", 8, 7, 3, 400, 5], + ["stone_text", 5], + ["setarg", 8, 1, 5, 400, 5], + ["setarg", 8, 2, 2, 400, 5], + ["setarg", 8, 3, 6, 400, 5], + ["invoke", 8, 5, 400, 5], + ["access", 5, "jump_false", 401, 20], + ["get", 6, 66, 1, 401, 5], + ["frame", 7, 6, 3, 401, 5], + ["stone_text", 5], + ["setarg", 7, 1, 5, 401, 5], + ["setarg", 7, 2, 2, 401, 5], + ["setarg", 7, 3, 4, 401, 5], + ["invoke", 7, 5, 401, 5], + ["access", 5, "concat", 402, 12], + ["get", 6, 37, 1, 402, 22], + ["get", 7, 38, 1, 402, 32], + ["get", 8, 39, 1, 402, 42], + ["get", 9, 58, 1, 402, 5], + ["frame", 10, 9, 4, 402, 5], + ["stone_text", 5], + ["setarg", 10, 1, 5, 402, 5], + ["setarg", 10, 2, 6, 402, 5], + ["setarg", 10, 3, 7, 402, 5], + ["setarg", 10, 4, 8, 402, 5], + ["invoke", 10, 5, 402, 5], + ["get", 5, 65, 1, 403, 5], + ["frame", 6, 5, 1, 403, 5], + ["setarg", 6, 1, 3, 403, 5], + ["invoke", 6, 5, 403, 5], + ["access", 5, "add_err", 406, 25], + ["get", 6, 51, 1, 406, 15], + ["frame", 7, 6, 1, 406, 15], + ["stone_text", 5], + ["setarg", 7, 1, 5, 406, 15], + ["invoke", 7, 5, 406, 15], + ["move", 6, 5, 406, 15], + ["get", 6, 54, 1, 407, 5], + ["frame", 7, 6, 1, 407, 5], + ["setarg", 7, 1, 4, 407, 5], + ["invoke", 7, 4, 407, 5], + ["access", 4, "is_num", 408, 12], + ["get", 6, 38, 1, 408, 26], + ["get", 7, 57, 1, 408, 5], + ["frame", 8, 7, 3, 408, 5], + ["stone_text", 4], + ["setarg", 8, 1, 4, 408, 5], + ["setarg", 8, 2, 1, 408, 5], + ["setarg", 8, 3, 6, 408, 5], + ["invoke", 8, 4, 408, 5], + ["access", 4, "jump_false", 409, 20], + ["get", 6, 66, 1, 409, 5], + ["frame", 7, 6, 3, 409, 5], + ["stone_text", 4], + ["setarg", 7, 1, 4, 409, 5], + ["setarg", 7, 2, 1, 409, 5], + ["setarg", 7, 3, 5, 409, 5], + ["invoke", 7, 1, 409, 5], + ["access", 1, "is_num", 410, 12], + ["get", 4, 39, 1, 410, 26], + ["get", 6, 57, 1, 410, 5], + ["frame", 7, 6, 3, 410, 5], ["stone_text", 1], - ["setarg", 6, 1, 1, 400, 5], - ["setarg", 6, 2, 2, 400, 5], - ["setarg", 6, 3, 5, 400, 5], - ["invoke", 6, 1, 400, 5], - ["access", 1, "add", 401, 12], - ["get", 2, 34, 1, 401, 19], - ["get", 4, 36, 1, 401, 29], - ["get", 6, 37, 1, 401, 39], - ["get", 7, 56, 1, 401, 5], - ["frame", 8, 7, 4, 401, 5], + ["setarg", 7, 1, 1, 410, 5], + ["setarg", 7, 2, 2, 410, 5], + ["setarg", 7, 3, 4, 410, 5], + ["invoke", 7, 1, 410, 5], + ["access", 1, "jump_false", 411, 20], + ["get", 4, 66, 1, 411, 5], + ["frame", 6, 4, 3, 411, 5], ["stone_text", 1], - ["setarg", 8, 1, 1, 401, 5], - ["setarg", 8, 2, 2, 401, 5], - ["setarg", 8, 3, 4, 401, 5], - ["setarg", 8, 4, 6, 401, 5], - ["invoke", 8, 1, 401, 5], - ["get", 1, 63, 1, 402, 5], - ["frame", 2, 1, 1, 402, 5], - ["setarg", 2, 1, 3, 402, 5], - ["invoke", 2, 1, 402, 5], - ["get", 1, 52, 1, 404, 5], - ["frame", 2, 1, 1, 404, 5], - ["setarg", 2, 1, 5, 404, 5], - ["invoke", 2, 1, 404, 5], - ["access", 1, "cannot apply '+': operands must both be text or both be numbers", 405, 20], - ["get", 2, 62, 1, 405, 5], - ["frame", 4, 2, 1, 405, 5], + ["setarg", 6, 1, 1, 411, 5], + ["setarg", 6, 2, 2, 411, 5], + ["setarg", 6, 3, 5, 411, 5], + ["invoke", 6, 1, 411, 5], + ["access", 1, "add", 412, 12], + ["get", 2, 37, 1, 412, 19], + ["get", 4, 38, 1, 412, 29], + ["get", 6, 39, 1, 412, 39], + ["get", 7, 58, 1, 412, 5], + ["frame", 8, 7, 4, 412, 5], ["stone_text", 1], - ["setarg", 4, 1, 1, 405, 5], - ["invoke", 4, 1, 405, 5], - ["access", 1, "disrupt", 406, 12], - ["get", 2, 53, 1, 406, 5], - ["frame", 4, 2, 1, 406, 5], + ["setarg", 8, 1, 1, 412, 5], + ["setarg", 8, 2, 2, 412, 5], + ["setarg", 8, 3, 4, 412, 5], + ["setarg", 8, 4, 6, 412, 5], + ["invoke", 8, 1, 412, 5], + ["get", 1, 65, 1, 413, 5], + ["frame", 2, 1, 1, 413, 5], + ["setarg", 2, 1, 3, 413, 5], + ["invoke", 2, 1, 413, 5], + ["get", 1, 54, 1, 415, 5], + ["frame", 2, 1, 1, 415, 5], + ["setarg", 2, 1, 5, 415, 5], + ["invoke", 2, 1, 415, 5], + ["access", 1, "cannot apply '+': operands must both be text or both be numbers", 416, 20], + ["get", 2, 64, 1, 416, 5], + ["frame", 4, 2, 1, 416, 5], ["stone_text", 1], - ["setarg", 4, 1, 1, 406, 5], - ["invoke", 4, 1, 406, 5], - ["get", 1, 52, 1, 407, 5], - ["frame", 2, 1, 1, 407, 5], - ["setarg", 2, 1, 3, 407, 5], - ["invoke", 2, 1, 407, 5], - ["null", 1, 408, 12], - ["return", 1, 408, 12], + ["setarg", 4, 1, 1, 416, 5], + ["invoke", 4, 1, 416, 5], + ["access", 1, "disrupt", 417, 12], + ["get", 2, 55, 1, 417, 5], + ["frame", 4, 2, 1, 417, 5], + ["stone_text", 1], + ["setarg", 4, 1, 1, 417, 5], + ["invoke", 4, 1, 417, 5], + ["get", 1, 54, 1, 418, 5], + ["frame", 2, 1, 1, 418, 5], + ["setarg", 2, 1, 3, 418, 5], + ["invoke", 2, 1, 418, 5], + ["null", 1, 419, 12], + ["return", 1, 419, 12], "_nop_ur_4", "_nop_ur_5" ], @@ -1699,234 +1615,210 @@ "nr_slots": 11, "nr_close_slots": 0, "instructions": [ - ["get", 2, 38, 1, 414, 26], - ["get", 3, 66, 1, 414, 10], - ["frame", 4, 3, 1, 414, 10], - ["setarg", 4, 1, 2, 414, 10], - ["invoke", 4, 2, 414, 10], - ["move", 3, 2, 414, 10], - ["jump_true", 2, "or_end_74", 414, 10], - ["get", 2, 36, 1, 414, 49], - ["get", 4, 67, 1, 414, 37], - ["frame", 5, 4, 1, 414, 37], - ["setarg", 5, 1, 2, 414, 37], - ["invoke", 5, 2, 414, 37], - ["move", 3, 2, 414, 37], - "or_end_74", - ["move", 2, 3, 414, 37], - ["jump_false", 3, "and_end_73", 414, 37], - ["get", 3, 39, 1, 415, 29], - ["get", 4, 66, 1, 415, 13], - ["frame", 5, 4, 1, 415, 13], - ["setarg", 5, 1, 3, 415, 13], - ["invoke", 5, 3, 415, 13], - ["move", 4, 3, 415, 13], - ["jump_true", 3, "or_end_75", 415, 13], - ["get", 3, 37, 1, 415, 52], - ["get", 5, 67, 1, 415, 40], - ["frame", 6, 5, 1, 415, 40], - ["setarg", 6, 1, 3, 415, 40], - ["invoke", 6, 3, 415, 40], - ["move", 4, 3, 415, 40], - "or_end_75", - ["move", 2, 4, 415, 40], - "and_end_73", - ["jump_false", 2, "if_else_71", 415, 40], - ["get", 2, 34, 1, 416, 22], - ["get", 3, 36, 1, 416, 32], - ["get", 4, 37, 1, 416, 42], - ["get", 5, 56, 1, 416, 7], - ["frame", 6, 5, 4, 416, 7], - ["setarg", 6, 1, 1, 416, 7], - ["setarg", 6, 2, 2, 416, 7], - ["setarg", 6, 3, 3, 416, 7], - ["setarg", 6, 4, 4, 416, 7], - ["invoke", 6, 2, 416, 7], - ["get", 2, 34, 1, 417, 17], - ["access", 3, "num", 417, 27], - ["get", 4, 69, 1, 417, 7], - ["frame", 5, 4, 2, 417, 7], - ["setarg", 5, 1, 2, 417, 7], - ["stone_text", 3], - ["setarg", 5, 2, 3, 417, 7], - ["invoke", 5, 2, 417, 7], - ["null", 2, 418, 14], - ["return", 2, 418, 14], + ["get", 2, 40, 1, 425, 38], + ["get", 3, 68, 1, 425, 22], + ["frame", 4, 3, 1, 425, 22], + ["setarg", 4, 1, 2, 425, 22], + ["invoke", 4, 2, 425, 22], + ["move", 3, 2, 425, 22], + ["wary_true", 2, "or_end_63", 425, 22], + ["get", 2, 38, 1, 425, 61], + ["get", 4, 69, 1, 425, 49], + ["frame", 5, 4, 1, 425, 49], + ["setarg", 5, 1, 2, 425, 49], + ["invoke", 5, 2, 425, 49], + ["move", 3, 2, 425, 49], + "or_end_63", + ["move", 2, 3, 425, 49], + ["get", 3, 41, 1, 426, 39], + ["get", 4, 68, 1, 426, 23], + ["frame", 5, 4, 1, 426, 23], + ["setarg", 5, 1, 3, 426, 23], + ["invoke", 5, 3, 426, 23], + ["move", 4, 3, 426, 23], + ["wary_true", 3, "or_end_64", 426, 23], + ["get", 3, 39, 1, 426, 62], + ["get", 5, 69, 1, 426, 50], + ["frame", 6, 5, 1, 426, 50], + ["setarg", 6, 1, 3, 426, 50], + ["invoke", 6, 3, 426, 50], + ["move", 4, 3, 426, 50], + "or_end_64", + ["move", 3, 4, 426, 50], + ["null", 4, 427, 14], + ["null", 5, 428, 16], + ["move", 6, 2, 429, 9], + ["wary_false", 2, "and_end_67", 429, 9], + ["move", 6, 3, 429, 23], + "and_end_67", + ["wary_false", 6, "if_else_65", 429, 23], + ["get", 6, 37, 1, 430, 22], + ["get", 7, 38, 1, 430, 32], + ["get", 8, 39, 1, 430, 42], + ["get", 9, 58, 1, 430, 7], + ["frame", 10, 9, 4, 430, 7], + ["setarg", 10, 1, 1, 430, 7], + ["setarg", 10, 2, 6, 430, 7], + ["setarg", 10, 3, 7, 430, 7], + ["setarg", 10, 4, 8, 430, 7], + ["invoke", 10, 6, 430, 7], + ["get", 6, 37, 1, 431, 17], + ["access", 7, "num", 431, 27], + ["get", 8, 71, 1, 431, 7], + ["frame", 9, 8, 2, 431, 7], + ["setarg", 9, 1, 6, 431, 7], + ["stone_text", 7], + ["setarg", 9, 2, 7, 431, 7], + ["invoke", 9, 6, 431, 7], + ["null", 6, 432, 14], + ["return", 6, 432, 14], "_nop_ur_1", - "if_else_71", - "if_end_72", - ["get", 2, 44, 1, 420, 14], - ["frame", 3, 2, 0, 420, 14], - ["invoke", 3, 2, 420, 14], - ["move", 3, 2, 420, 14], - ["get", 3, 44, 1, 421, 14], - ["frame", 4, 3, 0, 421, 14], - ["invoke", 4, 3, 421, 14], - ["move", 4, 3, 421, 14], - ["access", 4, "num_err", 422, 25], - ["get", 5, 49, 1, 422, 15], - ["frame", 6, 5, 1, 422, 15], - ["stone_text", 4], - ["setarg", 6, 1, 4, 422, 15], - ["invoke", 6, 4, 422, 15], - ["move", 5, 4, 422, 15], - ["access", 5, "num_done", 423, 26], - ["get", 6, 49, 1, 423, 16], - ["frame", 7, 6, 1, 423, 16], - ["stone_text", 5], - ["setarg", 7, 1, 5, 423, 16], - ["invoke", 7, 5, 423, 16], - ["move", 6, 5, 423, 16], - ["access", 7, "is_num", 424, 12], - ["get", 8, 36, 1, 424, 26], - ["get", 9, 55, 1, 424, 5], - ["frame", 10, 9, 3, 424, 5], - ["stone_text", 7], - ["setarg", 10, 1, 7, 424, 5], - ["setarg", 10, 2, 2, 424, 5], - ["setarg", 10, 3, 8, 424, 5], - ["invoke", 10, 7, 424, 5], - ["access", 7, "jump_false", 425, 20], - ["get", 8, 64, 1, 425, 5], - ["frame", 9, 8, 3, 425, 5], - ["stone_text", 7], - ["setarg", 9, 1, 7, 425, 5], - ["setarg", 9, 2, 2, 425, 5], - ["setarg", 9, 3, 4, 425, 5], - ["invoke", 9, 2, 425, 5], - ["access", 2, "is_num", 426, 12], - ["get", 7, 37, 1, 426, 26], - ["get", 8, 55, 1, 426, 5], - ["frame", 9, 8, 3, 426, 5], + "if_else_65", + "if_end_66", + ["get", 6, 34, 1, 434, 9], + ["null", 7, 434, 28], + ["eq", 8, 6, 7, 434, 28], + ["jump_false", 8, "if_else_68", 434, 28], + ["access", 6, "num_err", 435, 35], + ["get", 7, 51, 1, 435, 25], + ["frame", 8, 7, 1, 435, 25], + ["stone_text", 6], + ["setarg", 8, 1, 6, 435, 25], + ["invoke", 8, 6, 435, 25], + ["put", 6, 34, 1, 435, 25], + ["jump", "if_end_69", 435, 25], + "if_else_68", + "if_end_69", + ["get", 6, 46, 1, 437, 10], + ["frame", 7, 6, 0, 437, 10], + ["invoke", 7, 6, 437, 10], + ["move", 4, 6, 437, 10], + "_nop_bl_1", + ["wary_true", 2, "if_else_70", 438, 10], + ["access", 2, "is_num", 439, 14], + ["get", 6, 38, 1, 439, 28], + ["get", 7, 57, 1, 439, 7], + ["frame", 8, 7, 3, 439, 7], ["stone_text", 2], - ["setarg", 9, 1, 2, 426, 5], - ["setarg", 9, 2, 3, 426, 5], - ["setarg", 9, 3, 7, 426, 5], - ["invoke", 9, 2, 426, 5], - ["access", 2, "jump_false", 427, 20], - ["get", 7, 64, 1, 427, 5], - ["frame", 8, 7, 3, 427, 5], + ["setarg", 8, 1, 2, 439, 7], + ["setarg", 8, 2, 4, 439, 7], + ["setarg", 8, 3, 6, 439, 7], + ["invoke", 8, 2, 439, 7], + ["access", 2, "jump_false", 440, 22], + ["get", 6, 34, 1, 440, 40], + ["get", 7, 66, 1, 440, 7], + ["frame", 8, 7, 3, 440, 7], ["stone_text", 2], - ["setarg", 8, 1, 2, 427, 5], - ["setarg", 8, 2, 3, 427, 5], - ["setarg", 8, 3, 4, 427, 5], - ["invoke", 8, 2, 427, 5], - ["get", 2, 34, 1, 428, 20], - ["get", 3, 36, 1, 428, 30], - ["get", 7, 37, 1, 428, 40], - ["get", 8, 56, 1, 428, 5], - ["frame", 9, 8, 4, 428, 5], - ["setarg", 9, 1, 1, 428, 5], - ["setarg", 9, 2, 2, 428, 5], - ["setarg", 9, 3, 3, 428, 5], - ["setarg", 9, 4, 7, 428, 5], - ["invoke", 9, 2, 428, 5], - ["get", 2, 63, 1, 429, 5], - ["frame", 3, 2, 1, 429, 5], - ["setarg", 3, 1, 5, 429, 5], - ["invoke", 3, 2, 429, 5], - ["get", 2, 52, 1, 431, 5], - ["frame", 3, 2, 1, 431, 5], - ["setarg", 3, 1, 4, 431, 5], - ["invoke", 3, 2, 431, 5], - ["access", 2, "cannot apply '", 432, 20], - ["get", 3, 40, 1, 432, 39], - "_nop_tc_1", - "_nop_tc_2", - ["is_text", 4, 3, 432, 39], - ["jump_false", 4, "add_cn_77", 432, 39], - ["concat", 4, 2, 3, 432, 39], - ["jump", "add_done_76", 432, 39], - "add_cn_77", - "_nop_tc_3", - "_nop_dj_1", - "_nop_ucfg_1", - "_nop_ucfg_2", - "_nop_ucfg_3", - "_nop_ucfg_4", - "add_err_78", - [ - "access", - 2, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 432, - 39 - ], - ["access", 3, "error", 432, 39], - ["access", 5, "cannot apply '+': operands must both be text or both be numbers", 432, 39], - ["array", 7, 0, 432, 39], - ["stone_text", 5], - ["push", 7, 5, 432, 39], - ["frame", 5, 2, 2, 432, 39], - ["null", 2, 432, 39], - ["setarg", 5, 0, 2, 432, 39], - ["stone_text", 3], - ["setarg", 5, 1, 3, 432, 39], - ["setarg", 5, 2, 7, 432, 39], - ["invoke", 5, 2, 432, 39], - ["disrupt", 432, 39], - "add_done_76", - ["access", 2, "': operands must be numbers", 432, 52], - "_nop_tc_1", - "_nop_tc_2", - "_nop_tc_4", - "_nop_tc_5", - ["concat", 3, 4, 2, 432, 52], - ["jump", "add_done_79", 432, 52], - "add_cn_80", - "_nop_tc_3", - "_nop_ucfg_1", - "_nop_tc_6", - "_nop_dj_2", - "_nop_ucfg_5", - "_nop_ucfg_6", - "add_err_81", - "_nop_ucfg_2", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "_nop_ucfg_13", - "add_done_79", - ["get", 2, 62, 1, 432, 5], - ["frame", 4, 2, 1, 432, 5], - ["stone_text", 3], - ["setarg", 4, 1, 3, 432, 5], - ["invoke", 4, 2, 432, 5], - ["access", 2, "disrupt", 433, 12], - ["get", 3, 53, 1, 433, 5], - ["frame", 4, 3, 1, 433, 5], + ["setarg", 8, 1, 2, 440, 7], + ["setarg", 8, 2, 4, 440, 7], + ["setarg", 8, 3, 6, 440, 7], + ["invoke", 8, 2, 440, 7], + ["get", 2, 38, 1, 441, 17], + ["access", 6, "num", 441, 27], + ["get", 7, 71, 1, 441, 7], + ["frame", 8, 7, 2, 441, 7], + ["setarg", 8, 1, 2, 441, 7], + ["stone_text", 6], + ["setarg", 8, 2, 6, 441, 7], + ["invoke", 8, 2, 441, 7], + ["jump", "if_end_71", 441, 7], + "if_else_70", + "if_end_71", + "_nop_bl_2", + ["wary_true", 3, "if_else_72", 443, 10], + ["access", 2, "is_num", 444, 14], + ["get", 3, 39, 1, 444, 28], + ["get", 6, 57, 1, 444, 7], + ["frame", 7, 6, 3, 444, 7], ["stone_text", 2], - ["setarg", 4, 1, 2, 433, 5], - ["invoke", 4, 2, 433, 5], - ["get", 2, 52, 1, 434, 5], - ["frame", 3, 2, 1, 434, 5], - ["setarg", 3, 1, 6, 434, 5], - ["invoke", 3, 2, 434, 5], - ["get", 2, 34, 1, 435, 15], - ["access", 3, "num", 435, 25], - ["get", 4, 69, 1, 435, 5], - ["frame", 5, 4, 2, 435, 5], - ["setarg", 5, 1, 2, 435, 5], + ["setarg", 7, 1, 2, 444, 7], + ["setarg", 7, 2, 4, 444, 7], + ["setarg", 7, 3, 3, 444, 7], + ["invoke", 7, 2, 444, 7], + ["access", 2, "jump_false", 445, 22], + ["get", 3, 34, 1, 445, 40], + ["get", 6, 66, 1, 445, 7], + ["frame", 7, 6, 3, 445, 7], + ["stone_text", 2], + ["setarg", 7, 1, 2, 445, 7], + ["setarg", 7, 2, 4, 445, 7], + ["setarg", 7, 3, 3, 445, 7], + ["invoke", 7, 2, 445, 7], + ["get", 2, 39, 1, 446, 17], + ["access", 3, "num", 446, 28], + ["get", 4, 71, 1, 446, 7], + ["frame", 6, 4, 2, 446, 7], + ["setarg", 6, 1, 2, 446, 7], ["stone_text", 3], - ["setarg", 5, 2, 3, 435, 5], - ["invoke", 5, 2, 435, 5], - ["null", 2, 436, 12], - ["return", 2, 436, 12], + ["setarg", 6, 2, 3, 446, 7], + ["invoke", 6, 2, 446, 7], + ["jump", "if_end_73", 446, 7], + "if_else_72", + "if_end_73", + ["get", 2, 37, 1, 448, 20], + ["get", 3, 38, 1, 448, 30], + ["get", 4, 39, 1, 448, 40], + ["get", 6, 58, 1, 448, 5], + ["frame", 7, 6, 4, 448, 5], + ["setarg", 7, 1, 1, 448, 5], + ["setarg", 7, 2, 2, 448, 5], + ["setarg", 7, 3, 3, 448, 5], + ["setarg", 7, 4, 4, 448, 5], + ["invoke", 7, 2, 448, 5], + ["get", 2, 36, 1, 449, 10], + "_nop_bl_3", + ["wary_true", 2, "if_else_74", 449, 10], + ["access", 2, "num_done", 450, 24], + ["get", 3, 51, 1, 450, 14], + ["frame", 4, 3, 1, 450, 14], + ["stone_text", 2], + ["setarg", 4, 1, 2, 450, 14], + ["invoke", 4, 2, 450, 14], + ["move", 5, 2, 450, 14], + ["get", 3, 65, 1, 451, 7], + ["frame", 4, 3, 1, 451, 7], + ["setarg", 4, 1, 2, 451, 7], + ["invoke", 4, 3, 451, 7], + ["get", 3, 34, 1, 452, 18], + ["get", 4, 54, 1, 452, 7], + ["frame", 5, 4, 1, 452, 7], + ["setarg", 5, 1, 3, 452, 7], + ["invoke", 5, 3, 452, 7], + ["access", 3, "operands must be numbers", 453, 22], + ["get", 4, 64, 1, 453, 7], + ["frame", 5, 4, 1, 453, 7], + ["stone_text", 3], + ["setarg", 5, 1, 3, 453, 7], + ["invoke", 5, 3, 453, 7], + ["access", 3, "disrupt", 454, 14], + ["get", 4, 55, 1, 454, 7], + ["frame", 5, 4, 1, 454, 7], + ["stone_text", 3], + ["setarg", 5, 1, 3, 454, 7], + ["invoke", 5, 3, 454, 7], + ["get", 3, 54, 1, 455, 7], + ["frame", 4, 3, 1, 455, 7], + ["setarg", 4, 1, 2, 455, 7], + ["invoke", 4, 2, 455, 7], + ["true", 2, 456, 27], + ["put", 2, 36, 1, 456, 27], + ["jump", "if_end_75", 456, 27], + "if_else_74", + "if_end_75", + ["get", 2, 37, 1, 458, 15], + ["access", 3, "num", 458, 25], + ["get", 4, 71, 1, 458, 5], + ["frame", 5, 4, 2, 458, 5], + ["setarg", 5, 1, 2, 458, 5], + ["stone_text", 3], + ["setarg", 5, 2, 3, 458, 5], + ["invoke", 5, 2, 458, 5], + ["null", 2, 459, 12], + ["return", 2, 459, 12], "_nop_ur_2", "_nop_ur_3" ], - "_write_types": [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "text", null, null, null, "null", null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, null, "text", null, null, null, "text", null, null, null, null, "text", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "text", null, "text", null, "bool", null, "text", "text", "array", null, null, "null", "text", "text", "bool", null, null, "text", "text", "array", null, null, "null", null, null, null, "text", null, null, null, null, null, null, null, "text", null, null, null, "null", null], + "_write_types": [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "text", null, null, null, "null", null, "null", "bool", "text", null, null, null, null, null, null, null, "text", null, null, null, null, "text", null, null, null, null, null, "text", null, null, null, null, "text", null, null, null, null, "text", null, null, null, null, null, "text", null, null, null, null, null, null, null, null, null, null, null, "text", null, null, null, null, null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, "bool", null, "text", null, null, null, "null", null], "name": "", "filename": ".cell/packages/core/mcode.cm", "nr_args": 1 @@ -1937,20 +1829,20 @@ "nr_slots": 7, "nr_close_slots": 0, "instructions": [ - ["access", 1, "eq", 441, 12], - ["get", 2, 34, 1, 441, 18], - ["get", 3, 36, 1, 441, 28], - ["get", 4, 37, 1, 441, 38], - ["get", 5, 56, 1, 441, 5], - ["frame", 6, 5, 4, 441, 5], + ["access", 1, "eq", 464, 12], + ["get", 2, 37, 1, 464, 18], + ["get", 3, 38, 1, 464, 28], + ["get", 4, 39, 1, 464, 38], + ["get", 5, 58, 1, 464, 5], + ["frame", 6, 5, 4, 464, 5], ["stone_text", 1], - ["setarg", 6, 1, 1, 441, 5], - ["setarg", 6, 2, 2, 441, 5], - ["setarg", 6, 3, 3, 441, 5], - ["setarg", 6, 4, 4, 441, 5], - ["invoke", 6, 1, 441, 5], - ["null", 1, 442, 12], - ["return", 1, 442, 12], + ["setarg", 6, 1, 1, 464, 5], + ["setarg", 6, 2, 2, 464, 5], + ["setarg", 6, 3, 3, 464, 5], + ["setarg", 6, 4, 4, 464, 5], + ["invoke", 6, 1, 464, 5], + ["null", 1, 465, 12], + ["return", 1, 465, 12], "_nop_ur_1", "_nop_ur_2" ], @@ -1965,20 +1857,20 @@ "nr_slots": 7, "nr_close_slots": 0, "instructions": [ - ["access", 1, "ne", 447, 12], - ["get", 2, 34, 1, 447, 18], - ["get", 3, 36, 1, 447, 28], - ["get", 4, 37, 1, 447, 38], - ["get", 5, 56, 1, 447, 5], - ["frame", 6, 5, 4, 447, 5], + ["access", 1, "ne", 470, 12], + ["get", 2, 37, 1, 470, 18], + ["get", 3, 38, 1, 470, 28], + ["get", 4, 39, 1, 470, 38], + ["get", 5, 58, 1, 470, 5], + ["frame", 6, 5, 4, 470, 5], ["stone_text", 1], - ["setarg", 6, 1, 1, 447, 5], - ["setarg", 6, 2, 2, 447, 5], - ["setarg", 6, 3, 3, 447, 5], - ["setarg", 6, 4, 4, 447, 5], - ["invoke", 6, 1, 447, 5], - ["null", 1, 448, 12], - ["return", 1, 448, 12], + ["setarg", 6, 1, 1, 470, 5], + ["setarg", 6, 2, 2, 470, 5], + ["setarg", 6, 3, 3, 470, 5], + ["setarg", 6, 4, 4, 470, 5], + ["invoke", 6, 1, 470, 5], + ["null", 1, 471, 12], + ["return", 1, 471, 12], "_nop_ur_1", "_nop_ur_2" ], @@ -1993,18 +1885,18 @@ "nr_slots": 7, "nr_close_slots": 0, "instructions": [ - ["get", 2, 34, 1, 453, 20], - ["get", 3, 36, 1, 453, 30], - ["get", 4, 37, 1, 453, 40], - ["get", 5, 56, 1, 453, 5], - ["frame", 6, 5, 4, 453, 5], - ["setarg", 6, 1, 1, 453, 5], - ["setarg", 6, 2, 2, 453, 5], - ["setarg", 6, 3, 3, 453, 5], - ["setarg", 6, 4, 4, 453, 5], - ["invoke", 6, 2, 453, 5], - ["null", 2, 454, 12], - ["return", 2, 454, 12], + ["get", 2, 37, 1, 476, 20], + ["get", 3, 38, 1, 476, 30], + ["get", 4, 39, 1, 476, 40], + ["get", 5, 58, 1, 476, 5], + ["frame", 6, 5, 4, 476, 5], + ["setarg", 6, 1, 1, 476, 5], + ["setarg", 6, 2, 2, 476, 5], + ["setarg", 6, 3, 3, 476, 5], + ["setarg", 6, 4, 4, 476, 5], + ["invoke", 6, 2, 476, 5], + ["null", 2, 477, 12], + ["return", 2, 477, 12], "_nop_ur_1", "_nop_ur_2" ], @@ -2019,118 +1911,144 @@ "nr_slots": 10, "nr_close_slots": 0, "instructions": [ - ["get", 4, 66, 1, 459, 9], - ["frame", 5, 4, 1, 459, 9], - ["setarg", 5, 1, 3, 459, 9], - ["invoke", 5, 4, 459, 9], - ["move", 5, 4, 459, 9], - ["jump_true", 4, "or_end_84", 459, 9], - ["get", 4, 67, 1, 459, 38], - ["frame", 6, 4, 1, 459, 38], - ["setarg", 6, 1, 2, 459, 38], - ["invoke", 6, 4, 459, 38], - ["move", 5, 4, 459, 38], - "or_end_84", - ["jump_false", 5, "if_else_82", 459, 38], - ["access", 4, "negate", 460, 14], - ["get", 5, 55, 1, 460, 7], - ["frame", 6, 5, 3, 460, 7], - ["stone_text", 4], - ["setarg", 6, 1, 4, 460, 7], - ["setarg", 6, 2, 1, 460, 7], - ["setarg", 6, 3, 2, 460, 7], - ["invoke", 6, 4, 460, 7], - ["access", 4, "num", 461, 23], - ["get", 5, 69, 1, 461, 7], - ["frame", 6, 5, 2, 461, 7], - ["setarg", 6, 1, 1, 461, 7], - ["stone_text", 4], - ["setarg", 6, 2, 4, 461, 7], - ["invoke", 6, 4, 461, 7], - ["null", 4, 462, 14], - ["return", 4, 462, 14], - "_nop_ur_1", - "if_else_82", - "if_end_83", - ["get", 4, 44, 1, 464, 14], - ["frame", 5, 4, 0, 464, 14], - ["invoke", 5, 4, 464, 14], - ["move", 5, 4, 464, 14], - ["access", 5, "neg_err", 465, 25], - ["get", 6, 49, 1, 465, 15], - ["frame", 7, 6, 1, 465, 15], - ["stone_text", 5], - ["setarg", 7, 1, 5, 465, 15], - ["invoke", 7, 5, 465, 15], - ["move", 6, 5, 465, 15], - ["access", 6, "neg_done", 466, 26], - ["get", 7, 49, 1, 466, 16], - ["frame", 8, 7, 1, 466, 16], + ["null", 4, 482, 14], + ["null", 5, 483, 16], + ["get", 6, 68, 1, 484, 9], + ["frame", 7, 6, 1, 484, 9], + ["setarg", 7, 1, 3, 484, 9], + ["invoke", 7, 6, 484, 9], + ["move", 7, 6, 484, 9], + ["wary_true", 6, "or_end_78", 484, 9], + ["get", 6, 69, 1, 484, 38], + ["frame", 8, 6, 1, 484, 38], + ["setarg", 8, 1, 2, 484, 38], + ["invoke", 8, 6, 484, 38], + ["move", 7, 6, 484, 38], + "or_end_78", + ["wary_false", 7, "if_else_76", 484, 38], + ["access", 6, "negate", 485, 14], + ["get", 7, 57, 1, 485, 7], + ["frame", 8, 7, 3, 485, 7], ["stone_text", 6], - ["setarg", 8, 1, 6, 466, 16], - ["invoke", 8, 6, 466, 16], - ["move", 7, 6, 466, 16], - ["access", 7, "is_num", 467, 12], - ["get", 8, 55, 1, 467, 5], - ["frame", 9, 8, 3, 467, 5], - ["stone_text", 7], - ["setarg", 9, 1, 7, 467, 5], - ["setarg", 9, 2, 4, 467, 5], - ["setarg", 9, 3, 2, 467, 5], - ["invoke", 9, 7, 467, 5], - ["access", 7, "jump_false", 468, 20], - ["get", 8, 64, 1, 468, 5], - ["frame", 9, 8, 3, 468, 5], - ["stone_text", 7], - ["setarg", 9, 1, 7, 468, 5], - ["setarg", 9, 2, 4, 468, 5], - ["setarg", 9, 3, 5, 468, 5], - ["invoke", 9, 4, 468, 5], - ["access", 4, "negate", 469, 12], - ["get", 7, 55, 1, 469, 5], - ["frame", 8, 7, 3, 469, 5], + ["setarg", 8, 1, 6, 485, 7], + ["setarg", 8, 2, 1, 485, 7], + ["setarg", 8, 3, 2, 485, 7], + ["invoke", 8, 6, 485, 7], + ["access", 6, "num", 486, 23], + ["get", 7, 71, 1, 486, 7], + ["frame", 8, 7, 2, 486, 7], + ["setarg", 8, 1, 1, 486, 7], + ["stone_text", 6], + ["setarg", 8, 2, 6, 486, 7], + ["invoke", 8, 6, 486, 7], + ["null", 6, 487, 14], + ["return", 6, 487, 14], + "_nop_ur_1", + "if_else_76", + "if_end_77", + ["get", 6, 34, 1, 489, 9], + ["null", 7, 489, 28], + ["eq", 8, 6, 7, 489, 28], + ["jump_false", 8, "if_else_79", 489, 28], + ["access", 6, "num_err", 490, 35], + ["get", 7, 51, 1, 490, 25], + ["frame", 8, 7, 1, 490, 25], + ["stone_text", 6], + ["setarg", 8, 1, 6, 490, 25], + ["invoke", 8, 6, 490, 25], + ["put", 6, 34, 1, 490, 25], + ["jump", "if_end_80", 490, 25], + "if_else_79", + "if_end_80", + ["get", 6, 46, 1, 492, 10], + ["frame", 7, 6, 0, 492, 10], + ["invoke", 7, 6, 492, 10], + ["move", 4, 6, 492, 10], + ["access", 4, "is_num", 493, 12], + ["get", 7, 57, 1, 493, 5], + ["frame", 8, 7, 3, 493, 5], ["stone_text", 4], - ["setarg", 8, 1, 4, 469, 5], - ["setarg", 8, 2, 1, 469, 5], - ["setarg", 8, 3, 2, 469, 5], - ["invoke", 8, 4, 469, 5], - ["get", 4, 63, 1, 470, 5], - ["frame", 7, 4, 1, 470, 5], - ["setarg", 7, 1, 6, 470, 5], - ["invoke", 7, 4, 470, 5], - ["get", 4, 52, 1, 472, 5], - ["frame", 7, 4, 1, 472, 5], - ["setarg", 7, 1, 5, 472, 5], - ["invoke", 7, 4, 472, 5], - ["access", 4, "cannot negate: operand must be a number", 473, 20], - ["get", 5, 62, 1, 473, 5], - ["frame", 7, 5, 1, 473, 5], + ["setarg", 8, 1, 4, 493, 5], + ["setarg", 8, 2, 6, 493, 5], + ["setarg", 8, 3, 2, 493, 5], + ["invoke", 8, 4, 493, 5], + ["access", 4, "jump_false", 494, 20], + ["get", 7, 34, 1, 494, 38], + ["get", 8, 66, 1, 494, 5], + ["frame", 9, 8, 3, 494, 5], ["stone_text", 4], - ["setarg", 7, 1, 4, 473, 5], - ["invoke", 7, 4, 473, 5], - ["access", 4, "disrupt", 474, 12], - ["get", 5, 53, 1, 474, 5], - ["frame", 7, 5, 1, 474, 5], + ["setarg", 9, 1, 4, 494, 5], + ["setarg", 9, 2, 6, 494, 5], + ["setarg", 9, 3, 7, 494, 5], + ["invoke", 9, 4, 494, 5], + ["access", 4, "num", 495, 20], + ["get", 6, 71, 1, 495, 5], + ["frame", 7, 6, 2, 495, 5], + ["setarg", 7, 1, 2, 495, 5], ["stone_text", 4], - ["setarg", 7, 1, 4, 474, 5], - ["invoke", 7, 4, 474, 5], - ["get", 4, 52, 1, 475, 5], - ["frame", 5, 4, 1, 475, 5], - ["setarg", 5, 1, 6, 475, 5], - ["invoke", 5, 4, 475, 5], - ["access", 4, "num", 476, 21], - ["get", 5, 69, 1, 476, 5], - ["frame", 6, 5, 2, 476, 5], - ["setarg", 6, 1, 1, 476, 5], + ["setarg", 7, 2, 4, 495, 5], + ["invoke", 7, 4, 495, 5], + ["access", 4, "negate", 496, 12], + ["get", 6, 57, 1, 496, 5], + ["frame", 7, 6, 3, 496, 5], ["stone_text", 4], - ["setarg", 6, 2, 4, 476, 5], - ["invoke", 6, 4, 476, 5], - ["null", 4, 477, 12], - ["return", 4, 477, 12], + ["setarg", 7, 1, 4, 496, 5], + ["setarg", 7, 2, 1, 496, 5], + ["setarg", 7, 3, 2, 496, 5], + ["invoke", 7, 4, 496, 5], + ["get", 4, 36, 1, 497, 10], + "_nop_bl_1", + ["wary_true", 4, "if_else_81", 497, 10], + ["access", 4, "num_done", 498, 24], + ["get", 6, 51, 1, 498, 14], + ["frame", 7, 6, 1, 498, 14], + ["stone_text", 4], + ["setarg", 7, 1, 4, 498, 14], + ["invoke", 7, 4, 498, 14], + ["move", 5, 4, 498, 14], + ["get", 5, 65, 1, 499, 7], + ["frame", 6, 5, 1, 499, 7], + ["setarg", 6, 1, 4, 499, 7], + ["invoke", 6, 5, 499, 7], + ["get", 5, 34, 1, 500, 18], + ["get", 6, 54, 1, 500, 7], + ["frame", 7, 6, 1, 500, 7], + ["setarg", 7, 1, 5, 500, 7], + ["invoke", 7, 5, 500, 7], + ["access", 5, "operands must be numbers", 501, 22], + ["get", 6, 64, 1, 501, 7], + ["frame", 7, 6, 1, 501, 7], + ["stone_text", 5], + ["setarg", 7, 1, 5, 501, 7], + ["invoke", 7, 5, 501, 7], + ["access", 5, "disrupt", 502, 14], + ["get", 6, 55, 1, 502, 7], + ["frame", 7, 6, 1, 502, 7], + ["stone_text", 5], + ["setarg", 7, 1, 5, 502, 7], + ["invoke", 7, 5, 502, 7], + ["get", 5, 54, 1, 503, 7], + ["frame", 6, 5, 1, 503, 7], + ["setarg", 6, 1, 4, 503, 7], + ["invoke", 6, 4, 503, 7], + ["true", 4, 504, 27], + ["put", 4, 36, 1, 504, 27], + ["jump", "if_end_82", 504, 27], + "if_else_81", + "if_end_82", + ["access", 4, "num", 506, 21], + ["get", 5, 71, 1, 506, 5], + ["frame", 6, 5, 2, 506, 5], + ["setarg", 6, 1, 1, 506, 5], + ["stone_text", 4], + ["setarg", 6, 2, 4, 506, 5], + ["invoke", 6, 4, 506, 5], + ["null", 4, 507, 12], + ["return", 4, 507, 12], "_nop_ur_2", "_nop_ur_3" ], - "_write_types": [null, null, null, null, null, null, null, null, null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, "null", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, "text", null, null, null, "null", null], + "_write_types": [null, null, null, null, null, null, null, null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, "null", null, "null", "bool", "text", null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, null, "text", null, null, null, "text", null, null, null, null, null, "text", null, null, null, null, null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, "bool", "text", null, null, null, "null", null], "name": "", "filename": ".cell/packages/core/mcode.cm", "nr_args": 3 @@ -2141,120 +2059,120 @@ "nr_slots": 8, "nr_close_slots": 0, "instructions": [ - ["put", 2, 34, 1, 483, 16], - ["put", 3, 36, 1, 484, 16], - ["put", 4, 37, 1, 485, 17], - ["get", 5, 5, 1, 486, 18], - ["load_dynamic", 6, 5, 1, 486, 28], - ["move", 5, 6, 486, 28], - ["jump_true", 6, "or_end_85", 486, 28], - ["move", 5, 1, 486, 39], - "or_end_85", - ["put", 5, 40, 1, 486, 39], - ["access", 5, "add", 487, 19], - ["eq", 6, 1, 5, 487, 19], - ["jump_false", 6, "if_else_86", 487, 19], - ["get", 5, 71, 1, 488, 7], - ["frame", 6, 5, 0, 488, 7], - ["invoke", 6, 5, 488, 7], - ["jump", "if_end_87", 488, 7], + ["put", 2, 37, 1, 513, 16], + ["put", 3, 38, 1, 514, 16], + ["put", 4, 39, 1, 515, 17], + ["get", 5, 5, 1, 516, 18], + ["load_dynamic", 6, 5, 1, 516, 28], + ["move", 5, 6, 516, 28], + ["wary_true", 6, "or_end_83", 516, 28], + ["move", 5, 1, 516, 39], + "or_end_83", + ["put", 5, 42, 1, 516, 39], + ["access", 5, "add", 517, 19], + ["eq", 6, 1, 5, 517, 19], + ["jump_false", 6, "if_else_84", 517, 19], + ["get", 5, 73, 1, 518, 7], + ["frame", 6, 5, 0, 518, 7], + ["invoke", 6, 5, 518, 7], + ["jump", "if_end_85", 518, 7], + "if_else_84", + ["access", 5, "eq", 519, 26], + ["eq", 6, 1, 5, 519, 26], + ["jump_false", 6, "if_else_86", 519, 26], + ["get", 5, 75, 1, 520, 7], + ["frame", 6, 5, 0, 520, 7], + ["invoke", 6, 5, 520, 7], + ["jump", "if_end_87", 520, 7], "if_else_86", - ["access", 5, "eq", 489, 26], - ["eq", 6, 1, 5, 489, 26], - ["jump_false", 6, "if_else_88", 489, 26], - ["get", 5, 73, 1, 490, 7], - ["frame", 6, 5, 0, 490, 7], - ["invoke", 6, 5, 490, 7], - ["jump", "if_end_89", 490, 7], + ["access", 5, "ne", 521, 26], + ["eq", 6, 1, 5, 521, 26], + ["jump_false", 6, "if_else_88", 521, 26], + ["get", 5, 76, 1, 522, 7], + ["frame", 6, 5, 0, 522, 7], + ["invoke", 6, 5, 522, 7], + ["jump", "if_end_89", 522, 7], "if_else_88", - ["access", 5, "ne", 491, 26], - ["eq", 6, 1, 5, 491, 26], - ["jump_false", 6, "if_else_90", 491, 26], - ["get", 5, 74, 1, 492, 7], - ["frame", 6, 5, 0, 492, 7], - ["invoke", 6, 5, 492, 7], - ["jump", "if_end_91", 492, 7], - "if_else_90", - ["access", 5, "lt", 493, 26], - ["eq", 6, 1, 5, 493, 26], - ["move", 5, 6, 493, 26], - ["jump_true", 6, "or_end_96", 493, 26], - ["access", 6, "le", 493, 44], - ["eq", 7, 1, 6, 493, 44], - ["move", 5, 7, 493, 44], - "or_end_96", - ["move", 6, 5, 493, 44], - ["jump_true", 5, "or_end_95", 493, 44], - ["access", 5, "gt", 493, 62], - ["eq", 7, 1, 5, 493, 62], - ["move", 6, 7, 493, 62], - "or_end_95", - ["move", 5, 6, 493, 62], - ["jump_true", 6, "or_end_94", 493, 62], - ["access", 6, "ge", 493, 80], - ["eq", 7, 1, 6, 493, 80], - ["move", 5, 7, 493, 80], + ["access", 5, "lt", 523, 26], + ["eq", 6, 1, 5, 523, 26], + ["move", 5, 6, 523, 26], + ["jump_true", 6, "or_end_94", 523, 26], + ["access", 6, "le", 523, 44], + ["eq", 7, 1, 6, 523, 44], + ["move", 5, 7, 523, 44], "or_end_94", - ["jump_false", 5, "if_else_92", 493, 80], - ["get", 5, 75, 1, 494, 7], - ["frame", 6, 5, 1, 494, 7], - ["setarg", 6, 1, 1, 494, 7], - ["invoke", 6, 5, 494, 7], - ["jump", "if_end_93", 494, 7], - "if_else_92", - ["access", 5, "subtract", 495, 26], - ["eq", 6, 1, 5, 495, 26], - ["move", 5, 6, 495, 26], - ["jump_true", 6, "or_end_103", 495, 26], - ["access", 6, "multiply", 495, 50], - ["eq", 7, 1, 6, 495, 50], - ["move", 5, 7, 495, 50], - "or_end_103", - ["move", 6, 5, 495, 50], - ["jump_true", 5, "or_end_102", 495, 50], - ["access", 5, "divide", 496, 26], - ["eq", 7, 1, 5, 496, 26], - ["move", 6, 7, 496, 26], - "or_end_102", - ["move", 5, 6, 496, 26], - ["jump_true", 6, "or_end_101", 496, 26], - ["access", 6, "modulo", 496, 48], - ["eq", 7, 1, 6, 496, 48], - ["move", 5, 7, 496, 48], + ["move", 6, 5, 523, 44], + ["jump_true", 5, "or_end_93", 523, 44], + ["access", 5, "gt", 523, 62], + ["eq", 7, 1, 5, 523, 62], + ["move", 6, 7, 523, 62], + "or_end_93", + ["move", 5, 6, 523, 62], + ["jump_true", 6, "or_end_92", 523, 62], + ["access", 6, "ge", 523, 80], + ["eq", 7, 1, 6, 523, 80], + ["move", 5, 7, 523, 80], + "or_end_92", + ["jump_false", 5, "if_else_90", 523, 80], + ["get", 5, 77, 1, 524, 7], + ["frame", 6, 5, 1, 524, 7], + ["setarg", 6, 1, 1, 524, 7], + ["invoke", 6, 5, 524, 7], + ["jump", "if_end_91", 524, 7], + "if_else_90", + ["access", 5, "subtract", 525, 26], + ["eq", 6, 1, 5, 525, 26], + ["move", 5, 6, 525, 26], + ["jump_true", 6, "or_end_101", 525, 26], + ["access", 6, "multiply", 525, 50], + ["eq", 7, 1, 6, 525, 50], + ["move", 5, 7, 525, 50], "or_end_101", - ["move", 6, 5, 496, 48], - ["jump_true", 5, "or_end_100", 496, 48], - ["access", 5, "remainder", 496, 70], - ["eq", 7, 1, 5, 496, 70], - ["move", 6, 7, 496, 70], + ["move", 6, 5, 525, 50], + ["jump_true", 5, "or_end_100", 525, 50], + ["access", 5, "divide", 526, 26], + ["eq", 7, 1, 5, 526, 26], + ["move", 6, 7, 526, 26], "or_end_100", - ["move", 5, 6, 496, 70], - ["jump_true", 6, "or_end_99", 496, 70], - ["access", 6, "pow", 497, 26], - ["eq", 7, 1, 6, 497, 26], - ["move", 5, 7, 497, 26], + ["move", 5, 6, 526, 26], + ["jump_true", 6, "or_end_99", 526, 26], + ["access", 6, "modulo", 526, 48], + ["eq", 7, 1, 6, 526, 48], + ["move", 5, 7, 526, 48], "or_end_99", - ["jump_false", 5, "if_else_97", 497, 26], - ["get", 5, 72, 1, 498, 7], - ["frame", 6, 5, 1, 498, 7], - ["setarg", 6, 1, 1, 498, 7], - ["invoke", 6, 5, 498, 7], - ["jump", "if_end_98", 498, 7], - "if_else_97", - ["get", 5, 56, 1, 501, 7], - ["frame", 6, 5, 4, 501, 7], - ["setarg", 6, 1, 1, 501, 7], - ["setarg", 6, 2, 2, 501, 7], - ["setarg", 6, 3, 3, 501, 7], - ["setarg", 6, 4, 4, 501, 7], - ["invoke", 6, 5, 501, 7], - "if_end_98", - "if_end_93", + ["move", 6, 5, 526, 48], + ["jump_true", 5, "or_end_98", 526, 48], + ["access", 5, "remainder", 526, 70], + ["eq", 7, 1, 5, 526, 70], + ["move", 6, 7, 526, 70], + "or_end_98", + ["move", 5, 6, 526, 70], + ["jump_true", 6, "or_end_97", 526, 70], + ["access", 6, "pow", 527, 26], + ["eq", 7, 1, 6, 527, 26], + ["move", 5, 7, 527, 26], + "or_end_97", + ["jump_false", 5, "if_else_95", 527, 26], + ["get", 5, 74, 1, 528, 7], + ["frame", 6, 5, 1, 528, 7], + ["setarg", 6, 1, 1, 528, 7], + ["invoke", 6, 5, 528, 7], + ["jump", "if_end_96", 528, 7], + "if_else_95", + ["get", 5, 58, 1, 531, 7], + ["frame", 6, 5, 4, 531, 7], + ["setarg", 6, 1, 1, 531, 7], + ["setarg", 6, 2, 2, 531, 7], + ["setarg", 6, 3, 3, 531, 7], + ["setarg", 6, 4, 4, 531, 7], + ["invoke", 6, 5, 531, 7], + "if_end_96", "if_end_91", "if_end_89", "if_end_87", - ["null", 5, 503, 12], - ["return", 5, 503, 12], + "if_end_85", + ["null", 5, 533, 12], + ["return", 5, 533, 12], "_nop_ur_1", "_nop_ur_2" ], @@ -2269,19 +2187,19 @@ "nr_slots": 7, "nr_close_slots": 0, "instructions": [ - ["access", 4, "load_field", 507, 16], - ["array", 5, 4, 507, 41], + ["access", 4, "load_field", 537, 16], + ["array", 5, 4, 537, 41], ["stone_text", 4], - ["push", 5, 4, 507, 41], - ["push", 5, 1, 507, 41], - ["push", 5, 2, 507, 41], - ["push", 5, 3, 507, 41], - ["get", 4, 51, 1, 507, 5], - ["frame", 6, 4, 1, 507, 5], - ["setarg", 6, 1, 5, 507, 5], - ["invoke", 6, 4, 507, 5], - ["null", 4, 507, 5], - ["return", 4, 507, 5] + ["push", 5, 4, 537, 41], + ["push", 5, 1, 537, 41], + ["push", 5, 2, 537, 41], + ["push", 5, 3, 537, 41], + ["get", 4, 53, 1, 537, 5], + ["frame", 6, 4, 1, 537, 5], + ["setarg", 6, 1, 5, 537, 5], + ["invoke", 6, 4, 537, 5], + ["null", 4, 537, 5], + ["return", 4, 537, 5] ], "_write_types": [null, null, null, null, "text", "array", null, null, null, "null"], "name": "", @@ -2294,19 +2212,19 @@ "nr_slots": 7, "nr_close_slots": 0, "instructions": [ - ["access", 4, "store_field", 511, 16], - ["array", 5, 4, 511, 41], + ["access", 4, "store_field", 541, 16], + ["array", 5, 4, 541, 41], ["stone_text", 4], - ["push", 5, 4, 511, 41], - ["push", 5, 1, 511, 41], - ["push", 5, 3, 511, 41], - ["push", 5, 2, 511, 41], - ["get", 4, 51, 1, 511, 5], - ["frame", 6, 4, 1, 511, 5], - ["setarg", 6, 1, 5, 511, 5], - ["invoke", 6, 4, 511, 5], - ["null", 4, 511, 5], - ["return", 4, 511, 5] + ["push", 5, 4, 541, 41], + ["push", 5, 1, 541, 41], + ["push", 5, 3, 541, 41], + ["push", 5, 2, 541, 41], + ["get", 4, 53, 1, 541, 5], + ["frame", 6, 4, 1, 541, 5], + ["setarg", 6, 1, 5, 541, 5], + ["invoke", 6, 4, 541, 5], + ["null", 4, 541, 5], + ["return", 4, 541, 5] ], "_write_types": [null, null, null, null, "text", "array", null, null, null, "null"], "name": "", @@ -2319,47 +2237,47 @@ "nr_slots": 8, "nr_close_slots": 0, "instructions": [ - ["access", 5, "index", 515, 24], - ["eq", 6, 4, 5, 515, 24], - ["jump_false", 6, "if_else_104", 515, 24], - ["access", 5, "load_index", 516, 14], - ["get", 6, 56, 1, 516, 7], - ["frame", 7, 6, 4, 516, 7], + ["access", 5, "index", 545, 24], + ["eq", 6, 4, 5, 545, 24], + ["jump_false", 6, "if_else_102", 545, 24], + ["access", 5, "load_index", 546, 14], + ["get", 6, 58, 1, 546, 7], + ["frame", 7, 6, 4, 546, 7], ["stone_text", 5], - ["setarg", 7, 1, 5, 516, 7], - ["setarg", 7, 2, 1, 516, 7], - ["setarg", 7, 3, 2, 516, 7], - ["setarg", 7, 4, 3, 516, 7], - ["invoke", 7, 5, 516, 7], - ["jump", "if_end_105", 516, 7], + ["setarg", 7, 1, 5, 546, 7], + ["setarg", 7, 2, 1, 546, 7], + ["setarg", 7, 3, 2, 546, 7], + ["setarg", 7, 4, 3, 546, 7], + ["invoke", 7, 5, 546, 7], + ["jump", "if_end_103", 546, 7], + "if_else_102", + ["access", 5, "field", 547, 31], + ["eq", 6, 4, 5, 547, 31], + ["jump_false", 6, "if_else_104", 547, 31], + ["access", 5, "load_field", 548, 14], + ["get", 6, 58, 1, 548, 7], + ["frame", 7, 6, 4, 548, 7], + ["stone_text", 5], + ["setarg", 7, 1, 5, 548, 7], + ["setarg", 7, 2, 1, 548, 7], + ["setarg", 7, 3, 2, 548, 7], + ["setarg", 7, 4, 3, 548, 7], + ["invoke", 7, 5, 548, 7], + ["jump", "if_end_105", 548, 7], "if_else_104", - ["access", 5, "field", 517, 31], - ["eq", 6, 4, 5, 517, 31], - ["jump_false", 6, "if_else_106", 517, 31], - ["access", 5, "load_field", 518, 14], - ["get", 6, 56, 1, 518, 7], - ["frame", 7, 6, 4, 518, 7], + ["access", 5, "load_dynamic", 550, 14], + ["get", 6, 58, 1, 550, 7], + ["frame", 7, 6, 4, 550, 7], ["stone_text", 5], - ["setarg", 7, 1, 5, 518, 7], - ["setarg", 7, 2, 1, 518, 7], - ["setarg", 7, 3, 2, 518, 7], - ["setarg", 7, 4, 3, 518, 7], - ["invoke", 7, 5, 518, 7], - ["jump", "if_end_107", 518, 7], - "if_else_106", - ["access", 5, "load_dynamic", 520, 14], - ["get", 6, 56, 1, 520, 7], - ["frame", 7, 6, 4, 520, 7], - ["stone_text", 5], - ["setarg", 7, 1, 5, 520, 7], - ["setarg", 7, 2, 1, 520, 7], - ["setarg", 7, 3, 2, 520, 7], - ["setarg", 7, 4, 3, 520, 7], - ["invoke", 7, 5, 520, 7], - "if_end_107", + ["setarg", 7, 1, 5, 550, 7], + ["setarg", 7, 2, 1, 550, 7], + ["setarg", 7, 3, 2, 550, 7], + ["setarg", 7, 4, 3, 550, 7], + ["invoke", 7, 5, 550, 7], "if_end_105", - ["null", 5, 520, 7], - ["return", 5, 520, 7] + "if_end_103", + ["null", 5, 550, 7], + ["return", 5, 550, 7] ], "_write_types": [null, null, null, null, null, "text", "bool", "text", null, null, null, "text", "bool", "text", null, null, null, "text", null, null, null, "null"], "name": "", @@ -2372,47 +2290,47 @@ "nr_slots": 8, "nr_close_slots": 0, "instructions": [ - ["access", 5, "index", 525, 24], - ["eq", 6, 4, 5, 525, 24], - ["jump_false", 6, "if_else_108", 525, 24], - ["access", 5, "store_index", 526, 14], - ["get", 6, 56, 1, 526, 7], - ["frame", 7, 6, 4, 526, 7], + ["access", 5, "index", 555, 24], + ["eq", 6, 4, 5, 555, 24], + ["jump_false", 6, "if_else_106", 555, 24], + ["access", 5, "store_index", 556, 14], + ["get", 6, 58, 1, 556, 7], + ["frame", 7, 6, 4, 556, 7], ["stone_text", 5], - ["setarg", 7, 1, 5, 526, 7], - ["setarg", 7, 2, 1, 526, 7], - ["setarg", 7, 3, 3, 526, 7], - ["setarg", 7, 4, 2, 526, 7], - ["invoke", 7, 5, 526, 7], - ["jump", "if_end_109", 526, 7], + ["setarg", 7, 1, 5, 556, 7], + ["setarg", 7, 2, 1, 556, 7], + ["setarg", 7, 3, 3, 556, 7], + ["setarg", 7, 4, 2, 556, 7], + ["invoke", 7, 5, 556, 7], + ["jump", "if_end_107", 556, 7], + "if_else_106", + ["access", 5, "field", 557, 31], + ["eq", 6, 4, 5, 557, 31], + ["jump_false", 6, "if_else_108", 557, 31], + ["access", 5, "store_field", 558, 14], + ["get", 6, 58, 1, 558, 7], + ["frame", 7, 6, 4, 558, 7], + ["stone_text", 5], + ["setarg", 7, 1, 5, 558, 7], + ["setarg", 7, 2, 1, 558, 7], + ["setarg", 7, 3, 3, 558, 7], + ["setarg", 7, 4, 2, 558, 7], + ["invoke", 7, 5, 558, 7], + ["jump", "if_end_109", 558, 7], "if_else_108", - ["access", 5, "field", 527, 31], - ["eq", 6, 4, 5, 527, 31], - ["jump_false", 6, "if_else_110", 527, 31], - ["access", 5, "store_field", 528, 14], - ["get", 6, 56, 1, 528, 7], - ["frame", 7, 6, 4, 528, 7], + ["access", 5, "store_dynamic", 560, 14], + ["get", 6, 58, 1, 560, 7], + ["frame", 7, 6, 4, 560, 7], ["stone_text", 5], - ["setarg", 7, 1, 5, 528, 7], - ["setarg", 7, 2, 1, 528, 7], - ["setarg", 7, 3, 3, 528, 7], - ["setarg", 7, 4, 2, 528, 7], - ["invoke", 7, 5, 528, 7], - ["jump", "if_end_111", 528, 7], - "if_else_110", - ["access", 5, "store_dynamic", 530, 14], - ["get", 6, 56, 1, 530, 7], - ["frame", 7, 6, 4, 530, 7], - ["stone_text", 5], - ["setarg", 7, 1, 5, 530, 7], - ["setarg", 7, 2, 1, 530, 7], - ["setarg", 7, 3, 3, 530, 7], - ["setarg", 7, 4, 2, 530, 7], - ["invoke", 7, 5, 530, 7], - "if_end_111", + ["setarg", 7, 1, 5, 560, 7], + ["setarg", 7, 2, 1, 560, 7], + ["setarg", 7, 3, 3, 560, 7], + ["setarg", 7, 4, 2, 560, 7], + ["invoke", 7, 5, 560, 7], "if_end_109", - ["null", 5, 530, 7], - ["return", 5, 530, 7] + "if_end_107", + ["null", 5, 560, 7], + ["return", 5, 560, 7] ], "_write_types": [null, null, null, null, null, "text", "bool", "text", null, null, null, "text", "bool", "text", null, null, null, "text", null, null, null, "null"], "name": "", @@ -2425,92 +2343,54 @@ "nr_slots": 12, "nr_close_slots": 0, "instructions": [ - ["length", 4, 3, 535, 23], - ["move", 5, 4, 535, 23], - ["get", 6, 44, 1, 536, 22], - ["frame", 7, 6, 0, 536, 22], - ["invoke", 7, 6, 536, 22], - ["move", 7, 6, 536, 22], - ["access", 8, "frame", 537, 12], - ["get", 9, 56, 1, 537, 5], - ["frame", 10, 9, 4, 537, 5], + ["length", 4, 3, 565, 23], + ["move", 5, 4, 565, 23], + ["get", 6, 46, 1, 566, 22], + ["frame", 7, 6, 0, 566, 22], + ["invoke", 7, 6, 566, 22], + ["move", 7, 6, 566, 22], + ["access", 8, "frame", 567, 12], + ["get", 9, 58, 1, 567, 5], + ["frame", 10, 9, 4, 567, 5], ["stone_text", 8], - ["setarg", 10, 1, 8, 537, 5], - ["setarg", 10, 2, 6, 537, 5], - ["setarg", 10, 3, 2, 537, 5], - ["setarg", 10, 4, 4, 537, 5], - ["invoke", 10, 4, 537, 5], - ["access", 4, 1, 538, 19], - ["access", 6, 0, 539, 14], - "while_start_112", - ["lt", 8, 6, 5, 540, 17], - ["jump_false", 8, "while_end_113", 540, 17], - ["access", 8, "setarg", 541, 14], - ["load_index", 9, 3, 6, 541, 50], - ["get", 10, 56, 1, 541, 7], - ["frame", 11, 10, 4, 541, 7], + ["setarg", 10, 1, 8, 567, 5], + ["setarg", 10, 2, 6, 567, 5], + ["setarg", 10, 3, 2, 567, 5], + ["setarg", 10, 4, 4, 567, 5], + ["invoke", 10, 4, 567, 5], + ["access", 4, 1, 568, 19], + ["access", 6, 0, 569, 14], + "while_start_110", + ["lt", 8, 6, 5, 570, 17], + ["jump_false", 8, "while_end_111", 570, 17], + ["access", 8, "setarg", 571, 14], + ["load_index", 9, 3, 6, 571, 50], + ["get", 10, 58, 1, 571, 7], + ["frame", 11, 10, 4, 571, 7], ["stone_text", 8], - ["setarg", 11, 1, 8, 541, 7], - ["setarg", 11, 2, 7, 541, 7], - ["setarg", 11, 3, 4, 541, 7], - ["setarg", 11, 4, 9, 541, 7], - ["invoke", 11, 8, 541, 7], - ["access", 8, 1, 542, 27], - "_nop_tc_1", - "_nop_tc_2", - "_nop_tc_3", - "_nop_tc_4", - ["add", 4, 4, 8, 542, 27], - ["jump", "num_done_115", 542, 27], - "num_err_114", - "_nop_ucfg_1", - "_nop_ucfg_2", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "num_done_115", - ["access", 8, 1, 543, 17], - "_nop_tc_5", - "_nop_tc_6", - "_nop_tc_7", - "_nop_tc_8", - ["add", 6, 6, 8, 543, 17], - ["jump", "num_done_117", 543, 17], - "num_err_116", - "_nop_ucfg_13", - "_nop_ucfg_14", - "_nop_ucfg_15", - "_nop_ucfg_16", - "_nop_ucfg_17", - "_nop_ucfg_18", - "_nop_ucfg_19", - "_nop_ucfg_20", - "_nop_ucfg_21", - "_nop_ucfg_22", - "_nop_ucfg_23", - "_nop_ucfg_24", - "num_done_117", - ["jump", "while_start_112", 543, 17], - "while_end_113", - ["access", 4, "invoke", 545, 12], - ["get", 5, 55, 1, 545, 5], - ["frame", 6, 5, 3, 545, 5], + ["setarg", 11, 1, 8, 571, 7], + ["setarg", 11, 2, 7, 571, 7], + ["setarg", 11, 3, 4, 571, 7], + ["setarg", 11, 4, 9, 571, 7], + ["invoke", 11, 8, 571, 7], + ["access", 8, 1, 572, 27], + ["add", 4, 4, 8, 572, 27], + ["access", 8, 1, 573, 17], + ["add", 6, 6, 8, 573, 17], + ["jump", "while_start_110", 573, 17], + "while_end_111", + ["access", 4, "invoke", 575, 12], + ["get", 5, 57, 1, 575, 5], + ["frame", 6, 5, 3, 575, 5], ["stone_text", 4], - ["setarg", 6, 1, 4, 545, 5], - ["setarg", 6, 2, 7, 545, 5], - ["setarg", 6, 3, 1, 545, 5], - ["invoke", 6, 4, 545, 5], - ["null", 4, 545, 5], - ["return", 4, 545, 5] + ["setarg", 6, 1, 4, 575, 5], + ["setarg", 6, 2, 7, 575, 5], + ["setarg", 6, 3, 1, 575, 5], + ["invoke", 6, 4, 575, 5], + ["null", 4, 575, 5], + ["return", 4, 575, 5] ], - "_write_types": [null, null, null, null, "int", "int", "int", null, "int", null, null, null, "text", null, null, null, "bool", "text", null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "text", null, null, null, "null"], + "_write_types": [null, null, null, null, "int", "int", "int", null, "int", null, null, null, "text", null, null, null, "bool", "text", null, null, null, null, "int", "int", "text", null, null, null, "null"], "name": "", "filename": ".cell/packages/core/mcode.cm", "nr_args": 3 @@ -2521,285 +2401,228 @@ "nr_slots": 18, "nr_close_slots": 0, "instructions": [ - ["length", 5, 4, 549, 23], - ["move", 6, 5, 549, 23], - ["get", 5, 44, 1, 550, 17], - ["frame", 7, 5, 0, 550, 17], - ["invoke", 7, 5, 550, 17], - ["move", 7, 5, 550, 17], - ["access", 7, "record_path", 551, 33], - ["get", 8, 49, 1, 551, 23], - ["frame", 9, 8, 1, 551, 23], + ["length", 5, 4, 579, 23], + ["move", 6, 5, 579, 23], + ["get", 5, 46, 1, 580, 17], + ["frame", 7, 5, 0, 580, 17], + ["invoke", 7, 5, 580, 17], + ["move", 7, 5, 580, 17], + ["access", 7, "record_path", 581, 33], + ["get", 8, 51, 1, 581, 23], + ["frame", 9, 8, 1, 581, 23], ["stone_text", 7], - ["setarg", 9, 1, 7, 551, 23], - ["invoke", 9, 7, 551, 23], - ["move", 8, 7, 551, 23], - ["access", 9, "call_done", 552, 32], - ["get", 10, 49, 1, 552, 22], - ["frame", 11, 10, 1, 552, 22], + ["setarg", 9, 1, 7, 581, 23], + ["invoke", 9, 7, 581, 23], + ["move", 8, 7, 581, 23], + ["access", 9, "call_done", 582, 32], + ["get", 10, 51, 1, 582, 22], + ["frame", 11, 10, 1, 582, 22], ["stone_text", 9], - ["setarg", 11, 1, 9, 552, 22], - ["invoke", 11, 9, 552, 22], - ["move", 10, 9, 552, 22], - ["access", 9, 0, 553, 14], - ["access", 11, 0, 554, 19], - ["access", 12, "is_proxy", 557, 12], - ["get", 13, 55, 1, 557, 5], - ["frame", 14, 13, 3, 557, 5], + ["setarg", 11, 1, 9, 582, 22], + ["invoke", 11, 9, 582, 22], + ["move", 10, 9, 582, 22], + ["access", 9, 0, 583, 14], + ["access", 11, 0, 584, 19], + ["access", 12, "is_proxy", 587, 12], + ["get", 13, 57, 1, 587, 5], + ["frame", 14, 13, 3, 587, 5], ["stone_text", 12], - ["setarg", 14, 1, 12, 557, 5], - ["setarg", 14, 2, 5, 557, 5], - ["setarg", 14, 3, 2, 557, 5], - ["invoke", 14, 12, 557, 5], - ["access", 12, "jump_false", 558, 20], - ["get", 13, 64, 1, 558, 5], - ["frame", 14, 13, 3, 558, 5], + ["setarg", 14, 1, 12, 587, 5], + ["setarg", 14, 2, 5, 587, 5], + ["setarg", 14, 3, 2, 587, 5], + ["invoke", 14, 12, 587, 5], + ["access", 12, "jump_false", 588, 20], + ["get", 13, 66, 1, 588, 5], + ["frame", 14, 13, 3, 588, 5], ["stone_text", 12], - ["setarg", 14, 1, 12, 558, 5], - ["setarg", 14, 2, 5, 558, 5], - ["setarg", 14, 3, 7, 558, 5], - ["invoke", 14, 5, 558, 5], - ["get", 5, 44, 1, 561, 21], - ["frame", 7, 5, 0, 561, 21], - ["invoke", 7, 5, 561, 21], - ["move", 7, 5, 561, 21], - ["get", 12, 61, 1, 562, 5], - ["frame", 13, 12, 1, 562, 5], - ["setarg", 13, 1, 5, 562, 5], - ["invoke", 13, 5, 562, 5], - ["get", 5, 44, 1, 563, 20], - ["frame", 12, 5, 0, 563, 20], - ["invoke", 12, 5, 563, 20], - ["move", 12, 5, 563, 20], - ["get", 13, 59, 1, 564, 5], - ["frame", 14, 13, 2, 564, 5], - ["setarg", 14, 1, 5, 564, 5], - ["setarg", 14, 2, 3, 564, 5], - ["invoke", 14, 5, 564, 5], - ["get", 5, 44, 1, 565, 20], - ["frame", 13, 5, 0, 565, 20], - ["invoke", 13, 5, 565, 20], - ["move", 13, 5, 565, 20], - ["access", 14, "array", 566, 16], - ["access", 15, 0, 566, 35], - ["array", 16, 3, 566, 35], + ["setarg", 14, 1, 12, 588, 5], + ["setarg", 14, 2, 5, 588, 5], + ["setarg", 14, 3, 7, 588, 5], + ["invoke", 14, 5, 588, 5], + ["get", 5, 46, 1, 591, 21], + ["frame", 7, 5, 0, 591, 21], + ["invoke", 7, 5, 591, 21], + ["move", 7, 5, 591, 21], + ["get", 12, 63, 1, 592, 5], + ["frame", 13, 12, 1, 592, 5], + ["setarg", 13, 1, 5, 592, 5], + ["invoke", 13, 5, 592, 5], + ["get", 5, 46, 1, 593, 20], + ["frame", 12, 5, 0, 593, 20], + ["invoke", 12, 5, 593, 20], + ["move", 12, 5, 593, 20], + ["get", 13, 61, 1, 594, 5], + ["frame", 14, 13, 2, 594, 5], + ["setarg", 14, 1, 5, 594, 5], + ["setarg", 14, 2, 3, 594, 5], + ["invoke", 14, 5, 594, 5], + ["get", 5, 46, 1, 595, 20], + ["frame", 13, 5, 0, 595, 20], + ["invoke", 13, 5, 595, 20], + ["move", 13, 5, 595, 20], + ["access", 14, "array", 596, 16], + ["access", 15, 0, 596, 35], + ["array", 16, 3, 596, 35], ["stone_text", 14], - ["push", 16, 14, 566, 35], - ["push", 16, 5, 566, 35], - ["push", 16, 15, 566, 35], - ["get", 5, 51, 1, 566, 5], - ["frame", 14, 5, 1, 566, 5], - ["setarg", 14, 1, 16, 566, 5], - ["invoke", 14, 5, 566, 5], - ["access", 9, 0, 567, 10], - "while_start_118", - ["lt", 5, 9, 6, 568, 17], - ["jump_false", 5, "while_end_119", 568, 17], - ["access", 5, "push", 569, 14], - ["load_index", 14, 4, 9, 569, 37], - ["get", 15, 55, 1, 569, 7], - ["frame", 16, 15, 3, 569, 7], + ["push", 16, 14, 596, 35], + ["push", 16, 5, 596, 35], + ["push", 16, 15, 596, 35], + ["get", 5, 53, 1, 596, 5], + ["frame", 14, 5, 1, 596, 5], + ["setarg", 14, 1, 16, 596, 5], + ["invoke", 14, 5, 596, 5], + ["access", 9, 0, 597, 10], + "while_start_112", + ["lt", 5, 9, 6, 598, 17], + ["jump_false", 5, "while_end_113", 598, 17], + ["access", 5, "push", 599, 14], + ["load_index", 14, 4, 9, 599, 37], + ["get", 15, 57, 1, 599, 7], + ["frame", 16, 15, 3, 599, 7], ["stone_text", 5], - ["setarg", 16, 1, 5, 569, 7], - ["setarg", 16, 2, 13, 569, 7], - ["setarg", 16, 3, 14, 569, 7], - ["invoke", 16, 5, 569, 7], - ["access", 5, 1, 570, 17], - "_nop_tc_1", - "_nop_tc_2", - "_nop_tc_3", - "_nop_tc_4", - ["add", 9, 9, 5, 570, 17], - ["jump", "num_done_121", 570, 17], - "num_err_120", - "_nop_ucfg_1", - "_nop_ucfg_2", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "num_done_121", - ["jump", "while_start_118", 570, 17], - "while_end_119", - ["get", 5, 44, 1, 572, 14], - ["frame", 14, 5, 0, 572, 14], - ["invoke", 14, 5, 572, 14], - ["move", 14, 5, 572, 14], - ["access", 14, "frame", 573, 12], - ["access", 15, 2, 573, 30], - ["get", 16, 56, 1, 573, 5], - ["frame", 17, 16, 4, 573, 5], + ["setarg", 16, 1, 5, 599, 7], + ["setarg", 16, 2, 13, 599, 7], + ["setarg", 16, 3, 14, 599, 7], + ["invoke", 16, 5, 599, 7], + ["access", 5, 1, 600, 17], + ["add", 9, 9, 5, 600, 17], + ["jump", "while_start_112", 600, 17], + "while_end_113", + ["get", 5, 46, 1, 602, 14], + ["frame", 14, 5, 0, 602, 14], + ["invoke", 14, 5, 602, 14], + ["move", 14, 5, 602, 14], + ["access", 14, "frame", 603, 12], + ["access", 15, 2, 603, 30], + ["get", 16, 58, 1, 603, 5], + ["frame", 17, 16, 4, 603, 5], ["stone_text", 14], - ["setarg", 17, 1, 14, 573, 5], - ["setarg", 17, 2, 5, 573, 5], - ["setarg", 17, 3, 2, 573, 5], - ["setarg", 17, 4, 15, 573, 5], - ["invoke", 17, 14, 573, 5], - ["access", 14, "setarg", 574, 12], - ["access", 15, 0, 574, 26], - ["get", 16, 56, 1, 574, 5], - ["frame", 17, 16, 4, 574, 5], + ["setarg", 17, 1, 14, 603, 5], + ["setarg", 17, 2, 5, 603, 5], + ["setarg", 17, 3, 2, 603, 5], + ["setarg", 17, 4, 15, 603, 5], + ["invoke", 17, 14, 603, 5], + ["access", 14, "setarg", 604, 12], + ["access", 15, 0, 604, 26], + ["get", 16, 58, 1, 604, 5], + ["frame", 17, 16, 4, 604, 5], ["stone_text", 14], - ["setarg", 17, 1, 14, 574, 5], - ["setarg", 17, 2, 5, 574, 5], - ["setarg", 17, 3, 15, 574, 5], - ["setarg", 17, 4, 7, 574, 5], - ["invoke", 17, 7, 574, 5], - ["access", 7, "setarg", 575, 12], - ["access", 14, 1, 575, 26], - ["get", 15, 56, 1, 575, 5], - ["frame", 16, 15, 4, 575, 5], + ["setarg", 17, 1, 14, 604, 5], + ["setarg", 17, 2, 5, 604, 5], + ["setarg", 17, 3, 15, 604, 5], + ["setarg", 17, 4, 7, 604, 5], + ["invoke", 17, 7, 604, 5], + ["access", 7, "setarg", 605, 12], + ["access", 14, 1, 605, 26], + ["get", 15, 58, 1, 605, 5], + ["frame", 16, 15, 4, 605, 5], ["stone_text", 7], - ["setarg", 16, 1, 7, 575, 5], - ["setarg", 16, 2, 5, 575, 5], - ["setarg", 16, 3, 14, 575, 5], - ["setarg", 16, 4, 12, 575, 5], - ["invoke", 16, 7, 575, 5], - ["access", 7, "setarg", 576, 12], - ["access", 12, 2, 576, 26], - ["get", 14, 56, 1, 576, 5], - ["frame", 15, 14, 4, 576, 5], + ["setarg", 16, 1, 7, 605, 5], + ["setarg", 16, 2, 5, 605, 5], + ["setarg", 16, 3, 14, 605, 5], + ["setarg", 16, 4, 12, 605, 5], + ["invoke", 16, 7, 605, 5], + ["access", 7, "setarg", 606, 12], + ["access", 12, 2, 606, 26], + ["get", 14, 58, 1, 606, 5], + ["frame", 15, 14, 4, 606, 5], ["stone_text", 7], - ["setarg", 15, 1, 7, 576, 5], - ["setarg", 15, 2, 5, 576, 5], - ["setarg", 15, 3, 12, 576, 5], - ["setarg", 15, 4, 13, 576, 5], - ["invoke", 15, 7, 576, 5], - ["access", 7, "invoke", 577, 12], - ["get", 12, 55, 1, 577, 5], - ["frame", 13, 12, 3, 577, 5], + ["setarg", 15, 1, 7, 606, 5], + ["setarg", 15, 2, 5, 606, 5], + ["setarg", 15, 3, 12, 606, 5], + ["setarg", 15, 4, 13, 606, 5], + ["invoke", 15, 7, 606, 5], + ["access", 7, "invoke", 607, 12], + ["get", 12, 57, 1, 607, 5], + ["frame", 13, 12, 3, 607, 5], ["stone_text", 7], - ["setarg", 13, 1, 7, 577, 5], - ["setarg", 13, 2, 5, 577, 5], - ["setarg", 13, 3, 1, 577, 5], - ["invoke", 13, 5, 577, 5], - ["get", 5, 63, 1, 578, 5], - ["frame", 7, 5, 1, 578, 5], - ["setarg", 7, 1, 10, 578, 5], - ["invoke", 7, 5, 578, 5], - ["get", 5, 52, 1, 581, 5], - ["frame", 7, 5, 1, 581, 5], - ["setarg", 7, 1, 8, 581, 5], - ["invoke", 7, 5, 581, 5], - ["get", 5, 44, 1, 582, 23], - ["frame", 7, 5, 0, 582, 23], - ["invoke", 7, 5, 582, 23], - ["move", 7, 5, 582, 23], - ["access", 7, "load_field", 583, 16], - ["array", 8, 4, 583, 48], + ["setarg", 13, 1, 7, 607, 5], + ["setarg", 13, 2, 5, 607, 5], + ["setarg", 13, 3, 1, 607, 5], + ["invoke", 13, 5, 607, 5], + ["get", 5, 65, 1, 608, 5], + ["frame", 7, 5, 1, 608, 5], + ["setarg", 7, 1, 10, 608, 5], + ["invoke", 7, 5, 608, 5], + ["get", 5, 54, 1, 611, 5], + ["frame", 7, 5, 1, 611, 5], + ["setarg", 7, 1, 8, 611, 5], + ["invoke", 7, 5, 611, 5], + ["get", 5, 46, 1, 612, 23], + ["frame", 7, 5, 0, 612, 23], + ["invoke", 7, 5, 612, 23], + ["move", 7, 5, 612, 23], + ["access", 7, "load_field", 613, 16], + ["array", 8, 4, 613, 48], ["stone_text", 7], - ["push", 8, 7, 583, 48], - ["push", 8, 5, 583, 48], - ["push", 8, 2, 583, 48], - ["push", 8, 3, 583, 48], - ["get", 7, 51, 1, 583, 5], - ["frame", 12, 7, 1, 583, 5], - ["setarg", 12, 1, 8, 583, 5], - ["invoke", 12, 7, 583, 5], - ["get", 7, 44, 1, 584, 22], - ["frame", 8, 7, 0, 584, 22], - ["invoke", 8, 7, 584, 22], - ["move", 8, 7, 584, 22], - ["access", 12, "frame", 585, 12], - ["get", 13, 56, 1, 585, 5], - ["frame", 14, 13, 4, 585, 5], + ["push", 8, 7, 613, 48], + ["push", 8, 5, 613, 48], + ["push", 8, 2, 613, 48], + ["push", 8, 3, 613, 48], + ["get", 7, 53, 1, 613, 5], + ["frame", 12, 7, 1, 613, 5], + ["setarg", 12, 1, 8, 613, 5], + ["invoke", 12, 7, 613, 5], + ["get", 7, 46, 1, 614, 22], + ["frame", 8, 7, 0, 614, 22], + ["invoke", 8, 7, 614, 22], + ["move", 8, 7, 614, 22], + ["access", 12, "frame", 615, 12], + ["get", 13, 58, 1, 615, 5], + ["frame", 14, 13, 4, 615, 5], ["stone_text", 12], - ["setarg", 14, 1, 12, 585, 5], - ["setarg", 14, 2, 7, 585, 5], - ["setarg", 14, 3, 5, 585, 5], - ["setarg", 14, 4, 6, 585, 5], - ["invoke", 14, 5, 585, 5], - ["access", 5, "setarg", 586, 12], - ["access", 12, 0, 586, 34], - ["get", 13, 56, 1, 586, 5], - ["frame", 14, 13, 4, 586, 5], + ["setarg", 14, 1, 12, 615, 5], + ["setarg", 14, 2, 7, 615, 5], + ["setarg", 14, 3, 5, 615, 5], + ["setarg", 14, 4, 6, 615, 5], + ["invoke", 14, 5, 615, 5], + ["access", 5, "setarg", 616, 12], + ["access", 12, 0, 616, 34], + ["get", 13, 58, 1, 616, 5], + ["frame", 14, 13, 4, 616, 5], ["stone_text", 5], - ["setarg", 14, 1, 5, 586, 5], - ["setarg", 14, 2, 7, 586, 5], - ["setarg", 14, 3, 12, 586, 5], - ["setarg", 14, 4, 2, 586, 5], - ["invoke", 14, 5, 586, 5], - ["access", 11, 1, 587, 15], - ["access", 9, 0, 588, 10], - "while_start_122", - ["lt", 5, 9, 6, 589, 17], - ["jump_false", 5, "while_end_123", 589, 17], - ["access", 5, "setarg", 590, 14], - ["load_index", 7, 4, 9, 590, 50], - ["get", 12, 56, 1, 590, 7], - ["frame", 13, 12, 4, 590, 7], + ["setarg", 14, 1, 5, 616, 5], + ["setarg", 14, 2, 7, 616, 5], + ["setarg", 14, 3, 12, 616, 5], + ["setarg", 14, 4, 2, 616, 5], + ["invoke", 14, 5, 616, 5], + ["access", 11, 1, 617, 15], + ["access", 9, 0, 618, 10], + "while_start_114", + ["lt", 5, 9, 6, 619, 17], + ["jump_false", 5, "while_end_115", 619, 17], + ["access", 5, "setarg", 620, 14], + ["load_index", 7, 4, 9, 620, 50], + ["get", 12, 58, 1, 620, 7], + ["frame", 13, 12, 4, 620, 7], ["stone_text", 5], - ["setarg", 13, 1, 5, 590, 7], - ["setarg", 13, 2, 8, 590, 7], - ["setarg", 13, 3, 11, 590, 7], - ["setarg", 13, 4, 7, 590, 7], - ["invoke", 13, 5, 590, 7], - ["access", 5, 1, 591, 27], - "_nop_tc_5", - "_nop_tc_6", - "_nop_tc_7", - "_nop_tc_8", - ["add", 11, 11, 5, 591, 27], - ["jump", "num_done_125", 591, 27], - "num_err_124", - "_nop_ucfg_13", - "_nop_ucfg_14", - "_nop_ucfg_15", - "_nop_ucfg_16", - "_nop_ucfg_17", - "_nop_ucfg_18", - "_nop_ucfg_19", - "_nop_ucfg_20", - "_nop_ucfg_21", - "_nop_ucfg_22", - "_nop_ucfg_23", - "_nop_ucfg_24", - "num_done_125", - ["access", 5, 1, 592, 17], - "_nop_tc_9", - "_nop_tc_10", - "_nop_tc_11", - "_nop_tc_12", - ["add", 9, 9, 5, 592, 17], - ["jump", "num_done_127", 592, 17], - "num_err_126", - "_nop_ucfg_25", - "_nop_ucfg_26", - "_nop_ucfg_27", - "_nop_ucfg_28", - "_nop_ucfg_29", - "_nop_ucfg_30", - "_nop_ucfg_31", - "_nop_ucfg_32", - "_nop_ucfg_33", - "_nop_ucfg_34", - "_nop_ucfg_35", - "_nop_ucfg_36", - "num_done_127", - ["jump", "while_start_122", 592, 17], - "while_end_123", - ["access", 5, "invoke", 594, 12], - ["get", 6, 55, 1, 594, 5], - ["frame", 7, 6, 3, 594, 5], + ["setarg", 13, 1, 5, 620, 7], + ["setarg", 13, 2, 8, 620, 7], + ["setarg", 13, 3, 11, 620, 7], + ["setarg", 13, 4, 7, 620, 7], + ["invoke", 13, 5, 620, 7], + ["access", 5, 1, 621, 27], + ["add", 11, 11, 5, 621, 27], + ["access", 5, 1, 622, 17], + ["add", 9, 9, 5, 622, 17], + ["jump", "while_start_114", 622, 17], + "while_end_115", + ["access", 5, "invoke", 624, 12], + ["get", 6, 57, 1, 624, 5], + ["frame", 7, 6, 3, 624, 5], ["stone_text", 5], - ["setarg", 7, 1, 5, 594, 5], - ["setarg", 7, 2, 8, 594, 5], - ["setarg", 7, 3, 1, 594, 5], - ["invoke", 7, 5, 594, 5], - ["get", 5, 52, 1, 596, 5], - ["frame", 6, 5, 1, 596, 5], - ["setarg", 6, 1, 10, 596, 5], - ["invoke", 6, 5, 596, 5], - ["null", 5, 596, 5], - ["return", 5, 596, 5] + ["setarg", 7, 1, 5, 624, 5], + ["setarg", 7, 2, 8, 624, 5], + ["setarg", 7, 3, 1, 624, 5], + ["invoke", 7, 5, 624, 5], + ["get", 5, 54, 1, 626, 5], + ["frame", 6, 5, 1, 626, 5], + ["setarg", 6, 1, 10, 626, 5], + ["invoke", 6, 5, 626, 5], + ["null", 5, 626, 5], + ["return", 5, 626, 5] ], - "_write_types": [null, null, null, null, null, "int", "int", "int", null, null, null, null, null, null, null, null, null, "int", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "text", "int", "array", null, null, null, "bool", "text", null, null, null, null, "int", null, null, null, null, null, null, null, null, null, null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", null, null, null, null, null, null, null, null, null, null, null, null, "text", "array", null, null, null, null, null, null, "text", null, null, null, "text", "int", null, null, null, "bool", "text", null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "text", null, null, null, null, null, null, "null"], + "_write_types": [null, null, null, null, null, "int", "int", "int", null, null, null, null, null, null, null, null, null, "int", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "text", "int", "array", null, null, null, "bool", "text", null, null, null, null, "int", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", null, null, null, null, null, null, null, null, null, null, null, null, "text", "array", null, null, null, null, null, null, "text", null, null, null, "text", "int", null, null, null, "bool", "text", null, null, null, null, "int", "int", "text", null, null, null, null, null, null, "null"], "name": "", "filename": ".cell/packages/core/mcode.cm", "nr_args": 4 @@ -2810,321 +2633,264 @@ "nr_slots": 18, "nr_close_slots": 0, "instructions": [ - ["length", 5, 4, 600, 23], - ["move", 6, 5, 600, 23], - ["get", 5, 44, 1, 601, 17], - ["frame", 7, 5, 0, 601, 17], - ["invoke", 7, 5, 601, 17], - ["move", 7, 5, 601, 17], - ["access", 7, "dyn_record_path", 602, 33], - ["get", 8, 49, 1, 602, 23], - ["frame", 9, 8, 1, 602, 23], + ["length", 5, 4, 630, 23], + ["move", 6, 5, 630, 23], + ["get", 5, 46, 1, 631, 17], + ["frame", 7, 5, 0, 631, 17], + ["invoke", 7, 5, 631, 17], + ["move", 7, 5, 631, 17], + ["access", 7, "dyn_record_path", 632, 33], + ["get", 8, 51, 1, 632, 23], + ["frame", 9, 8, 1, 632, 23], ["stone_text", 7], - ["setarg", 9, 1, 7, 602, 23], - ["invoke", 9, 7, 602, 23], - ["move", 8, 7, 602, 23], - ["access", 9, "dyn_call_done", 603, 32], - ["get", 10, 49, 1, 603, 22], - ["frame", 11, 10, 1, 603, 22], + ["setarg", 9, 1, 7, 632, 23], + ["invoke", 9, 7, 632, 23], + ["move", 8, 7, 632, 23], + ["access", 9, "dyn_call_done", 633, 32], + ["get", 10, 51, 1, 633, 22], + ["frame", 11, 10, 1, 633, 22], ["stone_text", 9], - ["setarg", 11, 1, 9, 603, 22], - ["invoke", 11, 9, 603, 22], - ["move", 10, 9, 603, 22], - ["access", 9, 0, 604, 14], - ["access", 11, 0, 605, 19], - ["access", 12, "is_proxy", 608, 12], - ["get", 13, 55, 1, 608, 5], - ["frame", 14, 13, 3, 608, 5], + ["setarg", 11, 1, 9, 633, 22], + ["invoke", 11, 9, 633, 22], + ["move", 10, 9, 633, 22], + ["access", 9, 0, 634, 14], + ["access", 11, 0, 635, 19], + ["access", 12, "is_proxy", 638, 12], + ["get", 13, 57, 1, 638, 5], + ["frame", 14, 13, 3, 638, 5], ["stone_text", 12], - ["setarg", 14, 1, 12, 608, 5], - ["setarg", 14, 2, 5, 608, 5], - ["setarg", 14, 3, 2, 608, 5], - ["invoke", 14, 12, 608, 5], - ["access", 12, "jump_false", 609, 20], - ["get", 13, 64, 1, 609, 5], - ["frame", 14, 13, 3, 609, 5], + ["setarg", 14, 1, 12, 638, 5], + ["setarg", 14, 2, 5, 638, 5], + ["setarg", 14, 3, 2, 638, 5], + ["invoke", 14, 12, 638, 5], + ["access", 12, "jump_false", 639, 20], + ["get", 13, 66, 1, 639, 5], + ["frame", 14, 13, 3, 639, 5], ["stone_text", 12], - ["setarg", 14, 1, 12, 609, 5], - ["setarg", 14, 2, 5, 609, 5], - ["setarg", 14, 3, 7, 609, 5], - ["invoke", 14, 5, 609, 5], - ["get", 5, 44, 1, 612, 18], - ["frame", 7, 5, 0, 612, 18], - ["invoke", 7, 5, 612, 18], - ["move", 7, 5, 612, 18], - ["access", 7, "dyn_error", 613, 32], - ["get", 12, 49, 1, 613, 22], - ["frame", 13, 12, 1, 613, 22], + ["setarg", 14, 1, 12, 639, 5], + ["setarg", 14, 2, 5, 639, 5], + ["setarg", 14, 3, 7, 639, 5], + ["invoke", 14, 5, 639, 5], + ["get", 5, 46, 1, 642, 18], + ["frame", 7, 5, 0, 642, 18], + ["invoke", 7, 5, 642, 18], + ["move", 7, 5, 642, 18], + ["access", 7, "dyn_error", 643, 32], + ["get", 12, 51, 1, 643, 22], + ["frame", 13, 12, 1, 643, 22], ["stone_text", 7], - ["setarg", 13, 1, 7, 613, 22], - ["invoke", 13, 7, 613, 22], - ["move", 12, 7, 613, 22], - ["access", 13, "is_text", 614, 12], - ["get", 14, 55, 1, 614, 5], - ["frame", 15, 14, 3, 614, 5], + ["setarg", 13, 1, 7, 643, 22], + ["invoke", 13, 7, 643, 22], + ["move", 12, 7, 643, 22], + ["access", 13, "is_text", 644, 12], + ["get", 14, 57, 1, 644, 5], + ["frame", 15, 14, 3, 644, 5], ["stone_text", 13], - ["setarg", 15, 1, 13, 614, 5], - ["setarg", 15, 2, 5, 614, 5], - ["setarg", 15, 3, 3, 614, 5], - ["invoke", 15, 13, 614, 5], - ["access", 13, "jump_false", 615, 20], - ["get", 14, 64, 1, 615, 5], - ["frame", 15, 14, 3, 615, 5], + ["setarg", 15, 1, 13, 644, 5], + ["setarg", 15, 2, 5, 644, 5], + ["setarg", 15, 3, 3, 644, 5], + ["invoke", 15, 13, 644, 5], + ["access", 13, "jump_false", 645, 20], + ["get", 14, 66, 1, 645, 5], + ["frame", 15, 14, 3, 645, 5], ["stone_text", 13], - ["setarg", 15, 1, 13, 615, 5], - ["setarg", 15, 2, 5, 615, 5], - ["setarg", 15, 3, 7, 615, 5], - ["invoke", 15, 5, 615, 5], - ["get", 5, 44, 1, 616, 21], - ["frame", 7, 5, 0, 616, 21], - ["invoke", 7, 5, 616, 21], - ["move", 7, 5, 616, 21], - ["get", 13, 61, 1, 617, 5], - ["frame", 14, 13, 1, 617, 5], - ["setarg", 14, 1, 5, 617, 5], - ["invoke", 14, 5, 617, 5], - ["get", 5, 44, 1, 618, 20], - ["frame", 13, 5, 0, 618, 20], - ["invoke", 13, 5, 618, 20], - ["move", 13, 5, 618, 20], - ["access", 14, "array", 619, 16], - ["access", 15, 0, 619, 35], - ["array", 16, 3, 619, 35], + ["setarg", 15, 1, 13, 645, 5], + ["setarg", 15, 2, 5, 645, 5], + ["setarg", 15, 3, 7, 645, 5], + ["invoke", 15, 5, 645, 5], + ["get", 5, 46, 1, 646, 21], + ["frame", 7, 5, 0, 646, 21], + ["invoke", 7, 5, 646, 21], + ["move", 7, 5, 646, 21], + ["get", 13, 63, 1, 647, 5], + ["frame", 14, 13, 1, 647, 5], + ["setarg", 14, 1, 5, 647, 5], + ["invoke", 14, 5, 647, 5], + ["get", 5, 46, 1, 648, 20], + ["frame", 13, 5, 0, 648, 20], + ["invoke", 13, 5, 648, 20], + ["move", 13, 5, 648, 20], + ["access", 14, "array", 649, 16], + ["access", 15, 0, 649, 35], + ["array", 16, 3, 649, 35], ["stone_text", 14], - ["push", 16, 14, 619, 35], - ["push", 16, 5, 619, 35], - ["push", 16, 15, 619, 35], - ["get", 5, 51, 1, 619, 5], - ["frame", 14, 5, 1, 619, 5], - ["setarg", 14, 1, 16, 619, 5], - ["invoke", 14, 5, 619, 5], - ["access", 9, 0, 620, 10], - "while_start_128", - ["lt", 5, 9, 6, 621, 17], - ["jump_false", 5, "while_end_129", 621, 17], - ["access", 5, "push", 622, 14], - ["load_index", 14, 4, 9, 622, 37], - ["get", 15, 55, 1, 622, 7], - ["frame", 16, 15, 3, 622, 7], + ["push", 16, 14, 649, 35], + ["push", 16, 5, 649, 35], + ["push", 16, 15, 649, 35], + ["get", 5, 53, 1, 649, 5], + ["frame", 14, 5, 1, 649, 5], + ["setarg", 14, 1, 16, 649, 5], + ["invoke", 14, 5, 649, 5], + ["access", 9, 0, 650, 10], + "while_start_116", + ["lt", 5, 9, 6, 651, 17], + ["jump_false", 5, "while_end_117", 651, 17], + ["access", 5, "push", 652, 14], + ["load_index", 14, 4, 9, 652, 37], + ["get", 15, 57, 1, 652, 7], + ["frame", 16, 15, 3, 652, 7], ["stone_text", 5], - ["setarg", 16, 1, 5, 622, 7], - ["setarg", 16, 2, 13, 622, 7], - ["setarg", 16, 3, 14, 622, 7], - ["invoke", 16, 5, 622, 7], - ["access", 5, 1, 623, 17], - "_nop_tc_1", - "_nop_tc_2", - "_nop_tc_3", - "_nop_tc_4", - ["add", 9, 9, 5, 623, 17], - ["jump", "num_done_131", 623, 17], - "num_err_130", - "_nop_ucfg_1", - "_nop_ucfg_2", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "num_done_131", - ["jump", "while_start_128", 623, 17], - "while_end_129", - ["get", 5, 44, 1, 625, 14], - ["frame", 14, 5, 0, 625, 14], - ["invoke", 14, 5, 625, 14], - ["move", 14, 5, 625, 14], - ["access", 14, "frame", 626, 12], - ["access", 15, 2, 626, 30], - ["get", 16, 56, 1, 626, 5], - ["frame", 17, 16, 4, 626, 5], + ["setarg", 16, 1, 5, 652, 7], + ["setarg", 16, 2, 13, 652, 7], + ["setarg", 16, 3, 14, 652, 7], + ["invoke", 16, 5, 652, 7], + ["access", 5, 1, 653, 17], + ["add", 9, 9, 5, 653, 17], + ["jump", "while_start_116", 653, 17], + "while_end_117", + ["get", 5, 46, 1, 655, 14], + ["frame", 14, 5, 0, 655, 14], + ["invoke", 14, 5, 655, 14], + ["move", 14, 5, 655, 14], + ["access", 14, "frame", 656, 12], + ["access", 15, 2, 656, 30], + ["get", 16, 58, 1, 656, 5], + ["frame", 17, 16, 4, 656, 5], ["stone_text", 14], - ["setarg", 17, 1, 14, 626, 5], - ["setarg", 17, 2, 5, 626, 5], - ["setarg", 17, 3, 2, 626, 5], - ["setarg", 17, 4, 15, 626, 5], - ["invoke", 17, 14, 626, 5], - ["access", 14, "setarg", 627, 12], - ["access", 15, 0, 627, 26], - ["get", 16, 56, 1, 627, 5], - ["frame", 17, 16, 4, 627, 5], + ["setarg", 17, 1, 14, 656, 5], + ["setarg", 17, 2, 5, 656, 5], + ["setarg", 17, 3, 2, 656, 5], + ["setarg", 17, 4, 15, 656, 5], + ["invoke", 17, 14, 656, 5], + ["access", 14, "setarg", 657, 12], + ["access", 15, 0, 657, 26], + ["get", 16, 58, 1, 657, 5], + ["frame", 17, 16, 4, 657, 5], ["stone_text", 14], - ["setarg", 17, 1, 14, 627, 5], - ["setarg", 17, 2, 5, 627, 5], - ["setarg", 17, 3, 15, 627, 5], - ["setarg", 17, 4, 7, 627, 5], - ["invoke", 17, 7, 627, 5], - ["access", 7, "setarg", 628, 12], - ["access", 14, 1, 628, 26], - ["get", 15, 56, 1, 628, 5], - ["frame", 16, 15, 4, 628, 5], + ["setarg", 17, 1, 14, 657, 5], + ["setarg", 17, 2, 5, 657, 5], + ["setarg", 17, 3, 15, 657, 5], + ["setarg", 17, 4, 7, 657, 5], + ["invoke", 17, 7, 657, 5], + ["access", 7, "setarg", 658, 12], + ["access", 14, 1, 658, 26], + ["get", 15, 58, 1, 658, 5], + ["frame", 16, 15, 4, 658, 5], ["stone_text", 7], - ["setarg", 16, 1, 7, 628, 5], - ["setarg", 16, 2, 5, 628, 5], - ["setarg", 16, 3, 14, 628, 5], - ["setarg", 16, 4, 3, 628, 5], - ["invoke", 16, 7, 628, 5], - ["access", 7, "setarg", 629, 12], - ["access", 14, 2, 629, 26], - ["get", 15, 56, 1, 629, 5], - ["frame", 16, 15, 4, 629, 5], + ["setarg", 16, 1, 7, 658, 5], + ["setarg", 16, 2, 5, 658, 5], + ["setarg", 16, 3, 14, 658, 5], + ["setarg", 16, 4, 3, 658, 5], + ["invoke", 16, 7, 658, 5], + ["access", 7, "setarg", 659, 12], + ["access", 14, 2, 659, 26], + ["get", 15, 58, 1, 659, 5], + ["frame", 16, 15, 4, 659, 5], ["stone_text", 7], - ["setarg", 16, 1, 7, 629, 5], - ["setarg", 16, 2, 5, 629, 5], - ["setarg", 16, 3, 14, 629, 5], - ["setarg", 16, 4, 13, 629, 5], - ["invoke", 16, 7, 629, 5], - ["access", 7, "invoke", 630, 12], - ["get", 13, 55, 1, 630, 5], - ["frame", 14, 13, 3, 630, 5], + ["setarg", 16, 1, 7, 659, 5], + ["setarg", 16, 2, 5, 659, 5], + ["setarg", 16, 3, 14, 659, 5], + ["setarg", 16, 4, 13, 659, 5], + ["invoke", 16, 7, 659, 5], + ["access", 7, "invoke", 660, 12], + ["get", 13, 57, 1, 660, 5], + ["frame", 14, 13, 3, 660, 5], ["stone_text", 7], - ["setarg", 14, 1, 7, 630, 5], - ["setarg", 14, 2, 5, 630, 5], - ["setarg", 14, 3, 1, 630, 5], - ["invoke", 14, 5, 630, 5], - ["get", 5, 63, 1, 631, 5], - ["frame", 7, 5, 1, 631, 5], - ["setarg", 7, 1, 10, 631, 5], - ["invoke", 7, 5, 631, 5], - ["get", 5, 52, 1, 634, 5], - ["frame", 7, 5, 1, 634, 5], - ["setarg", 7, 1, 12, 634, 5], - ["invoke", 7, 5, 634, 5], - ["access", 5, "cannot access: key must be text", 635, 20], - ["get", 7, 62, 1, 635, 5], - ["frame", 12, 7, 1, 635, 5], + ["setarg", 14, 1, 7, 660, 5], + ["setarg", 14, 2, 5, 660, 5], + ["setarg", 14, 3, 1, 660, 5], + ["invoke", 14, 5, 660, 5], + ["get", 5, 65, 1, 661, 5], + ["frame", 7, 5, 1, 661, 5], + ["setarg", 7, 1, 10, 661, 5], + ["invoke", 7, 5, 661, 5], + ["get", 5, 54, 1, 664, 5], + ["frame", 7, 5, 1, 664, 5], + ["setarg", 7, 1, 12, 664, 5], + ["invoke", 7, 5, 664, 5], + ["access", 5, "cannot access: key must be text", 665, 20], + ["get", 7, 64, 1, 665, 5], + ["frame", 12, 7, 1, 665, 5], ["stone_text", 5], - ["setarg", 12, 1, 5, 635, 5], - ["invoke", 12, 5, 635, 5], - ["access", 5, "disrupt", 636, 12], - ["get", 7, 53, 1, 636, 5], - ["frame", 12, 7, 1, 636, 5], + ["setarg", 12, 1, 5, 665, 5], + ["invoke", 12, 5, 665, 5], + ["access", 5, "disrupt", 666, 12], + ["get", 7, 55, 1, 666, 5], + ["frame", 12, 7, 1, 666, 5], ["stone_text", 5], - ["setarg", 12, 1, 5, 636, 5], - ["invoke", 12, 5, 636, 5], - ["get", 5, 63, 1, 637, 5], - ["frame", 7, 5, 1, 637, 5], - ["setarg", 7, 1, 10, 637, 5], - ["invoke", 7, 5, 637, 5], - ["get", 5, 52, 1, 640, 5], - ["frame", 7, 5, 1, 640, 5], - ["setarg", 7, 1, 8, 640, 5], - ["invoke", 7, 5, 640, 5], - ["get", 5, 44, 1, 641, 23], - ["frame", 7, 5, 0, 641, 23], - ["invoke", 7, 5, 641, 23], - ["move", 7, 5, 641, 23], - ["access", 7, "load_dynamic", 642, 12], - ["get", 8, 56, 1, 642, 5], - ["frame", 12, 8, 4, 642, 5], + ["setarg", 12, 1, 5, 666, 5], + ["invoke", 12, 5, 666, 5], + ["get", 5, 65, 1, 667, 5], + ["frame", 7, 5, 1, 667, 5], + ["setarg", 7, 1, 10, 667, 5], + ["invoke", 7, 5, 667, 5], + ["get", 5, 54, 1, 670, 5], + ["frame", 7, 5, 1, 670, 5], + ["setarg", 7, 1, 8, 670, 5], + ["invoke", 7, 5, 670, 5], + ["get", 5, 46, 1, 671, 23], + ["frame", 7, 5, 0, 671, 23], + ["invoke", 7, 5, 671, 23], + ["move", 7, 5, 671, 23], + ["access", 7, "load_dynamic", 672, 12], + ["get", 8, 58, 1, 672, 5], + ["frame", 12, 8, 4, 672, 5], ["stone_text", 7], - ["setarg", 12, 1, 7, 642, 5], - ["setarg", 12, 2, 5, 642, 5], - ["setarg", 12, 3, 2, 642, 5], - ["setarg", 12, 4, 3, 642, 5], - ["invoke", 12, 7, 642, 5], - ["get", 7, 44, 1, 643, 22], - ["frame", 8, 7, 0, 643, 22], - ["invoke", 8, 7, 643, 22], - ["move", 8, 7, 643, 22], - ["access", 12, "frame", 644, 12], - ["get", 13, 56, 1, 644, 5], - ["frame", 14, 13, 4, 644, 5], + ["setarg", 12, 1, 7, 672, 5], + ["setarg", 12, 2, 5, 672, 5], + ["setarg", 12, 3, 2, 672, 5], + ["setarg", 12, 4, 3, 672, 5], + ["invoke", 12, 7, 672, 5], + ["get", 7, 46, 1, 673, 22], + ["frame", 8, 7, 0, 673, 22], + ["invoke", 8, 7, 673, 22], + ["move", 8, 7, 673, 22], + ["access", 12, "frame", 674, 12], + ["get", 13, 58, 1, 674, 5], + ["frame", 14, 13, 4, 674, 5], ["stone_text", 12], - ["setarg", 14, 1, 12, 644, 5], - ["setarg", 14, 2, 7, 644, 5], - ["setarg", 14, 3, 5, 644, 5], - ["setarg", 14, 4, 6, 644, 5], - ["invoke", 14, 5, 644, 5], - ["access", 5, "setarg", 645, 12], - ["access", 12, 0, 645, 34], - ["get", 13, 56, 1, 645, 5], - ["frame", 14, 13, 4, 645, 5], + ["setarg", 14, 1, 12, 674, 5], + ["setarg", 14, 2, 7, 674, 5], + ["setarg", 14, 3, 5, 674, 5], + ["setarg", 14, 4, 6, 674, 5], + ["invoke", 14, 5, 674, 5], + ["access", 5, "setarg", 675, 12], + ["access", 12, 0, 675, 34], + ["get", 13, 58, 1, 675, 5], + ["frame", 14, 13, 4, 675, 5], ["stone_text", 5], - ["setarg", 14, 1, 5, 645, 5], - ["setarg", 14, 2, 7, 645, 5], - ["setarg", 14, 3, 12, 645, 5], - ["setarg", 14, 4, 2, 645, 5], - ["invoke", 14, 5, 645, 5], - ["access", 11, 1, 646, 15], - ["access", 9, 0, 647, 10], - "while_start_132", - ["lt", 5, 9, 6, 648, 17], - ["jump_false", 5, "while_end_133", 648, 17], - ["access", 5, "setarg", 649, 14], - ["load_index", 7, 4, 9, 649, 50], - ["get", 12, 56, 1, 649, 7], - ["frame", 13, 12, 4, 649, 7], + ["setarg", 14, 1, 5, 675, 5], + ["setarg", 14, 2, 7, 675, 5], + ["setarg", 14, 3, 12, 675, 5], + ["setarg", 14, 4, 2, 675, 5], + ["invoke", 14, 5, 675, 5], + ["access", 11, 1, 676, 15], + ["access", 9, 0, 677, 10], + "while_start_118", + ["lt", 5, 9, 6, 678, 17], + ["jump_false", 5, "while_end_119", 678, 17], + ["access", 5, "setarg", 679, 14], + ["load_index", 7, 4, 9, 679, 50], + ["get", 12, 58, 1, 679, 7], + ["frame", 13, 12, 4, 679, 7], ["stone_text", 5], - ["setarg", 13, 1, 5, 649, 7], - ["setarg", 13, 2, 8, 649, 7], - ["setarg", 13, 3, 11, 649, 7], - ["setarg", 13, 4, 7, 649, 7], - ["invoke", 13, 5, 649, 7], - ["access", 5, 1, 650, 27], - "_nop_tc_5", - "_nop_tc_6", - "_nop_tc_7", - "_nop_tc_8", - ["add", 11, 11, 5, 650, 27], - ["jump", "num_done_135", 650, 27], - "num_err_134", - "_nop_ucfg_13", - "_nop_ucfg_14", - "_nop_ucfg_15", - "_nop_ucfg_16", - "_nop_ucfg_17", - "_nop_ucfg_18", - "_nop_ucfg_19", - "_nop_ucfg_20", - "_nop_ucfg_21", - "_nop_ucfg_22", - "_nop_ucfg_23", - "_nop_ucfg_24", - "num_done_135", - ["access", 5, 1, 651, 17], - "_nop_tc_9", - "_nop_tc_10", - "_nop_tc_11", - "_nop_tc_12", - ["add", 9, 9, 5, 651, 17], - ["jump", "num_done_137", 651, 17], - "num_err_136", - "_nop_ucfg_25", - "_nop_ucfg_26", - "_nop_ucfg_27", - "_nop_ucfg_28", - "_nop_ucfg_29", - "_nop_ucfg_30", - "_nop_ucfg_31", - "_nop_ucfg_32", - "_nop_ucfg_33", - "_nop_ucfg_34", - "_nop_ucfg_35", - "_nop_ucfg_36", - "num_done_137", - ["jump", "while_start_132", 651, 17], - "while_end_133", - ["access", 5, "invoke", 653, 12], - ["get", 6, 55, 1, 653, 5], - ["frame", 7, 6, 3, 653, 5], + ["setarg", 13, 1, 5, 679, 7], + ["setarg", 13, 2, 8, 679, 7], + ["setarg", 13, 3, 11, 679, 7], + ["setarg", 13, 4, 7, 679, 7], + ["invoke", 13, 5, 679, 7], + ["access", 5, 1, 680, 27], + ["add", 11, 11, 5, 680, 27], + ["access", 5, 1, 681, 17], + ["add", 9, 9, 5, 681, 17], + ["jump", "while_start_118", 681, 17], + "while_end_119", + ["access", 5, "invoke", 683, 12], + ["get", 6, 57, 1, 683, 5], + ["frame", 7, 6, 3, 683, 5], ["stone_text", 5], - ["setarg", 7, 1, 5, 653, 5], - ["setarg", 7, 2, 8, 653, 5], - ["setarg", 7, 3, 1, 653, 5], - ["invoke", 7, 5, 653, 5], - ["get", 5, 52, 1, 655, 5], - ["frame", 6, 5, 1, 655, 5], - ["setarg", 6, 1, 10, 655, 5], - ["invoke", 6, 5, 655, 5], - ["null", 5, 655, 5], - ["return", 5, 655, 5] + ["setarg", 7, 1, 5, 683, 5], + ["setarg", 7, 2, 8, 683, 5], + ["setarg", 7, 3, 1, 683, 5], + ["invoke", 7, 5, 683, 5], + ["get", 5, 54, 1, 685, 5], + ["frame", 6, 5, 1, 685, 5], + ["setarg", 6, 1, 10, 685, 5], + ["invoke", 6, 5, 685, 5], + ["null", 5, 685, 5], + ["return", 5, 685, 5] ], - "_write_types": [null, null, null, null, null, "int", "int", "int", null, null, null, null, null, null, null, null, null, null, "int", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, null, null, null, null, null, null, "text", "int", "array", null, null, null, "bool", "text", null, null, null, null, "int", null, null, null, null, null, null, null, null, null, null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", null, null, null, null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, null, null, null, null, null, null, "text", null, null, null, null, null, null, "text", null, null, null, "text", "int", null, null, null, "bool", "text", null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "text", null, null, null, null, null, null, "null"], + "_write_types": [null, null, null, null, null, "int", "int", "int", null, null, null, null, null, null, null, null, null, null, "int", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, null, null, null, null, null, null, "text", "int", "array", null, null, null, "bool", "text", null, null, null, null, "int", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", null, null, null, null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, null, null, null, null, null, null, "text", null, null, null, null, null, null, "text", null, null, null, "text", "int", null, null, null, "bool", "text", null, null, null, null, "int", "int", "text", null, null, null, null, null, null, "null"], "name": "", "filename": ".cell/packages/core/mcode.cm", "nr_args": 4 @@ -3135,112 +2901,74 @@ "nr_slots": 11, "nr_close_slots": 0, "instructions": [ - ["length", 3, 2, 659, 23], - ["move", 4, 3, 659, 23], - ["get", 5, 44, 1, 660, 22], - ["frame", 6, 5, 0, 660, 22], - ["invoke", 6, 5, 660, 22], - ["move", 6, 5, 660, 22], - ["access", 7, "goframe", 661, 12], - ["get", 8, 56, 1, 661, 5], - ["frame", 9, 8, 4, 661, 5], + ["length", 3, 2, 689, 23], + ["move", 4, 3, 689, 23], + ["get", 5, 46, 1, 690, 22], + ["frame", 6, 5, 0, 690, 22], + ["invoke", 6, 5, 690, 22], + ["move", 6, 5, 690, 22], + ["access", 7, "goframe", 691, 12], + ["get", 8, 58, 1, 691, 5], + ["frame", 9, 8, 4, 691, 5], ["stone_text", 7], - ["setarg", 9, 1, 7, 661, 5], - ["setarg", 9, 2, 5, 661, 5], - ["setarg", 9, 3, 1, 661, 5], - ["setarg", 9, 4, 3, 661, 5], - ["invoke", 9, 3, 661, 5], - ["get", 3, 44, 1, 662, 21], - ["frame", 7, 3, 0, 662, 21], - ["invoke", 7, 3, 662, 21], - ["move", 7, 3, 662, 21], - ["access", 7, "null", 663, 12], - ["get", 8, 54, 1, 663, 5], - ["frame", 9, 8, 2, 663, 5], + ["setarg", 9, 1, 7, 691, 5], + ["setarg", 9, 2, 5, 691, 5], + ["setarg", 9, 3, 1, 691, 5], + ["setarg", 9, 4, 3, 691, 5], + ["invoke", 9, 3, 691, 5], + ["get", 3, 46, 1, 692, 21], + ["frame", 7, 3, 0, 692, 21], + ["invoke", 7, 3, 692, 21], + ["move", 7, 3, 692, 21], + ["access", 7, "null", 693, 12], + ["get", 8, 56, 1, 693, 5], + ["frame", 9, 8, 2, 693, 5], ["stone_text", 7], - ["setarg", 9, 1, 7, 663, 5], - ["setarg", 9, 2, 3, 663, 5], - ["invoke", 9, 7, 663, 5], - ["access", 7, "setarg", 664, 12], - ["access", 8, 0, 664, 34], - ["get", 9, 56, 1, 664, 5], - ["frame", 10, 9, 4, 664, 5], + ["setarg", 9, 1, 7, 693, 5], + ["setarg", 9, 2, 3, 693, 5], + ["invoke", 9, 7, 693, 5], + ["access", 7, "setarg", 694, 12], + ["access", 8, 0, 694, 34], + ["get", 9, 58, 1, 694, 5], + ["frame", 10, 9, 4, 694, 5], ["stone_text", 7], - ["setarg", 10, 1, 7, 664, 5], - ["setarg", 10, 2, 5, 664, 5], - ["setarg", 10, 3, 8, 664, 5], - ["setarg", 10, 4, 3, 664, 5], - ["invoke", 10, 3, 664, 5], - ["access", 3, 1, 665, 19], - ["access", 5, 0, 666, 14], - "while_start_138", - ["lt", 7, 5, 4, 667, 17], - ["jump_false", 7, "while_end_139", 667, 17], - ["access", 7, "setarg", 668, 14], - ["load_index", 8, 2, 5, 668, 50], - ["get", 9, 56, 1, 668, 7], - ["frame", 10, 9, 4, 668, 7], + ["setarg", 10, 1, 7, 694, 5], + ["setarg", 10, 2, 5, 694, 5], + ["setarg", 10, 3, 8, 694, 5], + ["setarg", 10, 4, 3, 694, 5], + ["invoke", 10, 3, 694, 5], + ["access", 3, 1, 695, 19], + ["access", 5, 0, 696, 14], + "while_start_120", + ["lt", 7, 5, 4, 697, 17], + ["jump_false", 7, "while_end_121", 697, 17], + ["access", 7, "setarg", 698, 14], + ["load_index", 8, 2, 5, 698, 50], + ["get", 9, 58, 1, 698, 7], + ["frame", 10, 9, 4, 698, 7], ["stone_text", 7], - ["setarg", 10, 1, 7, 668, 7], - ["setarg", 10, 2, 6, 668, 7], - ["setarg", 10, 3, 3, 668, 7], - ["setarg", 10, 4, 8, 668, 7], - ["invoke", 10, 7, 668, 7], - ["access", 7, 1, 669, 27], - "_nop_tc_1", - "_nop_tc_2", - "_nop_tc_3", - "_nop_tc_4", - ["add", 3, 3, 7, 669, 27], - ["jump", "num_done_141", 669, 27], - "num_err_140", - "_nop_ucfg_1", - "_nop_ucfg_2", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "num_done_141", - ["access", 7, 1, 670, 17], - "_nop_tc_5", - "_nop_tc_6", - "_nop_tc_7", - "_nop_tc_8", - ["add", 5, 5, 7, 670, 17], - ["jump", "num_done_143", 670, 17], - "num_err_142", - "_nop_ucfg_13", - "_nop_ucfg_14", - "_nop_ucfg_15", - "_nop_ucfg_16", - "_nop_ucfg_17", - "_nop_ucfg_18", - "_nop_ucfg_19", - "_nop_ucfg_20", - "_nop_ucfg_21", - "_nop_ucfg_22", - "_nop_ucfg_23", - "_nop_ucfg_24", - "num_done_143", - ["jump", "while_start_138", 670, 17], - "while_end_139", - ["access", 3, "goinvoke", 672, 12], - ["get", 4, 54, 1, 672, 5], - ["frame", 5, 4, 2, 672, 5], + ["setarg", 10, 1, 7, 698, 7], + ["setarg", 10, 2, 6, 698, 7], + ["setarg", 10, 3, 3, 698, 7], + ["setarg", 10, 4, 8, 698, 7], + ["invoke", 10, 7, 698, 7], + ["access", 7, 1, 699, 27], + ["add", 3, 3, 7, 699, 27], + ["access", 7, 1, 700, 17], + ["add", 5, 5, 7, 700, 17], + ["jump", "while_start_120", 700, 17], + "while_end_121", + ["access", 3, "goinvoke", 702, 12], + ["get", 4, 56, 1, 702, 5], + ["frame", 5, 4, 2, 702, 5], ["stone_text", 3], - ["setarg", 5, 1, 3, 672, 5], - ["setarg", 5, 2, 6, 672, 5], - ["invoke", 5, 3, 672, 5], - ["null", 3, 672, 5], - ["return", 3, 672, 5] + ["setarg", 5, 1, 3, 702, 5], + ["setarg", 5, 2, 6, 702, 5], + ["invoke", 5, 3, 702, 5], + ["null", 3, 702, 5], + ["return", 3, 702, 5] ], - "_write_types": [null, null, null, "int", "int", "int", null, null, "int", null, null, null, "text", null, null, null, null, null, null, "text", null, null, null, "text", "int", null, null, null, "bool", "text", null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "text", null, null, null, "null"], + "_write_types": [null, null, null, "int", "int", "int", null, null, "int", null, null, null, "text", null, null, null, null, null, null, "text", null, null, null, "text", "int", null, null, null, "bool", "text", null, null, null, null, "int", "int", "text", null, null, null, "null"], "name": "", "filename": ".cell/packages/core/mcode.cm", "nr_args": 2 @@ -3251,111 +2979,73 @@ "nr_slots": 12, "nr_close_slots": 0, "instructions": [ - ["get", 4, 44, 1, 676, 21], - ["frame", 5, 4, 0, 676, 21], - ["invoke", 5, 4, 676, 21], - ["move", 5, 4, 676, 21], - ["get", 5, 78, 1, 677, 5], - ["frame", 6, 5, 3, 677, 5], - ["setarg", 6, 1, 4, 677, 5], - ["setarg", 6, 2, 1, 677, 5], - ["setarg", 6, 3, 2, 677, 5], - ["invoke", 6, 5, 677, 5], - ["length", 5, 3, 678, 23], - ["move", 6, 5, 678, 23], - ["get", 7, 44, 1, 679, 22], - ["frame", 8, 7, 0, 679, 22], - ["invoke", 8, 7, 679, 22], - ["move", 8, 7, 679, 22], - ["access", 9, "goframe", 680, 12], - ["get", 10, 56, 1, 680, 5], - ["frame", 11, 10, 4, 680, 5], + ["get", 4, 46, 1, 706, 21], + ["frame", 5, 4, 0, 706, 21], + ["invoke", 5, 4, 706, 21], + ["move", 5, 4, 706, 21], + ["get", 5, 80, 1, 707, 5], + ["frame", 6, 5, 3, 707, 5], + ["setarg", 6, 1, 4, 707, 5], + ["setarg", 6, 2, 1, 707, 5], + ["setarg", 6, 3, 2, 707, 5], + ["invoke", 6, 5, 707, 5], + ["length", 5, 3, 708, 23], + ["move", 6, 5, 708, 23], + ["get", 7, 46, 1, 709, 22], + ["frame", 8, 7, 0, 709, 22], + ["invoke", 8, 7, 709, 22], + ["move", 8, 7, 709, 22], + ["access", 9, "goframe", 710, 12], + ["get", 10, 58, 1, 710, 5], + ["frame", 11, 10, 4, 710, 5], ["stone_text", 9], - ["setarg", 11, 1, 9, 680, 5], - ["setarg", 11, 2, 7, 680, 5], - ["setarg", 11, 3, 4, 680, 5], - ["setarg", 11, 4, 5, 680, 5], - ["invoke", 11, 4, 680, 5], - ["access", 4, "setarg", 681, 12], - ["access", 5, 0, 681, 34], - ["get", 9, 56, 1, 681, 5], - ["frame", 10, 9, 4, 681, 5], + ["setarg", 11, 1, 9, 710, 5], + ["setarg", 11, 2, 7, 710, 5], + ["setarg", 11, 3, 4, 710, 5], + ["setarg", 11, 4, 5, 710, 5], + ["invoke", 11, 4, 710, 5], + ["access", 4, "setarg", 711, 12], + ["access", 5, 0, 711, 34], + ["get", 9, 58, 1, 711, 5], + ["frame", 10, 9, 4, 711, 5], ["stone_text", 4], - ["setarg", 10, 1, 4, 681, 5], - ["setarg", 10, 2, 7, 681, 5], - ["setarg", 10, 3, 5, 681, 5], - ["setarg", 10, 4, 1, 681, 5], - ["invoke", 10, 4, 681, 5], - ["access", 4, 1, 682, 19], - ["access", 5, 0, 683, 14], - "while_start_144", - ["lt", 7, 5, 6, 684, 17], - ["jump_false", 7, "while_end_145", 684, 17], - ["access", 7, "setarg", 685, 14], - ["load_index", 9, 3, 5, 685, 50], - ["get", 10, 56, 1, 685, 7], - ["frame", 11, 10, 4, 685, 7], + ["setarg", 10, 1, 4, 711, 5], + ["setarg", 10, 2, 7, 711, 5], + ["setarg", 10, 3, 5, 711, 5], + ["setarg", 10, 4, 1, 711, 5], + ["invoke", 10, 4, 711, 5], + ["access", 4, 1, 712, 19], + ["access", 5, 0, 713, 14], + "while_start_122", + ["lt", 7, 5, 6, 714, 17], + ["jump_false", 7, "while_end_123", 714, 17], + ["access", 7, "setarg", 715, 14], + ["load_index", 9, 3, 5, 715, 50], + ["get", 10, 58, 1, 715, 7], + ["frame", 11, 10, 4, 715, 7], ["stone_text", 7], - ["setarg", 11, 1, 7, 685, 7], - ["setarg", 11, 2, 8, 685, 7], - ["setarg", 11, 3, 4, 685, 7], - ["setarg", 11, 4, 9, 685, 7], - ["invoke", 11, 7, 685, 7], - ["access", 7, 1, 686, 27], - "_nop_tc_1", - "_nop_tc_2", - "_nop_tc_3", - "_nop_tc_4", - ["add", 4, 4, 7, 686, 27], - ["jump", "num_done_147", 686, 27], - "num_err_146", - "_nop_ucfg_1", - "_nop_ucfg_2", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "num_done_147", - ["access", 7, 1, 687, 17], - "_nop_tc_5", - "_nop_tc_6", - "_nop_tc_7", - "_nop_tc_8", - ["add", 5, 5, 7, 687, 17], - ["jump", "num_done_149", 687, 17], - "num_err_148", - "_nop_ucfg_13", - "_nop_ucfg_14", - "_nop_ucfg_15", - "_nop_ucfg_16", - "_nop_ucfg_17", - "_nop_ucfg_18", - "_nop_ucfg_19", - "_nop_ucfg_20", - "_nop_ucfg_21", - "_nop_ucfg_22", - "_nop_ucfg_23", - "_nop_ucfg_24", - "num_done_149", - ["jump", "while_start_144", 687, 17], - "while_end_145", - ["access", 4, "goinvoke", 689, 12], - ["get", 5, 54, 1, 689, 5], - ["frame", 6, 5, 2, 689, 5], + ["setarg", 11, 1, 7, 715, 7], + ["setarg", 11, 2, 8, 715, 7], + ["setarg", 11, 3, 4, 715, 7], + ["setarg", 11, 4, 9, 715, 7], + ["invoke", 11, 7, 715, 7], + ["access", 7, 1, 716, 27], + ["add", 4, 4, 7, 716, 27], + ["access", 7, 1, 717, 17], + ["add", 5, 5, 7, 717, 17], + ["jump", "while_start_122", 717, 17], + "while_end_123", + ["access", 4, "goinvoke", 719, 12], + ["get", 5, 56, 1, 719, 5], + ["frame", 6, 5, 2, 719, 5], ["stone_text", 4], - ["setarg", 6, 1, 4, 689, 5], - ["setarg", 6, 2, 8, 689, 5], - ["invoke", 6, 4, 689, 5], - ["null", 4, 689, 5], - ["return", 4, 689, 5] + ["setarg", 6, 1, 4, 719, 5], + ["setarg", 6, 2, 8, 719, 5], + ["invoke", 6, 4, 719, 5], + ["null", 4, 719, 5], + ["return", 4, 719, 5] ], - "_write_types": [null, null, null, null, "int", "int", "int", null, null, null, null, null, null, null, null, "int", null, null, null, "text", null, null, null, "text", "int", null, null, null, "bool", "text", null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "text", null, null, null, "null"], + "_write_types": [null, null, null, null, "int", "int", "int", null, null, null, null, null, null, null, null, "int", null, null, null, "text", null, null, null, "text", "int", null, null, null, "bool", "text", null, null, null, null, "int", "int", "text", null, null, null, "null"], "name": "", "filename": ".cell/packages/core/mcode.cm", "nr_args": 3 @@ -3366,122 +3056,84 @@ "nr_slots": 10, "nr_close_slots": 0, "instructions": [ - ["null", 2, 694, 23], - ["eq", 3, 1, 2, 694, 23], - ["jump_false", 3, "if_else_150", 694, 23], - ["null", 2, 695, 14], - ["return", 2, 695, 14], + ["null", 2, 724, 23], + ["eq", 3, 1, 2, 724, 23], + ["jump_false", 3, "if_else_124", 724, 23], + ["null", 2, 725, 14], + ["return", 2, 725, 14], "_nop_ur_1", - "if_else_150", - "if_end_151", - ["access", 2, 0, 697, 14], - ["null", 3, 698, 16], - ["access", 4, 0, 699, 16], - ["null", 5, 700, 15], - "while_start_152", - ["length", 6, 1, 701, 24], - ["lt", 7, 2, 6, 701, 24], - ["jump_false", 7, "while_end_153", 701, 24], - ["load_index", 6, 1, 2, 702, 25], - ["move", 3, 6, 702, 25], - ["null", 7, 703, 19], - ["eq", 8, 6, 7, 703, 19], - ["move", 6, 8, 703, 19], - ["jump_true", 8, "or_end_156", 703, 19], - ["get", 7, 29, 1, 703, 34], - ["length", 8, 7, 703, 34], - ["access", 7, 64, 703, 56], - ["ge", 9, 8, 7, 703, 56], - ["move", 6, 9, 703, 56], - "or_end_156", - ["jump_false", 6, "if_else_154", 703, 56], - ["access", 6, 1, 704, 19], - "_nop_tc_1", - "_nop_tc_2", - "_nop_tc_3", - "_nop_tc_4", - ["add", 2, 2, 6, 704, 19], - ["jump", "num_done_158", 704, 19], - "num_err_157", + "if_else_124", + "if_end_125", + ["access", 2, 0, 727, 14], + ["null", 3, 728, 16], + ["access", 4, 0, 729, 16], + ["null", 5, 730, 15], + "while_start_126", + ["length", 6, 1, 731, 24], + ["lt", 7, 2, 6, 731, 24], + ["jump_false", 7, "while_end_127", 731, 24], + ["load_index", 6, 1, 2, 732, 25], + ["move", 3, 6, 732, 25], + ["null", 7, 733, 19], + ["eq", 8, 6, 7, 733, 19], + ["move", 6, 8, 733, 19], + ["jump_true", 8, "or_end_130", 733, 19], + ["get", 7, 29, 1, 733, 34], + ["length", 8, 7, 733, 34], + ["access", 7, 64, 733, 56], + ["ge", 9, 8, 7, 733, 56], + ["move", 6, 9, 733, 56], + "or_end_130", + ["jump_false", 6, "if_else_128", 733, 56], + ["access", 6, 1, 734, 19], + ["add", 2, 2, 6, 734, 19], + ["jump", "while_start_126", 735, 9], "_nop_ucfg_1", + "if_else_128", + "if_end_129", + ["get", 6, 49, 1, 737, 11], + ["frame", 7, 6, 1, 737, 11], + ["setarg", 7, 1, 3, 737, 11], + ["invoke", 7, 6, 737, 11], + ["access", 7, 0, 737, 35], + ["ge", 8, 6, 7, 737, 35], + ["jump_false", 8, "if_else_131", 737, 35], + ["access", 6, 1, 738, 19], + ["add", 2, 2, 6, 738, 19], + ["jump", "while_start_126", 739, 9], "_nop_ucfg_2", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "num_done_158", - ["jump", "while_start_152", 705, 9], - "_nop_ucfg_13", - "if_else_154", - "if_end_155", - ["get", 6, 47, 1, 707, 11], - ["frame", 7, 6, 1, 707, 11], - ["setarg", 7, 1, 3, 707, 11], - ["invoke", 7, 6, 707, 11], - ["access", 7, 0, 707, 35], - ["ge", 8, 6, 7, 707, 35], - ["jump_false", 8, "if_else_159", 707, 35], - ["access", 6, 1, 708, 19], - "_nop_tc_5", - "_nop_tc_6", - "_nop_tc_7", - "_nop_tc_8", - ["add", 2, 2, 6, 708, 19], - ["jump", "num_done_162", 708, 19], - "num_err_161", - "_nop_ucfg_14", - "_nop_ucfg_15", - "_nop_ucfg_16", - "_nop_ucfg_17", - "_nop_ucfg_18", - "_nop_ucfg_19", - "_nop_ucfg_20", - "_nop_ucfg_21", - "_nop_ucfg_22", - "_nop_ucfg_23", - "_nop_ucfg_24", - "_nop_ucfg_25", - "num_done_162", - ["jump", "while_start_152", 709, 9], - "_nop_ucfg_26", - "if_else_159", - "if_end_160", - ["get", 6, 44, 1, 711, 14], - ["frame", 7, 6, 0, 711, 14], - ["invoke", 7, 6, 711, 14], - ["move", 4, 6, 711, 14], + "if_else_131", + "if_end_132", + ["get", 6, 46, 1, 741, 14], + ["frame", 7, 6, 0, 741, 14], + ["invoke", 7, 6, 741, 14], + ["move", 4, 6, 741, 14], ["record", 7, 3], - ["access", 8, "name", 712, 20], - ["store_field", 7, 8, "kind", 712, 20], - ["store_field", 7, 3, "name", 712, 34], - ["access", 8, "intrinsic", 712, 46], - ["store_field", 7, 8, "make", 712, 46], - ["move", 5, 7, 712, 46], - ["access", 8, "access", 713, 18], - ["array", 9, 3, 713, 34], + ["access", 8, "name", 742, 20], + ["store_field", 7, 8, "kind", 742, 20], + ["store_field", 7, 3, "name", 742, 34], + ["access", 8, "intrinsic", 742, 46], + ["store_field", 7, 8, "make", 742, 46], + ["move", 5, 7, 742, 46], + ["access", 8, "access", 743, 18], + ["array", 9, 3, 743, 34], ["stone_text", 8], - ["push", 9, 8, 713, 34], - ["push", 9, 6, 713, 34], - ["push", 9, 7, 713, 34], - ["get", 7, 51, 1, 713, 7], - ["frame", 8, 7, 1, 713, 7], - ["setarg", 8, 1, 9, 713, 7], - ["invoke", 8, 7, 713, 7], - ["get", 7, 29, 1, 714, 12], + ["push", 9, 8, 743, 34], + ["push", 9, 6, 743, 34], + ["push", 9, 7, 743, 34], + ["get", 7, 53, 1, 743, 7], + ["frame", 8, 7, 1, 743, 7], + ["setarg", 8, 1, 9, 743, 7], + ["invoke", 8, 7, 743, 7], + ["get", 7, 29, 1, 744, 12], ["record", 8, 2], - ["store_field", 8, 3, "name", 714, 38], - ["store_field", 8, 6, "slot", 714, 50], - ["is_array", 6, 7, 714, 50], - ["jump_false", 6, "push_err_163", 714, 50], - ["push", 7, 8, 714, 50], - ["jump", "push_done_164", 714, 50], - "push_err_163", + ["store_field", 8, 3, "name", 744, 38], + ["store_field", 8, 6, "slot", 744, 50], + ["is_array", 6, 7, 744, 50], + ["jump_false", 6, "push_err_133", 744, 50], + ["push", 7, 8, 744, 50], + ["jump", "push_done_134", 744, 50], + "push_err_133", [ "access", 6, @@ -3490,50 +3142,31 @@ "kind": "name", "make": "intrinsic" }, - 714, + 744, 50 ], - ["access", 7, "error", 714, 50], - ["access", 8, "cannot push: target must be an array", 714, 50], - ["array", 9, 0, 714, 50], + ["access", 7, "error", 744, 50], + ["access", 8, "cannot push: target must be an array", 744, 50], + ["array", 9, 0, 744, 50], ["stone_text", 8], - ["push", 9, 8, 714, 50], - ["frame", 8, 6, 2, 714, 50], - ["null", 6, 714, 50], - ["setarg", 8, 0, 6, 714, 50], + ["push", 9, 8, 744, 50], + ["frame", 8, 6, 2, 744, 50], + ["null", 6, 744, 50], + ["setarg", 8, 0, 6, 744, 50], ["stone_text", 7], - ["setarg", 8, 1, 7, 714, 50], - ["setarg", 8, 2, 9, 714, 50], - ["invoke", 8, 6, 714, 50], - ["disrupt", 714, 50], - "push_done_164", - ["access", 6, 1, 715, 17], - "_nop_tc_9", - "_nop_tc_10", - "_nop_tc_11", - "_nop_tc_12", - ["add", 2, 2, 6, 715, 17], - ["jump", "num_done_166", 715, 17], - "num_err_165", - "_nop_ucfg_27", - "_nop_ucfg_28", - "_nop_ucfg_29", - "_nop_ucfg_30", - "_nop_ucfg_31", - "_nop_ucfg_32", - "_nop_ucfg_33", - "_nop_ucfg_34", - "_nop_ucfg_35", - "_nop_ucfg_36", - "_nop_ucfg_37", - "_nop_ucfg_38", - "num_done_166", - ["jump", "while_start_152", 715, 17], - "while_end_153", - ["null", 2, 715, 17], - ["return", 2, 715, 17] + ["setarg", 8, 1, 7, 744, 50], + ["setarg", 8, 2, 9, 744, 50], + ["invoke", 8, 6, 744, 50], + ["disrupt", 744, 50], + "push_done_134", + ["access", 6, 1, 745, 17], + ["add", 2, 2, 6, 745, 17], + ["jump", "while_start_126", 745, 17], + "while_end_127", + ["null", 2, 745, 17], + ["return", 2, 745, 17] ], - "_write_types": [null, null, "int", null, null, null, "null", "bool", "null", "int", "bool", null, "null", "bool", "bool", null, "int", "int", "bool", "int", null, null, null, null, null, null, null, null, null, null, null, null, "int", "bool", "int", null, null, null, null, null, null, null, null, null, null, null, null, "record", "text", "text", "text", "array", null, null, null, null, "record", "bool", null, "text", "text", "array", null, null, "null", "int", null, null, null, null, null, null, null, null, null, "null"], + "_write_types": [null, null, "int", null, null, null, "null", "bool", "null", "int", "bool", null, "null", "bool", "bool", null, "int", "int", "bool", "int", null, null, null, "int", "bool", "int", null, null, null, "record", "text", "text", "text", "array", null, null, null, null, "record", "bool", null, "text", "text", "array", null, null, "null", "int", "null"], "name": "", "filename": ".cell/packages/core/mcode.cm", "nr_args": 1 @@ -3544,29 +3177,29 @@ "nr_slots": 11, "nr_close_slots": 0, "instructions": [ - ["get", 3, 44, 1, 722, 16], - ["frame", 4, 3, 0, 722, 16], - ["invoke", 4, 3, 722, 16], - ["move", 4, 3, 722, 16], - ["get", 3, 44, 1, 723, 13], - ["frame", 5, 3, 0, 723, 13], - ["invoke", 5, 3, 723, 13], - ["move", 5, 3, 723, 13], - ["access", 3, "_arg_bad", 724, 30], - ["is_text", 6, 1, 724, 30], - ["jump_false", 6, "add_cn_168", 724, 30], + ["get", 3, 46, 1, 752, 16], + ["frame", 4, 3, 0, 752, 16], + ["invoke", 4, 3, 752, 16], + ["move", 4, 3, 752, 16], + ["get", 3, 46, 1, 753, 13], + ["frame", 5, 3, 0, 753, 13], + ["invoke", 5, 3, 753, 13], + ["move", 5, 3, 753, 13], + ["access", 3, "_arg_bad", 754, 30], + ["is_text", 6, 1, 754, 30], + ["jump_false", 6, "add_cn_136", 754, 30], "_nop_tc_1", "_nop_tc_2", - ["concat", 7, 1, 3, 724, 30], - ["jump", "add_done_167", 724, 30], - "add_cn_168", - ["is_num", 6, 1, 724, 30], - ["jump_false", 6, "add_err_169", 724, 30], + ["concat", 7, 1, 3, 754, 30], + ["jump", "add_done_135", 754, 30], + "add_cn_136", + ["is_num", 6, 1, 754, 30], + ["jump_false", 6, "add_err_137", 754, 30], "_nop_tc_3", "_nop_dj_1", "_nop_ucfg_1", "_nop_ucfg_2", - "add_err_169", + "add_err_137", [ "access", 3, @@ -3575,44 +3208,44 @@ "kind": "name", "make": "intrinsic" }, - 724, + 754, 30 ], - ["access", 6, "error", 724, 30], - ["access", 8, "cannot apply '+': operands must both be text or both be numbers", 724, 30], - ["array", 9, 0, 724, 30], + ["access", 6, "error", 754, 30], + ["access", 8, "cannot apply '+': operands must both be text or both be numbers", 754, 30], + ["array", 9, 0, 754, 30], ["stone_text", 8], - ["push", 9, 8, 724, 30], - ["frame", 8, 3, 2, 724, 30], - ["null", 3, 724, 30], - ["setarg", 8, 0, 3, 724, 30], + ["push", 9, 8, 754, 30], + ["frame", 8, 3, 2, 754, 30], + ["null", 3, 754, 30], + ["setarg", 8, 0, 3, 754, 30], ["stone_text", 6], - ["setarg", 8, 1, 6, 724, 30], - ["setarg", 8, 2, 9, 724, 30], - ["invoke", 8, 3, 724, 30], - ["disrupt", 724, 30], - "add_done_167", - ["get", 3, 49, 1, 724, 15], - ["frame", 6, 3, 1, 724, 15], + ["setarg", 8, 1, 6, 754, 30], + ["setarg", 8, 2, 9, 754, 30], + ["invoke", 8, 3, 754, 30], + ["disrupt", 754, 30], + "add_done_135", + ["get", 3, 51, 1, 754, 15], + ["frame", 6, 3, 1, 754, 15], ["stone_text", 7], - ["setarg", 6, 1, 7, 724, 15], - ["invoke", 6, 3, 724, 15], - ["move", 6, 3, 724, 15], - ["access", 3, "_arg_done", 725, 31], - ["is_text", 7, 1, 725, 31], - ["jump_false", 7, "add_cn_171", 725, 31], + ["setarg", 6, 1, 7, 754, 15], + ["invoke", 6, 3, 754, 15], + ["move", 6, 3, 754, 15], + ["access", 3, "_arg_done", 755, 31], + ["is_text", 7, 1, 755, 31], + ["jump_false", 7, "add_cn_139", 755, 31], "_nop_tc_4", "_nop_tc_5", - ["concat", 8, 1, 3, 725, 31], - ["jump", "add_done_170", 725, 31], - "add_cn_171", - ["is_num", 7, 1, 725, 31], - ["jump_false", 7, "add_err_172", 725, 31], + ["concat", 8, 1, 3, 755, 31], + ["jump", "add_done_138", 755, 31], + "add_cn_139", + ["is_num", 7, 1, 755, 31], + ["jump_false", 7, "add_err_140", 755, 31], "_nop_tc_6", "_nop_dj_2", "_nop_ucfg_3", "_nop_ucfg_4", - "add_err_172", + "add_err_140", [ "access", 3, @@ -3621,71 +3254,71 @@ "kind": "name", "make": "intrinsic" }, - 725, + 755, 31 ], - ["access", 7, "error", 725, 31], - ["access", 9, "cannot apply '+': operands must both be text or both be numbers", 725, 31], - ["array", 10, 0, 725, 31], + ["access", 7, "error", 755, 31], + ["access", 9, "cannot apply '+': operands must both be text or both be numbers", 755, 31], + ["array", 10, 0, 755, 31], ["stone_text", 9], - ["push", 10, 9, 725, 31], - ["frame", 9, 3, 2, 725, 31], - ["null", 3, 725, 31], - ["setarg", 9, 0, 3, 725, 31], + ["push", 10, 9, 755, 31], + ["frame", 9, 3, 2, 755, 31], + ["null", 3, 755, 31], + ["setarg", 9, 0, 3, 755, 31], ["stone_text", 7], - ["setarg", 9, 1, 7, 725, 31], - ["setarg", 9, 2, 10, 725, 31], - ["invoke", 9, 3, 725, 31], - ["disrupt", 725, 31], - "add_done_170", - ["get", 3, 49, 1, 725, 16], - ["frame", 7, 3, 1, 725, 16], + ["setarg", 9, 1, 7, 755, 31], + ["setarg", 9, 2, 10, 755, 31], + ["invoke", 9, 3, 755, 31], + ["disrupt", 755, 31], + "add_done_138", + ["get", 3, 51, 1, 755, 16], + ["frame", 7, 3, 1, 755, 16], ["stone_text", 8], - ["setarg", 7, 1, 8, 725, 16], - ["invoke", 7, 3, 725, 16], - ["move", 7, 3, 725, 16], - ["access", 7, "is_num", 726, 12], - ["get", 8, 55, 1, 726, 5], - ["frame", 9, 8, 3, 726, 5], + ["setarg", 7, 1, 8, 755, 16], + ["invoke", 7, 3, 755, 16], + ["move", 7, 3, 755, 16], + ["access", 7, "is_num", 756, 12], + ["get", 8, 57, 1, 756, 5], + ["frame", 9, 8, 3, 756, 5], ["stone_text", 7], - ["setarg", 9, 1, 7, 726, 5], - ["setarg", 9, 2, 5, 726, 5], - ["setarg", 9, 3, 2, 726, 5], - ["invoke", 9, 7, 726, 5], - ["access", 7, "jump_false", 727, 20], - ["get", 8, 64, 1, 727, 5], - ["frame", 9, 8, 3, 727, 5], + ["setarg", 9, 1, 7, 756, 5], + ["setarg", 9, 2, 5, 756, 5], + ["setarg", 9, 3, 2, 756, 5], + ["invoke", 9, 7, 756, 5], + ["access", 7, "jump_false", 757, 20], + ["get", 8, 66, 1, 757, 5], + ["frame", 9, 8, 3, 757, 5], ["stone_text", 7], - ["setarg", 9, 1, 7, 727, 5], - ["setarg", 9, 2, 5, 727, 5], - ["setarg", 9, 3, 6, 727, 5], - ["invoke", 9, 5, 727, 5], - ["get", 5, 55, 1, 728, 5], - ["frame", 7, 5, 3, 728, 5], - ["setarg", 7, 1, 1, 728, 5], - ["setarg", 7, 2, 4, 728, 5], - ["setarg", 7, 3, 2, 728, 5], - ["invoke", 7, 5, 728, 5], - ["get", 5, 63, 1, 729, 5], - ["frame", 7, 5, 1, 729, 5], - ["setarg", 7, 1, 3, 729, 5], - ["invoke", 7, 5, 729, 5], - ["get", 5, 52, 1, 730, 5], - ["frame", 7, 5, 1, 730, 5], - ["setarg", 7, 1, 6, 730, 5], - ["invoke", 7, 5, 730, 5], - ["access", 5, "null", 731, 12], - ["get", 6, 54, 1, 731, 5], - ["frame", 7, 6, 2, 731, 5], + ["setarg", 9, 1, 7, 757, 5], + ["setarg", 9, 2, 5, 757, 5], + ["setarg", 9, 3, 6, 757, 5], + ["invoke", 9, 5, 757, 5], + ["get", 5, 57, 1, 758, 5], + ["frame", 7, 5, 3, 758, 5], + ["setarg", 7, 1, 1, 758, 5], + ["setarg", 7, 2, 4, 758, 5], + ["setarg", 7, 3, 2, 758, 5], + ["invoke", 7, 5, 758, 5], + ["get", 5, 65, 1, 759, 5], + ["frame", 7, 5, 1, 759, 5], + ["setarg", 7, 1, 3, 759, 5], + ["invoke", 7, 5, 759, 5], + ["get", 5, 54, 1, 760, 5], + ["frame", 7, 5, 1, 760, 5], + ["setarg", 7, 1, 6, 760, 5], + ["invoke", 7, 5, 760, 5], + ["access", 5, "null", 761, 12], + ["get", 6, 56, 1, 761, 5], + ["frame", 7, 6, 2, 761, 5], ["stone_text", 5], - ["setarg", 7, 1, 5, 731, 5], - ["setarg", 7, 2, 4, 731, 5], - ["invoke", 7, 5, 731, 5], - ["get", 5, 52, 1, 732, 5], - ["frame", 6, 5, 1, 732, 5], - ["setarg", 6, 1, 3, 732, 5], - ["invoke", 6, 3, 732, 5], - ["return", 4, 733, 12], + ["setarg", 7, 1, 5, 761, 5], + ["setarg", 7, 2, 4, 761, 5], + ["invoke", 7, 5, 761, 5], + ["get", 5, 54, 1, 762, 5], + ["frame", 6, 5, 1, 762, 5], + ["setarg", 6, 1, 3, 762, 5], + ["invoke", 6, 3, 762, 5], + ["return", 4, 763, 12], "_nop_ur_1", "_nop_ur_2" ], @@ -3700,33 +3333,33 @@ "nr_slots": 13, "nr_close_slots": 0, "instructions": [ - ["get", 4, 44, 1, 737, 16], - ["frame", 5, 4, 0, 737, 16], - ["invoke", 5, 4, 737, 16], - ["move", 5, 4, 737, 16], - ["get", 4, 44, 1, 738, 14], - ["frame", 6, 4, 0, 738, 14], - ["invoke", 6, 4, 738, 14], - ["move", 6, 4, 738, 14], - ["get", 4, 44, 1, 739, 14], - ["frame", 7, 4, 0, 739, 14], - ["invoke", 7, 4, 739, 14], - ["move", 7, 4, 739, 14], - ["access", 4, "_arg_bad", 740, 30], - ["is_text", 8, 1, 740, 30], - ["jump_false", 8, "add_cn_174", 740, 30], + ["get", 4, 46, 1, 767, 16], + ["frame", 5, 4, 0, 767, 16], + ["invoke", 5, 4, 767, 16], + ["move", 5, 4, 767, 16], + ["get", 4, 46, 1, 768, 14], + ["frame", 6, 4, 0, 768, 14], + ["invoke", 6, 4, 768, 14], + ["move", 6, 4, 768, 14], + ["get", 4, 46, 1, 769, 14], + ["frame", 7, 4, 0, 769, 14], + ["invoke", 7, 4, 769, 14], + ["move", 7, 4, 769, 14], + ["access", 4, "_arg_bad", 770, 30], + ["is_text", 8, 1, 770, 30], + ["jump_false", 8, "add_cn_142", 770, 30], "_nop_tc_1", "_nop_tc_2", - ["concat", 9, 1, 4, 740, 30], - ["jump", "add_done_173", 740, 30], - "add_cn_174", - ["is_num", 8, 1, 740, 30], - ["jump_false", 8, "add_err_175", 740, 30], + ["concat", 9, 1, 4, 770, 30], + ["jump", "add_done_141", 770, 30], + "add_cn_142", + ["is_num", 8, 1, 770, 30], + ["jump_false", 8, "add_err_143", 770, 30], "_nop_tc_3", "_nop_dj_1", "_nop_ucfg_1", "_nop_ucfg_2", - "add_err_175", + "add_err_143", [ "access", 4, @@ -3735,44 +3368,44 @@ "kind": "name", "make": "intrinsic" }, - 740, + 770, 30 ], - ["access", 8, "error", 740, 30], - ["access", 10, "cannot apply '+': operands must both be text or both be numbers", 740, 30], - ["array", 11, 0, 740, 30], + ["access", 8, "error", 770, 30], + ["access", 10, "cannot apply '+': operands must both be text or both be numbers", 770, 30], + ["array", 11, 0, 770, 30], ["stone_text", 10], - ["push", 11, 10, 740, 30], - ["frame", 10, 4, 2, 740, 30], - ["null", 4, 740, 30], - ["setarg", 10, 0, 4, 740, 30], + ["push", 11, 10, 770, 30], + ["frame", 10, 4, 2, 770, 30], + ["null", 4, 770, 30], + ["setarg", 10, 0, 4, 770, 30], ["stone_text", 8], - ["setarg", 10, 1, 8, 740, 30], - ["setarg", 10, 2, 11, 740, 30], - ["invoke", 10, 4, 740, 30], - ["disrupt", 740, 30], - "add_done_173", - ["get", 4, 49, 1, 740, 15], - ["frame", 8, 4, 1, 740, 15], + ["setarg", 10, 1, 8, 770, 30], + ["setarg", 10, 2, 11, 770, 30], + ["invoke", 10, 4, 770, 30], + ["disrupt", 770, 30], + "add_done_141", + ["get", 4, 51, 1, 770, 15], + ["frame", 8, 4, 1, 770, 15], ["stone_text", 9], - ["setarg", 8, 1, 9, 740, 15], - ["invoke", 8, 4, 740, 15], - ["move", 8, 4, 740, 15], - ["access", 4, "_arg_done", 741, 31], - ["is_text", 9, 1, 741, 31], - ["jump_false", 9, "add_cn_177", 741, 31], + ["setarg", 8, 1, 9, 770, 15], + ["invoke", 8, 4, 770, 15], + ["move", 8, 4, 770, 15], + ["access", 4, "_arg_done", 771, 31], + ["is_text", 9, 1, 771, 31], + ["jump_false", 9, "add_cn_145", 771, 31], "_nop_tc_4", "_nop_tc_5", - ["concat", 10, 1, 4, 741, 31], - ["jump", "add_done_176", 741, 31], - "add_cn_177", - ["is_num", 9, 1, 741, 31], - ["jump_false", 9, "add_err_178", 741, 31], + ["concat", 10, 1, 4, 771, 31], + ["jump", "add_done_144", 771, 31], + "add_cn_145", + ["is_num", 9, 1, 771, 31], + ["jump_false", 9, "add_err_146", 771, 31], "_nop_tc_6", "_nop_dj_2", "_nop_ucfg_3", "_nop_ucfg_4", - "add_err_178", + "add_err_146", [ "access", 4, @@ -3781,88 +3414,88 @@ "kind": "name", "make": "intrinsic" }, - 741, + 771, 31 ], - ["access", 9, "error", 741, 31], - ["access", 11, "cannot apply '+': operands must both be text or both be numbers", 741, 31], - ["array", 12, 0, 741, 31], + ["access", 9, "error", 771, 31], + ["access", 11, "cannot apply '+': operands must both be text or both be numbers", 771, 31], + ["array", 12, 0, 771, 31], ["stone_text", 11], - ["push", 12, 11, 741, 31], - ["frame", 11, 4, 2, 741, 31], - ["null", 4, 741, 31], - ["setarg", 11, 0, 4, 741, 31], + ["push", 12, 11, 771, 31], + ["frame", 11, 4, 2, 771, 31], + ["null", 4, 771, 31], + ["setarg", 11, 0, 4, 771, 31], ["stone_text", 9], - ["setarg", 11, 1, 9, 741, 31], - ["setarg", 11, 2, 12, 741, 31], - ["invoke", 11, 4, 741, 31], - ["disrupt", 741, 31], - "add_done_176", - ["get", 4, 49, 1, 741, 16], - ["frame", 9, 4, 1, 741, 16], + ["setarg", 11, 1, 9, 771, 31], + ["setarg", 11, 2, 12, 771, 31], + ["invoke", 11, 4, 771, 31], + ["disrupt", 771, 31], + "add_done_144", + ["get", 4, 51, 1, 771, 16], + ["frame", 9, 4, 1, 771, 16], ["stone_text", 10], - ["setarg", 9, 1, 10, 741, 16], - ["invoke", 9, 4, 741, 16], - ["move", 9, 4, 741, 16], - ["access", 9, "is_num", 742, 12], - ["get", 10, 55, 1, 742, 5], - ["frame", 11, 10, 3, 742, 5], + ["setarg", 9, 1, 10, 771, 16], + ["invoke", 9, 4, 771, 16], + ["move", 9, 4, 771, 16], + ["access", 9, "is_num", 772, 12], + ["get", 10, 57, 1, 772, 5], + ["frame", 11, 10, 3, 772, 5], ["stone_text", 9], - ["setarg", 11, 1, 9, 742, 5], - ["setarg", 11, 2, 6, 742, 5], - ["setarg", 11, 3, 2, 742, 5], - ["invoke", 11, 9, 742, 5], - ["access", 9, "jump_false", 743, 20], - ["get", 10, 64, 1, 743, 5], - ["frame", 11, 10, 3, 743, 5], + ["setarg", 11, 1, 9, 772, 5], + ["setarg", 11, 2, 6, 772, 5], + ["setarg", 11, 3, 2, 772, 5], + ["invoke", 11, 9, 772, 5], + ["access", 9, "jump_false", 773, 20], + ["get", 10, 66, 1, 773, 5], + ["frame", 11, 10, 3, 773, 5], ["stone_text", 9], - ["setarg", 11, 1, 9, 743, 5], - ["setarg", 11, 2, 6, 743, 5], - ["setarg", 11, 3, 8, 743, 5], - ["invoke", 11, 6, 743, 5], - ["access", 6, "is_num", 744, 12], - ["get", 9, 55, 1, 744, 5], - ["frame", 10, 9, 3, 744, 5], + ["setarg", 11, 1, 9, 773, 5], + ["setarg", 11, 2, 6, 773, 5], + ["setarg", 11, 3, 8, 773, 5], + ["invoke", 11, 6, 773, 5], + ["access", 6, "is_num", 774, 12], + ["get", 9, 57, 1, 774, 5], + ["frame", 10, 9, 3, 774, 5], ["stone_text", 6], - ["setarg", 10, 1, 6, 744, 5], - ["setarg", 10, 2, 7, 744, 5], - ["setarg", 10, 3, 3, 744, 5], - ["invoke", 10, 6, 744, 5], - ["access", 6, "jump_false", 745, 20], - ["get", 9, 64, 1, 745, 5], - ["frame", 10, 9, 3, 745, 5], + ["setarg", 10, 1, 6, 774, 5], + ["setarg", 10, 2, 7, 774, 5], + ["setarg", 10, 3, 3, 774, 5], + ["invoke", 10, 6, 774, 5], + ["access", 6, "jump_false", 775, 20], + ["get", 9, 66, 1, 775, 5], + ["frame", 10, 9, 3, 775, 5], ["stone_text", 6], - ["setarg", 10, 1, 6, 745, 5], - ["setarg", 10, 2, 7, 745, 5], - ["setarg", 10, 3, 8, 745, 5], - ["invoke", 10, 6, 745, 5], - ["get", 6, 56, 1, 746, 5], - ["frame", 7, 6, 4, 746, 5], - ["setarg", 7, 1, 1, 746, 5], - ["setarg", 7, 2, 5, 746, 5], - ["setarg", 7, 3, 2, 746, 5], - ["setarg", 7, 4, 3, 746, 5], - ["invoke", 7, 6, 746, 5], - ["get", 6, 63, 1, 747, 5], - ["frame", 7, 6, 1, 747, 5], - ["setarg", 7, 1, 4, 747, 5], - ["invoke", 7, 6, 747, 5], - ["get", 6, 52, 1, 748, 5], - ["frame", 7, 6, 1, 748, 5], - ["setarg", 7, 1, 8, 748, 5], - ["invoke", 7, 6, 748, 5], - ["access", 6, "null", 749, 12], - ["get", 7, 54, 1, 749, 5], - ["frame", 8, 7, 2, 749, 5], + ["setarg", 10, 1, 6, 775, 5], + ["setarg", 10, 2, 7, 775, 5], + ["setarg", 10, 3, 8, 775, 5], + ["invoke", 10, 6, 775, 5], + ["get", 6, 58, 1, 776, 5], + ["frame", 7, 6, 4, 776, 5], + ["setarg", 7, 1, 1, 776, 5], + ["setarg", 7, 2, 5, 776, 5], + ["setarg", 7, 3, 2, 776, 5], + ["setarg", 7, 4, 3, 776, 5], + ["invoke", 7, 6, 776, 5], + ["get", 6, 65, 1, 777, 5], + ["frame", 7, 6, 1, 777, 5], + ["setarg", 7, 1, 4, 777, 5], + ["invoke", 7, 6, 777, 5], + ["get", 6, 54, 1, 778, 5], + ["frame", 7, 6, 1, 778, 5], + ["setarg", 7, 1, 8, 778, 5], + ["invoke", 7, 6, 778, 5], + ["access", 6, "null", 779, 12], + ["get", 7, 56, 1, 779, 5], + ["frame", 8, 7, 2, 779, 5], ["stone_text", 6], - ["setarg", 8, 1, 6, 749, 5], - ["setarg", 8, 2, 5, 749, 5], - ["invoke", 8, 6, 749, 5], - ["get", 6, 52, 1, 750, 5], - ["frame", 7, 6, 1, 750, 5], - ["setarg", 7, 1, 4, 750, 5], - ["invoke", 7, 4, 750, 5], - ["return", 5, 751, 12], + ["setarg", 8, 1, 6, 779, 5], + ["setarg", 8, 2, 5, 779, 5], + ["invoke", 8, 6, 779, 5], + ["get", 6, 54, 1, 780, 5], + ["frame", 7, 6, 1, 780, 5], + ["setarg", 7, 1, 4, 780, 5], + ["invoke", 7, 4, 780, 5], + ["return", 5, 781, 12], "_nop_ur_1", "_nop_ur_2" ], @@ -3877,29 +3510,29 @@ "nr_slots": 12, "nr_close_slots": 0, "instructions": [ - ["get", 4, 44, 1, 755, 16], - ["frame", 5, 4, 0, 755, 16], - ["invoke", 5, 4, 755, 16], - ["move", 5, 4, 755, 16], - ["get", 4, 44, 1, 756, 13], - ["frame", 6, 4, 0, 756, 13], - ["invoke", 6, 4, 756, 13], - ["move", 6, 4, 756, 13], - ["access", 4, "_arg_bad", 757, 30], - ["is_text", 7, 1, 757, 30], - ["jump_false", 7, "add_cn_180", 757, 30], + ["get", 4, 46, 1, 785, 16], + ["frame", 5, 4, 0, 785, 16], + ["invoke", 5, 4, 785, 16], + ["move", 5, 4, 785, 16], + ["get", 4, 46, 1, 786, 13], + ["frame", 6, 4, 0, 786, 13], + ["invoke", 6, 4, 786, 13], + ["move", 6, 4, 786, 13], + ["access", 4, "_arg_bad", 787, 30], + ["is_text", 7, 1, 787, 30], + ["jump_false", 7, "add_cn_148", 787, 30], "_nop_tc_1", "_nop_tc_2", - ["concat", 8, 1, 4, 757, 30], - ["jump", "add_done_179", 757, 30], - "add_cn_180", - ["is_num", 7, 1, 757, 30], - ["jump_false", 7, "add_err_181", 757, 30], + ["concat", 8, 1, 4, 787, 30], + ["jump", "add_done_147", 787, 30], + "add_cn_148", + ["is_num", 7, 1, 787, 30], + ["jump_false", 7, "add_err_149", 787, 30], "_nop_tc_3", "_nop_dj_1", "_nop_ucfg_1", "_nop_ucfg_2", - "add_err_181", + "add_err_149", [ "access", 4, @@ -3908,44 +3541,44 @@ "kind": "name", "make": "intrinsic" }, - 757, + 787, 30 ], - ["access", 7, "error", 757, 30], - ["access", 9, "cannot apply '+': operands must both be text or both be numbers", 757, 30], - ["array", 10, 0, 757, 30], + ["access", 7, "error", 787, 30], + ["access", 9, "cannot apply '+': operands must both be text or both be numbers", 787, 30], + ["array", 10, 0, 787, 30], ["stone_text", 9], - ["push", 10, 9, 757, 30], - ["frame", 9, 4, 2, 757, 30], - ["null", 4, 757, 30], - ["setarg", 9, 0, 4, 757, 30], + ["push", 10, 9, 787, 30], + ["frame", 9, 4, 2, 787, 30], + ["null", 4, 787, 30], + ["setarg", 9, 0, 4, 787, 30], ["stone_text", 7], - ["setarg", 9, 1, 7, 757, 30], - ["setarg", 9, 2, 10, 757, 30], - ["invoke", 9, 4, 757, 30], - ["disrupt", 757, 30], - "add_done_179", - ["get", 4, 49, 1, 757, 15], - ["frame", 7, 4, 1, 757, 15], + ["setarg", 9, 1, 7, 787, 30], + ["setarg", 9, 2, 10, 787, 30], + ["invoke", 9, 4, 787, 30], + ["disrupt", 787, 30], + "add_done_147", + ["get", 4, 51, 1, 787, 15], + ["frame", 7, 4, 1, 787, 15], ["stone_text", 8], - ["setarg", 7, 1, 8, 757, 15], - ["invoke", 7, 4, 757, 15], - ["move", 7, 4, 757, 15], - ["access", 4, "_arg_done", 758, 31], - ["is_text", 8, 1, 758, 31], - ["jump_false", 8, "add_cn_183", 758, 31], + ["setarg", 7, 1, 8, 787, 15], + ["invoke", 7, 4, 787, 15], + ["move", 7, 4, 787, 15], + ["access", 4, "_arg_done", 788, 31], + ["is_text", 8, 1, 788, 31], + ["jump_false", 8, "add_cn_151", 788, 31], "_nop_tc_4", "_nop_tc_5", - ["concat", 9, 1, 4, 758, 31], - ["jump", "add_done_182", 758, 31], - "add_cn_183", - ["is_num", 8, 1, 758, 31], - ["jump_false", 8, "add_err_184", 758, 31], + ["concat", 9, 1, 4, 788, 31], + ["jump", "add_done_150", 788, 31], + "add_cn_151", + ["is_num", 8, 1, 788, 31], + ["jump_false", 8, "add_err_152", 788, 31], "_nop_tc_6", "_nop_dj_2", "_nop_ucfg_3", "_nop_ucfg_4", - "add_err_184", + "add_err_152", [ "access", 4, @@ -3954,72 +3587,72 @@ "kind": "name", "make": "intrinsic" }, - 758, + 788, 31 ], - ["access", 8, "error", 758, 31], - ["access", 10, "cannot apply '+': operands must both be text or both be numbers", 758, 31], - ["array", 11, 0, 758, 31], + ["access", 8, "error", 788, 31], + ["access", 10, "cannot apply '+': operands must both be text or both be numbers", 788, 31], + ["array", 11, 0, 788, 31], ["stone_text", 10], - ["push", 11, 10, 758, 31], - ["frame", 10, 4, 2, 758, 31], - ["null", 4, 758, 31], - ["setarg", 10, 0, 4, 758, 31], + ["push", 11, 10, 788, 31], + ["frame", 10, 4, 2, 788, 31], + ["null", 4, 788, 31], + ["setarg", 10, 0, 4, 788, 31], ["stone_text", 8], - ["setarg", 10, 1, 8, 758, 31], - ["setarg", 10, 2, 11, 758, 31], - ["invoke", 10, 4, 758, 31], - ["disrupt", 758, 31], - "add_done_182", - ["get", 4, 49, 1, 758, 16], - ["frame", 8, 4, 1, 758, 16], + ["setarg", 10, 1, 8, 788, 31], + ["setarg", 10, 2, 11, 788, 31], + ["invoke", 10, 4, 788, 31], + ["disrupt", 788, 31], + "add_done_150", + ["get", 4, 51, 1, 788, 16], + ["frame", 8, 4, 1, 788, 16], ["stone_text", 9], - ["setarg", 8, 1, 9, 758, 16], - ["invoke", 8, 4, 758, 16], - ["move", 8, 4, 758, 16], - ["access", 8, "is_num", 759, 12], - ["get", 9, 55, 1, 759, 5], - ["frame", 10, 9, 3, 759, 5], + ["setarg", 8, 1, 9, 788, 16], + ["invoke", 8, 4, 788, 16], + ["move", 8, 4, 788, 16], + ["access", 8, "is_num", 789, 12], + ["get", 9, 57, 1, 789, 5], + ["frame", 10, 9, 3, 789, 5], ["stone_text", 8], - ["setarg", 10, 1, 8, 759, 5], - ["setarg", 10, 2, 6, 759, 5], - ["setarg", 10, 3, 2, 759, 5], - ["invoke", 10, 8, 759, 5], - ["access", 8, "jump_false", 760, 20], - ["get", 9, 64, 1, 760, 5], - ["frame", 10, 9, 3, 760, 5], + ["setarg", 10, 1, 8, 789, 5], + ["setarg", 10, 2, 6, 789, 5], + ["setarg", 10, 3, 2, 789, 5], + ["invoke", 10, 8, 789, 5], + ["access", 8, "jump_false", 790, 20], + ["get", 9, 66, 1, 790, 5], + ["frame", 10, 9, 3, 790, 5], ["stone_text", 8], - ["setarg", 10, 1, 8, 760, 5], - ["setarg", 10, 2, 6, 760, 5], - ["setarg", 10, 3, 7, 760, 5], - ["invoke", 10, 6, 760, 5], - ["get", 6, 56, 1, 761, 5], - ["frame", 8, 6, 4, 761, 5], - ["setarg", 8, 1, 1, 761, 5], - ["setarg", 8, 2, 5, 761, 5], - ["setarg", 8, 3, 2, 761, 5], - ["setarg", 8, 4, 3, 761, 5], - ["invoke", 8, 6, 761, 5], - ["get", 6, 63, 1, 762, 5], - ["frame", 8, 6, 1, 762, 5], - ["setarg", 8, 1, 4, 762, 5], - ["invoke", 8, 6, 762, 5], - ["get", 6, 52, 1, 763, 5], - ["frame", 8, 6, 1, 763, 5], - ["setarg", 8, 1, 7, 763, 5], - ["invoke", 8, 6, 763, 5], - ["access", 6, "null", 764, 12], - ["get", 7, 54, 1, 764, 5], - ["frame", 8, 7, 2, 764, 5], + ["setarg", 10, 1, 8, 790, 5], + ["setarg", 10, 2, 6, 790, 5], + ["setarg", 10, 3, 7, 790, 5], + ["invoke", 10, 6, 790, 5], + ["get", 6, 58, 1, 791, 5], + ["frame", 8, 6, 4, 791, 5], + ["setarg", 8, 1, 1, 791, 5], + ["setarg", 8, 2, 5, 791, 5], + ["setarg", 8, 3, 2, 791, 5], + ["setarg", 8, 4, 3, 791, 5], + ["invoke", 8, 6, 791, 5], + ["get", 6, 65, 1, 792, 5], + ["frame", 8, 6, 1, 792, 5], + ["setarg", 8, 1, 4, 792, 5], + ["invoke", 8, 6, 792, 5], + ["get", 6, 54, 1, 793, 5], + ["frame", 8, 6, 1, 793, 5], + ["setarg", 8, 1, 7, 793, 5], + ["invoke", 8, 6, 793, 5], + ["access", 6, "null", 794, 12], + ["get", 7, 56, 1, 794, 5], + ["frame", 8, 7, 2, 794, 5], ["stone_text", 6], - ["setarg", 8, 1, 6, 764, 5], - ["setarg", 8, 2, 5, 764, 5], - ["invoke", 8, 6, 764, 5], - ["get", 6, 52, 1, 765, 5], - ["frame", 7, 6, 1, 765, 5], - ["setarg", 7, 1, 4, 765, 5], - ["invoke", 7, 4, 765, 5], - ["return", 5, 766, 12], + ["setarg", 8, 1, 6, 794, 5], + ["setarg", 8, 2, 5, 794, 5], + ["invoke", 8, 6, 794, 5], + ["get", 6, 54, 1, 795, 5], + ["frame", 7, 6, 1, 795, 5], + ["setarg", 7, 1, 4, 795, 5], + ["invoke", 7, 4, 795, 5], + ["return", 5, 796, 12], "_nop_ur_1", "_nop_ur_2" ], @@ -4031,23 +3664,23 @@ { "_closure_slot_types": {}, "disruption_pc": 0, - "nr_slots": 14, + "nr_slots": 15, "nr_close_slots": 0, "instructions": [ - ["get", 1, 27, 1, 772, 35], - ["get", 2, 48, 1, 772, 17], - ["frame", 3, 2, 1, 772, 17], - ["setarg", 3, 1, 1, 772, 17], - ["invoke", 3, 1, 772, 17], - ["move", 2, 1, 772, 17], - ["null", 3, 773, 18], - ["eq", 4, 1, 3, 773, 18], - ["jump_false", 4, "if_else_185", 773, 18], - ["null", 1, 774, 14], - ["return", 1, 774, 14], + ["get", 1, 27, 1, 802, 35], + ["get", 2, 50, 1, 802, 17], + ["frame", 3, 2, 1, 802, 17], + ["setarg", 3, 1, 1, 802, 17], + ["invoke", 3, 1, 802, 17], + ["move", 2, 1, 802, 17], + ["null", 3, 803, 18], + ["eq", 4, 1, 3, 803, 18], + ["jump_false", 4, "if_else_153", 803, 18], + ["null", 1, 804, 14], + ["return", 1, 804, 14], "_nop_ur_1", - "if_else_185", - "if_end_186", + "if_else_153", + "if_end_154", [ "access", 1, @@ -4056,12 +3689,12 @@ "kind": "name", "make": "intrinsic" }, - 776, + 806, 21 ], - ["frame", 3, 1, 1, 776, 21], - ["setarg", 3, 1, 2, 776, 21], - ["invoke", 3, 1, 776, 21], + ["frame", 3, 1, 1, 806, 21], + ["setarg", 3, 1, 2, 806, 21], + ["invoke", 3, 1, 806, 21], [ "access", 3, @@ -4070,559 +3703,252 @@ "kind": "name", "make": "intrinsic" }, - 776, + 806, 16 ], - ["frame", 4, 3, 1, 776, 16], - ["setarg", 4, 1, 1, 776, 16], - ["invoke", 4, 1, 776, 16], - ["move", 3, 1, 776, 16], - ["access", 1, 0, 777, 14], - ["null", 4, 778, 16], - ["null", 5, 779, 13], - ["null", 6, 780, 16], - ["false", 7, 781, 20], - ["access", 8, 0, 782, 16], - ["access", 1, 0, 785, 10], - "while_start_187", - ["length", 9, 3, 786, 24], - ["lt", 10, 1, 9, 786, 24], - ["jump_false", 10, "while_end_188", 786, 24], - ["load_index", 9, 3, 1, 787, 19], - ["move", 4, 9, 787, 19], - ["access", 10, "function_nr", 788, 19], - ["eq", 11, 9, 10, 788, 19], - ["move", 9, 11, 788, 19], - ["jump_true", 11, "or_end_191", 788, 19], - ["access", 10, "nr_close_slots", 788, 44], - ["eq", 11, 4, 10, 788, 44], - ["move", 9, 11, 788, 44], - "or_end_191", - ["jump_false", 9, "if_else_189", 788, 44], - ["access", 9, 1, 789, 19], + ["frame", 4, 3, 1, 806, 16], + ["setarg", 4, 1, 1, 806, 16], + ["invoke", 4, 1, 806, 16], + ["move", 3, 1, 806, 16], + ["access", 1, 0, 807, 14], + ["null", 4, 808, 16], + ["null", 5, 809, 13], + ["null", 6, 810, 16], + ["false", 7, 811, 20], + ["access", 8, 0, 812, 16], + ["access", 1, 0, 815, 10], + "while_start_155", + ["length", 9, 3, 816, 24], + ["lt", 10, 1, 9, 816, 24], + ["jump_false", 10, "while_end_156", 816, 24], + ["load_index", 9, 3, 1, 817, 19], + ["move", 4, 9, 817, 19], + ["access", 10, "function_nr", 818, 19], + ["eq", 11, 9, 10, 818, 19], + ["move", 9, 11, 818, 19], + ["jump_true", 11, "or_end_159", 818, 19], + ["access", 10, "nr_close_slots", 818, 44], + ["eq", 11, 4, 10, 818, 44], + ["move", 9, 11, 818, 44], + "or_end_159", + ["jump_false", 9, "if_else_157", 818, 44], + ["access", 9, 1, 819, 19], + ["add", 1, 1, 9, 819, 19], + ["jump", "while_start_155", 820, 9], + "_nop_ucfg_1", + "if_else_157", + "if_end_158", + ["load_dynamic", 9, 2, 4, 822, 17], + ["move", 5, 9, 822, 17], + ["load_field", 10, 9, "make", 823, 14], + ["move", 6, 10, 823, 14], + ["null", 9, 824, 19], + ["eq", 11, 10, 9, 824, 19], + ["move", 9, 11, 824, 19], + ["jump_true", 11, "or_end_162", 824, 19], + ["access", 10, "input", 824, 35], + ["eq", 11, 6, 10, 824, 35], + ["move", 9, 11, 824, 35], + "or_end_162", + ["jump_false", 9, "if_else_160", 824, 35], + ["access", 9, 1, 825, 19], + ["add", 1, 1, 9, 825, 19], + ["jump", "while_start_155", 826, 9], + "_nop_ucfg_2", + "if_else_160", + "if_end_161", + ["load_field", 9, 5, "closure", 828, 11], + ["true", 10, 828, 24], + ["eq", 11, 9, 10, 828, 24], + ["move", 9, 11, 828, 24], + ["jump_false", 11, "and_end_165", 828, 24], + ["get", 10, 48, 1, 828, 32], + ["frame", 11, 10, 1, 828, 32], + ["setarg", 11, 1, 4, 828, 32], + ["invoke", 11, 10, 828, 32], + ["access", 11, 0, 828, 49], + ["lt", 12, 10, 11, 828, 49], + ["move", 9, 12, 828, 49], + "and_end_165", + ["jump_false", 9, "if_else_163", 828, 49], + ["access", 9, "def", 829, 29], + ["eq", 10, 6, 9, 829, 29], + ["move", 9, 10, 829, 29], + ["jump_true", 10, "or_end_166", 829, 29], + ["access", 10, "function", 829, 46], + ["eq", 11, 6, 10, 829, 46], + ["move", 9, 11, 829, 46], + "or_end_166", + ["move", 7, 9, 829, 46], + ["access", 9, 1, 830, 16], + ["get", 10, 15, 1, 830, 20], + ["is_num", 11, 10, 830, 20], + ["jump_false", 11, "num_err_167", 830, 20], + ["add", 11, 9, 10, 830, 20], + ["jump", "num_done_168", 830, 20], + "num_err_167", + [ + "access", + 9, + { + "name": "log", + "kind": "name", + "make": "intrinsic" + }, + 830, + 20 + ], + ["access", 10, "error", 830, 20], + ["access", 12, "operands must be numbers", 830, 20], + ["array", 13, 0, 830, 20], + ["stone_text", 12], + ["push", 13, 12, 830, 20], + ["frame", 12, 9, 2, 830, 20], + ["null", 9, 830, 20], + ["setarg", 12, 0, 9, 830, 20], + ["stone_text", 10], + ["setarg", 12, 1, 10, 830, 20], + ["setarg", 12, 2, 13, 830, 20], + ["invoke", 12, 9, 830, 20], + ["disrupt", 830, 20], + "num_done_168", + ["get", 9, 17, 1, 830, 32], + ["is_num", 10, 9, 830, 32], + ["jump_false", 10, "num_err_167", 830, 32], + ["add", 10, 11, 9, 830, 32], + ["move", 8, 10, 830, 32], + ["get", 9, 17, 1, 831, 28], + ["access", 10, 1, 831, 47], + ["is_num", 12, 9, 831, 47], + ["jump_false", 12, "num_err_167", 831, 47], + ["add", 12, 9, 10, 831, 47], + ["put", 12, 17, 1, 831, 47], + ["get", 9, 16, 1, 832, 28], + ["access", 10, 1, 832, 47], + ["is_num", 12, 9, 832, 47], + ["jump_false", 12, "num_err_167", 832, 47], + ["add", 12, 9, 10, 832, 47], + ["put", 12, 16, 1, 832, 47], + ["get", 9, 47, 1, 833, 9], + ["frame", 10, 9, 3, 833, 9], + ["setarg", 10, 1, 4, 833, 9], + ["setarg", 10, 2, 8, 833, 9], + ["setarg", 10, 3, 7, 833, 9], + ["invoke", 10, 9, 833, 9], + ["true", 9, 834, 49], + ["get", 10, 13, 1, 834, 9], + ["get", 12, 13, 1, 834, 23], + ["length", 13, 12, 834, 23], + ["access", 12, 1, 834, 33], "_nop_tc_1", "_nop_tc_2", - "_nop_tc_3", - "_nop_tc_4", - ["add", 1, 1, 9, 789, 19], - ["jump", "num_done_193", 789, 19], - "num_err_192", - "_nop_ucfg_1", - "_nop_ucfg_2", + ["subtract", 14, 13, 12, 834, 33], + ["load_index", 12, 10, 14, 834, 33], + ["store_field", 12, 9, "is_closure", 834, 33], + ["jump", "if_end_164", 834, 33], + "if_else_163", + "if_end_164", + ["access", 9, 1, 836, 17], + ["add", 1, 1, 9, 836, 17], + ["jump", "while_start_155", 836, 17], + "while_end_156", + ["access", 1, 0, 840, 10], + "while_start_169", + ["length", 9, 3, 841, 24], + ["lt", 10, 1, 9, 841, 24], + ["jump_false", 10, "while_end_170", 841, 24], + ["load_index", 9, 3, 1, 842, 19], + ["move", 4, 9, 842, 19], + ["access", 10, "function_nr", 843, 19], + ["eq", 12, 9, 10, 843, 19], + ["move", 9, 12, 843, 19], + ["jump_true", 12, "or_end_173", 843, 19], + ["access", 10, "nr_close_slots", 843, 44], + ["eq", 12, 4, 10, 843, 44], + ["move", 9, 12, 843, 44], + "or_end_173", + ["jump_false", 9, "if_else_171", 843, 44], + ["access", 9, 1, 844, 19], + ["add", 1, 1, 9, 844, 19], + ["jump", "while_start_169", 845, 9], "_nop_ucfg_3", + "if_else_171", + "if_end_172", + ["load_dynamic", 9, 2, 4, 847, 17], + ["move", 5, 9, 847, 17], + ["load_field", 10, 9, "make", 848, 14], + ["move", 6, 10, 848, 14], + ["null", 9, 849, 19], + ["eq", 12, 10, 9, 849, 19], + ["move", 9, 12, 849, 19], + ["jump_true", 12, "or_end_176", 849, 19], + ["access", 10, "input", 849, 35], + ["eq", 12, 6, 10, 849, 35], + ["move", 9, 12, 849, 35], + "or_end_176", + ["jump_false", 9, "if_else_174", 849, 35], + ["access", 9, 1, 850, 19], + ["add", 1, 1, 9, 850, 19], + ["jump", "while_start_169", 851, 9], "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "num_done_193", - ["jump", "while_start_187", 790, 9], - "_nop_ucfg_13", - "if_else_189", - "if_end_190", - ["load_dynamic", 9, 2, 4, 792, 17], - ["move", 5, 9, 792, 17], - ["load_field", 10, 9, "make", 793, 14], - ["move", 6, 10, 793, 14], - ["null", 9, 794, 19], - ["eq", 11, 10, 9, 794, 19], - ["move", 9, 11, 794, 19], - ["jump_true", 11, "or_end_196", 794, 19], - ["access", 10, "input", 794, 35], - ["eq", 11, 6, 10, 794, 35], - ["move", 9, 11, 794, 35], - "or_end_196", - ["jump_false", 9, "if_else_194", 794, 35], - ["access", 9, 1, 795, 19], - "_nop_tc_5", - "_nop_tc_6", - "_nop_tc_7", - "_nop_tc_8", - ["add", 1, 1, 9, 795, 19], - ["jump", "num_done_198", 795, 19], - "num_err_197", - "_nop_ucfg_14", - "_nop_ucfg_15", - "_nop_ucfg_16", - "_nop_ucfg_17", - "_nop_ucfg_18", - "_nop_ucfg_19", - "_nop_ucfg_20", - "_nop_ucfg_21", - "_nop_ucfg_22", - "_nop_ucfg_23", - "_nop_ucfg_24", - "_nop_ucfg_25", - "num_done_198", - ["jump", "while_start_187", 796, 9], - "_nop_ucfg_26", - "if_else_194", - "if_end_195", - ["load_field", 9, 5, "closure", 798, 11], - ["true", 10, 798, 24], - ["eq", 11, 9, 10, 798, 24], - ["move", 9, 11, 798, 24], - ["jump_false", 11, "and_end_201", 798, 24], - ["get", 10, 46, 1, 798, 32], - ["frame", 11, 10, 1, 798, 32], - ["setarg", 11, 1, 4, 798, 32], - ["invoke", 11, 10, 798, 32], - ["access", 11, 0, 798, 49], - ["lt", 12, 10, 11, 798, 49], - ["move", 9, 12, 798, 49], - "and_end_201", - ["jump_false", 9, "if_else_199", 798, 49], - ["access", 9, "def", 799, 29], - ["eq", 10, 6, 9, 799, 29], - ["move", 9, 10, 799, 29], - ["jump_true", 10, "or_end_202", 799, 29], - ["access", 10, "function", 799, 46], - ["eq", 11, 6, 10, 799, 46], - ["move", 9, 11, 799, 46], - "or_end_202", - ["move", 7, 9, 799, 46], - ["access", 9, 1, 800, 16], - ["get", 10, 15, 1, 800, 20], - "_nop_tc_9", - "_nop_tc_10", - ["is_num", 11, 10, 800, 20], - ["jump_false", 11, "num_err_203", 800, 20], - ["add", 11, 9, 10, 800, 20], - ["jump", "num_done_204", 800, 20], - "num_err_203", - [ - "access", - 9, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 800, - 20 - ], - ["access", 10, "error", 800, 20], - ["access", 12, "cannot apply '+': operands must be numbers", 800, 20], - ["array", 13, 0, 800, 20], - ["stone_text", 12], - ["push", 13, 12, 800, 20], - ["frame", 12, 9, 2, 800, 20], - ["null", 9, 800, 20], - ["setarg", 12, 0, 9, 800, 20], - ["stone_text", 10], - ["setarg", 12, 1, 10, 800, 20], - ["setarg", 12, 2, 13, 800, 20], - ["invoke", 12, 9, 800, 20], - ["disrupt", 800, 20], - "num_done_204", - ["get", 9, 17, 1, 800, 32], - "_nop_tc_11", - "_nop_tc_12", - ["is_num", 10, 9, 800, 32], - ["jump_false", 10, "num_err_205", 800, 32], - ["add", 10, 11, 9, 800, 32], - ["jump", "num_done_206", 800, 32], - "num_err_205", - [ - "access", - 9, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 800, - 32 - ], - ["access", 11, "error", 800, 32], - ["access", 12, "cannot apply '+': operands must be numbers", 800, 32], - ["array", 13, 0, 800, 32], - ["stone_text", 12], - ["push", 13, 12, 800, 32], - ["frame", 12, 9, 2, 800, 32], - ["null", 9, 800, 32], - ["setarg", 12, 0, 9, 800, 32], - ["stone_text", 11], - ["setarg", 12, 1, 11, 800, 32], - ["setarg", 12, 2, 13, 800, 32], - ["invoke", 12, 9, 800, 32], - ["disrupt", 800, 32], - "num_done_206", - ["move", 8, 10, 800, 32], - ["get", 9, 17, 1, 801, 28], - ["access", 10, 1, 801, 47], - ["is_num", 11, 9, 801, 47], - ["jump_false", 11, "num_err_207", 801, 47], - "_nop_tc_13", - "_nop_tc_14", - ["add", 11, 9, 10, 801, 47], - ["jump", "num_done_208", 801, 47], - "num_err_207", - [ - "access", - 9, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 801, - 47 - ], - ["access", 10, "error", 801, 47], - ["access", 12, "cannot apply '+': operands must be numbers", 801, 47], - ["array", 13, 0, 801, 47], - ["stone_text", 12], - ["push", 13, 12, 801, 47], - ["frame", 12, 9, 2, 801, 47], - ["null", 9, 801, 47], - ["setarg", 12, 0, 9, 801, 47], - ["stone_text", 10], - ["setarg", 12, 1, 10, 801, 47], - ["setarg", 12, 2, 13, 801, 47], - ["invoke", 12, 9, 801, 47], - ["disrupt", 801, 47], - "num_done_208", - ["put", 11, 17, 1, 801, 47], - ["get", 9, 16, 1, 802, 28], - ["access", 10, 1, 802, 47], - ["is_num", 11, 9, 802, 47], - ["jump_false", 11, "num_err_209", 802, 47], - "_nop_tc_15", - "_nop_tc_16", - ["add", 11, 9, 10, 802, 47], - ["jump", "num_done_210", 802, 47], - "num_err_209", - [ - "access", - 9, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 802, - 47 - ], - ["access", 10, "error", 802, 47], - ["access", 12, "cannot apply '+': operands must be numbers", 802, 47], - ["array", 13, 0, 802, 47], - ["stone_text", 12], - ["push", 13, 12, 802, 47], - ["frame", 12, 9, 2, 802, 47], - ["null", 9, 802, 47], - ["setarg", 12, 0, 9, 802, 47], - ["stone_text", 10], - ["setarg", 12, 1, 10, 802, 47], - ["setarg", 12, 2, 13, 802, 47], - ["invoke", 12, 9, 802, 47], - ["disrupt", 802, 47], - "num_done_210", - ["put", 11, 16, 1, 802, 47], - ["get", 9, 45, 1, 803, 9], - ["frame", 10, 9, 3, 803, 9], - ["setarg", 10, 1, 4, 803, 9], - ["setarg", 10, 2, 8, 803, 9], - ["setarg", 10, 3, 7, 803, 9], - ["invoke", 10, 9, 803, 9], - ["true", 9, 804, 49], - ["get", 10, 13, 1, 804, 9], - ["get", 11, 13, 1, 804, 23], - ["length", 12, 11, 804, 23], - ["access", 11, 1, 804, 33], - "_nop_tc_17", - "_nop_tc_18", - "_nop_tc_19", - "_nop_tc_20", - ["subtract", 13, 12, 11, 804, 33], - ["jump", "num_done_212", 804, 33], - "num_err_211", - "_nop_ucfg_27", - "_nop_ucfg_28", - "_nop_ucfg_29", - "_nop_ucfg_30", - "_nop_ucfg_31", - "_nop_ucfg_32", - "_nop_ucfg_33", - "_nop_ucfg_34", - "_nop_ucfg_35", - "_nop_ucfg_36", - "_nop_ucfg_37", - "_nop_ucfg_38", - "num_done_212", - ["load_index", 11, 10, 13, 804, 33], - ["store_field", 11, 9, "is_closure", 804, 33], - ["jump", "if_end_200", 804, 33], - "if_else_199", - "if_end_200", - ["access", 9, 1, 806, 17], - "_nop_tc_21", - "_nop_tc_22", - "_nop_tc_23", - "_nop_tc_24", - ["add", 1, 1, 9, 806, 17], - ["jump", "num_done_214", 806, 17], - "num_err_213", - "_nop_ucfg_39", - "_nop_ucfg_40", - "_nop_ucfg_41", - "_nop_ucfg_42", - "_nop_ucfg_43", - "_nop_ucfg_44", - "_nop_ucfg_45", - "_nop_ucfg_46", - "_nop_ucfg_47", - "_nop_ucfg_48", - "_nop_ucfg_49", - "_nop_ucfg_50", - "num_done_214", - ["jump", "while_start_187", 806, 17], - "while_end_188", - ["access", 1, 0, 810, 10], - "while_start_215", - ["length", 9, 3, 811, 24], - ["lt", 10, 1, 9, 811, 24], - ["jump_false", 10, "while_end_216", 811, 24], - ["load_index", 9, 3, 1, 812, 19], - ["move", 4, 9, 812, 19], - ["access", 10, "function_nr", 813, 19], - ["eq", 11, 9, 10, 813, 19], - ["move", 9, 11, 813, 19], - ["jump_true", 11, "or_end_219", 813, 19], - ["access", 10, "nr_close_slots", 813, 44], - ["eq", 11, 4, 10, 813, 44], - ["move", 9, 11, 813, 44], - "or_end_219", - ["jump_false", 9, "if_else_217", 813, 44], - ["access", 9, 1, 814, 19], - "_nop_tc_25", - "_nop_tc_26", - "_nop_tc_27", - "_nop_tc_28", - ["add", 1, 1, 9, 814, 19], - ["jump", "num_done_221", 814, 19], - "num_err_220", - "_nop_ucfg_51", - "_nop_ucfg_52", - "_nop_ucfg_53", - "_nop_ucfg_54", - "_nop_ucfg_55", - "_nop_ucfg_56", - "_nop_ucfg_57", - "_nop_ucfg_58", - "_nop_ucfg_59", - "_nop_ucfg_60", - "_nop_ucfg_61", - "_nop_ucfg_62", - "num_done_221", - ["jump", "while_start_215", 815, 9], - "_nop_ucfg_63", - "if_else_217", - "if_end_218", - ["load_dynamic", 9, 2, 4, 817, 17], - ["move", 5, 9, 817, 17], - ["load_field", 10, 9, "make", 818, 14], - ["move", 6, 10, 818, 14], - ["null", 9, 819, 19], - ["eq", 11, 10, 9, 819, 19], - ["move", 9, 11, 819, 19], - ["jump_true", 11, "or_end_224", 819, 19], - ["access", 10, "input", 819, 35], - ["eq", 11, 6, 10, 819, 35], - ["move", 9, 11, 819, 35], - "or_end_224", - ["jump_false", 9, "if_else_222", 819, 35], - ["access", 9, 1, 820, 19], - "_nop_tc_29", - "_nop_tc_30", - "_nop_tc_31", - "_nop_tc_32", - ["add", 1, 1, 9, 820, 19], - ["jump", "num_done_226", 820, 19], - "num_err_225", - "_nop_ucfg_64", - "_nop_ucfg_65", - "_nop_ucfg_66", - "_nop_ucfg_67", - "_nop_ucfg_68", - "_nop_ucfg_69", - "_nop_ucfg_70", - "_nop_ucfg_71", - "_nop_ucfg_72", - "_nop_ucfg_73", - "_nop_ucfg_74", - "_nop_ucfg_75", - "num_done_226", - ["jump", "while_start_215", 821, 9], - "_nop_ucfg_76", - "if_else_222", - "if_end_223", - ["load_field", 9, 5, "closure", 823, 11], - ["true", 10, 823, 24], - ["ne", 11, 9, 10, 823, 24], - ["move", 9, 11, 823, 24], - ["jump_false", 11, "and_end_229", 823, 24], - ["get", 10, 46, 1, 823, 32], - ["frame", 11, 10, 1, 823, 32], - ["setarg", 11, 1, 4, 823, 32], - ["invoke", 11, 10, 823, 32], - ["access", 11, 0, 823, 49], - ["lt", 12, 10, 11, 823, 49], - ["move", 9, 12, 823, 49], - "and_end_229", - ["jump_false", 9, "if_else_227", 823, 49], - ["access", 9, "def", 824, 29], - ["eq", 10, 6, 9, 824, 29], - ["move", 9, 10, 824, 29], - ["jump_true", 10, "or_end_230", 824, 29], - ["access", 10, "function", 824, 46], - ["eq", 11, 6, 10, 824, 46], - ["move", 9, 11, 824, 46], - "or_end_230", - ["move", 7, 9, 824, 46], - ["access", 9, 1, 825, 16], - ["get", 10, 15, 1, 825, 20], - "_nop_tc_33", - "_nop_tc_34", - ["is_num", 11, 10, 825, 20], - ["jump_false", 11, "num_err_231", 825, 20], - ["add", 11, 9, 10, 825, 20], - ["jump", "num_done_232", 825, 20], - "num_err_231", - [ - "access", - 9, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 825, - 20 - ], - ["access", 10, "error", 825, 20], - ["access", 12, "cannot apply '+': operands must be numbers", 825, 20], - ["array", 13, 0, 825, 20], - ["stone_text", 12], - ["push", 13, 12, 825, 20], - ["frame", 12, 9, 2, 825, 20], - ["null", 9, 825, 20], - ["setarg", 12, 0, 9, 825, 20], - ["stone_text", 10], - ["setarg", 12, 1, 10, 825, 20], - ["setarg", 12, 2, 13, 825, 20], - ["invoke", 12, 9, 825, 20], - ["disrupt", 825, 20], - "num_done_232", - ["get", 9, 17, 1, 825, 32], - "_nop_tc_35", - "_nop_tc_36", - ["is_num", 10, 9, 825, 32], - ["jump_false", 10, "num_err_233", 825, 32], - ["add", 10, 11, 9, 825, 32], - ["jump", "num_done_234", 825, 32], - "num_err_233", - [ - "access", - 9, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 825, - 32 - ], - ["access", 11, "error", 825, 32], - ["access", 12, "cannot apply '+': operands must be numbers", 825, 32], - ["array", 13, 0, 825, 32], - ["stone_text", 12], - ["push", 13, 12, 825, 32], - ["frame", 12, 9, 2, 825, 32], - ["null", 9, 825, 32], - ["setarg", 12, 0, 9, 825, 32], - ["stone_text", 11], - ["setarg", 12, 1, 11, 825, 32], - ["setarg", 12, 2, 13, 825, 32], - ["invoke", 12, 9, 825, 32], - ["disrupt", 825, 32], - "num_done_234", - ["move", 8, 10, 825, 32], - ["get", 9, 17, 1, 826, 28], - ["access", 10, 1, 826, 47], - ["is_num", 11, 9, 826, 47], - ["jump_false", 11, "num_err_235", 826, 47], - "_nop_tc_37", - "_nop_tc_38", - ["add", 11, 9, 10, 826, 47], - ["jump", "num_done_236", 826, 47], - "num_err_235", - [ - "access", - 9, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 826, - 47 - ], - ["access", 10, "error", 826, 47], - ["access", 12, "cannot apply '+': operands must be numbers", 826, 47], - ["array", 13, 0, 826, 47], - ["stone_text", 12], - ["push", 13, 12, 826, 47], - ["frame", 12, 9, 2, 826, 47], - ["null", 9, 826, 47], - ["setarg", 12, 0, 9, 826, 47], - ["stone_text", 10], - ["setarg", 12, 1, 10, 826, 47], - ["setarg", 12, 2, 13, 826, 47], - ["invoke", 12, 9, 826, 47], - ["disrupt", 826, 47], - "num_done_236", - ["put", 11, 17, 1, 826, 47], - ["get", 9, 45, 1, 827, 9], - ["frame", 10, 9, 3, 827, 9], - ["setarg", 10, 1, 4, 827, 9], - ["setarg", 10, 2, 8, 827, 9], - ["setarg", 10, 3, 7, 827, 9], - ["invoke", 10, 9, 827, 9], - ["jump", "if_end_228", 827, 9], - "if_else_227", - "if_end_228", - ["access", 9, 1, 829, 17], - "_nop_tc_39", - "_nop_tc_40", - "_nop_tc_41", - "_nop_tc_42", - ["add", 1, 1, 9, 829, 17], - ["jump", "num_done_238", 829, 17], - "num_err_237", - "_nop_ucfg_77", - "_nop_ucfg_78", - "_nop_ucfg_79", - "_nop_ucfg_80", - "_nop_ucfg_81", - "_nop_ucfg_82", - "_nop_ucfg_83", - "_nop_ucfg_84", - "_nop_ucfg_85", - "_nop_ucfg_86", - "_nop_ucfg_87", - "_nop_ucfg_88", - "num_done_238", - ["jump", "while_start_215", 829, 17], - "while_end_216", - ["null", 1, 829, 17], - ["return", 1, 829, 17] + "if_else_174", + "if_end_175", + ["load_field", 9, 5, "closure", 853, 11], + ["true", 10, 853, 24], + ["ne", 12, 9, 10, 853, 24], + ["move", 9, 12, 853, 24], + ["jump_false", 12, "and_end_179", 853, 24], + ["get", 10, 48, 1, 853, 32], + ["frame", 12, 10, 1, 853, 32], + ["setarg", 12, 1, 4, 853, 32], + ["invoke", 12, 10, 853, 32], + ["access", 12, 0, 853, 49], + ["lt", 13, 10, 12, 853, 49], + ["move", 9, 13, 853, 49], + "and_end_179", + ["jump_false", 9, "if_else_177", 853, 49], + ["access", 9, "def", 854, 29], + ["eq", 10, 6, 9, 854, 29], + ["move", 9, 10, 854, 29], + ["jump_true", 10, "or_end_180", 854, 29], + ["access", 10, "function", 854, 46], + ["eq", 12, 6, 10, 854, 46], + ["move", 9, 12, 854, 46], + "or_end_180", + ["move", 7, 9, 854, 46], + ["access", 9, 1, 855, 16], + ["get", 10, 15, 1, 855, 20], + ["is_num", 12, 10, 855, 20], + ["jump_false", 12, "num_err_167", 855, 20], + ["add", 12, 9, 10, 855, 20], + ["get", 9, 17, 1, 855, 32], + ["is_num", 10, 9, 855, 32], + ["jump_false", 10, "num_err_167", 855, 32], + ["add", 10, 12, 9, 855, 32], + ["move", 8, 10, 855, 32], + ["get", 9, 17, 1, 856, 28], + ["access", 10, 1, 856, 47], + ["is_num", 12, 9, 856, 47], + ["jump_false", 12, "num_err_167", 856, 47], + ["add", 12, 9, 10, 856, 47], + ["put", 12, 17, 1, 856, 47], + ["get", 9, 47, 1, 857, 9], + ["frame", 10, 9, 3, 857, 9], + ["setarg", 10, 1, 4, 857, 9], + ["setarg", 10, 2, 8, 857, 9], + ["setarg", 10, 3, 7, 857, 9], + ["invoke", 10, 9, 857, 9], + ["jump", "if_end_178", 857, 9], + "if_else_177", + "if_end_178", + ["access", 9, 1, 859, 17], + ["add", 1, 1, 9, 859, 17], + ["jump", "while_start_169", 859, 17], + "while_end_170", + ["null", 1, 859, 17], + ["return", 1, 859, 17] ], - "_write_types": [null, "int", "bool", null, null, null, null, "num", null, null, null, null, null, "null", "bool", "null", null, null, null, null, null, null, "int", "bool", null, "text", "bool", "bool", "text", "bool", "int", null, null, null, null, null, null, null, null, null, null, null, "null", "bool", "bool", "text", "bool", "int", null, null, null, null, null, null, null, null, null, null, "bool", "bool", "bool", null, null, null, "int", "bool", "text", "bool", "bool", "text", "bool", "int", null, "num", null, "bool", null, "text", "text", "array", null, null, "null", null, "num", null, "bool", null, "text", "text", "array", null, null, "null", null, "int", "num", "bool", null, null, "text", "text", "array", null, null, "null", null, "int", "num", "bool", null, null, "text", "text", "array", null, null, "null", null, null, null, "bool", null, null, "int", "int", "int", null, null, null, null, null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "int", "bool", null, "text", "bool", "bool", "text", "bool", "int", null, null, null, null, null, null, null, null, null, null, null, "null", "bool", "bool", "text", "bool", "int", null, null, null, null, null, null, null, null, null, null, "bool", "bool", "bool", null, null, null, "int", "bool", "text", "bool", "bool", "text", "bool", "int", null, "num", null, "bool", null, "text", "text", "array", null, null, "null", null, "num", null, "bool", null, "text", "text", "array", null, null, "null", null, "int", "num", "bool", null, null, "text", "text", "array", null, null, "null", null, null, null, "int", null, null, null, null, null, null, null, null, null, "null"], + "_write_types": [null, "int", "bool", null, null, null, null, "num", null, null, null, null, null, "null", "bool", "null", null, null, null, null, null, null, "int", "bool", null, "text", "bool", "bool", "text", "bool", "int", null, null, "null", "bool", "bool", "text", "bool", "int", null, "bool", "bool", "bool", null, null, null, "int", "bool", "text", "bool", "bool", "text", "bool", "int", null, "num", "bool", null, "text", "text", "array", null, null, "null", null, "num", "bool", null, "int", "num", "bool", null, "int", "num", "bool", null, null, null, "bool", null, null, "int", "int", "int", null, null, "int", "int", "bool", null, "text", "bool", "bool", "text", "bool", "int", null, null, "null", "bool", "bool", "text", "bool", "int", null, "bool", "bool", "bool", null, null, null, "int", "bool", "text", "bool", "bool", "text", "bool", "int", null, "num", "bool", null, "num", "bool", null, "int", "num", "bool", null, null, null, "int", "null"], "name": "", "filename": ".cell/packages/core/mcode.cm", "nr_args": 0 @@ -4633,53 +3959,34 @@ "nr_slots": 6, "nr_close_slots": 0, "instructions": [ - ["access", 3, 0, 835, 14], - "while_start_239", - ["load_field", 4, 1, "vars", 836, 24], - ["length", 5, 4, 836, 24], - ["lt", 4, 3, 5, 836, 24], - ["jump_false", 4, "while_end_240", 836, 24], - ["load_field", 4, 1, "vars", 837, 11], - ["load_index", 5, 4, 3, 837, 22], - ["load_field", 4, 5, "name", 837, 22], - ["eq", 5, 4, 2, 837, 34], - ["jump_false", 5, "if_else_241", 837, 34], - ["load_field", 4, 1, "vars", 838, 16], - ["load_index", 5, 4, 3, 838, 27], - ["load_field", 4, 5, "slot", 838, 27], - ["return", 4, 838, 27], + ["access", 3, 0, 865, 14], + "while_start_181", + ["load_field", 4, 1, "vars", 866, 24], + ["length", 5, 4, 866, 24], + ["lt", 4, 3, 5, 866, 24], + ["jump_false", 4, "while_end_182", 866, 24], + ["load_field", 4, 1, "vars", 867, 11], + ["load_index", 5, 4, 3, 867, 22], + ["load_field", 4, 5, "name", 867, 22], + ["eq", 5, 4, 2, 867, 34], + ["jump_false", 5, "if_else_183", 867, 34], + ["load_field", 4, 1, "vars", 868, 16], + ["load_index", 5, 4, 3, 868, 27], + ["load_field", 4, 5, "slot", 868, 27], + ["return", 4, 868, 27], "_nop_ur_1", - "if_else_241", - "if_end_242", - ["access", 4, 1, 840, 17], - "_nop_tc_1", - "_nop_tc_2", - "_nop_tc_3", - "_nop_tc_4", - ["add", 3, 3, 4, 840, 17], - ["jump", "num_done_244", 840, 17], - "num_err_243", - "_nop_ucfg_1", - "_nop_ucfg_2", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "num_done_244", - ["jump", "while_start_239", 840, 17], - "while_end_240", - ["access", 3, -1, 842, 12], - ["return", 3, 842, 12], + "if_else_183", + "if_end_184", + ["access", 4, 1, 870, 17], + ["add", 3, 3, 4, 870, 17], + ["jump", "while_start_181", 870, 17], + "while_end_182", + ["access", 3, -1, 872, 12], + ["return", 3, 872, 12], "_nop_ur_2", "_nop_ur_3" ], - "_write_types": [null, null, null, "int", null, "int", "bool", null, null, null, "bool", null, null, null, "int", null, null, null, null, null, null, null, null, null, "int", null], + "_write_types": [null, null, null, "int", null, "int", "bool", null, null, null, "bool", null, null, null, "int", "int", null], "name": "", "filename": ".cell/packages/core/mcode.cm", "nr_args": 2 @@ -4687,347 +3994,377 @@ { "_closure_slot_types": {}, "disruption_pc": 0, - "nr_slots": 30, + "nr_slots": 14, "nr_close_slots": 0, "instructions": [ - ["load_field", 4, 1, "acc", 856, 15], - ["move", 5, 4, 856, 15], - ["load_field", 4, 1, "i", 857, 13], - ["move", 6, 4, 857, 13], - ["load_field", 4, 1, "arr", 858, 20], - ["move", 7, 4, 858, 20], - ["load_field", 4, 1, "fn", 859, 19], - ["move", 8, 4, 859, 19], - ["load_field", 4, 1, "len", 860, 15], - ["move", 9, 4, 860, 15], - ["load_field", 4, 1, "fn_arity", 861, 20], - ["move", 10, 4, 861, 20], - ["get", 4, 44, 1, 862, 17], - ["frame", 11, 4, 0, 862, 17], - ["invoke", 11, 4, 862, 17], - ["move", 11, 4, 862, 17], - ["get", 4, 44, 1, 863, 16], - ["frame", 12, 4, 0, 863, 16], - ["invoke", 12, 4, 863, 16], - ["move", 12, 4, 863, 16], - ["get", 4, 44, 1, 864, 18], - ["frame", 13, 4, 0, 864, 18], - ["invoke", 13, 4, 864, 18], - ["move", 13, 4, 864, 18], - ["get", 14, 44, 1, 865, 15], - ["frame", 15, 14, 0, 865, 15], - ["invoke", 15, 14, 865, 15], - ["move", 15, 14, 865, 15], - ["get", 16, 44, 1, 866, 16], - ["frame", 17, 16, 0, 866, 16], - ["invoke", 17, 16, 866, 16], - ["move", 17, 16, 866, 16], - ["get", 18, 44, 1, 867, 25], - ["frame", 19, 18, 0, 867, 25], - ["invoke", 19, 18, 867, 25], - ["move", 19, 18, 867, 25], - ["get", 18, 44, 1, 868, 24], - ["frame", 20, 18, 0, 868, 24], - ["invoke", 20, 18, 868, 24], - ["move", 20, 18, 868, 24], - ["get", 18, 44, 1, 869, 13], - ["frame", 21, 18, 0, 869, 13], - ["invoke", 21, 18, 869, 13], - ["move", 21, 18, 869, 13], - ["access", 18, "reduce_loop", 870, 32], - ["get", 22, 49, 1, 870, 22], - ["frame", 23, 22, 1, 870, 22], - ["stone_text", 18], - ["setarg", 23, 1, 18, 870, 22], - ["invoke", 23, 18, 870, 22], - ["move", 22, 18, 870, 22], - ["access", 23, "reduce_call_one", 871, 36], - ["get", 24, 49, 1, 871, 26], - ["frame", 25, 24, 1, 871, 26], - ["stone_text", 23], - ["setarg", 25, 1, 23, 871, 26], - ["invoke", 25, 23, 871, 26], - ["move", 24, 23, 871, 26], - ["access", 23, "reduce_call_two", 872, 36], - ["get", 25, 49, 1, 872, 26], - ["frame", 26, 25, 1, 872, 26], - ["stone_text", 23], - ["setarg", 26, 1, 23, 872, 26], - ["invoke", 26, 23, 872, 26], - ["move", 25, 23, 872, 26], - ["access", 23, "reduce_call_done", 873, 37], - ["get", 26, 49, 1, 873, 27], - ["frame", 27, 26, 1, 873, 27], - ["stone_text", 23], - ["setarg", 27, 1, 23, 873, 27], - ["invoke", 27, 23, 873, 27], - ["move", 26, 23, 873, 27], - ["access", 23, "int", 874, 12], - ["access", 27, 1, 874, 24], - ["get", 28, 55, 1, 874, 5], - ["frame", 29, 28, 3, 874, 5], - ["stone_text", 23], - ["setarg", 29, 1, 23, 874, 5], - ["setarg", 29, 2, 14, 874, 5], - ["setarg", 29, 3, 27, 874, 5], - ["invoke", 29, 14, 874, 5], - ["access", 14, "int", 875, 12], - ["access", 23, 0, 875, 25], - ["get", 27, 55, 1, 875, 5], - ["frame", 28, 27, 3, 875, 5], - ["stone_text", 14], - ["setarg", 28, 1, 14, 875, 5], - ["setarg", 28, 2, 16, 875, 5], - ["setarg", 28, 3, 23, 875, 5], - ["invoke", 28, 14, 875, 5], - ["access", 14, "null", 876, 12], - ["get", 16, 54, 1, 876, 5], - ["frame", 23, 16, 2, 876, 5], - ["stone_text", 14], - ["setarg", 23, 1, 14, 876, 5], - ["setarg", 23, 2, 4, 876, 5], - ["invoke", 23, 4, 876, 5], - ["get", 4, 52, 1, 877, 5], - ["frame", 14, 4, 1, 877, 5], - ["setarg", 14, 1, 18, 877, 5], - ["invoke", 14, 4, 877, 5], - ["jump_false", 2, "if_else_245", 878, 9], - ["access", 4, "lt", 879, 14], - ["get", 14, 56, 1, 879, 7], - ["frame", 16, 14, 4, 879, 7], - ["stone_text", 4], - ["setarg", 16, 1, 4, 879, 7], - ["setarg", 16, 2, 11, 879, 7], - ["setarg", 16, 3, 6, 879, 7], - ["setarg", 16, 4, 9, 879, 7], - ["invoke", 16, 4, 879, 7], - ["jump", "if_end_246", 879, 7], - "if_else_245", - ["access", 4, "ge", 881, 14], - ["get", 9, 56, 1, 881, 7], - ["frame", 14, 9, 4, 881, 7], - ["stone_text", 4], - ["setarg", 14, 1, 4, 881, 7], - ["setarg", 14, 2, 11, 881, 7], - ["setarg", 14, 3, 6, 881, 7], - ["setarg", 14, 4, 17, 881, 7], - ["invoke", 14, 4, 881, 7], - "if_end_246", - ["access", 4, "jump_false", 883, 20], - ["get", 9, 64, 1, 883, 5], - ["frame", 14, 9, 3, 883, 5], - ["stone_text", 4], - ["setarg", 14, 1, 4, 883, 5], - ["setarg", 14, 2, 11, 883, 5], - ["setarg", 14, 3, 3, 883, 5], - ["invoke", 14, 4, 883, 5], - ["access", 4, "load_index", 884, 12], - ["get", 9, 56, 1, 884, 5], - ["frame", 11, 9, 4, 884, 5], - ["stone_text", 4], - ["setarg", 11, 1, 4, 884, 5], - ["setarg", 11, 2, 12, 884, 5], - ["setarg", 11, 3, 7, 884, 5], - ["setarg", 11, 4, 6, 884, 5], - ["invoke", 11, 4, 884, 5], - ["access", 4, "eq", 885, 12], - ["get", 7, 56, 1, 885, 5], - ["frame", 9, 7, 4, 885, 5], - ["stone_text", 4], - ["setarg", 9, 1, 4, 885, 5], - ["setarg", 9, 2, 19, 885, 5], - ["setarg", 9, 3, 10, 885, 5], - ["setarg", 9, 4, 17, 885, 5], - ["invoke", 9, 4, 885, 5], - ["access", 4, "jump_false", 886, 20], - ["get", 7, 64, 1, 886, 5], - ["frame", 9, 7, 3, 886, 5], - ["stone_text", 4], - ["setarg", 9, 1, 4, 886, 5], - ["setarg", 9, 2, 19, 886, 5], - ["setarg", 9, 3, 24, 886, 5], - ["invoke", 9, 4, 886, 5], - ["access", 4, "frame", 887, 12], - ["access", 7, 0, 887, 33], - ["get", 9, 56, 1, 887, 5], - ["frame", 11, 9, 4, 887, 5], - ["stone_text", 4], - ["setarg", 11, 1, 4, 887, 5], - ["setarg", 11, 2, 21, 887, 5], - ["setarg", 11, 3, 8, 887, 5], - ["setarg", 11, 4, 7, 887, 5], - ["invoke", 11, 4, 887, 5], - ["access", 4, "setarg", 888, 12], - ["access", 7, 0, 888, 25], - ["get", 9, 56, 1, 888, 5], - ["frame", 11, 9, 4, 888, 5], - ["stone_text", 4], - ["setarg", 11, 1, 4, 888, 5], - ["setarg", 11, 2, 21, 888, 5], - ["setarg", 11, 3, 7, 888, 5], - ["setarg", 11, 4, 13, 888, 5], - ["invoke", 11, 4, 888, 5], - ["access", 4, "invoke", 889, 12], - ["get", 7, 55, 1, 889, 5], - ["frame", 9, 7, 3, 889, 5], - ["stone_text", 4], - ["setarg", 9, 1, 4, 889, 5], - ["setarg", 9, 2, 21, 889, 5], - ["setarg", 9, 3, 5, 889, 5], - ["invoke", 9, 4, 889, 5], - ["get", 4, 63, 1, 890, 5], - ["frame", 7, 4, 1, 890, 5], - ["setarg", 7, 1, 26, 890, 5], - ["invoke", 7, 4, 890, 5], - ["get", 4, 52, 1, 891, 5], - ["frame", 7, 4, 1, 891, 5], - ["setarg", 7, 1, 24, 891, 5], - ["invoke", 7, 4, 891, 5], - ["access", 4, "eq", 892, 12], - ["get", 7, 56, 1, 892, 5], - ["frame", 9, 7, 4, 892, 5], - ["stone_text", 4], - ["setarg", 9, 1, 4, 892, 5], - ["setarg", 9, 2, 20, 892, 5], - ["setarg", 9, 3, 10, 892, 5], - ["setarg", 9, 4, 15, 892, 5], - ["invoke", 9, 4, 892, 5], - ["access", 4, "jump_false", 893, 20], - ["get", 7, 64, 1, 893, 5], - ["frame", 9, 7, 3, 893, 5], - ["stone_text", 4], - ["setarg", 9, 1, 4, 893, 5], - ["setarg", 9, 2, 20, 893, 5], - ["setarg", 9, 3, 25, 893, 5], - ["invoke", 9, 4, 893, 5], - ["access", 4, "frame", 894, 12], - ["access", 7, 1, 894, 33], - ["get", 9, 56, 1, 894, 5], - ["frame", 10, 9, 4, 894, 5], - ["stone_text", 4], - ["setarg", 10, 1, 4, 894, 5], - ["setarg", 10, 2, 21, 894, 5], - ["setarg", 10, 3, 8, 894, 5], - ["setarg", 10, 4, 7, 894, 5], - ["invoke", 10, 4, 894, 5], - ["access", 4, "setarg", 895, 12], - ["access", 7, 0, 895, 25], - ["get", 9, 56, 1, 895, 5], - ["frame", 10, 9, 4, 895, 5], - ["stone_text", 4], - ["setarg", 10, 1, 4, 895, 5], - ["setarg", 10, 2, 21, 895, 5], - ["setarg", 10, 3, 7, 895, 5], - ["setarg", 10, 4, 13, 895, 5], - ["invoke", 10, 4, 895, 5], - ["access", 4, "setarg", 896, 12], - ["access", 7, 1, 896, 25], - ["get", 9, 56, 1, 896, 5], - ["frame", 10, 9, 4, 896, 5], - ["stone_text", 4], - ["setarg", 10, 1, 4, 896, 5], - ["setarg", 10, 2, 21, 896, 5], - ["setarg", 10, 3, 7, 896, 5], - ["setarg", 10, 4, 5, 896, 5], - ["invoke", 10, 4, 896, 5], - ["access", 4, "invoke", 897, 12], - ["get", 7, 55, 1, 897, 5], - ["frame", 9, 7, 3, 897, 5], - ["stone_text", 4], + ["load_field", 4, 1, "prefix", 889, 30], + ["access", 5, "_c1", 889, 43], + ["is_text", 6, 4, 889, 43], + ["jump_false", 6, "add_cn_186", 889, 43], + "_nop_tc_1", + "_nop_tc_2", + ["concat", 7, 4, 5, 889, 43], + ["jump", "add_done_185", 889, 43], + "add_cn_186", + ["is_num", 6, 4, 889, 43], + ["jump_false", 6, "add_err_187", 889, 43], + "_nop_tc_3", + "_nop_dj_1", + "_nop_ucfg_1", + "_nop_ucfg_2", + "add_err_187", + [ + "access", + 4, + { + "name": "log", + "kind": "name", + "make": "intrinsic" + }, + 889, + 43 + ], + ["access", 5, "error", 889, 43], + ["access", 6, "cannot apply '+': operands must both be text or both be numbers", 889, 43], + ["array", 8, 0, 889, 43], + ["stone_text", 6], + ["push", 8, 6, 889, 43], + ["frame", 6, 4, 2, 889, 43], + ["null", 4, 889, 43], + ["setarg", 6, 0, 4, 889, 43], + ["stone_text", 5], + ["setarg", 6, 1, 5, 889, 43], + ["setarg", 6, 2, 8, 889, 43], + ["invoke", 6, 4, 889, 43], + ["disrupt", 889, 43], + "add_done_185", + ["get", 4, 51, 1, 889, 20], + ["frame", 5, 4, 1, 889, 20], + ["stone_text", 7], + ["setarg", 5, 1, 7, 889, 20], + ["invoke", 5, 4, 889, 20], + ["move", 5, 4, 889, 20], + ["load_field", 4, 1, "prefix", 890, 30], + ["access", 6, "_c2", 890, 43], + ["is_text", 7, 4, 890, 43], + ["jump_false", 7, "add_cn_189", 890, 43], + "_nop_tc_4", + "_nop_tc_5", + ["concat", 8, 4, 6, 890, 43], + ["jump", "add_done_188", 890, 43], + "add_cn_189", + ["is_num", 7, 4, 890, 43], + ["jump_false", 7, "add_err_190", 890, 43], + "_nop_tc_6", + "_nop_dj_2", + "_nop_ucfg_3", + "_nop_ucfg_4", + "add_err_190", + [ + "access", + 4, + { + "name": "log", + "kind": "name", + "make": "intrinsic" + }, + 890, + 43 + ], + ["access", 6, "error", 890, 43], + ["access", 7, "cannot apply '+': operands must both be text or both be numbers", 890, 43], + ["array", 9, 0, 890, 43], + ["stone_text", 7], + ["push", 9, 7, 890, 43], + ["frame", 7, 4, 2, 890, 43], + ["null", 4, 890, 43], + ["setarg", 7, 0, 4, 890, 43], + ["stone_text", 6], + ["setarg", 7, 1, 6, 890, 43], + ["setarg", 7, 2, 9, 890, 43], + ["invoke", 7, 4, 890, 43], + ["disrupt", 890, 43], + "add_done_188", + ["get", 4, 51, 1, 890, 20], + ["frame", 6, 4, 1, 890, 20], + ["stone_text", 8], + ["setarg", 6, 1, 8, 890, 20], + ["invoke", 6, 4, 890, 20], + ["move", 6, 4, 890, 20], + ["load_field", 4, 1, "prefix", 891, 31], + ["access", 7, "_cd", 891, 44], + ["is_text", 8, 4, 891, 44], + ["jump_false", 8, "add_cn_192", 891, 44], + "_nop_tc_7", + "_nop_tc_8", + ["concat", 9, 4, 7, 891, 44], + ["jump", "add_done_191", 891, 44], + "add_cn_192", + ["is_num", 8, 4, 891, 44], + ["jump_false", 8, "add_err_193", 891, 44], + "_nop_tc_9", + "_nop_dj_3", + "_nop_ucfg_5", + "_nop_ucfg_6", + "add_err_193", + [ + "access", + 4, + { + "name": "log", + "kind": "name", + "make": "intrinsic" + }, + 891, + 44 + ], + ["access", 7, "error", 891, 44], + ["access", 8, "cannot apply '+': operands must both be text or both be numbers", 891, 44], + ["array", 10, 0, 891, 44], + ["stone_text", 8], + ["push", 10, 8, 891, 44], + ["frame", 8, 4, 2, 891, 44], + ["null", 4, 891, 44], + ["setarg", 8, 0, 4, 891, 44], + ["stone_text", 7], + ["setarg", 8, 1, 7, 891, 44], + ["setarg", 8, 2, 10, 891, 44], + ["invoke", 8, 4, 891, 44], + ["disrupt", 891, 44], + "add_done_191", + ["get", 4, 51, 1, 891, 21], + ["frame", 7, 4, 1, 891, 21], + ["stone_text", 9], + ["setarg", 7, 1, 9, 891, 21], + ["invoke", 7, 4, 891, 21], + ["move", 7, 4, 891, 21], + ["access", 8, "eq", 892, 12], + ["load_field", 9, 1, "az", 892, 18], + ["load_field", 10, 1, "fn_arity", 892, 26], + ["load_field", 11, 1, "zero", 892, 40], + ["get", 12, 58, 1, 892, 5], + ["frame", 13, 12, 4, 892, 5], + ["stone_text", 8], + ["setarg", 13, 1, 8, 892, 5], + ["setarg", 13, 2, 9, 892, 5], + ["setarg", 13, 3, 10, 892, 5], + ["setarg", 13, 4, 11, 892, 5], + ["invoke", 13, 8, 892, 5], + ["access", 8, "jump_false", 893, 20], + ["load_field", 9, 1, "az", 893, 34], + ["get", 10, 66, 1, 893, 5], + ["frame", 11, 10, 3, 893, 5], + ["stone_text", 8], + ["setarg", 11, 1, 8, 893, 5], + ["setarg", 11, 2, 9, 893, 5], + ["setarg", 11, 3, 5, 893, 5], + ["invoke", 11, 8, 893, 5], + ["access", 8, "frame", 894, 12], + ["load_field", 9, 1, "frame", 894, 21], + ["load_field", 10, 1, "fn", 894, 32], + ["access", 11, 0, 894, 40], + ["get", 12, 58, 1, 894, 5], + ["frame", 13, 12, 4, 894, 5], + ["stone_text", 8], + ["setarg", 13, 1, 8, 894, 5], + ["setarg", 13, 2, 9, 894, 5], + ["setarg", 13, 3, 10, 894, 5], + ["setarg", 13, 4, 11, 894, 5], + ["invoke", 13, 8, 894, 5], + ["access", 8, "setarg", 895, 12], + ["load_field", 9, 1, "frame", 895, 22], + ["access", 10, 0, 895, 33], + ["load_field", 11, 1, "null_s", 895, 36], + ["get", 12, 58, 1, 895, 5], + ["frame", 13, 12, 4, 895, 5], + ["stone_text", 8], + ["setarg", 13, 1, 8, 895, 5], + ["setarg", 13, 2, 9, 895, 5], + ["setarg", 13, 3, 10, 895, 5], + ["setarg", 13, 4, 11, 895, 5], + ["invoke", 13, 8, 895, 5], + ["access", 8, "invoke", 896, 12], + ["load_field", 9, 1, "frame", 896, 22], + ["load_field", 10, 1, "result", 896, 33], + ["get", 11, 57, 1, 896, 5], + ["frame", 12, 11, 3, 896, 5], + ["stone_text", 8], + ["setarg", 12, 1, 8, 896, 5], + ["setarg", 12, 2, 9, 896, 5], + ["setarg", 12, 3, 10, 896, 5], + ["invoke", 12, 8, 896, 5], + ["get", 8, 65, 1, 897, 5], + ["frame", 9, 8, 1, 897, 5], ["setarg", 9, 1, 4, 897, 5], - ["setarg", 9, 2, 21, 897, 5], - ["setarg", 9, 3, 5, 897, 5], ["invoke", 9, 4, 897, 5], - ["get", 4, 63, 1, 898, 5], - ["frame", 7, 4, 1, 898, 5], - ["setarg", 7, 1, 26, 898, 5], - ["invoke", 7, 4, 898, 5], - ["get", 4, 52, 1, 899, 5], - ["frame", 7, 4, 1, 899, 5], - ["setarg", 7, 1, 25, 899, 5], - ["invoke", 7, 4, 899, 5], - ["access", 4, "frame", 900, 12], - ["access", 7, 2, 900, 33], - ["get", 9, 56, 1, 900, 5], - ["frame", 10, 9, 4, 900, 5], + ["get", 4, 54, 1, 898, 5], + ["frame", 8, 4, 1, 898, 5], + ["setarg", 8, 1, 5, 898, 5], + ["invoke", 8, 4, 898, 5], + ["access", 4, 2, 899, 21], + ["ge", 5, 3, 4, 899, 21], + ["jump_false", 5, "if_else_194", 899, 21], + ["access", 4, "eq", 900, 14], + ["load_field", 5, 1, "ao", 900, 20], + ["load_field", 8, 1, "fn_arity", 900, 28], + ["load_field", 9, 1, "one", 900, 42], + ["get", 10, 58, 1, 900, 7], + ["frame", 11, 10, 4, 900, 7], ["stone_text", 4], - ["setarg", 10, 1, 4, 900, 5], - ["setarg", 10, 2, 21, 900, 5], - ["setarg", 10, 3, 8, 900, 5], - ["setarg", 10, 4, 7, 900, 5], - ["invoke", 10, 4, 900, 5], - ["access", 4, "setarg", 901, 12], - ["access", 7, 0, 901, 25], - ["get", 8, 56, 1, 901, 5], - ["frame", 9, 8, 4, 901, 5], + ["setarg", 11, 1, 4, 900, 7], + ["setarg", 11, 2, 5, 900, 7], + ["setarg", 11, 3, 8, 900, 7], + ["setarg", 11, 4, 9, 900, 7], + ["invoke", 11, 4, 900, 7], + ["access", 4, "jump_false", 901, 22], + ["load_field", 5, 1, "ao", 901, 36], + ["get", 8, 66, 1, 901, 7], + ["frame", 9, 8, 3, 901, 7], ["stone_text", 4], - ["setarg", 9, 1, 4, 901, 5], - ["setarg", 9, 2, 21, 901, 5], - ["setarg", 9, 3, 7, 901, 5], - ["setarg", 9, 4, 13, 901, 5], - ["invoke", 9, 4, 901, 5], - ["access", 4, "setarg", 902, 12], - ["access", 7, 1, 902, 25], - ["get", 8, 56, 1, 902, 5], - ["frame", 9, 8, 4, 902, 5], + ["setarg", 9, 1, 4, 901, 7], + ["setarg", 9, 2, 5, 901, 7], + ["setarg", 9, 3, 6, 901, 7], + ["invoke", 9, 4, 901, 7], + ["jump", "if_end_195", 901, 7], + "if_else_194", + "if_end_195", + ["access", 4, "frame", 903, 12], + ["load_field", 5, 1, "frame", 903, 21], + ["load_field", 8, 1, "fn", 903, 32], + ["access", 9, 1, 903, 40], + ["get", 10, 58, 1, 903, 5], + ["frame", 11, 10, 4, 903, 5], ["stone_text", 4], - ["setarg", 9, 1, 4, 902, 5], - ["setarg", 9, 2, 21, 902, 5], - ["setarg", 9, 3, 7, 902, 5], - ["setarg", 9, 4, 5, 902, 5], - ["invoke", 9, 4, 902, 5], - ["access", 4, "setarg", 903, 12], - ["access", 7, 2, 903, 25], - ["get", 8, 56, 1, 903, 5], - ["frame", 9, 8, 4, 903, 5], + ["setarg", 11, 1, 4, 903, 5], + ["setarg", 11, 2, 5, 903, 5], + ["setarg", 11, 3, 8, 903, 5], + ["setarg", 11, 4, 9, 903, 5], + ["invoke", 11, 4, 903, 5], + ["access", 4, "setarg", 904, 12], + ["load_field", 5, 1, "frame", 904, 22], + ["access", 8, 0, 904, 33], + ["load_field", 9, 1, "null_s", 904, 36], + ["get", 10, 58, 1, 904, 5], + ["frame", 11, 10, 4, 904, 5], ["stone_text", 4], - ["setarg", 9, 1, 4, 903, 5], - ["setarg", 9, 2, 21, 903, 5], - ["setarg", 9, 3, 7, 903, 5], - ["setarg", 9, 4, 12, 903, 5], - ["invoke", 9, 4, 903, 5], - ["access", 4, "invoke", 904, 12], - ["get", 7, 55, 1, 904, 5], - ["frame", 8, 7, 3, 904, 5], + ["setarg", 11, 1, 4, 904, 5], + ["setarg", 11, 2, 5, 904, 5], + ["setarg", 11, 3, 8, 904, 5], + ["setarg", 11, 4, 9, 904, 5], + ["invoke", 11, 4, 904, 5], + ["access", 4, "setarg", 905, 12], + ["load_field", 5, 1, "frame", 905, 22], + ["access", 8, 1, 905, 33], + ["access", 9, 0, 905, 41], + ["load_index", 10, 2, 9, 905, 41], + ["get", 9, 58, 1, 905, 5], + ["frame", 11, 9, 4, 905, 5], ["stone_text", 4], - ["setarg", 8, 1, 4, 904, 5], - ["setarg", 8, 2, 21, 904, 5], - ["setarg", 8, 3, 5, 904, 5], - ["invoke", 8, 4, 904, 5], - ["get", 4, 52, 1, 905, 5], - ["frame", 5, 4, 1, 905, 5], - ["setarg", 5, 1, 26, 905, 5], - ["invoke", 5, 4, 905, 5], - ["jump_false", 2, "if_else_247", 906, 9], - ["access", 4, "add", 907, 14], - ["get", 5, 56, 1, 907, 7], - ["frame", 7, 5, 4, 907, 7], + ["setarg", 11, 1, 4, 905, 5], + ["setarg", 11, 2, 5, 905, 5], + ["setarg", 11, 3, 8, 905, 5], + ["setarg", 11, 4, 10, 905, 5], + ["invoke", 11, 4, 905, 5], + ["access", 4, "invoke", 906, 12], + ["load_field", 5, 1, "frame", 906, 22], + ["load_field", 8, 1, "result", 906, 33], + ["get", 9, 57, 1, 906, 5], + ["frame", 10, 9, 3, 906, 5], ["stone_text", 4], - ["setarg", 7, 1, 4, 907, 7], - ["setarg", 7, 2, 6, 907, 7], - ["setarg", 7, 3, 6, 907, 7], - ["setarg", 7, 4, 15, 907, 7], - ["invoke", 7, 4, 907, 7], - ["jump", "if_end_248", 907, 7], - "if_else_247", - ["access", 4, "subtract", 909, 14], - ["get", 5, 56, 1, 909, 7], - ["frame", 7, 5, 4, 909, 7], - ["stone_text", 4], - ["setarg", 7, 1, 4, 909, 7], - ["setarg", 7, 2, 6, 909, 7], - ["setarg", 7, 3, 6, 909, 7], - ["setarg", 7, 4, 15, 909, 7], - ["invoke", 7, 4, 909, 7], - "if_end_248", - ["get", 4, 63, 1, 911, 5], + ["setarg", 10, 1, 4, 906, 5], + ["setarg", 10, 2, 5, 906, 5], + ["setarg", 10, 3, 8, 906, 5], + ["invoke", 10, 4, 906, 5], + ["access", 4, 2, 907, 20], + ["lt", 5, 3, 4, 907, 20], + ["jump_false", 5, "if_else_196", 907, 20], + ["get", 4, 54, 1, 908, 7], + ["frame", 5, 4, 1, 908, 7], + ["setarg", 5, 1, 7, 908, 7], + ["invoke", 5, 4, 908, 7], + ["null", 4, 909, 14], + ["return", 4, 909, 14], + "_nop_ur_1", + "if_else_196", + "if_end_197", + ["get", 4, 65, 1, 911, 5], ["frame", 5, 4, 1, 911, 5], - ["setarg", 5, 1, 22, 911, 5], + ["setarg", 5, 1, 7, 911, 5], ["invoke", 5, 4, 911, 5], - ["null", 4, 911, 5], - ["return", 4, 911, 5] + ["get", 4, 54, 1, 912, 5], + ["frame", 5, 4, 1, 912, 5], + ["setarg", 5, 1, 6, 912, 5], + ["invoke", 5, 4, 912, 5], + ["access", 4, "frame", 913, 12], + ["load_field", 5, 1, "frame", 913, 21], + ["load_field", 6, 1, "fn", 913, 32], + ["access", 8, 2, 913, 40], + ["get", 9, 58, 1, 913, 5], + ["frame", 10, 9, 4, 913, 5], + ["stone_text", 4], + ["setarg", 10, 1, 4, 913, 5], + ["setarg", 10, 2, 5, 913, 5], + ["setarg", 10, 3, 6, 913, 5], + ["setarg", 10, 4, 8, 913, 5], + ["invoke", 10, 4, 913, 5], + ["access", 4, "setarg", 914, 12], + ["load_field", 5, 1, "frame", 914, 22], + ["access", 6, 0, 914, 33], + ["load_field", 8, 1, "null_s", 914, 36], + ["get", 9, 58, 1, 914, 5], + ["frame", 10, 9, 4, 914, 5], + ["stone_text", 4], + ["setarg", 10, 1, 4, 914, 5], + ["setarg", 10, 2, 5, 914, 5], + ["setarg", 10, 3, 6, 914, 5], + ["setarg", 10, 4, 8, 914, 5], + ["invoke", 10, 4, 914, 5], + ["access", 4, "setarg", 915, 12], + ["load_field", 5, 1, "frame", 915, 22], + ["access", 6, 1, 915, 33], + ["access", 8, 0, 915, 41], + ["load_index", 9, 2, 8, 915, 41], + ["get", 8, 58, 1, 915, 5], + ["frame", 10, 8, 4, 915, 5], + ["stone_text", 4], + ["setarg", 10, 1, 4, 915, 5], + ["setarg", 10, 2, 5, 915, 5], + ["setarg", 10, 3, 6, 915, 5], + ["setarg", 10, 4, 9, 915, 5], + ["invoke", 10, 4, 915, 5], + ["access", 4, "setarg", 916, 12], + ["load_field", 5, 1, "frame", 916, 22], + ["access", 6, 2, 916, 33], + ["access", 8, 1, 916, 41], + ["load_index", 9, 2, 8, 916, 41], + ["get", 8, 58, 1, 916, 5], + ["frame", 10, 8, 4, 916, 5], + ["stone_text", 4], + ["setarg", 10, 1, 4, 916, 5], + ["setarg", 10, 2, 5, 916, 5], + ["setarg", 10, 3, 6, 916, 5], + ["setarg", 10, 4, 9, 916, 5], + ["invoke", 10, 4, 916, 5], + ["access", 4, "invoke", 917, 12], + ["load_field", 5, 1, "frame", 917, 22], + ["load_field", 6, 1, "result", 917, 33], + ["get", 8, 57, 1, 917, 5], + ["frame", 9, 8, 3, 917, 5], + ["stone_text", 4], + ["setarg", 9, 1, 4, 917, 5], + ["setarg", 9, 2, 5, 917, 5], + ["setarg", 9, 3, 6, 917, 5], + ["invoke", 9, 4, 917, 5], + ["get", 4, 54, 1, 918, 5], + ["frame", 5, 4, 1, 918, 5], + ["setarg", 5, 1, 7, 918, 5], + ["invoke", 5, 4, 918, 5], + ["null", 4, 919, 12], + ["return", 4, 919, 12], + "_nop_ur_2", + "_nop_ur_3" ], - "_write_types": [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", null, null, null, null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", null, null, null, null, null, null, null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, "null"], + "_write_types": [null, null, null, null, null, null, null, null, "text", "text", "bool", null, null, "text", "text", "array", null, null, "null", null, null, null, null, "text", "text", "bool", null, null, "text", "text", "array", null, null, "null", null, null, null, null, "text", "text", "bool", null, null, "text", "text", "array", null, null, "null", null, null, null, "text", null, null, null, null, null, null, "text", null, null, null, null, "text", null, null, "int", null, null, null, "text", null, "int", null, null, null, null, "text", null, null, null, null, null, null, null, null, null, null, null, "int", "bool", "text", null, null, null, null, null, null, "text", null, null, null, null, "text", null, null, "int", null, null, null, "text", null, "int", null, null, null, null, "text", null, "int", "int", null, null, null, null, "text", null, null, null, null, null, "int", "bool", null, null, null, "null", null, null, null, null, null, null, "text", null, null, "int", null, null, null, "text", null, "int", null, null, null, null, "text", null, "int", "int", null, null, null, null, "text", null, "int", "int", null, null, null, null, "text", null, null, null, null, null, null, null, null, "null", null], "name": "", "filename": ".cell/packages/core/mcode.cm", "nr_args": 3 @@ -5035,369 +4372,723 @@ { "_closure_slot_types": {}, "disruption_pc": 0, - "nr_slots": 25, + "nr_slots": 9, "nr_close_slots": 0, "instructions": [ - ["get", 4, 44, 1, 916, 15], - ["frame", 5, 4, 0, 916, 15], - ["invoke", 5, 4, 916, 15], - ["move", 5, 4, 916, 15], - ["get", 5, 44, 1, 917, 13], - ["frame", 6, 5, 0, 917, 13], - ["invoke", 6, 5, 917, 13], - ["move", 6, 5, 917, 13], - ["get", 6, 44, 1, 918, 17], - ["frame", 7, 6, 0, 918, 17], - ["invoke", 7, 6, 918, 17], - ["move", 7, 6, 918, 17], - ["get", 7, 44, 1, 919, 16], - ["frame", 8, 7, 0, 919, 16], - ["invoke", 8, 7, 919, 16], - ["move", 8, 7, 919, 16], - ["get", 8, 44, 1, 920, 20], - ["frame", 9, 8, 0, 920, 20], - ["invoke", 9, 8, 920, 20], - ["move", 9, 8, 920, 20], - ["get", 9, 44, 1, 921, 25], - ["frame", 10, 9, 0, 921, 25], - ["invoke", 10, 9, 921, 25], - ["move", 10, 9, 921, 25], - ["get", 10, 44, 1, 922, 24], - ["frame", 11, 10, 0, 922, 24], - ["invoke", 11, 10, 922, 24], - ["move", 11, 10, 922, 24], - ["get", 11, 44, 1, 923, 18], - ["frame", 12, 11, 0, 923, 18], - ["invoke", 12, 11, 923, 18], - ["move", 12, 11, 923, 18], - ["get", 12, 44, 1, 924, 16], - ["frame", 13, 12, 0, 924, 16], - ["invoke", 13, 12, 924, 16], - ["move", 13, 12, 924, 16], - ["get", 13, 44, 1, 925, 15], - ["frame", 14, 13, 0, 925, 15], - ["invoke", 14, 13, 925, 15], - ["move", 14, 13, 925, 15], - ["get", 14, 44, 1, 926, 13], - ["frame", 15, 14, 0, 926, 13], - ["invoke", 15, 14, 926, 13], - ["move", 15, 14, 926, 13], - ["get", 15, 44, 1, 927, 19], - ["frame", 16, 15, 0, 927, 19], - ["invoke", 16, 15, 927, 19], - ["move", 16, 15, 927, 19], - ["access", 16, "arrfor_loop", 928, 32], - ["get", 17, 49, 1, 928, 22], - ["frame", 18, 17, 1, 928, 22], - ["stone_text", 16], - ["setarg", 18, 1, 16, 928, 22], - ["invoke", 18, 16, 928, 22], - ["move", 17, 16, 928, 22], - ["access", 17, "arrfor_done", 929, 32], - ["get", 18, 49, 1, 929, 22], - ["frame", 19, 18, 1, 929, 22], - ["stone_text", 17], - ["setarg", 19, 1, 17, 929, 22], - ["invoke", 19, 17, 929, 22], - ["move", 18, 17, 929, 22], - ["access", 18, "arrfor_call_one", 930, 36], - ["get", 19, 49, 1, 930, 26], - ["frame", 20, 19, 1, 930, 26], - ["stone_text", 18], - ["setarg", 20, 1, 18, 930, 26], - ["invoke", 20, 18, 930, 26], - ["move", 19, 18, 930, 26], - ["access", 19, "arrfor_call_two", 931, 36], - ["get", 20, 49, 1, 931, 26], - ["frame", 21, 20, 1, 931, 26], - ["stone_text", 19], - ["setarg", 21, 1, 19, 931, 26], - ["invoke", 21, 19, 931, 26], - ["move", 20, 19, 931, 26], - ["access", 20, "arrfor_call_done", 932, 37], - ["get", 21, 49, 1, 932, 27], - ["frame", 22, 21, 1, 932, 27], - ["stone_text", 20], - ["setarg", 22, 1, 20, 932, 27], - ["invoke", 22, 20, 932, 27], - ["move", 21, 20, 932, 27], - ["access", 21, "length", 933, 12], - ["get", 22, 55, 1, 933, 5], - ["frame", 23, 22, 3, 933, 5], - ["stone_text", 21], - ["setarg", 23, 1, 21, 933, 5], - ["setarg", 23, 2, 4, 933, 5], - ["setarg", 23, 3, 2, 933, 5], - ["invoke", 23, 21, 933, 5], - ["access", 21, "int", 934, 12], - ["access", 22, 0, 934, 22], - ["get", 23, 55, 1, 934, 5], - ["frame", 24, 23, 3, 934, 5], - ["stone_text", 21], - ["setarg", 24, 1, 21, 934, 5], - ["setarg", 24, 2, 5, 934, 5], - ["setarg", 24, 3, 22, 934, 5], - ["invoke", 24, 21, 934, 5], - ["access", 21, "int", 935, 12], - ["access", 22, 0, 935, 25], - ["get", 23, 55, 1, 935, 5], - ["frame", 24, 23, 3, 935, 5], - ["stone_text", 21], - ["setarg", 24, 1, 21, 935, 5], - ["setarg", 24, 2, 12, 935, 5], - ["setarg", 24, 3, 22, 935, 5], - ["invoke", 24, 21, 935, 5], - ["access", 21, "int", 936, 12], - ["access", 22, 1, 936, 24], - ["get", 23, 55, 1, 936, 5], - ["frame", 24, 23, 3, 936, 5], - ["stone_text", 21], - ["setarg", 24, 1, 21, 936, 5], - ["setarg", 24, 2, 13, 936, 5], - ["setarg", 24, 3, 22, 936, 5], - ["invoke", 24, 21, 936, 5], - ["access", 21, "null", 937, 12], - ["get", 22, 54, 1, 937, 5], - ["frame", 23, 22, 2, 937, 5], - ["stone_text", 21], - ["setarg", 23, 1, 21, 937, 5], - ["setarg", 23, 2, 11, 937, 5], - ["invoke", 23, 21, 937, 5], - ["access", 21, "length", 938, 12], - ["get", 22, 55, 1, 938, 5], - ["frame", 23, 22, 3, 938, 5], - ["stone_text", 21], - ["setarg", 23, 1, 21, 938, 5], - ["setarg", 23, 2, 8, 938, 5], - ["setarg", 23, 3, 3, 938, 5], - ["invoke", 23, 21, 938, 5], - ["get", 21, 52, 1, 939, 5], - ["frame", 22, 21, 1, 939, 5], - ["setarg", 22, 1, 16, 939, 5], - ["invoke", 22, 21, 939, 5], - ["access", 21, "lt", 940, 12], - ["get", 22, 56, 1, 940, 5], - ["frame", 23, 22, 4, 940, 5], - ["stone_text", 21], - ["setarg", 23, 1, 21, 940, 5], - ["setarg", 23, 2, 6, 940, 5], - ["setarg", 23, 3, 5, 940, 5], - ["setarg", 23, 4, 4, 940, 5], - ["invoke", 23, 4, 940, 5], - ["access", 4, "jump_false", 941, 20], - ["get", 21, 64, 1, 941, 5], - ["frame", 22, 21, 3, 941, 5], - ["stone_text", 4], - ["setarg", 22, 1, 4, 941, 5], - ["setarg", 22, 2, 6, 941, 5], - ["setarg", 22, 3, 17, 941, 5], - ["invoke", 22, 4, 941, 5], - ["access", 4, "load_index", 942, 12], - ["get", 6, 56, 1, 942, 5], - ["frame", 21, 6, 4, 942, 5], - ["stone_text", 4], - ["setarg", 21, 1, 4, 942, 5], - ["setarg", 21, 2, 7, 942, 5], - ["setarg", 21, 3, 2, 942, 5], - ["setarg", 21, 4, 5, 942, 5], - ["invoke", 21, 4, 942, 5], - ["access", 4, "eq", 943, 12], - ["get", 6, 56, 1, 943, 5], - ["frame", 21, 6, 4, 943, 5], - ["stone_text", 4], - ["setarg", 21, 1, 4, 943, 5], - ["setarg", 21, 2, 9, 943, 5], - ["setarg", 21, 3, 8, 943, 5], - ["setarg", 21, 4, 12, 943, 5], - ["invoke", 21, 4, 943, 5], - ["access", 4, "jump_false", 944, 20], - ["get", 6, 64, 1, 944, 5], - ["frame", 12, 6, 3, 944, 5], - ["stone_text", 4], - ["setarg", 12, 1, 4, 944, 5], - ["setarg", 12, 2, 9, 944, 5], - ["setarg", 12, 3, 18, 944, 5], - ["invoke", 12, 4, 944, 5], - ["access", 4, "frame", 945, 12], - ["access", 6, 0, 945, 33], - ["get", 9, 56, 1, 945, 5], - ["frame", 12, 9, 4, 945, 5], - ["stone_text", 4], - ["setarg", 12, 1, 4, 945, 5], - ["setarg", 12, 2, 14, 945, 5], - ["setarg", 12, 3, 3, 945, 5], - ["setarg", 12, 4, 6, 945, 5], - ["invoke", 12, 4, 945, 5], - ["access", 4, "setarg", 946, 12], - ["access", 6, 0, 946, 25], - ["get", 9, 56, 1, 946, 5], - ["frame", 12, 9, 4, 946, 5], - ["stone_text", 4], - ["setarg", 12, 1, 4, 946, 5], - ["setarg", 12, 2, 14, 946, 5], - ["setarg", 12, 3, 6, 946, 5], - ["setarg", 12, 4, 11, 946, 5], - ["invoke", 12, 4, 946, 5], - ["access", 4, "invoke", 947, 12], - ["get", 6, 55, 1, 947, 5], - ["frame", 9, 6, 3, 947, 5], - ["stone_text", 4], - ["setarg", 9, 1, 4, 947, 5], - ["setarg", 9, 2, 14, 947, 5], - ["setarg", 9, 3, 15, 947, 5], - ["invoke", 9, 4, 947, 5], - ["get", 4, 63, 1, 948, 5], - ["frame", 6, 4, 1, 948, 5], - ["setarg", 6, 1, 20, 948, 5], - ["invoke", 6, 4, 948, 5], - ["get", 4, 52, 1, 949, 5], - ["frame", 6, 4, 1, 949, 5], - ["setarg", 6, 1, 18, 949, 5], - ["invoke", 6, 4, 949, 5], - ["access", 4, "eq", 950, 12], - ["get", 6, 56, 1, 950, 5], - ["frame", 9, 6, 4, 950, 5], - ["stone_text", 4], - ["setarg", 9, 1, 4, 950, 5], - ["setarg", 9, 2, 10, 950, 5], - ["setarg", 9, 3, 8, 950, 5], - ["setarg", 9, 4, 13, 950, 5], - ["invoke", 9, 4, 950, 5], - ["access", 4, "jump_false", 951, 20], - ["get", 6, 64, 1, 951, 5], - ["frame", 8, 6, 3, 951, 5], - ["stone_text", 4], - ["setarg", 8, 1, 4, 951, 5], - ["setarg", 8, 2, 10, 951, 5], - ["setarg", 8, 3, 19, 951, 5], - ["invoke", 8, 4, 951, 5], - ["access", 4, "frame", 952, 12], - ["access", 6, 1, 952, 33], - ["get", 8, 56, 1, 952, 5], - ["frame", 9, 8, 4, 952, 5], - ["stone_text", 4], - ["setarg", 9, 1, 4, 952, 5], - ["setarg", 9, 2, 14, 952, 5], - ["setarg", 9, 3, 3, 952, 5], - ["setarg", 9, 4, 6, 952, 5], - ["invoke", 9, 4, 952, 5], - ["access", 4, "setarg", 953, 12], - ["access", 6, 0, 953, 25], - ["get", 8, 56, 1, 953, 5], - ["frame", 9, 8, 4, 953, 5], - ["stone_text", 4], - ["setarg", 9, 1, 4, 953, 5], - ["setarg", 9, 2, 14, 953, 5], - ["setarg", 9, 3, 6, 953, 5], - ["setarg", 9, 4, 11, 953, 5], - ["invoke", 9, 4, 953, 5], - ["access", 4, "setarg", 954, 12], - ["access", 6, 1, 954, 25], - ["get", 8, 56, 1, 954, 5], - ["frame", 9, 8, 4, 954, 5], - ["stone_text", 4], - ["setarg", 9, 1, 4, 954, 5], - ["setarg", 9, 2, 14, 954, 5], - ["setarg", 9, 3, 6, 954, 5], - ["setarg", 9, 4, 7, 954, 5], - ["invoke", 9, 4, 954, 5], - ["access", 4, "invoke", 955, 12], - ["get", 6, 55, 1, 955, 5], - ["frame", 8, 6, 3, 955, 5], - ["stone_text", 4], - ["setarg", 8, 1, 4, 955, 5], - ["setarg", 8, 2, 14, 955, 5], - ["setarg", 8, 3, 15, 955, 5], - ["invoke", 8, 4, 955, 5], - ["get", 4, 63, 1, 956, 5], - ["frame", 6, 4, 1, 956, 5], - ["setarg", 6, 1, 20, 956, 5], - ["invoke", 6, 4, 956, 5], - ["get", 4, 52, 1, 957, 5], - ["frame", 6, 4, 1, 957, 5], - ["setarg", 6, 1, 19, 957, 5], - ["invoke", 6, 4, 957, 5], - ["access", 4, "frame", 958, 12], - ["access", 6, 2, 958, 33], - ["get", 8, 56, 1, 958, 5], - ["frame", 9, 8, 4, 958, 5], - ["stone_text", 4], - ["setarg", 9, 1, 4, 958, 5], - ["setarg", 9, 2, 14, 958, 5], - ["setarg", 9, 3, 3, 958, 5], - ["setarg", 9, 4, 6, 958, 5], - ["invoke", 9, 4, 958, 5], - ["access", 4, "setarg", 959, 12], - ["access", 6, 0, 959, 25], - ["get", 8, 56, 1, 959, 5], - ["frame", 9, 8, 4, 959, 5], - ["stone_text", 4], - ["setarg", 9, 1, 4, 959, 5], - ["setarg", 9, 2, 14, 959, 5], - ["setarg", 9, 3, 6, 959, 5], - ["setarg", 9, 4, 11, 959, 5], - ["invoke", 9, 4, 959, 5], - ["access", 4, "setarg", 960, 12], - ["access", 6, 1, 960, 25], - ["get", 8, 56, 1, 960, 5], - ["frame", 9, 8, 4, 960, 5], - ["stone_text", 4], - ["setarg", 9, 1, 4, 960, 5], - ["setarg", 9, 2, 14, 960, 5], - ["setarg", 9, 3, 6, 960, 5], - ["setarg", 9, 4, 7, 960, 5], - ["invoke", 9, 4, 960, 5], - ["access", 4, "setarg", 961, 12], - ["access", 6, 2, 961, 25], - ["get", 7, 56, 1, 961, 5], - ["frame", 8, 7, 4, 961, 5], - ["stone_text", 4], - ["setarg", 8, 1, 4, 961, 5], - ["setarg", 8, 2, 14, 961, 5], - ["setarg", 8, 3, 6, 961, 5], - ["setarg", 8, 4, 5, 961, 5], - ["invoke", 8, 4, 961, 5], - ["access", 4, "invoke", 962, 12], - ["get", 6, 55, 1, 962, 5], - ["frame", 7, 6, 3, 962, 5], - ["stone_text", 4], - ["setarg", 7, 1, 4, 962, 5], - ["setarg", 7, 2, 14, 962, 5], - ["setarg", 7, 3, 15, 962, 5], - ["invoke", 7, 4, 962, 5], - ["get", 4, 52, 1, 963, 5], - ["frame", 6, 4, 1, 963, 5], - ["setarg", 6, 1, 20, 963, 5], - ["invoke", 6, 4, 963, 5], - ["access", 4, "add", 964, 12], - ["get", 6, 56, 1, 964, 5], - ["frame", 7, 6, 4, 964, 5], - ["stone_text", 4], - ["setarg", 7, 1, 4, 964, 5], - ["setarg", 7, 2, 5, 964, 5], - ["setarg", 7, 3, 5, 964, 5], - ["setarg", 7, 4, 13, 964, 5], - ["invoke", 7, 4, 964, 5], - ["get", 4, 63, 1, 965, 5], - ["frame", 5, 4, 1, 965, 5], - ["setarg", 5, 1, 16, 965, 5], - ["invoke", 5, 4, 965, 5], - ["get", 4, 52, 1, 966, 5], - ["frame", 5, 4, 1, 966, 5], - ["setarg", 5, 1, 17, 966, 5], - ["invoke", 5, 4, 966, 5], - ["access", 4, "null", 967, 12], - ["get", 5, 54, 1, 967, 5], - ["frame", 6, 5, 2, 967, 5], - ["stone_text", 4], - ["setarg", 6, 1, 4, 967, 5], - ["setarg", 6, 2, 1, 967, 5], - ["invoke", 6, 4, 967, 5], - ["return", 1, 968, 12], + ["access", 3, "int", 926, 12], + ["load_field", 4, 1, "i", 926, 19], + ["access", 5, 0, 926, 24], + ["get", 6, 57, 1, 926, 5], + ["frame", 7, 6, 3, 926, 5], + ["stone_text", 3], + ["setarg", 7, 1, 3, 926, 5], + ["setarg", 7, 2, 4, 926, 5], + ["setarg", 7, 3, 5, 926, 5], + ["invoke", 7, 3, 926, 5], + ["load_field", 3, 1, "loop_label", 927, 16], + ["get", 4, 54, 1, 927, 5], + ["frame", 5, 4, 1, 927, 5], + ["setarg", 5, 1, 3, 927, 5], + ["invoke", 5, 3, 927, 5], + ["access", 3, "lt", 928, 12], + ["load_field", 4, 1, "check", 928, 18], + ["load_field", 5, 1, "i", 928, 27], + ["load_field", 6, 1, "len", 928, 32], + ["get", 7, 58, 1, 928, 5], + ["frame", 8, 7, 4, 928, 5], + ["stone_text", 3], + ["setarg", 8, 1, 3, 928, 5], + ["setarg", 8, 2, 4, 928, 5], + ["setarg", 8, 3, 5, 928, 5], + ["setarg", 8, 4, 6, 928, 5], + ["invoke", 8, 3, 928, 5], + ["access", 3, "jump_false", 929, 20], + ["load_field", 4, 1, "check", 929, 34], + ["load_field", 5, 1, "done_label", 929, 43], + ["get", 6, 66, 1, 929, 5], + ["frame", 7, 6, 3, 929, 5], + ["stone_text", 3], + ["setarg", 7, 1, 3, 929, 5], + ["setarg", 7, 2, 4, 929, 5], + ["setarg", 7, 3, 5, 929, 5], + ["invoke", 7, 3, 929, 5], + ["access", 3, "load_index", 930, 12], + ["load_field", 4, 1, "item", 930, 26], + ["load_field", 5, 1, "arr", 930, 34], + ["load_field", 6, 1, "i", 930, 41], + ["get", 7, 58, 1, 930, 5], + ["frame", 8, 7, 4, 930, 5], + ["stone_text", 3], + ["setarg", 8, 1, 3, 930, 5], + ["setarg", 8, 2, 4, 930, 5], + ["setarg", 8, 3, 5, 930, 5], + ["setarg", 8, 4, 6, 930, 5], + ["invoke", 8, 3, 930, 5], + ["frame", 3, 2, 1, 931, 5], + ["setarg", 3, 1, 1, 931, 5], + ["invoke", 3, 4, 931, 5], + ["access", 3, "add", 932, 12], + ["load_field", 4, 1, "i", 932, 19], + ["load_field", 5, 1, "i", 932, 24], + ["load_field", 6, 1, "one", 932, 29], + ["get", 7, 58, 1, 932, 5], + ["frame", 8, 7, 4, 932, 5], + ["stone_text", 3], + ["setarg", 8, 1, 3, 932, 5], + ["setarg", 8, 2, 4, 932, 5], + ["setarg", 8, 3, 5, 932, 5], + ["setarg", 8, 4, 6, 932, 5], + ["invoke", 8, 3, 932, 5], + ["load_field", 3, 1, "loop_label", 933, 15], + ["get", 4, 65, 1, 933, 5], + ["frame", 5, 4, 1, 933, 5], + ["setarg", 5, 1, 3, 933, 5], + ["invoke", 5, 3, 933, 5], + ["load_field", 3, 1, "done_label", 934, 16], + ["get", 4, 54, 1, 934, 5], + ["frame", 5, 4, 1, 934, 5], + ["setarg", 5, 1, 3, 934, 5], + ["invoke", 5, 3, 934, 5], + ["null", 3, 935, 12], + ["return", 3, 935, 12], "_nop_ur_1", "_nop_ur_2" ], - "_write_types": [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", null, null, null, null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", null, null, null, null, null, null, null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", null, null, null, null, null, null, "text", null, null, null, null, null, null, null, null, null, "text", null, null, null, null], + "_write_types": [null, null, null, "text", null, "int", null, null, null, null, null, null, null, "text", null, null, null, null, null, null, "text", null, null, null, null, null, "text", null, null, null, null, null, null, null, null, "text", null, null, null, null, null, null, null, null, null, null, null, null, null, null, "null", null], + "name": "", + "filename": ".cell/packages/core/mcode.cm", + "nr_args": 2 + }, + { + "_closure_slot_types": {}, + "disruption_pc": 0, + "nr_slots": 10, + "nr_close_slots": 0, + "instructions": [ + ["get", 3, 46, 1, 940, 16], + ["frame", 4, 3, 0, 940, 16], + ["invoke", 4, 3, 940, 16], + ["move", 4, 3, 940, 16], + ["access", 4, "int", 941, 12], + ["access", 5, 0, 941, 25], + ["get", 6, 57, 1, 941, 5], + ["frame", 7, 6, 3, 941, 5], + ["stone_text", 4], + ["setarg", 7, 1, 4, 941, 5], + ["setarg", 7, 2, 3, 941, 5], + ["setarg", 7, 3, 5, 941, 5], + ["invoke", 7, 4, 941, 5], + ["access", 4, "subtract", 942, 12], + ["load_field", 5, 1, "i", 942, 24], + ["load_field", 6, 1, "len", 942, 29], + ["load_field", 7, 1, "one", 942, 36], + ["get", 8, 58, 1, 942, 5], + ["frame", 9, 8, 4, 942, 5], + ["stone_text", 4], + ["setarg", 9, 1, 4, 942, 5], + ["setarg", 9, 2, 5, 942, 5], + ["setarg", 9, 3, 6, 942, 5], + ["setarg", 9, 4, 7, 942, 5], + ["invoke", 9, 4, 942, 5], + ["load_field", 4, 1, "loop_label", 943, 16], + ["get", 5, 54, 1, 943, 5], + ["frame", 6, 5, 1, 943, 5], + ["setarg", 6, 1, 4, 943, 5], + ["invoke", 6, 4, 943, 5], + ["access", 4, "ge", 944, 12], + ["load_field", 5, 1, "check", 944, 18], + ["load_field", 6, 1, "i", 944, 27], + ["get", 7, 58, 1, 944, 5], + ["frame", 8, 7, 4, 944, 5], + ["stone_text", 4], + ["setarg", 8, 1, 4, 944, 5], + ["setarg", 8, 2, 5, 944, 5], + ["setarg", 8, 3, 6, 944, 5], + ["setarg", 8, 4, 3, 944, 5], + ["invoke", 8, 3, 944, 5], + ["access", 3, "jump_false", 945, 20], + ["load_field", 4, 1, "check", 945, 34], + ["load_field", 5, 1, "done_label", 945, 43], + ["get", 6, 66, 1, 945, 5], + ["frame", 7, 6, 3, 945, 5], + ["stone_text", 3], + ["setarg", 7, 1, 3, 945, 5], + ["setarg", 7, 2, 4, 945, 5], + ["setarg", 7, 3, 5, 945, 5], + ["invoke", 7, 3, 945, 5], + ["access", 3, "load_index", 946, 12], + ["load_field", 4, 1, "item", 946, 26], + ["load_field", 5, 1, "arr", 946, 34], + ["load_field", 6, 1, "i", 946, 41], + ["get", 7, 58, 1, 946, 5], + ["frame", 8, 7, 4, 946, 5], + ["stone_text", 3], + ["setarg", 8, 1, 3, 946, 5], + ["setarg", 8, 2, 4, 946, 5], + ["setarg", 8, 3, 5, 946, 5], + ["setarg", 8, 4, 6, 946, 5], + ["invoke", 8, 3, 946, 5], + ["frame", 3, 2, 1, 947, 5], + ["setarg", 3, 1, 1, 947, 5], + ["invoke", 3, 4, 947, 5], + ["access", 3, "subtract", 948, 12], + ["load_field", 4, 1, "i", 948, 24], + ["load_field", 5, 1, "i", 948, 29], + ["load_field", 6, 1, "one", 948, 34], + ["get", 7, 58, 1, 948, 5], + ["frame", 8, 7, 4, 948, 5], + ["stone_text", 3], + ["setarg", 8, 1, 3, 948, 5], + ["setarg", 8, 2, 4, 948, 5], + ["setarg", 8, 3, 5, 948, 5], + ["setarg", 8, 4, 6, 948, 5], + ["invoke", 8, 3, 948, 5], + ["load_field", 3, 1, "loop_label", 949, 15], + ["get", 4, 65, 1, 949, 5], + ["frame", 5, 4, 1, 949, 5], + ["setarg", 5, 1, 3, 949, 5], + ["invoke", 5, 3, 949, 5], + ["load_field", 3, 1, "done_label", 950, 16], + ["get", 4, 54, 1, 950, 5], + ["frame", 5, 4, 1, 950, 5], + ["setarg", 5, 1, 3, 950, 5], + ["invoke", 5, 3, 950, 5], + ["null", 3, 951, 12], + ["return", 3, 951, 12], + "_nop_ur_1", + "_nop_ur_2" + ], + "_write_types": [null, null, null, null, null, null, null, "text", "int", null, null, null, "text", null, null, null, null, null, null, null, null, null, null, "text", null, null, null, null, null, "text", null, null, null, null, null, "text", null, null, null, null, null, null, null, null, "text", null, null, null, null, null, null, null, null, null, null, null, null, null, null, "null", null], + "name": "", + "filename": ".cell/packages/core/mcode.cm", + "nr_args": 2 + }, + { + "_closure_slot_types": {}, + "disruption_pc": 0, + "nr_slots": 24, + "nr_close_slots": 0, + "instructions": [ + ["load_field", 4, 1, "acc", 958, 15], + ["move", 5, 4, 958, 15], + ["load_field", 6, 1, "i", 959, 13], + ["move", 7, 6, 959, 13], + ["load_field", 6, 1, "arr", 960, 20], + ["move", 8, 6, 960, 20], + ["load_field", 6, 1, "fn", 961, 19], + ["move", 9, 6, 961, 19], + ["load_field", 9, 1, "len", 962, 15], + ["move", 10, 9, 962, 15], + ["load_field", 9, 1, "fn_arity", 963, 20], + ["move", 11, 9, 963, 20], + ["get", 11, 46, 1, 964, 17], + ["frame", 12, 11, 0, 964, 17], + ["invoke", 12, 11, 964, 17], + ["move", 12, 11, 964, 17], + ["get", 11, 46, 1, 965, 16], + ["frame", 13, 11, 0, 965, 16], + ["invoke", 13, 11, 965, 16], + ["move", 13, 11, 965, 16], + ["get", 11, 46, 1, 966, 18], + ["frame", 14, 11, 0, 966, 18], + ["invoke", 14, 11, 966, 18], + ["move", 14, 11, 966, 18], + ["get", 14, 46, 1, 967, 15], + ["frame", 15, 14, 0, 967, 15], + ["invoke", 15, 14, 967, 15], + ["move", 15, 14, 967, 15], + ["get", 16, 46, 1, 968, 16], + ["frame", 17, 16, 0, 968, 16], + ["invoke", 17, 16, 968, 16], + ["move", 17, 16, 968, 16], + ["get", 18, 46, 1, 969, 14], + ["frame", 19, 18, 0, 969, 14], + ["invoke", 19, 18, 969, 14], + ["move", 19, 18, 969, 14], + ["get", 19, 46, 1, 970, 14], + ["frame", 20, 19, 0, 970, 14], + ["invoke", 20, 19, 970, 14], + ["move", 20, 19, 970, 14], + ["get", 20, 46, 1, 971, 13], + ["frame", 21, 20, 0, 971, 13], + ["invoke", 21, 20, 971, 13], + ["move", 21, 20, 971, 13], + ["access", 21, "reduce_loop", 972, 32], + ["get", 22, 51, 1, 972, 22], + ["frame", 23, 22, 1, 972, 22], + ["stone_text", 21], + ["setarg", 23, 1, 21, 972, 22], + ["invoke", 23, 21, 972, 22], + ["move", 22, 21, 972, 22], + ["record", 23, 10], + ["store_field", 23, 6, "fn", 973, 20], + ["store_field", 23, 9, "fn_arity", 973, 39], + ["store_field", 23, 4, "result", 973, 57], + ["store_field", 23, 11, "null_s", 973, 70], + ["store_field", 23, 20, "frame", 974, 23], + ["store_field", 23, 16, "zero", 974, 32], + ["store_field", 23, 14, "one", 974, 43], + ["store_field", 23, 18, "az", 974, 52], + ["store_field", 23, 19, "ao", 974, 60], + ["access", 4, "reduce", 974, 72], + ["store_field", 23, 4, "prefix", 974, 72], + ["move", 4, 23, 974, 72], + ["access", 6, "int", 975, 12], + ["access", 9, 1, 975, 24], + ["get", 18, 57, 1, 975, 5], + ["frame", 19, 18, 3, 975, 5], + ["stone_text", 6], + ["setarg", 19, 1, 6, 975, 5], + ["setarg", 19, 2, 14, 975, 5], + ["setarg", 19, 3, 9, 975, 5], + ["invoke", 19, 6, 975, 5], + ["access", 6, "int", 976, 12], + ["access", 9, 0, 976, 25], + ["get", 14, 57, 1, 976, 5], + ["frame", 18, 14, 3, 976, 5], + ["stone_text", 6], + ["setarg", 18, 1, 6, 976, 5], + ["setarg", 18, 2, 16, 976, 5], + ["setarg", 18, 3, 9, 976, 5], + ["invoke", 18, 6, 976, 5], + ["access", 6, "null", 977, 12], + ["get", 9, 56, 1, 977, 5], + ["frame", 14, 9, 2, 977, 5], + ["stone_text", 6], + ["setarg", 14, 1, 6, 977, 5], + ["setarg", 14, 2, 11, 977, 5], + ["invoke", 14, 6, 977, 5], + ["get", 6, 54, 1, 978, 5], + ["frame", 9, 6, 1, 978, 5], + ["setarg", 9, 1, 21, 978, 5], + ["invoke", 9, 6, 978, 5], + ["wary_false", 2, "if_else_198", 979, 9], + ["access", 6, "lt", 980, 14], + ["get", 9, 58, 1, 980, 7], + ["frame", 11, 9, 4, 980, 7], + ["stone_text", 6], + ["setarg", 11, 1, 6, 980, 7], + ["setarg", 11, 2, 12, 980, 7], + ["setarg", 11, 3, 7, 980, 7], + ["setarg", 11, 4, 10, 980, 7], + ["invoke", 11, 6, 980, 7], + ["jump", "if_end_199", 980, 7], + "if_else_198", + ["access", 6, "ge", 982, 14], + ["get", 9, 58, 1, 982, 7], + ["frame", 10, 9, 4, 982, 7], + ["stone_text", 6], + ["setarg", 10, 1, 6, 982, 7], + ["setarg", 10, 2, 12, 982, 7], + ["setarg", 10, 3, 7, 982, 7], + ["setarg", 10, 4, 17, 982, 7], + ["invoke", 10, 6, 982, 7], + "if_end_199", + ["access", 6, "jump_false", 984, 20], + ["get", 9, 66, 1, 984, 5], + ["frame", 10, 9, 3, 984, 5], + ["stone_text", 6], + ["setarg", 10, 1, 6, 984, 5], + ["setarg", 10, 2, 12, 984, 5], + ["setarg", 10, 3, 3, 984, 5], + ["invoke", 10, 6, 984, 5], + ["access", 6, "load_index", 985, 12], + ["get", 9, 58, 1, 985, 5], + ["frame", 10, 9, 4, 985, 5], + ["stone_text", 6], + ["setarg", 10, 1, 6, 985, 5], + ["setarg", 10, 2, 13, 985, 5], + ["setarg", 10, 3, 8, 985, 5], + ["setarg", 10, 4, 7, 985, 5], + ["invoke", 10, 6, 985, 5], + ["array", 6, 2, 986, 32], + ["push", 6, 5, 986, 32], + ["push", 6, 13, 986, 32], + ["access", 5, 2, 986, 39], + ["get", 8, 102, 1, 986, 5], + ["frame", 9, 8, 3, 986, 5], + ["setarg", 9, 1, 4, 986, 5], + ["setarg", 9, 2, 6, 986, 5], + ["setarg", 9, 3, 5, 986, 5], + ["invoke", 9, 4, 986, 5], + ["wary_false", 2, "if_else_200", 987, 9], + ["access", 4, "add", 988, 14], + ["get", 5, 58, 1, 988, 7], + ["frame", 6, 5, 4, 988, 7], + ["stone_text", 4], + ["setarg", 6, 1, 4, 988, 7], + ["setarg", 6, 2, 7, 988, 7], + ["setarg", 6, 3, 7, 988, 7], + ["setarg", 6, 4, 15, 988, 7], + ["invoke", 6, 4, 988, 7], + ["jump", "if_end_201", 988, 7], + "if_else_200", + ["access", 4, "subtract", 990, 14], + ["get", 5, 58, 1, 990, 7], + ["frame", 6, 5, 4, 990, 7], + ["stone_text", 4], + ["setarg", 6, 1, 4, 990, 7], + ["setarg", 6, 2, 7, 990, 7], + ["setarg", 6, 3, 7, 990, 7], + ["setarg", 6, 4, 15, 990, 7], + ["invoke", 6, 4, 990, 7], + "if_end_201", + ["get", 4, 65, 1, 992, 5], + ["frame", 5, 4, 1, 992, 5], + ["setarg", 5, 1, 22, 992, 5], + ["invoke", 5, 4, 992, 5], + ["null", 4, 992, 5], + ["return", 4, 992, 5] + ], + "_write_types": [null, null, null, null, null, null, null, null, null, "record", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "text", null, null, null, "record", "text", "text", "int", null, null, null, "text", "int", null, null, null, "text", null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "array", "int", null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, "null"], + "name": "", + "filename": ".cell/packages/core/mcode.cm", + "nr_args": 3 + }, + { + "_closure_slot_types": {}, + "disruption_pc": 0, + "nr_slots": 8, + "nr_close_slots": 0, + "instructions": [ + ["get", 2, 9, 1, 1023, 23], + ["load_field", 3, 1, "item", 1023, 29], + ["load_field", 4, 1, "i", 1023, 37], + ["array", 5, 2, 1023, 37], + ["push", 5, 3, 1023, 37], + ["push", 5, 4, 1023, 37], + ["access", 3, 2, 1023, 43], + ["get", 4, 102, 2, 1023, 7], + ["frame", 6, 4, 3, 1023, 7], + ["setarg", 6, 1, 2, 1023, 7], + ["setarg", 6, 2, 5, 1023, 7], + ["setarg", 6, 3, 3, 1023, 7], + ["invoke", 6, 2, 1023, 7], + ["get", 2, 3, 1, 1024, 11], + ["access", 3, 4, 1024, 20], + ["ge", 4, 2, 3, 1024, 20], + ["move", 2, 4, 1024, 20], + ["jump_false", 4, "and_end_204", 1024, 20], + ["get", 3, 2, 1, 1024, 25], + ["load_field", 4, 3, "exit", 1024, 25], + ["access", 3, 0, 1024, 38], + ["ge", 5, 4, 3, 1024, 38], + ["move", 2, 5, 1024, 38], + "and_end_204", + ["jump_false", 2, "if_else_202", 1024, 38], + ["access", 2, "eq", 1025, 16], + ["get", 3, 20, 1, 1025, 22], + ["get", 4, 18, 1, 1025, 32], + ["get", 5, 2, 1, 1025, 37], + ["load_field", 6, 5, "exit", 1025, 37], + ["get", 5, 58, 2, 1025, 9], + ["frame", 7, 5, 4, 1025, 9], + ["stone_text", 2], + ["setarg", 7, 1, 2, 1025, 9], + ["setarg", 7, 2, 3, 1025, 9], + ["setarg", 7, 3, 4, 1025, 9], + ["setarg", 7, 4, 6, 1025, 9], + ["invoke", 7, 2, 1025, 9], + ["access", 2, "jump_true", 1026, 24], + ["get", 3, 20, 1, 1026, 37], + ["get", 4, 21, 1, 1026, 47], + ["get", 5, 66, 2, 1026, 9], + ["frame", 6, 5, 3, 1026, 9], + ["stone_text", 2], + ["setarg", 6, 1, 2, 1026, 9], + ["setarg", 6, 2, 3, 1026, 9], + ["setarg", 6, 3, 4, 1026, 9], + ["invoke", 6, 2, 1026, 9], + ["jump", "if_end_203", 1026, 9], + "if_else_202", + "if_end_203", + ["null", 2, 1028, 14], + ["return", 2, 1028, 14], + "_nop_ur_1", + "_nop_ur_2" + ], + "_write_types": [null, null, null, null, null, "array", "int", null, null, null, null, "int", "bool", "bool", null, null, "int", "bool", "text", null, null, null, null, null, null, null, "text", null, null, null, null, null, "null", null], + "name": "", + "filename": ".cell/packages/core/mcode.cm", + "nr_args": 1 + }, + { + "_closure_slot_types": {}, + "disruption_pc": 0, + "nr_slots": 28, + "nr_close_slots": 18, + "instructions": [ + ["load_field", 4, 2, "arr", 997, 20], + ["move", 5, 4, 997, 20], + ["load_field", 5, 2, "fn", 998, 19], + ["move", 6, 5, 998, 19], + ["get", 6, 46, 1, 999, 15], + ["frame", 7, 6, 0, 999, 15], + ["invoke", 7, 6, 999, 15], + ["move", 7, 6, 999, 15], + ["get", 7, 46, 1, 1000, 13], + ["frame", 8, 7, 0, 1000, 13], + ["invoke", 8, 7, 1000, 13], + ["move", 8, 7, 1000, 13], + ["get", 8, 46, 1, 1001, 17], + ["frame", 9, 8, 0, 1001, 17], + ["invoke", 9, 8, 1001, 17], + ["move", 9, 8, 1001, 17], + ["get", 9, 46, 1, 1002, 16], + ["frame", 10, 9, 0, 1002, 16], + ["invoke", 10, 9, 1002, 16], + ["move", 10, 9, 1002, 16], + ["get", 10, 46, 1, 1003, 20], + ["frame", 11, 10, 0, 1003, 20], + ["invoke", 11, 10, 1003, 20], + ["move", 11, 10, 1003, 20], + ["get", 11, 46, 1, 1004, 14], + ["frame", 12, 11, 0, 1004, 14], + ["invoke", 12, 11, 1004, 14], + ["move", 12, 11, 1004, 14], + ["get", 12, 46, 1, 1005, 14], + ["frame", 13, 12, 0, 1005, 14], + ["invoke", 13, 12, 1005, 14], + ["move", 13, 12, 1005, 14], + ["get", 13, 46, 1, 1006, 18], + ["frame", 14, 13, 0, 1006, 18], + ["invoke", 14, 13, 1006, 18], + ["move", 14, 13, 1006, 18], + ["get", 14, 46, 1, 1007, 16], + ["frame", 15, 14, 0, 1007, 16], + ["invoke", 15, 14, 1007, 16], + ["move", 15, 14, 1007, 16], + ["get", 15, 46, 1, 1008, 15], + ["frame", 16, 15, 0, 1008, 15], + ["invoke", 16, 15, 1008, 15], + ["move", 16, 15, 1008, 15], + ["get", 16, 46, 1, 1009, 13], + ["frame", 17, 16, 0, 1009, 13], + ["invoke", 17, 16, 1009, 13], + ["move", 17, 16, 1009, 13], + ["get", 17, 46, 1, 1010, 15], + ["frame", 18, 17, 0, 1010, 15], + ["invoke", 18, 17, 1010, 15], + ["move", 18, 17, 1010, 15], + ["get", 19, 46, 1, 1011, 20], + ["frame", 20, 19, 0, 1011, 20], + ["invoke", 20, 19, 1011, 20], + ["move", 20, 19, 1011, 20], + ["access", 19, "arrfor_exit", 1012, 32], + ["get", 21, 51, 1, 1012, 22], + ["frame", 22, 21, 1, 1012, 22], + ["stone_text", 19], + ["setarg", 22, 1, 19, 1012, 22], + ["invoke", 22, 19, 1012, 22], + ["move", 21, 19, 1012, 22], + ["access", 19, "arrfor_final", 1013, 32], + ["get", 22, 51, 1, 1013, 22], + ["frame", 23, 22, 1, 1013, 22], + ["stone_text", 19], + ["setarg", 23, 1, 19, 1013, 22], + ["invoke", 23, 19, 1013, 22], + ["move", 22, 19, 1013, 22], + ["access", 19, "arrfor_rev", 1014, 31], + ["get", 23, 51, 1, 1014, 21], + ["frame", 24, 23, 1, 1014, 21], + ["stone_text", 19], + ["setarg", 24, 1, 19, 1014, 21], + ["invoke", 24, 19, 1014, 21], + ["move", 23, 19, 1014, 21], + ["access", 19, "arrfor_fwd_done", 1015, 33], + ["get", 24, 51, 1, 1015, 23], + ["frame", 25, 24, 1, 1015, 23], + ["stone_text", 19], + ["setarg", 25, 1, 19, 1015, 23], + ["invoke", 25, 19, 1015, 23], + ["move", 24, 19, 1015, 23], + ["record", 19, 8], + ["store_field", 19, 4, "arr", 1016, 23], + ["store_field", 19, 6, "len", 1016, 38], + ["store_field", 19, 7, "i", 1016, 46], + ["store_field", 19, 8, "check", 1016, 56], + ["store_field", 19, 9, "item", 1016, 69], + ["store_field", 19, 15, "one", 1016, 80], + ["access", 25, "arrfor_fwd", 1017, 40], + ["get", 26, 51, 1, 1017, 30], + ["frame", 27, 26, 1, 1017, 30], + ["stone_text", 25], + ["setarg", 27, 1, 25, 1017, 30], + ["invoke", 27, 25, 1017, 30], + ["store_field", 19, 25, "loop_label", 1017, 30], + ["access", 25, "arrfor_fwd_d", 1017, 77], + ["get", 26, 51, 1, 1017, 67], + ["frame", 27, 26, 1, 1017, 67], + ["stone_text", 25], + ["setarg", 27, 1, 25, 1017, 67], + ["invoke", 27, 25, 1017, 67], + ["store_field", 19, 25, "done_label", 1017, 67], + ["move", 25, 19, 1017, 67], + ["record", 19, 8], + ["store_field", 19, 4, "arr", 1018, 23], + ["store_field", 19, 6, "len", 1018, 38], + ["store_field", 19, 7, "i", 1018, 46], + ["store_field", 19, 8, "check", 1018, 56], + ["store_field", 19, 9, "item", 1018, 69], + ["store_field", 19, 15, "one", 1018, 80], + ["access", 7, "arrfor_rev_l", 1019, 40], + ["get", 8, 51, 1, 1019, 30], + ["frame", 9, 8, 1, 1019, 30], + ["stone_text", 7], + ["setarg", 9, 1, 7, 1019, 30], + ["invoke", 9, 7, 1019, 30], + ["store_field", 19, 7, "loop_label", 1019, 30], + ["access", 7, "arrfor_rev_d", 1019, 79], + ["get", 8, 51, 1, 1019, 69], + ["frame", 9, 8, 1, 1019, 69], + ["stone_text", 7], + ["setarg", 9, 1, 7, 1019, 69], + ["invoke", 9, 7, 1019, 69], + ["store_field", 19, 7, "done_label", 1019, 69], + ["move", 7, 19, 1019, 69], + ["record", 8, 10], + ["store_field", 8, 5, "fn", 1020, 20], + ["store_field", 8, 10, "fn_arity", 1020, 39], + ["store_field", 8, 17, "result", 1020, 57], + ["store_field", 8, 13, "null_s", 1020, 70], + ["store_field", 8, 16, "frame", 1021, 23], + ["store_field", 8, 14, "zero", 1021, 32], + ["store_field", 8, 15, "one", 1021, 43], + ["store_field", 8, 11, "az", 1021, 52], + ["store_field", 8, 12, "ao", 1021, 60], + ["access", 9, "arrfor", 1021, 72], + ["store_field", 8, 9, "prefix", 1021, 72], + ["move", 9, 8, 1021, 72], + ["function", 8, 55, 1022, 19], + ["move", 11, 8, 1022, 19], + ["access", 8, "length", 1030, 12], + ["get", 12, 57, 1, 1030, 5], + ["frame", 16, 12, 3, 1030, 5], + ["stone_text", 8], + ["setarg", 16, 1, 8, 1030, 5], + ["setarg", 16, 2, 6, 1030, 5], + ["setarg", 16, 3, 4, 1030, 5], + ["invoke", 16, 4, 1030, 5], + ["access", 4, "int", 1031, 12], + ["access", 6, 0, 1031, 25], + ["get", 8, 57, 1, 1031, 5], + ["frame", 12, 8, 3, 1031, 5], + ["stone_text", 4], + ["setarg", 12, 1, 4, 1031, 5], + ["setarg", 12, 2, 14, 1031, 5], + ["setarg", 12, 3, 6, 1031, 5], + ["invoke", 12, 4, 1031, 5], + ["access", 4, "int", 1032, 12], + ["access", 6, 1, 1032, 24], + ["get", 8, 57, 1, 1032, 5], + ["frame", 12, 8, 3, 1032, 5], + ["stone_text", 4], + ["setarg", 12, 1, 4, 1032, 5], + ["setarg", 12, 2, 15, 1032, 5], + ["setarg", 12, 3, 6, 1032, 5], + ["invoke", 12, 4, 1032, 5], + ["access", 4, "null", 1033, 12], + ["get", 6, 56, 1, 1033, 5], + ["frame", 8, 6, 2, 1033, 5], + ["stone_text", 4], + ["setarg", 8, 1, 4, 1033, 5], + ["setarg", 8, 2, 13, 1033, 5], + ["invoke", 8, 4, 1033, 5], + ["access", 4, "length", 1034, 12], + ["get", 6, 57, 1, 1034, 5], + ["frame", 8, 6, 3, 1034, 5], + ["stone_text", 4], + ["setarg", 8, 1, 4, 1034, 5], + ["setarg", 8, 2, 10, 1034, 5], + ["setarg", 8, 3, 5, 1034, 5], + ["invoke", 8, 4, 1034, 5], + ["access", 4, 2, 1035, 18], + ["le", 5, 3, 4, 1035, 18], + ["jump_false", 5, "if_else_205", 1035, 18], + ["get", 4, 103, 1, 1036, 7], + ["frame", 5, 4, 2, 1036, 7], + ["setarg", 5, 1, 25, 1036, 7], + ["setarg", 5, 2, 11, 1036, 7], + ["invoke", 5, 4, 1036, 7], + ["jump", "if_end_206", 1036, 7], + "if_else_205", + ["access", 4, "wary_true", 1038, 22], + ["load_field", 5, 2, "rev", 1038, 35], + ["get", 6, 66, 1, 1038, 7], + ["frame", 8, 6, 3, 1038, 7], + ["stone_text", 4], + ["setarg", 8, 1, 4, 1038, 7], + ["setarg", 8, 2, 5, 1038, 7], + ["setarg", 8, 3, 23, 1038, 7], + ["invoke", 8, 4, 1038, 7], + ["get", 4, 103, 1, 1039, 7], + ["frame", 5, 4, 2, 1039, 7], + ["setarg", 5, 1, 25, 1039, 7], + ["setarg", 5, 2, 11, 1039, 7], + ["invoke", 5, 4, 1039, 7], + ["get", 4, 65, 1, 1040, 7], + ["frame", 5, 4, 1, 1040, 7], + ["setarg", 5, 1, 24, 1040, 7], + ["invoke", 5, 4, 1040, 7], + ["get", 4, 54, 1, 1041, 7], + ["frame", 5, 4, 1, 1041, 7], + ["setarg", 5, 1, 23, 1041, 7], + ["invoke", 5, 4, 1041, 7], + ["get", 4, 104, 1, 1042, 7], + ["frame", 5, 4, 2, 1042, 7], + ["setarg", 5, 1, 7, 1042, 7], + ["setarg", 5, 2, 11, 1042, 7], + ["invoke", 5, 4, 1042, 7], + ["get", 4, 54, 1, 1043, 7], + ["frame", 5, 4, 1, 1043, 7], + ["setarg", 5, 1, 24, 1043, 7], + ["invoke", 5, 4, 1043, 7], + "if_end_206", + ["access", 4, "null", 1045, 12], + ["get", 5, 56, 1, 1045, 5], + ["frame", 6, 5, 2, 1045, 5], + ["stone_text", 4], + ["setarg", 6, 1, 4, 1045, 5], + ["setarg", 6, 2, 1, 1045, 5], + ["invoke", 6, 4, 1045, 5], + ["get", 4, 65, 1, 1046, 5], + ["frame", 5, 4, 1, 1046, 5], + ["setarg", 5, 1, 22, 1046, 5], + ["invoke", 5, 4, 1046, 5], + ["access", 4, 4, 1047, 18], + ["ge", 5, 3, 4, 1047, 18], + ["move", 4, 5, 1047, 18], + ["jump_false", 5, "and_end_209", 1047, 18], + ["load_field", 5, 2, "exit", 1047, 23], + ["access", 6, 0, 1047, 36], + ["ge", 7, 5, 6, 1047, 36], + ["move", 4, 7, 1047, 36], + "and_end_209", + ["jump_false", 4, "if_else_207", 1047, 36], + ["get", 4, 54, 1, 1048, 7], + ["frame", 5, 4, 1, 1048, 7], + ["setarg", 5, 1, 21, 1048, 7], + ["invoke", 5, 4, 1048, 7], + ["access", 4, "move", 1049, 14], + ["get", 5, 57, 1, 1049, 7], + ["frame", 6, 5, 3, 1049, 7], + ["stone_text", 4], + ["setarg", 6, 1, 4, 1049, 7], + ["setarg", 6, 2, 1, 1049, 7], + ["setarg", 6, 3, 18, 1049, 7], + ["invoke", 6, 4, 1049, 7], + ["jump", "if_end_208", 1049, 7], + "if_else_207", + "if_end_208", + ["get", 4, 54, 1, 1051, 5], + ["frame", 5, 4, 1, 1051, 5], + ["setarg", 5, 1, 22, 1051, 5], + ["invoke", 5, 4, 1051, 5], + ["return", 1, 1052, 12], + "_nop_ur_1", + "_nop_ur_2" + ], + "_write_types": [null, null, null, null, "record", null, null, null, null, null, null, "function", null, null, null, null, null, null, "record", null, null, null, null, null, "record", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "record", "text", null, null, null, "text", null, null, null, "record", "text", null, null, null, "text", null, null, null, "record", "text", "function", "text", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", null, null, null, "text", null, null, null, "int", "bool", null, null, null, "text", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "text", null, null, null, null, null, null, "int", "bool", "bool", null, "int", "bool", null, null, null, "text", null, null, null, null, null, null, null], "name": "", "filename": ".cell/packages/core/mcode.cm", "nr_args": 3 @@ -5408,319 +5099,319 @@ "nr_slots": 25, "nr_close_slots": 0, "instructions": [ - ["get", 4, 44, 1, 973, 15], - ["frame", 5, 4, 0, 973, 15], - ["invoke", 5, 4, 973, 15], - ["move", 5, 4, 973, 15], - ["get", 5, 44, 1, 974, 13], - ["frame", 6, 5, 0, 974, 13], - ["invoke", 6, 5, 974, 13], - ["move", 6, 5, 974, 13], - ["get", 6, 44, 1, 975, 17], - ["frame", 7, 6, 0, 975, 17], - ["invoke", 7, 6, 975, 17], - ["move", 7, 6, 975, 17], - ["get", 7, 44, 1, 976, 16], - ["frame", 8, 7, 0, 976, 16], - ["invoke", 8, 7, 976, 16], - ["move", 8, 7, 976, 16], - ["get", 8, 44, 1, 977, 20], - ["frame", 9, 8, 0, 977, 20], - ["invoke", 9, 8, 977, 20], - ["move", 9, 8, 977, 20], - ["get", 9, 44, 1, 978, 25], - ["frame", 10, 9, 0, 978, 25], - ["invoke", 10, 9, 978, 25], - ["move", 10, 9, 978, 25], - ["get", 10, 44, 1, 979, 18], - ["frame", 11, 10, 0, 979, 18], - ["invoke", 11, 10, 979, 18], - ["move", 11, 10, 979, 18], - ["get", 11, 44, 1, 980, 16], - ["frame", 12, 11, 0, 980, 16], - ["invoke", 12, 11, 980, 16], - ["move", 12, 11, 980, 16], - ["get", 12, 44, 1, 981, 15], - ["frame", 13, 12, 0, 981, 15], - ["invoke", 13, 12, 981, 15], - ["move", 13, 12, 981, 15], - ["get", 13, 44, 1, 982, 13], - ["frame", 14, 13, 0, 982, 13], - ["invoke", 14, 13, 982, 13], - ["move", 14, 13, 982, 13], - ["get", 14, 44, 1, 983, 15], - ["frame", 15, 14, 0, 983, 15], - ["invoke", 15, 14, 983, 15], - ["move", 15, 14, 983, 15], - ["access", 15, "every_loop", 984, 32], - ["get", 16, 49, 1, 984, 22], - ["frame", 17, 16, 1, 984, 22], + ["get", 4, 46, 1, 1057, 15], + ["frame", 5, 4, 0, 1057, 15], + ["invoke", 5, 4, 1057, 15], + ["move", 5, 4, 1057, 15], + ["get", 5, 46, 1, 1058, 13], + ["frame", 6, 5, 0, 1058, 13], + ["invoke", 6, 5, 1058, 13], + ["move", 6, 5, 1058, 13], + ["get", 6, 46, 1, 1059, 17], + ["frame", 7, 6, 0, 1059, 17], + ["invoke", 7, 6, 1059, 17], + ["move", 7, 6, 1059, 17], + ["get", 7, 46, 1, 1060, 16], + ["frame", 8, 7, 0, 1060, 16], + ["invoke", 8, 7, 1060, 16], + ["move", 8, 7, 1060, 16], + ["get", 8, 46, 1, 1061, 20], + ["frame", 9, 8, 0, 1061, 20], + ["invoke", 9, 8, 1061, 20], + ["move", 9, 8, 1061, 20], + ["get", 9, 46, 1, 1062, 25], + ["frame", 10, 9, 0, 1062, 25], + ["invoke", 10, 9, 1062, 25], + ["move", 10, 9, 1062, 25], + ["get", 10, 46, 1, 1063, 18], + ["frame", 11, 10, 0, 1063, 18], + ["invoke", 11, 10, 1063, 18], + ["move", 11, 10, 1063, 18], + ["get", 11, 46, 1, 1064, 16], + ["frame", 12, 11, 0, 1064, 16], + ["invoke", 12, 11, 1064, 16], + ["move", 12, 11, 1064, 16], + ["get", 12, 46, 1, 1065, 15], + ["frame", 13, 12, 0, 1065, 15], + ["invoke", 13, 12, 1065, 15], + ["move", 13, 12, 1065, 15], + ["get", 13, 46, 1, 1066, 13], + ["frame", 14, 13, 0, 1066, 13], + ["invoke", 14, 13, 1066, 13], + ["move", 14, 13, 1066, 13], + ["get", 14, 46, 1, 1067, 15], + ["frame", 15, 14, 0, 1067, 15], + ["invoke", 15, 14, 1067, 15], + ["move", 15, 14, 1067, 15], + ["access", 15, "every_loop", 1068, 32], + ["get", 16, 51, 1, 1068, 22], + ["frame", 17, 16, 1, 1068, 22], ["stone_text", 15], - ["setarg", 17, 1, 15, 984, 22], - ["invoke", 17, 15, 984, 22], - ["move", 16, 15, 984, 22], - ["access", 16, "every_call_one", 985, 36], - ["get", 17, 49, 1, 985, 26], - ["frame", 18, 17, 1, 985, 26], + ["setarg", 17, 1, 15, 1068, 22], + ["invoke", 17, 15, 1068, 22], + ["move", 16, 15, 1068, 22], + ["access", 16, "every_call_one", 1069, 36], + ["get", 17, 51, 1, 1069, 26], + ["frame", 18, 17, 1, 1069, 26], ["stone_text", 16], - ["setarg", 18, 1, 16, 985, 26], - ["invoke", 18, 16, 985, 26], - ["move", 17, 16, 985, 26], - ["access", 17, "every_call_done", 986, 37], - ["get", 18, 49, 1, 986, 27], - ["frame", 19, 18, 1, 986, 27], + ["setarg", 18, 1, 16, 1069, 26], + ["invoke", 18, 16, 1069, 26], + ["move", 17, 16, 1069, 26], + ["access", 17, "every_call_done", 1070, 37], + ["get", 18, 51, 1, 1070, 27], + ["frame", 19, 18, 1, 1070, 27], ["stone_text", 17], - ["setarg", 19, 1, 17, 986, 27], - ["invoke", 19, 17, 986, 27], - ["move", 18, 17, 986, 27], - ["access", 18, "every_true", 987, 30], - ["get", 19, 49, 1, 987, 20], - ["frame", 20, 19, 1, 987, 20], + ["setarg", 19, 1, 17, 1070, 27], + ["invoke", 19, 17, 1070, 27], + ["move", 18, 17, 1070, 27], + ["access", 18, "every_true", 1071, 30], + ["get", 19, 51, 1, 1071, 20], + ["frame", 20, 19, 1, 1071, 20], ["stone_text", 18], - ["setarg", 20, 1, 18, 987, 20], - ["invoke", 20, 18, 987, 20], - ["move", 19, 18, 987, 20], - ["access", 19, "every_false", 988, 31], - ["get", 20, 49, 1, 988, 21], - ["frame", 21, 20, 1, 988, 21], + ["setarg", 20, 1, 18, 1071, 20], + ["invoke", 20, 18, 1071, 20], + ["move", 19, 18, 1071, 20], + ["access", 19, "every_false", 1072, 31], + ["get", 20, 51, 1, 1072, 21], + ["frame", 21, 20, 1, 1072, 21], ["stone_text", 19], - ["setarg", 21, 1, 19, 988, 21], - ["invoke", 21, 19, 988, 21], - ["move", 20, 19, 988, 21], - ["access", 20, "every_done", 989, 32], - ["get", 21, 49, 1, 989, 22], - ["frame", 22, 21, 1, 989, 22], + ["setarg", 21, 1, 19, 1072, 21], + ["invoke", 21, 19, 1072, 21], + ["move", 20, 19, 1072, 21], + ["access", 20, "every_done", 1073, 32], + ["get", 21, 51, 1, 1073, 22], + ["frame", 22, 21, 1, 1073, 22], ["stone_text", 20], - ["setarg", 22, 1, 20, 989, 22], - ["invoke", 22, 20, 989, 22], - ["move", 21, 20, 989, 22], - ["access", 21, "length", 990, 12], - ["get", 22, 55, 1, 990, 5], - ["frame", 23, 22, 3, 990, 5], + ["setarg", 22, 1, 20, 1073, 22], + ["invoke", 22, 20, 1073, 22], + ["move", 21, 20, 1073, 22], + ["access", 21, "length", 1074, 12], + ["get", 22, 57, 1, 1074, 5], + ["frame", 23, 22, 3, 1074, 5], ["stone_text", 21], - ["setarg", 23, 1, 21, 990, 5], - ["setarg", 23, 2, 4, 990, 5], - ["setarg", 23, 3, 2, 990, 5], - ["invoke", 23, 21, 990, 5], - ["access", 21, "int", 991, 12], - ["access", 22, 0, 991, 22], - ["get", 23, 55, 1, 991, 5], - ["frame", 24, 23, 3, 991, 5], + ["setarg", 23, 1, 21, 1074, 5], + ["setarg", 23, 2, 4, 1074, 5], + ["setarg", 23, 3, 2, 1074, 5], + ["invoke", 23, 21, 1074, 5], + ["access", 21, "int", 1075, 12], + ["access", 22, 0, 1075, 22], + ["get", 23, 57, 1, 1075, 5], + ["frame", 24, 23, 3, 1075, 5], ["stone_text", 21], - ["setarg", 24, 1, 21, 991, 5], - ["setarg", 24, 2, 5, 991, 5], - ["setarg", 24, 3, 22, 991, 5], - ["invoke", 24, 21, 991, 5], - ["access", 21, "int", 992, 12], - ["access", 22, 0, 992, 25], - ["get", 23, 55, 1, 992, 5], - ["frame", 24, 23, 3, 992, 5], + ["setarg", 24, 1, 21, 1075, 5], + ["setarg", 24, 2, 5, 1075, 5], + ["setarg", 24, 3, 22, 1075, 5], + ["invoke", 24, 21, 1075, 5], + ["access", 21, "int", 1076, 12], + ["access", 22, 0, 1076, 25], + ["get", 23, 57, 1, 1076, 5], + ["frame", 24, 23, 3, 1076, 5], ["stone_text", 21], - ["setarg", 24, 1, 21, 992, 5], - ["setarg", 24, 2, 11, 992, 5], - ["setarg", 24, 3, 22, 992, 5], - ["invoke", 24, 21, 992, 5], - ["access", 21, "int", 993, 12], - ["access", 22, 1, 993, 24], - ["get", 23, 55, 1, 993, 5], - ["frame", 24, 23, 3, 993, 5], + ["setarg", 24, 1, 21, 1076, 5], + ["setarg", 24, 2, 11, 1076, 5], + ["setarg", 24, 3, 22, 1076, 5], + ["invoke", 24, 21, 1076, 5], + ["access", 21, "int", 1077, 12], + ["access", 22, 1, 1077, 24], + ["get", 23, 57, 1, 1077, 5], + ["frame", 24, 23, 3, 1077, 5], ["stone_text", 21], - ["setarg", 24, 1, 21, 993, 5], - ["setarg", 24, 2, 12, 993, 5], - ["setarg", 24, 3, 22, 993, 5], - ["invoke", 24, 21, 993, 5], - ["access", 21, "null", 994, 12], - ["get", 22, 54, 1, 994, 5], - ["frame", 23, 22, 2, 994, 5], + ["setarg", 24, 1, 21, 1077, 5], + ["setarg", 24, 2, 12, 1077, 5], + ["setarg", 24, 3, 22, 1077, 5], + ["invoke", 24, 21, 1077, 5], + ["access", 21, "null", 1078, 12], + ["get", 22, 56, 1, 1078, 5], + ["frame", 23, 22, 2, 1078, 5], ["stone_text", 21], - ["setarg", 23, 1, 21, 994, 5], - ["setarg", 23, 2, 10, 994, 5], - ["invoke", 23, 21, 994, 5], - ["access", 21, "length", 995, 12], - ["get", 22, 55, 1, 995, 5], - ["frame", 23, 22, 3, 995, 5], + ["setarg", 23, 1, 21, 1078, 5], + ["setarg", 23, 2, 10, 1078, 5], + ["invoke", 23, 21, 1078, 5], + ["access", 21, "length", 1079, 12], + ["get", 22, 57, 1, 1079, 5], + ["frame", 23, 22, 3, 1079, 5], ["stone_text", 21], - ["setarg", 23, 1, 21, 995, 5], - ["setarg", 23, 2, 8, 995, 5], - ["setarg", 23, 3, 3, 995, 5], - ["invoke", 23, 21, 995, 5], - ["get", 21, 52, 1, 996, 5], - ["frame", 22, 21, 1, 996, 5], - ["setarg", 22, 1, 15, 996, 5], - ["invoke", 22, 21, 996, 5], - ["access", 21, "lt", 997, 12], - ["get", 22, 56, 1, 997, 5], - ["frame", 23, 22, 4, 997, 5], + ["setarg", 23, 1, 21, 1079, 5], + ["setarg", 23, 2, 8, 1079, 5], + ["setarg", 23, 3, 3, 1079, 5], + ["invoke", 23, 21, 1079, 5], + ["get", 21, 54, 1, 1080, 5], + ["frame", 22, 21, 1, 1080, 5], + ["setarg", 22, 1, 15, 1080, 5], + ["invoke", 22, 21, 1080, 5], + ["access", 21, "lt", 1081, 12], + ["get", 22, 58, 1, 1081, 5], + ["frame", 23, 22, 4, 1081, 5], ["stone_text", 21], - ["setarg", 23, 1, 21, 997, 5], - ["setarg", 23, 2, 6, 997, 5], - ["setarg", 23, 3, 5, 997, 5], - ["setarg", 23, 4, 4, 997, 5], - ["invoke", 23, 4, 997, 5], - ["access", 4, "jump_false", 998, 20], - ["get", 21, 64, 1, 998, 5], - ["frame", 22, 21, 3, 998, 5], + ["setarg", 23, 1, 21, 1081, 5], + ["setarg", 23, 2, 6, 1081, 5], + ["setarg", 23, 3, 5, 1081, 5], + ["setarg", 23, 4, 4, 1081, 5], + ["invoke", 23, 4, 1081, 5], + ["access", 4, "jump_false", 1082, 20], + ["get", 21, 66, 1, 1082, 5], + ["frame", 22, 21, 3, 1082, 5], ["stone_text", 4], - ["setarg", 22, 1, 4, 998, 5], - ["setarg", 22, 2, 6, 998, 5], - ["setarg", 22, 3, 18, 998, 5], - ["invoke", 22, 4, 998, 5], - ["access", 4, "load_index", 999, 12], - ["get", 6, 56, 1, 999, 5], - ["frame", 21, 6, 4, 999, 5], + ["setarg", 22, 1, 4, 1082, 5], + ["setarg", 22, 2, 6, 1082, 5], + ["setarg", 22, 3, 18, 1082, 5], + ["invoke", 22, 4, 1082, 5], + ["access", 4, "load_index", 1083, 12], + ["get", 6, 58, 1, 1083, 5], + ["frame", 21, 6, 4, 1083, 5], ["stone_text", 4], - ["setarg", 21, 1, 4, 999, 5], - ["setarg", 21, 2, 7, 999, 5], - ["setarg", 21, 3, 2, 999, 5], - ["setarg", 21, 4, 5, 999, 5], - ["invoke", 21, 4, 999, 5], - ["access", 4, "eq", 1000, 12], - ["get", 6, 56, 1, 1000, 5], - ["frame", 21, 6, 4, 1000, 5], + ["setarg", 21, 1, 4, 1083, 5], + ["setarg", 21, 2, 7, 1083, 5], + ["setarg", 21, 3, 2, 1083, 5], + ["setarg", 21, 4, 5, 1083, 5], + ["invoke", 21, 4, 1083, 5], + ["access", 4, "eq", 1084, 12], + ["get", 6, 58, 1, 1084, 5], + ["frame", 21, 6, 4, 1084, 5], ["stone_text", 4], - ["setarg", 21, 1, 4, 1000, 5], - ["setarg", 21, 2, 9, 1000, 5], - ["setarg", 21, 3, 8, 1000, 5], - ["setarg", 21, 4, 11, 1000, 5], - ["invoke", 21, 4, 1000, 5], - ["access", 4, "jump_false", 1001, 20], - ["get", 6, 64, 1, 1001, 5], - ["frame", 8, 6, 3, 1001, 5], + ["setarg", 21, 1, 4, 1084, 5], + ["setarg", 21, 2, 9, 1084, 5], + ["setarg", 21, 3, 8, 1084, 5], + ["setarg", 21, 4, 11, 1084, 5], + ["invoke", 21, 4, 1084, 5], + ["access", 4, "jump_false", 1085, 20], + ["get", 6, 66, 1, 1085, 5], + ["frame", 8, 6, 3, 1085, 5], ["stone_text", 4], - ["setarg", 8, 1, 4, 1001, 5], - ["setarg", 8, 2, 9, 1001, 5], - ["setarg", 8, 3, 16, 1001, 5], - ["invoke", 8, 4, 1001, 5], - ["access", 4, "frame", 1002, 12], - ["access", 6, 0, 1002, 33], - ["get", 8, 56, 1, 1002, 5], - ["frame", 9, 8, 4, 1002, 5], + ["setarg", 8, 1, 4, 1085, 5], + ["setarg", 8, 2, 9, 1085, 5], + ["setarg", 8, 3, 16, 1085, 5], + ["invoke", 8, 4, 1085, 5], + ["access", 4, "frame", 1086, 12], + ["access", 6, 0, 1086, 33], + ["get", 8, 58, 1, 1086, 5], + ["frame", 9, 8, 4, 1086, 5], ["stone_text", 4], - ["setarg", 9, 1, 4, 1002, 5], - ["setarg", 9, 2, 13, 1002, 5], - ["setarg", 9, 3, 3, 1002, 5], - ["setarg", 9, 4, 6, 1002, 5], - ["invoke", 9, 4, 1002, 5], - ["access", 4, "setarg", 1003, 12], - ["access", 6, 0, 1003, 25], - ["get", 8, 56, 1, 1003, 5], - ["frame", 9, 8, 4, 1003, 5], + ["setarg", 9, 1, 4, 1086, 5], + ["setarg", 9, 2, 13, 1086, 5], + ["setarg", 9, 3, 3, 1086, 5], + ["setarg", 9, 4, 6, 1086, 5], + ["invoke", 9, 4, 1086, 5], + ["access", 4, "setarg", 1087, 12], + ["access", 6, 0, 1087, 25], + ["get", 8, 58, 1, 1087, 5], + ["frame", 9, 8, 4, 1087, 5], ["stone_text", 4], - ["setarg", 9, 1, 4, 1003, 5], - ["setarg", 9, 2, 13, 1003, 5], - ["setarg", 9, 3, 6, 1003, 5], - ["setarg", 9, 4, 10, 1003, 5], - ["invoke", 9, 4, 1003, 5], - ["access", 4, "invoke", 1004, 12], - ["get", 6, 55, 1, 1004, 5], - ["frame", 8, 6, 3, 1004, 5], + ["setarg", 9, 1, 4, 1087, 5], + ["setarg", 9, 2, 13, 1087, 5], + ["setarg", 9, 3, 6, 1087, 5], + ["setarg", 9, 4, 10, 1087, 5], + ["invoke", 9, 4, 1087, 5], + ["access", 4, "invoke", 1088, 12], + ["get", 6, 57, 1, 1088, 5], + ["frame", 8, 6, 3, 1088, 5], ["stone_text", 4], - ["setarg", 8, 1, 4, 1004, 5], - ["setarg", 8, 2, 13, 1004, 5], - ["setarg", 8, 3, 14, 1004, 5], - ["invoke", 8, 4, 1004, 5], - ["get", 4, 63, 1, 1005, 5], - ["frame", 6, 4, 1, 1005, 5], - ["setarg", 6, 1, 17, 1005, 5], - ["invoke", 6, 4, 1005, 5], - ["get", 4, 52, 1, 1006, 5], - ["frame", 6, 4, 1, 1006, 5], - ["setarg", 6, 1, 16, 1006, 5], - ["invoke", 6, 4, 1006, 5], - ["access", 4, "frame", 1007, 12], - ["access", 6, 1, 1007, 33], - ["get", 8, 56, 1, 1007, 5], - ["frame", 9, 8, 4, 1007, 5], + ["setarg", 8, 1, 4, 1088, 5], + ["setarg", 8, 2, 13, 1088, 5], + ["setarg", 8, 3, 14, 1088, 5], + ["invoke", 8, 4, 1088, 5], + ["get", 4, 65, 1, 1089, 5], + ["frame", 6, 4, 1, 1089, 5], + ["setarg", 6, 1, 17, 1089, 5], + ["invoke", 6, 4, 1089, 5], + ["get", 4, 54, 1, 1090, 5], + ["frame", 6, 4, 1, 1090, 5], + ["setarg", 6, 1, 16, 1090, 5], + ["invoke", 6, 4, 1090, 5], + ["access", 4, "frame", 1091, 12], + ["access", 6, 1, 1091, 33], + ["get", 8, 58, 1, 1091, 5], + ["frame", 9, 8, 4, 1091, 5], ["stone_text", 4], - ["setarg", 9, 1, 4, 1007, 5], - ["setarg", 9, 2, 13, 1007, 5], - ["setarg", 9, 3, 3, 1007, 5], - ["setarg", 9, 4, 6, 1007, 5], - ["invoke", 9, 4, 1007, 5], - ["access", 4, "setarg", 1008, 12], - ["access", 6, 0, 1008, 25], - ["get", 8, 56, 1, 1008, 5], - ["frame", 9, 8, 4, 1008, 5], + ["setarg", 9, 1, 4, 1091, 5], + ["setarg", 9, 2, 13, 1091, 5], + ["setarg", 9, 3, 3, 1091, 5], + ["setarg", 9, 4, 6, 1091, 5], + ["invoke", 9, 4, 1091, 5], + ["access", 4, "setarg", 1092, 12], + ["access", 6, 0, 1092, 25], + ["get", 8, 58, 1, 1092, 5], + ["frame", 9, 8, 4, 1092, 5], ["stone_text", 4], - ["setarg", 9, 1, 4, 1008, 5], - ["setarg", 9, 2, 13, 1008, 5], - ["setarg", 9, 3, 6, 1008, 5], - ["setarg", 9, 4, 10, 1008, 5], - ["invoke", 9, 4, 1008, 5], - ["access", 4, "setarg", 1009, 12], - ["access", 6, 1, 1009, 25], - ["get", 8, 56, 1, 1009, 5], - ["frame", 9, 8, 4, 1009, 5], + ["setarg", 9, 1, 4, 1092, 5], + ["setarg", 9, 2, 13, 1092, 5], + ["setarg", 9, 3, 6, 1092, 5], + ["setarg", 9, 4, 10, 1092, 5], + ["invoke", 9, 4, 1092, 5], + ["access", 4, "setarg", 1093, 12], + ["access", 6, 1, 1093, 25], + ["get", 8, 58, 1, 1093, 5], + ["frame", 9, 8, 4, 1093, 5], ["stone_text", 4], - ["setarg", 9, 1, 4, 1009, 5], - ["setarg", 9, 2, 13, 1009, 5], - ["setarg", 9, 3, 6, 1009, 5], - ["setarg", 9, 4, 7, 1009, 5], - ["invoke", 9, 4, 1009, 5], - ["access", 4, "invoke", 1010, 12], - ["get", 6, 55, 1, 1010, 5], - ["frame", 7, 6, 3, 1010, 5], + ["setarg", 9, 1, 4, 1093, 5], + ["setarg", 9, 2, 13, 1093, 5], + ["setarg", 9, 3, 6, 1093, 5], + ["setarg", 9, 4, 7, 1093, 5], + ["invoke", 9, 4, 1093, 5], + ["access", 4, "invoke", 1094, 12], + ["get", 6, 57, 1, 1094, 5], + ["frame", 7, 6, 3, 1094, 5], ["stone_text", 4], - ["setarg", 7, 1, 4, 1010, 5], - ["setarg", 7, 2, 13, 1010, 5], - ["setarg", 7, 3, 14, 1010, 5], - ["invoke", 7, 4, 1010, 5], - ["get", 4, 52, 1, 1011, 5], - ["frame", 6, 4, 1, 1011, 5], - ["setarg", 6, 1, 17, 1011, 5], - ["invoke", 6, 4, 1011, 5], - ["access", 4, "jump_false", 1012, 20], - ["get", 6, 64, 1, 1012, 5], - ["frame", 7, 6, 3, 1012, 5], + ["setarg", 7, 1, 4, 1094, 5], + ["setarg", 7, 2, 13, 1094, 5], + ["setarg", 7, 3, 14, 1094, 5], + ["invoke", 7, 4, 1094, 5], + ["get", 4, 54, 1, 1095, 5], + ["frame", 6, 4, 1, 1095, 5], + ["setarg", 6, 1, 17, 1095, 5], + ["invoke", 6, 4, 1095, 5], + ["access", 4, "wary_false", 1096, 20], + ["get", 6, 66, 1, 1096, 5], + ["frame", 7, 6, 3, 1096, 5], ["stone_text", 4], - ["setarg", 7, 1, 4, 1012, 5], - ["setarg", 7, 2, 14, 1012, 5], - ["setarg", 7, 3, 19, 1012, 5], - ["invoke", 7, 4, 1012, 5], - ["access", 4, "add", 1013, 12], - ["get", 6, 56, 1, 1013, 5], - ["frame", 7, 6, 4, 1013, 5], + ["setarg", 7, 1, 4, 1096, 5], + ["setarg", 7, 2, 14, 1096, 5], + ["setarg", 7, 3, 19, 1096, 5], + ["invoke", 7, 4, 1096, 5], + ["access", 4, "add", 1097, 12], + ["get", 6, 58, 1, 1097, 5], + ["frame", 7, 6, 4, 1097, 5], ["stone_text", 4], - ["setarg", 7, 1, 4, 1013, 5], - ["setarg", 7, 2, 5, 1013, 5], - ["setarg", 7, 3, 5, 1013, 5], - ["setarg", 7, 4, 12, 1013, 5], - ["invoke", 7, 4, 1013, 5], - ["get", 4, 63, 1, 1014, 5], - ["frame", 5, 4, 1, 1014, 5], - ["setarg", 5, 1, 15, 1014, 5], - ["invoke", 5, 4, 1014, 5], - ["get", 4, 52, 1, 1015, 5], - ["frame", 5, 4, 1, 1015, 5], - ["setarg", 5, 1, 18, 1015, 5], - ["invoke", 5, 4, 1015, 5], - ["access", 4, "true", 1016, 12], - ["get", 5, 54, 1, 1016, 5], - ["frame", 6, 5, 2, 1016, 5], + ["setarg", 7, 1, 4, 1097, 5], + ["setarg", 7, 2, 5, 1097, 5], + ["setarg", 7, 3, 5, 1097, 5], + ["setarg", 7, 4, 12, 1097, 5], + ["invoke", 7, 4, 1097, 5], + ["get", 4, 65, 1, 1098, 5], + ["frame", 5, 4, 1, 1098, 5], + ["setarg", 5, 1, 15, 1098, 5], + ["invoke", 5, 4, 1098, 5], + ["get", 4, 54, 1, 1099, 5], + ["frame", 5, 4, 1, 1099, 5], + ["setarg", 5, 1, 18, 1099, 5], + ["invoke", 5, 4, 1099, 5], + ["access", 4, "true", 1100, 12], + ["get", 5, 56, 1, 1100, 5], + ["frame", 6, 5, 2, 1100, 5], ["stone_text", 4], - ["setarg", 6, 1, 4, 1016, 5], - ["setarg", 6, 2, 1, 1016, 5], - ["invoke", 6, 4, 1016, 5], - ["get", 4, 63, 1, 1017, 5], - ["frame", 5, 4, 1, 1017, 5], - ["setarg", 5, 1, 20, 1017, 5], - ["invoke", 5, 4, 1017, 5], - ["get", 4, 52, 1, 1018, 5], - ["frame", 5, 4, 1, 1018, 5], - ["setarg", 5, 1, 19, 1018, 5], - ["invoke", 5, 4, 1018, 5], - ["access", 4, "false", 1019, 12], - ["get", 5, 54, 1, 1019, 5], - ["frame", 6, 5, 2, 1019, 5], + ["setarg", 6, 1, 4, 1100, 5], + ["setarg", 6, 2, 1, 1100, 5], + ["invoke", 6, 4, 1100, 5], + ["get", 4, 65, 1, 1101, 5], + ["frame", 5, 4, 1, 1101, 5], + ["setarg", 5, 1, 20, 1101, 5], + ["invoke", 5, 4, 1101, 5], + ["get", 4, 54, 1, 1102, 5], + ["frame", 5, 4, 1, 1102, 5], + ["setarg", 5, 1, 19, 1102, 5], + ["invoke", 5, 4, 1102, 5], + ["access", 4, "false", 1103, 12], + ["get", 5, 56, 1, 1103, 5], + ["frame", 6, 5, 2, 1103, 5], ["stone_text", 4], - ["setarg", 6, 1, 4, 1019, 5], - ["setarg", 6, 2, 1, 1019, 5], - ["invoke", 6, 4, 1019, 5], - ["get", 4, 52, 1, 1020, 5], - ["frame", 5, 4, 1, 1020, 5], - ["setarg", 5, 1, 20, 1020, 5], - ["invoke", 5, 4, 1020, 5], - ["return", 1, 1021, 12], + ["setarg", 6, 1, 4, 1103, 5], + ["setarg", 6, 2, 1, 1103, 5], + ["invoke", 6, 4, 1103, 5], + ["get", 4, 54, 1, 1104, 5], + ["frame", 5, 4, 1, 1104, 5], + ["setarg", 5, 1, 20, 1104, 5], + ["invoke", 5, 4, 1104, 5], + ["return", 1, 1105, 12], "_nop_ur_1", "_nop_ur_2" ], @@ -5735,319 +5426,319 @@ "nr_slots": 25, "nr_close_slots": 0, "instructions": [ - ["get", 4, 44, 1, 1026, 15], - ["frame", 5, 4, 0, 1026, 15], - ["invoke", 5, 4, 1026, 15], - ["move", 5, 4, 1026, 15], - ["get", 5, 44, 1, 1027, 13], - ["frame", 6, 5, 0, 1027, 13], - ["invoke", 6, 5, 1027, 13], - ["move", 6, 5, 1027, 13], - ["get", 6, 44, 1, 1028, 17], - ["frame", 7, 6, 0, 1028, 17], - ["invoke", 7, 6, 1028, 17], - ["move", 7, 6, 1028, 17], - ["get", 7, 44, 1, 1029, 16], - ["frame", 8, 7, 0, 1029, 16], - ["invoke", 8, 7, 1029, 16], - ["move", 8, 7, 1029, 16], - ["get", 8, 44, 1, 1030, 20], - ["frame", 9, 8, 0, 1030, 20], - ["invoke", 9, 8, 1030, 20], - ["move", 9, 8, 1030, 20], - ["get", 9, 44, 1, 1031, 25], - ["frame", 10, 9, 0, 1031, 25], - ["invoke", 10, 9, 1031, 25], - ["move", 10, 9, 1031, 25], - ["get", 10, 44, 1, 1032, 18], - ["frame", 11, 10, 0, 1032, 18], - ["invoke", 11, 10, 1032, 18], - ["move", 11, 10, 1032, 18], - ["get", 11, 44, 1, 1033, 16], - ["frame", 12, 11, 0, 1033, 16], - ["invoke", 12, 11, 1033, 16], - ["move", 12, 11, 1033, 16], - ["get", 12, 44, 1, 1034, 15], - ["frame", 13, 12, 0, 1034, 15], - ["invoke", 13, 12, 1034, 15], - ["move", 13, 12, 1034, 15], - ["get", 13, 44, 1, 1035, 13], - ["frame", 14, 13, 0, 1035, 13], - ["invoke", 14, 13, 1035, 13], - ["move", 14, 13, 1035, 13], - ["get", 14, 44, 1, 1036, 15], - ["frame", 15, 14, 0, 1036, 15], - ["invoke", 15, 14, 1036, 15], - ["move", 15, 14, 1036, 15], - ["access", 15, "some_loop", 1037, 32], - ["get", 16, 49, 1, 1037, 22], - ["frame", 17, 16, 1, 1037, 22], + ["get", 4, 46, 1, 1110, 15], + ["frame", 5, 4, 0, 1110, 15], + ["invoke", 5, 4, 1110, 15], + ["move", 5, 4, 1110, 15], + ["get", 5, 46, 1, 1111, 13], + ["frame", 6, 5, 0, 1111, 13], + ["invoke", 6, 5, 1111, 13], + ["move", 6, 5, 1111, 13], + ["get", 6, 46, 1, 1112, 17], + ["frame", 7, 6, 0, 1112, 17], + ["invoke", 7, 6, 1112, 17], + ["move", 7, 6, 1112, 17], + ["get", 7, 46, 1, 1113, 16], + ["frame", 8, 7, 0, 1113, 16], + ["invoke", 8, 7, 1113, 16], + ["move", 8, 7, 1113, 16], + ["get", 8, 46, 1, 1114, 20], + ["frame", 9, 8, 0, 1114, 20], + ["invoke", 9, 8, 1114, 20], + ["move", 9, 8, 1114, 20], + ["get", 9, 46, 1, 1115, 25], + ["frame", 10, 9, 0, 1115, 25], + ["invoke", 10, 9, 1115, 25], + ["move", 10, 9, 1115, 25], + ["get", 10, 46, 1, 1116, 18], + ["frame", 11, 10, 0, 1116, 18], + ["invoke", 11, 10, 1116, 18], + ["move", 11, 10, 1116, 18], + ["get", 11, 46, 1, 1117, 16], + ["frame", 12, 11, 0, 1117, 16], + ["invoke", 12, 11, 1117, 16], + ["move", 12, 11, 1117, 16], + ["get", 12, 46, 1, 1118, 15], + ["frame", 13, 12, 0, 1118, 15], + ["invoke", 13, 12, 1118, 15], + ["move", 13, 12, 1118, 15], + ["get", 13, 46, 1, 1119, 13], + ["frame", 14, 13, 0, 1119, 13], + ["invoke", 14, 13, 1119, 13], + ["move", 14, 13, 1119, 13], + ["get", 14, 46, 1, 1120, 15], + ["frame", 15, 14, 0, 1120, 15], + ["invoke", 15, 14, 1120, 15], + ["move", 15, 14, 1120, 15], + ["access", 15, "some_loop", 1121, 32], + ["get", 16, 51, 1, 1121, 22], + ["frame", 17, 16, 1, 1121, 22], ["stone_text", 15], - ["setarg", 17, 1, 15, 1037, 22], - ["invoke", 17, 15, 1037, 22], - ["move", 16, 15, 1037, 22], - ["access", 16, "some_call_one", 1038, 36], - ["get", 17, 49, 1, 1038, 26], - ["frame", 18, 17, 1, 1038, 26], + ["setarg", 17, 1, 15, 1121, 22], + ["invoke", 17, 15, 1121, 22], + ["move", 16, 15, 1121, 22], + ["access", 16, "some_call_one", 1122, 36], + ["get", 17, 51, 1, 1122, 26], + ["frame", 18, 17, 1, 1122, 26], ["stone_text", 16], - ["setarg", 18, 1, 16, 1038, 26], - ["invoke", 18, 16, 1038, 26], - ["move", 17, 16, 1038, 26], - ["access", 17, "some_call_done", 1039, 37], - ["get", 18, 49, 1, 1039, 27], - ["frame", 19, 18, 1, 1039, 27], + ["setarg", 18, 1, 16, 1122, 26], + ["invoke", 18, 16, 1122, 26], + ["move", 17, 16, 1122, 26], + ["access", 17, "some_call_done", 1123, 37], + ["get", 18, 51, 1, 1123, 27], + ["frame", 19, 18, 1, 1123, 27], ["stone_text", 17], - ["setarg", 19, 1, 17, 1039, 27], - ["invoke", 19, 17, 1039, 27], - ["move", 18, 17, 1039, 27], - ["access", 18, "some_true", 1040, 30], - ["get", 19, 49, 1, 1040, 20], - ["frame", 20, 19, 1, 1040, 20], + ["setarg", 19, 1, 17, 1123, 27], + ["invoke", 19, 17, 1123, 27], + ["move", 18, 17, 1123, 27], + ["access", 18, "some_true", 1124, 30], + ["get", 19, 51, 1, 1124, 20], + ["frame", 20, 19, 1, 1124, 20], ["stone_text", 18], - ["setarg", 20, 1, 18, 1040, 20], - ["invoke", 20, 18, 1040, 20], - ["move", 19, 18, 1040, 20], - ["access", 19, "some_false", 1041, 31], - ["get", 20, 49, 1, 1041, 21], - ["frame", 21, 20, 1, 1041, 21], + ["setarg", 20, 1, 18, 1124, 20], + ["invoke", 20, 18, 1124, 20], + ["move", 19, 18, 1124, 20], + ["access", 19, "some_false", 1125, 31], + ["get", 20, 51, 1, 1125, 21], + ["frame", 21, 20, 1, 1125, 21], ["stone_text", 19], - ["setarg", 21, 1, 19, 1041, 21], - ["invoke", 21, 19, 1041, 21], - ["move", 20, 19, 1041, 21], - ["access", 20, "some_done", 1042, 32], - ["get", 21, 49, 1, 1042, 22], - ["frame", 22, 21, 1, 1042, 22], + ["setarg", 21, 1, 19, 1125, 21], + ["invoke", 21, 19, 1125, 21], + ["move", 20, 19, 1125, 21], + ["access", 20, "some_done", 1126, 32], + ["get", 21, 51, 1, 1126, 22], + ["frame", 22, 21, 1, 1126, 22], ["stone_text", 20], - ["setarg", 22, 1, 20, 1042, 22], - ["invoke", 22, 20, 1042, 22], - ["move", 21, 20, 1042, 22], - ["access", 21, "length", 1043, 12], - ["get", 22, 55, 1, 1043, 5], - ["frame", 23, 22, 3, 1043, 5], + ["setarg", 22, 1, 20, 1126, 22], + ["invoke", 22, 20, 1126, 22], + ["move", 21, 20, 1126, 22], + ["access", 21, "length", 1127, 12], + ["get", 22, 57, 1, 1127, 5], + ["frame", 23, 22, 3, 1127, 5], ["stone_text", 21], - ["setarg", 23, 1, 21, 1043, 5], - ["setarg", 23, 2, 4, 1043, 5], - ["setarg", 23, 3, 2, 1043, 5], - ["invoke", 23, 21, 1043, 5], - ["access", 21, "int", 1044, 12], - ["access", 22, 0, 1044, 22], - ["get", 23, 55, 1, 1044, 5], - ["frame", 24, 23, 3, 1044, 5], + ["setarg", 23, 1, 21, 1127, 5], + ["setarg", 23, 2, 4, 1127, 5], + ["setarg", 23, 3, 2, 1127, 5], + ["invoke", 23, 21, 1127, 5], + ["access", 21, "int", 1128, 12], + ["access", 22, 0, 1128, 22], + ["get", 23, 57, 1, 1128, 5], + ["frame", 24, 23, 3, 1128, 5], ["stone_text", 21], - ["setarg", 24, 1, 21, 1044, 5], - ["setarg", 24, 2, 5, 1044, 5], - ["setarg", 24, 3, 22, 1044, 5], - ["invoke", 24, 21, 1044, 5], - ["access", 21, "int", 1045, 12], - ["access", 22, 0, 1045, 25], - ["get", 23, 55, 1, 1045, 5], - ["frame", 24, 23, 3, 1045, 5], + ["setarg", 24, 1, 21, 1128, 5], + ["setarg", 24, 2, 5, 1128, 5], + ["setarg", 24, 3, 22, 1128, 5], + ["invoke", 24, 21, 1128, 5], + ["access", 21, "int", 1129, 12], + ["access", 22, 0, 1129, 25], + ["get", 23, 57, 1, 1129, 5], + ["frame", 24, 23, 3, 1129, 5], ["stone_text", 21], - ["setarg", 24, 1, 21, 1045, 5], - ["setarg", 24, 2, 11, 1045, 5], - ["setarg", 24, 3, 22, 1045, 5], - ["invoke", 24, 21, 1045, 5], - ["access", 21, "int", 1046, 12], - ["access", 22, 1, 1046, 24], - ["get", 23, 55, 1, 1046, 5], - ["frame", 24, 23, 3, 1046, 5], + ["setarg", 24, 1, 21, 1129, 5], + ["setarg", 24, 2, 11, 1129, 5], + ["setarg", 24, 3, 22, 1129, 5], + ["invoke", 24, 21, 1129, 5], + ["access", 21, "int", 1130, 12], + ["access", 22, 1, 1130, 24], + ["get", 23, 57, 1, 1130, 5], + ["frame", 24, 23, 3, 1130, 5], ["stone_text", 21], - ["setarg", 24, 1, 21, 1046, 5], - ["setarg", 24, 2, 12, 1046, 5], - ["setarg", 24, 3, 22, 1046, 5], - ["invoke", 24, 21, 1046, 5], - ["access", 21, "null", 1047, 12], - ["get", 22, 54, 1, 1047, 5], - ["frame", 23, 22, 2, 1047, 5], + ["setarg", 24, 1, 21, 1130, 5], + ["setarg", 24, 2, 12, 1130, 5], + ["setarg", 24, 3, 22, 1130, 5], + ["invoke", 24, 21, 1130, 5], + ["access", 21, "null", 1131, 12], + ["get", 22, 56, 1, 1131, 5], + ["frame", 23, 22, 2, 1131, 5], ["stone_text", 21], - ["setarg", 23, 1, 21, 1047, 5], - ["setarg", 23, 2, 10, 1047, 5], - ["invoke", 23, 21, 1047, 5], - ["access", 21, "length", 1048, 12], - ["get", 22, 55, 1, 1048, 5], - ["frame", 23, 22, 3, 1048, 5], + ["setarg", 23, 1, 21, 1131, 5], + ["setarg", 23, 2, 10, 1131, 5], + ["invoke", 23, 21, 1131, 5], + ["access", 21, "length", 1132, 12], + ["get", 22, 57, 1, 1132, 5], + ["frame", 23, 22, 3, 1132, 5], ["stone_text", 21], - ["setarg", 23, 1, 21, 1048, 5], - ["setarg", 23, 2, 8, 1048, 5], - ["setarg", 23, 3, 3, 1048, 5], - ["invoke", 23, 21, 1048, 5], - ["get", 21, 52, 1, 1049, 5], - ["frame", 22, 21, 1, 1049, 5], - ["setarg", 22, 1, 15, 1049, 5], - ["invoke", 22, 21, 1049, 5], - ["access", 21, "lt", 1050, 12], - ["get", 22, 56, 1, 1050, 5], - ["frame", 23, 22, 4, 1050, 5], + ["setarg", 23, 1, 21, 1132, 5], + ["setarg", 23, 2, 8, 1132, 5], + ["setarg", 23, 3, 3, 1132, 5], + ["invoke", 23, 21, 1132, 5], + ["get", 21, 54, 1, 1133, 5], + ["frame", 22, 21, 1, 1133, 5], + ["setarg", 22, 1, 15, 1133, 5], + ["invoke", 22, 21, 1133, 5], + ["access", 21, "lt", 1134, 12], + ["get", 22, 58, 1, 1134, 5], + ["frame", 23, 22, 4, 1134, 5], ["stone_text", 21], - ["setarg", 23, 1, 21, 1050, 5], - ["setarg", 23, 2, 6, 1050, 5], - ["setarg", 23, 3, 5, 1050, 5], - ["setarg", 23, 4, 4, 1050, 5], - ["invoke", 23, 4, 1050, 5], - ["access", 4, "jump_false", 1051, 20], - ["get", 21, 64, 1, 1051, 5], - ["frame", 22, 21, 3, 1051, 5], + ["setarg", 23, 1, 21, 1134, 5], + ["setarg", 23, 2, 6, 1134, 5], + ["setarg", 23, 3, 5, 1134, 5], + ["setarg", 23, 4, 4, 1134, 5], + ["invoke", 23, 4, 1134, 5], + ["access", 4, "jump_false", 1135, 20], + ["get", 21, 66, 1, 1135, 5], + ["frame", 22, 21, 3, 1135, 5], ["stone_text", 4], - ["setarg", 22, 1, 4, 1051, 5], - ["setarg", 22, 2, 6, 1051, 5], - ["setarg", 22, 3, 19, 1051, 5], - ["invoke", 22, 4, 1051, 5], - ["access", 4, "load_index", 1052, 12], - ["get", 6, 56, 1, 1052, 5], - ["frame", 21, 6, 4, 1052, 5], + ["setarg", 22, 1, 4, 1135, 5], + ["setarg", 22, 2, 6, 1135, 5], + ["setarg", 22, 3, 19, 1135, 5], + ["invoke", 22, 4, 1135, 5], + ["access", 4, "load_index", 1136, 12], + ["get", 6, 58, 1, 1136, 5], + ["frame", 21, 6, 4, 1136, 5], ["stone_text", 4], - ["setarg", 21, 1, 4, 1052, 5], - ["setarg", 21, 2, 7, 1052, 5], - ["setarg", 21, 3, 2, 1052, 5], - ["setarg", 21, 4, 5, 1052, 5], - ["invoke", 21, 4, 1052, 5], - ["access", 4, "eq", 1053, 12], - ["get", 6, 56, 1, 1053, 5], - ["frame", 21, 6, 4, 1053, 5], + ["setarg", 21, 1, 4, 1136, 5], + ["setarg", 21, 2, 7, 1136, 5], + ["setarg", 21, 3, 2, 1136, 5], + ["setarg", 21, 4, 5, 1136, 5], + ["invoke", 21, 4, 1136, 5], + ["access", 4, "eq", 1137, 12], + ["get", 6, 58, 1, 1137, 5], + ["frame", 21, 6, 4, 1137, 5], ["stone_text", 4], - ["setarg", 21, 1, 4, 1053, 5], - ["setarg", 21, 2, 9, 1053, 5], - ["setarg", 21, 3, 8, 1053, 5], - ["setarg", 21, 4, 11, 1053, 5], - ["invoke", 21, 4, 1053, 5], - ["access", 4, "jump_false", 1054, 20], - ["get", 6, 64, 1, 1054, 5], - ["frame", 8, 6, 3, 1054, 5], + ["setarg", 21, 1, 4, 1137, 5], + ["setarg", 21, 2, 9, 1137, 5], + ["setarg", 21, 3, 8, 1137, 5], + ["setarg", 21, 4, 11, 1137, 5], + ["invoke", 21, 4, 1137, 5], + ["access", 4, "jump_false", 1138, 20], + ["get", 6, 66, 1, 1138, 5], + ["frame", 8, 6, 3, 1138, 5], ["stone_text", 4], - ["setarg", 8, 1, 4, 1054, 5], - ["setarg", 8, 2, 9, 1054, 5], - ["setarg", 8, 3, 16, 1054, 5], - ["invoke", 8, 4, 1054, 5], - ["access", 4, "frame", 1055, 12], - ["access", 6, 0, 1055, 33], - ["get", 8, 56, 1, 1055, 5], - ["frame", 9, 8, 4, 1055, 5], + ["setarg", 8, 1, 4, 1138, 5], + ["setarg", 8, 2, 9, 1138, 5], + ["setarg", 8, 3, 16, 1138, 5], + ["invoke", 8, 4, 1138, 5], + ["access", 4, "frame", 1139, 12], + ["access", 6, 0, 1139, 33], + ["get", 8, 58, 1, 1139, 5], + ["frame", 9, 8, 4, 1139, 5], ["stone_text", 4], - ["setarg", 9, 1, 4, 1055, 5], - ["setarg", 9, 2, 13, 1055, 5], - ["setarg", 9, 3, 3, 1055, 5], - ["setarg", 9, 4, 6, 1055, 5], - ["invoke", 9, 4, 1055, 5], - ["access", 4, "setarg", 1056, 12], - ["access", 6, 0, 1056, 25], - ["get", 8, 56, 1, 1056, 5], - ["frame", 9, 8, 4, 1056, 5], + ["setarg", 9, 1, 4, 1139, 5], + ["setarg", 9, 2, 13, 1139, 5], + ["setarg", 9, 3, 3, 1139, 5], + ["setarg", 9, 4, 6, 1139, 5], + ["invoke", 9, 4, 1139, 5], + ["access", 4, "setarg", 1140, 12], + ["access", 6, 0, 1140, 25], + ["get", 8, 58, 1, 1140, 5], + ["frame", 9, 8, 4, 1140, 5], ["stone_text", 4], - ["setarg", 9, 1, 4, 1056, 5], - ["setarg", 9, 2, 13, 1056, 5], - ["setarg", 9, 3, 6, 1056, 5], - ["setarg", 9, 4, 10, 1056, 5], - ["invoke", 9, 4, 1056, 5], - ["access", 4, "invoke", 1057, 12], - ["get", 6, 55, 1, 1057, 5], - ["frame", 8, 6, 3, 1057, 5], + ["setarg", 9, 1, 4, 1140, 5], + ["setarg", 9, 2, 13, 1140, 5], + ["setarg", 9, 3, 6, 1140, 5], + ["setarg", 9, 4, 10, 1140, 5], + ["invoke", 9, 4, 1140, 5], + ["access", 4, "invoke", 1141, 12], + ["get", 6, 57, 1, 1141, 5], + ["frame", 8, 6, 3, 1141, 5], ["stone_text", 4], - ["setarg", 8, 1, 4, 1057, 5], - ["setarg", 8, 2, 13, 1057, 5], - ["setarg", 8, 3, 14, 1057, 5], - ["invoke", 8, 4, 1057, 5], - ["get", 4, 63, 1, 1058, 5], - ["frame", 6, 4, 1, 1058, 5], - ["setarg", 6, 1, 17, 1058, 5], - ["invoke", 6, 4, 1058, 5], - ["get", 4, 52, 1, 1059, 5], - ["frame", 6, 4, 1, 1059, 5], - ["setarg", 6, 1, 16, 1059, 5], - ["invoke", 6, 4, 1059, 5], - ["access", 4, "frame", 1060, 12], - ["access", 6, 1, 1060, 33], - ["get", 8, 56, 1, 1060, 5], - ["frame", 9, 8, 4, 1060, 5], + ["setarg", 8, 1, 4, 1141, 5], + ["setarg", 8, 2, 13, 1141, 5], + ["setarg", 8, 3, 14, 1141, 5], + ["invoke", 8, 4, 1141, 5], + ["get", 4, 65, 1, 1142, 5], + ["frame", 6, 4, 1, 1142, 5], + ["setarg", 6, 1, 17, 1142, 5], + ["invoke", 6, 4, 1142, 5], + ["get", 4, 54, 1, 1143, 5], + ["frame", 6, 4, 1, 1143, 5], + ["setarg", 6, 1, 16, 1143, 5], + ["invoke", 6, 4, 1143, 5], + ["access", 4, "frame", 1144, 12], + ["access", 6, 1, 1144, 33], + ["get", 8, 58, 1, 1144, 5], + ["frame", 9, 8, 4, 1144, 5], ["stone_text", 4], - ["setarg", 9, 1, 4, 1060, 5], - ["setarg", 9, 2, 13, 1060, 5], - ["setarg", 9, 3, 3, 1060, 5], - ["setarg", 9, 4, 6, 1060, 5], - ["invoke", 9, 4, 1060, 5], - ["access", 4, "setarg", 1061, 12], - ["access", 6, 0, 1061, 25], - ["get", 8, 56, 1, 1061, 5], - ["frame", 9, 8, 4, 1061, 5], + ["setarg", 9, 1, 4, 1144, 5], + ["setarg", 9, 2, 13, 1144, 5], + ["setarg", 9, 3, 3, 1144, 5], + ["setarg", 9, 4, 6, 1144, 5], + ["invoke", 9, 4, 1144, 5], + ["access", 4, "setarg", 1145, 12], + ["access", 6, 0, 1145, 25], + ["get", 8, 58, 1, 1145, 5], + ["frame", 9, 8, 4, 1145, 5], ["stone_text", 4], - ["setarg", 9, 1, 4, 1061, 5], - ["setarg", 9, 2, 13, 1061, 5], - ["setarg", 9, 3, 6, 1061, 5], - ["setarg", 9, 4, 10, 1061, 5], - ["invoke", 9, 4, 1061, 5], - ["access", 4, "setarg", 1062, 12], - ["access", 6, 1, 1062, 25], - ["get", 8, 56, 1, 1062, 5], - ["frame", 9, 8, 4, 1062, 5], + ["setarg", 9, 1, 4, 1145, 5], + ["setarg", 9, 2, 13, 1145, 5], + ["setarg", 9, 3, 6, 1145, 5], + ["setarg", 9, 4, 10, 1145, 5], + ["invoke", 9, 4, 1145, 5], + ["access", 4, "setarg", 1146, 12], + ["access", 6, 1, 1146, 25], + ["get", 8, 58, 1, 1146, 5], + ["frame", 9, 8, 4, 1146, 5], ["stone_text", 4], - ["setarg", 9, 1, 4, 1062, 5], - ["setarg", 9, 2, 13, 1062, 5], - ["setarg", 9, 3, 6, 1062, 5], - ["setarg", 9, 4, 7, 1062, 5], - ["invoke", 9, 4, 1062, 5], - ["access", 4, "invoke", 1063, 12], - ["get", 6, 55, 1, 1063, 5], - ["frame", 7, 6, 3, 1063, 5], + ["setarg", 9, 1, 4, 1146, 5], + ["setarg", 9, 2, 13, 1146, 5], + ["setarg", 9, 3, 6, 1146, 5], + ["setarg", 9, 4, 7, 1146, 5], + ["invoke", 9, 4, 1146, 5], + ["access", 4, "invoke", 1147, 12], + ["get", 6, 57, 1, 1147, 5], + ["frame", 7, 6, 3, 1147, 5], ["stone_text", 4], - ["setarg", 7, 1, 4, 1063, 5], - ["setarg", 7, 2, 13, 1063, 5], - ["setarg", 7, 3, 14, 1063, 5], - ["invoke", 7, 4, 1063, 5], - ["get", 4, 52, 1, 1064, 5], - ["frame", 6, 4, 1, 1064, 5], - ["setarg", 6, 1, 17, 1064, 5], - ["invoke", 6, 4, 1064, 5], - ["access", 4, "jump_true", 1065, 20], - ["get", 6, 64, 1, 1065, 5], - ["frame", 7, 6, 3, 1065, 5], + ["setarg", 7, 1, 4, 1147, 5], + ["setarg", 7, 2, 13, 1147, 5], + ["setarg", 7, 3, 14, 1147, 5], + ["invoke", 7, 4, 1147, 5], + ["get", 4, 54, 1, 1148, 5], + ["frame", 6, 4, 1, 1148, 5], + ["setarg", 6, 1, 17, 1148, 5], + ["invoke", 6, 4, 1148, 5], + ["access", 4, "wary_true", 1149, 20], + ["get", 6, 66, 1, 1149, 5], + ["frame", 7, 6, 3, 1149, 5], ["stone_text", 4], - ["setarg", 7, 1, 4, 1065, 5], - ["setarg", 7, 2, 14, 1065, 5], - ["setarg", 7, 3, 18, 1065, 5], - ["invoke", 7, 4, 1065, 5], - ["access", 4, "add", 1066, 12], - ["get", 6, 56, 1, 1066, 5], - ["frame", 7, 6, 4, 1066, 5], + ["setarg", 7, 1, 4, 1149, 5], + ["setarg", 7, 2, 14, 1149, 5], + ["setarg", 7, 3, 18, 1149, 5], + ["invoke", 7, 4, 1149, 5], + ["access", 4, "add", 1150, 12], + ["get", 6, 58, 1, 1150, 5], + ["frame", 7, 6, 4, 1150, 5], ["stone_text", 4], - ["setarg", 7, 1, 4, 1066, 5], - ["setarg", 7, 2, 5, 1066, 5], - ["setarg", 7, 3, 5, 1066, 5], - ["setarg", 7, 4, 12, 1066, 5], - ["invoke", 7, 4, 1066, 5], - ["get", 4, 63, 1, 1067, 5], - ["frame", 5, 4, 1, 1067, 5], - ["setarg", 5, 1, 15, 1067, 5], - ["invoke", 5, 4, 1067, 5], - ["get", 4, 52, 1, 1068, 5], - ["frame", 5, 4, 1, 1068, 5], - ["setarg", 5, 1, 18, 1068, 5], - ["invoke", 5, 4, 1068, 5], - ["access", 4, "true", 1069, 12], - ["get", 5, 54, 1, 1069, 5], - ["frame", 6, 5, 2, 1069, 5], + ["setarg", 7, 1, 4, 1150, 5], + ["setarg", 7, 2, 5, 1150, 5], + ["setarg", 7, 3, 5, 1150, 5], + ["setarg", 7, 4, 12, 1150, 5], + ["invoke", 7, 4, 1150, 5], + ["get", 4, 65, 1, 1151, 5], + ["frame", 5, 4, 1, 1151, 5], + ["setarg", 5, 1, 15, 1151, 5], + ["invoke", 5, 4, 1151, 5], + ["get", 4, 54, 1, 1152, 5], + ["frame", 5, 4, 1, 1152, 5], + ["setarg", 5, 1, 18, 1152, 5], + ["invoke", 5, 4, 1152, 5], + ["access", 4, "true", 1153, 12], + ["get", 5, 56, 1, 1153, 5], + ["frame", 6, 5, 2, 1153, 5], ["stone_text", 4], - ["setarg", 6, 1, 4, 1069, 5], - ["setarg", 6, 2, 1, 1069, 5], - ["invoke", 6, 4, 1069, 5], - ["get", 4, 63, 1, 1070, 5], - ["frame", 5, 4, 1, 1070, 5], - ["setarg", 5, 1, 20, 1070, 5], - ["invoke", 5, 4, 1070, 5], - ["get", 4, 52, 1, 1071, 5], - ["frame", 5, 4, 1, 1071, 5], - ["setarg", 5, 1, 19, 1071, 5], - ["invoke", 5, 4, 1071, 5], - ["access", 4, "false", 1072, 12], - ["get", 5, 54, 1, 1072, 5], - ["frame", 6, 5, 2, 1072, 5], + ["setarg", 6, 1, 4, 1153, 5], + ["setarg", 6, 2, 1, 1153, 5], + ["invoke", 6, 4, 1153, 5], + ["get", 4, 65, 1, 1154, 5], + ["frame", 5, 4, 1, 1154, 5], + ["setarg", 5, 1, 20, 1154, 5], + ["invoke", 5, 4, 1154, 5], + ["get", 4, 54, 1, 1155, 5], + ["frame", 5, 4, 1, 1155, 5], + ["setarg", 5, 1, 19, 1155, 5], + ["invoke", 5, 4, 1155, 5], + ["access", 4, "false", 1156, 12], + ["get", 5, 56, 1, 1156, 5], + ["frame", 6, 5, 2, 1156, 5], ["stone_text", 4], - ["setarg", 6, 1, 4, 1072, 5], - ["setarg", 6, 2, 1, 1072, 5], - ["invoke", 6, 4, 1072, 5], - ["get", 4, 52, 1, 1073, 5], - ["frame", 5, 4, 1, 1073, 5], - ["setarg", 5, 1, 20, 1073, 5], - ["invoke", 5, 4, 1073, 5], - ["return", 1, 1074, 12], + ["setarg", 6, 1, 4, 1156, 5], + ["setarg", 6, 2, 1, 1156, 5], + ["invoke", 6, 4, 1156, 5], + ["get", 4, 54, 1, 1157, 5], + ["frame", 5, 4, 1, 1157, 5], + ["setarg", 5, 1, 20, 1157, 5], + ["invoke", 5, 4, 1157, 5], + ["return", 1, 1158, 12], "_nop_ur_1", "_nop_ur_2" ], @@ -6059,412 +5750,1511 @@ { "_closure_slot_types": {}, "disruption_pc": 0, - "nr_slots": 27, + "nr_slots": 7, "nr_close_slots": 0, "instructions": [ - ["get", 4, 44, 1, 1079, 18], - ["frame", 5, 4, 0, 1079, 18], - ["invoke", 5, 4, 1079, 18], - ["move", 5, 4, 1079, 18], - ["get", 5, 44, 1, 1080, 15], - ["frame", 6, 5, 0, 1080, 15], - ["invoke", 6, 5, 1080, 15], - ["move", 6, 5, 1080, 15], - ["get", 6, 44, 1, 1081, 13], - ["frame", 7, 6, 0, 1081, 13], - ["invoke", 7, 6, 1081, 13], - ["move", 7, 6, 1081, 13], - ["get", 7, 44, 1, 1082, 17], - ["frame", 8, 7, 0, 1082, 17], - ["invoke", 8, 7, 1082, 17], - ["move", 8, 7, 1082, 17], - ["get", 8, 44, 1, 1083, 16], - ["frame", 9, 8, 0, 1083, 16], - ["invoke", 9, 8, 1083, 16], - ["move", 9, 8, 1083, 16], - ["get", 9, 44, 1, 1084, 20], - ["frame", 10, 9, 0, 1084, 20], - ["invoke", 10, 9, 1084, 20], - ["move", 10, 9, 1084, 20], - ["get", 10, 44, 1, 1085, 25], - ["frame", 11, 10, 0, 1085, 25], - ["invoke", 11, 10, 1085, 25], - ["move", 11, 10, 1085, 25], - ["get", 11, 44, 1, 1086, 24], - ["frame", 12, 11, 0, 1086, 24], - ["invoke", 12, 11, 1086, 24], - ["move", 12, 11, 1086, 24], - ["get", 12, 44, 1, 1087, 18], - ["frame", 13, 12, 0, 1087, 18], - ["invoke", 13, 12, 1087, 18], - ["move", 13, 12, 1087, 18], - ["get", 13, 44, 1, 1088, 16], - ["frame", 14, 13, 0, 1088, 16], - ["invoke", 14, 13, 1088, 16], - ["move", 14, 13, 1088, 16], - ["get", 14, 44, 1, 1089, 15], - ["frame", 15, 14, 0, 1089, 15], - ["invoke", 15, 14, 1089, 15], - ["move", 15, 14, 1089, 15], - ["get", 15, 44, 1, 1090, 13], - ["frame", 16, 15, 0, 1090, 13], - ["invoke", 16, 15, 1090, 13], - ["move", 16, 15, 1090, 13], - ["get", 16, 44, 1, 1091, 15], - ["frame", 17, 16, 0, 1091, 15], - ["invoke", 17, 16, 1091, 15], - ["move", 17, 16, 1091, 15], - ["access", 17, "filter_loop", 1092, 32], - ["get", 18, 49, 1, 1092, 22], - ["frame", 19, 18, 1, 1092, 22], - ["stone_text", 17], - ["setarg", 19, 1, 17, 1092, 22], - ["invoke", 19, 17, 1092, 22], - ["move", 18, 17, 1092, 22], - ["access", 18, "filter_call_one", 1093, 36], - ["get", 19, 49, 1, 1093, 26], - ["frame", 20, 19, 1, 1093, 26], - ["stone_text", 18], - ["setarg", 20, 1, 18, 1093, 26], - ["invoke", 20, 18, 1093, 26], - ["move", 19, 18, 1093, 26], - ["access", 19, "filter_call_two", 1094, 36], - ["get", 20, 49, 1, 1094, 26], - ["frame", 21, 20, 1, 1094, 26], + ["get", 2, 11, 1, 1188, 23], + ["load_field", 3, 1, "item", 1188, 29], + ["load_field", 4, 1, "i", 1188, 37], + ["array", 5, 2, 1188, 37], + ["push", 5, 3, 1188, 37], + ["push", 5, 4, 1188, 37], + ["access", 3, 2, 1188, 43], + ["get", 4, 102, 2, 1188, 7], + ["frame", 6, 4, 3, 1188, 7], + ["setarg", 6, 1, 2, 1188, 7], + ["setarg", 6, 2, 5, 1188, 7], + ["setarg", 6, 3, 3, 1188, 7], + ["invoke", 6, 2, 1188, 7], + ["access", 2, "wary_false", 1189, 22], + ["get", 3, 18, 1, 1189, 36], + ["get", 4, 20, 1, 1189, 41], + ["get", 5, 66, 2, 1189, 7], + ["frame", 6, 5, 3, 1189, 7], + ["stone_text", 2], + ["setarg", 6, 1, 2, 1189, 7], + ["setarg", 6, 2, 3, 1189, 7], + ["setarg", 6, 3, 4, 1189, 7], + ["invoke", 6, 2, 1189, 7], + ["access", 2, "push", 1190, 14], + ["get", 3, 5, 1, 1190, 22], + ["load_field", 4, 1, "item", 1190, 30], + ["get", 5, 57, 2, 1190, 7], + ["frame", 6, 5, 3, 1190, 7], + ["stone_text", 2], + ["setarg", 6, 1, 2, 1190, 7], + ["setarg", 6, 2, 3, 1190, 7], + ["setarg", 6, 3, 4, 1190, 7], + ["invoke", 6, 2, 1190, 7], + ["get", 2, 20, 1, 1191, 18], + ["get", 3, 54, 2, 1191, 7], + ["frame", 4, 3, 1, 1191, 7], + ["setarg", 4, 1, 2, 1191, 7], + ["invoke", 4, 2, 1191, 7], + ["null", 2, 1192, 14], + ["return", 2, 1192, 14], + "_nop_ur_1", + "_nop_ur_2" + ], + "_write_types": [null, null, null, null, null, "array", "int", null, null, null, "text", null, null, null, null, null, "text", null, null, null, null, null, null, null, null, null, "null", null], + "name": "", + "filename": ".cell/packages/core/mcode.cm", + "nr_args": 1 + }, + { + "_closure_slot_types": {}, + "disruption_pc": 0, + "nr_slots": 22, + "nr_close_slots": 17, + "instructions": [ + ["get", 4, 46, 1, 1163, 18], + ["frame", 5, 4, 0, 1163, 18], + ["invoke", 5, 4, 1163, 18], + ["move", 5, 4, 1163, 18], + ["get", 6, 46, 1, 1164, 15], + ["frame", 7, 6, 0, 1164, 15], + ["invoke", 7, 6, 1164, 15], + ["move", 7, 6, 1164, 15], + ["get", 7, 46, 1, 1165, 13], + ["frame", 8, 7, 0, 1165, 13], + ["invoke", 8, 7, 1165, 13], + ["move", 8, 7, 1165, 13], + ["get", 8, 46, 1, 1166, 17], + ["frame", 9, 8, 0, 1166, 17], + ["invoke", 9, 8, 1166, 17], + ["move", 9, 8, 1166, 17], + ["get", 9, 46, 1, 1167, 16], + ["frame", 10, 9, 0, 1167, 16], + ["invoke", 10, 9, 1167, 16], + ["move", 10, 9, 1167, 16], + ["get", 10, 46, 1, 1168, 20], + ["frame", 11, 10, 0, 1168, 20], + ["invoke", 11, 10, 1168, 20], + ["move", 11, 10, 1168, 20], + ["get", 11, 46, 1, 1169, 14], + ["frame", 12, 11, 0, 1169, 14], + ["invoke", 12, 11, 1169, 14], + ["move", 12, 11, 1169, 14], + ["get", 12, 46, 1, 1170, 14], + ["frame", 13, 12, 0, 1170, 14], + ["invoke", 13, 12, 1170, 14], + ["move", 13, 12, 1170, 14], + ["get", 13, 46, 1, 1171, 18], + ["frame", 14, 13, 0, 1171, 18], + ["invoke", 14, 13, 1171, 18], + ["move", 14, 13, 1171, 18], + ["get", 14, 46, 1, 1172, 16], + ["frame", 15, 14, 0, 1172, 16], + ["invoke", 15, 14, 1172, 16], + ["move", 15, 14, 1172, 16], + ["get", 15, 46, 1, 1173, 15], + ["frame", 16, 15, 0, 1173, 15], + ["invoke", 16, 15, 1173, 15], + ["move", 16, 15, 1173, 15], + ["get", 16, 46, 1, 1174, 13], + ["frame", 17, 16, 0, 1174, 13], + ["invoke", 17, 16, 1174, 13], + ["move", 17, 16, 1174, 13], + ["get", 17, 46, 1, 1175, 15], + ["frame", 18, 17, 0, 1175, 15], + ["invoke", 18, 17, 1175, 15], + ["move", 18, 17, 1175, 15], + ["access", 19, "filter_skip", 1176, 26], + ["get", 20, 51, 1, 1176, 16], + ["frame", 21, 20, 1, 1176, 16], ["stone_text", 19], - ["setarg", 21, 1, 19, 1094, 26], - ["invoke", 21, 19, 1094, 26], - ["move", 20, 19, 1094, 26], - ["access", 20, "filter_call_done", 1095, 37], - ["get", 21, 49, 1, 1095, 27], - ["frame", 22, 21, 1, 1095, 27], + ["setarg", 21, 1, 19, 1176, 16], + ["invoke", 21, 19, 1176, 16], + ["move", 20, 19, 1176, 16], + ["record", 19, 10], + ["store_field", 19, 3, "fn", 1177, 20], + ["store_field", 19, 10, "fn_arity", 1177, 39], + ["store_field", 19, 17, "result", 1177, 57], + ["store_field", 19, 13, "null_s", 1177, 70], + ["store_field", 19, 16, "frame", 1178, 23], + ["store_field", 19, 14, "zero", 1178, 32], + ["store_field", 19, 15, "one", 1178, 43], + ["store_field", 19, 11, "az", 1178, 52], + ["store_field", 19, 12, "ao", 1178, 60], + ["access", 11, "filter", 1178, 72], + ["store_field", 19, 11, "prefix", 1178, 72], + ["move", 11, 19, 1178, 72], + ["record", 12, 8], + ["store_field", 12, 2, "arr", 1179, 19], + ["store_field", 12, 6, "len", 1179, 34], + ["store_field", 12, 7, "i", 1179, 42], + ["store_field", 12, 8, "check", 1179, 52], + ["store_field", 12, 9, "item", 1179, 65], + ["store_field", 12, 15, "one", 1179, 76], + ["access", 7, "filter_loop", 1180, 36], + ["get", 8, 51, 1, 1180, 26], + ["frame", 9, 8, 1, 1180, 26], + ["stone_text", 7], + ["setarg", 9, 1, 7, 1180, 26], + ["invoke", 9, 7, 1180, 26], + ["store_field", 12, 7, "loop_label", 1180, 26], + ["access", 7, "filter_done", 1180, 74], + ["get", 8, 51, 1, 1180, 64], + ["frame", 9, 8, 1, 1180, 64], + ["stone_text", 7], + ["setarg", 9, 1, 7, 1180, 64], + ["invoke", 9, 7, 1180, 64], + ["store_field", 12, 7, "done_label", 1180, 64], + ["move", 7, 12, 1180, 64], + ["access", 7, "array", 1181, 16], + ["access", 8, 0, 1181, 33], + ["array", 9, 3, 1181, 33], + ["stone_text", 7], + ["push", 9, 7, 1181, 33], + ["push", 9, 4, 1181, 33], + ["push", 9, 8, 1181, 33], + ["get", 7, 53, 1, 1181, 5], + ["frame", 8, 7, 1, 1181, 5], + ["setarg", 8, 1, 9, 1181, 5], + ["invoke", 8, 7, 1181, 5], + ["access", 7, "length", 1182, 12], + ["get", 8, 57, 1, 1182, 5], + ["frame", 9, 8, 3, 1182, 5], + ["stone_text", 7], + ["setarg", 9, 1, 7, 1182, 5], + ["setarg", 9, 2, 6, 1182, 5], + ["setarg", 9, 3, 2, 1182, 5], + ["invoke", 9, 6, 1182, 5], + ["access", 6, "int", 1183, 12], + ["access", 7, 0, 1183, 25], + ["get", 8, 57, 1, 1183, 5], + ["frame", 9, 8, 3, 1183, 5], + ["stone_text", 6], + ["setarg", 9, 1, 6, 1183, 5], + ["setarg", 9, 2, 14, 1183, 5], + ["setarg", 9, 3, 7, 1183, 5], + ["invoke", 9, 6, 1183, 5], + ["access", 6, "int", 1184, 12], + ["access", 7, 1, 1184, 24], + ["get", 8, 57, 1, 1184, 5], + ["frame", 9, 8, 3, 1184, 5], + ["stone_text", 6], + ["setarg", 9, 1, 6, 1184, 5], + ["setarg", 9, 2, 15, 1184, 5], + ["setarg", 9, 3, 7, 1184, 5], + ["invoke", 9, 6, 1184, 5], + ["access", 6, "null", 1185, 12], + ["get", 7, 56, 1, 1185, 5], + ["frame", 8, 7, 2, 1185, 5], + ["stone_text", 6], + ["setarg", 8, 1, 6, 1185, 5], + ["setarg", 8, 2, 13, 1185, 5], + ["invoke", 8, 6, 1185, 5], + ["access", 6, "length", 1186, 12], + ["get", 7, 57, 1, 1186, 5], + ["frame", 8, 7, 3, 1186, 5], + ["stone_text", 6], + ["setarg", 8, 1, 6, 1186, 5], + ["setarg", 8, 2, 10, 1186, 5], + ["setarg", 8, 3, 3, 1186, 5], + ["invoke", 8, 6, 1186, 5], + ["function", 6, 59, 1187, 26], + ["get", 7, 103, 1, 1187, 5], + ["frame", 8, 7, 2, 1187, 5], + ["setarg", 8, 1, 12, 1187, 5], + ["setarg", 8, 2, 6, 1187, 5], + ["invoke", 8, 6, 1187, 5], + ["access", 6, "move", 1194, 12], + ["get", 7, 57, 1, 1194, 5], + ["frame", 8, 7, 3, 1194, 5], + ["stone_text", 6], + ["setarg", 8, 1, 6, 1194, 5], + ["setarg", 8, 2, 1, 1194, 5], + ["setarg", 8, 3, 4, 1194, 5], + ["invoke", 8, 4, 1194, 5], + ["return", 1, 1195, 12], + "_nop_ur_1", + "_nop_ur_2" + ], + "_write_types": [null, null, null, null, "record", null, null, null, "record", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "text", null, null, null, "record", "text", "record", "text", null, null, null, "text", null, null, null, "text", "int", "array", null, null, null, "text", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", null, null, null, "text", null, null, null, "function", null, null, null, "text", null, null, null, null], + "name": "", + "filename": ".cell/packages/core/mcode.cm", + "nr_args": 3 + }, + { + "_closure_slot_types": {}, + "disruption_pc": 0, + "nr_slots": 8, + "nr_close_slots": 0, + "instructions": [ + ["access", 2, "eq", 1237, 14], + ["get", 3, 24, 1, 1237, 20], + ["load_field", 4, 1, "item", 1237, 30], + ["get", 5, 6, 1, 1237, 38], + ["get", 6, 58, 2, 1237, 7], + ["frame", 7, 6, 4, 1237, 7], + ["stone_text", 2], + ["setarg", 7, 1, 2, 1237, 7], + ["setarg", 7, 2, 3, 1237, 7], + ["setarg", 7, 3, 4, 1237, 7], + ["setarg", 7, 4, 5, 1237, 7], + ["invoke", 7, 2, 1237, 7], + ["access", 2, "jump_true", 1238, 22], + ["get", 3, 24, 1, 1238, 35], + ["get", 4, 27, 1, 1238, 45], + ["get", 5, 66, 2, 1238, 7], + ["frame", 6, 5, 3, 1238, 7], + ["stone_text", 2], + ["setarg", 6, 1, 2, 1238, 7], + ["setarg", 6, 2, 3, 1238, 7], + ["setarg", 6, 3, 4, 1238, 7], + ["invoke", 6, 2, 1238, 7], + ["null", 2, 1239, 14], + ["return", 2, 1239, 14], + "_nop_ur_1", + "_nop_ur_2" + ], + "_write_types": [null, null, "text", null, null, null, null, null, null, "text", null, null, null, null, null, "null", null], + "name": "", + "filename": ".cell/packages/core/mcode.cm", + "nr_args": 1 + }, + { + "_closure_slot_types": {}, + "disruption_pc": 0, + "nr_slots": 7, + "nr_close_slots": 0, + "instructions": [ + ["get", 2, 11, 1, 1242, 23], + ["load_field", 3, 1, "item", 1242, 29], + ["load_field", 4, 1, "i", 1242, 37], + ["array", 5, 2, 1242, 37], + ["push", 5, 3, 1242, 37], + ["push", 5, 4, 1242, 37], + ["access", 3, 2, 1242, 43], + ["get", 4, 102, 2, 1242, 7], + ["frame", 6, 4, 3, 1242, 7], + ["setarg", 6, 1, 2, 1242, 7], + ["setarg", 6, 2, 5, 1242, 7], + ["setarg", 6, 3, 3, 1242, 7], + ["invoke", 6, 2, 1242, 7], + ["access", 2, "wary_true", 1243, 22], + ["get", 3, 21, 1, 1243, 35], + ["get", 4, 27, 1, 1243, 40], + ["get", 5, 66, 2, 1243, 7], + ["frame", 6, 5, 3, 1243, 7], + ["stone_text", 2], + ["setarg", 6, 1, 2, 1243, 7], + ["setarg", 6, 2, 3, 1243, 7], + ["setarg", 6, 3, 4, 1243, 7], + ["invoke", 6, 2, 1243, 7], + ["null", 2, 1244, 14], + ["return", 2, 1244, 14], + "_nop_ur_1", + "_nop_ur_2" + ], + "_write_types": [null, null, null, null, null, "array", "int", null, null, null, "text", null, null, null, null, null, "null", null], + "name": "", + "filename": ".cell/packages/core/mcode.cm", + "nr_args": 1 + }, + { + "_closure_slot_types": {}, + "disruption_pc": 0, + "nr_slots": 40, + "nr_close_slots": 24, + "instructions": [ + ["load_field", 4, 2, "arr", 1200, 20], + ["move", 5, 4, 1200, 20], + ["load_field", 5, 2, "target", 1201, 18], + ["move", 6, 5, 1201, 18], + ["get", 7, 46, 1, 1202, 15], + ["frame", 8, 7, 0, 1202, 15], + ["invoke", 8, 7, 1202, 15], + ["move", 8, 7, 1202, 15], + ["get", 8, 46, 1, 1203, 13], + ["frame", 9, 8, 0, 1203, 13], + ["invoke", 9, 8, 1203, 13], + ["move", 9, 8, 1203, 13], + ["get", 10, 46, 1, 1204, 17], + ["frame", 11, 10, 0, 1204, 17], + ["invoke", 11, 10, 1204, 17], + ["move", 11, 10, 1204, 17], + ["get", 11, 46, 1, 1205, 16], + ["frame", 12, 11, 0, 1205, 16], + ["invoke", 12, 11, 1205, 16], + ["move", 12, 11, 1205, 16], + ["get", 12, 46, 1, 1206, 20], + ["frame", 13, 12, 0, 1206, 20], + ["invoke", 13, 12, 1206, 20], + ["move", 13, 12, 1206, 20], + ["get", 14, 46, 1, 1207, 14], + ["frame", 15, 14, 0, 1207, 14], + ["invoke", 15, 14, 1207, 14], + ["move", 15, 14, 1207, 14], + ["get", 15, 46, 1, 1208, 14], + ["frame", 16, 15, 0, 1208, 14], + ["invoke", 16, 15, 1208, 14], + ["move", 16, 15, 1208, 14], + ["get", 16, 46, 1, 1209, 18], + ["frame", 17, 16, 0, 1209, 18], + ["invoke", 17, 16, 1209, 18], + ["move", 17, 16, 1209, 18], + ["get", 17, 46, 1, 1210, 16], + ["frame", 18, 17, 0, 1210, 16], + ["invoke", 18, 17, 1210, 16], + ["move", 18, 17, 1210, 16], + ["get", 18, 46, 1, 1211, 15], + ["frame", 19, 18, 0, 1211, 15], + ["invoke", 19, 18, 1211, 15], + ["move", 19, 18, 1211, 15], + ["get", 19, 46, 1, 1212, 13], + ["frame", 20, 19, 0, 1212, 13], + ["invoke", 20, 19, 1212, 13], + ["move", 20, 19, 1212, 13], + ["get", 20, 46, 1, 1213, 15], + ["frame", 21, 20, 0, 1213, 15], + ["invoke", 21, 20, 1213, 15], + ["move", 21, 20, 1213, 15], + ["get", 22, 46, 1, 1214, 17], + ["frame", 23, 22, 0, 1214, 17], + ["invoke", 23, 22, 1214, 17], + ["move", 23, 22, 1214, 17], + ["get", 23, 46, 1, 1215, 20], + ["frame", 24, 23, 0, 1215, 20], + ["invoke", 24, 23, 1215, 20], + ["move", 24, 23, 1215, 20], + ["access", 23, "find_fn", 1216, 35], + ["get", 25, 51, 1, 1216, 25], + ["frame", 26, 25, 1, 1216, 25], + ["stone_text", 23], + ["setarg", 26, 1, 23, 1216, 25], + ["invoke", 26, 23, 1216, 25], + ["move", 25, 23, 1216, 25], + ["access", 26, "find_found", 1217, 33], + ["get", 27, 51, 1, 1217, 23], + ["frame", 28, 27, 1, 1217, 23], + ["stone_text", 26], + ["setarg", 28, 1, 26, 1217, 23], + ["invoke", 28, 26, 1217, 23], + ["move", 27, 26, 1217, 23], + ["access", 26, "find_nf", 1218, 37], + ["get", 28, 51, 1, 1218, 27], + ["frame", 29, 28, 1, 1218, 27], + ["stone_text", 26], + ["setarg", 29, 1, 26, 1218, 27], + ["invoke", 29, 26, 1218, 27], + ["move", 28, 26, 1218, 27], + ["access", 26, "find_final", 1219, 33], + ["get", 29, 51, 1, 1219, 23], + ["frame", 30, 29, 1, 1219, 23], + ["stone_text", 26], + ["setarg", 30, 1, 26, 1219, 23], + ["invoke", 30, 26, 1219, 23], + ["move", 29, 26, 1219, 23], + ["access", 26, "find_vrev", 1220, 26], + ["get", 30, 51, 1, 1220, 16], + ["frame", 31, 30, 1, 1220, 16], + ["stone_text", 26], + ["setarg", 31, 1, 26, 1220, 16], + ["invoke", 31, 26, 1220, 16], + ["move", 30, 26, 1220, 16], + ["access", 26, "find_vdone", 1221, 27], + ["get", 31, 51, 1, 1221, 17], + ["frame", 32, 31, 1, 1221, 17], + ["stone_text", 26], + ["setarg", 32, 1, 26, 1221, 17], + ["invoke", 32, 26, 1221, 17], + ["move", 31, 26, 1221, 17], + ["access", 26, "find_frev", 1222, 26], + ["get", 32, 51, 1, 1222, 16], + ["frame", 33, 32, 1, 1222, 16], + ["stone_text", 26], + ["setarg", 33, 1, 26, 1222, 16], + ["invoke", 33, 26, 1222, 16], + ["move", 32, 26, 1222, 16], + ["access", 26, "find_fdone", 1223, 27], + ["get", 33, 51, 1, 1223, 17], + ["frame", 34, 33, 1, 1223, 17], + ["stone_text", 26], + ["setarg", 34, 1, 26, 1223, 17], + ["invoke", 34, 26, 1223, 17], + ["move", 33, 26, 1223, 17], + ["record", 26, 8], + ["store_field", 26, 4, "arr", 1224, 20], + ["store_field", 26, 7, "len", 1224, 35], + ["store_field", 26, 8, "i", 1224, 43], + ["store_field", 26, 10, "check", 1224, 53], + ["store_field", 26, 11, "item", 1224, 66], + ["store_field", 26, 18, "one", 1224, 77], + ["access", 34, "find_vl", 1225, 37], + ["get", 35, 51, 1, 1225, 27], + ["frame", 36, 35, 1, 1225, 27], + ["stone_text", 34], + ["setarg", 36, 1, 34, 1225, 27], + ["invoke", 36, 34, 1225, 27], + ["store_field", 26, 34, "loop_label", 1225, 27], + ["access", 34, "find_vd", 1225, 71], + ["get", 35, 51, 1, 1225, 61], + ["frame", 36, 35, 1, 1225, 61], + ["stone_text", 34], + ["setarg", 36, 1, 34, 1225, 61], + ["invoke", 36, 34, 1225, 61], + ["store_field", 26, 34, "done_label", 1225, 61], + ["move", 34, 26, 1225, 61], + ["record", 26, 8], + ["store_field", 26, 4, "arr", 1226, 21], + ["store_field", 26, 7, "len", 1226, 36], + ["store_field", 26, 8, "i", 1226, 44], + ["store_field", 26, 10, "check", 1226, 54], + ["store_field", 26, 11, "item", 1226, 67], + ["store_field", 26, 18, "one", 1226, 78], + ["access", 35, "find_vrl", 1227, 38], + ["get", 36, 51, 1, 1227, 28], + ["frame", 37, 36, 1, 1227, 28], + ["stone_text", 35], + ["setarg", 37, 1, 35, 1227, 28], + ["invoke", 37, 35, 1227, 28], + ["store_field", 26, 35, "loop_label", 1227, 28], + ["access", 35, "find_vrd", 1227, 73], + ["get", 36, 51, 1, 1227, 63], + ["frame", 37, 36, 1, 1227, 63], + ["stone_text", 35], + ["setarg", 37, 1, 35, 1227, 63], + ["invoke", 37, 35, 1227, 63], + ["store_field", 26, 35, "done_label", 1227, 63], + ["move", 35, 26, 1227, 63], + ["record", 26, 8], + ["store_field", 26, 4, "arr", 1228, 20], + ["store_field", 26, 7, "len", 1228, 35], + ["store_field", 26, 8, "i", 1228, 43], + ["store_field", 26, 10, "check", 1228, 53], + ["store_field", 26, 11, "item", 1228, 66], + ["store_field", 26, 18, "one", 1228, 77], + ["access", 36, "find_fl", 1229, 37], + ["get", 37, 51, 1, 1229, 27], + ["frame", 38, 37, 1, 1229, 27], + ["stone_text", 36], + ["setarg", 38, 1, 36, 1229, 27], + ["invoke", 38, 36, 1229, 27], + ["store_field", 26, 36, "loop_label", 1229, 27], + ["access", 36, "find_fd", 1229, 71], + ["get", 37, 51, 1, 1229, 61], + ["frame", 38, 37, 1, 1229, 61], + ["stone_text", 36], + ["setarg", 38, 1, 36, 1229, 61], + ["invoke", 38, 36, 1229, 61], + ["store_field", 26, 36, "done_label", 1229, 61], + ["move", 36, 26, 1229, 61], + ["record", 26, 8], + ["store_field", 26, 4, "arr", 1230, 21], + ["store_field", 26, 7, "len", 1230, 36], + ["store_field", 26, 8, "i", 1230, 44], + ["store_field", 26, 10, "check", 1230, 54], + ["store_field", 26, 11, "item", 1230, 67], + ["store_field", 26, 18, "one", 1230, 78], + ["access", 37, "find_ffl", 1231, 38], + ["get", 38, 51, 1, 1231, 28], + ["frame", 39, 38, 1, 1231, 28], + ["stone_text", 37], + ["setarg", 39, 1, 37, 1231, 28], + ["invoke", 39, 37, 1231, 28], + ["store_field", 26, 37, "loop_label", 1231, 28], + ["access", 37, "find_ffd", 1231, 73], + ["get", 38, 51, 1, 1231, 63], + ["frame", 39, 38, 1, 1231, 63], + ["stone_text", 37], + ["setarg", 39, 1, 37, 1231, 63], + ["invoke", 39, 37, 1231, 63], + ["store_field", 26, 37, "done_label", 1231, 63], + ["move", 37, 26, 1231, 63], + ["record", 26, 8], + ["store_field", 26, 4, "arr", 1232, 21], + ["store_field", 26, 7, "len", 1232, 36], + ["store_field", 26, 8, "i", 1232, 44], + ["store_field", 26, 10, "check", 1232, 54], + ["store_field", 26, 11, "item", 1232, 67], + ["store_field", 26, 18, "one", 1232, 78], + ["access", 8, "find_frl", 1233, 38], + ["get", 10, 51, 1, 1233, 28], + ["frame", 11, 10, 1, 1233, 28], + ["stone_text", 8], + ["setarg", 11, 1, 8, 1233, 28], + ["invoke", 11, 8, 1233, 28], + ["store_field", 26, 8, "loop_label", 1233, 28], + ["access", 8, "find_frd", 1233, 73], + ["get", 10, 51, 1, 1233, 63], + ["frame", 11, 10, 1, 1233, 63], + ["stone_text", 8], + ["setarg", 11, 1, 8, 1233, 63], + ["invoke", 11, 8, 1233, 63], + ["store_field", 26, 8, "done_label", 1233, 63], + ["move", 8, 26, 1233, 63], + ["record", 10, 10], + ["store_field", 10, 5, "fn", 1234, 20], + ["store_field", 10, 12, "fn_arity", 1234, 38], + ["store_field", 10, 20, "result", 1234, 56], + ["store_field", 10, 16, "null_s", 1234, 69], + ["store_field", 10, 19, "frame", 1235, 23], + ["store_field", 10, 17, "zero", 1235, 32], + ["store_field", 10, 18, "one", 1235, 43], + ["store_field", 10, 14, "az", 1235, 52], + ["store_field", 10, 15, "ao", 1235, 60], + ["access", 11, "find", 1235, 72], + ["store_field", 10, 11, "prefix", 1235, 72], + ["move", 11, 10, 1235, 72], + ["function", 10, 61, 1236, 20], + ["move", 12, 10, 1236, 20], + ["function", 10, 62, 1241, 19], + ["move", 14, 10, 1241, 19], + ["access", 10, "length", 1246, 12], + ["get", 15, 57, 1, 1246, 5], + ["frame", 19, 15, 3, 1246, 5], + ["stone_text", 10], + ["setarg", 19, 1, 10, 1246, 5], + ["setarg", 19, 2, 7, 1246, 5], + ["setarg", 19, 3, 4, 1246, 5], + ["invoke", 19, 4, 1246, 5], + ["access", 4, "int", 1247, 12], + ["access", 7, 0, 1247, 25], + ["get", 10, 57, 1, 1247, 5], + ["frame", 15, 10, 3, 1247, 5], + ["stone_text", 4], + ["setarg", 15, 1, 4, 1247, 5], + ["setarg", 15, 2, 17, 1247, 5], + ["setarg", 15, 3, 7, 1247, 5], + ["invoke", 15, 4, 1247, 5], + ["access", 4, "int", 1248, 12], + ["access", 7, 1, 1248, 24], + ["get", 10, 57, 1, 1248, 5], + ["frame", 15, 10, 3, 1248, 5], + ["stone_text", 4], + ["setarg", 15, 1, 4, 1248, 5], + ["setarg", 15, 2, 18, 1248, 5], + ["setarg", 15, 3, 7, 1248, 5], + ["invoke", 15, 4, 1248, 5], + ["access", 4, "null", 1249, 12], + ["get", 7, 56, 1, 1249, 5], + ["frame", 10, 7, 2, 1249, 5], + ["stone_text", 4], + ["setarg", 10, 1, 4, 1249, 5], + ["setarg", 10, 2, 16, 1249, 5], + ["invoke", 10, 4, 1249, 5], + ["access", 4, "is_func", 1250, 12], + ["get", 7, 57, 1, 1250, 5], + ["frame", 10, 7, 3, 1250, 5], + ["stone_text", 4], + ["setarg", 10, 1, 4, 1250, 5], + ["setarg", 10, 2, 22, 1250, 5], + ["setarg", 10, 3, 5, 1250, 5], + ["invoke", 10, 4, 1250, 5], + ["access", 4, "jump_true", 1251, 20], + ["get", 5, 66, 1, 1251, 5], + ["frame", 7, 5, 3, 1251, 5], + ["stone_text", 4], + ["setarg", 7, 1, 4, 1251, 5], + ["setarg", 7, 2, 22, 1251, 5], + ["setarg", 7, 3, 23, 1251, 5], + ["invoke", 7, 4, 1251, 5], + ["access", 4, 2, 1253, 18], + ["le", 5, 3, 4, 1253, 18], + ["jump_false", 5, "if_else_210", 1253, 18], + ["get", 4, 103, 1, 1254, 7], + ["frame", 5, 4, 2, 1254, 7], + ["setarg", 5, 1, 34, 1254, 7], + ["setarg", 5, 2, 12, 1254, 7], + ["invoke", 5, 4, 1254, 7], + ["jump", "if_end_211", 1254, 7], + "if_else_210", + ["access", 4, "wary_true", 1256, 22], + ["load_field", 5, 2, "rev", 1256, 35], + ["get", 7, 66, 1, 1256, 7], + ["frame", 10, 7, 3, 1256, 7], + ["stone_text", 4], + ["setarg", 10, 1, 4, 1256, 7], + ["setarg", 10, 2, 5, 1256, 7], + ["setarg", 10, 3, 30, 1256, 7], + ["invoke", 10, 4, 1256, 7], + ["access", 4, 4, 1257, 20], + ["ge", 5, 3, 4, 1257, 20], + ["move", 4, 5, 1257, 20], + ["jump_false", 5, "and_end_214", 1257, 20], + ["load_field", 5, 2, "from", 1257, 25], + ["access", 7, 0, 1257, 38], + ["ge", 10, 5, 7, 1257, 38], + ["move", 4, 10, 1257, 38], + "and_end_214", + ["jump_false", 4, "if_else_212", 1257, 38], + ["access", 4, "move", 1258, 16], + ["load_field", 5, 2, "from", 1258, 27], + ["get", 7, 57, 1, 1258, 9], + ["frame", 10, 7, 3, 1258, 9], + ["stone_text", 4], + ["setarg", 10, 1, 4, 1258, 9], + ["setarg", 10, 2, 9, 1258, 9], + ["setarg", 10, 3, 5, 1258, 9], + ["invoke", 10, 4, 1258, 9], + ["jump", "if_end_213", 1258, 9], + "if_else_212", + "if_end_213", + ["access", 4, 4, 1260, 20], + ["ge", 5, 3, 4, 1260, 20], + ["move", 4, 5, 1260, 20], + ["jump_false", 5, "and_end_217", 1260, 20], + ["load_field", 5, 2, "from", 1260, 25], + ["access", 7, 0, 1260, 38], + ["ge", 10, 5, 7, 1260, 38], + ["move", 4, 10, 1260, 38], + "and_end_217", + ["jump_false", 4, "if_else_215", 1260, 38], + ["load_field", 4, 34, "loop_label", 1261, 20], + ["get", 5, 54, 1, 1261, 9], + ["frame", 7, 5, 1, 1261, 9], + ["setarg", 7, 1, 4, 1261, 9], + ["invoke", 7, 4, 1261, 9], + ["access", 4, "lt", 1262, 16], + ["load_field", 5, 34, "check", 1262, 22], + ["load_field", 7, 34, "i", 1262, 32], + ["load_field", 10, 34, "len", 1262, 38], + ["get", 15, 58, 1, 1262, 9], + ["frame", 16, 15, 4, 1262, 9], + ["stone_text", 4], + ["setarg", 16, 1, 4, 1262, 9], + ["setarg", 16, 2, 5, 1262, 9], + ["setarg", 16, 3, 7, 1262, 9], + ["setarg", 16, 4, 10, 1262, 9], + ["invoke", 16, 4, 1262, 9], + ["access", 4, "jump_false", 1263, 24], + ["load_field", 5, 34, "check", 1263, 38], + ["load_field", 7, 34, "done_label", 1263, 48], + ["get", 10, 66, 1, 1263, 9], + ["frame", 15, 10, 3, 1263, 9], + ["stone_text", 4], + ["setarg", 15, 1, 4, 1263, 9], + ["setarg", 15, 2, 5, 1263, 9], + ["setarg", 15, 3, 7, 1263, 9], + ["invoke", 15, 4, 1263, 9], + ["access", 4, "load_index", 1264, 16], + ["load_field", 5, 34, "item", 1264, 30], + ["load_field", 7, 34, "arr", 1264, 39], + ["load_field", 10, 34, "i", 1264, 47], + ["get", 15, 58, 1, 1264, 9], + ["frame", 16, 15, 4, 1264, 9], + ["stone_text", 4], + ["setarg", 16, 1, 4, 1264, 9], + ["setarg", 16, 2, 5, 1264, 9], + ["setarg", 16, 3, 7, 1264, 9], + ["setarg", 16, 4, 10, 1264, 9], + ["invoke", 16, 4, 1264, 9], + ["frame", 4, 12, 1, 1265, 9], + ["setarg", 4, 1, 34, 1265, 9], + ["invoke", 4, 5, 1265, 9], + ["access", 4, "add", 1266, 16], + ["load_field", 5, 34, "i", 1266, 23], + ["load_field", 7, 34, "i", 1266, 29], + ["load_field", 10, 34, "one", 1266, 35], + ["get", 15, 58, 1, 1266, 9], + ["frame", 16, 15, 4, 1266, 9], + ["stone_text", 4], + ["setarg", 16, 1, 4, 1266, 9], + ["setarg", 16, 2, 5, 1266, 9], + ["setarg", 16, 3, 7, 1266, 9], + ["setarg", 16, 4, 10, 1266, 9], + ["invoke", 16, 4, 1266, 9], + ["load_field", 4, 34, "loop_label", 1267, 19], + ["get", 5, 65, 1, 1267, 9], + ["frame", 7, 5, 1, 1267, 9], + ["setarg", 7, 1, 4, 1267, 9], + ["invoke", 7, 4, 1267, 9], + ["load_field", 4, 34, "done_label", 1268, 20], + ["get", 5, 54, 1, 1268, 9], + ["frame", 7, 5, 1, 1268, 9], + ["setarg", 7, 1, 4, 1268, 9], + ["invoke", 7, 4, 1268, 9], + ["jump", "if_end_216", 1268, 9], + "if_else_215", + ["get", 4, 103, 1, 1270, 9], + ["frame", 5, 4, 2, 1270, 9], + ["setarg", 5, 1, 34, 1270, 9], + ["setarg", 5, 2, 12, 1270, 9], + ["invoke", 5, 4, 1270, 9], + "if_end_216", + ["get", 4, 65, 1, 1272, 7], + ["frame", 5, 4, 1, 1272, 7], + ["setarg", 5, 1, 31, 1272, 7], + ["invoke", 5, 4, 1272, 7], + ["get", 4, 54, 1, 1273, 7], + ["frame", 5, 4, 1, 1273, 7], + ["setarg", 5, 1, 30, 1273, 7], + ["invoke", 5, 4, 1273, 7], + ["get", 4, 104, 1, 1274, 7], + ["frame", 5, 4, 2, 1274, 7], + ["setarg", 5, 1, 35, 1274, 7], + ["setarg", 5, 2, 12, 1274, 7], + ["invoke", 5, 4, 1274, 7], + ["get", 4, 54, 1, 1275, 7], + ["frame", 5, 4, 1, 1275, 7], + ["setarg", 5, 1, 31, 1275, 7], + ["invoke", 5, 4, 1275, 7], + "if_end_211", + ["get", 4, 65, 1, 1277, 5], + ["frame", 5, 4, 1, 1277, 5], + ["setarg", 5, 1, 28, 1277, 5], + ["invoke", 5, 4, 1277, 5], + ["get", 4, 54, 1, 1279, 5], + ["frame", 5, 4, 1, 1279, 5], + ["setarg", 5, 1, 25, 1279, 5], + ["invoke", 5, 4, 1279, 5], + ["access", 4, "length", 1280, 12], + ["get", 5, 57, 1, 1280, 5], + ["frame", 7, 5, 3, 1280, 5], + ["stone_text", 4], + ["setarg", 7, 1, 4, 1280, 5], + ["setarg", 7, 2, 13, 1280, 5], + ["setarg", 7, 3, 6, 1280, 5], + ["invoke", 7, 4, 1280, 5], + ["access", 4, 2, 1281, 18], + ["le", 5, 3, 4, 1281, 18], + ["jump_false", 5, "if_else_218", 1281, 18], + ["get", 4, 103, 1, 1282, 7], + ["frame", 5, 4, 2, 1282, 7], + ["setarg", 5, 1, 36, 1282, 7], + ["setarg", 5, 2, 14, 1282, 7], + ["invoke", 5, 4, 1282, 7], + ["jump", "if_end_219", 1282, 7], + "if_else_218", + ["access", 4, "wary_true", 1284, 22], + ["load_field", 5, 2, "rev", 1284, 35], + ["get", 7, 66, 1, 1284, 7], + ["frame", 10, 7, 3, 1284, 7], + ["stone_text", 4], + ["setarg", 10, 1, 4, 1284, 7], + ["setarg", 10, 2, 5, 1284, 7], + ["setarg", 10, 3, 32, 1284, 7], + ["invoke", 10, 4, 1284, 7], + ["access", 4, 4, 1285, 20], + ["ge", 5, 3, 4, 1285, 20], + ["move", 4, 5, 1285, 20], + ["jump_false", 5, "and_end_222", 1285, 20], + ["load_field", 5, 2, "from", 1285, 25], + ["access", 7, 0, 1285, 38], + ["ge", 10, 5, 7, 1285, 38], + ["move", 4, 10, 1285, 38], + "and_end_222", + ["jump_false", 4, "if_else_220", 1285, 38], + ["access", 4, "move", 1286, 16], + ["load_field", 5, 2, "from", 1286, 27], + ["get", 7, 57, 1, 1286, 9], + ["frame", 10, 7, 3, 1286, 9], + ["stone_text", 4], + ["setarg", 10, 1, 4, 1286, 9], + ["setarg", 10, 2, 9, 1286, 9], + ["setarg", 10, 3, 5, 1286, 9], + ["invoke", 10, 4, 1286, 9], + ["jump", "if_end_221", 1286, 9], + "if_else_220", + "if_end_221", + ["access", 4, 4, 1288, 20], + ["ge", 5, 3, 4, 1288, 20], + ["move", 4, 5, 1288, 20], + ["jump_false", 5, "and_end_225", 1288, 20], + ["load_field", 5, 2, "from", 1288, 25], + ["access", 7, 0, 1288, 38], + ["ge", 10, 5, 7, 1288, 38], + ["move", 4, 10, 1288, 38], + "and_end_225", + ["jump_false", 4, "if_else_223", 1288, 38], + ["load_field", 4, 37, "loop_label", 1289, 20], + ["get", 5, 54, 1, 1289, 9], + ["frame", 7, 5, 1, 1289, 9], + ["setarg", 7, 1, 4, 1289, 9], + ["invoke", 7, 4, 1289, 9], + ["access", 4, "lt", 1290, 16], + ["load_field", 5, 37, "check", 1290, 22], + ["load_field", 7, 37, "i", 1290, 33], + ["load_field", 10, 37, "len", 1290, 40], + ["get", 12, 58, 1, 1290, 9], + ["frame", 13, 12, 4, 1290, 9], + ["stone_text", 4], + ["setarg", 13, 1, 4, 1290, 9], + ["setarg", 13, 2, 5, 1290, 9], + ["setarg", 13, 3, 7, 1290, 9], + ["setarg", 13, 4, 10, 1290, 9], + ["invoke", 13, 4, 1290, 9], + ["access", 4, "jump_false", 1291, 24], + ["load_field", 5, 37, "check", 1291, 38], + ["load_field", 7, 37, "done_label", 1291, 49], + ["get", 10, 66, 1, 1291, 9], + ["frame", 12, 10, 3, 1291, 9], + ["stone_text", 4], + ["setarg", 12, 1, 4, 1291, 9], + ["setarg", 12, 2, 5, 1291, 9], + ["setarg", 12, 3, 7, 1291, 9], + ["invoke", 12, 4, 1291, 9], + ["access", 4, "load_index", 1292, 16], + ["load_field", 5, 37, "item", 1292, 30], + ["load_field", 7, 37, "arr", 1292, 40], + ["load_field", 10, 37, "i", 1292, 49], + ["get", 12, 58, 1, 1292, 9], + ["frame", 13, 12, 4, 1292, 9], + ["stone_text", 4], + ["setarg", 13, 1, 4, 1292, 9], + ["setarg", 13, 2, 5, 1292, 9], + ["setarg", 13, 3, 7, 1292, 9], + ["setarg", 13, 4, 10, 1292, 9], + ["invoke", 13, 4, 1292, 9], + ["frame", 4, 14, 1, 1293, 9], + ["setarg", 4, 1, 37, 1293, 9], + ["invoke", 4, 5, 1293, 9], + ["access", 4, "add", 1294, 16], + ["load_field", 5, 37, "i", 1294, 23], + ["load_field", 7, 37, "i", 1294, 30], + ["load_field", 10, 37, "one", 1294, 37], + ["get", 12, 58, 1, 1294, 9], + ["frame", 13, 12, 4, 1294, 9], + ["stone_text", 4], + ["setarg", 13, 1, 4, 1294, 9], + ["setarg", 13, 2, 5, 1294, 9], + ["setarg", 13, 3, 7, 1294, 9], + ["setarg", 13, 4, 10, 1294, 9], + ["invoke", 13, 4, 1294, 9], + ["load_field", 4, 37, "loop_label", 1295, 19], + ["get", 5, 65, 1, 1295, 9], + ["frame", 7, 5, 1, 1295, 9], + ["setarg", 7, 1, 4, 1295, 9], + ["invoke", 7, 4, 1295, 9], + ["load_field", 4, 37, "done_label", 1296, 20], + ["get", 5, 54, 1, 1296, 9], + ["frame", 7, 5, 1, 1296, 9], + ["setarg", 7, 1, 4, 1296, 9], + ["invoke", 7, 4, 1296, 9], + ["jump", "if_end_224", 1296, 9], + "if_else_223", + ["get", 4, 103, 1, 1298, 9], + ["frame", 5, 4, 2, 1298, 9], + ["setarg", 5, 1, 37, 1298, 9], + ["setarg", 5, 2, 14, 1298, 9], + ["invoke", 5, 4, 1298, 9], + "if_end_224", + ["get", 4, 65, 1, 1300, 7], + ["frame", 5, 4, 1, 1300, 7], + ["setarg", 5, 1, 33, 1300, 7], + ["invoke", 5, 4, 1300, 7], + ["get", 4, 54, 1, 1301, 7], + ["frame", 5, 4, 1, 1301, 7], + ["setarg", 5, 1, 32, 1301, 7], + ["invoke", 5, 4, 1301, 7], + ["get", 4, 104, 1, 1302, 7], + ["frame", 5, 4, 2, 1302, 7], + ["setarg", 5, 1, 8, 1302, 7], + ["setarg", 5, 2, 14, 1302, 7], + ["invoke", 5, 4, 1302, 7], + ["get", 4, 54, 1, 1303, 7], + ["frame", 5, 4, 1, 1303, 7], + ["setarg", 5, 1, 33, 1303, 7], + ["invoke", 5, 4, 1303, 7], + "if_end_219", + ["get", 4, 54, 1, 1305, 5], + ["frame", 5, 4, 1, 1305, 5], + ["setarg", 5, 1, 28, 1305, 5], + ["invoke", 5, 4, 1305, 5], + ["access", 4, "null", 1306, 12], + ["get", 5, 56, 1, 1306, 5], + ["frame", 7, 5, 2, 1306, 5], + ["stone_text", 4], + ["setarg", 7, 1, 4, 1306, 5], + ["setarg", 7, 2, 1, 1306, 5], + ["invoke", 7, 4, 1306, 5], + ["get", 4, 65, 1, 1307, 5], + ["frame", 5, 4, 1, 1307, 5], + ["setarg", 5, 1, 29, 1307, 5], + ["invoke", 5, 4, 1307, 5], + ["get", 4, 54, 1, 1308, 5], + ["frame", 5, 4, 1, 1308, 5], + ["setarg", 5, 1, 27, 1308, 5], + ["invoke", 5, 4, 1308, 5], + ["access", 4, "move", 1309, 12], + ["get", 5, 57, 1, 1309, 5], + ["frame", 7, 5, 3, 1309, 5], + ["stone_text", 4], + ["setarg", 7, 1, 4, 1309, 5], + ["setarg", 7, 2, 1, 1309, 5], + ["setarg", 7, 3, 9, 1309, 5], + ["invoke", 7, 4, 1309, 5], + ["get", 4, 54, 1, 1310, 5], + ["frame", 5, 4, 1, 1310, 5], + ["setarg", 5, 1, 29, 1310, 5], + ["invoke", 5, 4, 1310, 5], + ["return", 1, 1311, 12], + "_nop_ur_1", + "_nop_ur_2" + ], + "_write_types": [null, null, null, null, "record", null, null, null, null, null, null, null, null, null, "record", null, "record", null, null, "function", null, "record", null, null, null, null, null, null, null, null, "record", "function", null, "record", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "record", "text", null, null, null, "text", null, null, null, "record", "text", null, null, null, "text", null, null, null, "record", "text", null, null, null, "text", null, null, null, "record", "text", null, null, null, "text", null, null, null, "record", "text", null, null, null, "text", null, null, null, "record", "text", "function", "function", "text", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "int", "bool", null, null, null, "text", null, null, null, null, "int", "bool", "bool", null, "int", "bool", "text", null, null, null, null, "int", "bool", "bool", null, "int", "bool", null, null, null, null, "text", null, null, null, null, null, null, "text", null, null, null, null, null, "text", null, null, null, null, null, null, null, null, "text", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "text", null, null, null, "int", "bool", null, null, null, "text", null, null, null, null, "int", "bool", "bool", null, "int", "bool", "text", null, null, null, null, "int", "bool", "bool", null, "int", "bool", null, null, null, null, "text", null, null, null, null, null, null, "text", null, null, null, null, null, "text", null, null, null, null, null, null, null, null, "text", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "text", null, null, null, null, null, null, null, null, null, "text", null, null, null, null, null, null, null], + "name": "", + "filename": ".cell/packages/core/mcode.cm", + "nr_args": 3 + }, + { + "_closure_slot_types": {}, + "disruption_pc": 0, + "nr_slots": 26, + "nr_close_slots": 0, + "instructions": [ + ["get", 4, 46, 1, 1316, 18], + ["frame", 5, 4, 0, 1316, 18], + ["invoke", 5, 4, 1316, 18], + ["move", 5, 4, 1316, 18], + ["get", 5, 46, 1, 1317, 15], + ["frame", 6, 5, 0, 1317, 15], + ["invoke", 6, 5, 1317, 15], + ["move", 6, 5, 1317, 15], + ["get", 6, 46, 1, 1318, 13], + ["frame", 7, 6, 0, 1318, 13], + ["invoke", 7, 6, 1318, 13], + ["move", 7, 6, 1318, 13], + ["get", 7, 46, 1, 1319, 17], + ["frame", 8, 7, 0, 1319, 17], + ["invoke", 8, 7, 1319, 17], + ["move", 8, 7, 1319, 17], + ["get", 8, 46, 1, 1320, 16], + ["frame", 9, 8, 0, 1320, 16], + ["invoke", 9, 8, 1320, 16], + ["move", 9, 8, 1320, 16], + ["get", 9, 46, 1, 1321, 20], + ["frame", 10, 9, 0, 1321, 20], + ["invoke", 10, 9, 1321, 20], + ["move", 10, 9, 1321, 20], + ["get", 10, 46, 1, 1322, 25], + ["frame", 11, 10, 0, 1322, 25], + ["invoke", 11, 10, 1322, 25], + ["move", 11, 10, 1322, 25], + ["get", 11, 46, 1, 1323, 24], + ["frame", 12, 11, 0, 1323, 24], + ["invoke", 12, 11, 1323, 24], + ["move", 12, 11, 1323, 24], + ["get", 12, 46, 1, 1324, 18], + ["frame", 13, 12, 0, 1324, 18], + ["invoke", 13, 12, 1324, 18], + ["move", 13, 12, 1324, 18], + ["get", 13, 46, 1, 1325, 16], + ["frame", 14, 13, 0, 1325, 16], + ["invoke", 14, 13, 1325, 16], + ["move", 14, 13, 1325, 16], + ["get", 14, 46, 1, 1326, 15], + ["frame", 15, 14, 0, 1326, 15], + ["invoke", 15, 14, 1326, 15], + ["move", 15, 14, 1326, 15], + ["get", 15, 46, 1, 1327, 13], + ["frame", 16, 15, 0, 1327, 13], + ["invoke", 16, 15, 1327, 13], + ["move", 16, 15, 1327, 13], + ["get", 16, 46, 1, 1328, 15], + ["frame", 17, 16, 0, 1328, 15], + ["invoke", 17, 16, 1328, 15], + ["move", 17, 16, 1328, 15], + ["access", 17, "map_loop", 1329, 32], + ["get", 18, 51, 1, 1329, 22], + ["frame", 19, 18, 1, 1329, 22], + ["stone_text", 17], + ["setarg", 19, 1, 17, 1329, 22], + ["invoke", 19, 17, 1329, 22], + ["move", 18, 17, 1329, 22], + ["access", 18, "map_call_one", 1330, 36], + ["get", 19, 51, 1, 1330, 26], + ["frame", 20, 19, 1, 1330, 26], + ["stone_text", 18], + ["setarg", 20, 1, 18, 1330, 26], + ["invoke", 20, 18, 1330, 26], + ["move", 19, 18, 1330, 26], + ["access", 19, "map_call_two", 1331, 36], + ["get", 20, 51, 1, 1331, 26], + ["frame", 21, 20, 1, 1331, 26], + ["stone_text", 19], + ["setarg", 21, 1, 19, 1331, 26], + ["invoke", 21, 19, 1331, 26], + ["move", 20, 19, 1331, 26], + ["access", 20, "map_call_done", 1332, 37], + ["get", 21, 51, 1, 1332, 27], + ["frame", 22, 21, 1, 1332, 27], ["stone_text", 20], - ["setarg", 22, 1, 20, 1095, 27], - ["invoke", 22, 20, 1095, 27], - ["move", 21, 20, 1095, 27], - ["access", 21, "filter_skip", 1096, 32], - ["get", 22, 49, 1, 1096, 22], - ["frame", 23, 22, 1, 1096, 22], + ["setarg", 22, 1, 20, 1332, 27], + ["invoke", 22, 20, 1332, 27], + ["move", 21, 20, 1332, 27], + ["access", 21, "map_done", 1333, 32], + ["get", 22, 51, 1, 1333, 22], + ["frame", 23, 22, 1, 1333, 22], ["stone_text", 21], - ["setarg", 23, 1, 21, 1096, 22], - ["invoke", 23, 21, 1096, 22], - ["move", 22, 21, 1096, 22], - ["access", 22, "filter_done", 1097, 32], - ["get", 23, 49, 1, 1097, 22], - ["frame", 24, 23, 1, 1097, 22], + ["setarg", 23, 1, 21, 1333, 22], + ["invoke", 23, 21, 1333, 22], + ["move", 22, 21, 1333, 22], + ["access", 22, "array", 1334, 16], + ["access", 23, 0, 1334, 33], + ["array", 24, 3, 1334, 33], ["stone_text", 22], - ["setarg", 24, 1, 22, 1097, 22], - ["invoke", 24, 22, 1097, 22], - ["move", 23, 22, 1097, 22], - ["access", 23, "array", 1098, 16], - ["access", 24, 0, 1098, 33], - ["array", 25, 3, 1098, 33], - ["stone_text", 23], - ["push", 25, 23, 1098, 33], - ["push", 25, 4, 1098, 33], - ["push", 25, 24, 1098, 33], - ["get", 23, 51, 1, 1098, 5], - ["frame", 24, 23, 1, 1098, 5], - ["setarg", 24, 1, 25, 1098, 5], - ["invoke", 24, 23, 1098, 5], - ["access", 23, "length", 1099, 12], - ["get", 24, 55, 1, 1099, 5], - ["frame", 25, 24, 3, 1099, 5], - ["stone_text", 23], - ["setarg", 25, 1, 23, 1099, 5], - ["setarg", 25, 2, 5, 1099, 5], - ["setarg", 25, 3, 2, 1099, 5], - ["invoke", 25, 23, 1099, 5], - ["access", 23, "int", 1100, 12], - ["access", 24, 0, 1100, 22], - ["get", 25, 55, 1, 1100, 5], - ["frame", 26, 25, 3, 1100, 5], - ["stone_text", 23], - ["setarg", 26, 1, 23, 1100, 5], - ["setarg", 26, 2, 6, 1100, 5], - ["setarg", 26, 3, 24, 1100, 5], - ["invoke", 26, 23, 1100, 5], - ["access", 23, "int", 1101, 12], - ["access", 24, 0, 1101, 25], - ["get", 25, 55, 1, 1101, 5], - ["frame", 26, 25, 3, 1101, 5], - ["stone_text", 23], - ["setarg", 26, 1, 23, 1101, 5], - ["setarg", 26, 2, 13, 1101, 5], - ["setarg", 26, 3, 24, 1101, 5], - ["invoke", 26, 23, 1101, 5], - ["access", 23, "int", 1102, 12], - ["access", 24, 1, 1102, 24], - ["get", 25, 55, 1, 1102, 5], - ["frame", 26, 25, 3, 1102, 5], - ["stone_text", 23], - ["setarg", 26, 1, 23, 1102, 5], - ["setarg", 26, 2, 14, 1102, 5], - ["setarg", 26, 3, 24, 1102, 5], - ["invoke", 26, 23, 1102, 5], - ["access", 23, "null", 1103, 12], - ["get", 24, 54, 1, 1103, 5], - ["frame", 25, 24, 2, 1103, 5], - ["stone_text", 23], - ["setarg", 25, 1, 23, 1103, 5], - ["setarg", 25, 2, 12, 1103, 5], - ["invoke", 25, 23, 1103, 5], - ["access", 23, "length", 1104, 12], - ["get", 24, 55, 1, 1104, 5], - ["frame", 25, 24, 3, 1104, 5], - ["stone_text", 23], - ["setarg", 25, 1, 23, 1104, 5], - ["setarg", 25, 2, 9, 1104, 5], - ["setarg", 25, 3, 3, 1104, 5], - ["invoke", 25, 23, 1104, 5], - ["get", 23, 52, 1, 1105, 5], - ["frame", 24, 23, 1, 1105, 5], - ["setarg", 24, 1, 17, 1105, 5], - ["invoke", 24, 23, 1105, 5], - ["access", 23, "lt", 1106, 12], - ["get", 24, 56, 1, 1106, 5], - ["frame", 25, 24, 4, 1106, 5], - ["stone_text", 23], - ["setarg", 25, 1, 23, 1106, 5], - ["setarg", 25, 2, 7, 1106, 5], - ["setarg", 25, 3, 6, 1106, 5], - ["setarg", 25, 4, 5, 1106, 5], - ["invoke", 25, 5, 1106, 5], - ["access", 5, "jump_false", 1107, 20], - ["get", 23, 64, 1, 1107, 5], - ["frame", 24, 23, 3, 1107, 5], + ["push", 24, 22, 1334, 33], + ["push", 24, 4, 1334, 33], + ["push", 24, 23, 1334, 33], + ["get", 22, 53, 1, 1334, 5], + ["frame", 23, 22, 1, 1334, 5], + ["setarg", 23, 1, 24, 1334, 5], + ["invoke", 23, 22, 1334, 5], + ["access", 22, "length", 1335, 12], + ["get", 23, 57, 1, 1335, 5], + ["frame", 24, 23, 3, 1335, 5], + ["stone_text", 22], + ["setarg", 24, 1, 22, 1335, 5], + ["setarg", 24, 2, 5, 1335, 5], + ["setarg", 24, 3, 2, 1335, 5], + ["invoke", 24, 22, 1335, 5], + ["access", 22, "int", 1336, 12], + ["access", 23, 0, 1336, 22], + ["get", 24, 57, 1, 1336, 5], + ["frame", 25, 24, 3, 1336, 5], + ["stone_text", 22], + ["setarg", 25, 1, 22, 1336, 5], + ["setarg", 25, 2, 6, 1336, 5], + ["setarg", 25, 3, 23, 1336, 5], + ["invoke", 25, 22, 1336, 5], + ["access", 22, "int", 1337, 12], + ["access", 23, 0, 1337, 25], + ["get", 24, 57, 1, 1337, 5], + ["frame", 25, 24, 3, 1337, 5], + ["stone_text", 22], + ["setarg", 25, 1, 22, 1337, 5], + ["setarg", 25, 2, 13, 1337, 5], + ["setarg", 25, 3, 23, 1337, 5], + ["invoke", 25, 22, 1337, 5], + ["access", 22, "int", 1338, 12], + ["access", 23, 1, 1338, 24], + ["get", 24, 57, 1, 1338, 5], + ["frame", 25, 24, 3, 1338, 5], + ["stone_text", 22], + ["setarg", 25, 1, 22, 1338, 5], + ["setarg", 25, 2, 14, 1338, 5], + ["setarg", 25, 3, 23, 1338, 5], + ["invoke", 25, 22, 1338, 5], + ["access", 22, "null", 1339, 12], + ["get", 23, 56, 1, 1339, 5], + ["frame", 24, 23, 2, 1339, 5], + ["stone_text", 22], + ["setarg", 24, 1, 22, 1339, 5], + ["setarg", 24, 2, 12, 1339, 5], + ["invoke", 24, 22, 1339, 5], + ["access", 22, "length", 1340, 12], + ["get", 23, 57, 1, 1340, 5], + ["frame", 24, 23, 3, 1340, 5], + ["stone_text", 22], + ["setarg", 24, 1, 22, 1340, 5], + ["setarg", 24, 2, 9, 1340, 5], + ["setarg", 24, 3, 3, 1340, 5], + ["invoke", 24, 22, 1340, 5], + ["get", 22, 54, 1, 1341, 5], + ["frame", 23, 22, 1, 1341, 5], + ["setarg", 23, 1, 17, 1341, 5], + ["invoke", 23, 22, 1341, 5], + ["access", 22, "lt", 1342, 12], + ["get", 23, 58, 1, 1342, 5], + ["frame", 24, 23, 4, 1342, 5], + ["stone_text", 22], + ["setarg", 24, 1, 22, 1342, 5], + ["setarg", 24, 2, 7, 1342, 5], + ["setarg", 24, 3, 6, 1342, 5], + ["setarg", 24, 4, 5, 1342, 5], + ["invoke", 24, 5, 1342, 5], + ["access", 5, "jump_false", 1343, 20], + ["get", 22, 66, 1, 1343, 5], + ["frame", 23, 22, 3, 1343, 5], ["stone_text", 5], - ["setarg", 24, 1, 5, 1107, 5], - ["setarg", 24, 2, 7, 1107, 5], - ["setarg", 24, 3, 22, 1107, 5], - ["invoke", 24, 5, 1107, 5], - ["access", 5, "load_index", 1108, 12], - ["get", 7, 56, 1, 1108, 5], - ["frame", 23, 7, 4, 1108, 5], + ["setarg", 23, 1, 5, 1343, 5], + ["setarg", 23, 2, 7, 1343, 5], + ["setarg", 23, 3, 21, 1343, 5], + ["invoke", 23, 5, 1343, 5], + ["access", 5, "load_index", 1344, 12], + ["get", 7, 58, 1, 1344, 5], + ["frame", 22, 7, 4, 1344, 5], ["stone_text", 5], - ["setarg", 23, 1, 5, 1108, 5], - ["setarg", 23, 2, 8, 1108, 5], - ["setarg", 23, 3, 2, 1108, 5], - ["setarg", 23, 4, 6, 1108, 5], - ["invoke", 23, 5, 1108, 5], - ["access", 5, "eq", 1109, 12], - ["get", 7, 56, 1, 1109, 5], - ["frame", 23, 7, 4, 1109, 5], + ["setarg", 22, 1, 5, 1344, 5], + ["setarg", 22, 2, 8, 1344, 5], + ["setarg", 22, 3, 2, 1344, 5], + ["setarg", 22, 4, 6, 1344, 5], + ["invoke", 22, 5, 1344, 5], + ["access", 5, "eq", 1345, 12], + ["get", 7, 58, 1, 1345, 5], + ["frame", 22, 7, 4, 1345, 5], ["stone_text", 5], - ["setarg", 23, 1, 5, 1109, 5], - ["setarg", 23, 2, 10, 1109, 5], - ["setarg", 23, 3, 9, 1109, 5], - ["setarg", 23, 4, 13, 1109, 5], - ["invoke", 23, 5, 1109, 5], - ["access", 5, "jump_false", 1110, 20], - ["get", 7, 64, 1, 1110, 5], - ["frame", 13, 7, 3, 1110, 5], + ["setarg", 22, 1, 5, 1345, 5], + ["setarg", 22, 2, 10, 1345, 5], + ["setarg", 22, 3, 9, 1345, 5], + ["setarg", 22, 4, 13, 1345, 5], + ["invoke", 22, 5, 1345, 5], + ["access", 5, "jump_false", 1346, 20], + ["get", 7, 66, 1, 1346, 5], + ["frame", 13, 7, 3, 1346, 5], ["stone_text", 5], - ["setarg", 13, 1, 5, 1110, 5], - ["setarg", 13, 2, 10, 1110, 5], - ["setarg", 13, 3, 18, 1110, 5], - ["invoke", 13, 5, 1110, 5], - ["access", 5, "frame", 1111, 12], - ["access", 7, 0, 1111, 33], - ["get", 10, 56, 1, 1111, 5], - ["frame", 13, 10, 4, 1111, 5], + ["setarg", 13, 1, 5, 1346, 5], + ["setarg", 13, 2, 10, 1346, 5], + ["setarg", 13, 3, 18, 1346, 5], + ["invoke", 13, 5, 1346, 5], + ["access", 5, "frame", 1347, 12], + ["access", 7, 0, 1347, 33], + ["get", 10, 58, 1, 1347, 5], + ["frame", 13, 10, 4, 1347, 5], ["stone_text", 5], - ["setarg", 13, 1, 5, 1111, 5], - ["setarg", 13, 2, 15, 1111, 5], - ["setarg", 13, 3, 3, 1111, 5], - ["setarg", 13, 4, 7, 1111, 5], - ["invoke", 13, 5, 1111, 5], - ["access", 5, "setarg", 1112, 12], - ["access", 7, 0, 1112, 25], - ["get", 10, 56, 1, 1112, 5], - ["frame", 13, 10, 4, 1112, 5], + ["setarg", 13, 1, 5, 1347, 5], + ["setarg", 13, 2, 15, 1347, 5], + ["setarg", 13, 3, 3, 1347, 5], + ["setarg", 13, 4, 7, 1347, 5], + ["invoke", 13, 5, 1347, 5], + ["access", 5, "setarg", 1348, 12], + ["access", 7, 0, 1348, 25], + ["get", 10, 58, 1, 1348, 5], + ["frame", 13, 10, 4, 1348, 5], ["stone_text", 5], - ["setarg", 13, 1, 5, 1112, 5], - ["setarg", 13, 2, 15, 1112, 5], - ["setarg", 13, 3, 7, 1112, 5], - ["setarg", 13, 4, 12, 1112, 5], - ["invoke", 13, 5, 1112, 5], - ["access", 5, "invoke", 1113, 12], - ["get", 7, 55, 1, 1113, 5], - ["frame", 10, 7, 3, 1113, 5], + ["setarg", 13, 1, 5, 1348, 5], + ["setarg", 13, 2, 15, 1348, 5], + ["setarg", 13, 3, 7, 1348, 5], + ["setarg", 13, 4, 12, 1348, 5], + ["invoke", 13, 5, 1348, 5], + ["access", 5, "invoke", 1349, 12], + ["get", 7, 57, 1, 1349, 5], + ["frame", 10, 7, 3, 1349, 5], ["stone_text", 5], - ["setarg", 10, 1, 5, 1113, 5], - ["setarg", 10, 2, 15, 1113, 5], - ["setarg", 10, 3, 16, 1113, 5], - ["invoke", 10, 5, 1113, 5], - ["get", 5, 63, 1, 1114, 5], - ["frame", 7, 5, 1, 1114, 5], - ["setarg", 7, 1, 20, 1114, 5], - ["invoke", 7, 5, 1114, 5], - ["get", 5, 52, 1, 1115, 5], - ["frame", 7, 5, 1, 1115, 5], - ["setarg", 7, 1, 18, 1115, 5], - ["invoke", 7, 5, 1115, 5], - ["access", 5, "eq", 1116, 12], - ["get", 7, 56, 1, 1116, 5], - ["frame", 10, 7, 4, 1116, 5], + ["setarg", 10, 1, 5, 1349, 5], + ["setarg", 10, 2, 15, 1349, 5], + ["setarg", 10, 3, 16, 1349, 5], + ["invoke", 10, 5, 1349, 5], + ["get", 5, 65, 1, 1350, 5], + ["frame", 7, 5, 1, 1350, 5], + ["setarg", 7, 1, 20, 1350, 5], + ["invoke", 7, 5, 1350, 5], + ["get", 5, 54, 1, 1351, 5], + ["frame", 7, 5, 1, 1351, 5], + ["setarg", 7, 1, 18, 1351, 5], + ["invoke", 7, 5, 1351, 5], + ["access", 5, "eq", 1352, 12], + ["get", 7, 58, 1, 1352, 5], + ["frame", 10, 7, 4, 1352, 5], ["stone_text", 5], - ["setarg", 10, 1, 5, 1116, 5], - ["setarg", 10, 2, 11, 1116, 5], - ["setarg", 10, 3, 9, 1116, 5], - ["setarg", 10, 4, 14, 1116, 5], - ["invoke", 10, 5, 1116, 5], - ["access", 5, "jump_false", 1117, 20], - ["get", 7, 64, 1, 1117, 5], - ["frame", 9, 7, 3, 1117, 5], + ["setarg", 10, 1, 5, 1352, 5], + ["setarg", 10, 2, 11, 1352, 5], + ["setarg", 10, 3, 9, 1352, 5], + ["setarg", 10, 4, 14, 1352, 5], + ["invoke", 10, 5, 1352, 5], + ["access", 5, "jump_false", 1353, 20], + ["get", 7, 66, 1, 1353, 5], + ["frame", 9, 7, 3, 1353, 5], ["stone_text", 5], - ["setarg", 9, 1, 5, 1117, 5], - ["setarg", 9, 2, 11, 1117, 5], - ["setarg", 9, 3, 19, 1117, 5], - ["invoke", 9, 5, 1117, 5], - ["access", 5, "frame", 1118, 12], - ["access", 7, 1, 1118, 33], - ["get", 9, 56, 1, 1118, 5], - ["frame", 10, 9, 4, 1118, 5], + ["setarg", 9, 1, 5, 1353, 5], + ["setarg", 9, 2, 11, 1353, 5], + ["setarg", 9, 3, 19, 1353, 5], + ["invoke", 9, 5, 1353, 5], + ["access", 5, "frame", 1354, 12], + ["access", 7, 1, 1354, 33], + ["get", 9, 58, 1, 1354, 5], + ["frame", 10, 9, 4, 1354, 5], ["stone_text", 5], - ["setarg", 10, 1, 5, 1118, 5], - ["setarg", 10, 2, 15, 1118, 5], - ["setarg", 10, 3, 3, 1118, 5], - ["setarg", 10, 4, 7, 1118, 5], - ["invoke", 10, 5, 1118, 5], - ["access", 5, "setarg", 1119, 12], - ["access", 7, 0, 1119, 25], - ["get", 9, 56, 1, 1119, 5], - ["frame", 10, 9, 4, 1119, 5], + ["setarg", 10, 1, 5, 1354, 5], + ["setarg", 10, 2, 15, 1354, 5], + ["setarg", 10, 3, 3, 1354, 5], + ["setarg", 10, 4, 7, 1354, 5], + ["invoke", 10, 5, 1354, 5], + ["access", 5, "setarg", 1355, 12], + ["access", 7, 0, 1355, 25], + ["get", 9, 58, 1, 1355, 5], + ["frame", 10, 9, 4, 1355, 5], ["stone_text", 5], - ["setarg", 10, 1, 5, 1119, 5], - ["setarg", 10, 2, 15, 1119, 5], - ["setarg", 10, 3, 7, 1119, 5], - ["setarg", 10, 4, 12, 1119, 5], - ["invoke", 10, 5, 1119, 5], - ["access", 5, "setarg", 1120, 12], - ["access", 7, 1, 1120, 25], - ["get", 9, 56, 1, 1120, 5], - ["frame", 10, 9, 4, 1120, 5], + ["setarg", 10, 1, 5, 1355, 5], + ["setarg", 10, 2, 15, 1355, 5], + ["setarg", 10, 3, 7, 1355, 5], + ["setarg", 10, 4, 12, 1355, 5], + ["invoke", 10, 5, 1355, 5], + ["access", 5, "setarg", 1356, 12], + ["access", 7, 1, 1356, 25], + ["get", 9, 58, 1, 1356, 5], + ["frame", 10, 9, 4, 1356, 5], ["stone_text", 5], - ["setarg", 10, 1, 5, 1120, 5], - ["setarg", 10, 2, 15, 1120, 5], - ["setarg", 10, 3, 7, 1120, 5], - ["setarg", 10, 4, 8, 1120, 5], - ["invoke", 10, 5, 1120, 5], - ["access", 5, "invoke", 1121, 12], - ["get", 7, 55, 1, 1121, 5], - ["frame", 9, 7, 3, 1121, 5], + ["setarg", 10, 1, 5, 1356, 5], + ["setarg", 10, 2, 15, 1356, 5], + ["setarg", 10, 3, 7, 1356, 5], + ["setarg", 10, 4, 8, 1356, 5], + ["invoke", 10, 5, 1356, 5], + ["access", 5, "invoke", 1357, 12], + ["get", 7, 57, 1, 1357, 5], + ["frame", 9, 7, 3, 1357, 5], ["stone_text", 5], - ["setarg", 9, 1, 5, 1121, 5], - ["setarg", 9, 2, 15, 1121, 5], - ["setarg", 9, 3, 16, 1121, 5], - ["invoke", 9, 5, 1121, 5], - ["get", 5, 63, 1, 1122, 5], - ["frame", 7, 5, 1, 1122, 5], - ["setarg", 7, 1, 20, 1122, 5], - ["invoke", 7, 5, 1122, 5], - ["get", 5, 52, 1, 1123, 5], - ["frame", 7, 5, 1, 1123, 5], - ["setarg", 7, 1, 19, 1123, 5], - ["invoke", 7, 5, 1123, 5], - ["access", 5, "frame", 1124, 12], - ["access", 7, 2, 1124, 33], - ["get", 9, 56, 1, 1124, 5], - ["frame", 10, 9, 4, 1124, 5], + ["setarg", 9, 1, 5, 1357, 5], + ["setarg", 9, 2, 15, 1357, 5], + ["setarg", 9, 3, 16, 1357, 5], + ["invoke", 9, 5, 1357, 5], + ["get", 5, 65, 1, 1358, 5], + ["frame", 7, 5, 1, 1358, 5], + ["setarg", 7, 1, 20, 1358, 5], + ["invoke", 7, 5, 1358, 5], + ["get", 5, 54, 1, 1359, 5], + ["frame", 7, 5, 1, 1359, 5], + ["setarg", 7, 1, 19, 1359, 5], + ["invoke", 7, 5, 1359, 5], + ["access", 5, "frame", 1360, 12], + ["access", 7, 2, 1360, 33], + ["get", 9, 58, 1, 1360, 5], + ["frame", 10, 9, 4, 1360, 5], ["stone_text", 5], - ["setarg", 10, 1, 5, 1124, 5], - ["setarg", 10, 2, 15, 1124, 5], - ["setarg", 10, 3, 3, 1124, 5], - ["setarg", 10, 4, 7, 1124, 5], - ["invoke", 10, 5, 1124, 5], - ["access", 5, "setarg", 1125, 12], - ["access", 7, 0, 1125, 25], - ["get", 9, 56, 1, 1125, 5], - ["frame", 10, 9, 4, 1125, 5], + ["setarg", 10, 1, 5, 1360, 5], + ["setarg", 10, 2, 15, 1360, 5], + ["setarg", 10, 3, 3, 1360, 5], + ["setarg", 10, 4, 7, 1360, 5], + ["invoke", 10, 5, 1360, 5], + ["access", 5, "setarg", 1361, 12], + ["access", 7, 0, 1361, 25], + ["get", 9, 58, 1, 1361, 5], + ["frame", 10, 9, 4, 1361, 5], ["stone_text", 5], - ["setarg", 10, 1, 5, 1125, 5], - ["setarg", 10, 2, 15, 1125, 5], - ["setarg", 10, 3, 7, 1125, 5], - ["setarg", 10, 4, 12, 1125, 5], - ["invoke", 10, 5, 1125, 5], - ["access", 5, "setarg", 1126, 12], - ["access", 7, 1, 1126, 25], - ["get", 9, 56, 1, 1126, 5], - ["frame", 10, 9, 4, 1126, 5], + ["setarg", 10, 1, 5, 1361, 5], + ["setarg", 10, 2, 15, 1361, 5], + ["setarg", 10, 3, 7, 1361, 5], + ["setarg", 10, 4, 12, 1361, 5], + ["invoke", 10, 5, 1361, 5], + ["access", 5, "setarg", 1362, 12], + ["access", 7, 1, 1362, 25], + ["get", 9, 58, 1, 1362, 5], + ["frame", 10, 9, 4, 1362, 5], ["stone_text", 5], - ["setarg", 10, 1, 5, 1126, 5], - ["setarg", 10, 2, 15, 1126, 5], - ["setarg", 10, 3, 7, 1126, 5], - ["setarg", 10, 4, 8, 1126, 5], - ["invoke", 10, 5, 1126, 5], - ["access", 5, "setarg", 1127, 12], - ["access", 7, 2, 1127, 25], - ["get", 9, 56, 1, 1127, 5], - ["frame", 10, 9, 4, 1127, 5], + ["setarg", 10, 1, 5, 1362, 5], + ["setarg", 10, 2, 15, 1362, 5], + ["setarg", 10, 3, 7, 1362, 5], + ["setarg", 10, 4, 8, 1362, 5], + ["invoke", 10, 5, 1362, 5], + ["access", 5, "setarg", 1363, 12], + ["access", 7, 2, 1363, 25], + ["get", 8, 58, 1, 1363, 5], + ["frame", 9, 8, 4, 1363, 5], ["stone_text", 5], - ["setarg", 10, 1, 5, 1127, 5], - ["setarg", 10, 2, 15, 1127, 5], - ["setarg", 10, 3, 7, 1127, 5], - ["setarg", 10, 4, 6, 1127, 5], - ["invoke", 10, 5, 1127, 5], - ["access", 5, "invoke", 1128, 12], - ["get", 7, 55, 1, 1128, 5], - ["frame", 9, 7, 3, 1128, 5], + ["setarg", 9, 1, 5, 1363, 5], + ["setarg", 9, 2, 15, 1363, 5], + ["setarg", 9, 3, 7, 1363, 5], + ["setarg", 9, 4, 6, 1363, 5], + ["invoke", 9, 5, 1363, 5], + ["access", 5, "invoke", 1364, 12], + ["get", 7, 57, 1, 1364, 5], + ["frame", 8, 7, 3, 1364, 5], ["stone_text", 5], - ["setarg", 9, 1, 5, 1128, 5], - ["setarg", 9, 2, 15, 1128, 5], - ["setarg", 9, 3, 16, 1128, 5], - ["invoke", 9, 5, 1128, 5], - ["get", 5, 52, 1, 1129, 5], - ["frame", 7, 5, 1, 1129, 5], - ["setarg", 7, 1, 20, 1129, 5], - ["invoke", 7, 5, 1129, 5], - ["access", 5, "jump_false", 1130, 20], - ["get", 7, 64, 1, 1130, 5], - ["frame", 9, 7, 3, 1130, 5], + ["setarg", 8, 1, 5, 1364, 5], + ["setarg", 8, 2, 15, 1364, 5], + ["setarg", 8, 3, 16, 1364, 5], + ["invoke", 8, 5, 1364, 5], + ["get", 5, 54, 1, 1365, 5], + ["frame", 7, 5, 1, 1365, 5], + ["setarg", 7, 1, 20, 1365, 5], + ["invoke", 7, 5, 1365, 5], + ["access", 5, "push", 1366, 12], + ["get", 7, 57, 1, 1366, 5], + ["frame", 8, 7, 3, 1366, 5], ["stone_text", 5], - ["setarg", 9, 1, 5, 1130, 5], - ["setarg", 9, 2, 16, 1130, 5], - ["setarg", 9, 3, 21, 1130, 5], - ["invoke", 9, 5, 1130, 5], - ["access", 5, "push", 1131, 12], - ["get", 7, 55, 1, 1131, 5], - ["frame", 9, 7, 3, 1131, 5], + ["setarg", 8, 1, 5, 1366, 5], + ["setarg", 8, 2, 4, 1366, 5], + ["setarg", 8, 3, 16, 1366, 5], + ["invoke", 8, 5, 1366, 5], + ["access", 5, "add", 1367, 12], + ["get", 7, 58, 1, 1367, 5], + ["frame", 8, 7, 4, 1367, 5], ["stone_text", 5], - ["setarg", 9, 1, 5, 1131, 5], - ["setarg", 9, 2, 4, 1131, 5], - ["setarg", 9, 3, 8, 1131, 5], - ["invoke", 9, 5, 1131, 5], - ["get", 5, 52, 1, 1132, 5], - ["frame", 7, 5, 1, 1132, 5], - ["setarg", 7, 1, 21, 1132, 5], - ["invoke", 7, 5, 1132, 5], - ["access", 5, "add", 1133, 12], - ["get", 7, 56, 1, 1133, 5], - ["frame", 8, 7, 4, 1133, 5], + ["setarg", 8, 1, 5, 1367, 5], + ["setarg", 8, 2, 6, 1367, 5], + ["setarg", 8, 3, 6, 1367, 5], + ["setarg", 8, 4, 14, 1367, 5], + ["invoke", 8, 5, 1367, 5], + ["get", 5, 65, 1, 1368, 5], + ["frame", 6, 5, 1, 1368, 5], + ["setarg", 6, 1, 17, 1368, 5], + ["invoke", 6, 5, 1368, 5], + ["get", 5, 54, 1, 1369, 5], + ["frame", 6, 5, 1, 1369, 5], + ["setarg", 6, 1, 21, 1369, 5], + ["invoke", 6, 5, 1369, 5], + ["access", 5, "move", 1370, 12], + ["get", 6, 57, 1, 1370, 5], + ["frame", 7, 6, 3, 1370, 5], ["stone_text", 5], - ["setarg", 8, 1, 5, 1133, 5], - ["setarg", 8, 2, 6, 1133, 5], - ["setarg", 8, 3, 6, 1133, 5], - ["setarg", 8, 4, 14, 1133, 5], - ["invoke", 8, 5, 1133, 5], - ["get", 5, 63, 1, 1134, 5], - ["frame", 6, 5, 1, 1134, 5], - ["setarg", 6, 1, 17, 1134, 5], - ["invoke", 6, 5, 1134, 5], - ["get", 5, 52, 1, 1135, 5], - ["frame", 6, 5, 1, 1135, 5], - ["setarg", 6, 1, 22, 1135, 5], - ["invoke", 6, 5, 1135, 5], - ["access", 5, "move", 1136, 12], - ["get", 6, 55, 1, 1136, 5], - ["frame", 7, 6, 3, 1136, 5], - ["stone_text", 5], - ["setarg", 7, 1, 5, 1136, 5], - ["setarg", 7, 2, 1, 1136, 5], - ["setarg", 7, 3, 4, 1136, 5], - ["invoke", 7, 4, 1136, 5], - ["return", 1, 1137, 12], + ["setarg", 7, 1, 5, 1370, 5], + ["setarg", 7, 2, 1, 1370, 5], + ["setarg", 7, 3, 4, 1370, 5], + ["invoke", 7, 4, 1370, 5], + ["return", 1, 1371, 12], "_nop_ur_1", "_nop_ur_2" ], - "_write_types": [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", "int", "array", null, null, null, "text", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", null, null, null, null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", null, null, null, null, null, null, null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, "text", null, null, null, null, null, null, null, null, null, "text", null, null, null, null], + "_write_types": [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", "int", "array", null, null, null, "text", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", null, null, null, null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", null, null, null, null, null, null, null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, null, null, null, "text", null, null, null, null], + "name": "", + "filename": ".cell/packages/core/mcode.cm", + "nr_args": 3 + }, + { + "_closure_slot_types": {}, + "disruption_pc": 0, + "nr_slots": 18, + "nr_close_slots": 0, + "instructions": [ + ["get", 4, 46, 1, 1376, 18], + ["frame", 5, 4, 0, 1376, 18], + ["invoke", 5, 4, 1376, 18], + ["move", 5, 4, 1376, 18], + ["get", 5, 46, 1, 1377, 15], + ["frame", 6, 5, 0, 1377, 15], + ["invoke", 6, 5, 1377, 15], + ["move", 6, 5, 1377, 15], + ["get", 6, 46, 1, 1378, 13], + ["frame", 7, 6, 0, 1378, 13], + ["invoke", 7, 6, 1378, 13], + ["move", 7, 6, 1378, 13], + ["get", 7, 46, 1, 1379, 17], + ["frame", 8, 7, 0, 1379, 17], + ["invoke", 8, 7, 1379, 17], + ["move", 8, 7, 1379, 17], + ["get", 8, 46, 1, 1380, 16], + ["frame", 9, 8, 0, 1380, 16], + ["invoke", 9, 8, 1380, 16], + ["move", 9, 8, 1380, 16], + ["get", 9, 46, 1, 1381, 15], + ["frame", 10, 9, 0, 1381, 15], + ["invoke", 10, 9, 1381, 15], + ["move", 10, 9, 1381, 15], + ["get", 10, 46, 1, 1382, 16], + ["frame", 11, 10, 0, 1382, 16], + ["invoke", 11, 10, 1382, 16], + ["move", 11, 10, 1382, 16], + ["get", 11, 46, 1, 1383, 15], + ["frame", 12, 11, 0, 1383, 15], + ["invoke", 12, 11, 1383, 15], + ["move", 12, 11, 1383, 15], + ["access", 12, "mapi_loop", 1384, 32], + ["get", 13, 51, 1, 1384, 22], + ["frame", 14, 13, 1, 1384, 22], + ["stone_text", 12], + ["setarg", 14, 1, 12, 1384, 22], + ["invoke", 14, 12, 1384, 22], + ["move", 13, 12, 1384, 22], + ["access", 13, "mapi_done", 1385, 32], + ["get", 14, 51, 1, 1385, 22], + ["frame", 15, 14, 1, 1385, 22], + ["stone_text", 13], + ["setarg", 15, 1, 13, 1385, 22], + ["invoke", 15, 13, 1385, 22], + ["move", 14, 13, 1385, 22], + ["access", 14, "array", 1386, 16], + ["access", 15, 0, 1386, 33], + ["array", 16, 3, 1386, 33], + ["stone_text", 14], + ["push", 16, 14, 1386, 33], + ["push", 16, 4, 1386, 33], + ["push", 16, 15, 1386, 33], + ["get", 14, 53, 1, 1386, 5], + ["frame", 15, 14, 1, 1386, 5], + ["setarg", 15, 1, 16, 1386, 5], + ["invoke", 15, 14, 1386, 5], + ["access", 14, "length", 1387, 12], + ["get", 15, 57, 1, 1387, 5], + ["frame", 16, 15, 3, 1387, 5], + ["stone_text", 14], + ["setarg", 16, 1, 14, 1387, 5], + ["setarg", 16, 2, 5, 1387, 5], + ["setarg", 16, 3, 2, 1387, 5], + ["invoke", 16, 14, 1387, 5], + ["access", 14, "int", 1388, 12], + ["access", 15, 0, 1388, 22], + ["get", 16, 57, 1, 1388, 5], + ["frame", 17, 16, 3, 1388, 5], + ["stone_text", 14], + ["setarg", 17, 1, 14, 1388, 5], + ["setarg", 17, 2, 6, 1388, 5], + ["setarg", 17, 3, 15, 1388, 5], + ["invoke", 17, 14, 1388, 5], + ["access", 14, "int", 1389, 12], + ["access", 15, 0, 1389, 25], + ["get", 16, 57, 1, 1389, 5], + ["frame", 17, 16, 3, 1389, 5], + ["stone_text", 14], + ["setarg", 17, 1, 14, 1389, 5], + ["setarg", 17, 2, 10, 1389, 5], + ["setarg", 17, 3, 15, 1389, 5], + ["invoke", 17, 10, 1389, 5], + ["access", 10, "int", 1390, 12], + ["access", 14, 1, 1390, 24], + ["get", 15, 57, 1, 1390, 5], + ["frame", 16, 15, 3, 1390, 5], + ["stone_text", 10], + ["setarg", 16, 1, 10, 1390, 5], + ["setarg", 16, 2, 11, 1390, 5], + ["setarg", 16, 3, 14, 1390, 5], + ["invoke", 16, 10, 1390, 5], + ["get", 10, 54, 1, 1391, 5], + ["frame", 14, 10, 1, 1391, 5], + ["setarg", 14, 1, 12, 1391, 5], + ["invoke", 14, 10, 1391, 5], + ["access", 10, "lt", 1392, 12], + ["get", 14, 58, 1, 1392, 5], + ["frame", 15, 14, 4, 1392, 5], + ["stone_text", 10], + ["setarg", 15, 1, 10, 1392, 5], + ["setarg", 15, 2, 7, 1392, 5], + ["setarg", 15, 3, 6, 1392, 5], + ["setarg", 15, 4, 5, 1392, 5], + ["invoke", 15, 5, 1392, 5], + ["access", 5, "jump_false", 1393, 20], + ["get", 10, 66, 1, 1393, 5], + ["frame", 14, 10, 3, 1393, 5], + ["stone_text", 5], + ["setarg", 14, 1, 5, 1393, 5], + ["setarg", 14, 2, 7, 1393, 5], + ["setarg", 14, 3, 13, 1393, 5], + ["invoke", 14, 5, 1393, 5], + ["access", 5, "load_index", 1394, 12], + ["get", 7, 58, 1, 1394, 5], + ["frame", 10, 7, 4, 1394, 5], + ["stone_text", 5], + ["setarg", 10, 1, 5, 1394, 5], + ["setarg", 10, 2, 8, 1394, 5], + ["setarg", 10, 3, 2, 1394, 5], + ["setarg", 10, 4, 6, 1394, 5], + ["invoke", 10, 5, 1394, 5], + ["get", 5, 57, 1, 1395, 5], + ["frame", 7, 5, 3, 1395, 5], + ["setarg", 7, 1, 3, 1395, 5], + ["setarg", 7, 2, 9, 1395, 5], + ["setarg", 7, 3, 8, 1395, 5], + ["invoke", 7, 5, 1395, 5], + ["access", 5, "push", 1396, 12], + ["get", 7, 57, 1, 1396, 5], + ["frame", 8, 7, 3, 1396, 5], + ["stone_text", 5], + ["setarg", 8, 1, 5, 1396, 5], + ["setarg", 8, 2, 4, 1396, 5], + ["setarg", 8, 3, 9, 1396, 5], + ["invoke", 8, 5, 1396, 5], + ["access", 5, "add", 1397, 12], + ["get", 7, 58, 1, 1397, 5], + ["frame", 8, 7, 4, 1397, 5], + ["stone_text", 5], + ["setarg", 8, 1, 5, 1397, 5], + ["setarg", 8, 2, 6, 1397, 5], + ["setarg", 8, 3, 6, 1397, 5], + ["setarg", 8, 4, 11, 1397, 5], + ["invoke", 8, 5, 1397, 5], + ["get", 5, 65, 1, 1398, 5], + ["frame", 6, 5, 1, 1398, 5], + ["setarg", 6, 1, 12, 1398, 5], + ["invoke", 6, 5, 1398, 5], + ["get", 5, 54, 1, 1399, 5], + ["frame", 6, 5, 1, 1399, 5], + ["setarg", 6, 1, 13, 1399, 5], + ["invoke", 6, 5, 1399, 5], + ["access", 5, "move", 1400, 12], + ["get", 6, 57, 1, 1400, 5], + ["frame", 7, 6, 3, 1400, 5], + ["stone_text", 5], + ["setarg", 7, 1, 5, 1400, 5], + ["setarg", 7, 2, 1, 1400, 5], + ["setarg", 7, 3, 4, 1400, 5], + ["invoke", 7, 4, 1400, 5], + ["return", 1, 1401, 12], + "_nop_ur_1", + "_nop_ur_2" + ], + "_write_types": [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, "text", "int", "array", null, null, null, "text", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, "text", "int", null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, null, null, null, "text", null, null, null, null], "name": "", "filename": ".cell/packages/core/mcode.cm", "nr_args": 3 @@ -6475,661 +7265,661 @@ "nr_slots": 35, "nr_close_slots": 0, "instructions": [ - ["load_field", 4, 2, "arr", 1142, 20], - ["move", 5, 4, 1142, 20], - ["load_field", 6, 2, "fn", 1143, 19], - ["move", 7, 6, 1143, 19], - ["load_field", 7, 2, "init", 1144, 21], - ["move", 8, 7, 1144, 21], - ["load_field", 7, 2, "rev", 1145, 20], - ["move", 9, 7, 1145, 20], - ["get", 7, 44, 1, 1146, 20], - ["frame", 10, 7, 0, 1146, 20], - ["invoke", 10, 7, 1146, 20], - ["move", 10, 7, 1146, 20], - ["get", 10, 44, 1, 1147, 15], - ["frame", 11, 10, 0, 1147, 15], - ["invoke", 11, 10, 1147, 15], - ["move", 11, 10, 1147, 15], - ["get", 12, 44, 1, 1148, 15], - ["frame", 13, 12, 0, 1148, 15], - ["invoke", 13, 12, 1148, 15], - ["move", 13, 12, 1148, 15], - ["get", 14, 44, 1, 1149, 13], - ["frame", 15, 14, 0, 1149, 13], - ["invoke", 15, 14, 1149, 13], - ["move", 15, 14, 1149, 13], - ["get", 16, 44, 1, 1150, 17], - ["frame", 17, 16, 0, 1150, 17], - ["invoke", 17, 16, 1150, 17], - ["move", 17, 16, 1150, 17], - ["get", 16, 44, 1, 1151, 16], - ["frame", 18, 16, 0, 1151, 16], - ["invoke", 18, 16, 1151, 16], - ["move", 18, 16, 1151, 16], - ["get", 19, 44, 1, 1152, 15], - ["frame", 20, 19, 0, 1152, 15], - ["invoke", 20, 19, 1152, 15], - ["move", 20, 19, 1152, 15], - ["access", 21, "reduce_final", 1153, 33], - ["get", 22, 49, 1, 1153, 23], - ["frame", 23, 22, 1, 1153, 23], + ["load_field", 4, 2, "arr", 1406, 20], + ["move", 5, 4, 1406, 20], + ["load_field", 6, 2, "fn", 1407, 19], + ["move", 7, 6, 1407, 19], + ["load_field", 7, 2, "init", 1408, 21], + ["move", 8, 7, 1408, 21], + ["load_field", 7, 2, "rev", 1409, 20], + ["move", 9, 7, 1409, 20], + ["get", 7, 46, 1, 1410, 20], + ["frame", 10, 7, 0, 1410, 20], + ["invoke", 10, 7, 1410, 20], + ["move", 10, 7, 1410, 20], + ["get", 10, 46, 1, 1411, 15], + ["frame", 11, 10, 0, 1411, 15], + ["invoke", 11, 10, 1411, 15], + ["move", 11, 10, 1411, 15], + ["get", 12, 46, 1, 1412, 15], + ["frame", 13, 12, 0, 1412, 15], + ["invoke", 13, 12, 1412, 15], + ["move", 13, 12, 1412, 15], + ["get", 14, 46, 1, 1413, 13], + ["frame", 15, 14, 0, 1413, 13], + ["invoke", 15, 14, 1413, 13], + ["move", 15, 14, 1413, 13], + ["get", 16, 46, 1, 1414, 17], + ["frame", 17, 16, 0, 1414, 17], + ["invoke", 17, 16, 1414, 17], + ["move", 17, 16, 1414, 17], + ["get", 16, 46, 1, 1415, 16], + ["frame", 18, 16, 0, 1415, 16], + ["invoke", 18, 16, 1415, 16], + ["move", 18, 16, 1415, 16], + ["get", 19, 46, 1, 1416, 15], + ["frame", 20, 19, 0, 1416, 15], + ["invoke", 20, 19, 1416, 15], + ["move", 20, 19, 1416, 15], + ["access", 21, "reduce_final", 1417, 33], + ["get", 22, 51, 1, 1417, 23], + ["frame", 23, 22, 1, 1417, 23], ["stone_text", 21], - ["setarg", 23, 1, 21, 1153, 23], - ["invoke", 23, 21, 1153, 23], - ["move", 22, 21, 1153, 23], - ["null", 21, 1154, 20], - ["null", 23, 1155, 23], - ["null", 24, 1156, 20], - ["null", 25, 1157, 22], - ["null", 26, 1158, 14], - ["null", 27, 1159, 14], - ["null", 28, 1160, 14], - ["null", 29, 1161, 14], - ["null", 30, 1162, 13], - ["access", 31, "length", 1163, 12], - ["get", 32, 55, 1, 1163, 5], - ["frame", 33, 32, 3, 1163, 5], + ["setarg", 23, 1, 21, 1417, 23], + ["invoke", 23, 21, 1417, 23], + ["move", 22, 21, 1417, 23], + ["null", 21, 1418, 20], + ["null", 23, 1419, 23], + ["null", 24, 1420, 20], + ["null", 25, 1421, 22], + ["null", 26, 1422, 14], + ["null", 27, 1423, 14], + ["null", 28, 1424, 14], + ["null", 29, 1425, 14], + ["null", 30, 1426, 13], + ["access", 31, "length", 1427, 12], + ["get", 32, 57, 1, 1427, 5], + ["frame", 33, 32, 3, 1427, 5], ["stone_text", 31], - ["setarg", 33, 1, 31, 1163, 5], - ["setarg", 33, 2, 10, 1163, 5], - ["setarg", 33, 3, 4, 1163, 5], - ["invoke", 33, 31, 1163, 5], - ["access", 31, "length", 1164, 12], - ["get", 32, 55, 1, 1164, 5], - ["frame", 33, 32, 3, 1164, 5], + ["setarg", 33, 1, 31, 1427, 5], + ["setarg", 33, 2, 10, 1427, 5], + ["setarg", 33, 3, 4, 1427, 5], + ["invoke", 33, 31, 1427, 5], + ["access", 31, "length", 1428, 12], + ["get", 32, 57, 1, 1428, 5], + ["frame", 33, 32, 3, 1428, 5], ["stone_text", 31], - ["setarg", 33, 1, 31, 1164, 5], - ["setarg", 33, 2, 7, 1164, 5], - ["setarg", 33, 3, 6, 1164, 5], - ["invoke", 33, 31, 1164, 5], - ["access", 31, "int", 1165, 12], - ["access", 32, 0, 1165, 25], - ["get", 33, 55, 1, 1165, 5], - ["frame", 34, 33, 3, 1165, 5], + ["setarg", 33, 1, 31, 1428, 5], + ["setarg", 33, 2, 7, 1428, 5], + ["setarg", 33, 3, 6, 1428, 5], + ["invoke", 33, 31, 1428, 5], + ["access", 31, "int", 1429, 12], + ["access", 32, 0, 1429, 25], + ["get", 33, 57, 1, 1429, 5], + ["frame", 34, 33, 3, 1429, 5], ["stone_text", 31], - ["setarg", 34, 1, 31, 1165, 5], - ["setarg", 34, 2, 16, 1165, 5], - ["setarg", 34, 3, 32, 1165, 5], - ["invoke", 34, 16, 1165, 5], - ["access", 16, "int", 1166, 12], - ["access", 31, 1, 1166, 24], - ["get", 32, 55, 1, 1166, 5], - ["frame", 33, 32, 3, 1166, 5], + ["setarg", 34, 1, 31, 1429, 5], + ["setarg", 34, 2, 16, 1429, 5], + ["setarg", 34, 3, 32, 1429, 5], + ["invoke", 34, 16, 1429, 5], + ["access", 16, "int", 1430, 12], + ["access", 31, 1, 1430, 24], + ["get", 32, 57, 1, 1430, 5], + ["frame", 33, 32, 3, 1430, 5], ["stone_text", 16], - ["setarg", 33, 1, 16, 1166, 5], - ["setarg", 33, 2, 19, 1166, 5], - ["setarg", 33, 3, 31, 1166, 5], - ["invoke", 33, 16, 1166, 5], + ["setarg", 33, 1, 16, 1430, 5], + ["setarg", 33, 2, 19, 1430, 5], + ["setarg", 33, 3, 31, 1430, 5], + ["invoke", 33, 16, 1430, 5], ["record", 16, 6], - ["store_field", 16, 12, "acc", 1167, 15], - ["store_field", 16, 14, "i", 1167, 23], - ["store_field", 16, 4, "arr", 1167, 31], - ["store_field", 16, 6, "fn", 1167, 45], - ["store_field", 16, 10, "len", 1167, 59], - ["store_field", 16, 7, "fn_arity", 1167, 74], - ["move", 30, 16, 1167, 74], - ["access", 4, 2, 1168, 18], - ["eq", 6, 3, 4, 1168, 18], - ["jump_false", 6, "if_else_249", 1168, 18], - ["access", 4, "reduce_null", 1169, 30], - ["get", 6, 49, 1, 1169, 20], - ["frame", 7, 6, 1, 1169, 20], + ["store_field", 16, 12, "acc", 1431, 15], + ["store_field", 16, 14, "i", 1431, 23], + ["store_field", 16, 4, "arr", 1431, 31], + ["store_field", 16, 6, "fn", 1431, 45], + ["store_field", 16, 10, "len", 1431, 59], + ["store_field", 16, 7, "fn_arity", 1431, 74], + ["move", 30, 16, 1431, 74], + ["access", 4, 2, 1432, 18], + ["eq", 6, 3, 4, 1432, 18], + ["jump_false", 6, "if_else_226", 1432, 18], + ["access", 4, "reduce_null", 1433, 30], + ["get", 6, 51, 1, 1433, 20], + ["frame", 7, 6, 1, 1433, 20], ["stone_text", 4], - ["setarg", 7, 1, 4, 1169, 20], - ["invoke", 7, 4, 1169, 20], - ["move", 25, 4, 1169, 20], - ["access", 6, "reduce_d1", 1170, 22], - ["get", 7, 49, 1, 1170, 12], - ["frame", 10, 7, 1, 1170, 12], + ["setarg", 7, 1, 4, 1433, 20], + ["invoke", 7, 4, 1433, 20], + ["move", 25, 4, 1433, 20], + ["access", 6, "reduce_d1", 1434, 22], + ["get", 7, 51, 1, 1434, 12], + ["frame", 10, 7, 1, 1434, 12], ["stone_text", 6], - ["setarg", 10, 1, 6, 1170, 12], - ["invoke", 10, 6, 1170, 12], - ["move", 26, 6, 1170, 12], - ["access", 7, "lt", 1171, 14], - ["get", 10, 56, 1, 1171, 7], - ["frame", 12, 10, 4, 1171, 7], + ["setarg", 10, 1, 6, 1434, 12], + ["invoke", 10, 6, 1434, 12], + ["move", 26, 6, 1434, 12], + ["access", 7, "lt", 1435, 14], + ["get", 10, 58, 1, 1435, 7], + ["frame", 12, 10, 4, 1435, 7], ["stone_text", 7], - ["setarg", 12, 1, 7, 1171, 7], - ["setarg", 12, 2, 17, 1171, 7], - ["setarg", 12, 3, 18, 1171, 7], - ["setarg", 12, 4, 11, 1171, 7], - ["invoke", 12, 7, 1171, 7], - ["access", 7, "jump_false", 1172, 22], - ["get", 10, 64, 1, 1172, 7], - ["frame", 12, 10, 3, 1172, 7], + ["setarg", 12, 1, 7, 1435, 7], + ["setarg", 12, 2, 17, 1435, 7], + ["setarg", 12, 3, 18, 1435, 7], + ["setarg", 12, 4, 11, 1435, 7], + ["invoke", 12, 7, 1435, 7], + ["access", 7, "jump_false", 1436, 22], + ["get", 10, 66, 1, 1436, 7], + ["frame", 12, 10, 3, 1436, 7], ["stone_text", 7], - ["setarg", 12, 1, 7, 1172, 7], - ["setarg", 12, 2, 17, 1172, 7], - ["setarg", 12, 3, 4, 1172, 7], - ["invoke", 12, 7, 1172, 7], - ["access", 7, "load_index", 1173, 14], - ["get", 10, 56, 1, 1173, 7], - ["frame", 12, 10, 4, 1173, 7], + ["setarg", 12, 1, 7, 1436, 7], + ["setarg", 12, 2, 17, 1436, 7], + ["setarg", 12, 3, 4, 1436, 7], + ["invoke", 12, 7, 1436, 7], + ["access", 7, "load_index", 1437, 14], + ["get", 10, 58, 1, 1437, 7], + ["frame", 12, 10, 4, 1437, 7], ["stone_text", 7], - ["setarg", 12, 1, 7, 1173, 7], - ["setarg", 12, 2, 13, 1173, 7], - ["setarg", 12, 3, 5, 1173, 7], - ["setarg", 12, 4, 18, 1173, 7], - ["invoke", 12, 7, 1173, 7], - ["access", 7, "move", 1174, 14], - ["get", 10, 55, 1, 1174, 7], - ["frame", 12, 10, 3, 1174, 7], + ["setarg", 12, 1, 7, 1437, 7], + ["setarg", 12, 2, 13, 1437, 7], + ["setarg", 12, 3, 5, 1437, 7], + ["setarg", 12, 4, 18, 1437, 7], + ["invoke", 12, 7, 1437, 7], + ["access", 7, "move", 1438, 14], + ["get", 10, 57, 1, 1438, 7], + ["frame", 12, 10, 3, 1438, 7], ["stone_text", 7], - ["setarg", 12, 1, 7, 1174, 7], - ["setarg", 12, 2, 15, 1174, 7], - ["setarg", 12, 3, 20, 1174, 7], - ["invoke", 12, 7, 1174, 7], - ["true", 7, 1175, 27], - ["get", 10, 98, 1, 1175, 7], - ["frame", 12, 10, 3, 1175, 7], - ["setarg", 12, 1, 30, 1175, 7], - ["setarg", 12, 2, 7, 1175, 7], - ["setarg", 12, 3, 6, 1175, 7], - ["invoke", 12, 7, 1175, 7], - ["get", 7, 52, 1, 1176, 7], - ["frame", 10, 7, 1, 1176, 7], - ["setarg", 10, 1, 6, 1176, 7], - ["invoke", 10, 6, 1176, 7], - ["access", 6, "move", 1177, 14], - ["get", 7, 55, 1, 1177, 7], - ["frame", 10, 7, 3, 1177, 7], + ["setarg", 12, 1, 7, 1438, 7], + ["setarg", 12, 2, 15, 1438, 7], + ["setarg", 12, 3, 20, 1438, 7], + ["invoke", 12, 7, 1438, 7], + ["true", 7, 1439, 27], + ["get", 10, 105, 1, 1439, 7], + ["frame", 12, 10, 3, 1439, 7], + ["setarg", 12, 1, 30, 1439, 7], + ["setarg", 12, 2, 7, 1439, 7], + ["setarg", 12, 3, 6, 1439, 7], + ["invoke", 12, 7, 1439, 7], + ["get", 7, 54, 1, 1440, 7], + ["frame", 10, 7, 1, 1440, 7], + ["setarg", 10, 1, 6, 1440, 7], + ["invoke", 10, 6, 1440, 7], + ["access", 6, "move", 1441, 14], + ["get", 7, 57, 1, 1441, 7], + ["frame", 10, 7, 3, 1441, 7], ["stone_text", 6], - ["setarg", 10, 1, 6, 1177, 7], - ["setarg", 10, 2, 1, 1177, 7], - ["setarg", 10, 3, 13, 1177, 7], - ["invoke", 10, 6, 1177, 7], - ["get", 6, 63, 1, 1178, 7], - ["frame", 7, 6, 1, 1178, 7], - ["setarg", 7, 1, 22, 1178, 7], - ["invoke", 7, 6, 1178, 7], - ["get", 6, 52, 1, 1179, 7], - ["frame", 7, 6, 1, 1179, 7], - ["setarg", 7, 1, 4, 1179, 7], - ["invoke", 7, 4, 1179, 7], - ["access", 4, "null", 1180, 14], - ["get", 6, 54, 1, 1180, 7], - ["frame", 7, 6, 2, 1180, 7], + ["setarg", 10, 1, 6, 1441, 7], + ["setarg", 10, 2, 1, 1441, 7], + ["setarg", 10, 3, 13, 1441, 7], + ["invoke", 10, 6, 1441, 7], + ["get", 6, 65, 1, 1442, 7], + ["frame", 7, 6, 1, 1442, 7], + ["setarg", 7, 1, 22, 1442, 7], + ["invoke", 7, 6, 1442, 7], + ["get", 6, 54, 1, 1443, 7], + ["frame", 7, 6, 1, 1443, 7], + ["setarg", 7, 1, 4, 1443, 7], + ["invoke", 7, 4, 1443, 7], + ["access", 4, "null", 1444, 14], + ["get", 6, 56, 1, 1444, 7], + ["frame", 7, 6, 2, 1444, 7], ["stone_text", 4], - ["setarg", 7, 1, 4, 1180, 7], - ["setarg", 7, 2, 1, 1180, 7], - ["invoke", 7, 4, 1180, 7], - ["get", 4, 52, 1, 1181, 7], - ["frame", 6, 4, 1, 1181, 7], - ["setarg", 6, 1, 22, 1181, 7], - ["invoke", 6, 4, 1181, 7], - ["jump", "if_end_250", 1181, 7], - "if_else_249", - ["access", 4, 3, 1182, 25], - ["eq", 6, 3, 4, 1182, 25], - ["jump_false", 6, "if_else_251", 1182, 25], - ["access", 4, "reduce_has_init", 1183, 28], - ["get", 6, 49, 1, 1183, 18], - ["frame", 7, 6, 1, 1183, 18], + ["setarg", 7, 1, 4, 1444, 7], + ["setarg", 7, 2, 1, 1444, 7], + ["invoke", 7, 4, 1444, 7], + ["get", 4, 54, 1, 1445, 7], + ["frame", 6, 4, 1, 1445, 7], + ["setarg", 6, 1, 22, 1445, 7], + ["invoke", 6, 4, 1445, 7], + ["jump", "if_end_227", 1445, 7], + "if_else_226", + ["access", 4, 3, 1446, 25], + ["eq", 6, 3, 4, 1446, 25], + ["jump_false", 6, "if_else_228", 1446, 25], + ["access", 4, "reduce_has_init", 1447, 28], + ["get", 6, 51, 1, 1447, 18], + ["frame", 7, 6, 1, 1447, 18], ["stone_text", 4], - ["setarg", 7, 1, 4, 1183, 18], - ["invoke", 7, 4, 1183, 18], - ["move", 21, 4, 1183, 18], - ["access", 6, "reduce_null", 1184, 30], - ["get", 7, 49, 1, 1184, 20], - ["frame", 10, 7, 1, 1184, 20], + ["setarg", 7, 1, 4, 1447, 18], + ["invoke", 7, 4, 1447, 18], + ["move", 21, 4, 1447, 18], + ["access", 6, "reduce_null", 1448, 30], + ["get", 7, 51, 1, 1448, 20], + ["frame", 10, 7, 1, 1448, 20], ["stone_text", 6], - ["setarg", 10, 1, 6, 1184, 20], - ["invoke", 10, 6, 1184, 20], - ["move", 25, 6, 1184, 20], - ["access", 7, "reduce_d1", 1185, 22], - ["get", 10, 49, 1, 1185, 12], - ["frame", 12, 10, 1, 1185, 12], + ["setarg", 10, 1, 6, 1448, 20], + ["invoke", 10, 6, 1448, 20], + ["move", 25, 6, 1448, 20], + ["access", 7, "reduce_d1", 1449, 22], + ["get", 10, 51, 1, 1449, 12], + ["frame", 12, 10, 1, 1449, 12], ["stone_text", 7], - ["setarg", 12, 1, 7, 1185, 12], - ["invoke", 12, 7, 1185, 12], - ["move", 26, 7, 1185, 12], - ["access", 10, "reduce_d2", 1186, 22], - ["get", 12, 49, 1, 1186, 12], - ["frame", 14, 12, 1, 1186, 12], + ["setarg", 12, 1, 7, 1449, 12], + ["invoke", 12, 7, 1449, 12], + ["move", 26, 7, 1449, 12], + ["access", 10, "reduce_d2", 1450, 22], + ["get", 12, 51, 1, 1450, 12], + ["frame", 14, 12, 1, 1450, 12], ["stone_text", 10], - ["setarg", 14, 1, 10, 1186, 12], - ["invoke", 14, 10, 1186, 12], - ["move", 27, 10, 1186, 12], - ["access", 12, "is_null", 1187, 14], - ["get", 14, 55, 1, 1187, 7], - ["frame", 16, 14, 3, 1187, 7], + ["setarg", 14, 1, 10, 1450, 12], + ["invoke", 14, 10, 1450, 12], + ["move", 27, 10, 1450, 12], + ["access", 12, "is_null", 1451, 14], + ["get", 14, 57, 1, 1451, 7], + ["frame", 16, 14, 3, 1451, 7], ["stone_text", 12], - ["setarg", 16, 1, 12, 1187, 7], - ["setarg", 16, 2, 17, 1187, 7], - ["setarg", 16, 3, 8, 1187, 7], - ["invoke", 16, 12, 1187, 7], - ["access", 12, "jump_false", 1188, 22], - ["get", 14, 64, 1, 1188, 7], - ["frame", 16, 14, 3, 1188, 7], + ["setarg", 16, 1, 12, 1451, 7], + ["setarg", 16, 2, 17, 1451, 7], + ["setarg", 16, 3, 8, 1451, 7], + ["invoke", 16, 12, 1451, 7], + ["access", 12, "jump_false", 1452, 22], + ["get", 14, 66, 1, 1452, 7], + ["frame", 16, 14, 3, 1452, 7], ["stone_text", 12], - ["setarg", 16, 1, 12, 1188, 7], - ["setarg", 16, 2, 17, 1188, 7], - ["setarg", 16, 3, 4, 1188, 7], - ["invoke", 16, 12, 1188, 7], - ["access", 12, "lt", 1190, 14], - ["get", 14, 56, 1, 1190, 7], - ["frame", 16, 14, 4, 1190, 7], + ["setarg", 16, 1, 12, 1452, 7], + ["setarg", 16, 2, 17, 1452, 7], + ["setarg", 16, 3, 4, 1452, 7], + ["invoke", 16, 12, 1452, 7], + ["access", 12, "lt", 1454, 14], + ["get", 14, 58, 1, 1454, 7], + ["frame", 16, 14, 4, 1454, 7], ["stone_text", 12], - ["setarg", 16, 1, 12, 1190, 7], - ["setarg", 16, 2, 17, 1190, 7], - ["setarg", 16, 3, 18, 1190, 7], - ["setarg", 16, 4, 11, 1190, 7], - ["invoke", 16, 12, 1190, 7], - ["access", 12, "jump_false", 1191, 22], - ["get", 14, 64, 1, 1191, 7], - ["frame", 16, 14, 3, 1191, 7], + ["setarg", 16, 1, 12, 1454, 7], + ["setarg", 16, 2, 17, 1454, 7], + ["setarg", 16, 3, 18, 1454, 7], + ["setarg", 16, 4, 11, 1454, 7], + ["invoke", 16, 12, 1454, 7], + ["access", 12, "jump_false", 1455, 22], + ["get", 14, 66, 1, 1455, 7], + ["frame", 16, 14, 3, 1455, 7], ["stone_text", 12], - ["setarg", 16, 1, 12, 1191, 7], - ["setarg", 16, 2, 17, 1191, 7], - ["setarg", 16, 3, 6, 1191, 7], - ["invoke", 16, 12, 1191, 7], - ["access", 12, "load_index", 1192, 14], - ["get", 14, 56, 1, 1192, 7], - ["frame", 16, 14, 4, 1192, 7], + ["setarg", 16, 1, 12, 1455, 7], + ["setarg", 16, 2, 17, 1455, 7], + ["setarg", 16, 3, 6, 1455, 7], + ["invoke", 16, 12, 1455, 7], + ["access", 12, "load_index", 1456, 14], + ["get", 14, 58, 1, 1456, 7], + ["frame", 16, 14, 4, 1456, 7], ["stone_text", 12], - ["setarg", 16, 1, 12, 1192, 7], - ["setarg", 16, 2, 13, 1192, 7], - ["setarg", 16, 3, 5, 1192, 7], - ["setarg", 16, 4, 18, 1192, 7], - ["invoke", 16, 12, 1192, 7], - ["access", 12, "move", 1193, 14], - ["get", 14, 55, 1, 1193, 7], - ["frame", 16, 14, 3, 1193, 7], + ["setarg", 16, 1, 12, 1456, 7], + ["setarg", 16, 2, 13, 1456, 7], + ["setarg", 16, 3, 5, 1456, 7], + ["setarg", 16, 4, 18, 1456, 7], + ["invoke", 16, 12, 1456, 7], + ["access", 12, "move", 1457, 14], + ["get", 14, 57, 1, 1457, 7], + ["frame", 16, 14, 3, 1457, 7], ["stone_text", 12], - ["setarg", 16, 1, 12, 1193, 7], - ["setarg", 16, 2, 15, 1193, 7], - ["setarg", 16, 3, 20, 1193, 7], - ["invoke", 16, 12, 1193, 7], - ["true", 12, 1194, 27], - ["get", 14, 98, 1, 1194, 7], - ["frame", 16, 14, 3, 1194, 7], - ["setarg", 16, 1, 30, 1194, 7], - ["setarg", 16, 2, 12, 1194, 7], - ["setarg", 16, 3, 7, 1194, 7], - ["invoke", 16, 12, 1194, 7], - ["get", 12, 52, 1, 1195, 7], - ["frame", 14, 12, 1, 1195, 7], - ["setarg", 14, 1, 7, 1195, 7], - ["invoke", 14, 7, 1195, 7], - ["access", 7, "move", 1196, 14], - ["get", 12, 55, 1, 1196, 7], - ["frame", 14, 12, 3, 1196, 7], + ["setarg", 16, 1, 12, 1457, 7], + ["setarg", 16, 2, 15, 1457, 7], + ["setarg", 16, 3, 20, 1457, 7], + ["invoke", 16, 12, 1457, 7], + ["true", 12, 1458, 27], + ["get", 14, 105, 1, 1458, 7], + ["frame", 16, 14, 3, 1458, 7], + ["setarg", 16, 1, 30, 1458, 7], + ["setarg", 16, 2, 12, 1458, 7], + ["setarg", 16, 3, 7, 1458, 7], + ["invoke", 16, 12, 1458, 7], + ["get", 12, 54, 1, 1459, 7], + ["frame", 14, 12, 1, 1459, 7], + ["setarg", 14, 1, 7, 1459, 7], + ["invoke", 14, 7, 1459, 7], + ["access", 7, "move", 1460, 14], + ["get", 12, 57, 1, 1460, 7], + ["frame", 14, 12, 3, 1460, 7], ["stone_text", 7], - ["setarg", 14, 1, 7, 1196, 7], - ["setarg", 14, 2, 1, 1196, 7], - ["setarg", 14, 3, 13, 1196, 7], - ["invoke", 14, 7, 1196, 7], - ["get", 7, 63, 1, 1197, 7], - ["frame", 12, 7, 1, 1197, 7], - ["setarg", 12, 1, 22, 1197, 7], - ["invoke", 12, 7, 1197, 7], - ["get", 7, 52, 1, 1198, 7], - ["frame", 12, 7, 1, 1198, 7], - ["setarg", 12, 1, 6, 1198, 7], - ["invoke", 12, 6, 1198, 7], - ["access", 6, "null", 1199, 14], - ["get", 7, 54, 1, 1199, 7], - ["frame", 12, 7, 2, 1199, 7], + ["setarg", 14, 1, 7, 1460, 7], + ["setarg", 14, 2, 1, 1460, 7], + ["setarg", 14, 3, 13, 1460, 7], + ["invoke", 14, 7, 1460, 7], + ["get", 7, 65, 1, 1461, 7], + ["frame", 12, 7, 1, 1461, 7], + ["setarg", 12, 1, 22, 1461, 7], + ["invoke", 12, 7, 1461, 7], + ["get", 7, 54, 1, 1462, 7], + ["frame", 12, 7, 1, 1462, 7], + ["setarg", 12, 1, 6, 1462, 7], + ["invoke", 12, 6, 1462, 7], + ["access", 6, "null", 1463, 14], + ["get", 7, 56, 1, 1463, 7], + ["frame", 12, 7, 2, 1463, 7], ["stone_text", 6], - ["setarg", 12, 1, 6, 1199, 7], - ["setarg", 12, 2, 1, 1199, 7], - ["invoke", 12, 6, 1199, 7], - ["get", 6, 63, 1, 1200, 7], - ["frame", 7, 6, 1, 1200, 7], - ["setarg", 7, 1, 22, 1200, 7], - ["invoke", 7, 6, 1200, 7], - ["get", 6, 52, 1, 1202, 7], - ["frame", 7, 6, 1, 1202, 7], - ["setarg", 7, 1, 4, 1202, 7], - ["invoke", 7, 4, 1202, 7], - ["access", 4, "move", 1203, 14], - ["get", 6, 55, 1, 1203, 7], - ["frame", 7, 6, 3, 1203, 7], + ["setarg", 12, 1, 6, 1463, 7], + ["setarg", 12, 2, 1, 1463, 7], + ["invoke", 12, 6, 1463, 7], + ["get", 6, 65, 1, 1464, 7], + ["frame", 7, 6, 1, 1464, 7], + ["setarg", 7, 1, 22, 1464, 7], + ["invoke", 7, 6, 1464, 7], + ["get", 6, 54, 1, 1466, 7], + ["frame", 7, 6, 1, 1466, 7], + ["setarg", 7, 1, 4, 1466, 7], + ["invoke", 7, 4, 1466, 7], + ["access", 4, "move", 1467, 14], + ["get", 6, 57, 1, 1467, 7], + ["frame", 7, 6, 3, 1467, 7], ["stone_text", 4], - ["setarg", 7, 1, 4, 1203, 7], - ["setarg", 7, 2, 13, 1203, 7], - ["setarg", 7, 3, 8, 1203, 7], - ["invoke", 7, 4, 1203, 7], - ["access", 4, "int", 1204, 14], - ["access", 6, 0, 1204, 24], - ["get", 7, 55, 1, 1204, 7], - ["frame", 12, 7, 3, 1204, 7], + ["setarg", 7, 1, 4, 1467, 7], + ["setarg", 7, 2, 13, 1467, 7], + ["setarg", 7, 3, 8, 1467, 7], + ["invoke", 7, 4, 1467, 7], + ["access", 4, "int", 1468, 14], + ["access", 6, 0, 1468, 24], + ["get", 7, 57, 1, 1468, 7], + ["frame", 12, 7, 3, 1468, 7], ["stone_text", 4], - ["setarg", 12, 1, 4, 1204, 7], - ["setarg", 12, 2, 15, 1204, 7], - ["setarg", 12, 3, 6, 1204, 7], - ["invoke", 12, 4, 1204, 7], - ["true", 4, 1205, 27], - ["get", 6, 98, 1, 1205, 7], - ["frame", 7, 6, 3, 1205, 7], - ["setarg", 7, 1, 30, 1205, 7], - ["setarg", 7, 2, 4, 1205, 7], - ["setarg", 7, 3, 10, 1205, 7], - ["invoke", 7, 4, 1205, 7], - ["get", 4, 52, 1, 1206, 7], - ["frame", 6, 4, 1, 1206, 7], - ["setarg", 6, 1, 10, 1206, 7], - ["invoke", 6, 4, 1206, 7], - ["access", 4, "move", 1207, 14], - ["get", 6, 55, 1, 1207, 7], - ["frame", 7, 6, 3, 1207, 7], + ["setarg", 12, 1, 4, 1468, 7], + ["setarg", 12, 2, 15, 1468, 7], + ["setarg", 12, 3, 6, 1468, 7], + ["invoke", 12, 4, 1468, 7], + ["true", 4, 1469, 27], + ["get", 6, 105, 1, 1469, 7], + ["frame", 7, 6, 3, 1469, 7], + ["setarg", 7, 1, 30, 1469, 7], + ["setarg", 7, 2, 4, 1469, 7], + ["setarg", 7, 3, 10, 1469, 7], + ["invoke", 7, 4, 1469, 7], + ["get", 4, 54, 1, 1470, 7], + ["frame", 6, 4, 1, 1470, 7], + ["setarg", 6, 1, 10, 1470, 7], + ["invoke", 6, 4, 1470, 7], + ["access", 4, "move", 1471, 14], + ["get", 6, 57, 1, 1471, 7], + ["frame", 7, 6, 3, 1471, 7], ["stone_text", 4], - ["setarg", 7, 1, 4, 1207, 7], - ["setarg", 7, 2, 1, 1207, 7], - ["setarg", 7, 3, 13, 1207, 7], - ["invoke", 7, 4, 1207, 7], - ["get", 4, 52, 1, 1208, 7], - ["frame", 6, 4, 1, 1208, 7], - ["setarg", 6, 1, 22, 1208, 7], - ["invoke", 6, 4, 1208, 7], - ["jump", "if_end_252", 1208, 7], - "if_else_251", - ["access", 4, "reduce_has_init", 1211, 28], - ["get", 6, 49, 1, 1211, 18], - ["frame", 7, 6, 1, 1211, 18], + ["setarg", 7, 1, 4, 1471, 7], + ["setarg", 7, 2, 1, 1471, 7], + ["setarg", 7, 3, 13, 1471, 7], + ["invoke", 7, 4, 1471, 7], + ["get", 4, 54, 1, 1472, 7], + ["frame", 6, 4, 1, 1472, 7], + ["setarg", 6, 1, 22, 1472, 7], + ["invoke", 6, 4, 1472, 7], + ["jump", "if_end_229", 1472, 7], + "if_else_228", + ["access", 4, "reduce_has_init", 1475, 28], + ["get", 6, 51, 1, 1475, 18], + ["frame", 7, 6, 1, 1475, 18], ["stone_text", 4], - ["setarg", 7, 1, 4, 1211, 18], - ["invoke", 7, 4, 1211, 18], - ["move", 21, 4, 1211, 18], - ["access", 6, "reduce_no_init_rev", 1212, 31], - ["get", 7, 49, 1, 1212, 21], - ["frame", 10, 7, 1, 1212, 21], + ["setarg", 7, 1, 4, 1475, 18], + ["invoke", 7, 4, 1475, 18], + ["move", 21, 4, 1475, 18], + ["access", 6, "reduce_no_init_rev", 1476, 31], + ["get", 7, 51, 1, 1476, 21], + ["frame", 10, 7, 1, 1476, 21], ["stone_text", 6], - ["setarg", 10, 1, 6, 1212, 21], - ["invoke", 10, 6, 1212, 21], - ["move", 23, 6, 1212, 21], - ["access", 7, "reduce_init_rev", 1213, 28], - ["get", 10, 49, 1, 1213, 18], - ["frame", 12, 10, 1, 1213, 18], + ["setarg", 10, 1, 6, 1476, 21], + ["invoke", 10, 6, 1476, 21], + ["move", 23, 6, 1476, 21], + ["access", 7, "reduce_init_rev", 1477, 28], + ["get", 10, 51, 1, 1477, 18], + ["frame", 12, 10, 1, 1477, 18], ["stone_text", 7], - ["setarg", 12, 1, 7, 1213, 18], - ["invoke", 12, 7, 1213, 18], - ["move", 24, 7, 1213, 18], - ["access", 10, "reduce_null", 1214, 30], - ["get", 12, 49, 1, 1214, 20], - ["frame", 14, 12, 1, 1214, 20], + ["setarg", 12, 1, 7, 1477, 18], + ["invoke", 12, 7, 1477, 18], + ["move", 24, 7, 1477, 18], + ["access", 10, "reduce_null", 1478, 30], + ["get", 12, 51, 1, 1478, 20], + ["frame", 14, 12, 1, 1478, 20], ["stone_text", 10], - ["setarg", 14, 1, 10, 1214, 20], - ["invoke", 14, 10, 1214, 20], - ["move", 25, 10, 1214, 20], - ["access", 12, "reduce_d1", 1215, 22], - ["get", 14, 49, 1, 1215, 12], - ["frame", 16, 14, 1, 1215, 12], + ["setarg", 14, 1, 10, 1478, 20], + ["invoke", 14, 10, 1478, 20], + ["move", 25, 10, 1478, 20], + ["access", 12, "reduce_d1", 1479, 22], + ["get", 14, 51, 1, 1479, 12], + ["frame", 16, 14, 1, 1479, 12], ["stone_text", 12], - ["setarg", 16, 1, 12, 1215, 12], - ["invoke", 16, 12, 1215, 12], - ["move", 26, 12, 1215, 12], - ["access", 14, "reduce_d2", 1216, 22], - ["get", 16, 49, 1, 1216, 12], - ["frame", 19, 16, 1, 1216, 12], + ["setarg", 16, 1, 12, 1479, 12], + ["invoke", 16, 12, 1479, 12], + ["move", 26, 12, 1479, 12], + ["access", 14, "reduce_d2", 1480, 22], + ["get", 16, 51, 1, 1480, 12], + ["frame", 19, 16, 1, 1480, 12], ["stone_text", 14], - ["setarg", 19, 1, 14, 1216, 12], - ["invoke", 19, 14, 1216, 12], - ["move", 27, 14, 1216, 12], - ["access", 16, "reduce_d3", 1217, 22], - ["get", 19, 49, 1, 1217, 12], - ["frame", 21, 19, 1, 1217, 12], + ["setarg", 19, 1, 14, 1480, 12], + ["invoke", 19, 14, 1480, 12], + ["move", 27, 14, 1480, 12], + ["access", 16, "reduce_d3", 1481, 22], + ["get", 19, 51, 1, 1481, 12], + ["frame", 21, 19, 1, 1481, 12], ["stone_text", 16], - ["setarg", 21, 1, 16, 1217, 12], - ["invoke", 21, 16, 1217, 12], - ["move", 28, 16, 1217, 12], - ["access", 19, "reduce_d4", 1218, 22], - ["get", 21, 49, 1, 1218, 12], - ["frame", 23, 21, 1, 1218, 12], + ["setarg", 21, 1, 16, 1481, 12], + ["invoke", 21, 16, 1481, 12], + ["move", 28, 16, 1481, 12], + ["access", 19, "reduce_d4", 1482, 22], + ["get", 21, 51, 1, 1482, 12], + ["frame", 23, 21, 1, 1482, 12], ["stone_text", 19], - ["setarg", 23, 1, 19, 1218, 12], - ["invoke", 23, 19, 1218, 12], - ["move", 29, 19, 1218, 12], - ["access", 21, "is_null", 1219, 14], - ["get", 23, 55, 1, 1219, 7], - ["frame", 24, 23, 3, 1219, 7], + ["setarg", 23, 1, 19, 1482, 12], + ["invoke", 23, 19, 1482, 12], + ["move", 29, 19, 1482, 12], + ["access", 21, "is_null", 1483, 14], + ["get", 23, 57, 1, 1483, 7], + ["frame", 24, 23, 3, 1483, 7], ["stone_text", 21], - ["setarg", 24, 1, 21, 1219, 7], - ["setarg", 24, 2, 17, 1219, 7], - ["setarg", 24, 3, 8, 1219, 7], - ["invoke", 24, 21, 1219, 7], - ["access", 21, "jump_false", 1220, 22], - ["get", 23, 64, 1, 1220, 7], - ["frame", 24, 23, 3, 1220, 7], + ["setarg", 24, 1, 21, 1483, 7], + ["setarg", 24, 2, 17, 1483, 7], + ["setarg", 24, 3, 8, 1483, 7], + ["invoke", 24, 21, 1483, 7], + ["access", 21, "jump_false", 1484, 22], + ["get", 23, 66, 1, 1484, 7], + ["frame", 24, 23, 3, 1484, 7], ["stone_text", 21], - ["setarg", 24, 1, 21, 1220, 7], - ["setarg", 24, 2, 17, 1220, 7], - ["setarg", 24, 3, 4, 1220, 7], - ["invoke", 24, 21, 1220, 7], - ["access", 21, "lt", 1222, 14], - ["get", 23, 56, 1, 1222, 7], - ["frame", 24, 23, 4, 1222, 7], + ["setarg", 24, 1, 21, 1484, 7], + ["setarg", 24, 2, 17, 1484, 7], + ["setarg", 24, 3, 4, 1484, 7], + ["invoke", 24, 21, 1484, 7], + ["access", 21, "lt", 1486, 14], + ["get", 23, 58, 1, 1486, 7], + ["frame", 24, 23, 4, 1486, 7], ["stone_text", 21], - ["setarg", 24, 1, 21, 1222, 7], - ["setarg", 24, 2, 17, 1222, 7], - ["setarg", 24, 3, 18, 1222, 7], - ["setarg", 24, 4, 11, 1222, 7], - ["invoke", 24, 21, 1222, 7], - ["access", 21, "jump_false", 1223, 22], - ["get", 23, 64, 1, 1223, 7], - ["frame", 24, 23, 3, 1223, 7], + ["setarg", 24, 1, 21, 1486, 7], + ["setarg", 24, 2, 17, 1486, 7], + ["setarg", 24, 3, 18, 1486, 7], + ["setarg", 24, 4, 11, 1486, 7], + ["invoke", 24, 21, 1486, 7], + ["access", 21, "jump_false", 1487, 22], + ["get", 23, 66, 1, 1487, 7], + ["frame", 24, 23, 3, 1487, 7], ["stone_text", 21], - ["setarg", 24, 1, 21, 1223, 7], - ["setarg", 24, 2, 17, 1223, 7], - ["setarg", 24, 3, 10, 1223, 7], - ["invoke", 24, 17, 1223, 7], - ["access", 17, "jump_true", 1224, 22], - ["get", 21, 64, 1, 1224, 7], - ["frame", 23, 21, 3, 1224, 7], + ["setarg", 24, 1, 21, 1487, 7], + ["setarg", 24, 2, 17, 1487, 7], + ["setarg", 24, 3, 10, 1487, 7], + ["invoke", 24, 17, 1487, 7], + ["access", 17, "wary_true", 1488, 22], + ["get", 21, 66, 1, 1488, 7], + ["frame", 23, 21, 3, 1488, 7], ["stone_text", 17], - ["setarg", 23, 1, 17, 1224, 7], - ["setarg", 23, 2, 9, 1224, 7], - ["setarg", 23, 3, 6, 1224, 7], - ["invoke", 23, 17, 1224, 7], - ["access", 17, "load_index", 1226, 14], - ["get", 21, 56, 1, 1226, 7], - ["frame", 23, 21, 4, 1226, 7], + ["setarg", 23, 1, 17, 1488, 7], + ["setarg", 23, 2, 9, 1488, 7], + ["setarg", 23, 3, 6, 1488, 7], + ["invoke", 23, 17, 1488, 7], + ["access", 17, "load_index", 1490, 14], + ["get", 21, 58, 1, 1490, 7], + ["frame", 23, 21, 4, 1490, 7], ["stone_text", 17], - ["setarg", 23, 1, 17, 1226, 7], - ["setarg", 23, 2, 13, 1226, 7], - ["setarg", 23, 3, 5, 1226, 7], - ["setarg", 23, 4, 18, 1226, 7], - ["invoke", 23, 17, 1226, 7], - ["access", 17, "move", 1227, 14], - ["get", 18, 55, 1, 1227, 7], - ["frame", 21, 18, 3, 1227, 7], + ["setarg", 23, 1, 17, 1490, 7], + ["setarg", 23, 2, 13, 1490, 7], + ["setarg", 23, 3, 5, 1490, 7], + ["setarg", 23, 4, 18, 1490, 7], + ["invoke", 23, 17, 1490, 7], + ["access", 17, "move", 1491, 14], + ["get", 18, 57, 1, 1491, 7], + ["frame", 21, 18, 3, 1491, 7], ["stone_text", 17], - ["setarg", 21, 1, 17, 1227, 7], - ["setarg", 21, 2, 15, 1227, 7], - ["setarg", 21, 3, 20, 1227, 7], - ["invoke", 21, 17, 1227, 7], - ["true", 17, 1228, 27], - ["get", 18, 98, 1, 1228, 7], - ["frame", 21, 18, 3, 1228, 7], - ["setarg", 21, 1, 30, 1228, 7], - ["setarg", 21, 2, 17, 1228, 7], - ["setarg", 21, 3, 12, 1228, 7], - ["invoke", 21, 17, 1228, 7], - ["get", 17, 52, 1, 1229, 7], - ["frame", 18, 17, 1, 1229, 7], - ["setarg", 18, 1, 12, 1229, 7], - ["invoke", 18, 12, 1229, 7], - ["access", 12, "move", 1230, 14], - ["get", 17, 55, 1, 1230, 7], - ["frame", 18, 17, 3, 1230, 7], + ["setarg", 21, 1, 17, 1491, 7], + ["setarg", 21, 2, 15, 1491, 7], + ["setarg", 21, 3, 20, 1491, 7], + ["invoke", 21, 17, 1491, 7], + ["true", 17, 1492, 27], + ["get", 18, 105, 1, 1492, 7], + ["frame", 21, 18, 3, 1492, 7], + ["setarg", 21, 1, 30, 1492, 7], + ["setarg", 21, 2, 17, 1492, 7], + ["setarg", 21, 3, 12, 1492, 7], + ["invoke", 21, 17, 1492, 7], + ["get", 17, 54, 1, 1493, 7], + ["frame", 18, 17, 1, 1493, 7], + ["setarg", 18, 1, 12, 1493, 7], + ["invoke", 18, 12, 1493, 7], + ["access", 12, "move", 1494, 14], + ["get", 17, 57, 1, 1494, 7], + ["frame", 18, 17, 3, 1494, 7], ["stone_text", 12], - ["setarg", 18, 1, 12, 1230, 7], - ["setarg", 18, 2, 1, 1230, 7], - ["setarg", 18, 3, 13, 1230, 7], - ["invoke", 18, 12, 1230, 7], - ["get", 12, 63, 1, 1231, 7], - ["frame", 17, 12, 1, 1231, 7], - ["setarg", 17, 1, 22, 1231, 7], - ["invoke", 17, 12, 1231, 7], - ["get", 12, 52, 1, 1233, 7], - ["frame", 17, 12, 1, 1233, 7], - ["setarg", 17, 1, 6, 1233, 7], - ["invoke", 17, 6, 1233, 7], - ["access", 6, "subtract", 1234, 14], - ["get", 12, 56, 1, 1234, 7], - ["frame", 17, 12, 4, 1234, 7], + ["setarg", 18, 1, 12, 1494, 7], + ["setarg", 18, 2, 1, 1494, 7], + ["setarg", 18, 3, 13, 1494, 7], + ["invoke", 18, 12, 1494, 7], + ["get", 12, 65, 1, 1495, 7], + ["frame", 17, 12, 1, 1495, 7], + ["setarg", 17, 1, 22, 1495, 7], + ["invoke", 17, 12, 1495, 7], + ["get", 12, 54, 1, 1497, 7], + ["frame", 17, 12, 1, 1497, 7], + ["setarg", 17, 1, 6, 1497, 7], + ["invoke", 17, 6, 1497, 7], + ["access", 6, "subtract", 1498, 14], + ["get", 12, 58, 1, 1498, 7], + ["frame", 17, 12, 4, 1498, 7], ["stone_text", 6], - ["setarg", 17, 1, 6, 1234, 7], - ["setarg", 17, 2, 15, 1234, 7], - ["setarg", 17, 3, 11, 1234, 7], - ["setarg", 17, 4, 20, 1234, 7], - ["invoke", 17, 6, 1234, 7], - ["access", 6, "load_index", 1235, 14], - ["get", 12, 56, 1, 1235, 7], - ["frame", 17, 12, 4, 1235, 7], + ["setarg", 17, 1, 6, 1498, 7], + ["setarg", 17, 2, 15, 1498, 7], + ["setarg", 17, 3, 11, 1498, 7], + ["setarg", 17, 4, 20, 1498, 7], + ["invoke", 17, 6, 1498, 7], + ["access", 6, "load_index", 1499, 14], + ["get", 12, 58, 1, 1499, 7], + ["frame", 17, 12, 4, 1499, 7], ["stone_text", 6], - ["setarg", 17, 1, 6, 1235, 7], - ["setarg", 17, 2, 13, 1235, 7], - ["setarg", 17, 3, 5, 1235, 7], - ["setarg", 17, 4, 15, 1235, 7], - ["invoke", 17, 5, 1235, 7], - ["access", 5, "subtract", 1236, 14], - ["get", 6, 56, 1, 1236, 7], - ["frame", 12, 6, 4, 1236, 7], + ["setarg", 17, 1, 6, 1499, 7], + ["setarg", 17, 2, 13, 1499, 7], + ["setarg", 17, 3, 5, 1499, 7], + ["setarg", 17, 4, 15, 1499, 7], + ["invoke", 17, 5, 1499, 7], + ["access", 5, "subtract", 1500, 14], + ["get", 6, 58, 1, 1500, 7], + ["frame", 12, 6, 4, 1500, 7], ["stone_text", 5], - ["setarg", 12, 1, 5, 1236, 7], - ["setarg", 12, 2, 15, 1236, 7], - ["setarg", 12, 3, 15, 1236, 7], - ["setarg", 12, 4, 20, 1236, 7], - ["invoke", 12, 5, 1236, 7], - ["false", 5, 1237, 27], - ["get", 6, 98, 1, 1237, 7], - ["frame", 12, 6, 3, 1237, 7], - ["setarg", 12, 1, 30, 1237, 7], - ["setarg", 12, 2, 5, 1237, 7], - ["setarg", 12, 3, 14, 1237, 7], - ["invoke", 12, 5, 1237, 7], - ["get", 5, 52, 1, 1238, 7], - ["frame", 6, 5, 1, 1238, 7], - ["setarg", 6, 1, 14, 1238, 7], - ["invoke", 6, 5, 1238, 7], - ["access", 5, "move", 1239, 14], - ["get", 6, 55, 1, 1239, 7], - ["frame", 12, 6, 3, 1239, 7], + ["setarg", 12, 1, 5, 1500, 7], + ["setarg", 12, 2, 15, 1500, 7], + ["setarg", 12, 3, 15, 1500, 7], + ["setarg", 12, 4, 20, 1500, 7], + ["invoke", 12, 5, 1500, 7], + ["false", 5, 1501, 27], + ["get", 6, 105, 1, 1501, 7], + ["frame", 12, 6, 3, 1501, 7], + ["setarg", 12, 1, 30, 1501, 7], + ["setarg", 12, 2, 5, 1501, 7], + ["setarg", 12, 3, 14, 1501, 7], + ["invoke", 12, 5, 1501, 7], + ["get", 5, 54, 1, 1502, 7], + ["frame", 6, 5, 1, 1502, 7], + ["setarg", 6, 1, 14, 1502, 7], + ["invoke", 6, 5, 1502, 7], + ["access", 5, "move", 1503, 14], + ["get", 6, 57, 1, 1503, 7], + ["frame", 12, 6, 3, 1503, 7], ["stone_text", 5], - ["setarg", 12, 1, 5, 1239, 7], - ["setarg", 12, 2, 1, 1239, 7], - ["setarg", 12, 3, 13, 1239, 7], - ["invoke", 12, 5, 1239, 7], - ["get", 5, 63, 1, 1240, 7], - ["frame", 6, 5, 1, 1240, 7], - ["setarg", 6, 1, 22, 1240, 7], - ["invoke", 6, 5, 1240, 7], - ["get", 5, 52, 1, 1241, 7], - ["frame", 6, 5, 1, 1241, 7], - ["setarg", 6, 1, 10, 1241, 7], - ["invoke", 6, 5, 1241, 7], - ["access", 5, "null", 1242, 14], - ["get", 6, 54, 1, 1242, 7], - ["frame", 10, 6, 2, 1242, 7], + ["setarg", 12, 1, 5, 1503, 7], + ["setarg", 12, 2, 1, 1503, 7], + ["setarg", 12, 3, 13, 1503, 7], + ["invoke", 12, 5, 1503, 7], + ["get", 5, 65, 1, 1504, 7], + ["frame", 6, 5, 1, 1504, 7], + ["setarg", 6, 1, 22, 1504, 7], + ["invoke", 6, 5, 1504, 7], + ["get", 5, 54, 1, 1505, 7], + ["frame", 6, 5, 1, 1505, 7], + ["setarg", 6, 1, 10, 1505, 7], + ["invoke", 6, 5, 1505, 7], + ["access", 5, "null", 1506, 14], + ["get", 6, 56, 1, 1506, 7], + ["frame", 10, 6, 2, 1506, 7], ["stone_text", 5], - ["setarg", 10, 1, 5, 1242, 7], - ["setarg", 10, 2, 1, 1242, 7], - ["invoke", 10, 5, 1242, 7], - ["get", 5, 63, 1, 1243, 7], - ["frame", 6, 5, 1, 1243, 7], - ["setarg", 6, 1, 22, 1243, 7], - ["invoke", 6, 5, 1243, 7], - ["get", 5, 52, 1, 1245, 7], - ["frame", 6, 5, 1, 1245, 7], - ["setarg", 6, 1, 4, 1245, 7], - ["invoke", 6, 4, 1245, 7], - ["access", 4, "jump_true", 1246, 22], - ["get", 5, 64, 1, 1246, 7], - ["frame", 6, 5, 3, 1246, 7], + ["setarg", 10, 1, 5, 1506, 7], + ["setarg", 10, 2, 1, 1506, 7], + ["invoke", 10, 5, 1506, 7], + ["get", 5, 65, 1, 1507, 7], + ["frame", 6, 5, 1, 1507, 7], + ["setarg", 6, 1, 22, 1507, 7], + ["invoke", 6, 5, 1507, 7], + ["get", 5, 54, 1, 1509, 7], + ["frame", 6, 5, 1, 1509, 7], + ["setarg", 6, 1, 4, 1509, 7], + ["invoke", 6, 4, 1509, 7], + ["access", 4, "wary_true", 1510, 22], + ["get", 5, 66, 1, 1510, 7], + ["frame", 6, 5, 3, 1510, 7], ["stone_text", 4], - ["setarg", 6, 1, 4, 1246, 7], - ["setarg", 6, 2, 9, 1246, 7], - ["setarg", 6, 3, 7, 1246, 7], - ["invoke", 6, 4, 1246, 7], - ["access", 4, "move", 1248, 14], - ["get", 5, 55, 1, 1248, 7], - ["frame", 6, 5, 3, 1248, 7], + ["setarg", 6, 1, 4, 1510, 7], + ["setarg", 6, 2, 9, 1510, 7], + ["setarg", 6, 3, 7, 1510, 7], + ["invoke", 6, 4, 1510, 7], + ["access", 4, "move", 1512, 14], + ["get", 5, 57, 1, 1512, 7], + ["frame", 6, 5, 3, 1512, 7], ["stone_text", 4], - ["setarg", 6, 1, 4, 1248, 7], - ["setarg", 6, 2, 13, 1248, 7], - ["setarg", 6, 3, 8, 1248, 7], - ["invoke", 6, 4, 1248, 7], - ["access", 4, "int", 1249, 14], - ["access", 5, 0, 1249, 24], - ["get", 6, 55, 1, 1249, 7], - ["frame", 9, 6, 3, 1249, 7], + ["setarg", 6, 1, 4, 1512, 7], + ["setarg", 6, 2, 13, 1512, 7], + ["setarg", 6, 3, 8, 1512, 7], + ["invoke", 6, 4, 1512, 7], + ["access", 4, "int", 1513, 14], + ["access", 5, 0, 1513, 24], + ["get", 6, 57, 1, 1513, 7], + ["frame", 9, 6, 3, 1513, 7], ["stone_text", 4], - ["setarg", 9, 1, 4, 1249, 7], - ["setarg", 9, 2, 15, 1249, 7], - ["setarg", 9, 3, 5, 1249, 7], - ["invoke", 9, 4, 1249, 7], - ["true", 4, 1250, 27], - ["get", 5, 98, 1, 1250, 7], - ["frame", 6, 5, 3, 1250, 7], - ["setarg", 6, 1, 30, 1250, 7], - ["setarg", 6, 2, 4, 1250, 7], - ["setarg", 6, 3, 16, 1250, 7], - ["invoke", 6, 4, 1250, 7], - ["get", 4, 52, 1, 1251, 7], - ["frame", 5, 4, 1, 1251, 7], - ["setarg", 5, 1, 16, 1251, 7], - ["invoke", 5, 4, 1251, 7], - ["access", 4, "move", 1252, 14], - ["get", 5, 55, 1, 1252, 7], - ["frame", 6, 5, 3, 1252, 7], + ["setarg", 9, 1, 4, 1513, 7], + ["setarg", 9, 2, 15, 1513, 7], + ["setarg", 9, 3, 5, 1513, 7], + ["invoke", 9, 4, 1513, 7], + ["true", 4, 1514, 27], + ["get", 5, 105, 1, 1514, 7], + ["frame", 6, 5, 3, 1514, 7], + ["setarg", 6, 1, 30, 1514, 7], + ["setarg", 6, 2, 4, 1514, 7], + ["setarg", 6, 3, 16, 1514, 7], + ["invoke", 6, 4, 1514, 7], + ["get", 4, 54, 1, 1515, 7], + ["frame", 5, 4, 1, 1515, 7], + ["setarg", 5, 1, 16, 1515, 7], + ["invoke", 5, 4, 1515, 7], + ["access", 4, "move", 1516, 14], + ["get", 5, 57, 1, 1516, 7], + ["frame", 6, 5, 3, 1516, 7], ["stone_text", 4], - ["setarg", 6, 1, 4, 1252, 7], - ["setarg", 6, 2, 1, 1252, 7], - ["setarg", 6, 3, 13, 1252, 7], - ["invoke", 6, 4, 1252, 7], - ["get", 4, 63, 1, 1253, 7], - ["frame", 5, 4, 1, 1253, 7], - ["setarg", 5, 1, 22, 1253, 7], - ["invoke", 5, 4, 1253, 7], - ["get", 4, 52, 1, 1255, 7], - ["frame", 5, 4, 1, 1255, 7], - ["setarg", 5, 1, 7, 1255, 7], - ["invoke", 5, 4, 1255, 7], - ["access", 4, "move", 1256, 14], - ["get", 5, 55, 1, 1256, 7], - ["frame", 6, 5, 3, 1256, 7], + ["setarg", 6, 1, 4, 1516, 7], + ["setarg", 6, 2, 1, 1516, 7], + ["setarg", 6, 3, 13, 1516, 7], + ["invoke", 6, 4, 1516, 7], + ["get", 4, 65, 1, 1517, 7], + ["frame", 5, 4, 1, 1517, 7], + ["setarg", 5, 1, 22, 1517, 7], + ["invoke", 5, 4, 1517, 7], + ["get", 4, 54, 1, 1519, 7], + ["frame", 5, 4, 1, 1519, 7], + ["setarg", 5, 1, 7, 1519, 7], + ["invoke", 5, 4, 1519, 7], + ["access", 4, "move", 1520, 14], + ["get", 5, 57, 1, 1520, 7], + ["frame", 6, 5, 3, 1520, 7], ["stone_text", 4], - ["setarg", 6, 1, 4, 1256, 7], - ["setarg", 6, 2, 13, 1256, 7], - ["setarg", 6, 3, 8, 1256, 7], - ["invoke", 6, 4, 1256, 7], - ["access", 4, "subtract", 1257, 14], - ["get", 5, 56, 1, 1257, 7], - ["frame", 6, 5, 4, 1257, 7], + ["setarg", 6, 1, 4, 1520, 7], + ["setarg", 6, 2, 13, 1520, 7], + ["setarg", 6, 3, 8, 1520, 7], + ["invoke", 6, 4, 1520, 7], + ["access", 4, "subtract", 1521, 14], + ["get", 5, 58, 1, 1521, 7], + ["frame", 6, 5, 4, 1521, 7], ["stone_text", 4], - ["setarg", 6, 1, 4, 1257, 7], - ["setarg", 6, 2, 15, 1257, 7], - ["setarg", 6, 3, 11, 1257, 7], - ["setarg", 6, 4, 20, 1257, 7], - ["invoke", 6, 4, 1257, 7], - ["false", 4, 1258, 27], - ["get", 5, 98, 1, 1258, 7], - ["frame", 6, 5, 3, 1258, 7], - ["setarg", 6, 1, 30, 1258, 7], - ["setarg", 6, 2, 4, 1258, 7], - ["setarg", 6, 3, 19, 1258, 7], - ["invoke", 6, 4, 1258, 7], - ["get", 4, 52, 1, 1259, 7], - ["frame", 5, 4, 1, 1259, 7], - ["setarg", 5, 1, 19, 1259, 7], - ["invoke", 5, 4, 1259, 7], - ["access", 4, "move", 1260, 14], - ["get", 5, 55, 1, 1260, 7], - ["frame", 6, 5, 3, 1260, 7], + ["setarg", 6, 1, 4, 1521, 7], + ["setarg", 6, 2, 15, 1521, 7], + ["setarg", 6, 3, 11, 1521, 7], + ["setarg", 6, 4, 20, 1521, 7], + ["invoke", 6, 4, 1521, 7], + ["false", 4, 1522, 27], + ["get", 5, 105, 1, 1522, 7], + ["frame", 6, 5, 3, 1522, 7], + ["setarg", 6, 1, 30, 1522, 7], + ["setarg", 6, 2, 4, 1522, 7], + ["setarg", 6, 3, 19, 1522, 7], + ["invoke", 6, 4, 1522, 7], + ["get", 4, 54, 1, 1523, 7], + ["frame", 5, 4, 1, 1523, 7], + ["setarg", 5, 1, 19, 1523, 7], + ["invoke", 5, 4, 1523, 7], + ["access", 4, "move", 1524, 14], + ["get", 5, 57, 1, 1524, 7], + ["frame", 6, 5, 3, 1524, 7], ["stone_text", 4], - ["setarg", 6, 1, 4, 1260, 7], - ["setarg", 6, 2, 1, 1260, 7], - ["setarg", 6, 3, 13, 1260, 7], - ["invoke", 6, 4, 1260, 7], - ["get", 4, 52, 1, 1261, 7], - ["frame", 5, 4, 1, 1261, 7], - ["setarg", 5, 1, 22, 1261, 7], - ["invoke", 5, 4, 1261, 7], - "if_end_252", - "if_end_250", - ["return", 1, 1263, 12], + ["setarg", 6, 1, 4, 1524, 7], + ["setarg", 6, 2, 1, 1524, 7], + ["setarg", 6, 3, 13, 1524, 7], + ["invoke", 6, 4, 1524, 7], + ["get", 4, 54, 1, 1525, 7], + ["frame", 5, 4, 1, 1525, 7], + ["setarg", 5, 1, 22, 1525, 7], + ["invoke", 5, 4, 1525, 7], + "if_end_229", + "if_end_227", + ["return", 1, 1527, 12], "_nop_ur_1", "_nop_ur_2" ], @@ -7145,24 +7935,24 @@ "nr_close_slots": 0, "instructions": [ ["record", 3, 3], - ["access", 4, "name", 1273, 22], - ["store_field", 3, 4, "kind", 1273, 22], - ["store_field", 3, 2, "name", 1273, 36], - ["access", 4, "intrinsic", 1273, 48], - ["store_field", 3, 4, "make", 1273, 48], - ["move", 4, 3, 1273, 48], - ["access", 4, "access", 1274, 16], - ["array", 5, 3, 1274, 32], + ["access", 4, "name", 1537, 22], + ["store_field", 3, 4, "kind", 1537, 22], + ["store_field", 3, 2, "name", 1537, 36], + ["access", 4, "intrinsic", 1537, 48], + ["store_field", 3, 4, "make", 1537, 48], + ["move", 4, 3, 1537, 48], + ["access", 4, "access", 1538, 16], + ["array", 5, 3, 1538, 32], ["stone_text", 4], - ["push", 5, 4, 1274, 32], - ["push", 5, 1, 1274, 32], - ["push", 5, 3, 1274, 32], - ["get", 3, 51, 1, 1274, 5], - ["frame", 4, 3, 1, 1274, 5], - ["setarg", 4, 1, 5, 1274, 5], - ["invoke", 4, 3, 1274, 5], - ["null", 3, 1274, 5], - ["return", 3, 1274, 5] + ["push", 5, 4, 1538, 32], + ["push", 5, 1, 1538, 32], + ["push", 5, 3, 1538, 32], + ["get", 3, 53, 1, 1538, 5], + ["frame", 4, 3, 1, 1538, 5], + ["setarg", 4, 1, 5, 1538, 5], + ["invoke", 4, 3, 1538, 5], + ["null", 3, 1538, 5], + ["return", 3, 1538, 5] ], "_write_types": [null, null, null, "record", "record", "text", "text", "text", "array", null, null, null, "null"], "name": "", @@ -7175,274 +7965,274 @@ "nr_slots": 17, "nr_close_slots": 0, "instructions": [ - ["load_field", 3, 1, "kind", 1279, 16], - ["move", 4, 3, 1279, 16], - ["load_field", 5, 1, "left", 1280, 16], - ["move", 6, 5, 1280, 16], - ["load_field", 5, 1, "right", 1281, 17], - ["move", 7, 5, 1281, 17], - ["null", 5, 1282, 21], - ["access", 8, 0, 1283, 21], - ["access", 9, 0, 1284, 22], - ["access", 10, 0, 1285, 16], - ["null", 11, 1286, 14], - ["access", 12, "&&", 1288, 17], - ["eq", 13, 3, 12, 1288, 17], - ["jump_false", 13, "if_else_253", 1288, 17], - ["access", 3, "and_end", 1289, 29], - ["get", 12, 49, 1, 1289, 19], - ["frame", 13, 12, 1, 1289, 19], + ["load_field", 3, 1, "kind", 1543, 16], + ["move", 4, 3, 1543, 16], + ["load_field", 5, 1, "left", 1544, 16], + ["move", 6, 5, 1544, 16], + ["load_field", 5, 1, "right", 1545, 17], + ["move", 7, 5, 1545, 17], + ["null", 5, 1546, 21], + ["access", 8, 0, 1547, 21], + ["access", 9, 0, 1548, 22], + ["access", 10, 0, 1549, 16], + ["null", 11, 1550, 14], + ["access", 12, "&&", 1552, 17], + ["eq", 13, 3, 12, 1552, 17], + ["jump_false", 13, "if_else_230", 1552, 17], + ["access", 3, "and_end", 1553, 29], + ["get", 12, 51, 1, 1553, 19], + ["frame", 13, 12, 1, 1553, 19], ["stone_text", 3], - ["setarg", 13, 1, 3, 1289, 19], - ["invoke", 13, 3, 1289, 19], - ["move", 5, 3, 1289, 19], - ["access", 12, -1, 1290, 34], - ["get", 13, 97, 1, 1290, 19], - ["frame", 14, 13, 2, 1290, 19], - ["setarg", 14, 1, 6, 1290, 19], - ["setarg", 14, 2, 12, 1290, 19], - ["invoke", 14, 12, 1290, 19], - ["move", 8, 12, 1290, 19], - ["get", 13, 44, 1, 1291, 14], - ["frame", 14, 13, 0, 1291, 14], - ["invoke", 14, 13, 1291, 14], - ["move", 10, 13, 1291, 14], - ["access", 14, "move", 1292, 14], - ["get", 15, 55, 1, 1292, 7], - ["frame", 16, 15, 3, 1292, 7], + ["setarg", 13, 1, 3, 1553, 19], + ["invoke", 13, 3, 1553, 19], + ["move", 5, 3, 1553, 19], + ["access", 12, -1, 1554, 34], + ["get", 13, 101, 1, 1554, 19], + ["frame", 14, 13, 2, 1554, 19], + ["setarg", 14, 1, 6, 1554, 19], + ["setarg", 14, 2, 12, 1554, 19], + ["invoke", 14, 12, 1554, 19], + ["move", 8, 12, 1554, 19], + ["get", 13, 46, 1, 1555, 14], + ["frame", 14, 13, 0, 1555, 14], + ["invoke", 14, 13, 1555, 14], + ["move", 10, 13, 1555, 14], + ["access", 14, "move", 1556, 14], + ["get", 15, 57, 1, 1556, 7], + ["frame", 16, 15, 3, 1556, 7], ["stone_text", 14], - ["setarg", 16, 1, 14, 1292, 7], - ["setarg", 16, 2, 13, 1292, 7], - ["setarg", 16, 3, 12, 1292, 7], - ["invoke", 16, 12, 1292, 7], - ["access", 12, "jump_false", 1293, 22], - ["get", 14, 64, 1, 1293, 7], - ["frame", 15, 14, 3, 1293, 7], + ["setarg", 16, 1, 14, 1556, 7], + ["setarg", 16, 2, 13, 1556, 7], + ["setarg", 16, 3, 12, 1556, 7], + ["invoke", 16, 12, 1556, 7], + ["access", 12, "wary_false", 1557, 22], + ["get", 14, 66, 1, 1557, 7], + ["frame", 15, 14, 3, 1557, 7], ["stone_text", 12], - ["setarg", 15, 1, 12, 1293, 7], - ["setarg", 15, 2, 13, 1293, 7], - ["setarg", 15, 3, 3, 1293, 7], - ["invoke", 15, 12, 1293, 7], - ["access", 12, -1, 1294, 36], - ["get", 14, 97, 1, 1294, 20], - ["frame", 15, 14, 2, 1294, 20], - ["setarg", 15, 1, 7, 1294, 20], - ["setarg", 15, 2, 12, 1294, 20], - ["invoke", 15, 12, 1294, 20], - ["move", 9, 12, 1294, 20], - ["access", 14, "move", 1295, 14], - ["get", 15, 55, 1, 1295, 7], - ["frame", 16, 15, 3, 1295, 7], + ["setarg", 15, 1, 12, 1557, 7], + ["setarg", 15, 2, 13, 1557, 7], + ["setarg", 15, 3, 3, 1557, 7], + ["invoke", 15, 12, 1557, 7], + ["access", 12, -1, 1558, 36], + ["get", 14, 101, 1, 1558, 20], + ["frame", 15, 14, 2, 1558, 20], + ["setarg", 15, 1, 7, 1558, 20], + ["setarg", 15, 2, 12, 1558, 20], + ["invoke", 15, 12, 1558, 20], + ["move", 9, 12, 1558, 20], + ["access", 14, "move", 1559, 14], + ["get", 15, 57, 1, 1559, 7], + ["frame", 16, 15, 3, 1559, 7], ["stone_text", 14], - ["setarg", 16, 1, 14, 1295, 7], - ["setarg", 16, 2, 13, 1295, 7], - ["setarg", 16, 3, 12, 1295, 7], - ["invoke", 16, 12, 1295, 7], - ["get", 12, 52, 1, 1296, 7], - ["frame", 14, 12, 1, 1296, 7], - ["setarg", 14, 1, 3, 1296, 7], - ["invoke", 14, 3, 1296, 7], - ["return", 13, 1297, 14], + ["setarg", 16, 1, 14, 1559, 7], + ["setarg", 16, 2, 13, 1559, 7], + ["setarg", 16, 3, 12, 1559, 7], + ["invoke", 16, 12, 1559, 7], + ["get", 12, 54, 1, 1560, 7], + ["frame", 14, 12, 1, 1560, 7], + ["setarg", 14, 1, 3, 1560, 7], + ["invoke", 14, 3, 1560, 7], + ["return", 13, 1561, 14], "_nop_ur_1", - "if_else_253", - "if_end_254", - ["access", 3, "||", 1300, 17], - ["eq", 12, 4, 3, 1300, 17], - ["jump_false", 12, "if_else_255", 1300, 17], - ["access", 3, "or_end", 1301, 29], - ["get", 12, 49, 1, 1301, 19], - ["frame", 13, 12, 1, 1301, 19], + "if_else_230", + "if_end_231", + ["access", 3, "||", 1564, 17], + ["eq", 12, 4, 3, 1564, 17], + ["jump_false", 12, "if_else_232", 1564, 17], + ["access", 3, "or_end", 1565, 29], + ["get", 12, 51, 1, 1565, 19], + ["frame", 13, 12, 1, 1565, 19], ["stone_text", 3], - ["setarg", 13, 1, 3, 1301, 19], - ["invoke", 13, 3, 1301, 19], - ["move", 5, 3, 1301, 19], - ["access", 12, -1, 1302, 34], - ["get", 13, 97, 1, 1302, 19], - ["frame", 14, 13, 2, 1302, 19], - ["setarg", 14, 1, 6, 1302, 19], - ["setarg", 14, 2, 12, 1302, 19], - ["invoke", 14, 12, 1302, 19], - ["move", 8, 12, 1302, 19], - ["get", 13, 44, 1, 1303, 14], - ["frame", 14, 13, 0, 1303, 14], - ["invoke", 14, 13, 1303, 14], - ["move", 10, 13, 1303, 14], - ["access", 14, "move", 1304, 14], - ["get", 15, 55, 1, 1304, 7], - ["frame", 16, 15, 3, 1304, 7], + ["setarg", 13, 1, 3, 1565, 19], + ["invoke", 13, 3, 1565, 19], + ["move", 5, 3, 1565, 19], + ["access", 12, -1, 1566, 34], + ["get", 13, 101, 1, 1566, 19], + ["frame", 14, 13, 2, 1566, 19], + ["setarg", 14, 1, 6, 1566, 19], + ["setarg", 14, 2, 12, 1566, 19], + ["invoke", 14, 12, 1566, 19], + ["move", 8, 12, 1566, 19], + ["get", 13, 46, 1, 1567, 14], + ["frame", 14, 13, 0, 1567, 14], + ["invoke", 14, 13, 1567, 14], + ["move", 10, 13, 1567, 14], + ["access", 14, "move", 1568, 14], + ["get", 15, 57, 1, 1568, 7], + ["frame", 16, 15, 3, 1568, 7], ["stone_text", 14], - ["setarg", 16, 1, 14, 1304, 7], - ["setarg", 16, 2, 13, 1304, 7], - ["setarg", 16, 3, 12, 1304, 7], - ["invoke", 16, 12, 1304, 7], - ["access", 12, "jump_true", 1305, 22], - ["get", 14, 64, 1, 1305, 7], - ["frame", 15, 14, 3, 1305, 7], + ["setarg", 16, 1, 14, 1568, 7], + ["setarg", 16, 2, 13, 1568, 7], + ["setarg", 16, 3, 12, 1568, 7], + ["invoke", 16, 12, 1568, 7], + ["access", 12, "wary_true", 1569, 22], + ["get", 14, 66, 1, 1569, 7], + ["frame", 15, 14, 3, 1569, 7], ["stone_text", 12], - ["setarg", 15, 1, 12, 1305, 7], - ["setarg", 15, 2, 13, 1305, 7], - ["setarg", 15, 3, 3, 1305, 7], - ["invoke", 15, 12, 1305, 7], - ["access", 12, -1, 1306, 36], - ["get", 14, 97, 1, 1306, 20], - ["frame", 15, 14, 2, 1306, 20], - ["setarg", 15, 1, 7, 1306, 20], - ["setarg", 15, 2, 12, 1306, 20], - ["invoke", 15, 12, 1306, 20], - ["move", 9, 12, 1306, 20], - ["access", 14, "move", 1307, 14], - ["get", 15, 55, 1, 1307, 7], - ["frame", 16, 15, 3, 1307, 7], + ["setarg", 15, 1, 12, 1569, 7], + ["setarg", 15, 2, 13, 1569, 7], + ["setarg", 15, 3, 3, 1569, 7], + ["invoke", 15, 12, 1569, 7], + ["access", 12, -1, 1570, 36], + ["get", 14, 101, 1, 1570, 20], + ["frame", 15, 14, 2, 1570, 20], + ["setarg", 15, 1, 7, 1570, 20], + ["setarg", 15, 2, 12, 1570, 20], + ["invoke", 15, 12, 1570, 20], + ["move", 9, 12, 1570, 20], + ["access", 14, "move", 1571, 14], + ["get", 15, 57, 1, 1571, 7], + ["frame", 16, 15, 3, 1571, 7], ["stone_text", 14], - ["setarg", 16, 1, 14, 1307, 7], - ["setarg", 16, 2, 13, 1307, 7], - ["setarg", 16, 3, 12, 1307, 7], - ["invoke", 16, 12, 1307, 7], - ["get", 12, 52, 1, 1308, 7], - ["frame", 14, 12, 1, 1308, 7], - ["setarg", 14, 1, 3, 1308, 7], - ["invoke", 14, 3, 1308, 7], - ["return", 13, 1309, 14], + ["setarg", 16, 1, 14, 1571, 7], + ["setarg", 16, 2, 13, 1571, 7], + ["setarg", 16, 3, 12, 1571, 7], + ["invoke", 16, 12, 1571, 7], + ["get", 12, 54, 1, 1572, 7], + ["frame", 14, 12, 1, 1572, 7], + ["setarg", 14, 1, 3, 1572, 7], + ["invoke", 14, 3, 1572, 7], + ["return", 13, 1573, 14], "_nop_ur_2", - "if_else_255", - "if_end_256", - ["access", 3, "??", 1312, 17], - ["eq", 12, 4, 3, 1312, 17], - ["jump_false", 12, "if_else_257", 1312, 17], - ["access", 3, "nullish_end", 1313, 29], - ["get", 12, 49, 1, 1313, 19], - ["frame", 13, 12, 1, 1313, 19], + "if_else_232", + "if_end_233", + ["access", 3, "??", 1576, 17], + ["eq", 12, 4, 3, 1576, 17], + ["jump_false", 12, "if_else_234", 1576, 17], + ["access", 3, "nullish_end", 1577, 29], + ["get", 12, 51, 1, 1577, 19], + ["frame", 13, 12, 1, 1577, 19], ["stone_text", 3], - ["setarg", 13, 1, 3, 1313, 19], - ["invoke", 13, 3, 1313, 19], - ["move", 5, 3, 1313, 19], - ["access", 5, -1, 1314, 34], - ["get", 12, 97, 1, 1314, 19], - ["frame", 13, 12, 2, 1314, 19], - ["setarg", 13, 1, 6, 1314, 19], - ["setarg", 13, 2, 5, 1314, 19], - ["invoke", 13, 5, 1314, 19], - ["move", 8, 5, 1314, 19], - ["get", 12, 44, 1, 1315, 14], - ["frame", 13, 12, 0, 1315, 14], - ["invoke", 13, 12, 1315, 14], - ["move", 10, 12, 1315, 14], - ["access", 13, "move", 1316, 14], - ["get", 14, 55, 1, 1316, 7], - ["frame", 15, 14, 3, 1316, 7], + ["setarg", 13, 1, 3, 1577, 19], + ["invoke", 13, 3, 1577, 19], + ["move", 5, 3, 1577, 19], + ["access", 5, -1, 1578, 34], + ["get", 12, 101, 1, 1578, 19], + ["frame", 13, 12, 2, 1578, 19], + ["setarg", 13, 1, 6, 1578, 19], + ["setarg", 13, 2, 5, 1578, 19], + ["invoke", 13, 5, 1578, 19], + ["move", 8, 5, 1578, 19], + ["get", 12, 46, 1, 1579, 14], + ["frame", 13, 12, 0, 1579, 14], + ["invoke", 13, 12, 1579, 14], + ["move", 10, 12, 1579, 14], + ["access", 13, "move", 1580, 14], + ["get", 14, 57, 1, 1580, 7], + ["frame", 15, 14, 3, 1580, 7], ["stone_text", 13], - ["setarg", 15, 1, 13, 1316, 7], - ["setarg", 15, 2, 12, 1316, 7], - ["setarg", 15, 3, 5, 1316, 7], - ["invoke", 15, 5, 1316, 7], - ["access", 5, "jump_not_null", 1317, 22], - ["get", 13, 64, 1, 1317, 7], - ["frame", 14, 13, 3, 1317, 7], + ["setarg", 15, 1, 13, 1580, 7], + ["setarg", 15, 2, 12, 1580, 7], + ["setarg", 15, 3, 5, 1580, 7], + ["invoke", 15, 5, 1580, 7], + ["access", 5, "jump_not_null", 1581, 22], + ["get", 13, 66, 1, 1581, 7], + ["frame", 14, 13, 3, 1581, 7], ["stone_text", 5], - ["setarg", 14, 1, 5, 1317, 7], - ["setarg", 14, 2, 12, 1317, 7], - ["setarg", 14, 3, 3, 1317, 7], - ["invoke", 14, 5, 1317, 7], - ["access", 5, -1, 1318, 36], - ["get", 13, 97, 1, 1318, 20], - ["frame", 14, 13, 2, 1318, 20], - ["setarg", 14, 1, 7, 1318, 20], - ["setarg", 14, 2, 5, 1318, 20], - ["invoke", 14, 5, 1318, 20], - ["move", 9, 5, 1318, 20], - ["access", 13, "move", 1319, 14], - ["get", 14, 55, 1, 1319, 7], - ["frame", 15, 14, 3, 1319, 7], + ["setarg", 14, 1, 5, 1581, 7], + ["setarg", 14, 2, 12, 1581, 7], + ["setarg", 14, 3, 3, 1581, 7], + ["invoke", 14, 5, 1581, 7], + ["access", 5, -1, 1582, 36], + ["get", 13, 101, 1, 1582, 20], + ["frame", 14, 13, 2, 1582, 20], + ["setarg", 14, 1, 7, 1582, 20], + ["setarg", 14, 2, 5, 1582, 20], + ["invoke", 14, 5, 1582, 20], + ["move", 9, 5, 1582, 20], + ["access", 13, "move", 1583, 14], + ["get", 14, 57, 1, 1583, 7], + ["frame", 15, 14, 3, 1583, 7], ["stone_text", 13], - ["setarg", 15, 1, 13, 1319, 7], - ["setarg", 15, 2, 12, 1319, 7], - ["setarg", 15, 3, 5, 1319, 7], - ["invoke", 15, 5, 1319, 7], - ["get", 5, 52, 1, 1320, 7], - ["frame", 13, 5, 1, 1320, 7], - ["setarg", 13, 1, 3, 1320, 7], - ["invoke", 13, 3, 1320, 7], - ["return", 12, 1321, 14], + ["setarg", 15, 1, 13, 1583, 7], + ["setarg", 15, 2, 12, 1583, 7], + ["setarg", 15, 3, 5, 1583, 7], + ["invoke", 15, 5, 1583, 7], + ["get", 5, 54, 1, 1584, 7], + ["frame", 13, 5, 1, 1584, 7], + ["setarg", 13, 1, 3, 1584, 7], + ["invoke", 13, 3, 1584, 7], + ["return", 12, 1585, 14], "_nop_ur_3", - "if_else_257", - "if_end_258", - ["access", 3, ",", 1325, 17], - ["eq", 5, 4, 3, 1325, 17], - ["jump_false", 5, "if_else_259", 1325, 17], - ["access", 3, -1, 1326, 22], - ["get", 5, 97, 1, 1326, 7], - ["frame", 12, 5, 2, 1326, 7], - ["setarg", 12, 1, 6, 1326, 7], - ["setarg", 12, 2, 3, 1326, 7], - ["invoke", 12, 3, 1326, 7], - ["access", 3, -1, 1327, 30], - ["get", 5, 97, 1, 1327, 14], - ["frame", 12, 5, 2, 1327, 14], - ["setarg", 12, 1, 7, 1327, 14], - ["setarg", 12, 2, 3, 1327, 14], - ["tail_invoke", 12, 3, 1327, 14], - ["return", 3, 1327, 14], + "if_else_234", + "if_end_235", + ["access", 3, ",", 1589, 17], + ["eq", 5, 4, 3, 1589, 17], + ["jump_false", 5, "if_else_236", 1589, 17], + ["access", 3, -1, 1590, 22], + ["get", 5, 101, 1, 1590, 7], + ["frame", 12, 5, 2, 1590, 7], + ["setarg", 12, 1, 6, 1590, 7], + ["setarg", 12, 2, 3, 1590, 7], + ["invoke", 12, 3, 1590, 7], + ["access", 3, -1, 1591, 30], + ["get", 5, 101, 1, 1591, 14], + ["frame", 12, 5, 2, 1591, 14], + ["setarg", 12, 1, 7, 1591, 14], + ["setarg", 12, 2, 3, 1591, 14], + ["tail_invoke", 12, 3, 1591, 14], + ["return", 3, 1591, 14], "_nop_ur_4", - "if_else_259", - "if_end_260", - ["access", 3, -1, 1331, 32], - ["get", 5, 97, 1, 1331, 17], - ["frame", 12, 5, 2, 1331, 17], - ["setarg", 12, 1, 6, 1331, 17], - ["setarg", 12, 2, 3, 1331, 17], - ["invoke", 12, 3, 1331, 17], - ["move", 8, 3, 1331, 17], - ["access", 3, -1, 1332, 34], - ["get", 5, 97, 1, 1332, 18], - ["frame", 12, 5, 2, 1332, 18], - ["setarg", 12, 1, 7, 1332, 18], - ["setarg", 12, 2, 3, 1332, 18], - ["invoke", 12, 3, 1332, 18], - ["move", 9, 3, 1332, 18], - ["access", 3, 0, 1336, 23], - ["ge", 5, 2, 3, 1336, 23], - ["move", 3, 5, 1336, 23], - ["jump_false", 5, "and_end_263", 1336, 23], - ["access", 5, "+", 1336, 37], - ["ne", 12, 4, 5, 1336, 37], - ["move", 5, 12, 1336, 37], - ["jump_true", 12, "or_end_264", 1336, 37], - ["eq", 12, 2, 8, 1336, 54], - ["move", 5, 12, 1336, 54], - "or_end_264", - ["move", 3, 5, 1336, 54], - "and_end_263", - ["jump_false", 3, "tern_else_261", 1336, 54], - ["move", 3, 2, 1336, 68], - ["jump", "tern_end_262", 1336, 68], - "tern_else_261", - ["get", 5, 44, 1, 1336, 77], - ["frame", 12, 5, 0, 1336, 77], - ["invoke", 12, 5, 1336, 77], - ["move", 3, 5, 1336, 77], - "tern_end_262", - ["move", 10, 3, 1336, 77], - ["get", 3, 3, 1, 1337, 10], - ["load_dynamic", 5, 3, 4, 1337, 20], - ["move", 11, 5, 1337, 20], - ["null", 3, 1338, 15], - ["eq", 4, 5, 3, 1338, 15], - ["jump_false", 4, "if_else_265", 1338, 15], - ["access", 11, "add", 1339, 12], - ["jump", "if_end_266", 1339, 12], - "if_else_265", - "if_end_266", - ["put", 6, 38, 1, 1341, 14], - ["put", 7, 39, 1, 1342, 14], - ["get", 3, 77, 1, 1343, 5], - ["frame", 4, 3, 4, 1343, 5], + "if_else_236", + "if_end_237", + ["access", 3, -1, 1595, 32], + ["get", 5, 101, 1, 1595, 17], + ["frame", 12, 5, 2, 1595, 17], + ["setarg", 12, 1, 6, 1595, 17], + ["setarg", 12, 2, 3, 1595, 17], + ["invoke", 12, 3, 1595, 17], + ["move", 8, 3, 1595, 17], + ["access", 3, -1, 1596, 34], + ["get", 5, 101, 1, 1596, 18], + ["frame", 12, 5, 2, 1596, 18], + ["setarg", 12, 1, 7, 1596, 18], + ["setarg", 12, 2, 3, 1596, 18], + ["invoke", 12, 3, 1596, 18], + ["move", 9, 3, 1596, 18], + ["access", 3, 0, 1600, 23], + ["ge", 5, 2, 3, 1600, 23], + ["move", 3, 5, 1600, 23], + ["jump_false", 5, "and_end_240", 1600, 23], + ["access", 5, "+", 1600, 37], + ["ne", 12, 4, 5, 1600, 37], + ["move", 5, 12, 1600, 37], + ["jump_true", 12, "or_end_241", 1600, 37], + ["eq", 12, 2, 8, 1600, 54], + ["move", 5, 12, 1600, 54], + "or_end_241", + ["move", 3, 5, 1600, 54], + "and_end_240", + ["jump_false", 3, "tern_else_238", 1600, 54], + ["move", 3, 2, 1600, 68], + ["jump", "tern_end_239", 1600, 68], + "tern_else_238", + ["get", 5, 46, 1, 1600, 77], + ["frame", 12, 5, 0, 1600, 77], + ["invoke", 12, 5, 1600, 77], + ["move", 3, 5, 1600, 77], + "tern_end_239", + ["move", 10, 3, 1600, 77], + ["get", 3, 3, 1, 1601, 10], + ["load_dynamic", 5, 3, 4, 1601, 20], + ["move", 11, 5, 1601, 20], + ["null", 3, 1602, 15], + ["eq", 4, 5, 3, 1602, 15], + ["jump_false", 4, "if_else_242", 1602, 15], + ["access", 11, "add", 1603, 12], + ["jump", "if_end_243", 1603, 12], + "if_else_242", + "if_end_243", + ["put", 6, 40, 1, 1605, 14], + ["put", 7, 41, 1, 1606, 14], + ["get", 3, 79, 1, 1607, 5], + ["frame", 4, 3, 4, 1607, 5], ["stone_text", 11], - ["setarg", 4, 1, 11, 1343, 5], - ["setarg", 4, 2, 10, 1343, 5], - ["setarg", 4, 3, 8, 1343, 5], - ["setarg", 4, 4, 9, 1343, 5], - ["invoke", 4, 3, 1343, 5], - ["return", 10, 1344, 12], + ["setarg", 4, 1, 11, 1607, 5], + ["setarg", 4, 2, 10, 1607, 5], + ["setarg", 4, 3, 8, 1607, 5], + ["setarg", 4, 4, 9, 1607, 5], + ["invoke", 4, 3, 1607, 5], + ["return", 10, 1608, 12], "_nop_ur_5", "_nop_ur_6" ], @@ -7457,93 +8247,91 @@ "nr_slots": 25, "nr_close_slots": 0, "instructions": [ - ["load_field", 3, 1, "left", 1352, 16], - ["move", 4, 3, 1352, 16], - ["load_field", 5, 1, "right", 1353, 17], - ["move", 6, 5, 1353, 17], - ["load_field", 5, 3, "kind", 1354, 21], - ["move", 3, 5, 1354, 21], - ["null", 7, 1355, 16], - ["access", 8, 0, 1356, 17], - ["access", 9, 0, 1357, 21], - ["access", 10, 0, 1358, 17], - ["access", 11, 0, 1359, 15], - ["null", 12, 1360, 18], - ["access", 13, 0, 1361, 17], - ["access", 14, 0, 1362, 22], - ["access", 15, 0, 1363, 16], - ["null", 16, 1364, 15], - ["null", 17, 1365, 16], - ["access", 18, 0, 1366, 20], - ["access", 19, 0, 1367, 19], - ["null", 20, 1368, 20], - ["access", 21, 0, 1369, 20], - ["access", 22, "name", 1371, 22], - ["eq", 23, 5, 22, 1371, 22], - ["jump_false", 23, "if_else_267", 1371, 22], - ["load_field", 5, 4, "name", 1372, 14], - ["move", 7, 5, 1372, 14], - ["load_field", 5, 4, "level", 1373, 15], - ["move", 8, 5, 1373, 15], - ["null", 22, 1374, 20], - ["eq", 23, 5, 22, 1374, 20], - ["jump_false", 23, "if_else_269", 1374, 20], - ["access", 8, -1, 1375, 17], - ["jump", "if_end_270", 1375, 17], - "if_else_269", - "if_end_270", - ["get", 5, 44, 1, 1377, 19], - ["frame", 22, 5, 0, 1377, 19], - ["invoke", 22, 5, 1377, 19], - ["move", 9, 5, 1377, 19], - ["access", 5, 0, 1378, 20], - ["eq", 22, 8, 5, 1378, 20], - ["move", 5, 22, 1378, 20], - ["jump_true", 22, "or_end_273", 1378, 20], - ["access", 22, -1, 1378, 34], - ["eq", 23, 8, 22, 1378, 34], - ["move", 5, 23, 1378, 34], - "or_end_273", - ["jump_false", 5, "if_else_271", 1378, 34], - ["get", 5, 46, 1, 1379, 17], - ["frame", 22, 5, 1, 1379, 17], - ["setarg", 22, 1, 7, 1379, 17], - ["invoke", 22, 5, 1379, 17], - ["move", 10, 5, 1379, 17], - ["access", 22, 0, 1380, 22], - ["ge", 23, 5, 22, 1380, 22], - ["jump_false", 23, "if_else_274", 1380, 22], - ["access", 5, "move", 1381, 18], - ["get", 22, 55, 1, 1381, 11], - ["frame", 23, 22, 3, 1381, 11], + ["load_field", 3, 1, "left", 1616, 16], + ["move", 4, 3, 1616, 16], + ["load_field", 5, 1, "right", 1617, 17], + ["move", 6, 5, 1617, 17], + ["load_field", 5, 3, "kind", 1618, 21], + ["move", 3, 5, 1618, 21], + ["null", 7, 1619, 16], + ["access", 8, 0, 1620, 17], + ["access", 9, 0, 1621, 21], + ["access", 10, 0, 1622, 17], + ["access", 11, 0, 1623, 15], + ["null", 12, 1624, 18], + ["access", 13, 0, 1625, 17], + ["access", 14, 0, 1626, 22], + ["access", 15, 0, 1627, 16], + ["null", 16, 1628, 15], + ["null", 17, 1629, 16], + ["access", 18, 0, 1630, 20], + ["access", 19, 0, 1631, 19], + ["null", 20, 1632, 20], + ["access", 21, 0, 1633, 20], + ["access", 22, "name", 1635, 22], + ["eq", 23, 5, 22, 1635, 22], + ["jump_false", 23, "if_else_244", 1635, 22], + ["load_field", 5, 4, "name", 1636, 14], + ["move", 7, 5, 1636, 14], + ["load_field", 5, 4, "level", 1637, 15], + ["move", 8, 5, 1637, 15], + ["null", 22, 1638, 20], + ["eq", 23, 5, 22, 1638, 20], + ["jump_false", 23, "if_else_246", 1638, 20], + ["access", 8, -1, 1639, 17], + ["jump", "if_end_247", 1639, 17], + "if_else_246", + "if_end_247", + ["get", 5, 46, 1, 1641, 19], + ["frame", 22, 5, 0, 1641, 19], + ["invoke", 22, 5, 1641, 19], + ["move", 9, 5, 1641, 19], + ["access", 5, 0, 1642, 20], + ["eq", 22, 8, 5, 1642, 20], + ["move", 5, 22, 1642, 20], + ["jump_true", 22, "or_end_250", 1642, 20], + ["access", 22, -1, 1642, 34], + ["eq", 23, 8, 22, 1642, 34], + ["move", 5, 23, 1642, 34], + "or_end_250", + ["jump_false", 5, "if_else_248", 1642, 34], + ["get", 5, 48, 1, 1643, 17], + ["frame", 22, 5, 1, 1643, 17], + ["setarg", 22, 1, 7, 1643, 17], + ["invoke", 22, 5, 1643, 17], + ["move", 10, 5, 1643, 17], + ["access", 22, 0, 1644, 22], + ["ge", 23, 5, 22, 1644, 22], + ["jump_false", 23, "if_else_251", 1644, 22], + ["access", 5, "move", 1645, 18], + ["get", 22, 57, 1, 1645, 11], + ["frame", 23, 22, 3, 1645, 11], ["stone_text", 5], - ["setarg", 23, 1, 5, 1381, 11], - ["setarg", 23, 2, 9, 1381, 11], - ["setarg", 23, 3, 10, 1381, 11], - ["invoke", 23, 5, 1381, 11], - ["access", 8, 0, 1382, 19], - ["jump", "if_end_275", 1382, 19], - "if_else_274", - "if_end_275", - ["jump", "if_end_272", 1382, 19], - "if_else_271", - "if_end_272", - ["access", 5, 0, 1385, 19], - ["gt", 22, 8, 5, 1385, 19], - ["jump_false", 22, "if_else_276", 1385, 19], - ["access", 5, 1, 1386, 23], - ["subtract", 11, 8, 5, 1386, 23], - ["get", 5, 109, 1, 1387, 18], - ["get", 22, 109, 1, 1387, 39], - ["length", 23, 22, 1387, 39], - ["access", 22, 1, 1387, 56], + ["setarg", 23, 1, 5, 1645, 11], + ["setarg", 23, 2, 9, 1645, 11], + ["setarg", 23, 3, 10, 1645, 11], + ["invoke", 23, 5, 1645, 11], + ["access", 8, 0, 1646, 19], + ["jump", "if_end_252", 1646, 19], + "if_else_251", + "if_end_252", + ["jump", "if_end_249", 1646, 19], + "if_else_248", + "if_end_249", + ["access", 5, 0, 1649, 19], + ["gt", 22, 8, 5, 1649, 19], + ["jump_false", 22, "if_else_253", 1649, 19], + ["access", 5, 1, 1650, 23], + ["subtract", 11, 8, 5, 1650, 23], + ["get", 5, 119, 1, 1651, 18], + ["get", 22, 119, 1, 1651, 39], + ["length", 23, 22, 1651, 39], + ["access", 22, 1, 1651, 56], "_nop_tc_1", "_nop_tc_2", - "_nop_tc_3", - "_nop_tc_4", - ["subtract", 24, 23, 22, 1387, 56], - ["jump", "num_done_279", 1387, 56], - "num_err_278", + ["subtract", 24, 23, 22, 1651, 56], + ["jump", "num_done_256", 1651, 56], + "num_err_255", "_nop_ucfg_1", "_nop_ucfg_2", "_nop_ucfg_3", @@ -7556,271 +8344,254 @@ "_nop_ucfg_10", "_nop_ucfg_11", "_nop_ucfg_12", - "num_done_279", - ["subtract", 22, 24, 11, 1387, 60], - ["load_index", 23, 5, 22, 1387, 60], - ["move", 12, 23, 1387, 60], - ["get", 5, 92, 1, 1388, 17], - ["frame", 22, 5, 2, 1388, 17], - ["setarg", 22, 1, 23, 1388, 17], - ["setarg", 22, 2, 7, 1388, 17], - ["invoke", 22, 5, 1388, 17], - ["move", 13, 5, 1388, 17], - ["access", 22, "get", 1389, 16], - ["get", 23, 56, 1, 1389, 9], - ["frame", 24, 23, 4, 1389, 9], + "num_done_256", + ["subtract", 22, 24, 11, 1651, 60], + ["load_index", 23, 5, 22, 1651, 60], + ["move", 12, 23, 1651, 60], + ["get", 5, 94, 1, 1652, 17], + ["frame", 22, 5, 2, 1652, 17], + ["setarg", 22, 1, 23, 1652, 17], + ["setarg", 22, 2, 7, 1652, 17], + ["invoke", 22, 5, 1652, 17], + ["move", 13, 5, 1652, 17], + ["access", 22, "get", 1653, 16], + ["get", 23, 58, 1, 1653, 9], + ["frame", 24, 23, 4, 1653, 9], ["stone_text", 22], - ["setarg", 24, 1, 22, 1389, 9], - ["setarg", 24, 2, 9, 1389, 9], - ["setarg", 24, 3, 5, 1389, 9], - ["setarg", 24, 4, 8, 1389, 9], - ["invoke", 24, 5, 1389, 9], - ["jump", "if_end_277", 1389, 9], - "if_else_276", - ["access", 5, -1, 1390, 27], - ["eq", 22, 8, 5, 1390, 27], - ["jump_false", 22, "if_else_280", 1390, 27], - ["get", 5, 107, 1, 1391, 9], - ["frame", 22, 5, 2, 1391, 9], - ["setarg", 22, 1, 9, 1391, 9], - ["setarg", 22, 2, 7, 1391, 9], - ["invoke", 22, 5, 1391, 9], - ["jump", "if_end_281", 1391, 9], - "if_else_280", - "if_end_281", - "if_end_277", - ["access", 5, -1, 1393, 36], - ["get", 22, 97, 1, 1393, 20], - ["frame", 23, 22, 2, 1393, 20], - ["setarg", 23, 1, 6, 1393, 20], - ["setarg", 23, 2, 5, 1393, 20], - ["invoke", 23, 5, 1393, 20], - ["move", 14, 5, 1393, 20], - ["get", 22, 44, 1, 1394, 14], - ["frame", 23, 22, 0, 1394, 14], - ["invoke", 23, 22, 1394, 14], - ["move", 15, 22, 1394, 14], - ["null", 23, 1395, 16], - ["put", 23, 38, 1, 1395, 16], - ["put", 6, 39, 1, 1396, 16], - ["get", 23, 77, 1, 1397, 7], - ["frame", 24, 23, 4, 1397, 7], - ["setarg", 24, 1, 2, 1397, 7], - ["setarg", 24, 2, 22, 1397, 7], - ["setarg", 24, 3, 9, 1397, 7], - ["setarg", 24, 4, 5, 1397, 7], - ["invoke", 24, 5, 1397, 7], - ["access", 5, 0, 1398, 20], - ["eq", 9, 8, 5, 1398, 20], - ["jump_false", 9, "if_else_282", 1398, 20], - ["get", 5, 46, 1, 1399, 17], - ["frame", 9, 5, 1, 1399, 17], - ["setarg", 9, 1, 7, 1399, 17], - ["invoke", 9, 5, 1399, 17], - ["move", 10, 5, 1399, 17], - ["access", 9, 0, 1400, 22], - ["ge", 22, 5, 9, 1400, 22], - ["jump_false", 22, "if_else_284", 1400, 22], - ["access", 5, "move", 1401, 18], - ["get", 9, 55, 1, 1401, 11], - ["frame", 22, 9, 3, 1401, 11], + ["setarg", 24, 1, 22, 1653, 9], + ["setarg", 24, 2, 9, 1653, 9], + ["setarg", 24, 3, 5, 1653, 9], + ["setarg", 24, 4, 8, 1653, 9], + ["invoke", 24, 5, 1653, 9], + ["jump", "if_end_254", 1653, 9], + "if_else_253", + ["access", 5, -1, 1654, 27], + ["eq", 22, 8, 5, 1654, 27], + ["jump_false", 22, "if_else_257", 1654, 27], + ["get", 5, 117, 1, 1655, 9], + ["frame", 22, 5, 2, 1655, 9], + ["setarg", 22, 1, 9, 1655, 9], + ["setarg", 22, 2, 7, 1655, 9], + ["invoke", 22, 5, 1655, 9], + ["jump", "if_end_258", 1655, 9], + "if_else_257", + "if_end_258", + "if_end_254", + ["access", 5, -1, 1657, 36], + ["get", 22, 101, 1, 1657, 20], + ["frame", 23, 22, 2, 1657, 20], + ["setarg", 23, 1, 6, 1657, 20], + ["setarg", 23, 2, 5, 1657, 20], + ["invoke", 23, 5, 1657, 20], + ["move", 14, 5, 1657, 20], + ["get", 22, 46, 1, 1658, 14], + ["frame", 23, 22, 0, 1658, 14], + ["invoke", 23, 22, 1658, 14], + ["move", 15, 22, 1658, 14], + ["null", 23, 1659, 16], + ["put", 23, 40, 1, 1659, 16], + ["put", 6, 41, 1, 1660, 16], + ["get", 23, 79, 1, 1661, 7], + ["frame", 24, 23, 4, 1661, 7], + ["setarg", 24, 1, 2, 1661, 7], + ["setarg", 24, 2, 22, 1661, 7], + ["setarg", 24, 3, 9, 1661, 7], + ["setarg", 24, 4, 5, 1661, 7], + ["invoke", 24, 5, 1661, 7], + ["access", 5, 0, 1662, 20], + ["eq", 9, 8, 5, 1662, 20], + ["jump_false", 9, "if_else_259", 1662, 20], + ["get", 5, 48, 1, 1663, 17], + ["frame", 9, 5, 1, 1663, 17], + ["setarg", 9, 1, 7, 1663, 17], + ["invoke", 9, 5, 1663, 17], + ["move", 10, 5, 1663, 17], + ["access", 9, 0, 1664, 22], + ["ge", 22, 5, 9, 1664, 22], + ["jump_false", 22, "if_else_261", 1664, 22], + ["access", 5, "move", 1665, 18], + ["get", 9, 57, 1, 1665, 11], + ["frame", 22, 9, 3, 1665, 11], ["stone_text", 5], - ["setarg", 22, 1, 5, 1401, 11], - ["setarg", 22, 2, 10, 1401, 11], - ["setarg", 22, 3, 15, 1401, 11], - ["invoke", 22, 5, 1401, 11], - ["get", 5, 70, 1, 1402, 11], - ["frame", 9, 5, 2, 1402, 11], - ["setarg", 9, 1, 10, 1402, 11], - ["setarg", 9, 2, 15, 1402, 11], - ["invoke", 9, 5, 1402, 11], - ["jump", "if_end_285", 1402, 11], - "if_else_284", - "if_end_285", - ["jump", "if_end_283", 1402, 11], - "if_else_282", - ["access", 5, 0, 1404, 26], - ["gt", 9, 8, 5, 1404, 26], - ["jump_false", 9, "if_else_286", 1404, 26], - ["access", 5, 1, 1405, 23], - ["subtract", 11, 8, 5, 1405, 23], - ["get", 5, 109, 1, 1406, 18], - ["get", 9, 109, 1, 1406, 39], - ["length", 10, 9, 1406, 39], - ["access", 9, 1, 1406, 56], - "_nop_tc_5", - "_nop_tc_6", - "_nop_tc_7", - "_nop_tc_8", - ["subtract", 22, 10, 9, 1406, 56], - ["jump", "num_done_289", 1406, 56], - "num_err_288", - "_nop_ucfg_13", - "_nop_ucfg_14", - "_nop_ucfg_15", - "_nop_ucfg_16", - "_nop_ucfg_17", - "_nop_ucfg_18", - "_nop_ucfg_19", - "_nop_ucfg_20", - "_nop_ucfg_21", - "_nop_ucfg_22", - "_nop_ucfg_23", - "_nop_ucfg_24", - "num_done_289", - ["subtract", 9, 22, 11, 1406, 60], - ["load_index", 10, 5, 9, 1406, 60], - ["move", 12, 10, 1406, 60], - ["get", 5, 92, 1, 1407, 17], - ["frame", 9, 5, 2, 1407, 17], - ["setarg", 9, 1, 10, 1407, 17], - ["setarg", 9, 2, 7, 1407, 17], - ["invoke", 9, 5, 1407, 17], - ["move", 13, 5, 1407, 17], - ["access", 7, "put", 1408, 16], - ["get", 9, 56, 1, 1408, 9], - ["frame", 10, 9, 4, 1408, 9], + ["setarg", 22, 1, 5, 1665, 11], + ["setarg", 22, 2, 10, 1665, 11], + ["setarg", 22, 3, 15, 1665, 11], + ["invoke", 22, 5, 1665, 11], + ["get", 5, 72, 1, 1666, 11], + ["frame", 9, 5, 2, 1666, 11], + ["setarg", 9, 1, 10, 1666, 11], + ["setarg", 9, 2, 15, 1666, 11], + ["invoke", 9, 5, 1666, 11], + ["jump", "if_end_262", 1666, 11], + "if_else_261", + "if_end_262", + ["jump", "if_end_260", 1666, 11], + "if_else_259", + ["access", 5, 0, 1668, 26], + ["gt", 9, 8, 5, 1668, 26], + ["jump_false", 9, "if_else_263", 1668, 26], + ["access", 5, 1, 1669, 23], + ["subtract", 11, 8, 5, 1669, 23], + ["get", 5, 119, 1, 1670, 18], + ["get", 9, 119, 1, 1670, 39], + ["length", 10, 9, 1670, 39], + ["access", 9, 1, 1670, 56], + "_nop_tc_3", + "_nop_tc_4", + ["subtract", 22, 10, 9, 1670, 56], + ["subtract", 9, 22, 11, 1670, 60], + ["load_index", 10, 5, 9, 1670, 60], + ["move", 12, 10, 1670, 60], + ["get", 5, 94, 1, 1671, 17], + ["frame", 9, 5, 2, 1671, 17], + ["setarg", 9, 1, 10, 1671, 17], + ["setarg", 9, 2, 7, 1671, 17], + ["invoke", 9, 5, 1671, 17], + ["move", 13, 5, 1671, 17], + ["access", 7, "put", 1672, 16], + ["get", 9, 58, 1, 1672, 9], + ["frame", 10, 9, 4, 1672, 9], ["stone_text", 7], - ["setarg", 10, 1, 7, 1408, 9], - ["setarg", 10, 2, 15, 1408, 9], - ["setarg", 10, 3, 5, 1408, 9], - ["setarg", 10, 4, 8, 1408, 9], - ["invoke", 10, 5, 1408, 9], - ["jump", "if_end_287", 1408, 9], - "if_else_286", - "if_end_287", - "if_end_283", - ["return", 15, 1410, 14], + ["setarg", 10, 1, 7, 1672, 9], + ["setarg", 10, 2, 15, 1672, 9], + ["setarg", 10, 3, 5, 1672, 9], + ["setarg", 10, 4, 8, 1672, 9], + ["invoke", 10, 5, 1672, 9], + ["jump", "if_end_264", 1672, 9], + "if_else_263", + "if_end_264", + "if_end_260", + ["return", 15, 1674, 14], "_nop_ur_1", - "if_else_267", - ["access", 5, ".", 1411, 29], - ["eq", 7, 3, 5, 1411, 29], - ["jump_false", 7, "if_else_290", 1411, 29], - ["load_field", 5, 4, "left", 1412, 13], - ["move", 16, 5, 1412, 13], - ["load_field", 7, 4, "right", 1413, 14], - ["move", 17, 7, 1413, 14], - ["access", 8, -1, 1414, 32], - ["get", 9, 97, 1, 1414, 18], - ["frame", 10, 9, 2, 1414, 18], - ["setarg", 10, 1, 5, 1414, 18], - ["setarg", 10, 2, 8, 1414, 18], - ["invoke", 10, 5, 1414, 18], - ["move", 18, 5, 1414, 18], - ["get", 8, 44, 1, 1415, 17], - ["frame", 9, 8, 0, 1415, 17], - ["invoke", 9, 8, 1415, 17], - ["move", 19, 8, 1415, 17], - ["get", 9, 78, 1, 1416, 7], - ["frame", 10, 9, 3, 1416, 7], - ["setarg", 10, 1, 8, 1416, 7], - ["setarg", 10, 2, 5, 1416, 7], - ["setarg", 10, 3, 7, 1416, 7], - ["invoke", 10, 9, 1416, 7], - ["access", 9, -1, 1417, 36], - ["get", 10, 97, 1, 1417, 20], - ["frame", 11, 10, 2, 1417, 20], - ["setarg", 11, 1, 6, 1417, 20], - ["setarg", 11, 2, 9, 1417, 20], - ["invoke", 11, 9, 1417, 20], - ["move", 14, 9, 1417, 20], - ["get", 10, 44, 1, 1418, 14], - ["frame", 11, 10, 0, 1418, 14], - ["invoke", 11, 10, 1418, 14], - ["move", 15, 10, 1418, 14], - ["null", 11, 1419, 16], - ["put", 11, 38, 1, 1419, 16], - ["put", 6, 39, 1, 1420, 16], - ["get", 11, 77, 1, 1421, 7], - ["frame", 12, 11, 4, 1421, 7], - ["setarg", 12, 1, 2, 1421, 7], - ["setarg", 12, 2, 10, 1421, 7], - ["setarg", 12, 3, 8, 1421, 7], - ["setarg", 12, 4, 9, 1421, 7], - ["invoke", 12, 8, 1421, 7], - ["get", 8, 79, 1, 1422, 7], - ["frame", 9, 8, 3, 1422, 7], - ["setarg", 9, 1, 5, 1422, 7], - ["setarg", 9, 2, 7, 1422, 7], - ["setarg", 9, 3, 10, 1422, 7], - ["invoke", 9, 5, 1422, 7], - ["return", 10, 1423, 14], + "if_else_244", + ["access", 5, ".", 1675, 29], + ["eq", 7, 3, 5, 1675, 29], + ["jump_false", 7, "if_else_265", 1675, 29], + ["load_field", 5, 4, "left", 1676, 13], + ["move", 16, 5, 1676, 13], + ["load_field", 7, 4, "right", 1677, 14], + ["move", 17, 7, 1677, 14], + ["access", 8, -1, 1678, 32], + ["get", 9, 101, 1, 1678, 18], + ["frame", 10, 9, 2, 1678, 18], + ["setarg", 10, 1, 5, 1678, 18], + ["setarg", 10, 2, 8, 1678, 18], + ["invoke", 10, 5, 1678, 18], + ["move", 18, 5, 1678, 18], + ["get", 8, 46, 1, 1679, 17], + ["frame", 9, 8, 0, 1679, 17], + ["invoke", 9, 8, 1679, 17], + ["move", 19, 8, 1679, 17], + ["get", 9, 80, 1, 1680, 7], + ["frame", 10, 9, 3, 1680, 7], + ["setarg", 10, 1, 8, 1680, 7], + ["setarg", 10, 2, 5, 1680, 7], + ["setarg", 10, 3, 7, 1680, 7], + ["invoke", 10, 9, 1680, 7], + ["access", 9, -1, 1681, 36], + ["get", 10, 101, 1, 1681, 20], + ["frame", 11, 10, 2, 1681, 20], + ["setarg", 11, 1, 6, 1681, 20], + ["setarg", 11, 2, 9, 1681, 20], + ["invoke", 11, 9, 1681, 20], + ["move", 14, 9, 1681, 20], + ["get", 10, 46, 1, 1682, 14], + ["frame", 11, 10, 0, 1682, 14], + ["invoke", 11, 10, 1682, 14], + ["move", 15, 10, 1682, 14], + ["null", 11, 1683, 16], + ["put", 11, 40, 1, 1683, 16], + ["put", 6, 41, 1, 1684, 16], + ["get", 11, 79, 1, 1685, 7], + ["frame", 12, 11, 4, 1685, 7], + ["setarg", 12, 1, 2, 1685, 7], + ["setarg", 12, 2, 10, 1685, 7], + ["setarg", 12, 3, 8, 1685, 7], + ["setarg", 12, 4, 9, 1685, 7], + ["invoke", 12, 8, 1685, 7], + ["get", 8, 81, 1, 1686, 7], + ["frame", 9, 8, 3, 1686, 7], + ["setarg", 9, 1, 5, 1686, 7], + ["setarg", 9, 2, 7, 1686, 7], + ["setarg", 9, 3, 10, 1686, 7], + ["invoke", 9, 5, 1686, 7], + ["return", 10, 1687, 14], "_nop_ur_2", - "if_else_290", - ["access", 5, "[", 1424, 29], - ["eq", 7, 3, 5, 1424, 29], - ["jump_false", 7, "if_else_292", 1424, 29], - ["load_field", 3, 4, "left", 1425, 13], - ["move", 16, 3, 1425, 13], - ["load_field", 5, 4, "right", 1426, 18], - ["move", 20, 5, 1426, 18], - ["access", 7, -1, 1427, 32], - ["get", 8, 97, 1, 1427, 18], - ["frame", 9, 8, 2, 1427, 18], - ["setarg", 9, 1, 3, 1427, 18], - ["setarg", 9, 2, 7, 1427, 18], - ["invoke", 9, 3, 1427, 18], - ["move", 18, 3, 1427, 18], - ["access", 7, -1, 1428, 37], - ["get", 8, 97, 1, 1428, 18], - ["frame", 9, 8, 2, 1428, 18], - ["setarg", 9, 1, 5, 1428, 18], - ["setarg", 9, 2, 7, 1428, 18], - ["invoke", 9, 5, 1428, 18], - ["move", 21, 5, 1428, 18], - ["get", 7, 44, 1, 1429, 17], - ["frame", 8, 7, 0, 1429, 17], - ["invoke", 8, 7, 1429, 17], - ["move", 19, 7, 1429, 17], - ["load_field", 8, 4, "access_kind", 1430, 50], - ["get", 9, 80, 1, 1430, 7], - ["frame", 10, 9, 4, 1430, 7], - ["setarg", 10, 1, 7, 1430, 7], - ["setarg", 10, 2, 3, 1430, 7], - ["setarg", 10, 3, 5, 1430, 7], - ["setarg", 10, 4, 8, 1430, 7], - ["invoke", 10, 8, 1430, 7], - ["access", 8, -1, 1431, 36], - ["get", 9, 97, 1, 1431, 20], - ["frame", 10, 9, 2, 1431, 20], - ["setarg", 10, 1, 6, 1431, 20], - ["setarg", 10, 2, 8, 1431, 20], - ["invoke", 10, 8, 1431, 20], - ["move", 14, 8, 1431, 20], - ["get", 9, 44, 1, 1432, 14], - ["frame", 10, 9, 0, 1432, 14], - ["invoke", 10, 9, 1432, 14], - ["move", 15, 9, 1432, 14], - ["null", 10, 1433, 16], - ["put", 10, 38, 1, 1433, 16], - ["put", 6, 39, 1, 1434, 16], - ["get", 6, 77, 1, 1435, 7], - ["frame", 10, 6, 4, 1435, 7], - ["setarg", 10, 1, 2, 1435, 7], - ["setarg", 10, 2, 9, 1435, 7], - ["setarg", 10, 3, 7, 1435, 7], - ["setarg", 10, 4, 8, 1435, 7], - ["invoke", 10, 6, 1435, 7], - ["load_field", 6, 4, "access_kind", 1436, 47], - ["get", 4, 81, 1, 1436, 7], - ["frame", 7, 4, 4, 1436, 7], - ["setarg", 7, 1, 3, 1436, 7], - ["setarg", 7, 2, 5, 1436, 7], - ["setarg", 7, 3, 9, 1436, 7], - ["setarg", 7, 4, 6, 1436, 7], - ["invoke", 7, 3, 1436, 7], - ["return", 9, 1437, 14], + "if_else_265", + ["access", 5, "[", 1688, 29], + ["eq", 7, 3, 5, 1688, 29], + ["jump_false", 7, "if_else_267", 1688, 29], + ["load_field", 3, 4, "left", 1689, 13], + ["move", 16, 3, 1689, 13], + ["load_field", 5, 4, "right", 1690, 18], + ["move", 20, 5, 1690, 18], + ["access", 7, -1, 1691, 32], + ["get", 8, 101, 1, 1691, 18], + ["frame", 9, 8, 2, 1691, 18], + ["setarg", 9, 1, 3, 1691, 18], + ["setarg", 9, 2, 7, 1691, 18], + ["invoke", 9, 3, 1691, 18], + ["move", 18, 3, 1691, 18], + ["access", 7, -1, 1692, 37], + ["get", 8, 101, 1, 1692, 18], + ["frame", 9, 8, 2, 1692, 18], + ["setarg", 9, 1, 5, 1692, 18], + ["setarg", 9, 2, 7, 1692, 18], + ["invoke", 9, 5, 1692, 18], + ["move", 21, 5, 1692, 18], + ["get", 7, 46, 1, 1693, 17], + ["frame", 8, 7, 0, 1693, 17], + ["invoke", 8, 7, 1693, 17], + ["move", 19, 7, 1693, 17], + ["load_field", 8, 4, "access_kind", 1694, 50], + ["get", 9, 82, 1, 1694, 7], + ["frame", 10, 9, 4, 1694, 7], + ["setarg", 10, 1, 7, 1694, 7], + ["setarg", 10, 2, 3, 1694, 7], + ["setarg", 10, 3, 5, 1694, 7], + ["setarg", 10, 4, 8, 1694, 7], + ["invoke", 10, 8, 1694, 7], + ["access", 8, -1, 1695, 36], + ["get", 9, 101, 1, 1695, 20], + ["frame", 10, 9, 2, 1695, 20], + ["setarg", 10, 1, 6, 1695, 20], + ["setarg", 10, 2, 8, 1695, 20], + ["invoke", 10, 8, 1695, 20], + ["move", 14, 8, 1695, 20], + ["get", 9, 46, 1, 1696, 14], + ["frame", 10, 9, 0, 1696, 14], + ["invoke", 10, 9, 1696, 14], + ["move", 15, 9, 1696, 14], + ["null", 10, 1697, 16], + ["put", 10, 40, 1, 1697, 16], + ["put", 6, 41, 1, 1698, 16], + ["get", 6, 79, 1, 1699, 7], + ["frame", 10, 6, 4, 1699, 7], + ["setarg", 10, 1, 2, 1699, 7], + ["setarg", 10, 2, 9, 1699, 7], + ["setarg", 10, 3, 7, 1699, 7], + ["setarg", 10, 4, 8, 1699, 7], + ["invoke", 10, 6, 1699, 7], + ["load_field", 6, 4, "access_kind", 1700, 47], + ["get", 4, 83, 1, 1700, 7], + ["frame", 7, 4, 4, 1700, 7], + ["setarg", 7, 1, 3, 1700, 7], + ["setarg", 7, 2, 5, 1700, 7], + ["setarg", 7, 3, 9, 1700, 7], + ["setarg", 7, 4, 6, 1700, 7], + ["invoke", 7, 3, 1700, 7], + ["return", 9, 1701, 14], "_nop_ur_3", - "if_else_292", - "if_end_293", - "if_end_291", + "if_else_267", "if_end_268", - ["access", 3, -1, 1439, 12], - ["return", 3, 1439, 12], + "if_end_266", + "if_end_245", + ["access", 3, -1, 1703, 12], + ["return", 3, 1703, 12], "_nop_ur_4", "_nop_ur_5" ], - "_write_types": [null, null, null, "int", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "text", "bool", null, null, "null", "bool", null, null, null, "int", "bool", "bool", "int", "bool", null, null, null, "int", "bool", "text", null, null, null, "int", "bool", "int", null, null, "int", "int", "int", null, null, null, null, null, null, null, null, null, "int", null, null, null, null, "text", null, null, null, "int", "bool", null, null, null, "int", null, null, null, null, null, null, "null", null, null, null, "int", "bool", null, null, null, "int", "bool", "text", null, null, null, null, null, null, "int", "bool", "int", null, null, "int", "int", "int", null, null, null, null, null, null, null, null, null, "int", null, null, null, null, "text", null, null, null, "text", "bool", null, null, "int", null, null, null, null, null, null, null, null, null, "int", null, null, null, null, null, null, "null", null, null, null, null, null, null, "text", "bool", null, null, "int", null, null, null, "int", null, null, null, null, null, null, null, null, null, null, "int", null, null, null, null, null, null, "null", null, null, null, null, null, null, null, "int", null], + "_write_types": [null, null, null, "int", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "text", "bool", null, null, "null", "bool", null, null, null, "int", "bool", "bool", "int", "bool", null, null, null, "int", "bool", "text", null, null, null, "int", "bool", "int", null, null, "int", "int", "int", null, null, null, null, null, null, null, null, "int", null, null, null, null, "text", null, null, null, "int", "bool", null, null, null, "int", null, null, null, null, null, null, "null", null, null, null, "int", "bool", null, null, null, "int", "bool", "text", null, null, null, null, null, null, "int", "bool", "int", null, null, "int", "int", "int", null, "int", null, null, null, null, "text", null, null, null, "text", "bool", null, null, "int", null, null, null, null, null, null, null, null, null, "int", null, null, null, null, null, null, "null", null, null, null, null, null, null, "text", "bool", null, null, "int", null, null, null, "int", null, null, null, null, null, null, null, null, null, null, "int", null, null, null, null, null, null, "null", null, null, null, null, null, null, null, "int", null], "name": "", "filename": ".cell/packages/core/mcode.cm", "nr_args": 2 @@ -7831,234 +8602,226 @@ "nr_slots": 26, "nr_close_slots": 0, "instructions": [ - ["load_field", 2, 1, "kind", 1444, 16], - ["move", 3, 2, 1444, 16], - ["load_field", 3, 1, "left", 1445, 16], - ["move", 4, 3, 1445, 16], - ["load_field", 3, 1, "right", 1446, 17], - ["move", 5, 3, 1446, 17], - ["get", 3, 6, 1, 1447, 15], - ["load_dynamic", 6, 3, 2, 1447, 28], - ["move", 2, 6, 1447, 28], - ["null", 3, 1448, 20], - ["access", 7, 0, 1449, 20], - ["access", 8, 0, 1450, 20], - ["null", 9, 1451, 21], - ["null", 10, 1452, 16], - ["access", 11, 0, 1453, 17], - ["access", 12, 0, 1454, 16], - ["access", 13, 0, 1455, 15], - ["null", 14, 1456, 18], - ["access", 15, 0, 1457, 17], - ["null", 16, 1458, 15], - ["null", 17, 1459, 16], - ["access", 18, 0, 1460, 20], - ["null", 19, 1461, 20], - ["access", 20, 0, 1462, 20], - ["access", 21, 0, 1463, 19], - ["null", 22, 1464, 21], - ["null", 23, 1465, 22], - ["null", 24, 1467, 16], - ["ne", 25, 6, 24, 1467, 16], - ["jump_false", 25, "if_else_294", 1467, 16], - ["get", 6, 110, 1, 1468, 14], - ["frame", 24, 6, 2, 1468, 14], - ["setarg", 24, 1, 1, 1468, 14], - ["setarg", 24, 2, 2, 1468, 14], - ["tail_invoke", 24, 2, 1468, 14], - ["return", 2, 1468, 14], + ["load_field", 2, 1, "kind", 1708, 16], + ["move", 3, 2, 1708, 16], + ["load_field", 3, 1, "left", 1709, 16], + ["move", 4, 3, 1709, 16], + ["load_field", 3, 1, "right", 1710, 17], + ["move", 5, 3, 1710, 17], + ["get", 3, 6, 1, 1711, 15], + ["load_dynamic", 6, 3, 2, 1711, 28], + ["move", 2, 6, 1711, 28], + ["null", 3, 1712, 20], + ["access", 7, 0, 1713, 20], + ["access", 8, 0, 1714, 20], + ["null", 9, 1715, 21], + ["null", 10, 1716, 16], + ["access", 11, 0, 1717, 17], + ["access", 12, 0, 1718, 16], + ["access", 13, 0, 1719, 15], + ["null", 14, 1720, 18], + ["access", 15, 0, 1721, 17], + ["null", 16, 1722, 15], + ["null", 17, 1723, 16], + ["access", 18, 0, 1724, 20], + ["null", 19, 1725, 20], + ["access", 20, 0, 1726, 20], + ["access", 21, 0, 1727, 19], + ["null", 22, 1728, 21], + ["null", 23, 1729, 22], + ["null", 24, 1731, 16], + ["ne", 25, 6, 24, 1731, 16], + ["jump_false", 25, "if_else_269", 1731, 16], + ["get", 6, 120, 1, 1732, 14], + ["frame", 24, 6, 2, 1732, 14], + ["setarg", 24, 1, 1, 1732, 14], + ["setarg", 24, 2, 2, 1732, 14], + ["tail_invoke", 24, 2, 1732, 14], + ["return", 2, 1732, 14], "_nop_ur_1", - "if_else_294", - "if_end_295", - ["load_field", 2, 1, "push", 1472, 9], - ["true", 6, 1472, 22], - ["eq", 24, 2, 6, 1472, 22], - ["jump_false", 24, "if_else_296", 1472, 22], - ["load_field", 2, 4, "left", 1473, 18], - ["move", 3, 2, 1473, 18], - ["access", 3, -1, 1474, 37], - ["get", 6, 97, 1, 1474, 18], - ["frame", 24, 6, 2, 1474, 18], - ["setarg", 24, 1, 2, 1474, 18], - ["setarg", 24, 2, 3, 1474, 18], - ["invoke", 24, 2, 1474, 18], - ["move", 7, 2, 1474, 18], - ["access", 3, -1, 1475, 34], - ["get", 6, 97, 1, 1475, 18], - ["frame", 7, 6, 2, 1475, 18], - ["setarg", 7, 1, 5, 1475, 18], - ["setarg", 7, 2, 3, 1475, 18], - ["invoke", 7, 3, 1475, 18], - ["move", 8, 3, 1475, 18], - ["get", 6, 44, 1, 1476, 17], - ["frame", 7, 6, 0, 1476, 17], - ["invoke", 7, 6, 1476, 17], - ["move", 21, 6, 1476, 17], - ["access", 7, "push_err", 1477, 29], - ["get", 21, 49, 1, 1477, 19], - ["frame", 24, 21, 1, 1477, 19], + "if_else_269", + "if_end_270", + ["load_field", 2, 1, "push", 1736, 9], + ["true", 6, 1736, 22], + ["eq", 24, 2, 6, 1736, 22], + ["jump_false", 24, "if_else_271", 1736, 22], + ["load_field", 2, 4, "left", 1737, 18], + ["move", 3, 2, 1737, 18], + ["access", 3, -1, 1738, 37], + ["get", 6, 101, 1, 1738, 18], + ["frame", 24, 6, 2, 1738, 18], + ["setarg", 24, 1, 2, 1738, 18], + ["setarg", 24, 2, 3, 1738, 18], + ["invoke", 24, 2, 1738, 18], + ["move", 7, 2, 1738, 18], + ["access", 3, -1, 1739, 34], + ["get", 6, 101, 1, 1739, 18], + ["frame", 7, 6, 2, 1739, 18], + ["setarg", 7, 1, 5, 1739, 18], + ["setarg", 7, 2, 3, 1739, 18], + ["invoke", 7, 3, 1739, 18], + ["move", 8, 3, 1739, 18], + ["get", 6, 46, 1, 1740, 17], + ["frame", 7, 6, 0, 1740, 17], + ["invoke", 7, 6, 1740, 17], + ["move", 21, 6, 1740, 17], + ["access", 7, "push_err", 1741, 29], + ["get", 21, 51, 1, 1741, 19], + ["frame", 24, 21, 1, 1741, 19], ["stone_text", 7], - ["setarg", 24, 1, 7, 1477, 19], - ["invoke", 24, 7, 1477, 19], - ["move", 22, 7, 1477, 19], - ["access", 21, "push_done", 1478, 30], - ["get", 22, 49, 1, 1478, 20], - ["frame", 24, 22, 1, 1478, 20], + ["setarg", 24, 1, 7, 1741, 19], + ["invoke", 24, 7, 1741, 19], + ["move", 22, 7, 1741, 19], + ["access", 21, "push_done", 1742, 30], + ["get", 22, 51, 1, 1742, 20], + ["frame", 24, 22, 1, 1742, 20], ["stone_text", 21], - ["setarg", 24, 1, 21, 1478, 20], - ["invoke", 24, 21, 1478, 20], - ["move", 23, 21, 1478, 20], - ["access", 22, "is_array", 1479, 14], - ["get", 23, 55, 1, 1479, 7], - ["frame", 24, 23, 3, 1479, 7], + ["setarg", 24, 1, 21, 1742, 20], + ["invoke", 24, 21, 1742, 20], + ["move", 23, 21, 1742, 20], + ["access", 22, "is_array", 1743, 14], + ["get", 23, 57, 1, 1743, 7], + ["frame", 24, 23, 3, 1743, 7], ["stone_text", 22], - ["setarg", 24, 1, 22, 1479, 7], - ["setarg", 24, 2, 6, 1479, 7], - ["setarg", 24, 3, 2, 1479, 7], - ["invoke", 24, 22, 1479, 7], - ["access", 22, "jump_false", 1480, 22], - ["get", 23, 64, 1, 1480, 7], - ["frame", 24, 23, 3, 1480, 7], + ["setarg", 24, 1, 22, 1743, 7], + ["setarg", 24, 2, 6, 1743, 7], + ["setarg", 24, 3, 2, 1743, 7], + ["invoke", 24, 22, 1743, 7], + ["access", 22, "jump_false", 1744, 22], + ["get", 23, 66, 1, 1744, 7], + ["frame", 24, 23, 3, 1744, 7], ["stone_text", 22], - ["setarg", 24, 1, 22, 1480, 7], - ["setarg", 24, 2, 6, 1480, 7], - ["setarg", 24, 3, 7, 1480, 7], - ["invoke", 24, 6, 1480, 7], - ["access", 6, "push", 1481, 14], - ["get", 22, 55, 1, 1481, 7], - ["frame", 23, 22, 3, 1481, 7], + ["setarg", 24, 1, 22, 1744, 7], + ["setarg", 24, 2, 6, 1744, 7], + ["setarg", 24, 3, 7, 1744, 7], + ["invoke", 24, 6, 1744, 7], + ["access", 6, "push", 1745, 14], + ["get", 22, 57, 1, 1745, 7], + ["frame", 23, 22, 3, 1745, 7], ["stone_text", 6], - ["setarg", 23, 1, 6, 1481, 7], - ["setarg", 23, 2, 2, 1481, 7], - ["setarg", 23, 3, 3, 1481, 7], - ["invoke", 23, 2, 1481, 7], - ["get", 2, 63, 1, 1482, 7], - ["frame", 6, 2, 1, 1482, 7], - ["setarg", 6, 1, 21, 1482, 7], - ["invoke", 6, 2, 1482, 7], - ["get", 2, 52, 1, 1483, 7], - ["frame", 6, 2, 1, 1483, 7], - ["setarg", 6, 1, 7, 1483, 7], - ["invoke", 6, 2, 1483, 7], - ["access", 2, "cannot push: target must be an array", 1484, 22], - ["get", 6, 62, 1, 1484, 7], - ["frame", 7, 6, 1, 1484, 7], + ["setarg", 23, 1, 6, 1745, 7], + ["setarg", 23, 2, 2, 1745, 7], + ["setarg", 23, 3, 3, 1745, 7], + ["invoke", 23, 2, 1745, 7], + ["get", 2, 65, 1, 1746, 7], + ["frame", 6, 2, 1, 1746, 7], + ["setarg", 6, 1, 21, 1746, 7], + ["invoke", 6, 2, 1746, 7], + ["get", 2, 54, 1, 1747, 7], + ["frame", 6, 2, 1, 1747, 7], + ["setarg", 6, 1, 7, 1747, 7], + ["invoke", 6, 2, 1747, 7], + ["access", 2, "cannot push: target must be an array", 1748, 22], + ["get", 6, 64, 1, 1748, 7], + ["frame", 7, 6, 1, 1748, 7], ["stone_text", 2], - ["setarg", 7, 1, 2, 1484, 7], - ["invoke", 7, 2, 1484, 7], - ["access", 2, "disrupt", 1485, 14], - ["get", 6, 53, 1, 1485, 7], - ["frame", 7, 6, 1, 1485, 7], + ["setarg", 7, 1, 2, 1748, 7], + ["invoke", 7, 2, 1748, 7], + ["access", 2, "disrupt", 1749, 14], + ["get", 6, 55, 1, 1749, 7], + ["frame", 7, 6, 1, 1749, 7], ["stone_text", 2], - ["setarg", 7, 1, 2, 1485, 7], - ["invoke", 7, 2, 1485, 7], - ["get", 2, 52, 1, 1486, 7], - ["frame", 6, 2, 1, 1486, 7], - ["setarg", 6, 1, 21, 1486, 7], - ["invoke", 6, 2, 1486, 7], - ["return", 3, 1487, 14], + ["setarg", 7, 1, 2, 1749, 7], + ["invoke", 7, 2, 1749, 7], + ["get", 2, 54, 1, 1750, 7], + ["frame", 6, 2, 1, 1750, 7], + ["setarg", 6, 1, 21, 1750, 7], + ["invoke", 6, 2, 1750, 7], + ["return", 3, 1751, 14], "_nop_ur_2", - "if_else_296", - "if_end_297", - ["load_field", 2, 4, "kind", 1490, 17], - ["move", 9, 2, 1490, 17], - ["access", 3, "name", 1493, 22], - ["eq", 6, 2, 3, 1493, 22], - ["jump_false", 6, "if_else_298", 1493, 22], - ["load_field", 2, 4, "name", 1494, 14], - ["move", 10, 2, 1494, 14], - ["load_field", 2, 4, "level", 1495, 15], - ["move", 11, 2, 1495, 15], - ["null", 3, 1496, 20], - ["eq", 6, 2, 3, 1496, 20], - ["jump_false", 6, "if_else_300", 1496, 20], - ["access", 11, -1, 1497, 17], - ["jump", "if_end_301", 1497, 17], - "if_else_300", - "if_end_301", - ["access", 2, 0, 1499, 20], - ["eq", 3, 11, 2, 1499, 20], - ["move", 2, 3, 1499, 20], - ["jump_true", 3, "or_end_304", 1499, 20], - ["access", 3, -1, 1499, 34], - ["eq", 6, 11, 3, 1499, 34], - ["move", 2, 6, 1499, 34], - "or_end_304", - ["jump_false", 2, "if_else_302", 1499, 34], - ["get", 2, 46, 1, 1500, 16], - ["frame", 3, 2, 1, 1500, 16], - ["setarg", 3, 1, 10, 1500, 16], - ["invoke", 3, 2, 1500, 16], - ["move", 12, 2, 1500, 16], - ["access", 3, 0, 1501, 21], - ["ge", 6, 2, 3, 1501, 21], - ["jump_false", 6, "if_else_305", 1501, 21], - ["null", 2, 1502, 27], - ["get", 3, 69, 1, 1502, 11], - ["frame", 6, 3, 2, 1502, 11], - ["setarg", 6, 1, 12, 1502, 11], - ["setarg", 6, 2, 2, 1502, 11], - ["invoke", 6, 2, 1502, 11], - ["get", 2, 97, 1, 1503, 22], - ["frame", 3, 2, 2, 1503, 22], - ["setarg", 3, 1, 5, 1503, 22], - ["setarg", 3, 2, 12, 1503, 22], - ["invoke", 3, 2, 1503, 22], - ["move", 8, 2, 1503, 22], - ["ne", 3, 2, 12, 1504, 27], - ["jump_false", 3, "if_else_307", 1504, 27], - ["access", 2, "move", 1505, 20], - ["get", 3, 55, 1, 1505, 13], - ["frame", 6, 3, 3, 1505, 13], + "if_else_271", + "if_end_272", + ["load_field", 2, 4, "kind", 1754, 17], + ["move", 9, 2, 1754, 17], + ["access", 3, "name", 1757, 22], + ["eq", 6, 2, 3, 1757, 22], + ["jump_false", 6, "if_else_273", 1757, 22], + ["load_field", 2, 4, "name", 1758, 14], + ["move", 10, 2, 1758, 14], + ["load_field", 2, 4, "level", 1759, 15], + ["move", 11, 2, 1759, 15], + ["null", 3, 1760, 20], + ["eq", 6, 2, 3, 1760, 20], + ["jump_false", 6, "if_else_275", 1760, 20], + ["access", 11, -1, 1761, 17], + ["jump", "if_end_276", 1761, 17], + "if_else_275", + "if_end_276", + ["access", 2, 0, 1763, 20], + ["eq", 3, 11, 2, 1763, 20], + ["move", 2, 3, 1763, 20], + ["jump_true", 3, "or_end_279", 1763, 20], + ["access", 3, -1, 1763, 34], + ["eq", 6, 11, 3, 1763, 34], + ["move", 2, 6, 1763, 34], + "or_end_279", + ["jump_false", 2, "if_else_277", 1763, 34], + ["get", 2, 48, 1, 1764, 16], + ["frame", 3, 2, 1, 1764, 16], + ["setarg", 3, 1, 10, 1764, 16], + ["invoke", 3, 2, 1764, 16], + ["move", 12, 2, 1764, 16], + ["access", 3, 0, 1765, 21], + ["ge", 6, 2, 3, 1765, 21], + ["jump_false", 6, "if_else_280", 1765, 21], + ["get", 2, 101, 1, 1766, 22], + ["frame", 3, 2, 2, 1766, 22], + ["setarg", 3, 1, 5, 1766, 22], + ["setarg", 3, 2, 12, 1766, 22], + ["invoke", 3, 2, 1766, 22], + ["move", 8, 2, 1766, 22], + ["ne", 3, 2, 12, 1767, 27], + ["jump_false", 3, "if_else_282", 1767, 27], + ["access", 2, "move", 1768, 20], + ["get", 3, 57, 1, 1768, 13], + ["frame", 6, 3, 3, 1768, 13], ["stone_text", 2], - ["setarg", 6, 1, 2, 1505, 13], - ["setarg", 6, 2, 12, 1505, 13], - ["setarg", 6, 3, 8, 1505, 13], - ["invoke", 6, 2, 1505, 13], - ["get", 2, 70, 1, 1506, 13], - ["frame", 3, 2, 2, 1506, 13], - ["setarg", 3, 1, 12, 1506, 13], - ["setarg", 3, 2, 8, 1506, 13], - ["invoke", 3, 2, 1506, 13], - ["jump", "if_end_308", 1506, 13], - "if_else_307", - "if_end_308", - ["return", 8, 1508, 18], + ["setarg", 6, 1, 2, 1768, 13], + ["setarg", 6, 2, 12, 1768, 13], + ["setarg", 6, 3, 8, 1768, 13], + ["invoke", 6, 2, 1768, 13], + ["get", 2, 72, 1, 1769, 13], + ["frame", 3, 2, 2, 1769, 13], + ["setarg", 3, 1, 12, 1769, 13], + ["setarg", 3, 2, 8, 1769, 13], + ["invoke", 3, 2, 1769, 13], + ["jump", "if_end_283", 1769, 13], + "if_else_282", + "if_end_283", + ["return", 8, 1771, 18], "_nop_ur_3", - "if_else_305", - "if_end_306", - ["access", 2, -1, 1510, 36], - ["get", 3, 97, 1, 1510, 20], - ["frame", 6, 3, 2, 1510, 20], - ["setarg", 6, 1, 5, 1510, 20], - ["setarg", 6, 2, 2, 1510, 20], - ["invoke", 6, 2, 1510, 20], - ["move", 8, 2, 1510, 20], - ["jump", "if_end_303", 1510, 20], - "if_else_302", - ["access", 2, -1, 1512, 36], - ["get", 3, 97, 1, 1512, 20], - ["frame", 6, 3, 2, 1512, 20], - ["setarg", 6, 1, 5, 1512, 20], - ["setarg", 6, 2, 2, 1512, 20], - ["invoke", 6, 2, 1512, 20], - ["move", 8, 2, 1512, 20], - ["access", 2, 0, 1513, 21], - ["gt", 3, 11, 2, 1513, 21], - ["jump_false", 3, "if_else_309", 1513, 21], - ["access", 2, 1, 1514, 25], - ["subtract", 13, 11, 2, 1514, 25], - ["get", 2, 109, 1, 1515, 20], - ["get", 3, 109, 1, 1515, 41], - ["length", 6, 3, 1515, 41], - ["access", 3, 1, 1515, 58], + "if_else_280", + "if_end_281", + ["access", 2, -1, 1773, 36], + ["get", 3, 101, 1, 1773, 20], + ["frame", 6, 3, 2, 1773, 20], + ["setarg", 6, 1, 5, 1773, 20], + ["setarg", 6, 2, 2, 1773, 20], + ["invoke", 6, 2, 1773, 20], + ["move", 8, 2, 1773, 20], + ["jump", "if_end_278", 1773, 20], + "if_else_277", + ["access", 2, -1, 1775, 36], + ["get", 3, 101, 1, 1775, 20], + ["frame", 6, 3, 2, 1775, 20], + ["setarg", 6, 1, 5, 1775, 20], + ["setarg", 6, 2, 2, 1775, 20], + ["invoke", 6, 2, 1775, 20], + ["move", 8, 2, 1775, 20], + ["access", 2, 0, 1776, 21], + ["gt", 3, 11, 2, 1776, 21], + ["jump_false", 3, "if_else_284", 1776, 21], + ["access", 2, 1, 1777, 25], + ["subtract", 13, 11, 2, 1777, 25], + ["get", 2, 119, 1, 1778, 20], + ["get", 3, 119, 1, 1778, 41], + ["length", 6, 3, 1778, 41], + ["access", 3, 1, 1778, 58], "_nop_tc_1", "_nop_tc_2", - "_nop_tc_3", - "_nop_tc_4", - ["subtract", 7, 6, 3, 1515, 58], - ["jump", "num_done_312", 1515, 58], - "num_err_311", + ["subtract", 7, 6, 3, 1778, 58], + ["jump", "num_done_287", 1778, 58], + "num_err_286", "_nop_ucfg_1", "_nop_ucfg_2", "_nop_ucfg_3", @@ -8071,100 +8834,100 @@ "_nop_ucfg_10", "_nop_ucfg_11", "_nop_ucfg_12", - "num_done_312", - ["subtract", 3, 7, 13, 1515, 62], - ["load_index", 6, 2, 3, 1515, 62], - ["move", 14, 6, 1515, 62], - ["get", 2, 92, 1, 1516, 19], - ["frame", 3, 2, 2, 1516, 19], - ["setarg", 3, 1, 6, 1516, 19], - ["setarg", 3, 2, 10, 1516, 19], - ["invoke", 3, 2, 1516, 19], - ["move", 15, 2, 1516, 19], - ["access", 3, "put", 1517, 18], - ["get", 6, 56, 1, 1517, 11], - ["frame", 7, 6, 4, 1517, 11], + "num_done_287", + ["subtract", 3, 7, 13, 1778, 62], + ["load_index", 6, 2, 3, 1778, 62], + ["move", 14, 6, 1778, 62], + ["get", 2, 94, 1, 1779, 19], + ["frame", 3, 2, 2, 1779, 19], + ["setarg", 3, 1, 6, 1779, 19], + ["setarg", 3, 2, 10, 1779, 19], + ["invoke", 3, 2, 1779, 19], + ["move", 15, 2, 1779, 19], + ["access", 3, "put", 1780, 18], + ["get", 6, 58, 1, 1780, 11], + ["frame", 7, 6, 4, 1780, 11], ["stone_text", 3], - ["setarg", 7, 1, 3, 1517, 11], - ["setarg", 7, 2, 8, 1517, 11], - ["setarg", 7, 3, 2, 1517, 11], - ["setarg", 7, 4, 11, 1517, 11], - ["invoke", 7, 2, 1517, 11], - ["jump", "if_end_310", 1517, 11], - "if_else_309", - "if_end_310", - "if_end_303", - ["return", 8, 1520, 14], + ["setarg", 7, 1, 3, 1780, 11], + ["setarg", 7, 2, 8, 1780, 11], + ["setarg", 7, 3, 2, 1780, 11], + ["setarg", 7, 4, 11, 1780, 11], + ["invoke", 7, 2, 1780, 11], + ["jump", "if_end_285", 1780, 11], + "if_else_284", + "if_end_285", + "if_end_278", + ["return", 8, 1783, 14], "_nop_ur_4", - "if_else_298", - "if_end_299", - ["access", 2, -1, 1523, 32], - ["get", 3, 97, 1, 1523, 16], - ["frame", 6, 3, 2, 1523, 16], - ["setarg", 6, 1, 5, 1523, 16], - ["setarg", 6, 2, 2, 1523, 16], - ["invoke", 6, 2, 1523, 16], - ["move", 8, 2, 1523, 16], - ["access", 2, ".", 1524, 22], - ["eq", 3, 9, 2, 1524, 22], - ["jump_false", 3, "if_else_313", 1524, 22], - ["load_field", 2, 4, "left", 1525, 13], - ["move", 16, 2, 1525, 13], - ["load_field", 3, 4, "right", 1526, 14], - ["move", 17, 3, 1526, 14], - ["access", 5, -1, 1527, 32], - ["get", 6, 97, 1, 1527, 18], - ["frame", 7, 6, 2, 1527, 18], - ["setarg", 7, 1, 2, 1527, 18], - ["setarg", 7, 2, 5, 1527, 18], - ["invoke", 7, 2, 1527, 18], - ["move", 18, 2, 1527, 18], - ["get", 5, 79, 1, 1528, 7], - ["frame", 6, 5, 3, 1528, 7], - ["setarg", 6, 1, 2, 1528, 7], - ["setarg", 6, 2, 3, 1528, 7], - ["setarg", 6, 3, 8, 1528, 7], - ["invoke", 6, 2, 1528, 7], - ["jump", "if_end_314", 1528, 7], - "if_else_313", - ["access", 2, "[", 1529, 29], - ["eq", 3, 9, 2, 1529, 29], - ["jump_false", 3, "if_else_315", 1529, 29], - ["load_field", 2, 4, "left", 1530, 13], - ["move", 16, 2, 1530, 13], - ["load_field", 3, 4, "right", 1531, 18], - ["move", 19, 3, 1531, 18], - ["access", 5, -1, 1532, 32], - ["get", 6, 97, 1, 1532, 18], - ["frame", 7, 6, 2, 1532, 18], - ["setarg", 7, 1, 2, 1532, 18], - ["setarg", 7, 2, 5, 1532, 18], - ["invoke", 7, 2, 1532, 18], - ["move", 18, 2, 1532, 18], - ["access", 5, -1, 1533, 37], - ["get", 6, 97, 1, 1533, 18], - ["frame", 7, 6, 2, 1533, 18], - ["setarg", 7, 1, 3, 1533, 18], - ["setarg", 7, 2, 5, 1533, 18], - ["invoke", 7, 3, 1533, 18], - ["move", 20, 3, 1533, 18], - ["load_field", 5, 4, "access_kind", 1534, 51], - ["get", 4, 81, 1, 1534, 7], - ["frame", 6, 4, 4, 1534, 7], - ["setarg", 6, 1, 2, 1534, 7], - ["setarg", 6, 2, 3, 1534, 7], - ["setarg", 6, 3, 8, 1534, 7], - ["setarg", 6, 4, 5, 1534, 7], - ["invoke", 6, 2, 1534, 7], - ["jump", "if_end_316", 1534, 7], - "if_else_315", - "if_end_316", - "if_end_314", - ["return", 8, 1536, 12], + "if_else_273", + "if_end_274", + ["access", 2, -1, 1786, 32], + ["get", 3, 101, 1, 1786, 16], + ["frame", 6, 3, 2, 1786, 16], + ["setarg", 6, 1, 5, 1786, 16], + ["setarg", 6, 2, 2, 1786, 16], + ["invoke", 6, 2, 1786, 16], + ["move", 8, 2, 1786, 16], + ["access", 2, ".", 1787, 22], + ["eq", 3, 9, 2, 1787, 22], + ["jump_false", 3, "if_else_288", 1787, 22], + ["load_field", 2, 4, "left", 1788, 13], + ["move", 16, 2, 1788, 13], + ["load_field", 3, 4, "right", 1789, 14], + ["move", 17, 3, 1789, 14], + ["access", 5, -1, 1790, 32], + ["get", 6, 101, 1, 1790, 18], + ["frame", 7, 6, 2, 1790, 18], + ["setarg", 7, 1, 2, 1790, 18], + ["setarg", 7, 2, 5, 1790, 18], + ["invoke", 7, 2, 1790, 18], + ["move", 18, 2, 1790, 18], + ["get", 5, 81, 1, 1791, 7], + ["frame", 6, 5, 3, 1791, 7], + ["setarg", 6, 1, 2, 1791, 7], + ["setarg", 6, 2, 3, 1791, 7], + ["setarg", 6, 3, 8, 1791, 7], + ["invoke", 6, 2, 1791, 7], + ["jump", "if_end_289", 1791, 7], + "if_else_288", + ["access", 2, "[", 1792, 29], + ["eq", 3, 9, 2, 1792, 29], + ["jump_false", 3, "if_else_290", 1792, 29], + ["load_field", 2, 4, "left", 1793, 13], + ["move", 16, 2, 1793, 13], + ["load_field", 3, 4, "right", 1794, 18], + ["move", 19, 3, 1794, 18], + ["access", 5, -1, 1795, 32], + ["get", 6, 101, 1, 1795, 18], + ["frame", 7, 6, 2, 1795, 18], + ["setarg", 7, 1, 2, 1795, 18], + ["setarg", 7, 2, 5, 1795, 18], + ["invoke", 7, 2, 1795, 18], + ["move", 18, 2, 1795, 18], + ["access", 5, -1, 1796, 37], + ["get", 6, 101, 1, 1796, 18], + ["frame", 7, 6, 2, 1796, 18], + ["setarg", 7, 1, 3, 1796, 18], + ["setarg", 7, 2, 5, 1796, 18], + ["invoke", 7, 3, 1796, 18], + ["move", 20, 3, 1796, 18], + ["load_field", 5, 4, "access_kind", 1797, 51], + ["get", 4, 83, 1, 1797, 7], + ["frame", 6, 4, 4, 1797, 7], + ["setarg", 6, 1, 2, 1797, 7], + ["setarg", 6, 2, 3, 1797, 7], + ["setarg", 6, 3, 8, 1797, 7], + ["setarg", 6, 4, 5, 1797, 7], + ["invoke", 6, 2, 1797, 7], + ["jump", "if_end_291", 1797, 7], + "if_else_290", + "if_end_291", + "if_end_289", + ["return", 8, 1799, 12], "_nop_ur_5", "_nop_ur_6" ], - "_write_types": [null, null, "int", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "null", "bool", null, null, null, null, "bool", "bool", null, "int", null, null, null, "int", null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, null, "text", "bool", null, null, "null", "bool", "int", "bool", "bool", "int", "bool", null, null, null, "int", "bool", "null", null, null, null, null, null, null, "bool", "text", null, null, null, null, null, null, "int", null, null, null, "int", null, null, null, "int", "bool", "int", null, null, "int", "int", "int", null, null, null, null, null, null, null, null, null, "int", null, null, null, null, "text", null, null, null, "int", null, null, null, "text", "bool", null, null, "int", null, null, null, null, null, null, "text", "bool", null, null, "int", null, null, null, "int", null, null, null, null, null, null, null, null], + "_write_types": [null, null, "int", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "null", "bool", null, null, null, null, "bool", "bool", null, "int", null, null, null, "int", null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, null, "text", "bool", null, null, "null", "bool", "int", "bool", "bool", "int", "bool", null, null, null, "int", "bool", null, null, null, "bool", "text", null, null, null, null, null, null, "int", null, null, null, "int", null, null, null, "int", "bool", "int", null, null, "int", "int", "int", null, null, null, null, null, null, null, null, "int", null, null, null, null, "text", null, null, null, "int", null, null, null, "text", "bool", null, null, "int", null, null, null, null, null, null, "text", "bool", null, null, "int", null, null, null, "int", null, null, null, null, null, null, null, null], "name": "", "filename": ".cell/packages/core/mcode.cm", "nr_args": 1 @@ -8175,218 +8938,218 @@ "nr_slots": 81, "nr_close_slots": 0, "instructions": [ - ["null", 3, 1541, 16], - ["access", 4, 0, 1542, 16], - ["null", 5, 1543, 15], - ["null", 6, 1544, 16], - ["access", 7, 0, 1545, 17], - ["null", 8, 1546, 22], - ["access", 9, 0, 1547, 14], - ["access", 10, 0, 1548, 20], - ["access", 11, 0, 1550, 25], - ["null", 12, 1551, 15], - ["access", 13, 0, 1552, 24], - ["access", 14, 0, 1553, 23], - ["null", 15, 1554, 19], - ["null", 16, 1555, 17], - ["null", 17, 1556, 16], - ["access", 18, 0, 1557, 17], - ["access", 19, 0, 1558, 18], - ["access", 20, 0, 1559, 16], - ["access", 21, 0, 1560, 15], - ["null", 22, 1561, 18], - ["access", 23, 0, 1562, 23], - ["null", 24, 1563, 15], - ["null", 25, 1564, 16], - ["access", 26, 0, 1565, 20], - ["null", 27, 1566, 15], - ["access", 28, 0, 1567, 20], - ["null", 29, 1568, 18], - ["null", 30, 1569, 21], - ["null", 31, 1570, 23], - ["null", 32, 1571, 17], - ["null", 33, 1572, 15], - ["access", 34, 0, 1573, 17], - ["access", 35, 0, 1574, 14], - ["access", 36, 0, 1575, 14], - ["access", 37, 0, 1576, 14], - ["access", 38, 0, 1577, 14], - ["access", 39, 0, 1578, 13], - ["null", 40, 1579, 15], - ["null", 41, 1580, 21], - ["null", 42, 1581, 20], - ["access", 43, 0, 1582, 20], - ["access", 44, 0, 1583, 21], - ["access", 45, 0, 1584, 24], - ["null", 46, 1585, 19], - ["false", 47, 1586, 19], - ["null", 48, 1587, 20], - ["null", 49, 1588, 24], - ["access", 50, 0, 1589, 20], - ["null", 51, 1590, 20], - ["access", 52, 0, 1591, 20], - ["access", 53, 0, 1592, 17], - ["access", 54, 0, 1593, 20], - ["access", 55, 0, 1594, 17], - ["null", 56, 1595, 20], - ["null", 57, 1596, 16], - ["null", 58, 1597, 21], - ["null", 59, 1598, 21], - ["null", 60, 1599, 22], - ["null", 61, 1600, 21], - ["access", 62, 0, 1601, 21], - ["access", 63, 0, 1602, 21], - ["access", 64, 0, 1603, 21], - ["access", 65, 0, 1604, 17], - ["null", 66, 1605, 22], - ["null", 67, 1607, 16], - ["null", 68, 1608, 15], - ["access", 69, 0, 1609, 20], - ["null", 70, 1610, 20], - ["null", 71, 1611, 17], - ["null", 72, 1612, 16], - ["access", 73, 0, 1613, 19], - ["access", 74, 0, 1614, 19], - ["null", 75, 1615, 21], - ["null", 76, 1616, 22], - ["null", 77, 1618, 17], - ["eq", 78, 1, 77, 1618, 17], - ["jump_false", 78, "if_else_317", 1618, 17], - ["access", 77, -1, 1619, 14], - ["return", 77, 1619, 14], + ["null", 3, 1804, 16], + ["access", 4, 0, 1805, 16], + ["null", 5, 1806, 15], + ["null", 6, 1807, 16], + ["access", 7, 0, 1808, 17], + ["null", 8, 1809, 22], + ["access", 9, 0, 1810, 14], + ["access", 10, 0, 1811, 20], + ["access", 11, 0, 1813, 25], + ["null", 12, 1814, 15], + ["access", 13, 0, 1815, 24], + ["access", 14, 0, 1816, 23], + ["null", 15, 1817, 19], + ["null", 16, 1818, 17], + ["null", 17, 1819, 16], + ["access", 18, 0, 1820, 17], + ["access", 19, 0, 1821, 18], + ["access", 20, 0, 1822, 16], + ["access", 21, 0, 1823, 15], + ["null", 22, 1824, 18], + ["access", 23, 0, 1825, 23], + ["null", 24, 1826, 15], + ["null", 25, 1827, 16], + ["access", 26, 0, 1828, 20], + ["null", 27, 1829, 15], + ["access", 28, 0, 1830, 20], + ["null", 29, 1831, 18], + ["null", 30, 1832, 21], + ["null", 31, 1833, 23], + ["null", 32, 1834, 17], + ["null", 33, 1835, 15], + ["access", 34, 0, 1836, 17], + ["access", 35, 0, 1837, 14], + ["access", 36, 0, 1838, 14], + ["access", 37, 0, 1839, 14], + ["access", 38, 0, 1840, 14], + ["access", 39, 0, 1841, 13], + ["null", 40, 1842, 15], + ["null", 41, 1843, 21], + ["null", 42, 1844, 20], + ["access", 43, 0, 1845, 20], + ["access", 44, 0, 1846, 21], + ["access", 45, 0, 1847, 24], + ["null", 46, 1848, 19], + ["false", 47, 1849, 19], + ["null", 48, 1850, 20], + ["null", 49, 1851, 24], + ["access", 50, 0, 1852, 20], + ["null", 51, 1853, 20], + ["access", 52, 0, 1854, 20], + ["access", 53, 0, 1855, 17], + ["access", 54, 0, 1856, 20], + ["access", 55, 0, 1857, 17], + ["null", 56, 1858, 20], + ["null", 57, 1859, 16], + ["null", 58, 1860, 21], + ["null", 59, 1861, 21], + ["null", 60, 1862, 22], + ["null", 61, 1863, 21], + ["access", 62, 0, 1864, 21], + ["access", 63, 0, 1865, 21], + ["access", 64, 0, 1866, 21], + ["access", 65, 0, 1867, 17], + ["null", 66, 1868, 22], + ["null", 67, 1870, 16], + ["null", 68, 1871, 15], + ["access", 69, 0, 1872, 20], + ["null", 70, 1873, 20], + ["null", 71, 1874, 17], + ["null", 72, 1875, 16], + ["access", 73, 0, 1876, 19], + ["access", 74, 0, 1877, 19], + ["null", 75, 1878, 21], + ["null", 76, 1879, 22], + ["null", 77, 1881, 17], + ["eq", 78, 1, 77, 1881, 17], + ["jump_false", 78, "if_else_292", 1881, 17], + ["access", 77, -1, 1882, 14], + ["return", 77, 1882, 14], "_nop_ur_1", - "if_else_317", - "if_end_318", - ["get", 77, 50, 1, 1621, 5], - ["frame", 78, 77, 1, 1621, 5], - ["setarg", 78, 1, 1, 1621, 5], - ["invoke", 78, 77, 1621, 5], - ["load_field", 77, 1, "kind", 1622, 12], - ["move", 3, 77, 1622, 12], - ["null", 78, 1623, 17], - ["eq", 79, 77, 78, 1623, 17], - ["jump_false", 79, "if_else_319", 1623, 17], - ["access", 77, -1, 1624, 14], - ["return", 77, 1624, 14], + "if_else_292", + "if_end_293", + ["get", 77, 52, 1, 1884, 5], + ["frame", 78, 77, 1, 1884, 5], + ["setarg", 78, 1, 1, 1884, 5], + ["invoke", 78, 77, 1884, 5], + ["load_field", 77, 1, "kind", 1885, 12], + ["move", 3, 77, 1885, 12], + ["null", 78, 1886, 17], + ["eq", 79, 77, 78, 1886, 17], + ["jump_false", 79, "if_else_294", 1886, 17], + ["access", 77, -1, 1887, 14], + ["return", 77, 1887, 14], "_nop_ur_2", - "if_else_319", - "if_end_320", - ["access", 77, "number", 1628, 17], - ["eq", 78, 3, 77, 1628, 17], - ["jump_false", 78, "if_else_321", 1628, 17], - ["access", 77, 0, 1629, 24], - ["ge", 78, 2, 77, 1629, 24], - ["jump_false", 78, "tern_else_323", 1629, 24], - ["move", 77, 2, 1629, 28], - ["jump", "tern_end_324", 1629, 28], - "tern_else_323", - ["get", 78, 44, 1, 1629, 37], - ["frame", 79, 78, 0, 1629, 37], - ["invoke", 79, 78, 1629, 37], - ["move", 77, 78, 1629, 37], - "tern_end_324", - ["move", 4, 77, 1629, 37], - ["load_field", 78, 1, "number", 1630, 28], - ["get", 79, 58, 1, 1630, 7], - ["frame", 80, 79, 2, 1630, 7], - ["setarg", 80, 1, 77, 1630, 7], - ["setarg", 80, 2, 78, 1630, 7], - ["invoke", 80, 77, 1630, 7], - ["load_field", 77, 1, "number", 1631, 34], - ["is_int", 78, 77, 1631, 34], - ["jump_false", 78, "tern_else_325", 1631, 34], - ["access", 77, "int", 1631, 49], - ["move", 78, 77, 1631, 49], - ["jump", "tern_end_326", 1631, 49], - "tern_else_325", - ["access", 77, "num", 1631, 57], - ["move", 78, 77, 1631, 57], - "tern_end_326", - ["get", 77, 69, 1, 1631, 7], - ["frame", 79, 77, 2, 1631, 7], - ["setarg", 79, 1, 4, 1631, 7], + "if_else_294", + "if_end_295", + ["access", 77, "number", 1891, 17], + ["eq", 78, 3, 77, 1891, 17], + ["jump_false", 78, "if_else_296", 1891, 17], + ["access", 77, 0, 1892, 24], + ["ge", 78, 2, 77, 1892, 24], + ["jump_false", 78, "tern_else_298", 1892, 24], + ["move", 77, 2, 1892, 28], + ["jump", "tern_end_299", 1892, 28], + "tern_else_298", + ["get", 78, 46, 1, 1892, 37], + ["frame", 79, 78, 0, 1892, 37], + ["invoke", 79, 78, 1892, 37], + ["move", 77, 78, 1892, 37], + "tern_end_299", + ["move", 4, 77, 1892, 37], + ["load_field", 78, 1, "number", 1893, 28], + ["get", 79, 60, 1, 1893, 7], + ["frame", 80, 79, 2, 1893, 7], + ["setarg", 80, 1, 77, 1893, 7], + ["setarg", 80, 2, 78, 1893, 7], + ["invoke", 80, 77, 1893, 7], + ["load_field", 77, 1, "number", 1894, 34], + ["is_int", 78, 77, 1894, 34], + ["wary_false", 78, "tern_else_300", 1894, 34], + ["access", 77, "int", 1894, 49], + ["move", 78, 77, 1894, 49], + ["jump", "tern_end_301", 1894, 49], + "tern_else_300", + ["access", 77, "num", 1894, 57], + ["move", 78, 77, 1894, 57], + "tern_end_301", + ["get", 77, 71, 1, 1894, 7], + ["frame", 79, 77, 2, 1894, 7], + ["setarg", 79, 1, 4, 1894, 7], ["stone_text", 78], - ["setarg", 79, 2, 78, 1631, 7], - ["invoke", 79, 77, 1631, 7], - ["return", 4, 1632, 14], + ["setarg", 79, 2, 78, 1894, 7], + ["invoke", 79, 77, 1894, 7], + ["return", 4, 1895, 14], "_nop_ur_3", - "if_else_321", - "if_end_322", - ["access", 77, "text", 1634, 17], - ["eq", 78, 3, 77, 1634, 17], - ["jump_false", 78, "if_else_327", 1634, 17], - ["access", 77, 0, 1635, 24], - ["ge", 78, 2, 77, 1635, 24], - ["jump_false", 78, "tern_else_329", 1635, 24], - ["move", 77, 2, 1635, 28], - ["jump", "tern_end_330", 1635, 28], - "tern_else_329", - ["get", 78, 44, 1, 1635, 37], - ["frame", 79, 78, 0, 1635, 37], - ["invoke", 79, 78, 1635, 37], - ["move", 77, 78, 1635, 37], - "tern_end_330", - ["move", 4, 77, 1635, 37], - ["load_field", 77, 1, "value", 1636, 13], - ["move", 5, 77, 1636, 13], - ["null", 78, 1637, 18], - ["eq", 79, 77, 78, 1637, 18], - ["jump_false", 79, "if_else_331", 1637, 18], - ["access", 5, "", 1638, 15], - ["jump", "if_end_332", 1638, 15], - "if_else_331", - "if_end_332", - ["get", 77, 59, 1, 1640, 7], - ["frame", 78, 77, 2, 1640, 7], - ["setarg", 78, 1, 4, 1640, 7], + "if_else_296", + "if_end_297", + ["access", 77, "text", 1897, 17], + ["eq", 78, 3, 77, 1897, 17], + ["jump_false", 78, "if_else_302", 1897, 17], + ["access", 77, 0, 1898, 24], + ["ge", 78, 2, 77, 1898, 24], + ["jump_false", 78, "tern_else_304", 1898, 24], + ["move", 77, 2, 1898, 28], + ["jump", "tern_end_305", 1898, 28], + "tern_else_304", + ["get", 78, 46, 1, 1898, 37], + ["frame", 79, 78, 0, 1898, 37], + ["invoke", 79, 78, 1898, 37], + ["move", 77, 78, 1898, 37], + "tern_end_305", + ["move", 4, 77, 1898, 37], + ["load_field", 77, 1, "value", 1899, 13], + ["move", 5, 77, 1899, 13], + ["null", 78, 1900, 18], + ["eq", 79, 77, 78, 1900, 18], + ["jump_false", 79, "if_else_306", 1900, 18], + ["access", 5, "", 1901, 15], + ["jump", "if_end_307", 1901, 15], + "if_else_306", + "if_end_307", + ["get", 77, 61, 1, 1903, 7], + ["frame", 78, 77, 2, 1903, 7], + ["setarg", 78, 1, 4, 1903, 7], ["stone_text", 5], - ["setarg", 78, 2, 5, 1640, 7], - ["invoke", 78, 77, 1640, 7], - ["access", 77, "text", 1641, 23], - ["get", 78, 69, 1, 1641, 7], - ["frame", 79, 78, 2, 1641, 7], - ["setarg", 79, 1, 4, 1641, 7], + ["setarg", 78, 2, 5, 1903, 7], + ["invoke", 78, 77, 1903, 7], + ["access", 77, "text", 1904, 23], + ["get", 78, 71, 1, 1904, 7], + ["frame", 79, 78, 2, 1904, 7], + ["setarg", 79, 1, 4, 1904, 7], ["stone_text", 77], - ["setarg", 79, 2, 77, 1641, 7], - ["invoke", 79, 77, 1641, 7], - ["return", 4, 1642, 14], + ["setarg", 79, 2, 77, 1904, 7], + ["invoke", 79, 77, 1904, 7], + ["return", 4, 1905, 14], "_nop_ur_4", - "if_else_327", - "if_end_328", - ["access", 77, "text literal", 1645, 17], - ["eq", 78, 3, 77, 1645, 17], - ["jump_false", 78, "if_else_333", 1645, 17], - ["load_field", 77, 1, "list", 1646, 14], - ["move", 6, 77, 1646, 14], - ["null", 78, 1647, 23], - ["ne", 79, 77, 78, 1647, 23], - ["jump_false", 79, "tern_else_335", 1647, 23], - ["length", 77, 6, 1647, 37], - ["move", 78, 77, 1647, 37], - ["jump", "tern_end_336", 1647, 37], - "tern_else_335", - ["access", 77, 0, 1647, 45], - ["move", 78, 77, 1647, 45], - "tern_end_336", - ["move", 7, 78, 1647, 45], - ["array", 77, 0, 1648, 20], - ["move", 8, 77, 1648, 20], - ["access", 9, 0, 1649, 12], - "while_start_337", - ["lt", 77, 9, 7, 1650, 19], - ["jump_false", 77, "while_end_338", 1650, 19], - ["load_index", 77, 6, 9, 1651, 40], - ["access", 78, -1, 1651, 45], - ["get", 79, 97, 1, 1651, 26], - ["frame", 80, 79, 2, 1651, 26], - ["setarg", 80, 1, 77, 1651, 26], - ["setarg", 80, 2, 78, 1651, 26], - ["invoke", 80, 77, 1651, 26], - ["is_array", 78, 8, 1651, 26], - ["jump_false", 78, "push_err_339", 1651, 26], - ["push", 8, 77, 1651, 26], - ["jump", "push_done_340", 1651, 26], - "push_err_339", + "if_else_302", + "if_end_303", + ["access", 77, "text literal", 1908, 17], + ["eq", 78, 3, 77, 1908, 17], + ["jump_false", 78, "if_else_308", 1908, 17], + ["load_field", 77, 1, "list", 1909, 14], + ["move", 6, 77, 1909, 14], + ["null", 78, 1910, 23], + ["ne", 79, 77, 78, 1910, 23], + ["jump_false", 79, "tern_else_310", 1910, 23], + ["length", 77, 6, 1910, 37], + ["move", 78, 77, 1910, 37], + ["jump", "tern_end_311", 1910, 37], + "tern_else_310", + ["access", 77, 0, 1910, 45], + ["move", 78, 77, 1910, 45], + "tern_end_311", + ["move", 7, 78, 1910, 45], + ["array", 77, 0, 1911, 20], + ["move", 8, 77, 1911, 20], + ["access", 9, 0, 1912, 12], + "while_start_312", + ["lt", 77, 9, 7, 1913, 19], + ["jump_false", 77, "while_end_313", 1913, 19], + ["load_index", 77, 6, 9, 1914, 40], + ["access", 78, -1, 1914, 45], + ["get", 79, 101, 1, 1914, 26], + ["frame", 80, 79, 2, 1914, 26], + ["setarg", 80, 1, 77, 1914, 26], + ["setarg", 80, 2, 78, 1914, 26], + ["invoke", 80, 77, 1914, 26], + ["is_array", 78, 8, 1914, 26], + ["jump_false", 78, "push_err_314", 1914, 26], + ["push", 8, 77, 1914, 26], + ["jump", "push_done_315", 1914, 26], + "push_err_314", [ "access", 77, @@ -8395,2644 +9158,2784 @@ "kind": "name", "make": "intrinsic" }, - 1651, + 1914, 26 ], - ["access", 78, "error", 1651, 26], - ["access", 79, "cannot push: target must be an array", 1651, 26], - ["array", 80, 0, 1651, 26], + ["access", 78, "error", 1914, 26], + ["access", 79, "cannot push: target must be an array", 1914, 26], + ["array", 80, 0, 1914, 26], ["stone_text", 79], - ["push", 80, 79, 1651, 26], - ["frame", 79, 77, 2, 1651, 26], - ["null", 77, 1651, 26], - ["setarg", 79, 0, 77, 1651, 26], + ["push", 80, 79, 1914, 26], + ["frame", 79, 77, 2, 1914, 26], + ["null", 77, 1914, 26], + ["setarg", 79, 0, 77, 1914, 26], ["stone_text", 78], - ["setarg", 79, 1, 78, 1651, 26], - ["setarg", 79, 2, 80, 1651, 26], - ["invoke", 79, 77, 1651, 26], - ["disrupt", 1651, 26], - "push_done_340", - ["access", 77, 1, 1652, 19], - "_nop_tc_1", - "_nop_tc_2", - "_nop_tc_3", - "_nop_tc_4", - ["add", 9, 9, 77, 1652, 19], - ["jump", "num_done_342", 1652, 19], - "num_err_341", - "_nop_ucfg_1", - "_nop_ucfg_2", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "num_done_342", - ["jump", "while_start_337", 1652, 19], - "while_end_338", - ["get", 77, 44, 1, 1655, 18], - ["frame", 78, 77, 0, 1655, 18], - ["invoke", 78, 77, 1655, 18], - ["move", 10, 77, 1655, 18], - ["access", 78, "array", 1656, 18], - ["access", 79, 0, 1656, 37], - ["array", 80, 3, 1656, 37], + ["setarg", 79, 1, 78, 1914, 26], + ["setarg", 79, 2, 80, 1914, 26], + ["invoke", 79, 77, 1914, 26], + ["disrupt", 1914, 26], + "push_done_315", + ["access", 77, 1, 1915, 19], + ["add", 9, 9, 77, 1915, 19], + ["jump", "while_start_312", 1915, 19], + "while_end_313", + ["get", 77, 46, 1, 1918, 18], + ["frame", 78, 77, 0, 1918, 18], + ["invoke", 78, 77, 1918, 18], + ["move", 10, 77, 1918, 18], + ["access", 78, "array", 1919, 18], + ["access", 79, 0, 1919, 37], + ["array", 80, 3, 1919, 37], ["stone_text", 78], - ["push", 80, 78, 1656, 37], - ["push", 80, 77, 1656, 37], - ["push", 80, 79, 1656, 37], - ["get", 77, 51, 1, 1656, 7], - ["frame", 78, 77, 1, 1656, 7], - ["setarg", 78, 1, 80, 1656, 7], - ["invoke", 78, 77, 1656, 7], - ["access", 9, 0, 1657, 12], - "while_start_343", - ["lt", 77, 9, 7, 1658, 19], - ["jump_false", 77, "while_end_344", 1658, 19], - ["access", 77, "push", 1659, 16], - ["load_index", 78, 8, 9, 1659, 45], - ["get", 79, 55, 1, 1659, 9], - ["frame", 80, 79, 3, 1659, 9], + ["push", 80, 78, 1919, 37], + ["push", 80, 77, 1919, 37], + ["push", 80, 79, 1919, 37], + ["get", 77, 53, 1, 1919, 7], + ["frame", 78, 77, 1, 1919, 7], + ["setarg", 78, 1, 80, 1919, 7], + ["invoke", 78, 77, 1919, 7], + ["access", 9, 0, 1920, 12], + "while_start_316", + ["lt", 77, 9, 7, 1921, 19], + ["jump_false", 77, "while_end_317", 1921, 19], + ["access", 77, "push", 1922, 16], + ["load_index", 78, 8, 9, 1922, 45], + ["get", 79, 57, 1, 1922, 9], + ["frame", 80, 79, 3, 1922, 9], ["stone_text", 77], - ["setarg", 80, 1, 77, 1659, 9], - ["setarg", 80, 2, 10, 1659, 9], - ["setarg", 80, 3, 78, 1659, 9], - ["invoke", 80, 77, 1659, 9], - ["access", 77, 1, 1660, 19], - "_nop_tc_5", - "_nop_tc_6", - "_nop_tc_7", - "_nop_tc_8", - ["add", 9, 9, 77, 1660, 19], - ["jump", "num_done_346", 1660, 19], - "num_err_345", - "_nop_ucfg_13", - "_nop_ucfg_14", - "_nop_ucfg_15", - "_nop_ucfg_16", - "_nop_ucfg_17", - "_nop_ucfg_18", - "_nop_ucfg_19", - "_nop_ucfg_20", - "_nop_ucfg_21", - "_nop_ucfg_22", - "_nop_ucfg_23", - "_nop_ucfg_24", - "num_done_346", - ["jump", "while_start_343", 1660, 19], - "while_end_344", - ["access", 7, "format", 1663, 38], - ["get", 8, 47, 1, 1663, 23], - ["frame", 77, 8, 1, 1663, 23], + ["setarg", 80, 1, 77, 1922, 9], + ["setarg", 80, 2, 10, 1922, 9], + ["setarg", 80, 3, 78, 1922, 9], + ["invoke", 80, 77, 1922, 9], + ["access", 77, 1, 1923, 19], + ["add", 9, 9, 77, 1923, 19], + ["jump", "while_start_316", 1923, 19], + "while_end_317", + ["access", 7, "format", 1926, 38], + ["get", 8, 49, 1, 1926, 23], + ["frame", 77, 8, 1, 1926, 23], ["stone_text", 7], - ["setarg", 77, 1, 7, 1663, 23], - ["invoke", 77, 7, 1663, 23], - ["move", 11, 7, 1663, 23], - ["access", 8, 0, 1664, 27], - ["lt", 77, 7, 8, 1664, 27], - ["jump_false", 77, "if_else_347", 1664, 27], - ["get", 7, 44, 1, 1665, 25], - ["frame", 8, 7, 0, 1665, 25], - ["invoke", 8, 7, 1665, 25], - ["move", 11, 7, 1665, 25], - ["access", 8, "format", 1666, 46], - ["get", 77, 107, 1, 1666, 9], - ["frame", 78, 77, 2, 1666, 9], - ["setarg", 78, 1, 7, 1666, 9], + ["setarg", 77, 1, 7, 1926, 23], + ["invoke", 77, 7, 1926, 23], + ["move", 11, 7, 1926, 23], + ["access", 8, 0, 1927, 27], + ["lt", 77, 7, 8, 1927, 27], + ["jump_false", 77, "if_else_318", 1927, 27], + ["get", 7, 46, 1, 1928, 25], + ["frame", 8, 7, 0, 1928, 25], + ["invoke", 8, 7, 1928, 25], + ["move", 11, 7, 1928, 25], + ["access", 8, "format", 1929, 46], + ["get", 77, 117, 1, 1929, 9], + ["frame", 78, 77, 2, 1929, 9], + ["setarg", 78, 1, 7, 1929, 9], ["stone_text", 8], - ["setarg", 78, 2, 8, 1666, 9], - ["invoke", 78, 7, 1666, 9], - ["jump", "if_end_348", 1666, 9], - "if_else_347", - "if_end_348", - ["load_field", 7, 1, "value", 1669, 13], - ["move", 12, 7, 1669, 13], - ["null", 8, 1670, 18], - ["eq", 77, 7, 8, 1670, 18], - ["jump_false", 77, "if_else_349", 1670, 18], - ["access", 12, "", 1671, 15], - ["jump", "if_end_350", 1671, 15], - "if_else_349", - "if_end_350", - ["get", 7, 44, 1, 1673, 22], - ["frame", 8, 7, 0, 1673, 22], - ["invoke", 8, 7, 1673, 22], - ["move", 13, 7, 1673, 22], - ["get", 8, 59, 1, 1674, 7], - ["frame", 77, 8, 2, 1674, 7], - ["setarg", 77, 1, 7, 1674, 7], + ["setarg", 78, 2, 8, 1929, 9], + ["invoke", 78, 7, 1929, 9], + ["jump", "if_end_319", 1929, 9], + "if_else_318", + "if_end_319", + ["load_field", 7, 1, "value", 1932, 13], + ["move", 12, 7, 1932, 13], + ["null", 8, 1933, 18], + ["eq", 77, 7, 8, 1933, 18], + ["jump_false", 77, "if_else_320", 1933, 18], + ["access", 12, "", 1934, 15], + ["jump", "if_end_321", 1934, 15], + "if_else_320", + "if_end_321", + ["get", 7, 46, 1, 1936, 22], + ["frame", 8, 7, 0, 1936, 22], + ["invoke", 8, 7, 1936, 22], + ["move", 13, 7, 1936, 22], + ["get", 8, 61, 1, 1937, 7], + ["frame", 77, 8, 2, 1937, 7], + ["setarg", 77, 1, 7, 1937, 7], ["stone_text", 12], - ["setarg", 77, 2, 12, 1674, 7], - ["invoke", 77, 7, 1674, 7], - ["access", 7, 0, 1676, 31], - ["ge", 8, 2, 7, 1676, 31], - ["jump_false", 8, "tern_else_351", 1676, 31], - ["move", 7, 2, 1676, 35], - ["jump", "tern_end_352", 1676, 35], - "tern_else_351", - ["get", 8, 44, 1, 1676, 44], - ["frame", 12, 8, 0, 1676, 44], - ["invoke", 12, 8, 1676, 44], - ["move", 7, 8, 1676, 44], - "tern_end_352", - ["move", 14, 7, 1676, 44], - ["array", 8, 2, 1677, 60], - ["push", 8, 13, 1677, 60], - ["push", 8, 10, 1677, 60], - ["get", 10, 82, 1, 1677, 7], - ["frame", 12, 10, 3, 1677, 7], - ["setarg", 12, 1, 7, 1677, 7], - ["setarg", 12, 2, 11, 1677, 7], - ["setarg", 12, 3, 8, 1677, 7], - ["invoke", 12, 8, 1677, 7], - ["access", 8, "text", 1678, 30], - ["get", 10, 69, 1, 1678, 7], - ["frame", 11, 10, 2, 1678, 7], - ["setarg", 11, 1, 7, 1678, 7], + ["setarg", 77, 2, 12, 1937, 7], + ["invoke", 77, 7, 1937, 7], + ["access", 7, 0, 1939, 31], + ["ge", 8, 2, 7, 1939, 31], + ["jump_false", 8, "tern_else_322", 1939, 31], + ["move", 7, 2, 1939, 35], + ["jump", "tern_end_323", 1939, 35], + "tern_else_322", + ["get", 8, 46, 1, 1939, 44], + ["frame", 12, 8, 0, 1939, 44], + ["invoke", 12, 8, 1939, 44], + ["move", 7, 8, 1939, 44], + "tern_end_323", + ["move", 14, 7, 1939, 44], + ["array", 8, 2, 1940, 60], + ["push", 8, 13, 1940, 60], + ["push", 8, 10, 1940, 60], + ["get", 10, 84, 1, 1940, 7], + ["frame", 12, 10, 3, 1940, 7], + ["setarg", 12, 1, 7, 1940, 7], + ["setarg", 12, 2, 11, 1940, 7], + ["setarg", 12, 3, 8, 1940, 7], + ["invoke", 12, 8, 1940, 7], + ["access", 8, "text", 1941, 30], + ["get", 10, 71, 1, 1941, 7], + ["frame", 11, 10, 2, 1941, 7], + ["setarg", 11, 1, 7, 1941, 7], ["stone_text", 8], - ["setarg", 11, 2, 8, 1678, 7], - ["invoke", 11, 8, 1678, 7], - ["return", 7, 1679, 14], + ["setarg", 11, 2, 8, 1941, 7], + ["invoke", 11, 8, 1941, 7], + ["return", 7, 1942, 14], "_nop_ur_5", - "if_else_333", - "if_end_334", - ["access", 7, "regexp", 1681, 17], - ["eq", 8, 3, 7, 1681, 17], - ["jump_false", 8, "if_else_353", 1681, 17], - ["access", 7, 0, 1682, 24], - ["ge", 8, 2, 7, 1682, 24], - ["jump_false", 8, "tern_else_355", 1682, 24], - ["move", 7, 2, 1682, 28], - ["jump", "tern_end_356", 1682, 28], - "tern_else_355", - ["get", 8, 44, 1, 1682, 37], - ["frame", 10, 8, 0, 1682, 37], - ["invoke", 10, 8, 1682, 37], - ["move", 7, 8, 1682, 37], - "tern_end_356", - ["move", 4, 7, 1682, 37], - ["load_field", 7, 1, "pattern", 1683, 17], - ["move", 15, 7, 1683, 17], - ["null", 8, 1684, 22], - ["eq", 10, 7, 8, 1684, 22], - ["jump_false", 10, "if_else_357", 1684, 22], - ["access", 15, "", 1685, 19], - ["jump", "if_end_358", 1685, 19], - "if_else_357", - "if_end_358", - ["load_field", 7, 1, "flags", 1687, 15], - ["move", 16, 7, 1687, 15], - ["null", 8, 1688, 20], - ["eq", 10, 7, 8, 1688, 20], - ["jump_false", 10, "if_else_359", 1688, 20], - ["access", 16, "", 1689, 17], - ["jump", "if_end_360", 1689, 17], - "if_else_359", - "if_end_360", - ["access", 7, "regexp", 1691, 18], - ["array", 8, 4, 1691, 43], + "if_else_308", + "if_end_309", + ["access", 7, "regexp", 1944, 17], + ["eq", 8, 3, 7, 1944, 17], + ["jump_false", 8, "if_else_324", 1944, 17], + ["access", 7, 0, 1945, 24], + ["ge", 8, 2, 7, 1945, 24], + ["jump_false", 8, "tern_else_326", 1945, 24], + ["move", 7, 2, 1945, 28], + ["jump", "tern_end_327", 1945, 28], + "tern_else_326", + ["get", 8, 46, 1, 1945, 37], + ["frame", 10, 8, 0, 1945, 37], + ["invoke", 10, 8, 1945, 37], + ["move", 7, 8, 1945, 37], + "tern_end_327", + ["move", 4, 7, 1945, 37], + ["load_field", 7, 1, "pattern", 1946, 17], + ["move", 15, 7, 1946, 17], + ["null", 8, 1947, 22], + ["eq", 10, 7, 8, 1947, 22], + ["jump_false", 10, "if_else_328", 1947, 22], + ["access", 15, "", 1948, 19], + ["jump", "if_end_329", 1948, 19], + "if_else_328", + "if_end_329", + ["load_field", 7, 1, "flags", 1950, 15], + ["move", 16, 7, 1950, 15], + ["null", 8, 1951, 20], + ["eq", 10, 7, 8, 1951, 20], + ["jump_false", 10, "if_else_330", 1951, 20], + ["access", 16, "", 1952, 17], + ["jump", "if_end_331", 1952, 17], + "if_else_330", + "if_end_331", + ["access", 7, "regexp", 1954, 18], + ["array", 8, 4, 1954, 43], ["stone_text", 7], - ["push", 8, 7, 1691, 43], - ["push", 8, 4, 1691, 43], + ["push", 8, 7, 1954, 43], + ["push", 8, 4, 1954, 43], ["stone_text", 15], - ["push", 8, 15, 1691, 43], + ["push", 8, 15, 1954, 43], ["stone_text", 16], - ["push", 8, 16, 1691, 43], - ["get", 7, 51, 1, 1691, 7], - ["frame", 10, 7, 1, 1691, 7], - ["setarg", 10, 1, 8, 1691, 7], - ["invoke", 10, 7, 1691, 7], - ["return", 4, 1692, 14], + ["push", 8, 16, 1954, 43], + ["get", 7, 53, 1, 1954, 7], + ["frame", 10, 7, 1, 1954, 7], + ["setarg", 10, 1, 8, 1954, 7], + ["invoke", 10, 7, 1954, 7], + ["return", 4, 1955, 14], "_nop_ur_6", + "if_else_324", + "if_end_325", + ["access", 7, "true", 1957, 17], + ["eq", 8, 3, 7, 1957, 17], + ["jump_false", 8, "if_else_332", 1957, 17], + ["access", 7, 0, 1958, 24], + ["ge", 8, 2, 7, 1958, 24], + ["jump_false", 8, "tern_else_334", 1958, 24], + ["move", 7, 2, 1958, 28], + ["jump", "tern_end_335", 1958, 28], + "tern_else_334", + ["get", 8, 46, 1, 1958, 37], + ["frame", 10, 8, 0, 1958, 37], + ["invoke", 10, 8, 1958, 37], + ["move", 7, 8, 1958, 37], + "tern_end_335", + ["move", 4, 7, 1958, 37], + ["true", 8, 1959, 29], + ["get", 10, 62, 1, 1959, 7], + ["frame", 11, 10, 2, 1959, 7], + ["setarg", 11, 1, 7, 1959, 7], + ["setarg", 11, 2, 8, 1959, 7], + ["invoke", 11, 8, 1959, 7], + ["access", 8, "bool", 1960, 23], + ["get", 10, 71, 1, 1960, 7], + ["frame", 11, 10, 2, 1960, 7], + ["setarg", 11, 1, 7, 1960, 7], + ["stone_text", 8], + ["setarg", 11, 2, 8, 1960, 7], + ["invoke", 11, 8, 1960, 7], + ["return", 7, 1961, 14], + "_nop_ur_7", + "if_else_332", + "if_end_333", + ["access", 7, "false", 1963, 17], + ["eq", 8, 3, 7, 1963, 17], + ["jump_false", 8, "if_else_336", 1963, 17], + ["access", 7, 0, 1964, 24], + ["ge", 8, 2, 7, 1964, 24], + ["jump_false", 8, "tern_else_338", 1964, 24], + ["move", 7, 2, 1964, 28], + ["jump", "tern_end_339", 1964, 28], + "tern_else_338", + ["get", 8, 46, 1, 1964, 37], + ["frame", 10, 8, 0, 1964, 37], + ["invoke", 10, 8, 1964, 37], + ["move", 7, 8, 1964, 37], + "tern_end_339", + ["move", 4, 7, 1964, 37], + ["false", 8, 1965, 29], + ["get", 10, 62, 1, 1965, 7], + ["frame", 11, 10, 2, 1965, 7], + ["setarg", 11, 1, 7, 1965, 7], + ["setarg", 11, 2, 8, 1965, 7], + ["invoke", 11, 8, 1965, 7], + ["access", 8, "bool", 1966, 23], + ["get", 10, 71, 1, 1966, 7], + ["frame", 11, 10, 2, 1966, 7], + ["setarg", 11, 1, 7, 1966, 7], + ["stone_text", 8], + ["setarg", 11, 2, 8, 1966, 7], + ["invoke", 11, 8, 1966, 7], + ["return", 7, 1967, 14], + "_nop_ur_8", + "if_else_336", + "if_end_337", + ["access", 7, "null", 1969, 17], + ["eq", 8, 3, 7, 1969, 17], + ["jump_false", 8, "if_else_340", 1969, 17], + ["access", 7, 0, 1970, 24], + ["ge", 8, 2, 7, 1970, 24], + ["jump_false", 8, "tern_else_342", 1970, 24], + ["move", 7, 2, 1970, 28], + ["jump", "tern_end_343", 1970, 28], + "tern_else_342", + ["get", 8, 46, 1, 1970, 37], + ["frame", 10, 8, 0, 1970, 37], + ["invoke", 10, 8, 1970, 37], + ["move", 7, 8, 1970, 37], + "tern_end_343", + ["move", 4, 7, 1970, 37], + ["get", 8, 63, 1, 1971, 7], + ["frame", 10, 8, 1, 1971, 7], + ["setarg", 10, 1, 7, 1971, 7], + ["invoke", 10, 8, 1971, 7], + ["null", 8, 1972, 23], + ["get", 10, 71, 1, 1972, 7], + ["frame", 11, 10, 2, 1972, 7], + ["setarg", 11, 1, 7, 1972, 7], + ["setarg", 11, 2, 8, 1972, 7], + ["invoke", 11, 8, 1972, 7], + ["return", 7, 1973, 14], + "_nop_ur_9", + "if_else_340", + "if_end_341", + ["access", 7, "this", 1975, 17], + ["eq", 8, 3, 7, 1975, 17], + ["jump_false", 8, "if_else_344", 1975, 17], + ["get", 7, 14, 1, 1976, 14], + ["return", 7, 1976, 14], + "_nop_ur_10", + "if_else_344", + "if_end_345", + ["access", 7, "name", 1980, 17], + ["eq", 8, 3, 7, 1980, 17], + ["jump_false", 8, "if_else_346", 1980, 17], + ["load_field", 7, 1, "name", 1981, 14], + ["move", 17, 7, 1981, 14], + ["load_field", 7, 1, "level", 1982, 15], + ["move", 18, 7, 1982, 15], + ["null", 8, 1983, 20], + ["eq", 10, 7, 8, 1983, 20], + ["jump_false", 10, "if_else_348", 1983, 20], + ["access", 18, -1, 1984, 17], + ["jump", "if_end_349", 1984, 17], + "if_else_348", + "if_end_349", + ["access", 7, 0, 1986, 20], + ["eq", 8, 18, 7, 1986, 20], + ["move", 7, 8, 1986, 20], + ["jump_true", 8, "or_end_352", 1986, 20], + ["access", 8, -1, 1986, 34], + ["eq", 10, 18, 8, 1986, 34], + ["move", 7, 10, 1986, 34], + "or_end_352", + ["jump_false", 7, "if_else_350", 1986, 34], + ["get", 7, 48, 1, 1987, 16], + ["frame", 8, 7, 1, 1987, 16], + ["setarg", 8, 1, 17, 1987, 16], + ["invoke", 8, 7, 1987, 16], + ["move", 4, 7, 1987, 16], + ["access", 8, 0, 1988, 21], + ["ge", 10, 7, 8, 1988, 21], + ["jump_false", 10, "if_else_353", 1988, 21], + ["return", 4, 1989, 18], + "_nop_ur_11", "if_else_353", "if_end_354", - ["access", 7, "true", 1694, 17], - ["eq", 8, 3, 7, 1694, 17], - ["jump_false", 8, "if_else_361", 1694, 17], - ["access", 7, 0, 1695, 24], - ["ge", 8, 2, 7, 1695, 24], - ["jump_false", 8, "tern_else_363", 1695, 24], - ["move", 7, 2, 1695, 28], - ["jump", "tern_end_364", 1695, 28], - "tern_else_363", - ["get", 8, 44, 1, 1695, 37], - ["frame", 10, 8, 0, 1695, 37], - ["invoke", 10, 8, 1695, 37], - ["move", 7, 8, 1695, 37], - "tern_end_364", - ["move", 4, 7, 1695, 37], - ["true", 8, 1696, 29], - ["get", 10, 60, 1, 1696, 7], - ["frame", 11, 10, 2, 1696, 7], - ["setarg", 11, 1, 7, 1696, 7], - ["setarg", 11, 2, 8, 1696, 7], - ["invoke", 11, 8, 1696, 7], - ["access", 8, "bool", 1697, 23], - ["get", 10, 69, 1, 1697, 7], - ["frame", 11, 10, 2, 1697, 7], - ["setarg", 11, 1, 7, 1697, 7], - ["stone_text", 8], - ["setarg", 11, 2, 8, 1697, 7], - ["invoke", 11, 8, 1697, 7], - ["return", 7, 1698, 14], - "_nop_ur_7", + ["jump", "if_end_351", 1989, 18], + "if_else_350", + ["access", 7, 0, 1991, 26], + ["gt", 8, 18, 7, 1991, 26], + ["jump_false", 8, "if_else_355", 1991, 26], + ["access", 7, 1, 1992, 23], + ["subtract", 21, 18, 7, 1992, 23], + ["get", 7, 119, 1, 1993, 18], + ["get", 8, 119, 1, 1993, 39], + ["length", 10, 8, 1993, 39], + ["access", 8, 1, 1993, 56], + "_nop_tc_1", + "_nop_tc_2", + ["subtract", 11, 10, 8, 1993, 56], + ["jump", "num_done_358", 1993, 56], + "num_err_357", + [ + "access", + 8, + { + "name": "log", + "kind": "name", + "make": "intrinsic" + }, + 1993, + 56 + ], + ["access", 10, "error", 1993, 56], + ["access", 12, "operands must be numbers", 1993, 56], + ["array", 13, 0, 1993, 56], + ["stone_text", 12], + ["push", 13, 12, 1993, 56], + ["frame", 12, 8, 2, 1993, 56], + ["null", 8, 1993, 56], + ["setarg", 12, 0, 8, 1993, 56], + ["stone_text", 10], + ["setarg", 12, 1, 10, 1993, 56], + ["setarg", 12, 2, 13, 1993, 56], + ["invoke", 12, 8, 1993, 56], + ["disrupt", 1993, 56], + "num_done_358", + ["subtract", 8, 11, 21, 1993, 60], + ["load_index", 10, 7, 8, 1993, 60], + ["move", 22, 10, 1993, 60], + ["get", 8, 94, 1, 1994, 23], + ["frame", 12, 8, 2, 1994, 23], + ["setarg", 12, 1, 10, 1994, 23], + ["setarg", 12, 2, 17, 1994, 23], + ["invoke", 12, 8, 1994, 23], + ["move", 23, 8, 1994, 23], + ["get", 10, 46, 1, 1995, 16], + ["frame", 12, 10, 0, 1995, 16], + ["invoke", 12, 10, 1995, 16], + ["move", 20, 10, 1995, 16], + ["access", 12, "get", 1996, 16], + ["get", 13, 58, 1, 1996, 9], + ["frame", 14, 13, 4, 1996, 9], + ["stone_text", 12], + ["setarg", 14, 1, 12, 1996, 9], + ["setarg", 14, 2, 10, 1996, 9], + ["setarg", 14, 3, 8, 1996, 9], + ["setarg", 14, 4, 18, 1996, 9], + ["invoke", 14, 8, 1996, 9], + ["return", 10, 1997, 16], + "_nop_ur_12", + "if_else_355", + "if_end_356", + "if_end_351", + ["get", 8, 49, 1, 2000, 16], + ["frame", 10, 8, 1, 2000, 16], + ["setarg", 10, 1, 17, 2000, 16], + ["invoke", 10, 8, 2000, 16], + ["move", 19, 8, 2000, 16], + ["access", 10, 0, 2001, 21], + ["ge", 12, 8, 10, 2001, 21], + ["jump_false", 12, "if_else_359", 2001, 21], + ["return", 19, 2002, 16], + "_nop_ur_13", + "if_else_359", + "if_end_360", + ["get", 8, 46, 1, 2004, 14], + ["frame", 10, 8, 0, 2004, 14], + ["invoke", 10, 8, 2004, 14], + ["move", 20, 8, 2004, 14], + ["get", 10, 117, 1, 2005, 7], + ["frame", 12, 10, 2, 2005, 7], + ["setarg", 12, 1, 8, 2005, 7], + ["setarg", 12, 2, 17, 2005, 7], + ["invoke", 12, 10, 2005, 7], + ["return", 8, 2006, 14], + "_nop_ur_14", + "if_else_346", + "if_end_347", + ["access", 8, ".", 2010, 17], + ["eq", 10, 3, 8, 2010, 17], + ["jump_false", 10, "if_else_361", 2010, 17], + ["load_field", 8, 1, "left", 2011, 13], + ["move", 24, 8, 2011, 13], + ["load_field", 10, 1, "right", 2012, 14], + ["move", 25, 10, 2012, 14], + ["access", 12, -1, 2013, 32], + ["get", 13, 101, 1, 2013, 18], + ["frame", 14, 13, 2, 2013, 18], + ["setarg", 14, 1, 8, 2013, 18], + ["setarg", 14, 2, 12, 2013, 18], + ["invoke", 14, 8, 2013, 18], + ["move", 26, 8, 2013, 18], + ["get", 12, 46, 1, 2014, 14], + ["frame", 13, 12, 0, 2014, 14], + ["invoke", 13, 12, 2014, 14], + ["move", 4, 12, 2014, 14], + ["get", 13, 80, 1, 2015, 7], + ["frame", 14, 13, 3, 2015, 7], + ["setarg", 14, 1, 12, 2015, 7], + ["setarg", 14, 2, 8, 2015, 7], + ["setarg", 14, 3, 10, 2015, 7], + ["invoke", 14, 8, 2015, 7], + ["return", 12, 2016, 14], + "_nop_ur_15", "if_else_361", "if_end_362", - ["access", 7, "false", 1700, 17], - ["eq", 8, 3, 7, 1700, 17], - ["jump_false", 8, "if_else_365", 1700, 17], - ["access", 7, 0, 1701, 24], - ["ge", 8, 2, 7, 1701, 24], - ["jump_false", 8, "tern_else_367", 1701, 24], - ["move", 7, 2, 1701, 28], - ["jump", "tern_end_368", 1701, 28], - "tern_else_367", - ["get", 8, 44, 1, 1701, 37], - ["frame", 10, 8, 0, 1701, 37], - ["invoke", 10, 8, 1701, 37], - ["move", 7, 8, 1701, 37], - "tern_end_368", - ["move", 4, 7, 1701, 37], - ["false", 8, 1702, 29], - ["get", 10, 60, 1, 1702, 7], - ["frame", 11, 10, 2, 1702, 7], - ["setarg", 11, 1, 7, 1702, 7], - ["setarg", 11, 2, 8, 1702, 7], - ["invoke", 11, 8, 1702, 7], - ["access", 8, "bool", 1703, 23], - ["get", 10, 69, 1, 1703, 7], - ["frame", 11, 10, 2, 1703, 7], - ["setarg", 11, 1, 7, 1703, 7], + ["access", 8, "[", 2020, 17], + ["eq", 10, 3, 8, 2020, 17], + ["jump_false", 10, "if_else_363", 2020, 17], + ["load_field", 8, 1, "left", 2021, 13], + ["move", 24, 8, 2021, 13], + ["load_field", 10, 1, "right", 2022, 13], + ["move", 27, 10, 2022, 13], + ["access", 12, -1, 2023, 32], + ["get", 13, 101, 1, 2023, 18], + ["frame", 14, 13, 2, 2023, 18], + ["setarg", 14, 1, 8, 2023, 18], + ["setarg", 14, 2, 12, 2023, 18], + ["invoke", 14, 8, 2023, 18], + ["move", 26, 8, 2023, 18], + ["access", 12, -1, 2024, 32], + ["get", 13, 101, 1, 2024, 18], + ["frame", 14, 13, 2, 2024, 18], + ["setarg", 14, 1, 10, 2024, 18], + ["setarg", 14, 2, 12, 2024, 18], + ["invoke", 14, 10, 2024, 18], + ["move", 28, 10, 2024, 18], + ["get", 12, 46, 1, 2025, 14], + ["frame", 13, 12, 0, 2025, 14], + ["invoke", 13, 12, 2025, 14], + ["move", 4, 12, 2025, 14], + ["load_field", 13, 1, "access_kind", 2026, 47], + ["get", 14, 82, 1, 2026, 7], + ["frame", 15, 14, 4, 2026, 7], + ["setarg", 15, 1, 12, 2026, 7], + ["setarg", 15, 2, 8, 2026, 7], + ["setarg", 15, 3, 10, 2026, 7], + ["setarg", 15, 4, 13, 2026, 7], + ["invoke", 15, 8, 2026, 7], + ["return", 12, 2027, 14], + "_nop_ur_16", + "if_else_363", + "if_end_364", + ["access", 8, "(", 2031, 17], + ["eq", 10, 3, 8, 2031, 17], + ["jump_false", 10, "if_else_365", 2031, 17], + ["load_field", 8, 1, "expression", 2032, 16], + ["move", 29, 8, 2032, 16], + ["load_field", 10, 1, "list", 2033, 19], + ["move", 30, 10, 2033, 19], + ["load_field", 10, 8, "kind", 2034, 21], + ["move", 31, 10, 2034, 21], + ["access", 8, "name", 2037, 26], + ["eq", 12, 10, 8, 2037, 26], + ["move", 8, 12, 2037, 26], + ["jump_false", 12, "and_end_369", 2037, 26], + ["load_field", 10, 29, "make", 2037, 36], + ["access", 12, "functino", 2037, 51], + ["eq", 13, 10, 12, 2037, 51], + ["move", 8, 13, 2037, 51], + "and_end_369", + ["jump_false", 8, "if_else_367", 2037, 51], + ["load_field", 8, 29, "name", 2038, 17], + ["move", 32, 8, 2038, 17], + ["get", 10, 4, 1, 2039, 15], + ["load_dynamic", 12, 10, 8, 2039, 28], + ["move", 33, 12, 2039, 28], + ["null", 8, 2040, 30], + ["ne", 10, 30, 8, 2040, 30], + ["jump_false", 10, "tern_else_370", 2040, 30], + ["length", 8, 30, 2040, 44], + ["move", 10, 8, 2040, 44], + ["jump", "tern_end_371", 2040, 44], + "tern_else_370", + ["access", 8, 0, 2040, 57], + ["move", 10, 8, 2040, 57], + "tern_end_371", + ["move", 34, 10, 2040, 57], + ["access", 8, "~!", 2042, 22], + ["eq", 10, 32, 8, 2042, 22], + ["jump_false", 10, "if_else_372", 2042, 22], + ["access", 8, 0, 2043, 35], + ["load_index", 10, 30, 8, 2043, 35], + ["access", 8, -1, 2043, 39], + ["get", 12, 101, 1, 2043, 16], + ["frame", 13, 12, 2, 2043, 16], + ["setarg", 13, 1, 10, 2043, 16], + ["setarg", 13, 2, 8, 2043, 16], + ["invoke", 13, 8, 2043, 16], + ["move", 35, 8, 2043, 16], + ["get", 10, 46, 1, 2044, 15], + ["frame", 12, 10, 0, 2044, 15], + ["invoke", 12, 10, 2044, 15], + ["move", 39, 10, 2044, 15], + ["get", 12, 57, 1, 2045, 11], + ["frame", 13, 12, 3, 2045, 11], + ["setarg", 13, 1, 33, 2045, 11], + ["setarg", 13, 2, 10, 2045, 11], + ["setarg", 13, 3, 8, 2045, 11], + ["invoke", 13, 8, 2045, 11], + ["return", 10, 2046, 18], + "_nop_ur_17", + "if_else_372", + "if_end_373", + ["access", 8, "[]!", 2048, 22], + ["eq", 10, 32, 8, 2048, 22], + ["jump_false", 10, "if_else_374", 2048, 22], + ["access", 8, 0, 2049, 35], + ["load_index", 10, 30, 8, 2049, 35], + ["access", 8, -1, 2049, 39], + ["get", 12, 101, 1, 2049, 16], + ["frame", 13, 12, 2, 2049, 16], + ["setarg", 13, 1, 10, 2049, 16], + ["setarg", 13, 2, 8, 2049, 16], + ["invoke", 13, 8, 2049, 16], + ["move", 35, 8, 2049, 16], + ["access", 10, 1, 2050, 35], + ["load_index", 12, 30, 10, 2050, 35], + ["access", 10, -1, 2050, 39], + ["get", 13, 101, 1, 2050, 16], + ["frame", 14, 13, 2, 2050, 16], + ["setarg", 14, 1, 12, 2050, 16], + ["setarg", 14, 2, 10, 2050, 16], + ["invoke", 14, 10, 2050, 16], + ["move", 36, 10, 2050, 16], + ["get", 12, 46, 1, 2051, 15], + ["frame", 13, 12, 0, 2051, 15], + ["invoke", 13, 12, 2051, 15], + ["move", 39, 12, 2051, 15], + ["get", 13, 82, 1, 2052, 11], + ["frame", 14, 13, 3, 2052, 11], + ["setarg", 14, 1, 12, 2052, 11], + ["setarg", 14, 2, 8, 2052, 11], + ["setarg", 14, 3, 10, 2052, 11], + ["invoke", 14, 8, 2052, 11], + ["return", 12, 2053, 18], + "_nop_ur_18", + "if_else_374", + "if_end_375", + ["access", 8, "=!", 2055, 23], + ["eq", 10, 32, 8, 2055, 23], + ["move", 8, 10, 2055, 23], + ["jump_true", 10, "or_end_379", 2055, 23], + ["access", 10, "!=!", 2055, 40], + ["eq", 12, 32, 10, 2055, 40], + ["move", 8, 12, 2055, 40], + "or_end_379", + ["move", 10, 8, 2055, 40], + ["jump_false", 8, "and_end_378", 2055, 40], + ["access", 8, 3, 2055, 59], + ["eq", 12, 34, 8, 2055, 59], + ["move", 10, 12, 2055, 59], + "and_end_378", + ["jump_false", 10, "if_else_376", 2055, 59], + ["access", 8, 0, 2056, 35], + ["load_index", 10, 30, 8, 2056, 35], + ["access", 8, -1, 2056, 39], + ["get", 12, 101, 1, 2056, 16], + ["frame", 13, 12, 2, 2056, 16], + ["setarg", 13, 1, 10, 2056, 16], + ["setarg", 13, 2, 8, 2056, 16], + ["invoke", 13, 8, 2056, 16], + ["move", 35, 8, 2056, 16], + ["access", 8, 1, 2057, 35], + ["load_index", 10, 30, 8, 2057, 35], + ["access", 8, -1, 2057, 39], + ["get", 12, 101, 1, 2057, 16], + ["frame", 13, 12, 2, 2057, 16], + ["setarg", 13, 1, 10, 2057, 16], + ["setarg", 13, 2, 8, 2057, 16], + ["invoke", 13, 8, 2057, 16], + ["move", 36, 8, 2057, 16], + ["access", 8, 2, 2058, 35], + ["load_index", 10, 30, 8, 2058, 35], + ["access", 8, -1, 2058, 39], + ["get", 12, 101, 1, 2058, 16], + ["frame", 13, 12, 2, 2058, 16], + ["setarg", 13, 1, 10, 2058, 16], + ["setarg", 13, 2, 8, 2058, 16], + ["invoke", 13, 8, 2058, 16], + ["move", 37, 8, 2058, 16], + ["get", 8, 46, 1, 2059, 15], + ["frame", 10, 8, 0, 2059, 15], + ["invoke", 10, 8, 2059, 15], + ["move", 39, 8, 2059, 15], + ["access", 8, "=!", 2060, 26], + ["eq", 10, 32, 8, 2060, 26], + ["jump_false", 10, "tern_else_380", 2060, 26], + ["access", 8, "eq_tol", 2060, 33], ["stone_text", 8], - ["setarg", 11, 2, 8, 1703, 7], - ["invoke", 11, 8, 1703, 7], - ["return", 7, 1704, 14], - "_nop_ur_8", - "if_else_365", - "if_end_366", - ["access", 7, "null", 1706, 17], - ["eq", 8, 3, 7, 1706, 17], - ["jump_false", 8, "if_else_369", 1706, 17], - ["access", 7, 0, 1707, 24], - ["ge", 8, 2, 7, 1707, 24], - ["jump_false", 8, "tern_else_371", 1707, 24], - ["move", 7, 2, 1707, 28], - ["jump", "tern_end_372", 1707, 28], - "tern_else_371", - ["get", 8, 44, 1, 1707, 37], - ["frame", 10, 8, 0, 1707, 37], - ["invoke", 10, 8, 1707, 37], - ["move", 7, 8, 1707, 37], - "tern_end_372", - ["move", 4, 7, 1707, 37], - ["get", 8, 61, 1, 1708, 7], - ["frame", 10, 8, 1, 1708, 7], - ["setarg", 10, 1, 7, 1708, 7], - ["invoke", 10, 8, 1708, 7], - ["null", 8, 1709, 23], - ["get", 10, 69, 1, 1709, 7], - ["frame", 11, 10, 2, 1709, 7], - ["setarg", 11, 1, 7, 1709, 7], - ["setarg", 11, 2, 8, 1709, 7], - ["invoke", 11, 8, 1709, 7], - ["return", 7, 1710, 14], - "_nop_ur_9", - "if_else_369", - "if_end_370", - ["access", 7, "this", 1712, 17], - ["eq", 8, 3, 7, 1712, 17], - ["jump_false", 8, "if_else_373", 1712, 17], - ["get", 7, 14, 1, 1713, 14], - ["return", 7, 1713, 14], - "_nop_ur_10", - "if_else_373", - "if_end_374", - ["access", 7, "name", 1717, 17], - ["eq", 8, 3, 7, 1717, 17], - ["jump_false", 8, "if_else_375", 1717, 17], - ["load_field", 7, 1, "name", 1718, 14], - ["move", 17, 7, 1718, 14], - ["load_field", 7, 1, "level", 1719, 15], - ["move", 18, 7, 1719, 15], - ["null", 8, 1720, 20], - ["eq", 10, 7, 8, 1720, 20], - ["jump_false", 10, "if_else_377", 1720, 20], - ["access", 18, -1, 1721, 17], - ["jump", "if_end_378", 1721, 17], - "if_else_377", - "if_end_378", - ["access", 7, 0, 1723, 20], - ["eq", 8, 18, 7, 1723, 20], - ["move", 7, 8, 1723, 20], - ["jump_true", 8, "or_end_381", 1723, 20], - ["access", 8, -1, 1723, 34], - ["eq", 10, 18, 8, 1723, 34], - ["move", 7, 10, 1723, 34], - "or_end_381", - ["jump_false", 7, "if_else_379", 1723, 34], - ["get", 7, 46, 1, 1724, 16], - ["frame", 8, 7, 1, 1724, 16], - ["setarg", 8, 1, 17, 1724, 16], - ["invoke", 8, 7, 1724, 16], - ["move", 4, 7, 1724, 16], - ["access", 8, 0, 1725, 21], - ["ge", 10, 7, 8, 1725, 21], - ["jump_false", 10, "if_else_382", 1725, 21], - ["return", 4, 1726, 18], - "_nop_ur_11", + ["move", 10, 8, 2060, 33], + ["jump", "tern_end_381", 2060, 33], + "tern_else_380", + ["access", 8, "ne_tol", 2060, 44], + ["stone_text", 8], + ["move", 10, 8, 2060, 44], + "tern_end_381", + ["stone_text", 10], + ["move", 40, 10, 2060, 44], + ["array", 8, 4, 2061, 40], + ["push", 8, 39, 2061, 40], + ["push", 8, 35, 2061, 40], + ["push", 8, 36, 2061, 40], + ["push", 8, 37, 2061, 40], + ["get", 12, 59, 1, 2061, 11], + ["frame", 13, 12, 2, 2061, 11], + ["stone_text", 10], + ["setarg", 13, 1, 10, 2061, 11], + ["setarg", 13, 2, 8, 2061, 11], + ["invoke", 13, 8, 2061, 11], + ["return", 39, 2062, 18], + "_nop_ur_19", + "if_else_376", + "if_end_377", + ["access", 8, "&&!", 2064, 22], + ["eq", 10, 32, 8, 2064, 22], + ["jump_false", 10, "if_else_382", 2064, 22], + ["access", 8, 0, 2065, 35], + ["load_index", 10, 30, 8, 2065, 35], + ["access", 8, -1, 2065, 39], + ["get", 12, 101, 1, 2065, 16], + ["frame", 13, 12, 2, 2065, 16], + ["setarg", 13, 1, 10, 2065, 16], + ["setarg", 13, 2, 8, 2065, 16], + ["invoke", 13, 8, 2065, 16], + ["move", 35, 8, 2065, 16], + ["access", 10, 1, 2066, 35], + ["load_index", 12, 30, 10, 2066, 35], + ["access", 10, -1, 2066, 39], + ["get", 13, 101, 1, 2066, 16], + ["frame", 14, 13, 2, 2066, 16], + ["setarg", 14, 1, 12, 2066, 16], + ["setarg", 14, 2, 10, 2066, 16], + ["invoke", 14, 10, 2066, 16], + ["move", 36, 10, 2066, 16], + ["get", 12, 46, 1, 2067, 15], + ["frame", 13, 12, 0, 2067, 15], + ["invoke", 13, 12, 2067, 15], + ["move", 39, 12, 2067, 15], + ["access", 13, "and", 2068, 18], + ["get", 14, 58, 1, 2068, 11], + ["frame", 15, 14, 4, 2068, 11], + ["stone_text", 13], + ["setarg", 15, 1, 13, 2068, 11], + ["setarg", 15, 2, 12, 2068, 11], + ["setarg", 15, 3, 8, 2068, 11], + ["setarg", 15, 4, 10, 2068, 11], + ["invoke", 15, 8, 2068, 11], + ["return", 12, 2069, 18], + "_nop_ur_20", "if_else_382", "if_end_383", - ["jump", "if_end_380", 1726, 18], - "if_else_379", - ["access", 7, 0, 1728, 26], - ["gt", 8, 18, 7, 1728, 26], - ["jump_false", 8, "if_else_384", 1728, 26], - ["access", 7, 1, 1729, 23], - ["subtract", 21, 18, 7, 1729, 23], - ["get", 7, 109, 1, 1730, 18], - ["get", 8, 109, 1, 1730, 39], - ["length", 10, 8, 1730, 39], - ["access", 8, 1, 1730, 56], - "_nop_tc_9", - "_nop_tc_10", - "_nop_tc_11", - "_nop_tc_12", - ["subtract", 11, 10, 8, 1730, 56], - ["jump", "num_done_387", 1730, 56], - "num_err_386", - "_nop_ucfg_25", - "_nop_ucfg_26", - "_nop_ucfg_27", - "_nop_ucfg_28", - "_nop_ucfg_29", - "_nop_ucfg_30", - "_nop_ucfg_31", - "_nop_ucfg_32", - "_nop_ucfg_33", - "_nop_ucfg_34", - "_nop_ucfg_35", - "_nop_ucfg_36", - "num_done_387", - ["subtract", 8, 11, 21, 1730, 60], - ["load_index", 10, 7, 8, 1730, 60], - ["move", 22, 10, 1730, 60], - ["get", 7, 92, 1, 1731, 23], - ["frame", 8, 7, 2, 1731, 23], - ["setarg", 8, 1, 10, 1731, 23], - ["setarg", 8, 2, 17, 1731, 23], - ["invoke", 8, 7, 1731, 23], - ["move", 23, 7, 1731, 23], - ["get", 8, 44, 1, 1732, 16], - ["frame", 10, 8, 0, 1732, 16], - ["invoke", 10, 8, 1732, 16], - ["move", 20, 8, 1732, 16], - ["access", 10, "get", 1733, 16], - ["get", 11, 56, 1, 1733, 9], - ["frame", 12, 11, 4, 1733, 9], - ["stone_text", 10], - ["setarg", 12, 1, 10, 1733, 9], - ["setarg", 12, 2, 8, 1733, 9], - ["setarg", 12, 3, 7, 1733, 9], - ["setarg", 12, 4, 18, 1733, 9], - ["invoke", 12, 7, 1733, 9], - ["return", 8, 1734, 16], - "_nop_ur_12", + ["access", 8, "||!", 2071, 22], + ["eq", 10, 32, 8, 2071, 22], + ["jump_false", 10, "if_else_384", 2071, 22], + ["access", 8, 0, 2072, 35], + ["load_index", 10, 30, 8, 2072, 35], + ["access", 8, -1, 2072, 39], + ["get", 12, 101, 1, 2072, 16], + ["frame", 13, 12, 2, 2072, 16], + ["setarg", 13, 1, 10, 2072, 16], + ["setarg", 13, 2, 8, 2072, 16], + ["invoke", 13, 8, 2072, 16], + ["move", 35, 8, 2072, 16], + ["access", 10, 1, 2073, 35], + ["load_index", 12, 30, 10, 2073, 35], + ["access", 10, -1, 2073, 39], + ["get", 13, 101, 1, 2073, 16], + ["frame", 14, 13, 2, 2073, 16], + ["setarg", 14, 1, 12, 2073, 16], + ["setarg", 14, 2, 10, 2073, 16], + ["invoke", 14, 10, 2073, 16], + ["move", 36, 10, 2073, 16], + ["get", 12, 46, 1, 2074, 15], + ["frame", 13, 12, 0, 2074, 15], + ["invoke", 13, 12, 2074, 15], + ["move", 39, 12, 2074, 15], + ["access", 13, "or", 2075, 18], + ["get", 14, 58, 1, 2075, 11], + ["frame", 15, 14, 4, 2075, 11], + ["stone_text", 13], + ["setarg", 15, 1, 13, 2075, 11], + ["setarg", 15, 2, 12, 2075, 11], + ["setarg", 15, 3, 8, 2075, 11], + ["setarg", 15, 4, 10, 2075, 11], + ["invoke", 15, 8, 2075, 11], + ["return", 12, 2076, 18], + "_nop_ur_21", "if_else_384", "if_end_385", - "if_end_380", - ["get", 7, 47, 1, 1737, 16], - ["frame", 8, 7, 1, 1737, 16], - ["setarg", 8, 1, 17, 1737, 16], - ["invoke", 8, 7, 1737, 16], - ["move", 19, 7, 1737, 16], - ["access", 8, 0, 1738, 21], - ["ge", 10, 7, 8, 1738, 21], - ["jump_false", 10, "if_else_388", 1738, 21], - ["return", 19, 1739, 16], - "_nop_ur_13", - "if_else_388", - "if_end_389", - ["get", 7, 44, 1, 1741, 14], - ["frame", 8, 7, 0, 1741, 14], - ["invoke", 8, 7, 1741, 14], - ["move", 20, 7, 1741, 14], - ["get", 8, 107, 1, 1742, 7], - ["frame", 10, 8, 2, 1742, 7], - ["setarg", 10, 1, 7, 1742, 7], - ["setarg", 10, 2, 17, 1742, 7], - ["invoke", 10, 8, 1742, 7], - ["return", 7, 1743, 14], - "_nop_ur_14", - "if_else_375", - "if_end_376", - ["access", 7, ".", 1747, 17], - ["eq", 8, 3, 7, 1747, 17], - ["jump_false", 8, "if_else_390", 1747, 17], - ["load_field", 7, 1, "left", 1748, 13], - ["move", 24, 7, 1748, 13], - ["load_field", 8, 1, "right", 1749, 14], - ["move", 25, 8, 1749, 14], - ["access", 10, -1, 1750, 32], - ["get", 11, 97, 1, 1750, 18], - ["frame", 12, 11, 2, 1750, 18], - ["setarg", 12, 1, 7, 1750, 18], - ["setarg", 12, 2, 10, 1750, 18], - ["invoke", 12, 7, 1750, 18], - ["move", 26, 7, 1750, 18], - ["get", 10, 44, 1, 1751, 14], - ["frame", 11, 10, 0, 1751, 14], - ["invoke", 11, 10, 1751, 14], - ["move", 4, 10, 1751, 14], - ["get", 11, 78, 1, 1752, 7], - ["frame", 12, 11, 3, 1752, 7], - ["setarg", 12, 1, 10, 1752, 7], - ["setarg", 12, 2, 7, 1752, 7], - ["setarg", 12, 3, 8, 1752, 7], - ["invoke", 12, 7, 1752, 7], - ["return", 10, 1753, 14], - "_nop_ur_15", - "if_else_390", - "if_end_391", - ["access", 7, "[", 1757, 17], - ["eq", 8, 3, 7, 1757, 17], - ["jump_false", 8, "if_else_392", 1757, 17], - ["load_field", 7, 1, "left", 1758, 13], - ["move", 24, 7, 1758, 13], - ["load_field", 8, 1, "right", 1759, 13], - ["move", 27, 8, 1759, 13], - ["access", 10, -1, 1760, 32], - ["get", 11, 97, 1, 1760, 18], - ["frame", 12, 11, 2, 1760, 18], - ["setarg", 12, 1, 7, 1760, 18], - ["setarg", 12, 2, 10, 1760, 18], - ["invoke", 12, 7, 1760, 18], - ["move", 26, 7, 1760, 18], - ["access", 10, -1, 1761, 32], - ["get", 11, 97, 1, 1761, 18], - ["frame", 12, 11, 2, 1761, 18], - ["setarg", 12, 1, 8, 1761, 18], - ["setarg", 12, 2, 10, 1761, 18], - ["invoke", 12, 8, 1761, 18], - ["move", 28, 8, 1761, 18], - ["get", 10, 44, 1, 1762, 14], - ["frame", 11, 10, 0, 1762, 14], - ["invoke", 11, 10, 1762, 14], - ["move", 4, 10, 1762, 14], - ["load_field", 11, 1, "access_kind", 1763, 47], - ["get", 12, 80, 1, 1763, 7], - ["frame", 13, 12, 4, 1763, 7], - ["setarg", 13, 1, 10, 1763, 7], - ["setarg", 13, 2, 7, 1763, 7], - ["setarg", 13, 3, 8, 1763, 7], - ["setarg", 13, 4, 11, 1763, 7], - ["invoke", 13, 7, 1763, 7], - ["return", 10, 1764, 14], - "_nop_ur_16", - "if_else_392", - "if_end_393", - ["access", 7, "(", 1768, 17], - ["eq", 8, 3, 7, 1768, 17], - ["jump_false", 8, "if_else_394", 1768, 17], - ["load_field", 7, 1, "expression", 1769, 16], - ["move", 29, 7, 1769, 16], - ["load_field", 8, 1, "list", 1770, 19], - ["move", 30, 8, 1770, 19], - ["load_field", 8, 7, "kind", 1771, 21], - ["move", 31, 8, 1771, 21], - ["access", 7, "name", 1774, 26], - ["eq", 10, 8, 7, 1774, 26], - ["move", 7, 10, 1774, 26], - ["jump_false", 10, "and_end_398", 1774, 26], - ["load_field", 8, 29, "make", 1774, 36], - ["access", 10, "functino", 1774, 51], - ["eq", 11, 8, 10, 1774, 51], - ["move", 7, 11, 1774, 51], - "and_end_398", - ["jump_false", 7, "if_else_396", 1774, 51], - ["load_field", 7, 29, "name", 1775, 17], - ["move", 32, 7, 1775, 17], - ["get", 8, 4, 1, 1776, 15], - ["load_dynamic", 10, 8, 7, 1776, 28], - ["move", 33, 10, 1776, 28], - ["null", 7, 1777, 30], - ["ne", 8, 30, 7, 1777, 30], - ["jump_false", 8, "tern_else_399", 1777, 30], - ["length", 7, 30, 1777, 44], - ["move", 8, 7, 1777, 44], - ["jump", "tern_end_400", 1777, 44], - "tern_else_399", - ["access", 7, 0, 1777, 57], - ["move", 8, 7, 1777, 57], - "tern_end_400", - ["move", 34, 8, 1777, 57], - ["access", 7, "~!", 1779, 22], - ["eq", 8, 32, 7, 1779, 22], - ["jump_false", 8, "if_else_401", 1779, 22], - ["access", 7, 0, 1780, 35], - ["load_index", 8, 30, 7, 1780, 35], - ["access", 7, -1, 1780, 39], - ["get", 10, 97, 1, 1780, 16], - ["frame", 11, 10, 2, 1780, 16], - ["setarg", 11, 1, 8, 1780, 16], - ["setarg", 11, 2, 7, 1780, 16], - ["invoke", 11, 7, 1780, 16], - ["move", 35, 7, 1780, 16], - ["get", 8, 44, 1, 1781, 15], - ["frame", 10, 8, 0, 1781, 15], - ["invoke", 10, 8, 1781, 15], - ["move", 39, 8, 1781, 15], - ["get", 10, 55, 1, 1782, 11], - ["frame", 11, 10, 3, 1782, 11], - ["setarg", 11, 1, 33, 1782, 11], - ["setarg", 11, 2, 8, 1782, 11], - ["setarg", 11, 3, 7, 1782, 11], - ["invoke", 11, 7, 1782, 11], - ["return", 8, 1783, 18], - "_nop_ur_17", - "if_else_401", - "if_end_402", - ["access", 7, "[]!", 1785, 22], - ["eq", 8, 32, 7, 1785, 22], - ["jump_false", 8, "if_else_403", 1785, 22], - ["access", 7, 0, 1786, 35], - ["load_index", 8, 30, 7, 1786, 35], - ["access", 7, -1, 1786, 39], - ["get", 10, 97, 1, 1786, 16], - ["frame", 11, 10, 2, 1786, 16], - ["setarg", 11, 1, 8, 1786, 16], - ["setarg", 11, 2, 7, 1786, 16], - ["invoke", 11, 7, 1786, 16], - ["move", 35, 7, 1786, 16], - ["access", 8, 1, 1787, 35], - ["load_index", 10, 30, 8, 1787, 35], - ["access", 8, -1, 1787, 39], - ["get", 11, 97, 1, 1787, 16], - ["frame", 12, 11, 2, 1787, 16], - ["setarg", 12, 1, 10, 1787, 16], - ["setarg", 12, 2, 8, 1787, 16], - ["invoke", 12, 8, 1787, 16], - ["move", 36, 8, 1787, 16], - ["get", 10, 44, 1, 1788, 15], - ["frame", 11, 10, 0, 1788, 15], - ["invoke", 11, 10, 1788, 15], - ["move", 39, 10, 1788, 15], - ["get", 11, 80, 1, 1789, 11], - ["frame", 12, 11, 3, 1789, 11], - ["setarg", 12, 1, 10, 1789, 11], - ["setarg", 12, 2, 7, 1789, 11], - ["setarg", 12, 3, 8, 1789, 11], - ["invoke", 12, 7, 1789, 11], - ["return", 10, 1790, 18], - "_nop_ur_18", - "if_else_403", - "if_end_404", - ["access", 7, "=!", 1792, 23], - ["eq", 8, 32, 7, 1792, 23], - ["move", 7, 8, 1792, 23], - ["jump_true", 8, "or_end_408", 1792, 23], - ["access", 8, "!=!", 1792, 40], - ["eq", 10, 32, 8, 1792, 40], - ["move", 7, 10, 1792, 40], - "or_end_408", - ["move", 8, 7, 1792, 40], - ["jump_false", 7, "and_end_407", 1792, 40], - ["access", 7, 3, 1792, 59], - ["eq", 10, 34, 7, 1792, 59], - ["move", 8, 10, 1792, 59], - "and_end_407", - ["jump_false", 8, "if_else_405", 1792, 59], - ["access", 7, 0, 1793, 35], - ["load_index", 8, 30, 7, 1793, 35], - ["access", 7, -1, 1793, 39], - ["get", 10, 97, 1, 1793, 16], - ["frame", 11, 10, 2, 1793, 16], - ["setarg", 11, 1, 8, 1793, 16], - ["setarg", 11, 2, 7, 1793, 16], - ["invoke", 11, 7, 1793, 16], - ["move", 35, 7, 1793, 16], - ["access", 7, 1, 1794, 35], - ["load_index", 8, 30, 7, 1794, 35], - ["access", 7, -1, 1794, 39], - ["get", 10, 97, 1, 1794, 16], - ["frame", 11, 10, 2, 1794, 16], - ["setarg", 11, 1, 8, 1794, 16], - ["setarg", 11, 2, 7, 1794, 16], - ["invoke", 11, 7, 1794, 16], - ["move", 36, 7, 1794, 16], - ["access", 7, 2, 1795, 35], - ["load_index", 8, 30, 7, 1795, 35], - ["access", 7, -1, 1795, 39], - ["get", 10, 97, 1, 1795, 16], - ["frame", 11, 10, 2, 1795, 16], - ["setarg", 11, 1, 8, 1795, 16], - ["setarg", 11, 2, 7, 1795, 16], - ["invoke", 11, 7, 1795, 16], - ["move", 37, 7, 1795, 16], - ["get", 7, 44, 1, 1796, 15], - ["frame", 8, 7, 0, 1796, 15], - ["invoke", 8, 7, 1796, 15], - ["move", 39, 7, 1796, 15], - ["access", 7, "=!", 1797, 26], - ["eq", 8, 32, 7, 1797, 26], - ["jump_false", 8, "tern_else_409", 1797, 26], - ["access", 7, "eq_tol", 1797, 33], - ["move", 8, 7, 1797, 33], - ["jump", "tern_end_410", 1797, 33], - "tern_else_409", - ["access", 7, "ne_tol", 1797, 44], - ["move", 8, 7, 1797, 44], - "tern_end_410", - ["stone_text", 8], - ["move", 40, 8, 1797, 44], - ["array", 7, 4, 1798, 40], - ["push", 7, 39, 1798, 40], - ["push", 7, 35, 1798, 40], - ["push", 7, 36, 1798, 40], - ["push", 7, 37, 1798, 40], - ["get", 10, 57, 1, 1798, 11], - ["frame", 11, 10, 2, 1798, 11], - ["stone_text", 8], - ["setarg", 11, 1, 8, 1798, 11], - ["setarg", 11, 2, 7, 1798, 11], - ["invoke", 11, 7, 1798, 11], - ["return", 39, 1799, 18], - "_nop_ur_19", - "if_else_405", - "if_end_406", - ["access", 7, "&&!", 1801, 22], - ["eq", 8, 32, 7, 1801, 22], - ["jump_false", 8, "if_else_411", 1801, 22], - ["access", 7, 0, 1802, 35], - ["load_index", 8, 30, 7, 1802, 35], - ["access", 7, -1, 1802, 39], - ["get", 10, 97, 1, 1802, 16], - ["frame", 11, 10, 2, 1802, 16], - ["setarg", 11, 1, 8, 1802, 16], - ["setarg", 11, 2, 7, 1802, 16], - ["invoke", 11, 7, 1802, 16], - ["move", 35, 7, 1802, 16], - ["access", 8, 1, 1803, 35], - ["load_index", 10, 30, 8, 1803, 35], - ["access", 8, -1, 1803, 39], - ["get", 11, 97, 1, 1803, 16], - ["frame", 12, 11, 2, 1803, 16], - ["setarg", 12, 1, 10, 1803, 16], - ["setarg", 12, 2, 8, 1803, 16], - ["invoke", 12, 8, 1803, 16], - ["move", 36, 8, 1803, 16], - ["get", 10, 44, 1, 1804, 15], - ["frame", 11, 10, 0, 1804, 15], - ["invoke", 11, 10, 1804, 15], - ["move", 39, 10, 1804, 15], - ["access", 11, "and", 1805, 18], - ["get", 12, 56, 1, 1805, 11], - ["frame", 13, 12, 4, 1805, 11], - ["stone_text", 11], - ["setarg", 13, 1, 11, 1805, 11], - ["setarg", 13, 2, 10, 1805, 11], - ["setarg", 13, 3, 7, 1805, 11], - ["setarg", 13, 4, 8, 1805, 11], - ["invoke", 13, 7, 1805, 11], - ["return", 10, 1806, 18], - "_nop_ur_20", - "if_else_411", - "if_end_412", - ["access", 7, "||!", 1808, 22], - ["eq", 8, 32, 7, 1808, 22], - ["jump_false", 8, "if_else_413", 1808, 22], - ["access", 7, 0, 1809, 35], - ["load_index", 8, 30, 7, 1809, 35], - ["access", 7, -1, 1809, 39], - ["get", 10, 97, 1, 1809, 16], - ["frame", 11, 10, 2, 1809, 16], - ["setarg", 11, 1, 8, 1809, 16], - ["setarg", 11, 2, 7, 1809, 16], - ["invoke", 11, 7, 1809, 16], - ["move", 35, 7, 1809, 16], - ["access", 8, 1, 1810, 35], - ["load_index", 10, 30, 8, 1810, 35], - ["access", 8, -1, 1810, 39], - ["get", 11, 97, 1, 1810, 16], - ["frame", 12, 11, 2, 1810, 16], - ["setarg", 12, 1, 10, 1810, 16], - ["setarg", 12, 2, 8, 1810, 16], - ["invoke", 12, 8, 1810, 16], - ["move", 36, 8, 1810, 16], - ["get", 10, 44, 1, 1811, 15], - ["frame", 11, 10, 0, 1811, 15], - ["invoke", 11, 10, 1811, 15], - ["move", 39, 10, 1811, 15], - ["access", 11, "or", 1812, 18], - ["get", 12, 56, 1, 1812, 11], - ["frame", 13, 12, 4, 1812, 11], - ["stone_text", 11], - ["setarg", 13, 1, 11, 1812, 11], - ["setarg", 13, 2, 10, 1812, 11], - ["setarg", 13, 3, 7, 1812, 11], - ["setarg", 13, 4, 8, 1812, 11], - ["invoke", 13, 7, 1812, 11], - ["return", 10, 1813, 18], - "_nop_ur_21", - "if_else_413", - "if_end_414", - ["access", 7, 0, 1816, 33], - ["load_index", 8, 30, 7, 1816, 33], - ["access", 7, -1, 1816, 37], - ["get", 10, 97, 1, 1816, 14], - ["frame", 11, 10, 2, 1816, 14], - ["setarg", 11, 1, 8, 1816, 14], - ["setarg", 11, 2, 7, 1816, 14], - ["invoke", 11, 7, 1816, 14], - ["move", 35, 7, 1816, 14], - ["access", 8, 1, 1817, 33], - ["load_index", 10, 30, 8, 1817, 33], - ["access", 8, -1, 1817, 37], - ["get", 11, 97, 1, 1817, 14], - ["frame", 12, 11, 2, 1817, 14], - ["setarg", 12, 1, 10, 1817, 14], - ["setarg", 12, 2, 8, 1817, 14], - ["invoke", 12, 8, 1817, 14], - ["move", 36, 8, 1817, 14], - ["get", 10, 44, 1, 1818, 13], - ["frame", 11, 10, 0, 1818, 13], - ["invoke", 11, 10, 1818, 13], - ["move", 39, 10, 1818, 13], - ["access", 11, 0, 1819, 28], - ["load_index", 12, 30, 11, 1819, 28], - ["put", 12, 38, 1, 1819, 28], - ["access", 11, 1, 1820, 28], - ["load_index", 12, 30, 11, 1820, 28], - ["put", 12, 39, 1, 1820, 28], - ["get", 11, 77, 1, 1821, 9], - ["frame", 12, 11, 4, 1821, 9], - ["setarg", 12, 1, 33, 1821, 9], - ["setarg", 12, 2, 10, 1821, 9], - ["setarg", 12, 3, 7, 1821, 9], - ["setarg", 12, 4, 8, 1821, 9], - ["invoke", 12, 7, 1821, 9], - ["return", 10, 1822, 16], + ["access", 8, 0, 2079, 33], + ["load_index", 10, 30, 8, 2079, 33], + ["access", 8, -1, 2079, 37], + ["get", 12, 101, 1, 2079, 14], + ["frame", 13, 12, 2, 2079, 14], + ["setarg", 13, 1, 10, 2079, 14], + ["setarg", 13, 2, 8, 2079, 14], + ["invoke", 13, 8, 2079, 14], + ["move", 35, 8, 2079, 14], + ["access", 10, 1, 2080, 33], + ["load_index", 12, 30, 10, 2080, 33], + ["access", 10, -1, 2080, 37], + ["get", 13, 101, 1, 2080, 14], + ["frame", 14, 13, 2, 2080, 14], + ["setarg", 14, 1, 12, 2080, 14], + ["setarg", 14, 2, 10, 2080, 14], + ["invoke", 14, 10, 2080, 14], + ["move", 36, 10, 2080, 14], + ["get", 12, 46, 1, 2081, 13], + ["frame", 13, 12, 0, 2081, 13], + ["invoke", 13, 12, 2081, 13], + ["move", 39, 12, 2081, 13], + ["access", 13, 0, 2082, 28], + ["load_index", 14, 30, 13, 2082, 28], + ["put", 14, 40, 1, 2082, 28], + ["access", 13, 1, 2083, 28], + ["load_index", 14, 30, 13, 2083, 28], + ["put", 14, 41, 1, 2083, 28], + ["get", 13, 79, 1, 2084, 9], + ["frame", 14, 13, 4, 2084, 9], + ["setarg", 14, 1, 33, 2084, 9], + ["setarg", 14, 2, 12, 2084, 9], + ["setarg", 14, 3, 8, 2084, 9], + ["setarg", 14, 4, 10, 2084, 9], + ["invoke", 14, 8, 2084, 9], + ["return", 12, 2085, 16], "_nop_ur_22", - "if_else_396", - "if_end_397", - ["access", 7, "name", 1826, 26], - ["eq", 8, 31, 7, 1826, 26], - ["move", 7, 8, 1826, 26], - ["jump_false", 8, "and_end_417", 1826, 26], - ["load_field", 8, 29, "intrinsic", 1826, 36], - ["true", 10, 1826, 56], - ["eq", 11, 8, 10, 1826, 56], - ["move", 7, 11, 1826, 56], - "and_end_417", - ["jump_false", 7, "if_else_415", 1826, 56], - ["load_field", 7, 29, "name", 1827, 17], - ["move", 32, 7, 1827, 17], - ["null", 7, 1828, 30], - ["ne", 8, 30, 7, 1828, 30], - ["jump_false", 8, "tern_else_418", 1828, 30], - ["length", 7, 30, 1828, 44], - ["move", 8, 7, 1828, 44], - ["jump", "tern_end_419", 1828, 44], - "tern_else_418", - ["access", 7, 0, 1828, 57], - ["move", 8, 7, 1828, 57], - "tern_end_419", - ["move", 34, 8, 1828, 57], - ["get", 7, 8, 1, 1829, 15], - ["load_dynamic", 8, 7, 32, 1829, 39], - ["move", 33, 8, 1829, 39], - ["null", 7, 1830, 20], - ["ne", 10, 8, 7, 1830, 20], - ["move", 7, 10, 1830, 20], - ["jump_false", 10, "and_end_422", 1830, 20], - ["access", 8, 1, 1830, 37], - ["eq", 10, 34, 8, 1830, 37], - ["move", 7, 10, 1830, 37], - "and_end_422", - ["jump_false", 7, "if_else_420", 1830, 37], - ["access", 7, 0, 1831, 35], - ["load_index", 8, 30, 7, 1831, 35], - ["access", 7, -1, 1831, 39], - ["get", 10, 97, 1, 1831, 16], - ["frame", 11, 10, 2, 1831, 16], - ["setarg", 11, 1, 8, 1831, 16], - ["setarg", 11, 2, 7, 1831, 16], - ["invoke", 11, 7, 1831, 16], - ["move", 35, 7, 1831, 16], - ["get", 8, 88, 1, 1832, 18], - ["frame", 10, 8, 2, 1832, 18], - ["setarg", 10, 1, 33, 1832, 18], - ["setarg", 10, 2, 7, 1832, 18], - ["tail_invoke", 10, 7, 1832, 18], - ["return", 7, 1832, 18], + "if_else_367", + "if_end_368", + ["access", 8, "name", 2089, 26], + ["eq", 10, 31, 8, 2089, 26], + ["move", 8, 10, 2089, 26], + ["jump_false", 10, "and_end_388", 2089, 26], + ["load_field", 10, 29, "intrinsic", 2089, 36], + ["true", 12, 2089, 56], + ["eq", 13, 10, 12, 2089, 56], + ["move", 8, 13, 2089, 56], + "and_end_388", + ["jump_false", 8, "if_else_386", 2089, 56], + ["load_field", 8, 29, "name", 2090, 17], + ["move", 32, 8, 2090, 17], + ["null", 8, 2091, 30], + ["ne", 10, 30, 8, 2091, 30], + ["jump_false", 10, "tern_else_389", 2091, 30], + ["length", 8, 30, 2091, 44], + ["move", 10, 8, 2091, 44], + ["jump", "tern_end_390", 2091, 44], + "tern_else_389", + ["access", 8, 0, 2091, 57], + ["move", 10, 8, 2091, 57], + "tern_end_390", + ["move", 34, 10, 2091, 57], + ["get", 8, 8, 1, 2092, 15], + ["load_dynamic", 10, 8, 32, 2092, 39], + ["move", 33, 10, 2092, 39], + ["null", 8, 2093, 20], + ["ne", 12, 10, 8, 2093, 20], + ["move", 8, 12, 2093, 20], + ["jump_false", 12, "and_end_393", 2093, 20], + ["access", 10, 1, 2093, 37], + ["eq", 12, 34, 10, 2093, 37], + ["move", 8, 12, 2093, 37], + "and_end_393", + ["jump_false", 8, "if_else_391", 2093, 37], + ["access", 8, 0, 2094, 35], + ["load_index", 10, 30, 8, 2094, 35], + ["access", 8, -1, 2094, 39], + ["get", 12, 101, 1, 2094, 16], + ["frame", 13, 12, 2, 2094, 16], + ["setarg", 13, 1, 10, 2094, 16], + ["setarg", 13, 2, 8, 2094, 16], + ["invoke", 13, 8, 2094, 16], + ["move", 35, 8, 2094, 16], + ["get", 10, 90, 1, 2095, 18], + ["frame", 12, 10, 2, 2095, 18], + ["setarg", 12, 1, 33, 2095, 18], + ["setarg", 12, 2, 8, 2095, 18], + ["tail_invoke", 12, 8, 2095, 18], + ["return", 8, 2095, 18], "_nop_ur_23", - "if_else_420", - "if_end_421", - ["get", 7, 9, 1, 1834, 15], - ["load_dynamic", 8, 7, 32, 1834, 40], - ["move", 33, 8, 1834, 40], - ["null", 7, 1835, 20], - ["ne", 10, 8, 7, 1835, 20], - ["move", 7, 10, 1835, 20], - ["jump_false", 10, "and_end_425", 1835, 20], - ["access", 8, 2, 1835, 37], - ["eq", 10, 34, 8, 1835, 37], - ["move", 7, 10, 1835, 37], - "and_end_425", - ["jump_false", 7, "if_else_423", 1835, 37], - ["access", 7, 0, 1836, 35], - ["load_index", 8, 30, 7, 1836, 35], - ["access", 7, -1, 1836, 39], - ["get", 10, 97, 1, 1836, 16], - ["frame", 11, 10, 2, 1836, 16], - ["setarg", 11, 1, 8, 1836, 16], - ["setarg", 11, 2, 7, 1836, 16], - ["invoke", 11, 7, 1836, 16], - ["move", 35, 7, 1836, 16], - ["access", 8, 1, 1837, 35], - ["load_index", 10, 30, 8, 1837, 35], - ["access", 8, -1, 1837, 39], - ["get", 11, 97, 1, 1837, 16], - ["frame", 12, 11, 2, 1837, 16], - ["setarg", 12, 1, 10, 1837, 16], - ["setarg", 12, 2, 8, 1837, 16], - ["invoke", 12, 8, 1837, 16], - ["move", 36, 8, 1837, 16], - ["get", 10, 89, 1, 1838, 18], - ["frame", 11, 10, 3, 1838, 18], - ["setarg", 11, 1, 33, 1838, 18], - ["setarg", 11, 2, 7, 1838, 18], - ["setarg", 11, 3, 8, 1838, 18], - ["tail_invoke", 11, 7, 1838, 18], - ["return", 7, 1838, 18], + "if_else_391", + "if_end_392", + ["get", 8, 9, 1, 2097, 15], + ["load_dynamic", 10, 8, 32, 2097, 40], + ["move", 33, 10, 2097, 40], + ["null", 8, 2098, 20], + ["ne", 12, 10, 8, 2098, 20], + ["move", 8, 12, 2098, 20], + ["jump_false", 12, "and_end_396", 2098, 20], + ["access", 10, 2, 2098, 37], + ["eq", 12, 34, 10, 2098, 37], + ["move", 8, 12, 2098, 37], + "and_end_396", + ["jump_false", 8, "if_else_394", 2098, 37], + ["access", 8, 0, 2099, 35], + ["load_index", 10, 30, 8, 2099, 35], + ["access", 8, -1, 2099, 39], + ["get", 12, 101, 1, 2099, 16], + ["frame", 13, 12, 2, 2099, 16], + ["setarg", 13, 1, 10, 2099, 16], + ["setarg", 13, 2, 8, 2099, 16], + ["invoke", 13, 8, 2099, 16], + ["move", 35, 8, 2099, 16], + ["access", 10, 1, 2100, 35], + ["load_index", 12, 30, 10, 2100, 35], + ["access", 10, -1, 2100, 39], + ["get", 13, 101, 1, 2100, 16], + ["frame", 14, 13, 2, 2100, 16], + ["setarg", 14, 1, 12, 2100, 16], + ["setarg", 14, 2, 10, 2100, 16], + ["invoke", 14, 10, 2100, 16], + ["move", 36, 10, 2100, 16], + ["get", 12, 91, 1, 2101, 18], + ["frame", 13, 12, 3, 2101, 18], + ["setarg", 13, 1, 33, 2101, 18], + ["setarg", 13, 2, 8, 2101, 18], + ["setarg", 13, 3, 10, 2101, 18], + ["tail_invoke", 13, 8, 2101, 18], + ["return", 8, 2101, 18], "_nop_ur_24", - "if_else_423", - "if_end_424", - ["get", 7, 10, 1, 1840, 15], - ["load_dynamic", 8, 7, 32, 1840, 39], - ["move", 33, 8, 1840, 39], - ["null", 7, 1841, 20], - ["ne", 10, 8, 7, 1841, 20], - ["move", 7, 10, 1841, 20], - ["jump_false", 10, "and_end_428", 1841, 20], - ["access", 8, 1, 1841, 38], - ["eq", 10, 34, 8, 1841, 38], - ["move", 8, 10, 1841, 38], - ["jump_true", 10, "or_end_429", 1841, 38], - ["access", 10, 2, 1841, 52], - ["eq", 11, 34, 10, 1841, 52], - ["move", 8, 11, 1841, 52], - "or_end_429", - ["move", 7, 8, 1841, 52], - "and_end_428", - ["jump_false", 7, "if_else_426", 1841, 52], - ["access", 7, 0, 1842, 35], - ["load_index", 8, 30, 7, 1842, 35], - ["access", 7, -1, 1842, 39], - ["get", 10, 97, 1, 1842, 16], - ["frame", 11, 10, 2, 1842, 16], - ["setarg", 11, 1, 8, 1842, 16], - ["setarg", 11, 2, 7, 1842, 16], - ["invoke", 11, 7, 1842, 16], - ["move", 35, 7, 1842, 16], - ["access", 7, 2, 1843, 24], - ["eq", 8, 34, 7, 1843, 24], - ["jump_false", 8, "if_else_430", 1843, 24], - ["access", 7, 1, 1844, 37], - ["load_index", 8, 30, 7, 1844, 37], - ["access", 7, -1, 1844, 41], - ["get", 10, 97, 1, 1844, 18], - ["frame", 11, 10, 2, 1844, 18], - ["setarg", 11, 1, 8, 1844, 18], - ["setarg", 11, 2, 7, 1844, 18], - ["invoke", 11, 7, 1844, 18], - ["move", 36, 7, 1844, 18], - ["jump", "if_end_431", 1844, 18], - "if_else_430", - ["get", 7, 44, 1, 1846, 18], - ["frame", 8, 7, 0, 1846, 18], - ["invoke", 8, 7, 1846, 18], - ["move", 36, 7, 1846, 18], - ["access", 8, "null", 1847, 20], - ["get", 10, 54, 1, 1847, 13], - ["frame", 11, 10, 2, 1847, 13], - ["stone_text", 8], - ["setarg", 11, 1, 8, 1847, 13], - ["setarg", 11, 2, 7, 1847, 13], - ["invoke", 11, 7, 1847, 13], - "if_end_431", - ["get", 7, 90, 1, 1849, 18], - ["frame", 8, 7, 3, 1849, 18], - ["setarg", 8, 1, 33, 1849, 18], - ["setarg", 8, 2, 35, 1849, 18], - ["setarg", 8, 3, 36, 1849, 18], - ["tail_invoke", 8, 7, 1849, 18], - ["return", 7, 1849, 18], - "_nop_ur_25", - "if_else_426", - "if_end_427", - ["access", 7, 1, 1852, 22], - ["eq", 8, 34, 7, 1852, 22], - ["move", 7, 8, 1852, 22], - ["jump_false", 8, "and_end_434", 1852, 22], - ["get", 8, 7, 1, 1852, 27], - ["load_dynamic", 10, 8, 32, 1852, 39], - ["null", 8, 1852, 49], - ["ne", 11, 10, 8, 1852, 49], - ["move", 7, 11, 1852, 49], - "and_end_434", - ["jump_false", 7, "if_else_432", 1852, 49], - ["access", 7, 0, 1853, 37], - ["load_index", 8, 30, 7, 1853, 37], - ["access", 7, -1, 1853, 41], - ["get", 10, 97, 1, 1853, 18], - ["frame", 11, 10, 2, 1853, 18], - ["setarg", 11, 1, 8, 1853, 18], - ["setarg", 11, 2, 7, 1853, 18], - ["invoke", 11, 7, 1853, 18], - ["move", 35, 7, 1853, 18], - ["get", 8, 44, 1, 1854, 17], - ["frame", 10, 8, 0, 1854, 17], - ["invoke", 10, 8, 1854, 17], - ["move", 39, 8, 1854, 17], - ["get", 10, 7, 1, 1855, 20], - ["load_dynamic", 11, 10, 32, 1855, 32], - ["get", 10, 55, 1, 1855, 13], - ["frame", 12, 10, 3, 1855, 13], - ["setarg", 12, 1, 11, 1855, 13], - ["setarg", 12, 2, 8, 1855, 13], - ["setarg", 12, 3, 7, 1855, 13], - ["invoke", 12, 7, 1855, 13], - ["return", 8, 1856, 20], - "_nop_ur_26", - "if_else_432", - "if_end_433", - ["access", 7, 2, 1859, 22], - ["eq", 8, 34, 7, 1859, 22], - ["move", 7, 8, 1859, 22], - ["jump_false", 8, "and_end_437", 1859, 22], - ["access", 8, "push", 1859, 36], - ["eq", 10, 32, 8, 1859, 36], - ["move", 7, 10, 1859, 36], - "and_end_437", - ["jump_false", 7, "if_else_435", 1859, 36], - ["access", 7, 0, 1860, 35], - ["load_index", 8, 30, 7, 1860, 35], - ["access", 7, -1, 1860, 39], - ["get", 10, 97, 1, 1860, 16], - ["frame", 11, 10, 2, 1860, 16], - ["setarg", 11, 1, 8, 1860, 16], - ["setarg", 11, 2, 7, 1860, 16], - ["invoke", 11, 7, 1860, 16], - ["move", 35, 7, 1860, 16], - ["access", 8, 1, 1861, 35], - ["load_index", 10, 30, 8, 1861, 35], - ["access", 8, -1, 1861, 39], - ["get", 11, 97, 1, 1861, 16], - ["frame", 12, 11, 2, 1861, 16], - ["setarg", 12, 1, 10, 1861, 16], - ["setarg", 12, 2, 8, 1861, 16], - ["invoke", 12, 8, 1861, 16], - ["move", 36, 8, 1861, 16], - ["get", 10, 44, 1, 1862, 21], - ["frame", 11, 10, 0, 1862, 21], - ["invoke", 11, 10, 1862, 21], - ["move", 74, 10, 1862, 21], - ["access", 11, "push_err", 1863, 33], - ["get", 12, 49, 1, 1863, 23], - ["frame", 13, 12, 1, 1863, 23], - ["stone_text", 11], - ["setarg", 13, 1, 11, 1863, 23], - ["invoke", 13, 11, 1863, 23], - ["move", 75, 11, 1863, 23], - ["access", 12, "push_done", 1864, 34], - ["get", 13, 49, 1, 1864, 24], - ["frame", 14, 13, 1, 1864, 24], - ["stone_text", 12], - ["setarg", 14, 1, 12, 1864, 24], - ["invoke", 14, 12, 1864, 24], - ["move", 76, 12, 1864, 24], - ["access", 13, "is_array", 1865, 18], - ["get", 14, 55, 1, 1865, 11], - ["frame", 15, 14, 3, 1865, 11], - ["stone_text", 13], - ["setarg", 15, 1, 13, 1865, 11], - ["setarg", 15, 2, 10, 1865, 11], - ["setarg", 15, 3, 7, 1865, 11], - ["invoke", 15, 13, 1865, 11], - ["access", 13, "jump_false", 1866, 26], - ["get", 14, 64, 1, 1866, 11], - ["frame", 15, 14, 3, 1866, 11], - ["stone_text", 13], - ["setarg", 15, 1, 13, 1866, 11], - ["setarg", 15, 2, 10, 1866, 11], - ["setarg", 15, 3, 11, 1866, 11], - ["invoke", 15, 10, 1866, 11], - ["access", 10, "push", 1867, 18], - ["get", 13, 55, 1, 1867, 11], - ["frame", 14, 13, 3, 1867, 11], - ["stone_text", 10], - ["setarg", 14, 1, 10, 1867, 11], - ["setarg", 14, 2, 7, 1867, 11], - ["setarg", 14, 3, 8, 1867, 11], - ["invoke", 14, 7, 1867, 11], - ["get", 7, 63, 1, 1868, 11], - ["frame", 10, 7, 1, 1868, 11], - ["setarg", 10, 1, 12, 1868, 11], - ["invoke", 10, 7, 1868, 11], - ["get", 7, 52, 1, 1869, 11], - ["frame", 10, 7, 1, 1869, 11], - ["setarg", 10, 1, 11, 1869, 11], - ["invoke", 10, 7, 1869, 11], - ["access", 7, "cannot push: target must be an array", 1870, 26], - ["get", 10, 62, 1, 1870, 11], - ["frame", 11, 10, 1, 1870, 11], - ["stone_text", 7], - ["setarg", 11, 1, 7, 1870, 11], - ["invoke", 11, 7, 1870, 11], - ["access", 7, "disrupt", 1871, 18], - ["get", 10, 53, 1, 1871, 11], - ["frame", 11, 10, 1, 1871, 11], - ["stone_text", 7], - ["setarg", 11, 1, 7, 1871, 11], - ["invoke", 11, 7, 1871, 11], - ["get", 7, 52, 1, 1872, 11], - ["frame", 10, 7, 1, 1872, 11], - ["setarg", 10, 1, 12, 1872, 11], - ["invoke", 10, 7, 1872, 11], - ["return", 8, 1873, 18], - "_nop_ur_27", - "if_else_435", - "if_end_436", - ["access", 7, 2, 1876, 22], - ["eq", 8, 34, 7, 1876, 22], - ["move", 7, 8, 1876, 22], - ["jump_false", 8, "and_end_441", 1876, 22], - ["access", 8, "arrfor", 1876, 36], - ["eq", 10, 32, 8, 1876, 36], - ["move", 7, 10, 1876, 36], - "and_end_441", - ["move", 8, 7, 1876, 36], - ["jump_false", 7, "and_end_440", 1876, 36], - ["get", 7, 41, 1, 1876, 48], - ["move", 8, 7, 1876, 48], - "and_end_440", - ["jump_false", 8, "if_else_438", 1876, 48], - ["access", 7, 0, 1877, 35], - ["load_index", 8, 30, 7, 1877, 35], - ["access", 7, -1, 1877, 39], - ["get", 10, 97, 1, 1877, 16], - ["frame", 11, 10, 2, 1877, 16], - ["setarg", 11, 1, 8, 1877, 16], - ["setarg", 11, 2, 7, 1877, 16], - ["invoke", 11, 7, 1877, 16], - ["move", 35, 7, 1877, 16], - ["access", 8, 1, 1878, 35], - ["load_index", 10, 30, 8, 1878, 35], - ["access", 8, -1, 1878, 39], - ["get", 11, 97, 1, 1878, 16], - ["frame", 12, 11, 2, 1878, 16], - ["setarg", 12, 1, 10, 1878, 16], - ["setarg", 12, 2, 8, 1878, 16], - ["invoke", 12, 8, 1878, 16], - ["move", 36, 8, 1878, 16], - ["get", 10, 44, 1, 1879, 15], - ["frame", 11, 10, 0, 1879, 15], - ["invoke", 11, 10, 1879, 15], - ["move", 39, 10, 1879, 15], - ["get", 11, 99, 1, 1880, 18], - ["frame", 12, 11, 3, 1880, 18], - ["setarg", 12, 1, 10, 1880, 18], - ["setarg", 12, 2, 7, 1880, 18], - ["setarg", 12, 3, 8, 1880, 18], - ["tail_invoke", 12, 7, 1880, 18], - ["return", 7, 1880, 18], - "_nop_ur_28", - "if_else_438", - "if_end_439", - ["access", 7, 2, 1882, 22], - ["eq", 8, 34, 7, 1882, 22], - ["move", 7, 8, 1882, 22], - ["jump_false", 8, "and_end_445", 1882, 22], - ["access", 8, "every", 1882, 36], - ["eq", 10, 32, 8, 1882, 36], - ["move", 7, 10, 1882, 36], - "and_end_445", - ["move", 8, 7, 1882, 36], - ["jump_false", 7, "and_end_444", 1882, 36], - ["get", 7, 94, 1, 1882, 47], - ["move", 8, 7, 1882, 47], - "and_end_444", - ["jump_false", 8, "if_else_442", 1882, 47], - ["access", 7, 0, 1883, 35], - ["load_index", 8, 30, 7, 1883, 35], - ["access", 7, -1, 1883, 39], - ["get", 10, 97, 1, 1883, 16], - ["frame", 11, 10, 2, 1883, 16], - ["setarg", 11, 1, 8, 1883, 16], - ["setarg", 11, 2, 7, 1883, 16], - ["invoke", 11, 7, 1883, 16], - ["move", 35, 7, 1883, 16], - ["access", 8, 1, 1884, 35], - ["load_index", 10, 30, 8, 1884, 35], - ["access", 8, -1, 1884, 39], - ["get", 11, 97, 1, 1884, 16], - ["frame", 12, 11, 2, 1884, 16], - ["setarg", 12, 1, 10, 1884, 16], - ["setarg", 12, 2, 8, 1884, 16], - ["invoke", 12, 8, 1884, 16], - ["move", 36, 8, 1884, 16], - ["get", 10, 44, 1, 1885, 15], - ["frame", 11, 10, 0, 1885, 15], - ["invoke", 11, 10, 1885, 15], - ["move", 39, 10, 1885, 15], - ["get", 11, 100, 1, 1886, 18], - ["frame", 12, 11, 3, 1886, 18], - ["setarg", 12, 1, 10, 1886, 18], - ["setarg", 12, 2, 7, 1886, 18], - ["setarg", 12, 3, 8, 1886, 18], - ["tail_invoke", 12, 7, 1886, 18], - ["return", 7, 1886, 18], - "_nop_ur_29", - "if_else_442", - "if_end_443", - ["access", 7, 2, 1888, 22], - ["eq", 8, 34, 7, 1888, 22], - ["move", 7, 8, 1888, 22], - ["jump_false", 8, "and_end_449", 1888, 22], - ["access", 8, "some", 1888, 36], - ["eq", 10, 32, 8, 1888, 36], - ["move", 7, 10, 1888, 36], - "and_end_449", - ["move", 8, 7, 1888, 36], - ["jump_false", 7, "and_end_448", 1888, 36], - ["get", 7, 95, 1, 1888, 46], - ["move", 8, 7, 1888, 46], - "and_end_448", - ["jump_false", 8, "if_else_446", 1888, 46], - ["access", 7, 0, 1889, 35], - ["load_index", 8, 30, 7, 1889, 35], - ["access", 7, -1, 1889, 39], - ["get", 10, 97, 1, 1889, 16], - ["frame", 11, 10, 2, 1889, 16], - ["setarg", 11, 1, 8, 1889, 16], - ["setarg", 11, 2, 7, 1889, 16], - ["invoke", 11, 7, 1889, 16], - ["move", 35, 7, 1889, 16], - ["access", 8, 1, 1890, 35], - ["load_index", 10, 30, 8, 1890, 35], - ["access", 8, -1, 1890, 39], - ["get", 11, 97, 1, 1890, 16], - ["frame", 12, 11, 2, 1890, 16], - ["setarg", 12, 1, 10, 1890, 16], - ["setarg", 12, 2, 8, 1890, 16], - ["invoke", 12, 8, 1890, 16], - ["move", 36, 8, 1890, 16], - ["get", 10, 44, 1, 1891, 15], - ["frame", 11, 10, 0, 1891, 15], - ["invoke", 11, 10, 1891, 15], - ["move", 39, 10, 1891, 15], - ["get", 11, 101, 1, 1892, 18], - ["frame", 12, 11, 3, 1892, 18], - ["setarg", 12, 1, 10, 1892, 18], - ["setarg", 12, 2, 7, 1892, 18], - ["setarg", 12, 3, 8, 1892, 18], - ["tail_invoke", 12, 7, 1892, 18], - ["return", 7, 1892, 18], - "_nop_ur_30", - "if_else_446", - "if_end_447", - ["access", 7, 2, 1894, 22], - ["eq", 8, 34, 7, 1894, 22], - ["move", 7, 8, 1894, 22], - ["jump_false", 8, "and_end_453", 1894, 22], - ["access", 8, "filter", 1894, 36], - ["eq", 10, 32, 8, 1894, 36], - ["move", 7, 10, 1894, 36], - "and_end_453", - ["move", 8, 7, 1894, 36], - ["jump_false", 7, "and_end_452", 1894, 36], - ["get", 7, 93, 1, 1894, 48], - ["move", 8, 7, 1894, 48], - "and_end_452", - ["jump_false", 8, "if_else_450", 1894, 48], - ["access", 7, 0, 1895, 35], - ["load_index", 8, 30, 7, 1895, 35], - ["access", 7, -1, 1895, 39], - ["get", 10, 97, 1, 1895, 16], - ["frame", 11, 10, 2, 1895, 16], - ["setarg", 11, 1, 8, 1895, 16], - ["setarg", 11, 2, 7, 1895, 16], - ["invoke", 11, 7, 1895, 16], - ["move", 35, 7, 1895, 16], - ["access", 8, 1, 1896, 35], - ["load_index", 10, 30, 8, 1896, 35], - ["access", 8, -1, 1896, 39], - ["get", 11, 97, 1, 1896, 16], - ["frame", 12, 11, 2, 1896, 16], - ["setarg", 12, 1, 10, 1896, 16], - ["setarg", 12, 2, 8, 1896, 16], - ["invoke", 12, 8, 1896, 16], - ["move", 36, 8, 1896, 16], - ["get", 10, 44, 1, 1897, 15], - ["frame", 11, 10, 0, 1897, 15], - ["invoke", 11, 10, 1897, 15], - ["move", 39, 10, 1897, 15], - ["get", 11, 102, 1, 1898, 18], - ["frame", 12, 11, 3, 1898, 18], - ["setarg", 12, 1, 10, 1898, 18], - ["setarg", 12, 2, 7, 1898, 18], - ["setarg", 12, 3, 8, 1898, 18], - ["tail_invoke", 12, 7, 1898, 18], - ["return", 7, 1898, 18], - "_nop_ur_31", - "if_else_450", - "if_end_451", - ["access", 7, "reduce", 1900, 22], - ["eq", 8, 32, 7, 1900, 22], - ["move", 7, 8, 1900, 22], - ["jump_false", 8, "and_end_458", 1900, 22], - ["access", 8, 2, 1900, 43], - ["ge", 10, 34, 8, 1900, 43], - ["move", 7, 10, 1900, 43], - "and_end_458", - ["move", 8, 7, 1900, 43], - ["jump_false", 7, "and_end_457", 1900, 43], - ["access", 7, 4, 1900, 57], - ["le", 10, 34, 7, 1900, 57], - ["move", 8, 10, 1900, 57], - "and_end_457", - ["move", 7, 8, 1900, 57], - ["jump_false", 8, "and_end_456", 1900, 57], - ["get", 8, 96, 1, 1900, 62], - ["move", 7, 8, 1900, 62], - "and_end_456", - ["jump_false", 7, "if_else_454", 1900, 62], - ["access", 7, 0, 1901, 35], - ["load_index", 8, 30, 7, 1901, 35], - ["access", 7, -1, 1901, 39], - ["get", 10, 97, 1, 1901, 16], - ["frame", 11, 10, 2, 1901, 16], - ["setarg", 11, 1, 8, 1901, 16], - ["setarg", 11, 2, 7, 1901, 16], - ["invoke", 11, 7, 1901, 16], - ["move", 35, 7, 1901, 16], - ["access", 7, 1, 1902, 35], - ["load_index", 8, 30, 7, 1902, 35], - ["access", 7, -1, 1902, 39], - ["get", 10, 97, 1, 1902, 16], - ["frame", 11, 10, 2, 1902, 16], - ["setarg", 11, 1, 8, 1902, 16], - ["setarg", 11, 2, 7, 1902, 16], - ["invoke", 11, 7, 1902, 16], - ["move", 36, 7, 1902, 16], - ["access", 7, 3, 1903, 25], - ["ge", 8, 34, 7, 1903, 25], - ["jump_false", 8, "tern_else_459", 1903, 25], - ["access", 7, 2, 1903, 48], - ["load_index", 8, 30, 7, 1903, 48], - ["access", 7, -1, 1903, 52], - ["get", 10, 97, 1, 1903, 29], - ["frame", 11, 10, 2, 1903, 29], - ["setarg", 11, 1, 8, 1903, 29], - ["setarg", 11, 2, 7, 1903, 29], - ["invoke", 11, 7, 1903, 29], - ["move", 8, 7, 1903, 29], - ["jump", "tern_end_460", 1903, 29], - "tern_else_459", - ["access", 7, -1, 1903, 58], - ["move", 8, 7, 1903, 58], - "tern_end_460", - ["move", 37, 8, 1903, 58], - ["access", 7, 4, 1904, 25], - ["ge", 8, 34, 7, 1904, 25], - ["jump_false", 8, "tern_else_461", 1904, 25], - ["access", 7, 3, 1904, 48], - ["load_index", 8, 30, 7, 1904, 48], - ["access", 7, -1, 1904, 52], - ["get", 10, 97, 1, 1904, 29], - ["frame", 11, 10, 2, 1904, 29], - ["setarg", 11, 1, 8, 1904, 29], - ["setarg", 11, 2, 7, 1904, 29], - ["invoke", 11, 7, 1904, 29], - ["move", 8, 7, 1904, 29], - ["jump", "tern_end_462", 1904, 29], - "tern_else_461", - ["access", 7, -1, 1904, 58], - ["move", 8, 7, 1904, 58], - "tern_end_462", - ["move", 38, 8, 1904, 58], - ["get", 7, 44, 1, 1905, 15], - ["frame", 10, 7, 0, 1905, 15], - ["invoke", 10, 7, 1905, 15], - ["move", 39, 7, 1905, 15], - ["record", 10, 4], - ["store_field", 10, 35, "arr", 1906, 48], - ["store_field", 10, 36, "fn", 1906, 56], - ["store_field", 10, 37, "init", 1906, 66], - ["store_field", 10, 8, "rev", 1906, 75], - ["get", 8, 103, 1, 1906, 18], - ["frame", 11, 8, 3, 1906, 18], - ["setarg", 11, 1, 7, 1906, 18], - ["setarg", 11, 2, 10, 1906, 18], - ["setarg", 11, 3, 34, 1906, 18], - ["tail_invoke", 11, 7, 1906, 18], - ["return", 7, 1906, 18], - "_nop_ur_32", - "if_else_454", - "if_end_455", - ["jump", "if_end_416", 1906, 18], - "if_else_415", - "if_end_416", - ["array", 7, 0, 1911, 19], - ["move", 41, 7, 1911, 19], - ["access", 9, 0, 1912, 12], - ["null", 7, 1913, 28], - ["ne", 8, 30, 7, 1913, 28], - ["jump_false", 8, "tern_else_463", 1913, 28], - ["length", 7, 30, 1913, 42], - ["move", 8, 7, 1913, 42], - ["jump", "tern_end_464", 1913, 42], - "tern_else_463", - ["access", 7, 0, 1913, 55], - ["move", 8, 7, 1913, 55], - "tern_end_464", - ["move", 34, 8, 1913, 55], - "while_start_465", - ["lt", 7, 9, 34, 1914, 19], - ["jump_false", 7, "while_end_466", 1914, 19], - ["load_index", 7, 30, 9, 1915, 44], - ["access", 8, -1, 1915, 49], - ["get", 10, 97, 1, 1915, 25], - ["frame", 11, 10, 2, 1915, 25], - ["setarg", 11, 1, 7, 1915, 25], - ["setarg", 11, 2, 8, 1915, 25], - ["invoke", 11, 7, 1915, 25], - ["is_array", 8, 41, 1915, 25], - ["jump_false", 8, "push_err_467", 1915, 25], - ["push", 41, 7, 1915, 25], - ["jump", "push_done_468", 1915, 25], - "push_err_467", - [ - "access", - 7, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 1915, - 25 - ], - ["access", 8, "error", 1915, 25], - ["access", 10, "cannot push: target must be an array", 1915, 25], - ["array", 11, 0, 1915, 25], - ["stone_text", 10], - ["push", 11, 10, 1915, 25], - ["frame", 10, 7, 2, 1915, 25], - ["null", 7, 1915, 25], - ["setarg", 10, 0, 7, 1915, 25], - ["stone_text", 8], - ["setarg", 10, 1, 8, 1915, 25], - ["setarg", 10, 2, 11, 1915, 25], - ["invoke", 10, 7, 1915, 25], - ["disrupt", 1915, 25], - "push_done_468", - ["access", 7, 1, 1916, 19], - "_nop_tc_13", - "_nop_tc_14", - "_nop_tc_15", - "_nop_tc_16", - ["add", 9, 9, 7, 1916, 19], - ["jump", "num_done_470", 1916, 19], - "num_err_469", - "_nop_ucfg_37", - "_nop_ucfg_38", - "_nop_ucfg_39", - "_nop_ucfg_40", - "_nop_ucfg_41", - "_nop_ucfg_42", - "_nop_ucfg_43", - "_nop_ucfg_44", - "_nop_ucfg_45", - "_nop_ucfg_46", - "_nop_ucfg_47", - "_nop_ucfg_48", - "num_done_470", - ["jump", "while_start_465", 1916, 19], - "while_end_466", - ["get", 7, 44, 1, 1918, 14], - ["frame", 8, 7, 0, 1918, 14], - ["invoke", 8, 7, 1918, 14], - ["move", 20, 7, 1918, 14], - ["access", 7, ".", 1919, 26], - ["eq", 8, 31, 7, 1919, 26], - ["jump_false", 8, "if_else_471", 1919, 26], - ["load_field", 7, 29, "left", 1920, 15], - ["move", 24, 7, 1920, 15], - ["load_field", 8, 29, "right", 1921, 16], - ["move", 25, 8, 1921, 16], - ["access", 10, -1, 1922, 34], - ["get", 11, 97, 1, 1922, 20], - ["frame", 12, 11, 2, 1922, 20], - ["setarg", 12, 1, 7, 1922, 20], - ["setarg", 12, 2, 10, 1922, 20], - ["invoke", 12, 7, 1922, 20], - ["move", 26, 7, 1922, 20], - ["get", 10, 83, 1, 1923, 9], - ["frame", 11, 10, 4, 1923, 9], - ["setarg", 11, 1, 20, 1923, 9], - ["setarg", 11, 2, 7, 1923, 9], - ["setarg", 11, 3, 8, 1923, 9], - ["setarg", 11, 4, 41, 1923, 9], - ["invoke", 11, 7, 1923, 9], - ["jump", "if_end_472", 1923, 9], - "if_else_471", - ["access", 7, "[", 1924, 33], - ["eq", 8, 31, 7, 1924, 33], - ["jump_false", 8, "if_else_473", 1924, 33], - ["load_field", 7, 29, "left", 1925, 15], - ["move", 24, 7, 1925, 15], - ["load_field", 8, 29, "right", 1926, 20], - ["move", 42, 8, 1926, 20], - ["access", 10, -1, 1927, 34], - ["get", 11, 97, 1, 1927, 20], - ["frame", 12, 11, 2, 1927, 20], - ["setarg", 12, 1, 7, 1927, 20], - ["setarg", 12, 2, 10, 1927, 20], - ["invoke", 12, 7, 1927, 20], - ["move", 26, 7, 1927, 20], - ["access", 10, -1, 1928, 39], - ["get", 11, 97, 1, 1928, 20], - ["frame", 12, 11, 2, 1928, 20], - ["setarg", 12, 1, 8, 1928, 20], - ["setarg", 12, 2, 10, 1928, 20], - ["invoke", 12, 8, 1928, 20], - ["move", 43, 8, 1928, 20], - ["get", 10, 84, 1, 1929, 9], - ["frame", 11, 10, 4, 1929, 9], - ["setarg", 11, 1, 20, 1929, 9], - ["setarg", 11, 2, 7, 1929, 9], - ["setarg", 11, 3, 8, 1929, 9], - ["setarg", 11, 4, 41, 1929, 9], - ["invoke", 11, 7, 1929, 9], - ["jump", "if_end_474", 1929, 9], - "if_else_473", - ["access", 7, -1, 1931, 38], - ["get", 8, 97, 1, 1931, 21], - ["frame", 10, 8, 2, 1931, 21], - ["setarg", 10, 1, 29, 1931, 21], - ["setarg", 10, 2, 7, 1931, 21], - ["invoke", 10, 7, 1931, 21], - ["move", 44, 7, 1931, 21], - ["get", 8, 82, 1, 1932, 9], - ["frame", 10, 8, 3, 1932, 9], - ["setarg", 10, 1, 20, 1932, 9], - ["setarg", 10, 2, 7, 1932, 9], - ["setarg", 10, 3, 41, 1932, 9], - ["invoke", 10, 7, 1932, 9], - "if_end_474", - "if_end_472", - ["return", 20, 1934, 14], - "_nop_ur_33", "if_else_394", "if_end_395", - ["access", 7, "!", 1938, 17], - ["eq", 8, 3, 7, 1938, 17], - ["jump_false", 8, "if_else_475", 1938, 17], - ["load_field", 7, 1, "expression", 1939, 31], - ["access", 8, -1, 1939, 48], - ["get", 10, 97, 1, 1939, 22], - ["frame", 11, 10, 2, 1939, 22], - ["setarg", 11, 1, 7, 1939, 22], - ["setarg", 11, 2, 8, 1939, 22], - ["invoke", 11, 7, 1939, 22], - ["move", 45, 7, 1939, 22], - ["get", 8, 44, 1, 1940, 14], - ["frame", 10, 8, 0, 1940, 14], - ["invoke", 10, 8, 1940, 14], - ["move", 4, 8, 1940, 14], - ["access", 10, "not", 1941, 14], - ["get", 11, 55, 1, 1941, 7], - ["frame", 12, 11, 3, 1941, 7], + ["get", 8, 10, 1, 2103, 15], + ["load_dynamic", 10, 8, 32, 2103, 39], + ["move", 33, 10, 2103, 39], + ["null", 8, 2104, 20], + ["ne", 12, 10, 8, 2104, 20], + ["move", 8, 12, 2104, 20], + ["jump_false", 12, "and_end_399", 2104, 20], + ["access", 10, 1, 2104, 38], + ["eq", 12, 34, 10, 2104, 38], + ["move", 10, 12, 2104, 38], + ["jump_true", 12, "or_end_400", 2104, 38], + ["access", 12, 2, 2104, 52], + ["eq", 13, 34, 12, 2104, 52], + ["move", 10, 13, 2104, 52], + "or_end_400", + ["move", 8, 10, 2104, 52], + "and_end_399", + ["jump_false", 8, "if_else_397", 2104, 52], + ["access", 8, 0, 2105, 35], + ["load_index", 10, 30, 8, 2105, 35], + ["access", 8, -1, 2105, 39], + ["get", 12, 101, 1, 2105, 16], + ["frame", 13, 12, 2, 2105, 16], + ["setarg", 13, 1, 10, 2105, 16], + ["setarg", 13, 2, 8, 2105, 16], + ["invoke", 13, 8, 2105, 16], + ["move", 35, 8, 2105, 16], + ["access", 8, 2, 2106, 24], + ["eq", 10, 34, 8, 2106, 24], + ["jump_false", 10, "if_else_401", 2106, 24], + ["access", 8, 1, 2107, 37], + ["load_index", 10, 30, 8, 2107, 37], + ["access", 8, -1, 2107, 41], + ["get", 12, 101, 1, 2107, 18], + ["frame", 13, 12, 2, 2107, 18], + ["setarg", 13, 1, 10, 2107, 18], + ["setarg", 13, 2, 8, 2107, 18], + ["invoke", 13, 8, 2107, 18], + ["move", 36, 8, 2107, 18], + ["jump", "if_end_402", 2107, 18], + "if_else_401", + ["get", 8, 46, 1, 2109, 18], + ["frame", 10, 8, 0, 2109, 18], + ["invoke", 10, 8, 2109, 18], + ["move", 36, 8, 2109, 18], + ["access", 10, "null", 2110, 20], + ["get", 12, 56, 1, 2110, 13], + ["frame", 13, 12, 2, 2110, 13], ["stone_text", 10], - ["setarg", 12, 1, 10, 1941, 7], - ["setarg", 12, 2, 8, 1941, 7], - ["setarg", 12, 3, 7, 1941, 7], - ["invoke", 12, 7, 1941, 7], - ["return", 8, 1942, 14], + ["setarg", 13, 1, 10, 2110, 13], + ["setarg", 13, 2, 8, 2110, 13], + ["invoke", 13, 8, 2110, 13], + "if_end_402", + ["get", 8, 92, 1, 2112, 18], + ["frame", 10, 8, 3, 2112, 18], + ["setarg", 10, 1, 33, 2112, 18], + ["setarg", 10, 2, 35, 2112, 18], + ["setarg", 10, 3, 36, 2112, 18], + ["tail_invoke", 10, 8, 2112, 18], + ["return", 8, 2112, 18], + "_nop_ur_25", + "if_else_397", + "if_end_398", + ["access", 8, 1, 2115, 22], + ["eq", 10, 34, 8, 2115, 22], + ["move", 8, 10, 2115, 22], + ["jump_false", 10, "and_end_405", 2115, 22], + ["get", 10, 7, 1, 2115, 27], + ["load_dynamic", 12, 10, 32, 2115, 39], + ["null", 10, 2115, 49], + ["ne", 13, 12, 10, 2115, 49], + ["move", 8, 13, 2115, 49], + "and_end_405", + ["jump_false", 8, "if_else_403", 2115, 49], + ["access", 8, 0, 2116, 37], + ["load_index", 10, 30, 8, 2116, 37], + ["access", 8, -1, 2116, 41], + ["get", 12, 101, 1, 2116, 18], + ["frame", 13, 12, 2, 2116, 18], + ["setarg", 13, 1, 10, 2116, 18], + ["setarg", 13, 2, 8, 2116, 18], + ["invoke", 13, 8, 2116, 18], + ["move", 35, 8, 2116, 18], + ["get", 10, 46, 1, 2117, 17], + ["frame", 12, 10, 0, 2117, 17], + ["invoke", 12, 10, 2117, 17], + ["move", 39, 10, 2117, 17], + ["get", 12, 7, 1, 2118, 20], + ["load_dynamic", 13, 12, 32, 2118, 32], + ["get", 12, 57, 1, 2118, 13], + ["frame", 14, 12, 3, 2118, 13], + ["setarg", 14, 1, 13, 2118, 13], + ["setarg", 14, 2, 10, 2118, 13], + ["setarg", 14, 3, 8, 2118, 13], + ["invoke", 14, 8, 2118, 13], + ["return", 10, 2119, 20], + "_nop_ur_26", + "if_else_403", + "if_end_404", + ["access", 8, 2, 2122, 22], + ["eq", 10, 34, 8, 2122, 22], + ["move", 8, 10, 2122, 22], + ["jump_false", 10, "and_end_408", 2122, 22], + ["access", 10, "push", 2122, 36], + ["eq", 12, 32, 10, 2122, 36], + ["move", 8, 12, 2122, 36], + "and_end_408", + ["jump_false", 8, "if_else_406", 2122, 36], + ["access", 8, 0, 2123, 35], + ["load_index", 10, 30, 8, 2123, 35], + ["access", 8, -1, 2123, 39], + ["get", 12, 101, 1, 2123, 16], + ["frame", 13, 12, 2, 2123, 16], + ["setarg", 13, 1, 10, 2123, 16], + ["setarg", 13, 2, 8, 2123, 16], + ["invoke", 13, 8, 2123, 16], + ["move", 35, 8, 2123, 16], + ["access", 10, 1, 2124, 35], + ["load_index", 12, 30, 10, 2124, 35], + ["access", 10, -1, 2124, 39], + ["get", 13, 101, 1, 2124, 16], + ["frame", 14, 13, 2, 2124, 16], + ["setarg", 14, 1, 12, 2124, 16], + ["setarg", 14, 2, 10, 2124, 16], + ["invoke", 14, 10, 2124, 16], + ["move", 36, 10, 2124, 16], + ["get", 12, 46, 1, 2125, 21], + ["frame", 13, 12, 0, 2125, 21], + ["invoke", 13, 12, 2125, 21], + ["move", 74, 12, 2125, 21], + ["access", 13, "push_err", 2126, 33], + ["get", 14, 51, 1, 2126, 23], + ["frame", 15, 14, 1, 2126, 23], + ["stone_text", 13], + ["setarg", 15, 1, 13, 2126, 23], + ["invoke", 15, 13, 2126, 23], + ["move", 75, 13, 2126, 23], + ["access", 14, "push_done", 2127, 34], + ["get", 15, 51, 1, 2127, 24], + ["frame", 16, 15, 1, 2127, 24], + ["stone_text", 14], + ["setarg", 16, 1, 14, 2127, 24], + ["invoke", 16, 14, 2127, 24], + ["move", 76, 14, 2127, 24], + ["access", 15, "is_array", 2128, 18], + ["get", 16, 57, 1, 2128, 11], + ["frame", 77, 16, 3, 2128, 11], + ["stone_text", 15], + ["setarg", 77, 1, 15, 2128, 11], + ["setarg", 77, 2, 12, 2128, 11], + ["setarg", 77, 3, 8, 2128, 11], + ["invoke", 77, 15, 2128, 11], + ["access", 15, "jump_false", 2129, 26], + ["get", 16, 66, 1, 2129, 11], + ["frame", 77, 16, 3, 2129, 11], + ["stone_text", 15], + ["setarg", 77, 1, 15, 2129, 11], + ["setarg", 77, 2, 12, 2129, 11], + ["setarg", 77, 3, 13, 2129, 11], + ["invoke", 77, 12, 2129, 11], + ["access", 12, "push", 2130, 18], + ["get", 15, 57, 1, 2130, 11], + ["frame", 16, 15, 3, 2130, 11], + ["stone_text", 12], + ["setarg", 16, 1, 12, 2130, 11], + ["setarg", 16, 2, 8, 2130, 11], + ["setarg", 16, 3, 10, 2130, 11], + ["invoke", 16, 8, 2130, 11], + ["get", 8, 65, 1, 2131, 11], + ["frame", 12, 8, 1, 2131, 11], + ["setarg", 12, 1, 14, 2131, 11], + ["invoke", 12, 8, 2131, 11], + ["get", 8, 54, 1, 2132, 11], + ["frame", 12, 8, 1, 2132, 11], + ["setarg", 12, 1, 13, 2132, 11], + ["invoke", 12, 8, 2132, 11], + ["access", 8, "cannot push: target must be an array", 2133, 26], + ["get", 12, 64, 1, 2133, 11], + ["frame", 13, 12, 1, 2133, 11], + ["stone_text", 8], + ["setarg", 13, 1, 8, 2133, 11], + ["invoke", 13, 8, 2133, 11], + ["access", 8, "disrupt", 2134, 18], + ["get", 12, 55, 1, 2134, 11], + ["frame", 13, 12, 1, 2134, 11], + ["stone_text", 8], + ["setarg", 13, 1, 8, 2134, 11], + ["invoke", 13, 8, 2134, 11], + ["get", 8, 54, 1, 2135, 11], + ["frame", 12, 8, 1, 2135, 11], + ["setarg", 12, 1, 14, 2135, 11], + ["invoke", 12, 8, 2135, 11], + ["return", 10, 2136, 18], + "_nop_ur_27", + "if_else_406", + "if_end_407", + ["access", 8, 2, 2139, 22], + ["eq", 10, 34, 8, 2139, 22], + ["move", 8, 10, 2139, 22], + ["jump_false", 10, "and_end_411", 2139, 22], + ["access", 10, "apply", 2139, 36], + ["eq", 12, 32, 10, 2139, 36], + ["move", 8, 12, 2139, 36], + "and_end_411", + ["jump_false", 8, "if_else_409", 2139, 36], + ["access", 8, 0, 2140, 35], + ["load_index", 10, 30, 8, 2140, 35], + ["access", 8, -1, 2140, 39], + ["get", 12, 101, 1, 2140, 16], + ["frame", 13, 12, 2, 2140, 16], + ["setarg", 13, 1, 10, 2140, 16], + ["setarg", 13, 2, 8, 2140, 16], + ["invoke", 13, 8, 2140, 16], + ["move", 35, 8, 2140, 16], + ["access", 10, 1, 2141, 35], + ["load_index", 12, 30, 10, 2141, 35], + ["access", 10, -1, 2141, 39], + ["get", 13, 101, 1, 2141, 16], + ["frame", 14, 13, 2, 2141, 16], + ["setarg", 14, 1, 12, 2141, 16], + ["setarg", 14, 2, 10, 2141, 16], + ["invoke", 14, 10, 2141, 16], + ["move", 36, 10, 2141, 16], + ["get", 12, 46, 1, 2142, 15], + ["frame", 13, 12, 0, 2142, 15], + ["invoke", 13, 12, 2142, 15], + ["move", 39, 12, 2142, 15], + ["access", 13, "apply", 2143, 18], + ["get", 14, 58, 1, 2143, 11], + ["frame", 15, 14, 4, 2143, 11], + ["stone_text", 13], + ["setarg", 15, 1, 13, 2143, 11], + ["setarg", 15, 2, 12, 2143, 11], + ["setarg", 15, 3, 8, 2143, 11], + ["setarg", 15, 4, 10, 2143, 11], + ["invoke", 15, 8, 2143, 11], + ["return", 12, 2144, 18], + "_nop_ur_28", + "if_else_409", + "if_end_410", + ["access", 8, "arrfor", 2147, 22], + ["eq", 10, 32, 8, 2147, 22], + ["move", 8, 10, 2147, 22], + ["jump_false", 10, "and_end_416", 2147, 22], + ["access", 10, 2, 2147, 43], + ["ge", 12, 34, 10, 2147, 43], + ["move", 8, 12, 2147, 43], + "and_end_416", + ["move", 10, 8, 2147, 43], + ["jump_false", 8, "and_end_415", 2147, 43], + ["access", 8, 4, 2147, 57], + ["le", 12, 34, 8, 2147, 57], + ["move", 10, 12, 2147, 57], + "and_end_415", + ["move", 8, 10, 2147, 57], + ["jump_false", 10, "and_end_414", 2147, 57], + ["get", 10, 43, 1, 2147, 62], + ["move", 8, 10, 2147, 62], + "and_end_414", + ["wary_false", 8, "if_else_412", 2147, 62], + ["access", 8, 0, 2148, 35], + ["load_index", 10, 30, 8, 2148, 35], + ["access", 8, -1, 2148, 39], + ["get", 12, 101, 1, 2148, 16], + ["frame", 13, 12, 2, 2148, 16], + ["setarg", 13, 1, 10, 2148, 16], + ["setarg", 13, 2, 8, 2148, 16], + ["invoke", 13, 8, 2148, 16], + ["move", 35, 8, 2148, 16], + ["access", 8, 1, 2149, 35], + ["load_index", 10, 30, 8, 2149, 35], + ["access", 8, -1, 2149, 39], + ["get", 12, 101, 1, 2149, 16], + ["frame", 13, 12, 2, 2149, 16], + ["setarg", 13, 1, 10, 2149, 16], + ["setarg", 13, 2, 8, 2149, 16], + ["invoke", 13, 8, 2149, 16], + ["move", 36, 8, 2149, 16], + ["access", 8, 3, 2150, 25], + ["ge", 10, 34, 8, 2150, 25], + ["jump_false", 10, "tern_else_417", 2150, 25], + ["access", 8, 2, 2150, 48], + ["load_index", 10, 30, 8, 2150, 48], + ["access", 8, -1, 2150, 52], + ["get", 12, 101, 1, 2150, 29], + ["frame", 13, 12, 2, 2150, 29], + ["setarg", 13, 1, 10, 2150, 29], + ["setarg", 13, 2, 8, 2150, 29], + ["invoke", 13, 8, 2150, 29], + ["move", 10, 8, 2150, 29], + ["jump", "tern_end_418", 2150, 29], + "tern_else_417", + ["access", 8, -1, 2150, 58], + ["move", 10, 8, 2150, 58], + "tern_end_418", + ["move", 37, 10, 2150, 58], + ["access", 8, 4, 2151, 25], + ["ge", 10, 34, 8, 2151, 25], + ["jump_false", 10, "tern_else_419", 2151, 25], + ["access", 8, 3, 2151, 48], + ["load_index", 10, 30, 8, 2151, 48], + ["access", 8, -1, 2151, 52], + ["get", 12, 101, 1, 2151, 29], + ["frame", 13, 12, 2, 2151, 29], + ["setarg", 13, 1, 10, 2151, 29], + ["setarg", 13, 2, 8, 2151, 29], + ["invoke", 13, 8, 2151, 29], + ["move", 10, 8, 2151, 29], + ["jump", "tern_end_420", 2151, 29], + "tern_else_419", + ["access", 8, -1, 2151, 58], + ["move", 10, 8, 2151, 58], + "tern_end_420", + ["move", 38, 10, 2151, 58], + ["get", 8, 46, 1, 2152, 15], + ["frame", 12, 8, 0, 2152, 15], + ["invoke", 12, 8, 2152, 15], + ["move", 39, 8, 2152, 15], + ["record", 12, 4], + ["store_field", 12, 35, "arr", 2153, 48], + ["store_field", 12, 36, "fn", 2153, 56], + ["store_field", 12, 37, "rev", 2153, 65], + ["store_field", 12, 10, "exit", 2153, 75], + ["get", 10, 106, 1, 2153, 18], + ["frame", 13, 10, 3, 2153, 18], + ["setarg", 13, 1, 8, 2153, 18], + ["setarg", 13, 2, 12, 2153, 18], + ["setarg", 13, 3, 34, 2153, 18], + ["tail_invoke", 13, 8, 2153, 18], + ["return", 8, 2153, 18], + "_nop_ur_29", + "if_else_412", + "if_end_413", + ["access", 8, 2, 2155, 22], + ["eq", 10, 34, 8, 2155, 22], + ["move", 8, 10, 2155, 22], + ["jump_false", 10, "and_end_424", 2155, 22], + ["access", 10, "every", 2155, 36], + ["eq", 12, 32, 10, 2155, 36], + ["move", 8, 12, 2155, 36], + "and_end_424", + ["move", 10, 8, 2155, 36], + ["jump_false", 8, "and_end_423", 2155, 36], + ["get", 8, 96, 1, 2155, 47], + ["move", 10, 8, 2155, 47], + "and_end_423", + ["wary_false", 10, "if_else_421", 2155, 47], + ["access", 8, 0, 2156, 35], + ["load_index", 10, 30, 8, 2156, 35], + ["access", 8, -1, 2156, 39], + ["get", 12, 101, 1, 2156, 16], + ["frame", 13, 12, 2, 2156, 16], + ["setarg", 13, 1, 10, 2156, 16], + ["setarg", 13, 2, 8, 2156, 16], + ["invoke", 13, 8, 2156, 16], + ["move", 35, 8, 2156, 16], + ["access", 10, 1, 2157, 35], + ["load_index", 12, 30, 10, 2157, 35], + ["access", 10, -1, 2157, 39], + ["get", 13, 101, 1, 2157, 16], + ["frame", 14, 13, 2, 2157, 16], + ["setarg", 14, 1, 12, 2157, 16], + ["setarg", 14, 2, 10, 2157, 16], + ["invoke", 14, 10, 2157, 16], + ["move", 36, 10, 2157, 16], + ["get", 12, 46, 1, 2158, 15], + ["frame", 13, 12, 0, 2158, 15], + ["invoke", 13, 12, 2158, 15], + ["move", 39, 12, 2158, 15], + ["get", 13, 107, 1, 2159, 18], + ["frame", 14, 13, 3, 2159, 18], + ["setarg", 14, 1, 12, 2159, 18], + ["setarg", 14, 2, 8, 2159, 18], + ["setarg", 14, 3, 10, 2159, 18], + ["tail_invoke", 14, 8, 2159, 18], + ["return", 8, 2159, 18], + "_nop_ur_30", + "if_else_421", + "if_end_422", + ["access", 8, 2, 2161, 22], + ["eq", 10, 34, 8, 2161, 22], + ["move", 8, 10, 2161, 22], + ["jump_false", 10, "and_end_428", 2161, 22], + ["access", 10, "some", 2161, 36], + ["eq", 12, 32, 10, 2161, 36], + ["move", 8, 12, 2161, 36], + "and_end_428", + ["move", 10, 8, 2161, 36], + ["jump_false", 8, "and_end_427", 2161, 36], + ["get", 8, 97, 1, 2161, 46], + ["move", 10, 8, 2161, 46], + "and_end_427", + ["wary_false", 10, "if_else_425", 2161, 46], + ["access", 8, 0, 2162, 35], + ["load_index", 10, 30, 8, 2162, 35], + ["access", 8, -1, 2162, 39], + ["get", 12, 101, 1, 2162, 16], + ["frame", 13, 12, 2, 2162, 16], + ["setarg", 13, 1, 10, 2162, 16], + ["setarg", 13, 2, 8, 2162, 16], + ["invoke", 13, 8, 2162, 16], + ["move", 35, 8, 2162, 16], + ["access", 10, 1, 2163, 35], + ["load_index", 12, 30, 10, 2163, 35], + ["access", 10, -1, 2163, 39], + ["get", 13, 101, 1, 2163, 16], + ["frame", 14, 13, 2, 2163, 16], + ["setarg", 14, 1, 12, 2163, 16], + ["setarg", 14, 2, 10, 2163, 16], + ["invoke", 14, 10, 2163, 16], + ["move", 36, 10, 2163, 16], + ["get", 12, 46, 1, 2164, 15], + ["frame", 13, 12, 0, 2164, 15], + ["invoke", 13, 12, 2164, 15], + ["move", 39, 12, 2164, 15], + ["get", 13, 108, 1, 2165, 18], + ["frame", 14, 13, 3, 2165, 18], + ["setarg", 14, 1, 12, 2165, 18], + ["setarg", 14, 2, 8, 2165, 18], + ["setarg", 14, 3, 10, 2165, 18], + ["tail_invoke", 14, 8, 2165, 18], + ["return", 8, 2165, 18], + "_nop_ur_31", + "if_else_425", + "if_end_426", + ["access", 8, 2, 2167, 22], + ["eq", 10, 34, 8, 2167, 22], + ["move", 8, 10, 2167, 22], + ["jump_false", 10, "and_end_432", 2167, 22], + ["access", 10, "filter", 2167, 36], + ["eq", 12, 32, 10, 2167, 36], + ["move", 8, 12, 2167, 36], + "and_end_432", + ["move", 10, 8, 2167, 36], + ["jump_false", 8, "and_end_431", 2167, 36], + ["get", 8, 95, 1, 2167, 48], + ["move", 10, 8, 2167, 48], + "and_end_431", + ["wary_false", 10, "if_else_429", 2167, 48], + ["access", 8, 0, 2168, 35], + ["load_index", 10, 30, 8, 2168, 35], + ["access", 8, -1, 2168, 39], + ["get", 12, 101, 1, 2168, 16], + ["frame", 13, 12, 2, 2168, 16], + ["setarg", 13, 1, 10, 2168, 16], + ["setarg", 13, 2, 8, 2168, 16], + ["invoke", 13, 8, 2168, 16], + ["move", 35, 8, 2168, 16], + ["access", 10, 1, 2169, 35], + ["load_index", 12, 30, 10, 2169, 35], + ["access", 10, -1, 2169, 39], + ["get", 13, 101, 1, 2169, 16], + ["frame", 14, 13, 2, 2169, 16], + ["setarg", 14, 1, 12, 2169, 16], + ["setarg", 14, 2, 10, 2169, 16], + ["invoke", 14, 10, 2169, 16], + ["move", 36, 10, 2169, 16], + ["get", 12, 46, 1, 2170, 15], + ["frame", 13, 12, 0, 2170, 15], + ["invoke", 13, 12, 2170, 15], + ["move", 39, 12, 2170, 15], + ["get", 13, 109, 1, 2171, 18], + ["frame", 14, 13, 3, 2171, 18], + ["setarg", 14, 1, 12, 2171, 18], + ["setarg", 14, 2, 8, 2171, 18], + ["setarg", 14, 3, 10, 2171, 18], + ["tail_invoke", 14, 8, 2171, 18], + ["return", 8, 2171, 18], + "_nop_ur_32", + "if_else_429", + "if_end_430", + ["access", 8, "find", 2173, 22], + ["eq", 10, 32, 8, 2173, 22], + ["move", 8, 10, 2173, 22], + ["jump_false", 10, "and_end_437", 2173, 22], + ["access", 10, 2, 2173, 41], + ["ge", 12, 34, 10, 2173, 41], + ["move", 8, 12, 2173, 41], + "and_end_437", + ["move", 10, 8, 2173, 41], + ["jump_false", 8, "and_end_436", 2173, 41], + ["access", 8, 4, 2173, 55], + ["le", 12, 34, 8, 2173, 55], + ["move", 10, 12, 2173, 55], + "and_end_436", + ["move", 8, 10, 2173, 55], + ["jump_false", 10, "and_end_435", 2173, 55], + ["get", 10, 100, 1, 2173, 60], + ["move", 8, 10, 2173, 60], + "and_end_435", + ["wary_false", 8, "if_else_433", 2173, 60], + ["access", 8, 0, 2174, 35], + ["load_index", 10, 30, 8, 2174, 35], + ["access", 8, -1, 2174, 39], + ["get", 12, 101, 1, 2174, 16], + ["frame", 13, 12, 2, 2174, 16], + ["setarg", 13, 1, 10, 2174, 16], + ["setarg", 13, 2, 8, 2174, 16], + ["invoke", 13, 8, 2174, 16], + ["move", 35, 8, 2174, 16], + ["access", 8, 1, 2175, 35], + ["load_index", 10, 30, 8, 2175, 35], + ["access", 8, -1, 2175, 39], + ["get", 12, 101, 1, 2175, 16], + ["frame", 13, 12, 2, 2175, 16], + ["setarg", 13, 1, 10, 2175, 16], + ["setarg", 13, 2, 8, 2175, 16], + ["invoke", 13, 8, 2175, 16], + ["move", 36, 8, 2175, 16], + ["access", 8, 3, 2176, 25], + ["ge", 10, 34, 8, 2176, 25], + ["jump_false", 10, "tern_else_438", 2176, 25], + ["access", 8, 2, 2176, 48], + ["load_index", 10, 30, 8, 2176, 48], + ["access", 8, -1, 2176, 52], + ["get", 12, 101, 1, 2176, 29], + ["frame", 13, 12, 2, 2176, 29], + ["setarg", 13, 1, 10, 2176, 29], + ["setarg", 13, 2, 8, 2176, 29], + ["invoke", 13, 8, 2176, 29], + ["move", 10, 8, 2176, 29], + ["jump", "tern_end_439", 2176, 29], + "tern_else_438", + ["access", 8, -1, 2176, 58], + ["move", 10, 8, 2176, 58], + "tern_end_439", + ["move", 37, 10, 2176, 58], + ["access", 8, 4, 2177, 25], + ["ge", 10, 34, 8, 2177, 25], + ["jump_false", 10, "tern_else_440", 2177, 25], + ["access", 8, 3, 2177, 48], + ["load_index", 10, 30, 8, 2177, 48], + ["access", 8, -1, 2177, 52], + ["get", 12, 101, 1, 2177, 29], + ["frame", 13, 12, 2, 2177, 29], + ["setarg", 13, 1, 10, 2177, 29], + ["setarg", 13, 2, 8, 2177, 29], + ["invoke", 13, 8, 2177, 29], + ["move", 10, 8, 2177, 29], + ["jump", "tern_end_441", 2177, 29], + "tern_else_440", + ["access", 8, -1, 2177, 58], + ["move", 10, 8, 2177, 58], + "tern_end_441", + ["move", 38, 10, 2177, 58], + ["get", 8, 46, 1, 2178, 15], + ["frame", 12, 8, 0, 2178, 15], + ["invoke", 12, 8, 2178, 15], + ["move", 39, 8, 2178, 15], + ["record", 12, 4], + ["store_field", 12, 35, "arr", 2179, 46], + ["store_field", 12, 36, "target", 2179, 58], + ["store_field", 12, 37, "rev", 2179, 67], + ["store_field", 12, 10, "from", 2179, 77], + ["get", 10, 110, 1, 2179, 18], + ["frame", 13, 10, 3, 2179, 18], + ["setarg", 13, 1, 8, 2179, 18], + ["setarg", 13, 2, 12, 2179, 18], + ["setarg", 13, 3, 34, 2179, 18], + ["tail_invoke", 13, 8, 2179, 18], + ["return", 8, 2179, 18], + "_nop_ur_33", + "if_else_433", + "if_end_434", + ["access", 8, "reduce", 2181, 22], + ["eq", 10, 32, 8, 2181, 22], + ["move", 8, 10, 2181, 22], + ["jump_false", 10, "and_end_446", 2181, 22], + ["access", 10, 2, 2181, 43], + ["ge", 12, 34, 10, 2181, 43], + ["move", 8, 12, 2181, 43], + "and_end_446", + ["move", 10, 8, 2181, 43], + ["jump_false", 8, "and_end_445", 2181, 43], + ["access", 8, 4, 2181, 57], + ["le", 12, 34, 8, 2181, 57], + ["move", 10, 12, 2181, 57], + "and_end_445", + ["move", 8, 10, 2181, 57], + ["jump_false", 10, "and_end_444", 2181, 57], + ["get", 10, 98, 1, 2181, 62], + ["move", 8, 10, 2181, 62], + "and_end_444", + ["wary_false", 8, "if_else_442", 2181, 62], + ["access", 8, 0, 2182, 35], + ["load_index", 10, 30, 8, 2182, 35], + ["access", 8, -1, 2182, 39], + ["get", 12, 101, 1, 2182, 16], + ["frame", 13, 12, 2, 2182, 16], + ["setarg", 13, 1, 10, 2182, 16], + ["setarg", 13, 2, 8, 2182, 16], + ["invoke", 13, 8, 2182, 16], + ["move", 35, 8, 2182, 16], + ["access", 8, 1, 2183, 35], + ["load_index", 10, 30, 8, 2183, 35], + ["access", 8, -1, 2183, 39], + ["get", 12, 101, 1, 2183, 16], + ["frame", 13, 12, 2, 2183, 16], + ["setarg", 13, 1, 10, 2183, 16], + ["setarg", 13, 2, 8, 2183, 16], + ["invoke", 13, 8, 2183, 16], + ["move", 36, 8, 2183, 16], + ["access", 8, 3, 2184, 25], + ["ge", 10, 34, 8, 2184, 25], + ["jump_false", 10, "tern_else_447", 2184, 25], + ["access", 8, 2, 2184, 48], + ["load_index", 10, 30, 8, 2184, 48], + ["access", 8, -1, 2184, 52], + ["get", 12, 101, 1, 2184, 29], + ["frame", 13, 12, 2, 2184, 29], + ["setarg", 13, 1, 10, 2184, 29], + ["setarg", 13, 2, 8, 2184, 29], + ["invoke", 13, 8, 2184, 29], + ["move", 10, 8, 2184, 29], + ["jump", "tern_end_448", 2184, 29], + "tern_else_447", + ["access", 8, -1, 2184, 58], + ["move", 10, 8, 2184, 58], + "tern_end_448", + ["move", 37, 10, 2184, 58], + ["access", 8, 4, 2185, 25], + ["ge", 10, 34, 8, 2185, 25], + ["jump_false", 10, "tern_else_449", 2185, 25], + ["access", 8, 3, 2185, 48], + ["load_index", 10, 30, 8, 2185, 48], + ["access", 8, -1, 2185, 52], + ["get", 12, 101, 1, 2185, 29], + ["frame", 13, 12, 2, 2185, 29], + ["setarg", 13, 1, 10, 2185, 29], + ["setarg", 13, 2, 8, 2185, 29], + ["invoke", 13, 8, 2185, 29], + ["move", 10, 8, 2185, 29], + ["jump", "tern_end_450", 2185, 29], + "tern_else_449", + ["access", 8, -1, 2185, 58], + ["move", 10, 8, 2185, 58], + "tern_end_450", + ["move", 38, 10, 2185, 58], + ["get", 8, 46, 1, 2186, 15], + ["frame", 12, 8, 0, 2186, 15], + ["invoke", 12, 8, 2186, 15], + ["move", 39, 8, 2186, 15], + ["record", 12, 4], + ["store_field", 12, 35, "arr", 2187, 48], + ["store_field", 12, 36, "fn", 2187, 56], + ["store_field", 12, 37, "init", 2187, 66], + ["store_field", 12, 10, "rev", 2187, 75], + ["get", 10, 113, 1, 2187, 18], + ["frame", 13, 10, 3, 2187, 18], + ["setarg", 13, 1, 8, 2187, 18], + ["setarg", 13, 2, 12, 2187, 18], + ["setarg", 13, 3, 34, 2187, 18], + ["tail_invoke", 13, 8, 2187, 18], + ["return", 8, 2187, 18], "_nop_ur_34", - "if_else_475", - "if_end_476", - ["access", 7, "~", 1944, 17], - ["eq", 8, 3, 7, 1944, 17], - ["jump_false", 8, "if_else_477", 1944, 17], - ["load_field", 7, 1, "expression", 1945, 31], - ["access", 8, -1, 1945, 48], - ["get", 10, 97, 1, 1945, 22], - ["frame", 11, 10, 2, 1945, 22], - ["setarg", 11, 1, 7, 1945, 22], - ["setarg", 11, 2, 8, 1945, 22], - ["invoke", 11, 7, 1945, 22], - ["move", 45, 7, 1945, 22], - ["get", 8, 44, 1, 1946, 14], - ["frame", 10, 8, 0, 1946, 14], - ["invoke", 10, 8, 1946, 14], - ["move", 4, 8, 1946, 14], - ["access", 10, "bitnot", 1947, 14], - ["get", 11, 55, 1, 1947, 7], - ["frame", 12, 11, 3, 1947, 7], - ["stone_text", 10], - ["setarg", 12, 1, 10, 1947, 7], - ["setarg", 12, 2, 8, 1947, 7], - ["setarg", 12, 3, 7, 1947, 7], - ["invoke", 12, 7, 1947, 7], - ["return", 8, 1948, 14], + "if_else_442", + "if_end_443", + ["access", 8, 2, 2191, 22], + ["eq", 10, 34, 8, 2191, 22], + ["move", 8, 10, 2191, 22], + ["jump_false", 10, "and_end_455", 2191, 22], + ["access", 10, "array", 2191, 36], + ["eq", 12, 32, 10, 2191, 36], + ["move", 8, 12, 2191, 36], + "and_end_455", + ["move", 10, 8, 2191, 36], + ["jump_false", 8, "and_end_454", 2191, 36], + ["get", 8, 99, 1, 2191, 47], + ["move", 10, 8, 2191, 47], + "and_end_454", + ["move", 8, 10, 2191, 47], + ["wary_false", 10, "and_end_453", 2191, 47], + ["access", 10, 0, 2192, 26], + ["load_index", 12, 30, 10, 2192, 26], + ["load_field", 10, 12, "kind", 2192, 26], + ["access", 12, "number", 2192, 37], + ["ne", 13, 10, 12, 2192, 37], + ["move", 8, 13, 2192, 37], + "and_end_453", + ["wary_false", 8, "if_else_451", 2192, 37], + ["access", 8, 1, 2194, 25], + ["load_index", 10, 30, 8, 2194, 25], + ["load_field", 8, 10, "kind", 2194, 25], + ["access", 10, "name", 2194, 36], + ["eq", 12, 8, 10, 2194, 36], + ["move", 8, 12, 2194, 36], + ["jump_false", 12, "and_end_459", 2194, 36], + ["access", 10, 1, 2194, 56], + ["load_index", 12, 30, 10, 2194, 56], + ["load_field", 10, 12, "intrinsic", 2194, 56], + ["true", 12, 2194, 72], + ["eq", 13, 10, 12, 2194, 72], + ["move", 8, 13, 2194, 72], + "and_end_459", + ["move", 10, 8, 2194, 72], + ["jump_false", 8, "and_end_458", 2194, 72], + ["get", 8, 7, 1, 2195, 18], + ["access", 12, 1, 2195, 40], + ["load_index", 13, 30, 12, 2195, 40], + ["load_field", 12, 13, "name", 2195, 40], + ["load_dynamic", 13, 8, 12, 2195, 40], + ["null", 8, 2195, 52], + ["ne", 12, 13, 8, 2195, 52], + ["move", 10, 12, 2195, 52], + "and_end_458", + ["jump_false", 10, "if_else_456", 2195, 52], + ["access", 8, 0, 2196, 37], + ["load_index", 10, 30, 8, 2196, 37], + ["access", 8, -1, 2196, 41], + ["get", 12, 101, 1, 2196, 18], + ["frame", 13, 12, 2, 2196, 18], + ["setarg", 13, 1, 10, 2196, 18], + ["setarg", 13, 2, 8, 2196, 18], + ["invoke", 13, 8, 2196, 18], + ["move", 35, 8, 2196, 18], + ["get", 10, 46, 1, 2197, 17], + ["frame", 12, 10, 0, 2197, 17], + ["invoke", 12, 10, 2197, 17], + ["move", 39, 10, 2197, 17], + ["get", 12, 7, 1, 2198, 55], + ["access", 13, 1, 2198, 77], + ["load_index", 14, 30, 13, 2198, 77], + ["load_field", 13, 14, "name", 2198, 77], + ["load_dynamic", 14, 12, 13, 2198, 77], + ["get", 12, 112, 1, 2198, 20], + ["frame", 13, 12, 3, 2198, 20], + ["setarg", 13, 1, 10, 2198, 20], + ["setarg", 13, 2, 8, 2198, 20], + ["setarg", 13, 3, 14, 2198, 20], + ["tail_invoke", 13, 8, 2198, 20], + ["return", 8, 2198, 20], "_nop_ur_35", - "if_else_477", - "if_end_478", - ["access", 7, "-unary", 1950, 17], - ["eq", 8, 3, 7, 1950, 17], - ["jump_false", 8, "if_else_479", 1950, 17], - ["load_field", 7, 1, "expression", 1951, 31], - ["access", 8, -1, 1951, 48], - ["get", 10, 97, 1, 1951, 22], - ["frame", 11, 10, 2, 1951, 22], - ["setarg", 11, 1, 7, 1951, 22], - ["setarg", 11, 2, 8, 1951, 22], - ["invoke", 11, 7, 1951, 22], - ["move", 45, 7, 1951, 22], - ["get", 8, 44, 1, 1952, 14], - ["frame", 10, 8, 0, 1952, 14], - ["invoke", 10, 8, 1952, 14], - ["move", 4, 8, 1952, 14], - ["load_field", 10, 1, "expression", 1953, 47], - ["get", 11, 76, 1, 1953, 7], - ["frame", 12, 11, 3, 1953, 7], - ["setarg", 12, 1, 8, 1953, 7], - ["setarg", 12, 2, 7, 1953, 7], - ["setarg", 12, 3, 10, 1953, 7], - ["invoke", 12, 7, 1953, 7], - ["return", 8, 1954, 14], + "if_else_456", + "if_end_457", + ["access", 8, 1, 2201, 25], + ["load_index", 10, 30, 8, 2201, 25], + ["load_field", 8, 10, "kind", 2201, 25], + ["access", 10, "function", 2201, 36], + ["eq", 12, 8, 10, 2201, 36], + ["jump_false", 12, "if_else_460", 2201, 36], + ["access", 8, 0, 2202, 37], + ["load_index", 10, 30, 8, 2202, 37], + ["access", 8, -1, 2202, 41], + ["get", 12, 101, 1, 2202, 18], + ["frame", 13, 12, 2, 2202, 18], + ["setarg", 13, 1, 10, 2202, 18], + ["setarg", 13, 2, 8, 2202, 18], + ["invoke", 13, 8, 2202, 18], + ["move", 35, 8, 2202, 18], + ["access", 10, 1, 2203, 37], + ["load_index", 12, 30, 10, 2203, 37], + ["access", 10, -1, 2203, 41], + ["get", 13, 101, 1, 2203, 18], + ["frame", 14, 13, 2, 2203, 18], + ["setarg", 14, 1, 12, 2203, 18], + ["setarg", 14, 2, 10, 2203, 18], + ["invoke", 14, 10, 2203, 18], + ["move", 36, 10, 2203, 18], + ["get", 12, 46, 1, 2204, 17], + ["frame", 13, 12, 0, 2204, 17], + ["invoke", 13, 12, 2204, 17], + ["move", 39, 12, 2204, 17], + ["get", 13, 111, 1, 2205, 20], + ["frame", 14, 13, 3, 2205, 20], + ["setarg", 14, 1, 12, 2205, 20], + ["setarg", 14, 2, 8, 2205, 20], + ["setarg", 14, 3, 10, 2205, 20], + ["tail_invoke", 14, 8, 2205, 20], + ["return", 8, 2205, 20], "_nop_ur_36", - "if_else_479", - "if_end_480", - ["access", 7, "+unary", 1956, 17], - ["eq", 8, 3, 7, 1956, 17], - ["jump_false", 8, "if_else_481", 1956, 17], - ["load_field", 7, 1, "expression", 1957, 23], - ["access", 8, -1, 1957, 40], - ["get", 10, 97, 1, 1957, 14], - ["frame", 11, 10, 2, 1957, 14], - ["setarg", 11, 1, 7, 1957, 14], - ["setarg", 11, 2, 8, 1957, 14], - ["tail_invoke", 11, 7, 1957, 14], - ["return", 7, 1957, 14], - "_nop_ur_37", - "if_else_481", - "if_end_482", - ["access", 7, "++", 1961, 17], - ["eq", 8, 3, 7, 1961, 17], - ["move", 7, 8, 1961, 17], - ["jump_true", 8, "or_end_485", 1961, 17], - ["access", 8, "--", 1961, 33], - ["eq", 10, 3, 8, 1961, 33], - ["move", 7, 10, 1961, 33], - "or_end_485", - ["jump_false", 7, "if_else_483", 1961, 33], - ["load_field", 7, 1, "expression", 1962, 17], - ["move", 46, 7, 1962, 17], - ["load_field", 7, 1, "postfix", 1963, 17], - ["true", 8, 1963, 33], - ["eq", 47, 7, 8, 1963, 33], - ["access", 7, "++", 1964, 26], - ["eq", 8, 3, 7, 1964, 26], - ["jump_false", 8, "tern_else_486", 1964, 26], - ["access", 7, "add", 1964, 33], - ["move", 8, 7, 1964, 33], - ["jump", "tern_end_487", 1964, 33], - "tern_else_486", - ["access", 7, "subtract", 1964, 41], - ["move", 8, 7, 1964, 41], - "tern_end_487", - ["move", 48, 8, 1964, 41], - ["load_field", 7, 46, "kind", 1965, 22], - ["move", 49, 7, 1965, 22], - ["get", 8, 44, 1, 1966, 18], - ["frame", 10, 8, 0, 1966, 18], - ["invoke", 10, 8, 1966, 18], - ["move", 50, 8, 1966, 18], - ["access", 10, "int", 1967, 14], - ["access", 11, 1, 1967, 31], - ["get", 12, 55, 1, 1967, 7], - ["frame", 13, 12, 3, 1967, 7], - ["stone_text", 10], - ["setarg", 13, 1, 10, 1967, 7], - ["setarg", 13, 2, 8, 1967, 7], - ["setarg", 13, 3, 11, 1967, 7], - ["invoke", 13, 8, 1967, 7], - ["record", 8, 2], - ["access", 10, "number", 1968, 25], - ["store_field", 8, 10, "kind", 1968, 25], - ["access", 10, 1, 1968, 43], - ["store_field", 8, 10, "number", 1968, 43], - ["move", 51, 8, 1968, 43], - ["access", 8, "name", 1970, 27], - ["eq", 10, 7, 8, 1970, 27], - ["jump_false", 10, "if_else_488", 1970, 27], - ["load_field", 7, 46, "name", 1971, 16], - ["move", 17, 7, 1971, 16], - ["load_field", 7, 46, "level", 1972, 17], - ["move", 18, 7, 1972, 17], - ["null", 8, 1973, 22], - ["eq", 10, 7, 8, 1973, 22], - ["jump_false", 10, "if_else_490", 1973, 22], - ["access", 18, -1, 1974, 19], - ["jump", "if_end_491", 1974, 19], - "if_else_490", - "if_end_491", - ["get", 7, 44, 1, 1976, 20], - ["frame", 8, 7, 0, 1976, 20], - ["invoke", 8, 7, 1976, 20], - ["move", 52, 7, 1976, 20], - ["access", 7, 0, 1977, 22], - ["eq", 8, 18, 7, 1977, 22], - ["jump_false", 8, "if_else_492", 1977, 22], - ["get", 7, 46, 1, 1978, 19], - ["frame", 8, 7, 1, 1978, 19], - ["setarg", 8, 1, 17, 1978, 19], - ["invoke", 8, 7, 1978, 19], - ["move", 53, 7, 1978, 19], - ["access", 8, 0, 1979, 24], - ["ge", 10, 7, 8, 1979, 24], - ["jump_false", 10, "if_else_494", 1979, 24], - ["access", 7, "move", 1980, 20], - ["get", 8, 55, 1, 1980, 13], - ["frame", 10, 8, 3, 1980, 13], - ["stone_text", 7], - ["setarg", 10, 1, 7, 1980, 13], - ["setarg", 10, 2, 52, 1980, 13], - ["setarg", 10, 3, 53, 1980, 13], - ["invoke", 10, 7, 1980, 13], - ["jump", "if_end_495", 1980, 13], - "if_else_494", - "if_end_495", - ["jump", "if_end_493", 1980, 13], - "if_else_492", - ["access", 7, 0, 1982, 28], - ["gt", 8, 18, 7, 1982, 28], - ["jump_false", 8, "if_else_496", 1982, 28], - ["access", 7, 1, 1983, 25], - ["subtract", 21, 18, 7, 1983, 25], - ["get", 7, 109, 1, 1984, 20], - ["get", 8, 109, 1, 1984, 41], - ["length", 10, 8, 1984, 41], - ["access", 8, 1, 1984, 58], - "_nop_tc_17", - "_nop_tc_18", - "_nop_tc_19", - "_nop_tc_20", - ["subtract", 11, 10, 8, 1984, 58], - ["jump", "num_done_499", 1984, 58], - "num_err_498", - "_nop_ucfg_49", - "_nop_ucfg_50", - "_nop_ucfg_51", - "_nop_ucfg_52", - "_nop_ucfg_53", - "_nop_ucfg_54", - "_nop_ucfg_55", - "_nop_ucfg_56", - "_nop_ucfg_57", - "_nop_ucfg_58", - "_nop_ucfg_59", - "_nop_ucfg_60", - "num_done_499", - ["subtract", 8, 11, 21, 1984, 62], - ["load_index", 10, 7, 8, 1984, 62], - ["move", 22, 10, 1984, 62], - ["get", 7, 92, 1, 1985, 19], - ["frame", 8, 7, 2, 1985, 19], - ["setarg", 8, 1, 10, 1985, 19], - ["setarg", 8, 2, 17, 1985, 19], - ["invoke", 8, 7, 1985, 19], - ["move", 55, 7, 1985, 19], - ["access", 8, "get", 1986, 18], - ["get", 10, 56, 1, 1986, 11], - ["frame", 11, 10, 4, 1986, 11], - ["stone_text", 8], - ["setarg", 11, 1, 8, 1986, 11], - ["setarg", 11, 2, 52, 1986, 11], - ["setarg", 11, 3, 7, 1986, 11], - ["setarg", 11, 4, 18, 1986, 11], - ["invoke", 11, 7, 1986, 11], - ["jump", "if_end_497", 1986, 11], - "if_else_496", - ["get", 7, 107, 1, 1988, 11], - ["frame", 8, 7, 2, 1988, 11], - ["setarg", 8, 1, 52, 1988, 11], - ["setarg", 8, 2, 17, 1988, 11], - ["invoke", 8, 7, 1988, 11], - "if_end_497", - "if_end_493", - ["get", 7, 44, 1, 1990, 20], - ["frame", 8, 7, 0, 1990, 20], - ["invoke", 8, 7, 1990, 20], - ["move", 54, 7, 1990, 20], - ["null", 8, 1991, 18], - ["put", 8, 38, 1, 1991, 18], - ["put", 51, 39, 1, 1992, 18], - ["get", 8, 77, 1, 1993, 9], - ["frame", 10, 8, 4, 1993, 9], - ["stone_text", 48], - ["setarg", 10, 1, 48, 1993, 9], - ["setarg", 10, 2, 7, 1993, 9], - ["setarg", 10, 3, 52, 1993, 9], - ["setarg", 10, 4, 50, 1993, 9], - ["invoke", 10, 7, 1993, 9], - ["access", 7, 0, 1994, 22], - ["eq", 8, 18, 7, 1994, 22], - ["jump_false", 8, "if_else_500", 1994, 22], - ["get", 7, 46, 1, 1995, 19], - ["frame", 8, 7, 1, 1995, 19], - ["setarg", 8, 1, 17, 1995, 19], - ["invoke", 8, 7, 1995, 19], - ["move", 53, 7, 1995, 19], - ["access", 8, 0, 1996, 24], - ["ge", 10, 7, 8, 1996, 24], - ["jump_false", 10, "if_else_502", 1996, 24], - ["access", 7, "move", 1997, 20], - ["get", 8, 55, 1, 1997, 13], - ["frame", 10, 8, 3, 1997, 13], - ["stone_text", 7], - ["setarg", 10, 1, 7, 1997, 13], - ["setarg", 10, 2, 53, 1997, 13], - ["setarg", 10, 3, 54, 1997, 13], - ["invoke", 10, 7, 1997, 13], - ["jump", "if_end_503", 1997, 13], - "if_else_502", - "if_end_503", - ["jump", "if_end_501", 1997, 13], - "if_else_500", - ["access", 7, 0, 1999, 28], - ["gt", 8, 18, 7, 1999, 28], - ["jump_false", 8, "if_else_504", 1999, 28], - ["access", 7, 1, 2000, 25], - ["subtract", 21, 18, 7, 2000, 25], - ["get", 7, 109, 1, 2001, 20], - ["get", 8, 109, 1, 2001, 41], - ["length", 10, 8, 2001, 41], - ["access", 8, 1, 2001, 58], - "_nop_tc_21", - "_nop_tc_22", - "_nop_tc_23", - "_nop_tc_24", - ["subtract", 11, 10, 8, 2001, 58], - ["jump", "num_done_507", 2001, 58], - "num_err_506", - "_nop_ucfg_61", - "_nop_ucfg_62", - "_nop_ucfg_63", - "_nop_ucfg_64", - "_nop_ucfg_65", - "_nop_ucfg_66", - "_nop_ucfg_67", - "_nop_ucfg_68", - "_nop_ucfg_69", - "_nop_ucfg_70", - "_nop_ucfg_71", - "_nop_ucfg_72", - "num_done_507", - ["subtract", 8, 11, 21, 2001, 62], - ["load_index", 10, 7, 8, 2001, 62], - ["move", 22, 10, 2001, 62], - ["get", 7, 92, 1, 2002, 19], - ["frame", 8, 7, 2, 2002, 19], - ["setarg", 8, 1, 10, 2002, 19], - ["setarg", 8, 2, 17, 2002, 19], - ["invoke", 8, 7, 2002, 19], - ["move", 55, 7, 2002, 19], - ["access", 8, "put", 2003, 18], - ["get", 10, 56, 1, 2003, 11], - ["frame", 11, 10, 4, 2003, 11], - ["stone_text", 8], - ["setarg", 11, 1, 8, 2003, 11], - ["setarg", 11, 2, 54, 2003, 11], - ["setarg", 11, 3, 7, 2003, 11], - ["setarg", 11, 4, 18, 2003, 11], - ["invoke", 11, 7, 2003, 11], - ["jump", "if_end_505", 2003, 11], - "if_else_504", - "if_end_505", - "if_end_501", - ["jump_false", 47, "tern_else_508", 2005, 16], - ["move", 7, 52, 2005, 26], - ["jump", "tern_end_509", 2005, 26], - "tern_else_508", - ["move", 7, 54, 2005, 37], - "tern_end_509", - ["return", 7, 2005, 37], - "_nop_ur_38", - "if_else_488", - ["access", 7, ".", 2006, 34], - ["eq", 8, 49, 7, 2006, 34], - ["jump_false", 8, "if_else_510", 2006, 34], - ["load_field", 7, 46, "left", 2007, 15], - ["move", 24, 7, 2007, 15], - ["load_field", 8, 46, "right", 2008, 16], - ["move", 25, 8, 2008, 16], - ["access", 10, -1, 2009, 34], - ["get", 11, 97, 1, 2009, 20], - ["frame", 12, 11, 2, 2009, 20], - ["setarg", 12, 1, 7, 2009, 20], - ["setarg", 12, 2, 10, 2009, 20], - ["invoke", 12, 7, 2009, 20], - ["move", 26, 7, 2009, 20], - ["get", 10, 44, 1, 2010, 20], - ["frame", 11, 10, 0, 2010, 20], - ["invoke", 11, 10, 2010, 20], - ["move", 52, 10, 2010, 20], - ["get", 11, 78, 1, 2011, 9], - ["frame", 12, 11, 3, 2011, 9], - ["setarg", 12, 1, 10, 2011, 9], - ["setarg", 12, 2, 7, 2011, 9], - ["setarg", 12, 3, 8, 2011, 9], - ["invoke", 12, 11, 2011, 9], - ["get", 11, 44, 1, 2012, 20], - ["frame", 12, 11, 0, 2012, 20], - ["invoke", 12, 11, 2012, 20], - ["move", 54, 11, 2012, 20], - ["null", 12, 2013, 18], - ["put", 12, 38, 1, 2013, 18], - ["put", 51, 39, 1, 2014, 18], - ["get", 12, 77, 1, 2015, 9], - ["frame", 13, 12, 4, 2015, 9], - ["stone_text", 48], - ["setarg", 13, 1, 48, 2015, 9], - ["setarg", 13, 2, 11, 2015, 9], - ["setarg", 13, 3, 10, 2015, 9], - ["setarg", 13, 4, 50, 2015, 9], - ["invoke", 13, 10, 2015, 9], - ["get", 10, 79, 1, 2016, 9], - ["frame", 12, 10, 3, 2016, 9], - ["setarg", 12, 1, 7, 2016, 9], - ["setarg", 12, 2, 8, 2016, 9], - ["setarg", 12, 3, 11, 2016, 9], - ["invoke", 12, 7, 2016, 9], - ["jump_false", 47, "tern_else_512", 2017, 16], - ["move", 7, 52, 2017, 26], - ["jump", "tern_end_513", 2017, 26], - "tern_else_512", - ["move", 7, 54, 2017, 37], - "tern_end_513", - ["return", 7, 2017, 37], - "_nop_ur_39", - "if_else_510", - ["access", 7, "[", 2018, 34], - ["eq", 8, 49, 7, 2018, 34], - ["jump_false", 8, "if_else_514", 2018, 34], - ["load_field", 7, 46, "left", 2019, 15], - ["move", 24, 7, 2019, 15], - ["load_field", 8, 46, "right", 2020, 20], - ["move", 56, 8, 2020, 20], - ["access", 10, -1, 2021, 34], - ["get", 11, 97, 1, 2021, 20], - ["frame", 12, 11, 2, 2021, 20], - ["setarg", 12, 1, 7, 2021, 20], - ["setarg", 12, 2, 10, 2021, 20], - ["invoke", 12, 7, 2021, 20], - ["move", 26, 7, 2021, 20], - ["access", 10, -1, 2022, 39], - ["get", 11, 97, 1, 2022, 20], - ["frame", 12, 11, 2, 2022, 20], - ["setarg", 12, 1, 8, 2022, 20], - ["setarg", 12, 2, 10, 2022, 20], - ["invoke", 12, 8, 2022, 20], - ["move", 28, 8, 2022, 20], - ["get", 10, 44, 1, 2023, 20], - ["frame", 11, 10, 0, 2023, 20], - ["invoke", 11, 10, 2023, 20], - ["move", 52, 10, 2023, 20], - ["load_field", 11, 46, "access_kind", 2024, 53], - ["get", 12, 80, 1, 2024, 9], - ["frame", 13, 12, 4, 2024, 9], - ["setarg", 13, 1, 10, 2024, 9], - ["setarg", 13, 2, 7, 2024, 9], - ["setarg", 13, 3, 8, 2024, 9], - ["setarg", 13, 4, 11, 2024, 9], - ["invoke", 13, 11, 2024, 9], - ["get", 11, 44, 1, 2025, 20], - ["frame", 12, 11, 0, 2025, 20], - ["invoke", 12, 11, 2025, 20], - ["move", 54, 11, 2025, 20], - ["null", 12, 2026, 18], - ["put", 12, 38, 1, 2026, 18], - ["put", 51, 39, 1, 2027, 18], - ["get", 12, 77, 1, 2028, 9], - ["frame", 13, 12, 4, 2028, 9], - ["stone_text", 48], - ["setarg", 13, 1, 48, 2028, 9], - ["setarg", 13, 2, 11, 2028, 9], - ["setarg", 13, 3, 10, 2028, 9], - ["setarg", 13, 4, 50, 2028, 9], - ["invoke", 13, 10, 2028, 9], - ["load_field", 10, 46, "access_kind", 2029, 53], - ["get", 12, 81, 1, 2029, 9], - ["frame", 13, 12, 4, 2029, 9], - ["setarg", 13, 1, 7, 2029, 9], - ["setarg", 13, 2, 8, 2029, 9], - ["setarg", 13, 3, 11, 2029, 9], - ["setarg", 13, 4, 10, 2029, 9], - ["invoke", 13, 7, 2029, 9], - ["jump_false", 47, "tern_else_516", 2030, 16], - ["move", 7, 52, 2030, 26], - ["jump", "tern_end_517", 2030, 26], - "tern_else_516", - ["move", 7, 54, 2030, 37], - "tern_end_517", - ["return", 7, 2030, 37], - "_nop_ur_40", - "if_else_514", - "if_end_515", - "if_end_511", - "if_end_489", - ["jump", "if_end_484", 2030, 37], - "if_else_483", - "if_end_484", - ["access", 7, "delete", 2035, 17], - ["eq", 8, 3, 7, 2035, 17], - ["jump_false", 8, "if_else_518", 2035, 17], - ["load_field", 7, 1, "expression", 2036, 17], - ["move", 46, 7, 2036, 17], - ["load_field", 8, 7, "kind", 2037, 22], - ["move", 49, 8, 2037, 22], - ["get", 7, 44, 1, 2038, 14], - ["frame", 10, 7, 0, 2038, 14], - ["invoke", 10, 7, 2038, 14], - ["move", 4, 7, 2038, 14], - ["access", 7, ".", 2039, 27], - ["eq", 10, 8, 7, 2039, 27], - ["jump_false", 10, "if_else_520", 2039, 27], - ["load_field", 7, 46, "left", 2040, 15], - ["move", 24, 7, 2040, 15], - ["load_field", 8, 46, "right", 2041, 16], - ["move", 25, 8, 2041, 16], - ["access", 10, -1, 2042, 34], - ["get", 11, 97, 1, 2042, 20], - ["frame", 12, 11, 2, 2042, 20], - ["setarg", 12, 1, 7, 2042, 20], - ["setarg", 12, 2, 10, 2042, 20], - ["invoke", 12, 7, 2042, 20], - ["move", 26, 7, 2042, 20], - ["get", 10, 2, 1, 2043, 14], - ["access", 11, "delete", 2043, 31], - ["array", 12, 4, 2043, 57], - ["stone_text", 11], - ["push", 12, 11, 2043, 57], - ["push", 12, 4, 2043, 57], - ["push", 12, 7, 2043, 57], - ["push", 12, 8, 2043, 57], - ["is_array", 7, 10, 2043, 57], - ["jump_false", 7, "push_err_522", 2043, 57], - ["push", 10, 12, 2043, 57], - ["jump", "push_done_523", 2043, 57], - "push_err_522", + "if_else_460", + "if_end_461", + ["jump", "if_end_452", 2205, 20], + "if_else_451", + "if_end_452", + ["jump", "if_end_387", 2205, 20], + "if_else_386", + "if_end_387", + ["array", 8, 0, 2211, 19], + ["move", 41, 8, 2211, 19], + ["access", 9, 0, 2212, 12], + ["null", 8, 2213, 28], + ["ne", 10, 30, 8, 2213, 28], + ["jump_false", 10, "tern_else_462", 2213, 28], + ["length", 8, 30, 2213, 42], + ["move", 10, 8, 2213, 42], + ["jump", "tern_end_463", 2213, 42], + "tern_else_462", + ["access", 8, 0, 2213, 55], + ["move", 10, 8, 2213, 55], + "tern_end_463", + ["move", 34, 10, 2213, 55], + "while_start_464", + ["lt", 8, 9, 34, 2214, 19], + ["jump_false", 8, "while_end_465", 2214, 19], + ["load_index", 8, 30, 9, 2215, 44], + ["access", 10, -1, 2215, 49], + ["get", 12, 101, 1, 2215, 25], + ["frame", 13, 12, 2, 2215, 25], + ["setarg", 13, 1, 8, 2215, 25], + ["setarg", 13, 2, 10, 2215, 25], + ["invoke", 13, 8, 2215, 25], + ["is_array", 10, 41, 2215, 25], + ["jump_false", 10, "push_err_466", 2215, 25], + ["push", 41, 8, 2215, 25], + ["jump", "push_done_467", 2215, 25], + "push_err_466", [ "access", - 7, + 8, { "name": "log", "kind": "name", "make": "intrinsic" }, - 2043, - 57 - ], - ["access", 8, "error", 2043, 57], - ["access", 10, "cannot push: target must be an array", 2043, 57], - ["array", 11, 0, 2043, 57], - ["stone_text", 10], - ["push", 11, 10, 2043, 57], - ["frame", 10, 7, 2, 2043, 57], - ["null", 7, 2043, 57], - ["setarg", 10, 0, 7, 2043, 57], - ["stone_text", 8], - ["setarg", 10, 1, 8, 2043, 57], - ["setarg", 10, 2, 11, 2043, 57], - ["invoke", 10, 7, 2043, 57], - ["disrupt", 2043, 57], - "push_done_523", - ["jump", "if_end_521", 2043, 57], - "if_else_520", - ["access", 7, "[", 2044, 34], - ["eq", 8, 49, 7, 2044, 34], - ["jump_false", 8, "if_else_524", 2044, 34], - ["load_field", 7, 46, "left", 2045, 15], - ["move", 24, 7, 2045, 15], - ["load_field", 8, 46, "right", 2046, 15], - ["move", 27, 8, 2046, 15], - ["access", 10, -1, 2047, 34], - ["get", 11, 97, 1, 2047, 20], - ["frame", 12, 11, 2, 2047, 20], - ["setarg", 12, 1, 7, 2047, 20], - ["setarg", 12, 2, 10, 2047, 20], - ["invoke", 12, 7, 2047, 20], - ["move", 26, 7, 2047, 20], - ["access", 10, -1, 2048, 34], - ["get", 11, 97, 1, 2048, 20], - ["frame", 12, 11, 2, 2048, 20], - ["setarg", 12, 1, 8, 2048, 20], - ["setarg", 12, 2, 10, 2048, 20], - ["invoke", 12, 8, 2048, 20], - ["move", 28, 8, 2048, 20], - ["access", 10, "delete", 2049, 16], - ["get", 11, 56, 1, 2049, 9], - ["frame", 12, 11, 4, 2049, 9], - ["stone_text", 10], - ["setarg", 12, 1, 10, 2049, 9], - ["setarg", 12, 2, 4, 2049, 9], - ["setarg", 12, 3, 7, 2049, 9], - ["setarg", 12, 4, 8, 2049, 9], - ["invoke", 12, 7, 2049, 9], - ["jump", "if_end_525", 2049, 9], - "if_else_524", - ["true", 7, 2051, 31], - ["get", 8, 60, 1, 2051, 9], - ["frame", 10, 8, 2, 2051, 9], - ["setarg", 10, 1, 4, 2051, 9], - ["setarg", 10, 2, 7, 2051, 9], - ["invoke", 10, 7, 2051, 9], - "if_end_525", - "if_end_521", - ["return", 4, 2053, 14], - "_nop_ur_41", - "if_else_518", - "if_end_519", - ["access", 4, "then", 2057, 17], - ["eq", 7, 3, 4, 2057, 17], - ["jump_false", 7, "if_else_526", 2057, 17], - ["load_field", 4, 1, "expression", 2058, 14], - ["move", 57, 4, 2058, 14], - ["load_field", 7, 1, "then", 2059, 19], - ["move", 58, 7, 2059, 19], - ["access", 8, "else", 2060, 24], - ["load_field", 10, 1, 8, 2060, 24], - ["move", 59, 10, 2060, 24], - ["access", 8, "tern_else", 2061, 30], - ["get", 11, 49, 1, 2061, 20], - ["frame", 12, 11, 1, 2061, 20], - ["stone_text", 8], - ["setarg", 12, 1, 8, 2061, 20], - ["invoke", 12, 8, 2061, 20], - ["move", 60, 8, 2061, 20], - ["access", 11, "tern_end", 2062, 29], - ["get", 12, 49, 1, 2062, 19], - ["frame", 13, 12, 1, 2062, 19], - ["stone_text", 11], - ["setarg", 13, 1, 11, 2062, 19], - ["invoke", 13, 11, 2062, 19], - ["move", 61, 11, 2062, 19], - ["access", 12, -1, 2063, 34], - ["get", 13, 97, 1, 2063, 19], - ["frame", 14, 13, 2, 2063, 19], - ["setarg", 14, 1, 4, 2063, 19], - ["setarg", 14, 2, 12, 2063, 19], - ["invoke", 14, 4, 2063, 19], - ["move", 62, 4, 2063, 19], - ["access", 12, "jump_false", 2064, 22], - ["get", 13, 64, 1, 2064, 7], - ["frame", 14, 13, 3, 2064, 7], - ["stone_text", 12], - ["setarg", 14, 1, 12, 2064, 7], - ["setarg", 14, 2, 4, 2064, 7], - ["setarg", 14, 3, 8, 2064, 7], - ["invoke", 14, 4, 2064, 7], - ["get", 4, 44, 1, 2065, 14], - ["frame", 12, 4, 0, 2065, 14], - ["invoke", 12, 4, 2065, 14], - ["move", 20, 4, 2065, 14], - ["access", 12, -1, 2066, 39], - ["get", 13, 97, 1, 2066, 19], - ["frame", 14, 13, 2, 2066, 19], - ["setarg", 14, 1, 7, 2066, 19], - ["setarg", 14, 2, 12, 2066, 19], - ["invoke", 14, 7, 2066, 19], - ["move", 63, 7, 2066, 19], - ["access", 12, "move", 2067, 14], - ["get", 13, 55, 1, 2067, 7], - ["frame", 14, 13, 3, 2067, 7], - ["stone_text", 12], - ["setarg", 14, 1, 12, 2067, 7], - ["setarg", 14, 2, 4, 2067, 7], - ["setarg", 14, 3, 7, 2067, 7], - ["invoke", 14, 7, 2067, 7], - ["get", 7, 63, 1, 2068, 7], - ["frame", 12, 7, 1, 2068, 7], - ["setarg", 12, 1, 11, 2068, 7], - ["invoke", 12, 7, 2068, 7], - ["get", 7, 52, 1, 2069, 7], - ["frame", 12, 7, 1, 2069, 7], - ["setarg", 12, 1, 8, 2069, 7], - ["invoke", 12, 7, 2069, 7], - ["access", 7, -1, 2070, 39], - ["get", 8, 97, 1, 2070, 19], - ["frame", 12, 8, 2, 2070, 19], - ["setarg", 12, 1, 10, 2070, 19], - ["setarg", 12, 2, 7, 2070, 19], - ["invoke", 12, 7, 2070, 19], - ["move", 64, 7, 2070, 19], - ["access", 8, "move", 2071, 14], - ["get", 10, 55, 1, 2071, 7], - ["frame", 12, 10, 3, 2071, 7], - ["stone_text", 8], - ["setarg", 12, 1, 8, 2071, 7], - ["setarg", 12, 2, 4, 2071, 7], - ["setarg", 12, 3, 7, 2071, 7], - ["invoke", 12, 7, 2071, 7], - ["get", 7, 52, 1, 2072, 7], - ["frame", 8, 7, 1, 2072, 7], - ["setarg", 8, 1, 11, 2072, 7], - ["invoke", 8, 7, 2072, 7], - ["return", 4, 2073, 14], - "_nop_ur_42", - "if_else_526", - "if_end_527", - ["access", 4, "array", 2077, 17], - ["eq", 7, 3, 4, 2077, 17], - ["jump_false", 7, "if_else_528", 2077, 17], - ["load_field", 4, 1, "list", 2078, 14], - ["move", 6, 4, 2078, 14], - ["length", 7, 4, 2079, 22], - ["move", 65, 7, 2079, 22], - ["array", 4, 0, 2080, 20], - ["move", 66, 4, 2080, 20], - ["access", 9, 0, 2081, 12], - "while_start_530", - ["lt", 4, 9, 65, 2082, 19], - ["jump_false", 4, "while_end_531", 2082, 19], - ["load_index", 4, 6, 9, 2083, 40], - ["access", 7, -1, 2083, 45], - ["get", 8, 97, 1, 2083, 26], - ["frame", 10, 8, 2, 2083, 26], - ["setarg", 10, 1, 4, 2083, 26], - ["setarg", 10, 2, 7, 2083, 26], - ["invoke", 10, 4, 2083, 26], - ["is_array", 7, 66, 2083, 26], - ["jump_false", 7, "push_err_532", 2083, 26], - ["push", 66, 4, 2083, 26], - ["jump", "push_done_533", 2083, 26], - "push_err_532", - [ - "access", - 4, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 2083, - 26 - ], - ["access", 7, "error", 2083, 26], - ["access", 8, "cannot push: target must be an array", 2083, 26], - ["array", 10, 0, 2083, 26], - ["stone_text", 8], - ["push", 10, 8, 2083, 26], - ["frame", 8, 4, 2, 2083, 26], - ["null", 4, 2083, 26], - ["setarg", 8, 0, 4, 2083, 26], - ["stone_text", 7], - ["setarg", 8, 1, 7, 2083, 26], - ["setarg", 8, 2, 10, 2083, 26], - ["invoke", 8, 4, 2083, 26], - ["disrupt", 2083, 26], - "push_done_533", - ["access", 4, 1, 2084, 19], - "_nop_tc_25", - "_nop_tc_26", - "_nop_tc_27", - "_nop_tc_28", - ["add", 9, 9, 4, 2084, 19], - ["jump", "num_done_535", 2084, 19], - "num_err_534", - "_nop_ucfg_73", - "_nop_ucfg_74", - "_nop_ucfg_75", - "_nop_ucfg_76", - "_nop_ucfg_77", - "_nop_ucfg_78", - "_nop_ucfg_79", - "_nop_ucfg_80", - "_nop_ucfg_81", - "_nop_ucfg_82", - "_nop_ucfg_83", - "_nop_ucfg_84", - "num_done_535", - ["jump", "while_start_530", 2084, 19], - "while_end_531", - ["get", 4, 44, 1, 2086, 14], - ["frame", 7, 4, 0, 2086, 14], - ["invoke", 7, 4, 2086, 14], - ["move", 20, 4, 2086, 14], - ["access", 7, "array", 2087, 18], - ["array", 8, 3, 2087, 33], - ["stone_text", 7], - ["push", 8, 7, 2087, 33], - ["push", 8, 4, 2087, 33], - ["push", 8, 65, 2087, 33], - ["get", 4, 51, 1, 2087, 7], - ["frame", 7, 4, 1, 2087, 7], - ["setarg", 7, 1, 8, 2087, 7], - ["invoke", 7, 4, 2087, 7], - ["access", 9, 0, 2088, 12], - "while_start_536", - ["lt", 4, 9, 65, 2089, 19], - ["jump_false", 4, "while_end_537", 2089, 19], - ["access", 4, "push", 2090, 16], - ["load_index", 7, 66, 9, 2090, 41], - ["get", 8, 55, 1, 2090, 9], - ["frame", 10, 8, 3, 2090, 9], - ["stone_text", 4], - ["setarg", 10, 1, 4, 2090, 9], - ["setarg", 10, 2, 20, 2090, 9], - ["setarg", 10, 3, 7, 2090, 9], - ["invoke", 10, 4, 2090, 9], - ["access", 4, 1, 2091, 19], - "_nop_tc_29", - "_nop_tc_30", - "_nop_tc_31", - "_nop_tc_32", - ["add", 9, 9, 4, 2091, 19], - ["jump", "num_done_539", 2091, 19], - "num_err_538", - "_nop_ucfg_85", - "_nop_ucfg_86", - "_nop_ucfg_87", - "_nop_ucfg_88", - "_nop_ucfg_89", - "_nop_ucfg_90", - "_nop_ucfg_91", - "_nop_ucfg_92", - "_nop_ucfg_93", - "_nop_ucfg_94", - "_nop_ucfg_95", - "_nop_ucfg_96", - "num_done_539", - ["jump", "while_start_536", 2091, 19], - "while_end_537", - ["return", 20, 2093, 14], - "_nop_ur_43", - "if_else_528", - "if_end_529", - ["access", 4, "record", 2097, 17], - ["eq", 7, 3, 4, 2097, 17], - ["jump_false", 7, "if_else_540", 2097, 17], - ["load_field", 4, 1, "list", 2098, 14], - ["move", 6, 4, 2098, 14], - ["get", 7, 44, 1, 2099, 14], - ["frame", 8, 7, 0, 2099, 14], - ["invoke", 8, 7, 2099, 14], - ["move", 20, 7, 2099, 14], - ["get", 8, 2, 1, 2100, 12], - ["access", 10, "record", 2100, 29], - ["length", 11, 4, 2100, 52], - ["array", 4, 3, 2100, 52], - ["stone_text", 10], - ["push", 4, 10, 2100, 52], - ["push", 4, 7, 2100, 52], - ["push", 4, 11, 2100, 52], - ["is_array", 7, 8, 2100, 52], - ["jump_false", 7, "push_err_542", 2100, 52], - ["push", 8, 4, 2100, 52], - ["jump", "push_done_543", 2100, 52], - "push_err_542", - [ - "access", - 4, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 2100, - 52 - ], - ["access", 7, "error", 2100, 52], - ["access", 8, "cannot push: target must be an array", 2100, 52], - ["array", 10, 0, 2100, 52], - ["stone_text", 8], - ["push", 10, 8, 2100, 52], - ["frame", 8, 4, 2, 2100, 52], - ["null", 4, 2100, 52], - ["setarg", 8, 0, 4, 2100, 52], - ["stone_text", 7], - ["setarg", 8, 1, 7, 2100, 52], - ["setarg", 8, 2, 10, 2100, 52], - ["invoke", 8, 4, 2100, 52], - ["disrupt", 2100, 52], - "push_done_543", - ["access", 9, 0, 2101, 12], - "while_start_544", - ["length", 4, 6, 2102, 26], - ["lt", 7, 9, 4, 2102, 26], - ["jump_false", 7, "while_end_545", 2102, 26], - ["load_index", 4, 6, 9, 2103, 21], - ["move", 67, 4, 2103, 21], - ["load_field", 7, 4, "left", 2104, 15], - ["move", 68, 7, 2104, 15], - ["load_field", 8, 4, "right", 2105, 15], - ["move", 5, 8, 2105, 15], - ["access", 4, -1, 2106, 34], - ["get", 10, 97, 1, 2106, 20], - ["frame", 11, 10, 2, 2106, 20], - ["setarg", 11, 1, 8, 2106, 20], - ["setarg", 11, 2, 4, 2106, 20], - ["invoke", 11, 4, 2106, 20], - ["move", 69, 4, 2106, 20], - ["load_field", 4, 7, "kind", 2107, 20], - ["move", 70, 4, 2107, 20], - ["access", 7, "name", 2108, 25], - ["eq", 8, 4, 7, 2108, 25], - ["jump_false", 8, "if_else_546", 2108, 25], - ["load_field", 4, 68, "name", 2109, 31], - ["get", 7, 79, 1, 2109, 11], - ["frame", 8, 7, 3, 2109, 11], - ["setarg", 8, 1, 20, 2109, 11], - ["setarg", 8, 2, 4, 2109, 11], - ["setarg", 8, 3, 69, 2109, 11], - ["invoke", 8, 4, 2109, 11], - ["jump", "if_end_547", 2109, 11], - "if_else_546", - ["access", 4, "text", 2110, 32], - ["eq", 7, 70, 4, 2110, 32], - ["jump_false", 7, "if_else_548", 2110, 32], - ["load_field", 4, 68, "value", 2111, 19], - ["move", 71, 4, 2111, 19], - ["null", 7, 2112, 24], - ["eq", 8, 4, 7, 2112, 24], - ["jump_false", 8, "if_else_550", 2112, 24], - ["access", 71, "", 2113, 21], - ["jump", "if_end_551", 2113, 21], - "if_else_550", - "if_end_551", - ["get", 4, 79, 1, 2115, 11], - ["frame", 7, 4, 3, 2115, 11], - ["setarg", 7, 1, 20, 2115, 11], - ["stone_text", 71], - ["setarg", 7, 2, 71, 2115, 11], - ["setarg", 7, 3, 69, 2115, 11], - ["invoke", 7, 4, 2115, 11], - ["jump", "if_end_549", 2115, 11], - "if_else_548", - ["access", 4, -1, 2117, 36], - ["get", 7, 97, 1, 2117, 22], - ["frame", 8, 7, 2, 2117, 22], - ["setarg", 8, 1, 68, 2117, 22], - ["setarg", 8, 2, 4, 2117, 22], - ["invoke", 8, 4, 2117, 22], - ["move", 43, 4, 2117, 22], - ["get", 7, 81, 1, 2118, 11], - ["frame", 8, 7, 3, 2118, 11], - ["setarg", 8, 1, 20, 2118, 11], - ["setarg", 8, 2, 4, 2118, 11], - ["setarg", 8, 3, 69, 2118, 11], - ["invoke", 8, 4, 2118, 11], - "if_end_549", - "if_end_547", - ["access", 4, 1, 2120, 19], - "_nop_tc_33", - "_nop_tc_34", - "_nop_tc_35", - "_nop_tc_36", - ["add", 9, 9, 4, 2120, 19], - ["jump", "num_done_553", 2120, 19], - "num_err_552", - "_nop_ucfg_97", - "_nop_ucfg_98", - "_nop_ucfg_99", - "_nop_ucfg_100", - "_nop_ucfg_101", - "_nop_ucfg_102", - "_nop_ucfg_103", - "_nop_ucfg_104", - "_nop_ucfg_105", - "_nop_ucfg_106", - "_nop_ucfg_107", - "_nop_ucfg_108", - "num_done_553", - ["jump", "while_start_544", 2120, 19], - "while_end_545", - ["return", 20, 2122, 14], - "_nop_ur_44", - "if_else_540", - "if_end_541", - ["access", 4, "function", 2126, 17], - ["eq", 5, 3, 4, 2126, 17], - ["jump_false", 5, "if_else_554", 2126, 17], - ["get", 4, 105, 1, 2127, 14], - ["frame", 5, 4, 1, 2127, 14], - ["setarg", 5, 1, 1, 2127, 14], - ["invoke", 5, 4, 2127, 14], - ["move", 72, 4, 2127, 14], - ["get", 4, 21, 1, 2128, 17], - ["move", 73, 4, 2128, 17], - ["get", 4, 21, 1, 2129, 24], - ["access", 5, 1, 2129, 41], - ["is_num", 6, 4, 2129, 41], - ["jump_false", 6, "num_err_556", 2129, 41], - "_nop_tc_37", - "_nop_tc_38", - ["add", 6, 4, 5, 2129, 41], - ["jump", "num_done_557", 2129, 41], - "num_err_556", - [ - "access", - 4, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 2129, - 41 - ], - ["access", 5, "error", 2129, 41], - ["access", 7, "cannot apply '+': operands must be numbers", 2129, 41], - ["array", 8, 0, 2129, 41], - ["stone_text", 7], - ["push", 8, 7, 2129, 41], - ["frame", 7, 4, 2, 2129, 41], - ["null", 4, 2129, 41], - ["setarg", 7, 0, 4, 2129, 41], - ["stone_text", 5], - ["setarg", 7, 1, 5, 2129, 41], - ["setarg", 7, 2, 8, 2129, 41], - ["invoke", 7, 4, 2129, 41], - ["disrupt", 2129, 41], - "num_done_557", - ["put", 6, 21, 1, 2129, 41], - ["get", 4, 12, 1, 2130, 12], - ["is_array", 5, 4, 2130, 25], - ["jump_false", 5, "push_err_558", 2130, 25], - ["push", 4, 72, 2130, 25], - ["jump", "push_done_559", 2130, 25], - "push_err_558", - [ - "access", - 4, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 2130, + 2215, 25 ], - ["access", 5, "error", 2130, 25], - ["access", 6, "cannot push: target must be an array", 2130, 25], - ["array", 7, 0, 2130, 25], - ["stone_text", 6], - ["push", 7, 6, 2130, 25], - ["frame", 6, 4, 2, 2130, 25], - ["null", 4, 2130, 25], - ["setarg", 6, 0, 4, 2130, 25], - ["stone_text", 5], - ["setarg", 6, 1, 5, 2130, 25], - ["setarg", 6, 2, 7, 2130, 25], - ["invoke", 6, 4, 2130, 25], - ["disrupt", 2130, 25], - "push_done_559", - ["get", 4, 44, 1, 2131, 14], - ["frame", 5, 4, 0, 2131, 14], - ["invoke", 5, 4, 2131, 14], - ["move", 20, 4, 2131, 14], - ["access", 5, "function", 2132, 14], - ["get", 6, 55, 1, 2132, 7], - ["frame", 7, 6, 3, 2132, 7], - ["stone_text", 5], - ["setarg", 7, 1, 5, 2132, 7], - ["setarg", 7, 2, 4, 2132, 7], - ["setarg", 7, 3, 73, 2132, 7], - ["invoke", 7, 5, 2132, 7], - ["return", 4, 2133, 14], + ["access", 10, "error", 2215, 25], + ["access", 12, "cannot push: target must be an array", 2215, 25], + ["array", 13, 0, 2215, 25], + ["stone_text", 12], + ["push", 13, 12, 2215, 25], + ["frame", 12, 8, 2, 2215, 25], + ["null", 8, 2215, 25], + ["setarg", 12, 0, 8, 2215, 25], + ["stone_text", 10], + ["setarg", 12, 1, 10, 2215, 25], + ["setarg", 12, 2, 13, 2215, 25], + ["invoke", 12, 8, 2215, 25], + ["disrupt", 2215, 25], + "push_done_467", + ["access", 8, 1, 2216, 19], + ["add", 9, 9, 8, 2216, 19], + ["jump", "while_start_464", 2216, 19], + "while_end_465", + ["get", 8, 46, 1, 2218, 14], + ["frame", 10, 8, 0, 2218, 14], + ["invoke", 10, 8, 2218, 14], + ["move", 20, 8, 2218, 14], + ["access", 8, ".", 2219, 26], + ["eq", 10, 31, 8, 2219, 26], + ["jump_false", 10, "if_else_468", 2219, 26], + ["load_field", 8, 29, "left", 2220, 15], + ["move", 24, 8, 2220, 15], + ["load_field", 10, 29, "right", 2221, 16], + ["move", 25, 10, 2221, 16], + ["access", 12, -1, 2222, 34], + ["get", 13, 101, 1, 2222, 20], + ["frame", 14, 13, 2, 2222, 20], + ["setarg", 14, 1, 8, 2222, 20], + ["setarg", 14, 2, 12, 2222, 20], + ["invoke", 14, 8, 2222, 20], + ["move", 26, 8, 2222, 20], + ["get", 12, 85, 1, 2223, 9], + ["frame", 13, 12, 4, 2223, 9], + ["setarg", 13, 1, 20, 2223, 9], + ["setarg", 13, 2, 8, 2223, 9], + ["setarg", 13, 3, 10, 2223, 9], + ["setarg", 13, 4, 41, 2223, 9], + ["invoke", 13, 8, 2223, 9], + ["jump", "if_end_469", 2223, 9], + "if_else_468", + ["access", 8, "[", 2224, 33], + ["eq", 10, 31, 8, 2224, 33], + ["jump_false", 10, "if_else_470", 2224, 33], + ["load_field", 8, 29, "left", 2225, 15], + ["move", 24, 8, 2225, 15], + ["load_field", 10, 29, "right", 2226, 20], + ["move", 42, 10, 2226, 20], + ["access", 12, -1, 2227, 34], + ["get", 13, 101, 1, 2227, 20], + ["frame", 14, 13, 2, 2227, 20], + ["setarg", 14, 1, 8, 2227, 20], + ["setarg", 14, 2, 12, 2227, 20], + ["invoke", 14, 8, 2227, 20], + ["move", 26, 8, 2227, 20], + ["access", 12, -1, 2228, 39], + ["get", 13, 101, 1, 2228, 20], + ["frame", 14, 13, 2, 2228, 20], + ["setarg", 14, 1, 10, 2228, 20], + ["setarg", 14, 2, 12, 2228, 20], + ["invoke", 14, 10, 2228, 20], + ["move", 43, 10, 2228, 20], + ["get", 12, 86, 1, 2229, 9], + ["frame", 13, 12, 4, 2229, 9], + ["setarg", 13, 1, 20, 2229, 9], + ["setarg", 13, 2, 8, 2229, 9], + ["setarg", 13, 3, 10, 2229, 9], + ["setarg", 13, 4, 41, 2229, 9], + ["invoke", 13, 8, 2229, 9], + ["jump", "if_end_471", 2229, 9], + "if_else_470", + ["access", 8, -1, 2231, 38], + ["get", 10, 101, 1, 2231, 21], + ["frame", 12, 10, 2, 2231, 21], + ["setarg", 12, 1, 29, 2231, 21], + ["setarg", 12, 2, 8, 2231, 21], + ["invoke", 12, 8, 2231, 21], + ["move", 44, 8, 2231, 21], + ["get", 10, 84, 1, 2232, 9], + ["frame", 12, 10, 3, 2232, 9], + ["setarg", 12, 1, 20, 2232, 9], + ["setarg", 12, 2, 8, 2232, 9], + ["setarg", 12, 3, 41, 2232, 9], + ["invoke", 12, 8, 2232, 9], + "if_end_471", + "if_end_469", + ["return", 20, 2234, 14], + "_nop_ur_37", + "if_else_365", + "if_end_366", + ["access", 8, "!", 2238, 17], + ["eq", 10, 3, 8, 2238, 17], + ["jump_false", 10, "if_else_472", 2238, 17], + ["load_field", 8, 1, "expression", 2239, 31], + ["access", 10, -1, 2239, 48], + ["get", 12, 101, 1, 2239, 22], + ["frame", 13, 12, 2, 2239, 22], + ["setarg", 13, 1, 8, 2239, 22], + ["setarg", 13, 2, 10, 2239, 22], + ["invoke", 13, 8, 2239, 22], + ["move", 45, 8, 2239, 22], + ["get", 10, 46, 1, 2240, 14], + ["frame", 12, 10, 0, 2240, 14], + ["invoke", 12, 10, 2240, 14], + ["move", 4, 10, 2240, 14], + ["access", 12, "not", 2241, 14], + ["get", 13, 57, 1, 2241, 7], + ["frame", 14, 13, 3, 2241, 7], + ["stone_text", 12], + ["setarg", 14, 1, 12, 2241, 7], + ["setarg", 14, 2, 10, 2241, 7], + ["setarg", 14, 3, 8, 2241, 7], + ["invoke", 14, 8, 2241, 7], + ["return", 10, 2242, 14], + "_nop_ur_38", + "if_else_472", + "if_end_473", + ["access", 8, "~", 2244, 17], + ["eq", 10, 3, 8, 2244, 17], + ["jump_false", 10, "if_else_474", 2244, 17], + ["load_field", 8, 1, "expression", 2245, 31], + ["access", 10, -1, 2245, 48], + ["get", 12, 101, 1, 2245, 22], + ["frame", 13, 12, 2, 2245, 22], + ["setarg", 13, 1, 8, 2245, 22], + ["setarg", 13, 2, 10, 2245, 22], + ["invoke", 13, 8, 2245, 22], + ["move", 45, 8, 2245, 22], + ["get", 10, 46, 1, 2246, 14], + ["frame", 12, 10, 0, 2246, 14], + ["invoke", 12, 10, 2246, 14], + ["move", 4, 10, 2246, 14], + ["access", 12, "bitnot", 2247, 14], + ["get", 13, 57, 1, 2247, 7], + ["frame", 14, 13, 3, 2247, 7], + ["stone_text", 12], + ["setarg", 14, 1, 12, 2247, 7], + ["setarg", 14, 2, 10, 2247, 7], + ["setarg", 14, 3, 8, 2247, 7], + ["invoke", 14, 8, 2247, 7], + ["return", 10, 2248, 14], + "_nop_ur_39", + "if_else_474", + "if_end_475", + ["access", 8, "-unary", 2250, 17], + ["eq", 10, 3, 8, 2250, 17], + ["jump_false", 10, "if_else_476", 2250, 17], + ["load_field", 8, 1, "expression", 2251, 31], + ["access", 10, -1, 2251, 48], + ["get", 12, 101, 1, 2251, 22], + ["frame", 13, 12, 2, 2251, 22], + ["setarg", 13, 1, 8, 2251, 22], + ["setarg", 13, 2, 10, 2251, 22], + ["invoke", 13, 8, 2251, 22], + ["move", 45, 8, 2251, 22], + ["get", 10, 46, 1, 2252, 14], + ["frame", 12, 10, 0, 2252, 14], + ["invoke", 12, 10, 2252, 14], + ["move", 4, 10, 2252, 14], + ["load_field", 12, 1, "expression", 2253, 47], + ["get", 13, 78, 1, 2253, 7], + ["frame", 14, 13, 3, 2253, 7], + ["setarg", 14, 1, 10, 2253, 7], + ["setarg", 14, 2, 8, 2253, 7], + ["setarg", 14, 3, 12, 2253, 7], + ["invoke", 14, 8, 2253, 7], + ["return", 10, 2254, 14], + "_nop_ur_40", + "if_else_476", + "if_end_477", + ["access", 8, "+unary", 2256, 17], + ["eq", 10, 3, 8, 2256, 17], + ["jump_false", 10, "if_else_478", 2256, 17], + ["load_field", 8, 1, "expression", 2257, 23], + ["access", 10, -1, 2257, 40], + ["get", 12, 101, 1, 2257, 14], + ["frame", 13, 12, 2, 2257, 14], + ["setarg", 13, 1, 8, 2257, 14], + ["setarg", 13, 2, 10, 2257, 14], + ["tail_invoke", 13, 8, 2257, 14], + ["return", 8, 2257, 14], + "_nop_ur_41", + "if_else_478", + "if_end_479", + ["access", 8, "++", 2261, 17], + ["eq", 10, 3, 8, 2261, 17], + ["move", 8, 10, 2261, 17], + ["jump_true", 10, "or_end_482", 2261, 17], + ["access", 10, "--", 2261, 33], + ["eq", 12, 3, 10, 2261, 33], + ["move", 8, 12, 2261, 33], + "or_end_482", + ["jump_false", 8, "if_else_480", 2261, 33], + ["load_field", 8, 1, "expression", 2262, 17], + ["move", 46, 8, 2262, 17], + ["load_field", 8, 1, "postfix", 2263, 17], + ["true", 10, 2263, 33], + ["eq", 47, 8, 10, 2263, 33], + ["access", 8, "++", 2264, 26], + ["eq", 10, 3, 8, 2264, 26], + ["jump_false", 10, "tern_else_483", 2264, 26], + ["access", 8, "add", 2264, 33], + ["stone_text", 8], + ["move", 10, 8, 2264, 33], + ["jump", "tern_end_484", 2264, 33], + "tern_else_483", + ["access", 8, "subtract", 2264, 41], + ["stone_text", 8], + ["move", 10, 8, 2264, 41], + "tern_end_484", + ["stone_text", 10], + ["move", 48, 10, 2264, 41], + ["load_field", 8, 46, "kind", 2265, 22], + ["move", 49, 8, 2265, 22], + ["get", 10, 46, 1, 2266, 18], + ["frame", 12, 10, 0, 2266, 18], + ["invoke", 12, 10, 2266, 18], + ["move", 50, 10, 2266, 18], + ["access", 12, "int", 2267, 14], + ["access", 13, 1, 2267, 31], + ["get", 14, 57, 1, 2267, 7], + ["frame", 15, 14, 3, 2267, 7], + ["stone_text", 12], + ["setarg", 15, 1, 12, 2267, 7], + ["setarg", 15, 2, 10, 2267, 7], + ["setarg", 15, 3, 13, 2267, 7], + ["invoke", 15, 10, 2267, 7], + ["record", 10, 2], + ["access", 12, "number", 2268, 25], + ["store_field", 10, 12, "kind", 2268, 25], + ["access", 12, 1, 2268, 43], + ["store_field", 10, 12, "number", 2268, 43], + ["move", 51, 10, 2268, 43], + ["access", 10, "name", 2270, 27], + ["eq", 12, 8, 10, 2270, 27], + ["jump_false", 12, "if_else_485", 2270, 27], + ["load_field", 8, 46, "name", 2271, 16], + ["move", 17, 8, 2271, 16], + ["load_field", 8, 46, "level", 2272, 17], + ["move", 18, 8, 2272, 17], + ["null", 10, 2273, 22], + ["eq", 12, 8, 10, 2273, 22], + ["jump_false", 12, "if_else_487", 2273, 22], + ["access", 18, -1, 2274, 19], + ["jump", "if_end_488", 2274, 19], + "if_else_487", + "if_end_488", + ["get", 8, 46, 1, 2276, 20], + ["frame", 10, 8, 0, 2276, 20], + ["invoke", 10, 8, 2276, 20], + ["move", 52, 8, 2276, 20], + ["access", 8, 0, 2277, 22], + ["eq", 10, 18, 8, 2277, 22], + ["jump_false", 10, "if_else_489", 2277, 22], + ["get", 8, 48, 1, 2278, 19], + ["frame", 10, 8, 1, 2278, 19], + ["setarg", 10, 1, 17, 2278, 19], + ["invoke", 10, 8, 2278, 19], + ["move", 53, 8, 2278, 19], + ["access", 10, 0, 2279, 24], + ["ge", 12, 8, 10, 2279, 24], + ["jump_false", 12, "if_else_491", 2279, 24], + ["access", 8, "move", 2280, 20], + ["get", 10, 57, 1, 2280, 13], + ["frame", 12, 10, 3, 2280, 13], + ["stone_text", 8], + ["setarg", 12, 1, 8, 2280, 13], + ["setarg", 12, 2, 52, 2280, 13], + ["setarg", 12, 3, 53, 2280, 13], + ["invoke", 12, 8, 2280, 13], + ["jump", "if_end_492", 2280, 13], + "if_else_491", + "if_end_492", + ["jump", "if_end_490", 2280, 13], + "if_else_489", + ["access", 8, 0, 2282, 28], + ["gt", 10, 18, 8, 2282, 28], + ["jump_false", 10, "if_else_493", 2282, 28], + ["access", 8, 1, 2283, 25], + ["subtract", 21, 18, 8, 2283, 25], + ["get", 8, 119, 1, 2284, 20], + ["get", 10, 119, 1, 2284, 41], + ["length", 12, 10, 2284, 41], + ["access", 10, 1, 2284, 58], + "_nop_tc_3", + "_nop_tc_4", + ["subtract", 13, 12, 10, 2284, 58], + ["subtract", 10, 13, 21, 2284, 62], + ["load_index", 12, 8, 10, 2284, 62], + ["move", 22, 12, 2284, 62], + ["get", 8, 94, 1, 2285, 19], + ["frame", 10, 8, 2, 2285, 19], + ["setarg", 10, 1, 12, 2285, 19], + ["setarg", 10, 2, 17, 2285, 19], + ["invoke", 10, 8, 2285, 19], + ["move", 55, 8, 2285, 19], + ["access", 10, "get", 2286, 18], + ["get", 12, 58, 1, 2286, 11], + ["frame", 13, 12, 4, 2286, 11], + ["stone_text", 10], + ["setarg", 13, 1, 10, 2286, 11], + ["setarg", 13, 2, 52, 2286, 11], + ["setarg", 13, 3, 8, 2286, 11], + ["setarg", 13, 4, 18, 2286, 11], + ["invoke", 13, 8, 2286, 11], + ["jump", "if_end_494", 2286, 11], + "if_else_493", + ["get", 8, 117, 1, 2288, 11], + ["frame", 10, 8, 2, 2288, 11], + ["setarg", 10, 1, 52, 2288, 11], + ["setarg", 10, 2, 17, 2288, 11], + ["invoke", 10, 8, 2288, 11], + "if_end_494", + "if_end_490", + ["get", 8, 46, 1, 2290, 20], + ["frame", 10, 8, 0, 2290, 20], + ["invoke", 10, 8, 2290, 20], + ["move", 54, 8, 2290, 20], + ["null", 10, 2291, 18], + ["put", 10, 40, 1, 2291, 18], + ["put", 51, 41, 1, 2292, 18], + ["get", 10, 79, 1, 2293, 9], + ["frame", 12, 10, 4, 2293, 9], + ["stone_text", 48], + ["setarg", 12, 1, 48, 2293, 9], + ["setarg", 12, 2, 8, 2293, 9], + ["setarg", 12, 3, 52, 2293, 9], + ["setarg", 12, 4, 50, 2293, 9], + ["invoke", 12, 8, 2293, 9], + ["access", 8, 0, 2294, 22], + ["eq", 10, 18, 8, 2294, 22], + ["jump_false", 10, "if_else_495", 2294, 22], + ["get", 8, 48, 1, 2295, 19], + ["frame", 10, 8, 1, 2295, 19], + ["setarg", 10, 1, 17, 2295, 19], + ["invoke", 10, 8, 2295, 19], + ["move", 53, 8, 2295, 19], + ["access", 10, 0, 2296, 24], + ["ge", 12, 8, 10, 2296, 24], + ["jump_false", 12, "if_else_497", 2296, 24], + ["access", 8, "move", 2297, 20], + ["get", 10, 57, 1, 2297, 13], + ["frame", 12, 10, 3, 2297, 13], + ["stone_text", 8], + ["setarg", 12, 1, 8, 2297, 13], + ["setarg", 12, 2, 53, 2297, 13], + ["setarg", 12, 3, 54, 2297, 13], + ["invoke", 12, 8, 2297, 13], + ["jump", "if_end_498", 2297, 13], + "if_else_497", + "if_end_498", + ["jump", "if_end_496", 2297, 13], + "if_else_495", + ["access", 8, 0, 2299, 28], + ["gt", 10, 18, 8, 2299, 28], + ["jump_false", 10, "if_else_499", 2299, 28], + ["access", 8, 1, 2300, 25], + ["subtract", 21, 18, 8, 2300, 25], + ["get", 8, 119, 1, 2301, 20], + ["get", 10, 119, 1, 2301, 41], + ["length", 12, 10, 2301, 41], + ["access", 10, 1, 2301, 58], + "_nop_tc_5", + "_nop_tc_6", + ["subtract", 13, 12, 10, 2301, 58], + ["subtract", 10, 13, 21, 2301, 62], + ["load_index", 12, 8, 10, 2301, 62], + ["move", 22, 12, 2301, 62], + ["get", 8, 94, 1, 2302, 19], + ["frame", 10, 8, 2, 2302, 19], + ["setarg", 10, 1, 12, 2302, 19], + ["setarg", 10, 2, 17, 2302, 19], + ["invoke", 10, 8, 2302, 19], + ["move", 55, 8, 2302, 19], + ["access", 10, "put", 2303, 18], + ["get", 12, 58, 1, 2303, 11], + ["frame", 13, 12, 4, 2303, 11], + ["stone_text", 10], + ["setarg", 13, 1, 10, 2303, 11], + ["setarg", 13, 2, 54, 2303, 11], + ["setarg", 13, 3, 8, 2303, 11], + ["setarg", 13, 4, 18, 2303, 11], + ["invoke", 13, 8, 2303, 11], + ["jump", "if_end_500", 2303, 11], + "if_else_499", + "if_end_500", + "if_end_496", + ["jump_false", 47, "tern_else_501", 2305, 16], + ["move", 8, 52, 2305, 26], + ["jump", "tern_end_502", 2305, 26], + "tern_else_501", + ["move", 8, 54, 2305, 37], + "tern_end_502", + ["return", 8, 2305, 37], + "_nop_ur_42", + "if_else_485", + ["access", 8, ".", 2306, 34], + ["eq", 10, 49, 8, 2306, 34], + ["jump_false", 10, "if_else_503", 2306, 34], + ["load_field", 8, 46, "left", 2307, 15], + ["move", 24, 8, 2307, 15], + ["load_field", 10, 46, "right", 2308, 16], + ["move", 25, 10, 2308, 16], + ["access", 12, -1, 2309, 34], + ["get", 13, 101, 1, 2309, 20], + ["frame", 14, 13, 2, 2309, 20], + ["setarg", 14, 1, 8, 2309, 20], + ["setarg", 14, 2, 12, 2309, 20], + ["invoke", 14, 8, 2309, 20], + ["move", 26, 8, 2309, 20], + ["get", 12, 46, 1, 2310, 20], + ["frame", 13, 12, 0, 2310, 20], + ["invoke", 13, 12, 2310, 20], + ["move", 52, 12, 2310, 20], + ["get", 13, 80, 1, 2311, 9], + ["frame", 14, 13, 3, 2311, 9], + ["setarg", 14, 1, 12, 2311, 9], + ["setarg", 14, 2, 8, 2311, 9], + ["setarg", 14, 3, 10, 2311, 9], + ["invoke", 14, 13, 2311, 9], + ["get", 13, 46, 1, 2312, 20], + ["frame", 14, 13, 0, 2312, 20], + ["invoke", 14, 13, 2312, 20], + ["move", 54, 13, 2312, 20], + ["null", 14, 2313, 18], + ["put", 14, 40, 1, 2313, 18], + ["put", 51, 41, 1, 2314, 18], + ["get", 14, 79, 1, 2315, 9], + ["frame", 15, 14, 4, 2315, 9], + ["stone_text", 48], + ["setarg", 15, 1, 48, 2315, 9], + ["setarg", 15, 2, 13, 2315, 9], + ["setarg", 15, 3, 12, 2315, 9], + ["setarg", 15, 4, 50, 2315, 9], + ["invoke", 15, 12, 2315, 9], + ["get", 12, 81, 1, 2316, 9], + ["frame", 14, 12, 3, 2316, 9], + ["setarg", 14, 1, 8, 2316, 9], + ["setarg", 14, 2, 10, 2316, 9], + ["setarg", 14, 3, 13, 2316, 9], + ["invoke", 14, 8, 2316, 9], + ["jump_false", 47, "tern_else_505", 2317, 16], + ["move", 8, 52, 2317, 26], + ["jump", "tern_end_506", 2317, 26], + "tern_else_505", + ["move", 8, 54, 2317, 37], + "tern_end_506", + ["return", 8, 2317, 37], + "_nop_ur_43", + "if_else_503", + ["access", 8, "[", 2318, 34], + ["eq", 10, 49, 8, 2318, 34], + ["jump_false", 10, "if_else_507", 2318, 34], + ["load_field", 8, 46, "left", 2319, 15], + ["move", 24, 8, 2319, 15], + ["load_field", 10, 46, "right", 2320, 20], + ["move", 56, 10, 2320, 20], + ["access", 12, -1, 2321, 34], + ["get", 13, 101, 1, 2321, 20], + ["frame", 14, 13, 2, 2321, 20], + ["setarg", 14, 1, 8, 2321, 20], + ["setarg", 14, 2, 12, 2321, 20], + ["invoke", 14, 8, 2321, 20], + ["move", 26, 8, 2321, 20], + ["access", 12, -1, 2322, 39], + ["get", 13, 101, 1, 2322, 20], + ["frame", 14, 13, 2, 2322, 20], + ["setarg", 14, 1, 10, 2322, 20], + ["setarg", 14, 2, 12, 2322, 20], + ["invoke", 14, 10, 2322, 20], + ["move", 28, 10, 2322, 20], + ["get", 12, 46, 1, 2323, 20], + ["frame", 13, 12, 0, 2323, 20], + ["invoke", 13, 12, 2323, 20], + ["move", 52, 12, 2323, 20], + ["load_field", 13, 46, "access_kind", 2324, 53], + ["get", 14, 82, 1, 2324, 9], + ["frame", 15, 14, 4, 2324, 9], + ["setarg", 15, 1, 12, 2324, 9], + ["setarg", 15, 2, 8, 2324, 9], + ["setarg", 15, 3, 10, 2324, 9], + ["setarg", 15, 4, 13, 2324, 9], + ["invoke", 15, 13, 2324, 9], + ["get", 13, 46, 1, 2325, 20], + ["frame", 14, 13, 0, 2325, 20], + ["invoke", 14, 13, 2325, 20], + ["move", 54, 13, 2325, 20], + ["null", 14, 2326, 18], + ["put", 14, 40, 1, 2326, 18], + ["put", 51, 41, 1, 2327, 18], + ["get", 14, 79, 1, 2328, 9], + ["frame", 15, 14, 4, 2328, 9], + ["stone_text", 48], + ["setarg", 15, 1, 48, 2328, 9], + ["setarg", 15, 2, 13, 2328, 9], + ["setarg", 15, 3, 12, 2328, 9], + ["setarg", 15, 4, 50, 2328, 9], + ["invoke", 15, 12, 2328, 9], + ["load_field", 12, 46, "access_kind", 2329, 53], + ["get", 14, 83, 1, 2329, 9], + ["frame", 15, 14, 4, 2329, 9], + ["setarg", 15, 1, 8, 2329, 9], + ["setarg", 15, 2, 10, 2329, 9], + ["setarg", 15, 3, 13, 2329, 9], + ["setarg", 15, 4, 12, 2329, 9], + ["invoke", 15, 8, 2329, 9], + ["jump_false", 47, "tern_else_509", 2330, 16], + ["move", 8, 52, 2330, 26], + ["jump", "tern_end_510", 2330, 26], + "tern_else_509", + ["move", 8, 54, 2330, 37], + "tern_end_510", + ["return", 8, 2330, 37], + "_nop_ur_44", + "if_else_507", + "if_end_508", + "if_end_504", + "if_end_486", + ["jump", "if_end_481", 2330, 37], + "if_else_480", + "if_end_481", + ["access", 8, "delete", 2335, 17], + ["eq", 10, 3, 8, 2335, 17], + ["jump_false", 10, "if_else_511", 2335, 17], + ["load_field", 8, 1, "expression", 2336, 17], + ["move", 46, 8, 2336, 17], + ["load_field", 10, 8, "kind", 2337, 22], + ["move", 49, 10, 2337, 22], + ["get", 8, 46, 1, 2338, 14], + ["frame", 12, 8, 0, 2338, 14], + ["invoke", 12, 8, 2338, 14], + ["move", 4, 8, 2338, 14], + ["access", 8, ".", 2339, 27], + ["eq", 12, 10, 8, 2339, 27], + ["jump_false", 12, "if_else_513", 2339, 27], + ["load_field", 8, 46, "left", 2340, 15], + ["move", 24, 8, 2340, 15], + ["load_field", 10, 46, "right", 2341, 16], + ["move", 25, 10, 2341, 16], + ["access", 12, -1, 2342, 34], + ["get", 13, 101, 1, 2342, 20], + ["frame", 14, 13, 2, 2342, 20], + ["setarg", 14, 1, 8, 2342, 20], + ["setarg", 14, 2, 12, 2342, 20], + ["invoke", 14, 8, 2342, 20], + ["move", 26, 8, 2342, 20], + ["get", 12, 2, 1, 2343, 14], + ["access", 13, "delete", 2343, 31], + ["array", 14, 4, 2343, 57], + ["stone_text", 13], + ["push", 14, 13, 2343, 57], + ["push", 14, 4, 2343, 57], + ["push", 14, 8, 2343, 57], + ["push", 14, 10, 2343, 57], + ["is_array", 8, 12, 2343, 57], + ["jump_false", 8, "push_err_515", 2343, 57], + ["push", 12, 14, 2343, 57], + ["jump", "push_done_516", 2343, 57], + "push_err_515", + [ + "access", + 8, + { + "name": "log", + "kind": "name", + "make": "intrinsic" + }, + 2343, + 57 + ], + ["access", 10, "error", 2343, 57], + ["access", 12, "cannot push: target must be an array", 2343, 57], + ["array", 13, 0, 2343, 57], + ["stone_text", 12], + ["push", 13, 12, 2343, 57], + ["frame", 12, 8, 2, 2343, 57], + ["null", 8, 2343, 57], + ["setarg", 12, 0, 8, 2343, 57], + ["stone_text", 10], + ["setarg", 12, 1, 10, 2343, 57], + ["setarg", 12, 2, 13, 2343, 57], + ["invoke", 12, 8, 2343, 57], + ["disrupt", 2343, 57], + "push_done_516", + ["jump", "if_end_514", 2343, 57], + "if_else_513", + ["access", 8, "[", 2344, 34], + ["eq", 10, 49, 8, 2344, 34], + ["jump_false", 10, "if_else_517", 2344, 34], + ["load_field", 8, 46, "left", 2345, 15], + ["move", 24, 8, 2345, 15], + ["load_field", 10, 46, "right", 2346, 15], + ["move", 27, 10, 2346, 15], + ["access", 12, -1, 2347, 34], + ["get", 13, 101, 1, 2347, 20], + ["frame", 14, 13, 2, 2347, 20], + ["setarg", 14, 1, 8, 2347, 20], + ["setarg", 14, 2, 12, 2347, 20], + ["invoke", 14, 8, 2347, 20], + ["move", 26, 8, 2347, 20], + ["access", 12, -1, 2348, 34], + ["get", 13, 101, 1, 2348, 20], + ["frame", 14, 13, 2, 2348, 20], + ["setarg", 14, 1, 10, 2348, 20], + ["setarg", 14, 2, 12, 2348, 20], + ["invoke", 14, 10, 2348, 20], + ["move", 28, 10, 2348, 20], + ["access", 12, "delete", 2349, 16], + ["get", 13, 58, 1, 2349, 9], + ["frame", 14, 13, 4, 2349, 9], + ["stone_text", 12], + ["setarg", 14, 1, 12, 2349, 9], + ["setarg", 14, 2, 4, 2349, 9], + ["setarg", 14, 3, 8, 2349, 9], + ["setarg", 14, 4, 10, 2349, 9], + ["invoke", 14, 8, 2349, 9], + ["jump", "if_end_518", 2349, 9], + "if_else_517", + ["true", 8, 2351, 31], + ["get", 10, 62, 1, 2351, 9], + ["frame", 12, 10, 2, 2351, 9], + ["setarg", 12, 1, 4, 2351, 9], + ["setarg", 12, 2, 8, 2351, 9], + ["invoke", 12, 8, 2351, 9], + "if_end_518", + "if_end_514", + ["return", 4, 2353, 14], "_nop_ur_45", - "if_else_554", - "if_end_555", - ["access", 4, "assign", 2137, 17], - ["eq", 5, 3, 4, 2137, 17], - ["move", 4, 5, 2137, 17], - ["jump_true", 5, "or_end_576", 2137, 17], - ["access", 5, "+=", 2138, 17], - ["eq", 6, 3, 5, 2138, 17], - ["move", 4, 6, 2138, 17], - "or_end_576", - ["move", 5, 4, 2138, 17], - ["jump_true", 4, "or_end_575", 2138, 17], - ["access", 4, "-=", 2138, 33], - ["eq", 6, 3, 4, 2138, 33], - ["move", 5, 6, 2138, 33], - "or_end_575", - ["move", 4, 5, 2138, 33], - ["jump_true", 5, "or_end_574", 2138, 33], - ["access", 5, "*=", 2139, 17], - ["eq", 6, 3, 5, 2139, 17], - ["move", 4, 6, 2139, 17], - "or_end_574", - ["move", 5, 4, 2139, 17], - ["jump_true", 4, "or_end_573", 2139, 17], - ["access", 4, "/=", 2139, 33], - ["eq", 6, 3, 4, 2139, 33], - ["move", 5, 6, 2139, 33], - "or_end_573", - ["move", 4, 5, 2139, 33], - ["jump_true", 5, "or_end_572", 2139, 33], - ["access", 5, "%=", 2140, 17], - ["eq", 6, 3, 5, 2140, 17], - ["move", 4, 6, 2140, 17], - "or_end_572", - ["move", 5, 4, 2140, 17], - ["jump_true", 4, "or_end_571", 2140, 17], - ["access", 4, "**=", 2140, 33], - ["eq", 6, 3, 4, 2140, 33], - ["move", 5, 6, 2140, 33], - "or_end_571", - ["move", 4, 5, 2140, 33], - ["jump_true", 5, "or_end_570", 2140, 33], - ["access", 5, "&=", 2141, 17], - ["eq", 6, 3, 5, 2141, 17], - ["move", 4, 6, 2141, 17], - "or_end_570", - ["move", 5, 4, 2141, 17], - ["jump_true", 4, "or_end_569", 2141, 17], - ["access", 4, "|=", 2141, 33], - ["eq", 6, 3, 4, 2141, 33], - ["move", 5, 6, 2141, 33], - "or_end_569", - ["move", 4, 5, 2141, 33], - ["jump_true", 5, "or_end_568", 2141, 33], - ["access", 5, "^=", 2142, 17], - ["eq", 6, 3, 5, 2142, 17], - ["move", 4, 6, 2142, 17], - "or_end_568", - ["move", 5, 4, 2142, 17], - ["jump_true", 4, "or_end_567", 2142, 17], - ["access", 4, "<<=", 2142, 33], - ["eq", 6, 3, 4, 2142, 33], - ["move", 5, 6, 2142, 33], - "or_end_567", - ["move", 4, 5, 2142, 33], - ["jump_true", 5, "or_end_566", 2142, 33], - ["access", 5, ">>=", 2143, 17], - ["eq", 6, 3, 5, 2143, 17], - ["move", 4, 6, 2143, 17], - "or_end_566", - ["move", 5, 4, 2143, 17], - ["jump_true", 4, "or_end_565", 2143, 17], - ["access", 4, ">>>=", 2143, 34], - ["eq", 6, 3, 4, 2143, 34], - ["move", 5, 6, 2143, 34], - "or_end_565", - ["move", 4, 5, 2143, 34], - ["jump_true", 5, "or_end_564", 2143, 34], - ["access", 5, "&&=", 2144, 17], - ["eq", 6, 3, 5, 2144, 17], - ["move", 4, 6, 2144, 17], - "or_end_564", - ["move", 5, 4, 2144, 17], - ["jump_true", 4, "or_end_563", 2144, 17], - ["access", 4, "||=", 2144, 34], - ["eq", 6, 3, 4, 2144, 34], - ["move", 5, 6, 2144, 34], - "or_end_563", - ["move", 4, 5, 2144, 34], - ["jump_true", 5, "or_end_562", 2144, 34], - ["access", 5, "??=", 2145, 17], - ["eq", 6, 3, 5, 2145, 17], - ["move", 4, 6, 2145, 17], - "or_end_562", - ["jump_false", 4, "if_else_560", 2145, 17], - ["get", 3, 111, 1, 2146, 14], - ["frame", 4, 3, 1, 2146, 14], - ["setarg", 4, 1, 1, 2146, 14], - ["tail_invoke", 4, 3, 2146, 14], - ["return", 3, 2146, 14], + "if_else_511", + "if_end_512", + ["access", 8, "then", 2357, 17], + ["eq", 10, 3, 8, 2357, 17], + ["jump_false", 10, "if_else_519", 2357, 17], + ["load_field", 8, 1, "expression", 2358, 14], + ["move", 57, 8, 2358, 14], + ["load_field", 10, 1, "then", 2359, 19], + ["move", 58, 10, 2359, 19], + ["access", 12, "else", 2360, 24], + ["load_field", 13, 1, 12, 2360, 24], + ["move", 59, 13, 2360, 24], + ["access", 12, "tern_else", 2361, 30], + ["get", 14, 51, 1, 2361, 20], + ["frame", 15, 14, 1, 2361, 20], + ["stone_text", 12], + ["setarg", 15, 1, 12, 2361, 20], + ["invoke", 15, 12, 2361, 20], + ["move", 60, 12, 2361, 20], + ["access", 14, "tern_end", 2362, 29], + ["get", 15, 51, 1, 2362, 19], + ["frame", 16, 15, 1, 2362, 19], + ["stone_text", 14], + ["setarg", 16, 1, 14, 2362, 19], + ["invoke", 16, 14, 2362, 19], + ["move", 61, 14, 2362, 19], + ["access", 15, -1, 2363, 34], + ["get", 16, 101, 1, 2363, 19], + ["frame", 77, 16, 2, 2363, 19], + ["setarg", 77, 1, 8, 2363, 19], + ["setarg", 77, 2, 15, 2363, 19], + ["invoke", 77, 8, 2363, 19], + ["move", 62, 8, 2363, 19], + ["access", 15, "wary_false", 2364, 22], + ["get", 16, 66, 1, 2364, 7], + ["frame", 77, 16, 3, 2364, 7], + ["stone_text", 15], + ["setarg", 77, 1, 15, 2364, 7], + ["setarg", 77, 2, 8, 2364, 7], + ["setarg", 77, 3, 12, 2364, 7], + ["invoke", 77, 8, 2364, 7], + ["get", 8, 46, 1, 2365, 14], + ["frame", 15, 8, 0, 2365, 14], + ["invoke", 15, 8, 2365, 14], + ["move", 20, 8, 2365, 14], + ["access", 15, -1, 2366, 39], + ["get", 16, 101, 1, 2366, 19], + ["frame", 77, 16, 2, 2366, 19], + ["setarg", 77, 1, 10, 2366, 19], + ["setarg", 77, 2, 15, 2366, 19], + ["invoke", 77, 10, 2366, 19], + ["move", 63, 10, 2366, 19], + ["access", 15, "move", 2367, 14], + ["get", 16, 57, 1, 2367, 7], + ["frame", 77, 16, 3, 2367, 7], + ["stone_text", 15], + ["setarg", 77, 1, 15, 2367, 7], + ["setarg", 77, 2, 8, 2367, 7], + ["setarg", 77, 3, 10, 2367, 7], + ["invoke", 77, 10, 2367, 7], + ["get", 10, 65, 1, 2368, 7], + ["frame", 15, 10, 1, 2368, 7], + ["setarg", 15, 1, 14, 2368, 7], + ["invoke", 15, 10, 2368, 7], + ["get", 10, 54, 1, 2369, 7], + ["frame", 15, 10, 1, 2369, 7], + ["setarg", 15, 1, 12, 2369, 7], + ["invoke", 15, 10, 2369, 7], + ["access", 10, -1, 2370, 39], + ["get", 12, 101, 1, 2370, 19], + ["frame", 15, 12, 2, 2370, 19], + ["setarg", 15, 1, 13, 2370, 19], + ["setarg", 15, 2, 10, 2370, 19], + ["invoke", 15, 10, 2370, 19], + ["move", 64, 10, 2370, 19], + ["access", 12, "move", 2371, 14], + ["get", 13, 57, 1, 2371, 7], + ["frame", 15, 13, 3, 2371, 7], + ["stone_text", 12], + ["setarg", 15, 1, 12, 2371, 7], + ["setarg", 15, 2, 8, 2371, 7], + ["setarg", 15, 3, 10, 2371, 7], + ["invoke", 15, 10, 2371, 7], + ["get", 10, 54, 1, 2372, 7], + ["frame", 12, 10, 1, 2372, 7], + ["setarg", 12, 1, 14, 2372, 7], + ["invoke", 12, 10, 2372, 7], + ["return", 8, 2373, 14], "_nop_ur_46", - "if_else_560", - "if_end_561", - ["get", 3, 108, 1, 2150, 12], - ["frame", 4, 3, 2, 2150, 12], - ["setarg", 4, 1, 1, 2150, 12], - ["setarg", 4, 2, 2, 2150, 12], - ["tail_invoke", 4, 3, 2150, 12], - ["return", 3, 2150, 12], + "if_else_519", + "if_end_520", + ["access", 8, "array", 2377, 17], + ["eq", 10, 3, 8, 2377, 17], + ["jump_false", 10, "if_else_521", 2377, 17], + ["load_field", 8, 1, "list", 2378, 14], + ["move", 6, 8, 2378, 14], + ["length", 10, 8, 2379, 22], + ["move", 65, 10, 2379, 22], + ["array", 8, 0, 2380, 20], + ["move", 66, 8, 2380, 20], + ["access", 9, 0, 2381, 12], + "while_start_523", + ["lt", 8, 9, 65, 2382, 19], + ["jump_false", 8, "while_end_524", 2382, 19], + ["load_index", 8, 6, 9, 2383, 40], + ["access", 10, -1, 2383, 45], + ["get", 12, 101, 1, 2383, 26], + ["frame", 13, 12, 2, 2383, 26], + ["setarg", 13, 1, 8, 2383, 26], + ["setarg", 13, 2, 10, 2383, 26], + ["invoke", 13, 8, 2383, 26], + ["is_array", 10, 66, 2383, 26], + ["jump_false", 10, "push_err_525", 2383, 26], + ["push", 66, 8, 2383, 26], + ["jump", "push_done_526", 2383, 26], + "push_err_525", + [ + "access", + 8, + { + "name": "log", + "kind": "name", + "make": "intrinsic" + }, + 2383, + 26 + ], + ["access", 10, "error", 2383, 26], + ["access", 12, "cannot push: target must be an array", 2383, 26], + ["array", 13, 0, 2383, 26], + ["stone_text", 12], + ["push", 13, 12, 2383, 26], + ["frame", 12, 8, 2, 2383, 26], + ["null", 8, 2383, 26], + ["setarg", 12, 0, 8, 2383, 26], + ["stone_text", 10], + ["setarg", 12, 1, 10, 2383, 26], + ["setarg", 12, 2, 13, 2383, 26], + ["invoke", 12, 8, 2383, 26], + ["disrupt", 2383, 26], + "push_done_526", + ["access", 8, 1, 2384, 19], + ["add", 9, 9, 8, 2384, 19], + ["jump", "while_start_523", 2384, 19], + "while_end_524", + ["get", 8, 46, 1, 2386, 14], + ["frame", 10, 8, 0, 2386, 14], + ["invoke", 10, 8, 2386, 14], + ["move", 20, 8, 2386, 14], + ["access", 10, "array", 2387, 18], + ["array", 12, 3, 2387, 33], + ["stone_text", 10], + ["push", 12, 10, 2387, 33], + ["push", 12, 8, 2387, 33], + ["push", 12, 65, 2387, 33], + ["get", 8, 53, 1, 2387, 7], + ["frame", 10, 8, 1, 2387, 7], + ["setarg", 10, 1, 12, 2387, 7], + ["invoke", 10, 8, 2387, 7], + ["access", 9, 0, 2388, 12], + "while_start_527", + ["lt", 8, 9, 65, 2389, 19], + ["jump_false", 8, "while_end_528", 2389, 19], + ["access", 8, "push", 2390, 16], + ["load_index", 10, 66, 9, 2390, 41], + ["get", 12, 57, 1, 2390, 9], + ["frame", 13, 12, 3, 2390, 9], + ["stone_text", 8], + ["setarg", 13, 1, 8, 2390, 9], + ["setarg", 13, 2, 20, 2390, 9], + ["setarg", 13, 3, 10, 2390, 9], + ["invoke", 13, 8, 2390, 9], + ["access", 8, 1, 2391, 19], + ["add", 9, 9, 8, 2391, 19], + ["jump", "while_start_527", 2391, 19], + "while_end_528", + ["return", 20, 2393, 14], "_nop_ur_47", - "_nop_ur_48" + "if_else_521", + "if_end_522", + ["access", 8, "record", 2397, 17], + ["eq", 10, 3, 8, 2397, 17], + ["jump_false", 10, "if_else_529", 2397, 17], + ["load_field", 8, 1, "list", 2398, 14], + ["move", 6, 8, 2398, 14], + ["get", 10, 46, 1, 2399, 14], + ["frame", 12, 10, 0, 2399, 14], + ["invoke", 12, 10, 2399, 14], + ["move", 20, 10, 2399, 14], + ["get", 12, 2, 1, 2400, 12], + ["access", 13, "record", 2400, 29], + ["length", 14, 8, 2400, 52], + ["array", 8, 3, 2400, 52], + ["stone_text", 13], + ["push", 8, 13, 2400, 52], + ["push", 8, 10, 2400, 52], + ["push", 8, 14, 2400, 52], + ["is_array", 10, 12, 2400, 52], + ["jump_false", 10, "push_err_531", 2400, 52], + ["push", 12, 8, 2400, 52], + ["jump", "push_done_532", 2400, 52], + "push_err_531", + [ + "access", + 8, + { + "name": "log", + "kind": "name", + "make": "intrinsic" + }, + 2400, + 52 + ], + ["access", 10, "error", 2400, 52], + ["access", 12, "cannot push: target must be an array", 2400, 52], + ["array", 13, 0, 2400, 52], + ["stone_text", 12], + ["push", 13, 12, 2400, 52], + ["frame", 12, 8, 2, 2400, 52], + ["null", 8, 2400, 52], + ["setarg", 12, 0, 8, 2400, 52], + ["stone_text", 10], + ["setarg", 12, 1, 10, 2400, 52], + ["setarg", 12, 2, 13, 2400, 52], + ["invoke", 12, 8, 2400, 52], + ["disrupt", 2400, 52], + "push_done_532", + ["access", 9, 0, 2401, 12], + "while_start_533", + ["length", 8, 6, 2402, 26], + ["lt", 10, 9, 8, 2402, 26], + ["jump_false", 10, "while_end_534", 2402, 26], + ["load_index", 8, 6, 9, 2403, 21], + ["move", 67, 8, 2403, 21], + ["load_field", 10, 8, "left", 2404, 15], + ["move", 68, 10, 2404, 15], + ["load_field", 12, 8, "right", 2405, 15], + ["move", 5, 12, 2405, 15], + ["access", 8, -1, 2406, 34], + ["get", 13, 101, 1, 2406, 20], + ["frame", 14, 13, 2, 2406, 20], + ["setarg", 14, 1, 12, 2406, 20], + ["setarg", 14, 2, 8, 2406, 20], + ["invoke", 14, 8, 2406, 20], + ["move", 69, 8, 2406, 20], + ["load_field", 8, 10, "kind", 2407, 20], + ["move", 70, 8, 2407, 20], + ["access", 10, "name", 2408, 25], + ["eq", 12, 8, 10, 2408, 25], + ["jump_false", 12, "if_else_535", 2408, 25], + ["load_field", 8, 68, "name", 2409, 31], + ["get", 10, 81, 1, 2409, 11], + ["frame", 12, 10, 3, 2409, 11], + ["setarg", 12, 1, 20, 2409, 11], + ["setarg", 12, 2, 8, 2409, 11], + ["setarg", 12, 3, 69, 2409, 11], + ["invoke", 12, 8, 2409, 11], + ["jump", "if_end_536", 2409, 11], + "if_else_535", + ["access", 8, "text", 2410, 32], + ["eq", 10, 70, 8, 2410, 32], + ["jump_false", 10, "if_else_537", 2410, 32], + ["load_field", 8, 68, "value", 2411, 19], + ["move", 71, 8, 2411, 19], + ["null", 10, 2412, 24], + ["eq", 12, 8, 10, 2412, 24], + ["jump_false", 12, "if_else_539", 2412, 24], + ["access", 71, "", 2413, 21], + ["jump", "if_end_540", 2413, 21], + "if_else_539", + "if_end_540", + ["get", 8, 81, 1, 2415, 11], + ["frame", 10, 8, 3, 2415, 11], + ["setarg", 10, 1, 20, 2415, 11], + ["stone_text", 71], + ["setarg", 10, 2, 71, 2415, 11], + ["setarg", 10, 3, 69, 2415, 11], + ["invoke", 10, 8, 2415, 11], + ["jump", "if_end_538", 2415, 11], + "if_else_537", + ["access", 8, -1, 2417, 36], + ["get", 10, 101, 1, 2417, 22], + ["frame", 12, 10, 2, 2417, 22], + ["setarg", 12, 1, 68, 2417, 22], + ["setarg", 12, 2, 8, 2417, 22], + ["invoke", 12, 8, 2417, 22], + ["move", 43, 8, 2417, 22], + ["get", 10, 83, 1, 2418, 11], + ["frame", 12, 10, 3, 2418, 11], + ["setarg", 12, 1, 20, 2418, 11], + ["setarg", 12, 2, 8, 2418, 11], + ["setarg", 12, 3, 69, 2418, 11], + ["invoke", 12, 8, 2418, 11], + "if_end_538", + "if_end_536", + ["access", 8, 1, 2420, 19], + ["add", 9, 9, 8, 2420, 19], + ["jump", "while_start_533", 2420, 19], + "while_end_534", + ["return", 20, 2422, 14], + "_nop_ur_48", + "if_else_529", + "if_end_530", + ["access", 8, "function", 2426, 17], + ["eq", 10, 3, 8, 2426, 17], + ["jump_false", 10, "if_else_541", 2426, 17], + ["get", 8, 115, 1, 2427, 14], + ["frame", 10, 8, 1, 2427, 14], + ["setarg", 10, 1, 1, 2427, 14], + ["invoke", 10, 8, 2427, 14], + ["move", 72, 8, 2427, 14], + ["get", 8, 21, 1, 2428, 17], + ["move", 73, 8, 2428, 17], + ["get", 8, 21, 1, 2429, 24], + ["access", 10, 1, 2429, 41], + ["is_num", 12, 8, 2429, 41], + ["jump_false", 12, "num_err_357", 2429, 41], + ["add", 4, 8, 10, 2429, 41], + ["put", 4, 21, 1, 2429, 41], + ["get", 4, 12, 1, 2430, 12], + ["is_array", 5, 4, 2430, 25], + ["jump_false", 5, "push_err_543", 2430, 25], + ["push", 4, 72, 2430, 25], + ["jump", "push_done_544", 2430, 25], + "push_err_543", + [ + "access", + 4, + { + "name": "log", + "kind": "name", + "make": "intrinsic" + }, + 2430, + 25 + ], + ["access", 5, "error", 2430, 25], + ["access", 6, "cannot push: target must be an array", 2430, 25], + ["array", 7, 0, 2430, 25], + ["stone_text", 6], + ["push", 7, 6, 2430, 25], + ["frame", 6, 4, 2, 2430, 25], + ["null", 4, 2430, 25], + ["setarg", 6, 0, 4, 2430, 25], + ["stone_text", 5], + ["setarg", 6, 1, 5, 2430, 25], + ["setarg", 6, 2, 7, 2430, 25], + ["invoke", 6, 4, 2430, 25], + ["disrupt", 2430, 25], + "push_done_544", + ["get", 4, 46, 1, 2431, 14], + ["frame", 5, 4, 0, 2431, 14], + ["invoke", 5, 4, 2431, 14], + ["move", 20, 4, 2431, 14], + ["access", 5, "function", 2432, 14], + ["get", 6, 57, 1, 2432, 7], + ["frame", 7, 6, 3, 2432, 7], + ["stone_text", 5], + ["setarg", 7, 1, 5, 2432, 7], + ["setarg", 7, 2, 4, 2432, 7], + ["setarg", 7, 3, 73, 2432, 7], + ["invoke", 7, 5, 2432, 7], + ["return", 4, 2433, 14], + "_nop_ur_49", + "if_else_541", + "if_end_542", + ["access", 4, "assign", 2437, 17], + ["eq", 5, 3, 4, 2437, 17], + ["move", 4, 5, 2437, 17], + ["jump_true", 5, "or_end_561", 2437, 17], + ["access", 5, "+=", 2438, 17], + ["eq", 6, 3, 5, 2438, 17], + ["move", 4, 6, 2438, 17], + "or_end_561", + ["move", 5, 4, 2438, 17], + ["jump_true", 4, "or_end_560", 2438, 17], + ["access", 4, "-=", 2438, 33], + ["eq", 6, 3, 4, 2438, 33], + ["move", 5, 6, 2438, 33], + "or_end_560", + ["move", 4, 5, 2438, 33], + ["jump_true", 5, "or_end_559", 2438, 33], + ["access", 5, "*=", 2439, 17], + ["eq", 6, 3, 5, 2439, 17], + ["move", 4, 6, 2439, 17], + "or_end_559", + ["move", 5, 4, 2439, 17], + ["jump_true", 4, "or_end_558", 2439, 17], + ["access", 4, "/=", 2439, 33], + ["eq", 6, 3, 4, 2439, 33], + ["move", 5, 6, 2439, 33], + "or_end_558", + ["move", 4, 5, 2439, 33], + ["jump_true", 5, "or_end_557", 2439, 33], + ["access", 5, "%=", 2440, 17], + ["eq", 6, 3, 5, 2440, 17], + ["move", 4, 6, 2440, 17], + "or_end_557", + ["move", 5, 4, 2440, 17], + ["jump_true", 4, "or_end_556", 2440, 17], + ["access", 4, "**=", 2440, 33], + ["eq", 6, 3, 4, 2440, 33], + ["move", 5, 6, 2440, 33], + "or_end_556", + ["move", 4, 5, 2440, 33], + ["jump_true", 5, "or_end_555", 2440, 33], + ["access", 5, "&=", 2441, 17], + ["eq", 6, 3, 5, 2441, 17], + ["move", 4, 6, 2441, 17], + "or_end_555", + ["move", 5, 4, 2441, 17], + ["jump_true", 4, "or_end_554", 2441, 17], + ["access", 4, "|=", 2441, 33], + ["eq", 6, 3, 4, 2441, 33], + ["move", 5, 6, 2441, 33], + "or_end_554", + ["move", 4, 5, 2441, 33], + ["jump_true", 5, "or_end_553", 2441, 33], + ["access", 5, "^=", 2442, 17], + ["eq", 6, 3, 5, 2442, 17], + ["move", 4, 6, 2442, 17], + "or_end_553", + ["move", 5, 4, 2442, 17], + ["jump_true", 4, "or_end_552", 2442, 17], + ["access", 4, "<<=", 2442, 33], + ["eq", 6, 3, 4, 2442, 33], + ["move", 5, 6, 2442, 33], + "or_end_552", + ["move", 4, 5, 2442, 33], + ["jump_true", 5, "or_end_551", 2442, 33], + ["access", 5, ">>=", 2443, 17], + ["eq", 6, 3, 5, 2443, 17], + ["move", 4, 6, 2443, 17], + "or_end_551", + ["move", 5, 4, 2443, 17], + ["jump_true", 4, "or_end_550", 2443, 17], + ["access", 4, ">>>=", 2443, 34], + ["eq", 6, 3, 4, 2443, 34], + ["move", 5, 6, 2443, 34], + "or_end_550", + ["move", 4, 5, 2443, 34], + ["jump_true", 5, "or_end_549", 2443, 34], + ["access", 5, "&&=", 2444, 17], + ["eq", 6, 3, 5, 2444, 17], + ["move", 4, 6, 2444, 17], + "or_end_549", + ["move", 5, 4, 2444, 17], + ["jump_true", 4, "or_end_548", 2444, 17], + ["access", 4, "||=", 2444, 34], + ["eq", 6, 3, 4, 2444, 34], + ["move", 5, 6, 2444, 34], + "or_end_548", + ["move", 4, 5, 2444, 34], + ["jump_true", 5, "or_end_547", 2444, 34], + ["access", 5, "??=", 2445, 17], + ["eq", 6, 3, 5, 2445, 17], + ["move", 4, 6, 2445, 17], + "or_end_547", + ["jump_false", 4, "if_else_545", 2445, 17], + ["get", 3, 121, 1, 2446, 14], + ["frame", 4, 3, 1, 2446, 14], + ["setarg", 4, 1, 1, 2446, 14], + ["tail_invoke", 4, 3, 2446, 14], + ["return", 3, 2446, 14], + "_nop_ur_50", + "if_else_545", + "if_end_546", + ["get", 3, 118, 1, 2450, 12], + ["frame", 4, 3, 2, 2450, 12], + ["setarg", 4, 1, 1, 2450, 12], + ["setarg", 4, 2, 2, 2450, 12], + ["tail_invoke", 4, 3, 2450, 12], + ["return", 3, 2450, 12], + "_nop_ur_51", + "_nop_ur_52" ], - "_write_types": [null, null, null, "int", "int", null, null, null, null, null, null, null, null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "int", null, "int", null, null, null, null, null, null, null, null, null, null, null, "bool", null, null, null, null, null, null, null, null, null, null, "null", "bool", "int", null, null, null, null, "null", "bool", "int", "text", "bool", "int", "bool", null, null, null, null, null, null, null, null, null, "bool", "text", "text", "text", null, null, null, "text", "bool", "int", "bool", null, null, null, null, null, "null", "bool", null, null, null, "text", null, null, null, "text", "bool", null, "null", "bool", "int", "int", "int", "array", "bool", null, "int", null, null, null, "bool", null, "text", "text", "array", null, null, "null", "int", null, null, null, null, null, null, null, null, null, null, null, null, "text", "int", "array", null, null, null, "bool", "text", null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "text", null, null, null, "int", "bool", null, null, null, "text", null, null, null, null, "null", "bool", null, null, null, null, null, null, "int", "bool", null, null, null, null, "array", null, null, null, "text", null, null, null, "text", "bool", "int", "bool", null, null, null, null, null, "null", "bool", null, "null", "bool", "text", "array", null, null, null, "text", "bool", "int", "bool", null, null, null, null, "bool", null, null, null, "text", null, null, null, "text", "bool", "int", "bool", null, null, null, null, "bool", null, null, null, "text", null, null, null, "text", "bool", "int", "bool", null, null, null, null, null, null, null, "null", null, null, null, "text", "bool", null, "text", "bool", null, null, "null", "bool", "int", "bool", "bool", "int", "bool", null, null, null, "int", "bool", "int", "bool", "int", null, null, "int", "int", "int", null, null, null, null, null, null, null, null, null, "int", null, null, null, null, null, null, null, "text", null, null, null, null, null, null, "int", "bool", null, null, null, null, null, null, "text", "bool", null, null, "int", null, null, null, null, null, null, null, null, null, "text", "bool", null, null, "int", null, null, null, "int", null, null, null, null, null, null, null, null, null, null, "text", "bool", null, null, null, "text", "bool", "bool", null, "text", "bool", null, null, null, "null", "bool", "int", "int", "int", "text", "bool", "int", null, "int", null, null, null, null, null, null, null, null, null, "text", "bool", "int", null, "int", null, null, null, "int", null, "int", null, null, null, null, null, null, null, null, null, "text", "bool", "bool", "text", "bool", "bool", "int", "bool", "int", null, "int", null, null, null, "int", null, "int", null, null, null, "int", null, "int", null, null, null, null, null, null, "text", "bool", "text", "text", "text", "array", null, null, null, "text", "bool", "int", null, "int", null, null, null, "int", null, "int", null, null, null, null, null, null, "text", null, null, null, "text", "bool", "int", null, "int", null, null, null, "int", null, "int", null, null, null, null, null, null, "text", null, null, null, "int", null, "int", null, null, null, "int", null, "int", null, null, null, null, null, null, "int", null, "int", null, null, null, null, "text", "bool", "bool", null, "bool", "bool", null, "null", "bool", "int", "int", "int", null, null, "null", "bool", "bool", "int", "bool", "int", null, "int", null, null, null, null, null, null, null, null, "null", "bool", "bool", "int", "bool", "int", null, "int", null, null, null, "int", null, "int", null, null, null, null, null, null, null, null, "null", "bool", "bool", "int", "bool", "bool", "int", "bool", "int", null, "int", null, null, null, "int", "bool", "int", null, "int", null, null, null, null, null, null, "text", null, null, null, null, null, null, "int", "bool", "bool", null, null, "null", "bool", "int", null, "int", null, null, null, null, null, null, null, null, null, null, null, "int", "bool", "bool", "text", "bool", "int", null, "int", null, null, null, "int", null, "int", null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, "int", "bool", "bool", "text", "bool", null, null, "int", null, "int", null, null, null, "int", null, "int", null, null, null, null, null, null, null, null, null, "int", "bool", "bool", "text", "bool", null, null, "int", null, "int", null, null, null, "int", null, "int", null, null, null, null, null, null, null, null, null, "int", "bool", "bool", "text", "bool", null, null, "int", null, "int", null, null, null, "int", null, "int", null, null, null, null, null, null, null, null, null, "int", "bool", "bool", "text", "bool", null, null, "int", null, "int", null, null, null, "int", null, "int", null, null, null, null, null, null, null, null, null, "text", "bool", "bool", "int", "bool", "bool", "int", "bool", null, null, "int", null, "int", null, null, null, "int", null, "int", null, null, null, "int", "bool", null, "int", null, "int", null, null, null, "int", "int", "bool", null, "int", null, "int", null, null, null, "int", null, null, null, "record", null, null, null, "array", "null", "bool", "int", "int", "int", "bool", null, "int", null, null, null, "bool", null, "text", "text", "array", null, null, "null", "int", null, null, null, null, null, null, null, null, null, null, null, null, "text", "bool", null, null, "int", null, null, null, null, null, null, "text", "bool", null, null, "int", null, null, null, "int", null, null, null, null, null, null, "int", null, null, null, null, null, null, "text", "bool", null, "int", null, null, null, null, null, null, "text", null, null, null, "text", "bool", null, "int", null, null, null, null, null, null, "text", null, null, null, "text", "bool", null, "int", null, null, null, null, null, null, null, null, null, null, "text", "bool", null, "int", null, null, null, "text", "bool", "bool", "text", "bool", null, null, "bool", "text", "bool", "text", "text", "text", null, null, null, null, "text", "int", null, null, null, "record", "text", "int", "text", "bool", null, null, "null", "bool", null, null, null, "int", "bool", null, null, null, "int", "bool", "text", null, null, null, "int", "bool", "int", null, null, "int", "int", "int", null, null, null, null, null, null, null, null, null, "int", null, null, null, null, "text", null, null, null, null, null, null, null, null, null, "null", null, null, null, "int", "bool", null, null, null, "int", "bool", "text", null, null, null, "int", "bool", "int", null, null, "int", "int", "int", null, null, null, null, null, null, null, null, null, "int", null, null, null, null, "text", null, null, null, null, "text", "bool", null, null, "int", null, null, null, null, null, null, null, null, null, null, null, null, "null", null, null, null, null, null, null, null, "text", "bool", null, null, "int", null, null, null, "int", null, null, null, null, null, null, null, null, null, null, null, null, null, "null", null, null, null, null, null, null, null, null, "text", "bool", null, null, null, null, null, "text", "bool", null, null, "int", null, null, null, null, "text", "array", "bool", null, "text", "text", "array", null, null, "null", "text", "bool", null, null, "int", null, null, null, "int", null, null, null, "text", null, null, null, "bool", null, null, null, "text", "bool", null, null, "text", null, "text", null, null, null, "text", null, null, null, "int", null, null, null, "text", null, null, null, null, null, null, "int", null, null, null, "text", null, null, null, null, null, null, null, null, null, "int", null, null, null, "text", null, null, null, null, null, null, "text", "bool", null, "int", "array", "bool", null, "int", null, null, null, "bool", null, "text", "text", "array", null, null, "null", "int", null, null, null, null, null, null, null, null, null, null, null, null, "text", "array", null, null, null, "bool", "text", null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "text", "bool", null, null, null, null, null, "text", "int", "array", "bool", null, "text", "text", "array", null, null, "null", "int", "bool", null, null, null, "int", null, null, null, null, "text", "bool", null, null, null, null, "text", "bool", null, "null", "bool", null, null, null, "int", null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "text", "bool", null, null, null, null, null, "int", "num", "bool", null, null, "text", "text", "array", null, null, "null", null, "bool", null, "text", "text", "array", null, null, "null", null, null, null, "text", null, null, null, "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", null, null, null, null, null, null, null], + "_write_types": [null, null, null, "int", "int", null, null, null, null, null, null, null, null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "int", null, "int", null, null, null, null, null, null, null, null, null, null, null, "bool", null, null, null, null, null, null, null, null, null, null, "null", "bool", "int", null, null, null, null, "null", "bool", "int", "text", "bool", "int", "bool", null, null, null, null, null, null, null, null, null, "bool", "text", "text", "text", null, null, null, "text", "bool", "int", "bool", null, null, null, null, null, "null", "bool", null, null, null, "text", null, null, null, "text", "bool", null, "null", "bool", "int", "int", "int", "array", "bool", null, "int", null, null, null, "bool", null, "text", "text", "array", null, null, "null", "int", null, null, null, "text", "int", "array", null, null, null, "bool", "text", null, null, null, null, "int", "text", null, null, null, "int", "bool", null, null, null, "text", null, null, null, null, "null", "bool", null, null, null, null, null, null, "int", "bool", null, null, null, null, "array", null, null, null, "text", null, null, null, "text", "bool", "int", "bool", null, null, null, null, null, "null", "bool", null, "null", "bool", "text", "array", null, null, null, "text", "bool", "int", "bool", null, null, null, null, "bool", null, null, null, "text", null, null, null, "text", "bool", "int", "bool", null, null, null, null, "bool", null, null, null, "text", null, null, null, "text", "bool", "int", "bool", null, null, null, null, null, null, null, "null", null, null, null, "text", "bool", null, "text", "bool", null, null, "null", "bool", "int", "bool", "bool", "int", "bool", null, null, null, "int", "bool", "int", "bool", "int", null, null, "int", "int", "int", null, null, "text", "text", "array", null, null, "null", "int", null, null, null, null, null, null, null, "text", null, null, null, null, null, null, "int", "bool", null, null, null, null, null, null, "text", "bool", null, null, "int", null, null, null, null, null, null, null, null, null, "text", "bool", null, null, "int", null, null, null, "int", null, null, null, null, null, null, null, null, null, null, "text", "bool", null, null, null, "text", "bool", "bool", null, "text", "bool", null, null, null, "null", "bool", "int", "int", "int", "text", "bool", "int", null, "int", null, null, null, null, null, null, null, null, null, "text", "bool", "int", null, "int", null, null, null, "int", null, "int", null, null, null, null, null, null, null, null, null, "text", "bool", "bool", "text", "bool", "bool", "int", "bool", "int", null, "int", null, null, null, "int", null, "int", null, null, null, "int", null, "int", null, null, null, null, null, null, "text", "bool", "text", "text", "text", "array", null, null, null, "text", "bool", "int", null, "int", null, null, null, "int", null, "int", null, null, null, null, null, null, "text", null, null, null, "text", "bool", "int", null, "int", null, null, null, "int", null, "int", null, null, null, null, null, null, "text", null, null, null, "int", null, "int", null, null, null, "int", null, "int", null, null, null, null, null, null, "int", null, "int", null, null, null, null, "text", "bool", "bool", null, "bool", "bool", null, "null", "bool", "int", "int", "int", null, null, "null", "bool", "bool", "int", "bool", "int", null, "int", null, null, null, null, null, null, null, null, "null", "bool", "bool", "int", "bool", "int", null, "int", null, null, null, "int", null, "int", null, null, null, null, null, null, null, null, "null", "bool", "bool", "int", "bool", "bool", "int", "bool", "int", null, "int", null, null, null, "int", "bool", "int", null, "int", null, null, null, null, null, null, "text", null, null, null, null, null, null, "int", "bool", "bool", null, null, "null", "bool", "int", null, "int", null, null, null, null, null, null, null, null, null, null, null, "int", "bool", "bool", "text", "bool", "int", null, "int", null, null, null, "int", null, "int", null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, "int", "bool", "bool", "text", "bool", "int", null, "int", null, null, null, "int", null, "int", null, null, null, null, null, null, "text", null, null, null, "text", "bool", "bool", "int", "bool", "bool", "int", "bool", null, null, "int", null, "int", null, null, null, "int", null, "int", null, null, null, "int", "bool", null, "int", null, "int", null, null, null, "int", "int", "bool", null, "int", null, "int", null, null, null, "int", null, null, null, "record", null, null, null, "int", "bool", "bool", "text", "bool", null, null, "int", null, "int", null, null, null, "int", null, "int", null, null, null, null, null, null, null, null, null, "int", "bool", "bool", "text", "bool", null, null, "int", null, "int", null, null, null, "int", null, "int", null, null, null, null, null, null, null, null, null, "int", "bool", "bool", "text", "bool", null, null, "int", null, "int", null, null, null, "int", null, "int", null, null, null, null, null, null, null, null, null, "text", "bool", "bool", "int", "bool", "bool", "int", "bool", null, null, "int", null, "int", null, null, null, "int", null, "int", null, null, null, "int", "bool", null, "int", null, "int", null, null, null, "int", "int", "bool", null, "int", null, "int", null, null, null, "int", null, null, null, "record", null, null, null, "text", "bool", "bool", "int", "bool", "bool", "int", "bool", null, null, "int", null, "int", null, null, null, "int", null, "int", null, null, null, "int", "bool", null, "int", null, "int", null, null, null, "int", "int", "bool", null, "int", null, "int", null, null, null, "int", null, null, null, "record", null, null, null, "int", "bool", "bool", "text", "bool", null, null, null, "int", null, null, "text", "bool", "int", null, null, "text", "bool", "bool", "int", null, null, "bool", "bool", "bool", null, "int", null, null, null, "null", "bool", "int", null, "int", null, null, null, null, null, null, null, "int", null, null, null, null, null, null, "int", null, null, "text", "bool", "int", null, "int", null, null, null, "int", null, "int", null, null, null, null, null, null, null, null, null, "array", "null", "bool", "int", "int", "int", "bool", null, "int", null, null, null, "bool", null, "text", "text", "array", null, null, "null", "int", null, null, null, "text", "bool", null, null, "int", null, null, null, null, null, null, "text", "bool", null, null, "int", null, null, null, "int", null, null, null, null, null, null, "int", null, null, null, null, null, null, "text", "bool", null, "int", null, null, null, null, null, null, "text", null, null, null, "text", "bool", null, "int", null, null, null, null, null, null, "text", null, null, null, "text", "bool", null, "int", null, null, null, null, null, null, null, null, null, null, "text", "bool", null, "int", null, null, null, "text", "bool", "bool", "text", "bool", null, null, "bool", "text", "bool", "text", "text", "text", null, null, null, null, "text", "int", null, null, null, "record", "text", "int", "text", "bool", null, null, "null", "bool", null, null, null, "int", "bool", null, null, null, "int", "bool", "text", null, null, null, "int", "bool", "int", null, null, "int", "int", "int", null, "int", null, null, null, null, "text", null, null, null, null, null, null, null, null, null, "null", null, null, null, "int", "bool", null, null, null, "int", "bool", "text", null, null, null, "int", "bool", "int", null, null, "int", "int", "int", null, "int", null, null, null, null, "text", null, null, null, null, "text", "bool", null, null, "int", null, null, null, null, null, null, null, null, null, null, null, null, "null", null, null, null, null, null, null, null, "text", "bool", null, null, "int", null, null, null, "int", null, null, null, null, null, null, null, null, null, null, null, null, null, "null", null, null, null, null, null, null, null, null, "text", "bool", null, null, null, null, null, "text", "bool", null, null, "int", null, null, null, null, "text", "array", "bool", null, "text", "text", "array", null, null, "null", "text", "bool", null, null, "int", null, null, null, "int", null, null, null, "text", null, null, null, "bool", null, null, null, "text", "bool", null, null, "text", null, "text", null, null, null, "text", null, null, null, "int", null, null, null, "text", null, null, null, null, null, null, "int", null, null, null, "text", null, null, null, null, null, null, null, null, null, "int", null, null, null, "text", null, null, null, null, null, null, "text", "bool", null, "int", "array", "bool", null, "int", null, null, null, "bool", null, "text", "text", "array", null, null, "null", "int", null, null, null, "text", "array", null, null, null, "bool", "text", null, null, null, null, "int", "text", "bool", null, null, null, null, null, "text", "int", "array", "bool", null, "text", "text", "array", null, null, "null", "int", "bool", null, null, null, "int", null, null, null, null, "text", "bool", null, null, null, null, "text", "bool", null, "null", "bool", null, null, null, "int", null, null, null, null, null, null, "int", "text", "bool", null, null, null, null, null, "int", "num", "bool", null, "bool", null, "text", "text", "array", null, null, "null", null, null, null, "text", null, null, null, "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", null, null, null, null, null, null, null], "name": "", "filename": ".cell/packages/core/mcode.cm", "nr_args": 2 @@ -11043,1290 +11946,1332 @@ "nr_slots": 64, "nr_close_slots": 0, "instructions": [ - ["null", 2, 2155, 16], - ["null", 3, 2156, 16], - ["null", 4, 2157, 17], - ["null", 5, 2158, 16], - ["access", 6, 0, 2159, 22], - ["null", 7, 2160, 20], - ["access", 8, 0, 2161, 20], - ["access", 9, 0, 2162, 20], - ["null", 10, 2163, 16], - ["access", 11, 0, 2164, 14], - ["null", 12, 2165, 17], - ["null", 13, 2166, 16], - ["null", 14, 2167, 22], - ["null", 15, 2168, 22], - ["null", 16, 2169, 22], - ["null", 17, 2170, 21], - ["access", 18, 0, 2171, 21], - ["null", 19, 2172, 23], - ["null", 20, 2173, 21], - ["null", 21, 2174, 24], - ["null", 22, 2175, 22], - ["null", 23, 2176, 16], - ["null", 24, 2177, 16], - ["null", 25, 2178, 18], - ["null", 26, 2179, 24], - ["null", 27, 2180, 21], - ["access", 28, 0, 2181, 21], - ["null", 29, 2182, 16], - ["access", 30, 0, 2183, 16], - ["access", 31, 0, 2184, 21], - ["null", 32, 2185, 21], - ["null", 33, 2186, 18], - ["null", 34, 2187, 21], - ["null", 35, 2188, 21], - ["access", 36, 0, 2189, 17], - ["null", 37, 2190, 23], - ["null", 38, 2191, 20], - ["null", 39, 2192, 16], - ["access", 40, 0, 2193, 20], - ["access", 41, 0, 2194, 21], - ["null", 42, 2195, 17], - ["access", 43, 0, 2196, 22], - ["null", 44, 2197, 25], - ["null", 45, 2198, 23], - ["null", 46, 2199, 21], - ["null", 47, 2200, 21], - ["null", 48, 2201, 22], - ["null", 49, 2202, 21], - ["access", 50, 0, 2203, 20], - ["access", 51, 0, 2204, 20], - ["null", 52, 2205, 22], - ["access", 53, 0, 2206, 14], - ["null", 54, 2207, 16], - ["access", 55, 0, 2208, 19], - ["access", 56, 0, 2209, 16], - ["access", 57, 0, 2210, 19], - ["null", 58, 2211, 21], - ["null", 59, 2212, 22], - ["null", 60, 2213, 22], - ["null", 61, 2215, 17], - ["eq", 62, 1, 61, 2215, 17], - ["jump_false", 62, "if_else_577", 2215, 17], - ["null", 61, 2216, 14], - ["return", 61, 2216, 14], + ["null", 2, 2455, 16], + ["null", 3, 2456, 16], + ["null", 4, 2457, 17], + ["null", 5, 2458, 16], + ["access", 6, 0, 2459, 22], + ["null", 7, 2460, 20], + ["access", 8, 0, 2461, 20], + ["access", 9, 0, 2462, 20], + ["null", 10, 2463, 16], + ["access", 11, 0, 2464, 14], + ["null", 12, 2465, 17], + ["null", 13, 2466, 16], + ["null", 14, 2467, 22], + ["null", 15, 2468, 22], + ["null", 16, 2469, 22], + ["null", 17, 2470, 21], + ["access", 18, 0, 2471, 21], + ["null", 19, 2472, 23], + ["null", 20, 2473, 21], + ["null", 21, 2474, 24], + ["null", 22, 2475, 22], + ["null", 23, 2476, 16], + ["null", 24, 2477, 16], + ["null", 25, 2478, 18], + ["null", 26, 2479, 24], + ["null", 27, 2480, 21], + ["access", 28, 0, 2481, 21], + ["null", 29, 2482, 16], + ["access", 30, 0, 2483, 16], + ["access", 31, 0, 2484, 21], + ["null", 32, 2485, 21], + ["null", 33, 2486, 18], + ["null", 34, 2487, 21], + ["null", 35, 2488, 21], + ["access", 36, 0, 2489, 17], + ["null", 37, 2490, 23], + ["null", 38, 2491, 20], + ["null", 39, 2492, 16], + ["access", 40, 0, 2493, 20], + ["access", 41, 0, 2494, 21], + ["null", 42, 2495, 17], + ["access", 43, 0, 2496, 22], + ["null", 44, 2497, 25], + ["null", 45, 2498, 23], + ["null", 46, 2499, 21], + ["null", 47, 2500, 21], + ["null", 48, 2501, 22], + ["null", 49, 2502, 21], + ["access", 50, 0, 2503, 20], + ["access", 51, 0, 2504, 20], + ["null", 52, 2505, 22], + ["access", 53, 0, 2506, 14], + ["null", 54, 2507, 16], + ["access", 55, 0, 2508, 19], + ["access", 56, 0, 2509, 16], + ["access", 57, 0, 2510, 19], + ["null", 58, 2511, 21], + ["null", 59, 2512, 22], + ["null", 60, 2513, 22], + ["null", 61, 2515, 17], + ["eq", 62, 1, 61, 2515, 17], + ["jump_false", 62, "if_else_562", 2515, 17], + ["null", 61, 2516, 14], + ["return", 61, 2516, 14], "_nop_ur_1", - "if_else_577", - "if_end_578", - ["get", 61, 50, 1, 2218, 5], - ["frame", 62, 61, 1, 2218, 5], - ["setarg", 62, 1, 1, 2218, 5], - ["invoke", 62, 61, 2218, 5], - ["load_field", 61, 1, "kind", 2219, 12], - ["move", 2, 61, 2219, 12], - ["null", 62, 2220, 17], - ["eq", 63, 61, 62, 2220, 17], - ["jump_false", 63, "if_else_579", 2220, 17], - ["null", 61, 2221, 14], - ["return", 61, 2221, 14], + "if_else_562", + "if_end_563", + ["get", 61, 52, 1, 2518, 5], + ["frame", 62, 61, 1, 2518, 5], + ["setarg", 62, 1, 1, 2518, 5], + ["invoke", 62, 61, 2518, 5], + ["load_field", 61, 1, "kind", 2519, 12], + ["move", 2, 61, 2519, 12], + ["null", 62, 2520, 17], + ["eq", 63, 61, 62, 2520, 17], + ["jump_false", 63, "if_else_564", 2520, 17], + ["null", 61, 2521, 14], + ["return", 61, 2521, 14], "_nop_ur_2", + "if_else_564", + "if_end_565", + ["access", 61, "var", 2524, 17], + ["eq", 62, 2, 61, 2524, 17], + ["move", 61, 62, 2524, 17], + ["jump_true", 62, "or_end_568", 2524, 17], + ["access", 62, "def", 2524, 34], + ["eq", 63, 2, 62, 2524, 34], + ["move", 61, 63, 2524, 34], + "or_end_568", + ["jump_false", 61, "if_else_566", 2524, 34], + ["load_field", 61, 1, "left", 2525, 14], + ["move", 3, 61, 2525, 14], + ["load_field", 3, 1, "right", 2526, 15], + ["move", 4, 3, 2526, 15], + ["load_field", 3, 61, "name", 2527, 14], + ["move", 5, 3, 2527, 14], + ["get", 61, 48, 1, 2528, 20], + ["frame", 62, 61, 1, 2528, 20], + ["setarg", 62, 1, 3, 2528, 20], + ["invoke", 62, 3, 2528, 20], + ["move", 6, 3, 2528, 20], + ["load_field", 3, 1, "pop", 2530, 11], + ["true", 61, 2530, 23], + ["eq", 62, 3, 61, 2530, 23], + ["move", 3, 62, 2530, 23], + ["jump_false", 62, "and_end_571", 2530, 23], + ["null", 61, 2530, 40], + ["ne", 62, 4, 61, 2530, 40], + ["move", 3, 62, 2530, 40], + "and_end_571", + ["jump_false", 3, "if_else_569", 2530, 40], + ["load_field", 3, 4, "left", 2531, 20], + ["move", 7, 3, 2531, 20], + ["access", 7, -1, 2532, 39], + ["get", 61, 101, 1, 2532, 20], + ["frame", 62, 61, 2, 2532, 20], + ["setarg", 62, 1, 3, 2532, 20], + ["setarg", 62, 2, 7, 2532, 20], + ["invoke", 62, 3, 2532, 20], + ["move", 8, 3, 2532, 20], + ["access", 3, 0, 2533, 27], + ["ge", 7, 6, 3, 2533, 27], + ["jump_false", 7, "if_else_572", 2533, 27], + ["get", 3, 46, 1, 2534, 21], + ["frame", 7, 3, 0, 2534, 21], + ["invoke", 7, 3, 2534, 21], + ["move", 57, 3, 2534, 21], + ["access", 7, "pop_err", 2535, 33], + ["get", 57, 51, 1, 2535, 23], + ["frame", 61, 57, 1, 2535, 23], + ["stone_text", 7], + ["setarg", 61, 1, 7, 2535, 23], + ["invoke", 61, 7, 2535, 23], + ["move", 58, 7, 2535, 23], + ["access", 57, "pop_done", 2536, 34], + ["get", 58, 51, 1, 2536, 24], + ["frame", 61, 58, 1, 2536, 24], + ["stone_text", 57], + ["setarg", 61, 1, 57, 2536, 24], + ["invoke", 61, 57, 2536, 24], + ["move", 59, 57, 2536, 24], + ["access", 58, "is_array", 2537, 18], + ["get", 59, 57, 1, 2537, 11], + ["frame", 61, 59, 3, 2537, 11], + ["stone_text", 58], + ["setarg", 61, 1, 58, 2537, 11], + ["setarg", 61, 2, 3, 2537, 11], + ["setarg", 61, 3, 8, 2537, 11], + ["invoke", 61, 58, 2537, 11], + ["access", 58, "jump_false", 2538, 26], + ["get", 59, 66, 1, 2538, 11], + ["frame", 61, 59, 3, 2538, 11], + ["stone_text", 58], + ["setarg", 61, 1, 58, 2538, 11], + ["setarg", 61, 2, 3, 2538, 11], + ["setarg", 61, 3, 7, 2538, 11], + ["invoke", 61, 3, 2538, 11], + ["access", 3, "pop", 2539, 18], + ["get", 58, 57, 1, 2539, 11], + ["frame", 59, 58, 3, 2539, 11], + ["stone_text", 3], + ["setarg", 59, 1, 3, 2539, 11], + ["setarg", 59, 2, 6, 2539, 11], + ["setarg", 59, 3, 8, 2539, 11], + ["invoke", 59, 3, 2539, 11], + ["get", 3, 65, 1, 2540, 11], + ["frame", 8, 3, 1, 2540, 11], + ["setarg", 8, 1, 57, 2540, 11], + ["invoke", 8, 3, 2540, 11], + ["get", 3, 54, 1, 2541, 11], + ["frame", 8, 3, 1, 2541, 11], + ["setarg", 8, 1, 7, 2541, 11], + ["invoke", 8, 3, 2541, 11], + ["access", 3, "cannot pop: target must be an array", 2542, 26], + ["get", 7, 64, 1, 2542, 11], + ["frame", 8, 7, 1, 2542, 11], + ["stone_text", 3], + ["setarg", 8, 1, 3, 2542, 11], + ["invoke", 8, 3, 2542, 11], + ["access", 3, "disrupt", 2543, 18], + ["get", 7, 55, 1, 2543, 11], + ["frame", 8, 7, 1, 2543, 11], + ["stone_text", 3], + ["setarg", 8, 1, 3, 2543, 11], + ["invoke", 8, 3, 2543, 11], + ["get", 3, 54, 1, 2544, 11], + ["frame", 7, 3, 1, 2544, 11], + ["setarg", 7, 1, 57, 2544, 11], + ["invoke", 7, 3, 2544, 11], + ["jump", "if_end_573", 2544, 11], + "if_else_572", + "if_end_573", + ["null", 3, 2546, 16], + ["return", 3, 2546, 16], + "_nop_ur_3", + "if_else_569", + "if_end_570", + ["null", 3, 2548, 20], + ["ne", 7, 4, 3, 2548, 20], + ["jump_false", 7, "if_else_574", 2548, 20], + ["get", 3, 101, 1, 2549, 20], + ["frame", 7, 3, 2, 2549, 20], + ["setarg", 7, 1, 4, 2549, 20], + ["setarg", 7, 2, 6, 2549, 20], + ["invoke", 7, 3, 2549, 20], + ["move", 9, 3, 2549, 20], + ["access", 3, 0, 2550, 27], + ["ge", 4, 6, 3, 2550, 27], + ["move", 3, 4, 2550, 27], + ["jump_false", 4, "and_end_578", 2550, 27], + ["ne", 4, 9, 6, 2550, 44], + ["move", 3, 4, 2550, 44], + "and_end_578", + ["jump_false", 3, "if_else_576", 2550, 44], + ["access", 3, "move", 2551, 18], + ["get", 4, 57, 1, 2551, 11], + ["frame", 7, 4, 3, 2551, 11], + ["stone_text", 3], + ["setarg", 7, 1, 3, 2551, 11], + ["setarg", 7, 2, 6, 2551, 11], + ["setarg", 7, 3, 9, 2551, 11], + ["invoke", 7, 3, 2551, 11], + ["jump", "if_end_577", 2551, 11], + "if_else_576", + "if_end_577", + ["jump", "if_end_575", 2551, 11], + "if_else_574", + ["access", 3, 0, 2553, 32], + ["ge", 4, 6, 3, 2553, 32], + ["jump_false", 4, "if_else_579", 2553, 32], + ["get", 3, 63, 1, 2554, 9], + ["frame", 4, 3, 1, 2554, 9], + ["setarg", 4, 1, 6, 2554, 9], + ["invoke", 4, 3, 2554, 9], + ["jump", "if_end_580", 2554, 9], "if_else_579", "if_end_580", - ["access", 61, "var", 2224, 17], - ["eq", 62, 2, 61, 2224, 17], - ["move", 61, 62, 2224, 17], - ["jump_true", 62, "or_end_583", 2224, 17], - ["access", 62, "def", 2224, 34], - ["eq", 63, 2, 62, 2224, 34], - ["move", 61, 63, 2224, 34], - "or_end_583", - ["jump_false", 61, "if_else_581", 2224, 34], - ["load_field", 61, 1, "left", 2225, 14], - ["move", 3, 61, 2225, 14], - ["load_field", 3, 1, "right", 2226, 15], - ["move", 4, 3, 2226, 15], - ["load_field", 3, 61, "name", 2227, 14], - ["move", 5, 3, 2227, 14], - ["get", 61, 46, 1, 2228, 20], - ["frame", 62, 61, 1, 2228, 20], - ["setarg", 62, 1, 3, 2228, 20], - ["invoke", 62, 3, 2228, 20], - ["move", 6, 3, 2228, 20], - ["load_field", 3, 1, "pop", 2230, 11], - ["true", 61, 2230, 23], - ["eq", 62, 3, 61, 2230, 23], - ["move", 3, 62, 2230, 23], - ["jump_false", 62, "and_end_586", 2230, 23], - ["null", 61, 2230, 40], - ["ne", 62, 4, 61, 2230, 40], - ["move", 3, 62, 2230, 40], - "and_end_586", - ["jump_false", 3, "if_else_584", 2230, 40], - ["load_field", 3, 4, "left", 2231, 20], - ["move", 7, 3, 2231, 20], - ["access", 7, -1, 2232, 39], - ["get", 61, 97, 1, 2232, 20], - ["frame", 62, 61, 2, 2232, 20], - ["setarg", 62, 1, 3, 2232, 20], - ["setarg", 62, 2, 7, 2232, 20], - ["invoke", 62, 3, 2232, 20], - ["move", 8, 3, 2232, 20], - ["access", 3, 0, 2233, 27], - ["ge", 7, 6, 3, 2233, 27], - ["jump_false", 7, "if_else_587", 2233, 27], - ["get", 3, 44, 1, 2234, 21], - ["frame", 7, 3, 0, 2234, 21], - ["invoke", 7, 3, 2234, 21], - ["move", 57, 3, 2234, 21], - ["access", 7, "pop_err", 2235, 33], - ["get", 57, 49, 1, 2235, 23], - ["frame", 61, 57, 1, 2235, 23], - ["stone_text", 7], - ["setarg", 61, 1, 7, 2235, 23], - ["invoke", 61, 7, 2235, 23], - ["move", 58, 7, 2235, 23], - ["access", 57, "pop_done", 2236, 34], - ["get", 58, 49, 1, 2236, 24], - ["frame", 61, 58, 1, 2236, 24], - ["stone_text", 57], - ["setarg", 61, 1, 57, 2236, 24], - ["invoke", 61, 57, 2236, 24], - ["move", 59, 57, 2236, 24], - ["access", 58, "is_array", 2237, 18], - ["get", 59, 55, 1, 2237, 11], - ["frame", 61, 59, 3, 2237, 11], - ["stone_text", 58], - ["setarg", 61, 1, 58, 2237, 11], - ["setarg", 61, 2, 3, 2237, 11], - ["setarg", 61, 3, 8, 2237, 11], - ["invoke", 61, 58, 2237, 11], - ["access", 58, "jump_false", 2238, 26], - ["get", 59, 64, 1, 2238, 11], - ["frame", 61, 59, 3, 2238, 11], - ["stone_text", 58], - ["setarg", 61, 1, 58, 2238, 11], - ["setarg", 61, 2, 3, 2238, 11], - ["setarg", 61, 3, 7, 2238, 11], - ["invoke", 61, 3, 2238, 11], - ["access", 3, "pop", 2239, 18], - ["get", 58, 55, 1, 2239, 11], - ["frame", 59, 58, 3, 2239, 11], - ["stone_text", 3], - ["setarg", 59, 1, 3, 2239, 11], - ["setarg", 59, 2, 6, 2239, 11], - ["setarg", 59, 3, 8, 2239, 11], - ["invoke", 59, 3, 2239, 11], - ["get", 3, 63, 1, 2240, 11], - ["frame", 8, 3, 1, 2240, 11], - ["setarg", 8, 1, 57, 2240, 11], - ["invoke", 8, 3, 2240, 11], - ["get", 3, 52, 1, 2241, 11], - ["frame", 8, 3, 1, 2241, 11], - ["setarg", 8, 1, 7, 2241, 11], - ["invoke", 8, 3, 2241, 11], - ["access", 3, "cannot pop: target must be an array", 2242, 26], - ["get", 7, 62, 1, 2242, 11], - ["frame", 8, 7, 1, 2242, 11], - ["stone_text", 3], - ["setarg", 8, 1, 3, 2242, 11], - ["invoke", 8, 3, 2242, 11], - ["access", 3, "disrupt", 2243, 18], - ["get", 7, 53, 1, 2243, 11], - ["frame", 8, 7, 1, 2243, 11], - ["stone_text", 3], - ["setarg", 8, 1, 3, 2243, 11], - ["invoke", 8, 3, 2243, 11], - ["get", 3, 52, 1, 2244, 11], - ["frame", 7, 3, 1, 2244, 11], - ["setarg", 7, 1, 57, 2244, 11], - ["invoke", 7, 3, 2244, 11], - ["jump", "if_end_588", 2244, 11], - "if_else_587", - "if_end_588", - ["null", 3, 2246, 16], - ["return", 3, 2246, 16], - "_nop_ur_3", - "if_else_584", - "if_end_585", - ["null", 3, 2248, 20], - ["ne", 7, 4, 3, 2248, 20], - ["jump_false", 7, "if_else_589", 2248, 20], - ["get", 3, 97, 1, 2249, 20], - ["frame", 7, 3, 2, 2249, 20], - ["setarg", 7, 1, 4, 2249, 20], - ["setarg", 7, 2, 6, 2249, 20], - ["invoke", 7, 3, 2249, 20], - ["move", 9, 3, 2249, 20], - ["access", 3, 0, 2250, 27], - ["ge", 4, 6, 3, 2250, 27], - ["move", 3, 4, 2250, 27], - ["jump_false", 4, "and_end_593", 2250, 27], - ["ne", 4, 9, 6, 2250, 44], - ["move", 3, 4, 2250, 44], - "and_end_593", - ["jump_false", 3, "if_else_591", 2250, 44], - ["access", 3, "move", 2251, 18], - ["get", 4, 55, 1, 2251, 11], - ["frame", 7, 4, 3, 2251, 11], - ["stone_text", 3], - ["setarg", 7, 1, 3, 2251, 11], - ["setarg", 7, 2, 6, 2251, 11], - ["setarg", 7, 3, 9, 2251, 11], - ["invoke", 7, 3, 2251, 11], - ["jump", "if_end_592", 2251, 11], - "if_else_591", - "if_end_592", - ["jump", "if_end_590", 2251, 11], - "if_else_589", - ["access", 3, 0, 2253, 32], - ["ge", 4, 6, 3, 2253, 32], - ["jump_false", 4, "if_else_594", 2253, 32], - ["get", 3, 61, 1, 2254, 9], - ["frame", 4, 3, 1, 2254, 9], - ["setarg", 4, 1, 6, 2254, 9], - ["invoke", 4, 3, 2254, 9], - ["jump", "if_end_595", 2254, 9], - "if_else_594", - "if_end_595", - "if_end_590", - ["null", 3, 2256, 14], - ["return", 3, 2256, 14], + "if_end_575", + ["null", 3, 2556, 14], + ["return", 3, 2556, 14], "_nop_ur_4", + "if_else_566", + "if_end_567", + ["access", 3, "var_list", 2559, 17], + ["eq", 4, 2, 3, 2559, 17], + ["move", 3, 4, 2559, 17], + ["jump_true", 4, "or_end_583", 2559, 17], + ["access", 4, "def_list", 2559, 39], + ["eq", 7, 2, 4, 2559, 39], + ["move", 3, 7, 2559, 39], + "or_end_583", + ["jump_false", 3, "if_else_581", 2559, 39], + ["load_field", 3, 1, "list", 2560, 14], + ["move", 10, 3, 2560, 14], + ["access", 11, 0, 2561, 12], + "while_start_584", + ["length", 3, 10, 2562, 26], + ["lt", 4, 11, 3, 2562, 26], + ["jump_false", 4, "while_end_585", 2562, 26], + ["load_index", 3, 10, 11, 2563, 28], + ["get", 4, 114, 1, 2563, 9], + ["frame", 7, 4, 1, 2563, 9], + ["setarg", 7, 1, 3, 2563, 9], + ["invoke", 7, 3, 2563, 9], + ["access", 3, 1, 2564, 19], + ["add", 11, 11, 3, 2564, 19], + ["jump", "while_start_584", 2564, 19], + "while_end_585", + ["null", 3, 2566, 14], + ["return", 3, 2566, 14], + "_nop_ur_5", "if_else_581", "if_end_582", - ["access", 3, "var_list", 2259, 17], - ["eq", 4, 2, 3, 2259, 17], - ["move", 3, 4, 2259, 17], - ["jump_true", 4, "or_end_598", 2259, 17], - ["access", 4, "def_list", 2259, 39], - ["eq", 7, 2, 4, 2259, 39], - ["move", 3, 7, 2259, 39], - "or_end_598", - ["jump_false", 3, "if_else_596", 2259, 39], - ["load_field", 3, 1, "list", 2260, 14], - ["move", 10, 3, 2260, 14], - ["access", 11, 0, 2261, 12], - "while_start_599", - ["length", 3, 10, 2262, 26], - ["lt", 4, 11, 3, 2262, 26], - ["jump_false", 4, "while_end_600", 2262, 26], - ["load_index", 3, 10, 11, 2263, 28], - ["get", 4, 104, 1, 2263, 9], - ["frame", 7, 4, 1, 2263, 9], - ["setarg", 7, 1, 3, 2263, 9], - ["invoke", 7, 3, 2263, 9], - ["access", 3, 1, 2264, 19], - "_nop_tc_1", - "_nop_tc_2", - "_nop_tc_3", - "_nop_tc_4", - ["add", 11, 11, 3, 2264, 19], - ["jump", "num_done_602", 2264, 19], - "num_err_601", - "_nop_ucfg_1", - "_nop_ucfg_2", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "num_done_602", - ["jump", "while_start_599", 2264, 19], - "while_end_600", - ["null", 3, 2266, 14], - ["return", 3, 2266, 14], - "_nop_ur_5", + ["access", 3, "block", 2569, 17], + ["eq", 4, 2, 3, 2569, 17], + ["jump_false", 4, "if_else_586", 2569, 17], + ["load_field", 3, 1, "statements", 2570, 15], + ["move", 12, 3, 2570, 15], + ["access", 11, 0, 2571, 12], + "while_start_588", + ["length", 3, 12, 2572, 26], + ["lt", 4, 11, 3, 2572, 26], + ["jump_false", 4, "while_end_589", 2572, 26], + ["load_index", 3, 12, 11, 2573, 29], + ["get", 4, 114, 1, 2573, 9], + ["frame", 7, 4, 1, 2573, 9], + ["setarg", 7, 1, 3, 2573, 9], + ["invoke", 7, 3, 2573, 9], + ["access", 3, 1, 2574, 19], + ["add", 11, 11, 3, 2574, 19], + ["jump", "while_start_588", 2574, 19], + "while_end_589", + ["null", 3, 2576, 14], + ["return", 3, 2576, 14], + "_nop_ur_6", + "if_else_586", + "if_end_587", + ["access", 3, "if", 2579, 17], + ["eq", 4, 2, 3, 2579, 17], + ["jump_false", 4, "if_else_590", 2579, 17], + ["load_field", 3, 1, "expression", 2580, 14], + ["move", 13, 3, 2580, 14], + ["load_field", 3, 1, "then", 2581, 20], + ["move", 14, 3, 2581, 20], + ["access", 3, "else", 2582, 25], + ["load_field", 4, 1, 3, 2582, 25], + ["move", 15, 4, 2582, 25], + ["null", 3, 2583, 25], + ["eq", 7, 4, 3, 2583, 25], + ["jump_false", 7, "if_else_592", 2583, 25], + ["load_field", 3, 1, "list", 2584, 22], + ["move", 15, 3, 2584, 22], + ["jump", "if_end_593", 2584, 22], + "if_else_592", + "if_end_593", + ["access", 3, "if_else", 2586, 30], + ["get", 4, 51, 1, 2586, 20], + ["frame", 7, 4, 1, 2586, 20], + ["stone_text", 3], + ["setarg", 7, 1, 3, 2586, 20], + ["invoke", 7, 3, 2586, 20], + ["move", 16, 3, 2586, 20], + ["access", 4, "if_end", 2587, 29], + ["get", 7, 51, 1, 2587, 19], + ["frame", 8, 7, 1, 2587, 19], + ["stone_text", 4], + ["setarg", 8, 1, 4, 2587, 19], + ["invoke", 8, 4, 2587, 19], + ["move", 17, 4, 2587, 19], + ["access", 4, -1, 2588, 34], + ["get", 7, 101, 1, 2588, 19], + ["frame", 8, 7, 2, 2588, 19], + ["setarg", 8, 1, 13, 2588, 19], + ["setarg", 8, 2, 4, 2588, 19], + ["invoke", 8, 4, 2588, 19], + ["move", 18, 4, 2588, 19], + ["access", 7, "wary_false", 2589, 22], + ["get", 8, 66, 1, 2589, 7], + ["frame", 9, 8, 3, 2589, 7], + ["stone_text", 7], + ["setarg", 9, 1, 7, 2589, 7], + ["setarg", 9, 2, 4, 2589, 7], + ["setarg", 9, 3, 3, 2589, 7], + ["invoke", 9, 3, 2589, 7], + ["access", 11, 0, 2590, 12], + "while_start_594", + ["length", 3, 14, 2591, 26], + ["lt", 4, 11, 3, 2591, 26], + ["jump_false", 4, "while_end_595", 2591, 26], + ["load_index", 3, 14, 11, 2592, 34], + ["get", 4, 114, 1, 2592, 9], + ["frame", 7, 4, 1, 2592, 9], + ["setarg", 7, 1, 3, 2592, 9], + ["invoke", 7, 3, 2592, 9], + ["access", 3, 1, 2593, 19], + ["add", 11, 11, 3, 2593, 19], + ["jump", "while_start_594", 2593, 19], + "while_end_595", + ["get", 3, 65, 1, 2595, 7], + ["frame", 4, 3, 1, 2595, 7], + ["setarg", 4, 1, 17, 2595, 7], + ["invoke", 4, 3, 2595, 7], + ["get", 3, 54, 1, 2596, 7], + ["frame", 4, 3, 1, 2596, 7], + ["setarg", 4, 1, 16, 2596, 7], + ["invoke", 4, 3, 2596, 7], + ["null", 3, 2597, 25], + ["ne", 4, 15, 3, 2597, 25], + ["jump_false", 4, "if_else_596", 2597, 25], + ["access", 11, 0, 2598, 14], + "while_start_598", + ["length", 3, 15, 2599, 28], + ["lt", 4, 11, 3, 2599, 28], + ["jump_false", 4, "while_end_599", 2599, 28], + ["load_index", 3, 15, 11, 2600, 36], + ["get", 4, 114, 1, 2600, 11], + ["frame", 7, 4, 1, 2600, 11], + ["setarg", 7, 1, 3, 2600, 11], + ["invoke", 7, 3, 2600, 11], + ["access", 3, 1, 2601, 21], + ["add", 11, 11, 3, 2601, 21], + ["jump", "while_start_598", 2601, 21], + "while_end_599", + ["jump", "if_end_597", 2601, 21], "if_else_596", "if_end_597", - ["access", 3, "block", 2269, 17], - ["eq", 4, 2, 3, 2269, 17], - ["jump_false", 4, "if_else_603", 2269, 17], - ["load_field", 3, 1, "statements", 2270, 15], - ["move", 12, 3, 2270, 15], - ["access", 11, 0, 2271, 12], - "while_start_605", - ["length", 3, 12, 2272, 26], - ["lt", 4, 11, 3, 2272, 26], - ["jump_false", 4, "while_end_606", 2272, 26], - ["load_index", 3, 12, 11, 2273, 29], - ["get", 4, 104, 1, 2273, 9], - ["frame", 7, 4, 1, 2273, 9], - ["setarg", 7, 1, 3, 2273, 9], - ["invoke", 7, 3, 2273, 9], - ["access", 3, 1, 2274, 19], - "_nop_tc_5", - "_nop_tc_6", - "_nop_tc_7", - "_nop_tc_8", - ["add", 11, 11, 3, 2274, 19], - ["jump", "num_done_608", 2274, 19], - "num_err_607", - "_nop_ucfg_13", - "_nop_ucfg_14", - "_nop_ucfg_15", - "_nop_ucfg_16", - "_nop_ucfg_17", - "_nop_ucfg_18", - "_nop_ucfg_19", - "_nop_ucfg_20", - "_nop_ucfg_21", - "_nop_ucfg_22", - "_nop_ucfg_23", - "_nop_ucfg_24", - "num_done_608", - ["jump", "while_start_605", 2274, 19], - "while_end_606", - ["null", 3, 2276, 14], - ["return", 3, 2276, 14], - "_nop_ur_6", - "if_else_603", - "if_end_604", - ["access", 3, "if", 2279, 17], - ["eq", 4, 2, 3, 2279, 17], - ["jump_false", 4, "if_else_609", 2279, 17], - ["load_field", 3, 1, "expression", 2280, 14], - ["move", 13, 3, 2280, 14], - ["load_field", 3, 1, "then", 2281, 20], - ["move", 14, 3, 2281, 20], - ["access", 3, "else", 2282, 25], - ["load_field", 4, 1, 3, 2282, 25], - ["move", 15, 4, 2282, 25], - ["null", 3, 2283, 25], - ["eq", 7, 4, 3, 2283, 25], - ["jump_false", 7, "if_else_611", 2283, 25], - ["load_field", 3, 1, "list", 2284, 22], - ["move", 15, 3, 2284, 22], - ["jump", "if_end_612", 2284, 22], - "if_else_611", - "if_end_612", - ["access", 3, "if_else", 2286, 30], - ["get", 4, 49, 1, 2286, 20], - ["frame", 7, 4, 1, 2286, 20], - ["stone_text", 3], - ["setarg", 7, 1, 3, 2286, 20], - ["invoke", 7, 3, 2286, 20], - ["move", 16, 3, 2286, 20], - ["access", 4, "if_end", 2287, 29], - ["get", 7, 49, 1, 2287, 19], - ["frame", 8, 7, 1, 2287, 19], - ["stone_text", 4], - ["setarg", 8, 1, 4, 2287, 19], - ["invoke", 8, 4, 2287, 19], - ["move", 17, 4, 2287, 19], - ["access", 4, -1, 2288, 34], - ["get", 7, 97, 1, 2288, 19], - ["frame", 8, 7, 2, 2288, 19], - ["setarg", 8, 1, 13, 2288, 19], - ["setarg", 8, 2, 4, 2288, 19], - ["invoke", 8, 4, 2288, 19], - ["move", 18, 4, 2288, 19], - ["access", 7, "jump_false", 2289, 22], - ["get", 8, 64, 1, 2289, 7], - ["frame", 9, 8, 3, 2289, 7], - ["stone_text", 7], - ["setarg", 9, 1, 7, 2289, 7], - ["setarg", 9, 2, 4, 2289, 7], - ["setarg", 9, 3, 3, 2289, 7], - ["invoke", 9, 3, 2289, 7], - ["access", 11, 0, 2290, 12], - "while_start_613", - ["length", 3, 14, 2291, 26], - ["lt", 4, 11, 3, 2291, 26], - ["jump_false", 4, "while_end_614", 2291, 26], - ["load_index", 3, 14, 11, 2292, 34], - ["get", 4, 104, 1, 2292, 9], - ["frame", 7, 4, 1, 2292, 9], - ["setarg", 7, 1, 3, 2292, 9], - ["invoke", 7, 3, 2292, 9], - ["access", 3, 1, 2293, 19], - "_nop_tc_9", - "_nop_tc_10", - "_nop_tc_11", - "_nop_tc_12", - ["add", 11, 11, 3, 2293, 19], - ["jump", "num_done_616", 2293, 19], - "num_err_615", - "_nop_ucfg_25", - "_nop_ucfg_26", - "_nop_ucfg_27", - "_nop_ucfg_28", - "_nop_ucfg_29", - "_nop_ucfg_30", - "_nop_ucfg_31", - "_nop_ucfg_32", - "_nop_ucfg_33", - "_nop_ucfg_34", - "_nop_ucfg_35", - "_nop_ucfg_36", - "num_done_616", - ["jump", "while_start_613", 2293, 19], - "while_end_614", - ["get", 3, 63, 1, 2295, 7], - ["frame", 4, 3, 1, 2295, 7], - ["setarg", 4, 1, 17, 2295, 7], - ["invoke", 4, 3, 2295, 7], - ["get", 3, 52, 1, 2296, 7], - ["frame", 4, 3, 1, 2296, 7], - ["setarg", 4, 1, 16, 2296, 7], - ["invoke", 4, 3, 2296, 7], - ["null", 3, 2297, 25], - ["ne", 4, 15, 3, 2297, 25], - ["jump_false", 4, "if_else_617", 2297, 25], - ["access", 11, 0, 2298, 14], - "while_start_619", - ["length", 3, 15, 2299, 28], - ["lt", 4, 11, 3, 2299, 28], - ["jump_false", 4, "while_end_620", 2299, 28], - ["load_index", 3, 15, 11, 2300, 36], - ["get", 4, 104, 1, 2300, 11], - ["frame", 7, 4, 1, 2300, 11], - ["setarg", 7, 1, 3, 2300, 11], - ["invoke", 7, 3, 2300, 11], - ["access", 3, 1, 2301, 21], - "_nop_tc_13", - "_nop_tc_14", - "_nop_tc_15", - "_nop_tc_16", - ["add", 11, 11, 3, 2301, 21], - ["jump", "num_done_622", 2301, 21], - "num_err_621", - "_nop_ucfg_37", - "_nop_ucfg_38", - "_nop_ucfg_39", - "_nop_ucfg_40", - "_nop_ucfg_41", - "_nop_ucfg_42", - "_nop_ucfg_43", - "_nop_ucfg_44", - "_nop_ucfg_45", - "_nop_ucfg_46", - "_nop_ucfg_47", - "_nop_ucfg_48", - "num_done_622", - ["jump", "while_start_619", 2301, 21], - "while_end_620", - ["jump", "if_end_618", 2301, 21], - "if_else_617", - "if_end_618", - ["get", 3, 52, 1, 2304, 7], - ["frame", 4, 3, 1, 2304, 7], - ["setarg", 4, 1, 17, 2304, 7], - ["invoke", 4, 3, 2304, 7], - ["null", 3, 2305, 14], - ["return", 3, 2305, 14], + ["get", 3, 54, 1, 2604, 7], + ["frame", 4, 3, 1, 2604, 7], + ["setarg", 4, 1, 17, 2604, 7], + ["invoke", 4, 3, 2604, 7], + ["null", 3, 2605, 14], + ["return", 3, 2605, 14], "_nop_ur_7", - "if_else_609", - "if_end_610", - ["access", 3, "label", 2308, 17], - ["eq", 4, 2, 3, 2308, 17], - ["jump_false", 4, "if_else_623", 2308, 17], - ["load_field", 3, 1, "name", 2309, 25], - ["put", 3, 24, 1, 2309, 25], - ["load_field", 3, 1, "statement", 2310, 21], - ["get", 4, 104, 1, 2310, 7], - ["frame", 7, 4, 1, 2310, 7], - ["setarg", 7, 1, 3, 2310, 7], - ["invoke", 7, 3, 2310, 7], - ["null", 3, 2311, 25], - ["put", 3, 24, 1, 2311, 25], - ["null", 3, 2312, 14], - ["return", 3, 2312, 14], + "if_else_590", + "if_end_591", + ["access", 3, "label", 2608, 17], + ["eq", 4, 2, 3, 2608, 17], + ["jump_false", 4, "if_else_600", 2608, 17], + ["load_field", 3, 1, "name", 2609, 25], + ["put", 3, 24, 1, 2609, 25], + ["load_field", 3, 1, "statement", 2610, 21], + ["get", 4, 114, 1, 2610, 7], + ["frame", 7, 4, 1, 2610, 7], + ["setarg", 7, 1, 3, 2610, 7], + ["invoke", 7, 3, 2610, 7], + ["null", 3, 2611, 25], + ["put", 3, 24, 1, 2611, 25], + ["null", 3, 2612, 14], + ["return", 3, 2612, 14], "_nop_ur_8", + "if_else_600", + "if_end_601", + ["access", 3, "while", 2615, 17], + ["eq", 4, 2, 3, 2615, 17], + ["jump_false", 4, "if_else_602", 2615, 17], + ["load_field", 3, 1, "expression", 2616, 14], + ["move", 13, 3, 2616, 14], + ["load_field", 3, 1, "statements", 2617, 15], + ["move", 12, 3, 2617, 15], + ["access", 3, "while_start", 2618, 31], + ["get", 4, 51, 1, 2618, 21], + ["frame", 7, 4, 1, 2618, 21], + ["stone_text", 3], + ["setarg", 7, 1, 3, 2618, 21], + ["invoke", 7, 3, 2618, 21], + ["move", 19, 3, 2618, 21], + ["access", 4, "while_end", 2619, 29], + ["get", 7, 51, 1, 2619, 19], + ["frame", 8, 7, 1, 2619, 19], + ["stone_text", 4], + ["setarg", 8, 1, 4, 2619, 19], + ["invoke", 8, 4, 2619, 19], + ["move", 17, 4, 2619, 19], + ["get", 7, 22, 1, 2620, 19], + ["move", 20, 7, 2620, 19], + ["get", 7, 23, 1, 2621, 22], + ["move", 21, 7, 2621, 22], + ["put", 4, 22, 1, 2622, 22], + ["put", 3, 23, 1, 2623, 25], + ["get", 3, 24, 1, 2624, 11], + ["null", 4, 2624, 30], + ["ne", 7, 3, 4, 2624, 30], + ["jump_false", 7, "if_else_604", 2624, 30], + ["record", 3, 2], + ["store_field", 3, 17, "break_target", 2625, 55], + ["store_field", 3, 19, "continue_target", 2625, 83], + ["get", 4, 25, 1, 2625, 9], + ["get", 7, 24, 1, 2625, 21], + ["store_dynamic", 4, 3, 7, 2625, 21], + ["null", 3, 2626, 27], + ["put", 3, 24, 1, 2626, 27], + ["jump", "if_end_605", 2626, 27], + "if_else_604", + "if_end_605", + ["get", 3, 54, 1, 2628, 7], + ["frame", 4, 3, 1, 2628, 7], + ["setarg", 4, 1, 19, 2628, 7], + ["invoke", 4, 3, 2628, 7], + ["access", 3, -1, 2629, 34], + ["get", 4, 101, 1, 2629, 19], + ["frame", 7, 4, 2, 2629, 19], + ["setarg", 7, 1, 13, 2629, 19], + ["setarg", 7, 2, 3, 2629, 19], + ["invoke", 7, 3, 2629, 19], + ["move", 18, 3, 2629, 19], + ["access", 4, "wary_false", 2630, 22], + ["get", 7, 66, 1, 2630, 7], + ["frame", 8, 7, 3, 2630, 7], + ["stone_text", 4], + ["setarg", 8, 1, 4, 2630, 7], + ["setarg", 8, 2, 3, 2630, 7], + ["setarg", 8, 3, 17, 2630, 7], + ["invoke", 8, 3, 2630, 7], + ["access", 11, 0, 2631, 12], + "while_start_606", + ["length", 3, 12, 2632, 26], + ["lt", 4, 11, 3, 2632, 26], + ["jump_false", 4, "while_end_607", 2632, 26], + ["load_index", 3, 12, 11, 2633, 29], + ["get", 4, 114, 1, 2633, 9], + ["frame", 7, 4, 1, 2633, 9], + ["setarg", 7, 1, 3, 2633, 9], + ["invoke", 7, 3, 2633, 9], + ["access", 3, 1, 2634, 19], + ["add", 11, 11, 3, 2634, 19], + ["jump", "while_start_606", 2634, 19], + "while_end_607", + ["get", 3, 65, 1, 2636, 7], + ["frame", 4, 3, 1, 2636, 7], + ["setarg", 4, 1, 19, 2636, 7], + ["invoke", 4, 3, 2636, 7], + ["get", 3, 54, 1, 2637, 7], + ["frame", 4, 3, 1, 2637, 7], + ["setarg", 4, 1, 17, 2637, 7], + ["invoke", 4, 3, 2637, 7], + ["put", 20, 22, 1, 2638, 22], + ["put", 21, 23, 1, 2639, 25], + ["null", 3, 2640, 14], + ["return", 3, 2640, 14], + "_nop_ur_9", + "if_else_602", + "if_end_603", + ["access", 3, "do", 2643, 17], + ["eq", 4, 2, 3, 2643, 17], + ["jump_false", 4, "if_else_608", 2643, 17], + ["load_field", 3, 1, "expression", 2644, 14], + ["move", 13, 3, 2644, 14], + ["load_field", 3, 1, "statements", 2645, 15], + ["move", 12, 3, 2645, 15], + ["access", 3, "do_start", 2646, 31], + ["get", 4, 51, 1, 2646, 21], + ["frame", 7, 4, 1, 2646, 21], + ["stone_text", 3], + ["setarg", 7, 1, 3, 2646, 21], + ["invoke", 7, 3, 2646, 21], + ["move", 19, 3, 2646, 21], + ["access", 3, "do_cond", 2647, 30], + ["get", 4, 51, 1, 2647, 20], + ["frame", 7, 4, 1, 2647, 20], + ["stone_text", 3], + ["setarg", 7, 1, 3, 2647, 20], + ["invoke", 7, 3, 2647, 20], + ["move", 22, 3, 2647, 20], + ["access", 4, "do_end", 2648, 29], + ["get", 7, 51, 1, 2648, 19], + ["frame", 8, 7, 1, 2648, 19], + ["stone_text", 4], + ["setarg", 8, 1, 4, 2648, 19], + ["invoke", 8, 4, 2648, 19], + ["move", 17, 4, 2648, 19], + ["get", 7, 22, 1, 2649, 19], + ["move", 20, 7, 2649, 19], + ["get", 7, 23, 1, 2650, 22], + ["move", 21, 7, 2650, 22], + ["put", 4, 22, 1, 2651, 22], + ["put", 3, 23, 1, 2652, 25], + ["get", 3, 24, 1, 2653, 11], + ["null", 4, 2653, 30], + ["ne", 7, 3, 4, 2653, 30], + ["jump_false", 7, "if_else_610", 2653, 30], + ["record", 3, 2], + ["store_field", 3, 17, "break_target", 2654, 55], + ["store_field", 3, 22, "continue_target", 2654, 83], + ["get", 4, 25, 1, 2654, 9], + ["get", 7, 24, 1, 2654, 21], + ["store_dynamic", 4, 3, 7, 2654, 21], + ["null", 3, 2655, 27], + ["put", 3, 24, 1, 2655, 27], + ["jump", "if_end_611", 2655, 27], + "if_else_610", + "if_end_611", + ["get", 3, 54, 1, 2657, 7], + ["frame", 4, 3, 1, 2657, 7], + ["setarg", 4, 1, 19, 2657, 7], + ["invoke", 4, 3, 2657, 7], + ["access", 11, 0, 2658, 12], + "while_start_612", + ["length", 3, 12, 2659, 26], + ["lt", 4, 11, 3, 2659, 26], + ["jump_false", 4, "while_end_613", 2659, 26], + ["load_index", 3, 12, 11, 2660, 29], + ["get", 4, 114, 1, 2660, 9], + ["frame", 7, 4, 1, 2660, 9], + ["setarg", 7, 1, 3, 2660, 9], + ["invoke", 7, 3, 2660, 9], + ["access", 3, 1, 2661, 19], + ["add", 11, 11, 3, 2661, 19], + ["jump", "while_start_612", 2661, 19], + "while_end_613", + ["get", 3, 54, 1, 2663, 7], + ["frame", 4, 3, 1, 2663, 7], + ["setarg", 4, 1, 22, 2663, 7], + ["invoke", 4, 3, 2663, 7], + ["access", 3, -1, 2664, 34], + ["get", 4, 101, 1, 2664, 19], + ["frame", 7, 4, 2, 2664, 19], + ["setarg", 7, 1, 13, 2664, 19], + ["setarg", 7, 2, 3, 2664, 19], + ["invoke", 7, 3, 2664, 19], + ["move", 18, 3, 2664, 19], + ["access", 4, "wary_true", 2665, 22], + ["get", 7, 66, 1, 2665, 7], + ["frame", 8, 7, 3, 2665, 7], + ["stone_text", 4], + ["setarg", 8, 1, 4, 2665, 7], + ["setarg", 8, 2, 3, 2665, 7], + ["setarg", 8, 3, 19, 2665, 7], + ["invoke", 8, 3, 2665, 7], + ["get", 3, 54, 1, 2666, 7], + ["frame", 4, 3, 1, 2666, 7], + ["setarg", 4, 1, 17, 2666, 7], + ["invoke", 4, 3, 2666, 7], + ["put", 20, 22, 1, 2667, 22], + ["put", 21, 23, 1, 2668, 25], + ["null", 3, 2669, 14], + ["return", 3, 2669, 14], + "_nop_ur_10", + "if_else_608", + "if_end_609", + ["access", 3, "for", 2672, 17], + ["eq", 4, 2, 3, 2672, 17], + ["jump_false", 4, "if_else_614", 2672, 17], + ["load_field", 3, 1, "init", 2673, 14], + ["move", 23, 3, 2673, 14], + ["load_field", 3, 1, "test", 2674, 14], + ["move", 24, 3, 2674, 14], + ["load_field", 3, 1, "update", 2675, 16], + ["move", 25, 3, 2675, 16], + ["load_field", 3, 1, "statements", 2676, 15], + ["move", 12, 3, 2676, 15], + ["access", 3, "for_start", 2677, 31], + ["get", 4, 51, 1, 2677, 21], + ["frame", 7, 4, 1, 2677, 21], + ["stone_text", 3], + ["setarg", 7, 1, 3, 2677, 21], + ["invoke", 7, 3, 2677, 21], + ["move", 19, 3, 2677, 21], + ["access", 3, "for_update", 2678, 32], + ["get", 4, 51, 1, 2678, 22], + ["frame", 7, 4, 1, 2678, 22], + ["stone_text", 3], + ["setarg", 7, 1, 3, 2678, 22], + ["invoke", 7, 3, 2678, 22], + ["move", 26, 3, 2678, 22], + ["access", 4, "for_end", 2679, 29], + ["get", 7, 51, 1, 2679, 19], + ["frame", 8, 7, 1, 2679, 19], + ["stone_text", 4], + ["setarg", 8, 1, 4, 2679, 19], + ["invoke", 8, 4, 2679, 19], + ["move", 17, 4, 2679, 19], + ["get", 7, 22, 1, 2680, 19], + ["move", 20, 7, 2680, 19], + ["get", 7, 23, 1, 2681, 22], + ["move", 21, 7, 2681, 22], + ["put", 4, 22, 1, 2682, 22], + ["put", 3, 23, 1, 2683, 25], + ["get", 3, 24, 1, 2684, 11], + ["null", 4, 2684, 30], + ["ne", 7, 3, 4, 2684, 30], + ["jump_false", 7, "if_else_616", 2684, 30], + ["record", 3, 2], + ["store_field", 3, 17, "break_target", 2685, 55], + ["store_field", 3, 26, "continue_target", 2685, 83], + ["get", 4, 25, 1, 2685, 9], + ["get", 7, 24, 1, 2685, 21], + ["store_dynamic", 4, 3, 7, 2685, 21], + ["null", 3, 2686, 27], + ["put", 3, 24, 1, 2686, 27], + ["jump", "if_end_617", 2686, 27], + "if_else_616", + "if_end_617", + ["null", 3, 2688, 19], + ["ne", 4, 23, 3, 2688, 19], + ["jump_false", 4, "if_else_618", 2688, 19], + ["load_field", 3, 23, "kind", 2689, 21], + ["move", 27, 3, 2689, 21], + ["access", 4, "var", 2690, 26], + ["eq", 7, 3, 4, 2690, 26], + ["move", 3, 7, 2690, 26], + ["jump_true", 7, "or_end_622", 2690, 26], + ["access", 4, "def", 2690, 48], + ["eq", 7, 27, 4, 2690, 48], + ["move", 3, 7, 2690, 48], + "or_end_622", + ["jump_false", 3, "if_else_620", 2690, 48], + ["get", 3, 114, 1, 2691, 11], + ["frame", 4, 3, 1, 2691, 11], + ["setarg", 4, 1, 23, 2691, 11], + ["invoke", 4, 3, 2691, 11], + ["jump", "if_end_621", 2691, 11], + "if_else_620", + ["access", 3, -1, 2693, 26], + ["get", 4, 101, 1, 2693, 11], + ["frame", 7, 4, 2, 2693, 11], + ["setarg", 7, 1, 23, 2693, 11], + ["setarg", 7, 2, 3, 2693, 11], + ["invoke", 7, 3, 2693, 11], + "if_end_621", + ["jump", "if_end_619", 2693, 11], + "if_else_618", + "if_end_619", + ["get", 3, 54, 1, 2696, 7], + ["frame", 4, 3, 1, 2696, 7], + ["setarg", 4, 1, 19, 2696, 7], + ["invoke", 4, 3, 2696, 7], + ["null", 3, 2697, 19], + ["ne", 4, 24, 3, 2697, 19], + ["jump_false", 4, "if_else_623", 2697, 19], + ["access", 3, -1, 2698, 36], + ["get", 4, 101, 1, 2698, 21], + ["frame", 7, 4, 2, 2698, 21], + ["setarg", 7, 1, 24, 2698, 21], + ["setarg", 7, 2, 3, 2698, 21], + ["invoke", 7, 3, 2698, 21], + ["move", 28, 3, 2698, 21], + ["access", 4, "wary_false", 2699, 24], + ["get", 7, 66, 1, 2699, 9], + ["frame", 8, 7, 3, 2699, 9], + ["stone_text", 4], + ["setarg", 8, 1, 4, 2699, 9], + ["setarg", 8, 2, 3, 2699, 9], + ["setarg", 8, 3, 17, 2699, 9], + ["invoke", 8, 3, 2699, 9], + ["jump", "if_end_624", 2699, 9], "if_else_623", "if_end_624", - ["access", 3, "while", 2315, 17], - ["eq", 4, 2, 3, 2315, 17], - ["jump_false", 4, "if_else_625", 2315, 17], - ["load_field", 3, 1, "expression", 2316, 14], - ["move", 13, 3, 2316, 14], - ["load_field", 3, 1, "statements", 2317, 15], - ["move", 12, 3, 2317, 15], - ["access", 3, "while_start", 2318, 31], - ["get", 4, 49, 1, 2318, 21], - ["frame", 7, 4, 1, 2318, 21], - ["stone_text", 3], - ["setarg", 7, 1, 3, 2318, 21], - ["invoke", 7, 3, 2318, 21], - ["move", 19, 3, 2318, 21], - ["access", 4, "while_end", 2319, 29], - ["get", 7, 49, 1, 2319, 19], - ["frame", 8, 7, 1, 2319, 19], - ["stone_text", 4], - ["setarg", 8, 1, 4, 2319, 19], - ["invoke", 8, 4, 2319, 19], - ["move", 17, 4, 2319, 19], - ["get", 7, 22, 1, 2320, 19], - ["move", 20, 7, 2320, 19], - ["get", 7, 23, 1, 2321, 22], - ["move", 21, 7, 2321, 22], - ["put", 4, 22, 1, 2322, 22], - ["put", 3, 23, 1, 2323, 25], - ["get", 3, 24, 1, 2324, 11], - ["null", 4, 2324, 30], - ["ne", 7, 3, 4, 2324, 30], - ["jump_false", 7, "if_else_627", 2324, 30], - ["record", 3, 2], - ["store_field", 3, 17, "break_target", 2325, 55], - ["store_field", 3, 19, "continue_target", 2325, 83], - ["get", 4, 25, 1, 2325, 9], - ["get", 7, 24, 1, 2325, 21], - ["store_dynamic", 4, 3, 7, 2325, 21], - ["null", 3, 2326, 27], - ["put", 3, 24, 1, 2326, 27], - ["jump", "if_end_628", 2326, 27], + ["access", 11, 0, 2701, 12], + "while_start_625", + ["length", 3, 12, 2702, 26], + ["lt", 4, 11, 3, 2702, 26], + ["jump_false", 4, "while_end_626", 2702, 26], + ["load_index", 3, 12, 11, 2703, 29], + ["get", 4, 114, 1, 2703, 9], + ["frame", 7, 4, 1, 2703, 9], + ["setarg", 7, 1, 3, 2703, 9], + ["invoke", 7, 3, 2703, 9], + ["access", 3, 1, 2704, 19], + ["add", 11, 11, 3, 2704, 19], + ["jump", "while_start_625", 2704, 19], + "while_end_626", + ["get", 3, 54, 1, 2706, 7], + ["frame", 4, 3, 1, 2706, 7], + ["setarg", 4, 1, 26, 2706, 7], + ["invoke", 4, 3, 2706, 7], + ["null", 3, 2707, 21], + ["ne", 4, 25, 3, 2707, 21], + ["jump_false", 4, "if_else_627", 2707, 21], + ["access", 3, -1, 2708, 26], + ["get", 4, 101, 1, 2708, 9], + ["frame", 7, 4, 2, 2708, 9], + ["setarg", 7, 1, 25, 2708, 9], + ["setarg", 7, 2, 3, 2708, 9], + ["invoke", 7, 3, 2708, 9], + ["jump", "if_end_628", 2708, 9], "if_else_627", "if_end_628", - ["get", 3, 52, 1, 2328, 7], - ["frame", 4, 3, 1, 2328, 7], - ["setarg", 4, 1, 19, 2328, 7], - ["invoke", 4, 3, 2328, 7], - ["access", 3, -1, 2329, 34], - ["get", 4, 97, 1, 2329, 19], - ["frame", 7, 4, 2, 2329, 19], - ["setarg", 7, 1, 13, 2329, 19], - ["setarg", 7, 2, 3, 2329, 19], - ["invoke", 7, 3, 2329, 19], - ["move", 18, 3, 2329, 19], - ["access", 4, "jump_false", 2330, 22], - ["get", 7, 64, 1, 2330, 7], - ["frame", 8, 7, 3, 2330, 7], - ["stone_text", 4], - ["setarg", 8, 1, 4, 2330, 7], - ["setarg", 8, 2, 3, 2330, 7], - ["setarg", 8, 3, 17, 2330, 7], - ["invoke", 8, 3, 2330, 7], - ["access", 11, 0, 2331, 12], - "while_start_629", - ["length", 3, 12, 2332, 26], - ["lt", 4, 11, 3, 2332, 26], - ["jump_false", 4, "while_end_630", 2332, 26], - ["load_index", 3, 12, 11, 2333, 29], - ["get", 4, 104, 1, 2333, 9], - ["frame", 7, 4, 1, 2333, 9], - ["setarg", 7, 1, 3, 2333, 9], - ["invoke", 7, 3, 2333, 9], - ["access", 3, 1, 2334, 19], - "_nop_tc_17", - "_nop_tc_18", - "_nop_tc_19", - "_nop_tc_20", - ["add", 11, 11, 3, 2334, 19], - ["jump", "num_done_632", 2334, 19], - "num_err_631", - "_nop_ucfg_49", - "_nop_ucfg_50", - "_nop_ucfg_51", - "_nop_ucfg_52", - "_nop_ucfg_53", - "_nop_ucfg_54", - "_nop_ucfg_55", - "_nop_ucfg_56", - "_nop_ucfg_57", - "_nop_ucfg_58", - "_nop_ucfg_59", - "_nop_ucfg_60", - "num_done_632", - ["jump", "while_start_629", 2334, 19], - "while_end_630", - ["get", 3, 63, 1, 2336, 7], - ["frame", 4, 3, 1, 2336, 7], - ["setarg", 4, 1, 19, 2336, 7], - ["invoke", 4, 3, 2336, 7], - ["get", 3, 52, 1, 2337, 7], - ["frame", 4, 3, 1, 2337, 7], - ["setarg", 4, 1, 17, 2337, 7], - ["invoke", 4, 3, 2337, 7], - ["put", 20, 22, 1, 2338, 22], - ["put", 21, 23, 1, 2339, 25], - ["null", 3, 2340, 14], - ["return", 3, 2340, 14], - "_nop_ur_9", - "if_else_625", - "if_end_626", - ["access", 3, "do", 2343, 17], - ["eq", 4, 2, 3, 2343, 17], - ["jump_false", 4, "if_else_633", 2343, 17], - ["load_field", 3, 1, "expression", 2344, 14], - ["move", 13, 3, 2344, 14], - ["load_field", 3, 1, "statements", 2345, 15], - ["move", 12, 3, 2345, 15], - ["access", 3, "do_start", 2346, 31], - ["get", 4, 49, 1, 2346, 21], - ["frame", 7, 4, 1, 2346, 21], - ["stone_text", 3], - ["setarg", 7, 1, 3, 2346, 21], - ["invoke", 7, 3, 2346, 21], - ["move", 19, 3, 2346, 21], - ["access", 3, "do_cond", 2347, 30], - ["get", 4, 49, 1, 2347, 20], - ["frame", 7, 4, 1, 2347, 20], - ["stone_text", 3], - ["setarg", 7, 1, 3, 2347, 20], - ["invoke", 7, 3, 2347, 20], - ["move", 22, 3, 2347, 20], - ["access", 4, "do_end", 2348, 29], - ["get", 7, 49, 1, 2348, 19], - ["frame", 8, 7, 1, 2348, 19], - ["stone_text", 4], - ["setarg", 8, 1, 4, 2348, 19], - ["invoke", 8, 4, 2348, 19], - ["move", 17, 4, 2348, 19], - ["get", 7, 22, 1, 2349, 19], - ["move", 20, 7, 2349, 19], - ["get", 7, 23, 1, 2350, 22], - ["move", 21, 7, 2350, 22], - ["put", 4, 22, 1, 2351, 22], - ["put", 3, 23, 1, 2352, 25], - ["get", 3, 24, 1, 2353, 11], - ["null", 4, 2353, 30], - ["ne", 7, 3, 4, 2353, 30], - ["jump_false", 7, "if_else_635", 2353, 30], - ["record", 3, 2], - ["store_field", 3, 17, "break_target", 2354, 55], - ["store_field", 3, 22, "continue_target", 2354, 83], - ["get", 4, 25, 1, 2354, 9], - ["get", 7, 24, 1, 2354, 21], - ["store_dynamic", 4, 3, 7, 2354, 21], - ["null", 3, 2355, 27], - ["put", 3, 24, 1, 2355, 27], - ["jump", "if_end_636", 2355, 27], - "if_else_635", - "if_end_636", - ["get", 3, 52, 1, 2357, 7], - ["frame", 4, 3, 1, 2357, 7], - ["setarg", 4, 1, 19, 2357, 7], - ["invoke", 4, 3, 2357, 7], - ["access", 11, 0, 2358, 12], - "while_start_637", - ["length", 3, 12, 2359, 26], - ["lt", 4, 11, 3, 2359, 26], - ["jump_false", 4, "while_end_638", 2359, 26], - ["load_index", 3, 12, 11, 2360, 29], - ["get", 4, 104, 1, 2360, 9], - ["frame", 7, 4, 1, 2360, 9], - ["setarg", 7, 1, 3, 2360, 9], - ["invoke", 7, 3, 2360, 9], - ["access", 3, 1, 2361, 19], - "_nop_tc_21", - "_nop_tc_22", - "_nop_tc_23", - "_nop_tc_24", - ["add", 11, 11, 3, 2361, 19], - ["jump", "num_done_640", 2361, 19], - "num_err_639", - "_nop_ucfg_61", - "_nop_ucfg_62", - "_nop_ucfg_63", - "_nop_ucfg_64", - "_nop_ucfg_65", - "_nop_ucfg_66", - "_nop_ucfg_67", - "_nop_ucfg_68", - "_nop_ucfg_69", - "_nop_ucfg_70", - "_nop_ucfg_71", - "_nop_ucfg_72", - "num_done_640", - ["jump", "while_start_637", 2361, 19], - "while_end_638", - ["get", 3, 52, 1, 2363, 7], - ["frame", 4, 3, 1, 2363, 7], - ["setarg", 4, 1, 22, 2363, 7], - ["invoke", 4, 3, 2363, 7], - ["access", 3, -1, 2364, 34], - ["get", 4, 97, 1, 2364, 19], - ["frame", 7, 4, 2, 2364, 19], - ["setarg", 7, 1, 13, 2364, 19], - ["setarg", 7, 2, 3, 2364, 19], - ["invoke", 7, 3, 2364, 19], - ["move", 18, 3, 2364, 19], - ["access", 4, "jump_true", 2365, 22], - ["get", 7, 64, 1, 2365, 7], - ["frame", 8, 7, 3, 2365, 7], - ["stone_text", 4], - ["setarg", 8, 1, 4, 2365, 7], - ["setarg", 8, 2, 3, 2365, 7], - ["setarg", 8, 3, 19, 2365, 7], - ["invoke", 8, 3, 2365, 7], - ["get", 3, 52, 1, 2366, 7], - ["frame", 4, 3, 1, 2366, 7], - ["setarg", 4, 1, 17, 2366, 7], - ["invoke", 4, 3, 2366, 7], - ["put", 20, 22, 1, 2367, 22], - ["put", 21, 23, 1, 2368, 25], - ["null", 3, 2369, 14], - ["return", 3, 2369, 14], - "_nop_ur_10", + ["get", 3, 65, 1, 2710, 7], + ["frame", 4, 3, 1, 2710, 7], + ["setarg", 4, 1, 19, 2710, 7], + ["invoke", 4, 3, 2710, 7], + ["get", 3, 54, 1, 2711, 7], + ["frame", 4, 3, 1, 2711, 7], + ["setarg", 4, 1, 17, 2711, 7], + ["invoke", 4, 3, 2711, 7], + ["put", 20, 22, 1, 2712, 22], + ["put", 21, 23, 1, 2713, 25], + ["null", 3, 2714, 14], + ["return", 3, 2714, 14], + "_nop_ur_11", + "if_else_614", + "if_end_615", + ["access", 3, "return", 2717, 17], + ["eq", 4, 2, 3, 2717, 17], + ["jump_false", 4, "if_else_629", 2717, 17], + ["load_field", 3, 1, "expression", 2718, 14], + ["move", 29, 3, 2718, 14], + ["null", 4, 2719, 19], + ["ne", 7, 3, 4, 2719, 19], + ["jump_false", 7, "if_else_631", 2719, 19], + ["access", 3, -1, 2720, 31], + ["get", 4, 101, 1, 2720, 16], + ["frame", 7, 4, 2, 2720, 16], + ["setarg", 7, 1, 29, 2720, 16], + ["setarg", 7, 2, 3, 2720, 16], + ["invoke", 7, 3, 2720, 16], + ["move", 30, 3, 2720, 16], + ["load_field", 3, 1, "tail", 2722, 13], + ["true", 4, 2722, 26], + ["eq", 7, 3, 4, 2722, 26], + ["move", 3, 7, 2722, 26], + ["jump_false", 7, "and_end_635", 2722, 26], + ["get", 4, 33, 1, 2722, 35], + ["not", 7, 4, 2722, 35], + ["move", 3, 7, 2722, 35], + "and_end_635", + ["jump_false", 3, "if_else_633", 2722, 35], + ["get", 3, 2, 1, 2723, 24], + ["get", 4, 2, 1, 2723, 46], + ["length", 7, 4, 2723, 46], + ["access", 4, 1, 2723, 64], + "_nop_tc_1", + "_nop_tc_2", + ["subtract", 8, 7, 4, 2723, 64], + ["jump", "num_done_637", 2723, 64], + "num_err_636", + [ + "access", + 4, + { + "name": "log", + "kind": "name", + "make": "intrinsic" + }, + 2723, + 64 + ], + ["access", 7, "error", 2723, 64], + ["access", 9, "operands must be numbers", 2723, 64], + ["array", 10, 0, 2723, 64], + ["stone_text", 9], + ["push", 10, 9, 2723, 64], + ["frame", 9, 4, 2, 2723, 64], + ["null", 4, 2723, 64], + ["setarg", 9, 0, 4, 2723, 64], + ["stone_text", 7], + ["setarg", 9, 1, 7, 2723, 64], + ["setarg", 9, 2, 10, 2723, 64], + ["invoke", 9, 4, 2723, 64], + ["disrupt", 2723, 64], + "num_done_637", + ["load_index", 4, 3, 8, 2723, 64], + ["move", 60, 4, 2723, 64], + ["is_array", 7, 4, 2724, 24], + ["move", 4, 7, 2724, 24], + ["jump_false", 7, "and_end_640", 2724, 24], + ["access", 7, 0, 2724, 50], + ["load_index", 9, 60, 7, 2724, 50], + ["access", 7, "invoke", 2724, 56], + ["eq", 10, 9, 7, 2724, 56], + ["move", 4, 10, 2724, 56], + "and_end_640", + ["jump_false", 4, "if_else_638", 2724, 56], + ["access", 4, "tail_invoke", 2725, 29], + ["access", 7, 0, 2725, 24], + ["store_index", 60, 4, 7, 2725, 24], + ["jump", "if_end_639", 2725, 24], + "if_else_638", + "if_end_639", + ["jump", "if_end_634", 2725, 24], "if_else_633", "if_end_634", - ["access", 3, "for", 2372, 17], - ["eq", 4, 2, 3, 2372, 17], - ["jump_false", 4, "if_else_641", 2372, 17], - ["load_field", 3, 1, "init", 2373, 14], - ["move", 23, 3, 2373, 14], - ["load_field", 3, 1, "test", 2374, 14], - ["move", 24, 3, 2374, 14], - ["load_field", 3, 1, "update", 2375, 16], - ["move", 25, 3, 2375, 16], - ["load_field", 3, 1, "statements", 2376, 15], - ["move", 12, 3, 2376, 15], - ["access", 3, "for_start", 2377, 31], - ["get", 4, 49, 1, 2377, 21], - ["frame", 7, 4, 1, 2377, 21], - ["stone_text", 3], - ["setarg", 7, 1, 3, 2377, 21], - ["invoke", 7, 3, 2377, 21], - ["move", 19, 3, 2377, 21], - ["access", 3, "for_update", 2378, 32], - ["get", 4, 49, 1, 2378, 22], - ["frame", 7, 4, 1, 2378, 22], - ["stone_text", 3], - ["setarg", 7, 1, 3, 2378, 22], - ["invoke", 7, 3, 2378, 22], - ["move", 26, 3, 2378, 22], - ["access", 4, "for_end", 2379, 29], - ["get", 7, 49, 1, 2379, 19], - ["frame", 8, 7, 1, 2379, 19], + ["access", 4, "return", 2728, 16], + ["get", 7, 56, 1, 2728, 9], + ["frame", 9, 7, 2, 2728, 9], ["stone_text", 4], - ["setarg", 8, 1, 4, 2379, 19], - ["invoke", 8, 4, 2379, 19], - ["move", 17, 4, 2379, 19], - ["get", 7, 22, 1, 2380, 19], - ["move", 20, 7, 2380, 19], - ["get", 7, 23, 1, 2381, 22], - ["move", 21, 7, 2381, 22], - ["put", 4, 22, 1, 2382, 22], - ["put", 3, 23, 1, 2383, 25], - ["get", 3, 24, 1, 2384, 11], - ["null", 4, 2384, 30], - ["ne", 7, 3, 4, 2384, 30], - ["jump_false", 7, "if_else_643", 2384, 30], - ["record", 3, 2], - ["store_field", 3, 17, "break_target", 2385, 55], - ["store_field", 3, 26, "continue_target", 2385, 83], - ["get", 4, 25, 1, 2385, 9], - ["get", 7, 24, 1, 2385, 21], - ["store_dynamic", 4, 3, 7, 2385, 21], - ["null", 3, 2386, 27], - ["put", 3, 24, 1, 2386, 27], - ["jump", "if_end_644", 2386, 27], + ["setarg", 9, 1, 4, 2728, 9], + ["setarg", 9, 2, 30, 2728, 9], + ["invoke", 9, 4, 2728, 9], + ["jump", "if_end_632", 2728, 9], + "if_else_631", + ["get", 4, 46, 1, 2730, 21], + ["frame", 7, 4, 0, 2730, 21], + ["invoke", 7, 4, 2730, 21], + ["move", 31, 4, 2730, 21], + ["access", 7, "null", 2731, 16], + ["get", 9, 56, 1, 2731, 9], + ["frame", 10, 9, 2, 2731, 9], + ["stone_text", 7], + ["setarg", 10, 1, 7, 2731, 9], + ["setarg", 10, 2, 4, 2731, 9], + ["invoke", 10, 7, 2731, 9], + ["access", 7, "return", 2732, 16], + ["get", 9, 56, 1, 2732, 9], + ["frame", 10, 9, 2, 2732, 9], + ["stone_text", 7], + ["setarg", 10, 1, 7, 2732, 9], + ["setarg", 10, 2, 4, 2732, 9], + ["invoke", 10, 4, 2732, 9], + "if_end_632", + ["null", 4, 2734, 14], + ["return", 4, 2734, 14], + "_nop_ur_12", + "if_else_629", + "if_end_630", + ["access", 4, "go", 2737, 17], + ["eq", 7, 2, 4, 2737, 17], + ["jump_false", 7, "if_else_641", 2737, 17], + ["load_field", 4, 1, "expression", 2738, 19], + ["move", 32, 4, 2738, 19], + ["null", 7, 2739, 24], + ["eq", 9, 4, 7, 2739, 24], + ["move", 4, 9, 2739, 24], + ["jump_true", 9, "or_end_645", 2739, 24], + ["load_field", 7, 32, "kind", 2739, 32], + ["access", 9, "(", 2739, 50], + ["ne", 10, 7, 9, 2739, 50], + ["move", 4, 10, 2739, 50], + "or_end_645", + ["jump_false", 4, "if_else_643", 2739, 50], + ["null", 4, 2740, 16], + ["return", 4, 2740, 16], + "_nop_ur_13", "if_else_643", "if_end_644", - ["null", 3, 2388, 19], - ["ne", 4, 23, 3, 2388, 19], - ["jump_false", 4, "if_else_645", 2388, 19], - ["load_field", 3, 23, "kind", 2389, 21], - ["move", 27, 3, 2389, 21], - ["access", 4, "var", 2390, 26], - ["eq", 7, 3, 4, 2390, 26], - ["move", 3, 7, 2390, 26], - ["jump_true", 7, "or_end_649", 2390, 26], - ["access", 4, "def", 2390, 48], - ["eq", 7, 27, 4, 2390, 48], - ["move", 3, 7, 2390, 48], - "or_end_649", - ["jump_false", 3, "if_else_647", 2390, 48], - ["get", 3, 104, 1, 2391, 11], - ["frame", 4, 3, 1, 2391, 11], - ["setarg", 4, 1, 23, 2391, 11], - ["invoke", 4, 3, 2391, 11], - ["jump", "if_end_648", 2391, 11], - "if_else_647", - ["access", 3, -1, 2393, 26], - ["get", 4, 97, 1, 2393, 11], - ["frame", 7, 4, 2, 2393, 11], - ["setarg", 7, 1, 23, 2393, 11], - ["setarg", 7, 2, 3, 2393, 11], - ["invoke", 7, 3, 2393, 11], - "if_end_648", - ["jump", "if_end_646", 2393, 11], - "if_else_645", - "if_end_646", - ["get", 3, 52, 1, 2396, 7], - ["frame", 4, 3, 1, 2396, 7], - ["setarg", 4, 1, 19, 2396, 7], - ["invoke", 4, 3, 2396, 7], - ["null", 3, 2397, 19], - ["ne", 4, 24, 3, 2397, 19], - ["jump_false", 4, "if_else_650", 2397, 19], - ["access", 3, -1, 2398, 36], - ["get", 4, 97, 1, 2398, 21], - ["frame", 7, 4, 2, 2398, 21], - ["setarg", 7, 1, 24, 2398, 21], - ["setarg", 7, 2, 3, 2398, 21], - ["invoke", 7, 3, 2398, 21], - ["move", 28, 3, 2398, 21], - ["access", 4, "jump_false", 2399, 24], - ["get", 7, 64, 1, 2399, 9], - ["frame", 8, 7, 3, 2399, 9], - ["stone_text", 4], - ["setarg", 8, 1, 4, 2399, 9], - ["setarg", 8, 2, 3, 2399, 9], - ["setarg", 8, 3, 17, 2399, 9], - ["invoke", 8, 3, 2399, 9], - ["jump", "if_end_651", 2399, 9], - "if_else_650", - "if_end_651", - ["access", 11, 0, 2401, 12], - "while_start_652", - ["length", 3, 12, 2402, 26], - ["lt", 4, 11, 3, 2402, 26], - ["jump_false", 4, "while_end_653", 2402, 26], - ["load_index", 3, 12, 11, 2403, 29], - ["get", 4, 104, 1, 2403, 9], - ["frame", 7, 4, 1, 2403, 9], - ["setarg", 7, 1, 3, 2403, 9], - ["invoke", 7, 3, 2403, 9], - ["access", 3, 1, 2404, 19], - "_nop_tc_25", - "_nop_tc_26", - "_nop_tc_27", - "_nop_tc_28", - ["add", 11, 11, 3, 2404, 19], - ["jump", "num_done_655", 2404, 19], - "num_err_654", - "_nop_ucfg_73", - "_nop_ucfg_74", - "_nop_ucfg_75", - "_nop_ucfg_76", - "_nop_ucfg_77", - "_nop_ucfg_78", - "_nop_ucfg_79", - "_nop_ucfg_80", - "_nop_ucfg_81", - "_nop_ucfg_82", - "_nop_ucfg_83", - "_nop_ucfg_84", - "num_done_655", - ["jump", "while_start_652", 2404, 19], - "while_end_653", - ["get", 3, 52, 1, 2406, 7], - ["frame", 4, 3, 1, 2406, 7], - ["setarg", 4, 1, 26, 2406, 7], - ["invoke", 4, 3, 2406, 7], - ["null", 3, 2407, 21], - ["ne", 4, 25, 3, 2407, 21], - ["jump_false", 4, "if_else_656", 2407, 21], - ["access", 3, -1, 2408, 26], - ["get", 4, 97, 1, 2408, 9], - ["frame", 7, 4, 2, 2408, 9], - ["setarg", 7, 1, 25, 2408, 9], - ["setarg", 7, 2, 3, 2408, 9], - ["invoke", 7, 3, 2408, 9], - ["jump", "if_end_657", 2408, 9], - "if_else_656", - "if_end_657", - ["get", 3, 63, 1, 2410, 7], - ["frame", 4, 3, 1, 2410, 7], - ["setarg", 4, 1, 19, 2410, 7], - ["invoke", 4, 3, 2410, 7], - ["get", 3, 52, 1, 2411, 7], - ["frame", 4, 3, 1, 2411, 7], - ["setarg", 4, 1, 17, 2411, 7], - ["invoke", 4, 3, 2411, 7], - ["put", 20, 22, 1, 2412, 22], - ["put", 21, 23, 1, 2413, 25], - ["null", 3, 2414, 14], - ["return", 3, 2414, 14], - "_nop_ur_11", - "if_else_641", - "if_end_642", - ["access", 3, "return", 2417, 17], - ["eq", 4, 2, 3, 2417, 17], - ["jump_false", 4, "if_else_658", 2417, 17], - ["load_field", 3, 1, "expression", 2418, 14], - ["move", 29, 3, 2418, 14], - ["null", 4, 2419, 19], - ["ne", 7, 3, 4, 2419, 19], - ["jump_false", 7, "if_else_660", 2419, 19], - ["access", 3, -1, 2420, 31], - ["get", 4, 97, 1, 2420, 16], - ["frame", 7, 4, 2, 2420, 16], - ["setarg", 7, 1, 29, 2420, 16], - ["setarg", 7, 2, 3, 2420, 16], - ["invoke", 7, 3, 2420, 16], - ["move", 30, 3, 2420, 16], - ["load_field", 3, 1, "tail", 2422, 13], - ["true", 4, 2422, 26], - ["eq", 7, 3, 4, 2422, 26], - ["move", 3, 7, 2422, 26], - ["jump_false", 7, "and_end_664", 2422, 26], - ["get", 4, 33, 1, 2422, 35], - ["not", 7, 4, 2422, 35], - ["move", 3, 7, 2422, 35], - "and_end_664", - ["jump_false", 3, "if_else_662", 2422, 35], - ["get", 3, 2, 1, 2423, 24], - ["get", 4, 2, 1, 2423, 46], - ["length", 7, 4, 2423, 46], - ["access", 4, 1, 2423, 64], - "_nop_tc_29", - "_nop_tc_30", - "_nop_tc_31", - "_nop_tc_32", - ["subtract", 8, 7, 4, 2423, 64], - ["jump", "num_done_666", 2423, 64], - "num_err_665", - "_nop_ucfg_85", - "_nop_ucfg_86", - "_nop_ucfg_87", - "_nop_ucfg_88", - "_nop_ucfg_89", - "_nop_ucfg_90", - "_nop_ucfg_91", - "_nop_ucfg_92", - "_nop_ucfg_93", - "_nop_ucfg_94", - "_nop_ucfg_95", - "_nop_ucfg_96", - "num_done_666", - ["load_index", 4, 3, 8, 2423, 64], - ["move", 60, 4, 2423, 64], - ["is_array", 3, 4, 2424, 24], - ["move", 4, 3, 2424, 24], - ["jump_false", 3, "and_end_669", 2424, 24], - ["access", 3, 0, 2424, 50], - ["load_index", 7, 60, 3, 2424, 50], - ["access", 3, "invoke", 2424, 56], - ["eq", 8, 7, 3, 2424, 56], - ["move", 4, 8, 2424, 56], - "and_end_669", - ["jump_false", 4, "if_else_667", 2424, 56], - ["access", 3, "tail_invoke", 2425, 29], - ["access", 4, 0, 2425, 24], - ["store_index", 60, 3, 4, 2425, 24], - ["jump", "if_end_668", 2425, 24], - "if_else_667", - "if_end_668", - ["jump", "if_end_663", 2425, 24], - "if_else_662", - "if_end_663", - ["access", 3, "return", 2428, 16], - ["get", 4, 54, 1, 2428, 9], - ["frame", 7, 4, 2, 2428, 9], - ["stone_text", 3], - ["setarg", 7, 1, 3, 2428, 9], - ["setarg", 7, 2, 30, 2428, 9], - ["invoke", 7, 3, 2428, 9], - ["jump", "if_end_661", 2428, 9], - "if_else_660", - ["get", 3, 44, 1, 2430, 21], - ["frame", 4, 3, 0, 2430, 21], - ["invoke", 4, 3, 2430, 21], - ["move", 31, 3, 2430, 21], - ["access", 4, "null", 2431, 16], - ["get", 7, 54, 1, 2431, 9], - ["frame", 8, 7, 2, 2431, 9], - ["stone_text", 4], - ["setarg", 8, 1, 4, 2431, 9], - ["setarg", 8, 2, 3, 2431, 9], - ["invoke", 8, 4, 2431, 9], - ["access", 4, "return", 2432, 16], - ["get", 7, 54, 1, 2432, 9], - ["frame", 8, 7, 2, 2432, 9], - ["stone_text", 4], - ["setarg", 8, 1, 4, 2432, 9], - ["setarg", 8, 2, 3, 2432, 9], - ["invoke", 8, 3, 2432, 9], - "if_end_661", - ["null", 3, 2434, 14], - ["return", 3, 2434, 14], - "_nop_ur_12", - "if_else_658", - "if_end_659", - ["access", 3, "go", 2437, 17], - ["eq", 4, 2, 3, 2437, 17], - ["jump_false", 4, "if_else_670", 2437, 17], - ["load_field", 3, 1, "expression", 2438, 19], - ["move", 32, 3, 2438, 19], - ["null", 4, 2439, 24], - ["eq", 7, 3, 4, 2439, 24], - ["move", 3, 7, 2439, 24], - ["jump_true", 7, "or_end_674", 2439, 24], - ["load_field", 4, 32, "kind", 2439, 32], - ["access", 7, "(", 2439, 50], - ["ne", 8, 4, 7, 2439, 50], - ["move", 3, 8, 2439, 50], - "or_end_674", - ["jump_false", 3, "if_else_672", 2439, 50], - ["null", 3, 2440, 16], - ["return", 3, 2440, 16], - "_nop_ur_13", - "if_else_672", - "if_end_673", - ["load_field", 3, 32, "expression", 2442, 16], - ["move", 33, 3, 2442, 16], - ["load_field", 3, 32, "list", 2443, 19], - ["move", 34, 3, 2443, 19], - ["array", 4, 0, 2444, 19], - ["move", 35, 4, 2444, 19], - ["access", 11, 0, 2445, 12], - ["null", 4, 2446, 28], - ["ne", 7, 3, 4, 2446, 28], - ["jump_false", 7, "tern_else_675", 2446, 28], - ["length", 3, 34, 2446, 42], - ["move", 4, 3, 2446, 42], - ["jump", "tern_end_676", 2446, 42], - "tern_else_675", - ["access", 3, 0, 2446, 55], - ["move", 4, 3, 2446, 55], - "tern_end_676", - ["move", 36, 4, 2446, 55], - "while_start_677", - ["lt", 3, 11, 36, 2447, 19], - ["jump_false", 3, "while_end_678", 2447, 19], - ["load_index", 3, 34, 11, 2448, 44], - ["access", 4, -1, 2448, 49], - ["get", 7, 97, 1, 2448, 25], - ["frame", 8, 7, 2, 2448, 25], - ["setarg", 8, 1, 3, 2448, 25], - ["setarg", 8, 2, 4, 2448, 25], - ["invoke", 8, 3, 2448, 25], - ["is_array", 4, 35, 2448, 25], - ["jump_false", 4, "push_err_679", 2448, 25], - ["push", 35, 3, 2448, 25], - ["jump", "push_done_680", 2448, 25], - "push_err_679", + ["load_field", 4, 32, "expression", 2742, 16], + ["move", 33, 4, 2742, 16], + ["load_field", 4, 32, "list", 2743, 19], + ["move", 34, 4, 2743, 19], + ["array", 7, 0, 2744, 19], + ["move", 35, 7, 2744, 19], + ["access", 11, 0, 2745, 12], + ["null", 7, 2746, 28], + ["ne", 9, 4, 7, 2746, 28], + ["jump_false", 9, "tern_else_646", 2746, 28], + ["length", 4, 34, 2746, 42], + ["move", 7, 4, 2746, 42], + ["jump", "tern_end_647", 2746, 42], + "tern_else_646", + ["access", 4, 0, 2746, 55], + ["move", 7, 4, 2746, 55], + "tern_end_647", + ["move", 36, 7, 2746, 55], + "while_start_648", + ["lt", 4, 11, 36, 2747, 19], + ["jump_false", 4, "while_end_649", 2747, 19], + ["load_index", 4, 34, 11, 2748, 44], + ["access", 7, -1, 2748, 49], + ["get", 9, 101, 1, 2748, 25], + ["frame", 10, 9, 2, 2748, 25], + ["setarg", 10, 1, 4, 2748, 25], + ["setarg", 10, 2, 7, 2748, 25], + ["invoke", 10, 4, 2748, 25], + ["is_array", 7, 35, 2748, 25], + ["jump_false", 7, "push_err_650", 2748, 25], + ["push", 35, 4, 2748, 25], + ["jump", "push_done_651", 2748, 25], + "push_err_650", [ "access", - 3, + 4, { "name": "log", "kind": "name", "make": "intrinsic" }, - 2448, + 2748, 25 ], - ["access", 4, "error", 2448, 25], - ["access", 7, "cannot push: target must be an array", 2448, 25], - ["array", 8, 0, 2448, 25], + ["access", 7, "error", 2748, 25], + ["access", 9, "cannot push: target must be an array", 2748, 25], + ["array", 10, 0, 2748, 25], + ["stone_text", 9], + ["push", 10, 9, 2748, 25], + ["frame", 9, 4, 2, 2748, 25], + ["null", 4, 2748, 25], + ["setarg", 9, 0, 4, 2748, 25], ["stone_text", 7], - ["push", 8, 7, 2448, 25], - ["frame", 7, 3, 2, 2448, 25], - ["null", 3, 2448, 25], - ["setarg", 7, 0, 3, 2448, 25], - ["stone_text", 4], - ["setarg", 7, 1, 4, 2448, 25], - ["setarg", 7, 2, 8, 2448, 25], - ["invoke", 7, 3, 2448, 25], - ["disrupt", 2448, 25], - "push_done_680", - ["access", 3, 1, 2449, 19], - "_nop_tc_33", - "_nop_tc_34", - "_nop_tc_35", - "_nop_tc_36", - ["add", 11, 11, 3, 2449, 19], - ["jump", "num_done_682", 2449, 19], - "num_err_681", - "_nop_ucfg_97", - "_nop_ucfg_98", - "_nop_ucfg_99", - "_nop_ucfg_100", - "_nop_ucfg_101", - "_nop_ucfg_102", - "_nop_ucfg_103", - "_nop_ucfg_104", - "_nop_ucfg_105", - "_nop_ucfg_106", - "_nop_ucfg_107", - "_nop_ucfg_108", - "num_done_682", - ["jump", "while_start_677", 2449, 19], - "while_end_678", - ["load_field", 3, 33, "kind", 2451, 21], - ["move", 37, 3, 2451, 21], - ["access", 4, ".", 2452, 26], - ["eq", 7, 3, 4, 2452, 26], - ["jump_false", 7, "if_else_683", 2452, 26], - ["load_field", 3, 33, "left", 2453, 20], - ["move", 38, 3, 2453, 20], - ["load_field", 4, 33, "right", 2454, 16], - ["move", 39, 4, 2454, 16], - ["access", 7, -1, 2455, 39], - ["get", 8, 97, 1, 2455, 20], - ["frame", 9, 8, 2, 2455, 20], - ["setarg", 9, 1, 3, 2455, 20], - ["setarg", 9, 2, 7, 2455, 20], - ["invoke", 9, 3, 2455, 20], - ["move", 40, 3, 2455, 20], - ["get", 7, 86, 1, 2456, 9], - ["frame", 8, 7, 3, 2456, 9], - ["setarg", 8, 1, 3, 2456, 9], - ["setarg", 8, 2, 4, 2456, 9], - ["setarg", 8, 3, 35, 2456, 9], - ["invoke", 8, 3, 2456, 9], - ["jump", "if_end_684", 2456, 9], - "if_else_683", - ["access", 3, -1, 2458, 38], - ["get", 4, 97, 1, 2458, 21], - ["frame", 7, 4, 2, 2458, 21], - ["setarg", 7, 1, 33, 2458, 21], - ["setarg", 7, 2, 3, 2458, 21], - ["invoke", 7, 3, 2458, 21], - ["move", 41, 3, 2458, 21], - ["get", 4, 85, 1, 2459, 9], - ["frame", 7, 4, 2, 2459, 9], - ["setarg", 7, 1, 3, 2459, 9], - ["setarg", 7, 2, 35, 2459, 9], - ["invoke", 7, 3, 2459, 9], - "if_end_684", - ["null", 3, 2461, 14], - ["return", 3, 2461, 14], + ["setarg", 9, 1, 7, 2748, 25], + ["setarg", 9, 2, 10, 2748, 25], + ["invoke", 9, 4, 2748, 25], + ["disrupt", 2748, 25], + "push_done_651", + ["access", 4, 1, 2749, 19], + ["add", 11, 11, 4, 2749, 19], + ["jump", "while_start_648", 2749, 19], + "while_end_649", + ["load_field", 4, 33, "kind", 2751, 21], + ["move", 37, 4, 2751, 21], + ["access", 7, ".", 2752, 26], + ["eq", 9, 4, 7, 2752, 26], + ["jump_false", 9, "if_else_652", 2752, 26], + ["load_field", 4, 33, "left", 2753, 20], + ["move", 38, 4, 2753, 20], + ["load_field", 7, 33, "right", 2754, 16], + ["move", 39, 7, 2754, 16], + ["access", 9, -1, 2755, 39], + ["get", 10, 101, 1, 2755, 20], + ["frame", 12, 10, 2, 2755, 20], + ["setarg", 12, 1, 4, 2755, 20], + ["setarg", 12, 2, 9, 2755, 20], + ["invoke", 12, 4, 2755, 20], + ["move", 40, 4, 2755, 20], + ["get", 9, 88, 1, 2756, 9], + ["frame", 10, 9, 3, 2756, 9], + ["setarg", 10, 1, 4, 2756, 9], + ["setarg", 10, 2, 7, 2756, 9], + ["setarg", 10, 3, 35, 2756, 9], + ["invoke", 10, 4, 2756, 9], + ["jump", "if_end_653", 2756, 9], + "if_else_652", + ["access", 4, -1, 2758, 38], + ["get", 7, 101, 1, 2758, 21], + ["frame", 9, 7, 2, 2758, 21], + ["setarg", 9, 1, 33, 2758, 21], + ["setarg", 9, 2, 4, 2758, 21], + ["invoke", 9, 4, 2758, 21], + ["move", 41, 4, 2758, 21], + ["get", 7, 87, 1, 2759, 9], + ["frame", 9, 7, 2, 2759, 9], + ["setarg", 9, 1, 4, 2759, 9], + ["setarg", 9, 2, 35, 2759, 9], + ["invoke", 9, 4, 2759, 9], + "if_end_653", + ["null", 4, 2761, 14], + ["return", 4, 2761, 14], "_nop_ur_14", + "if_else_641", + "if_end_642", + ["access", 4, "disrupt", 2764, 17], + ["eq", 7, 2, 4, 2764, 17], + ["jump_false", 7, "if_else_654", 2764, 17], + ["access", 4, "disrupt", 2765, 14], + ["get", 7, 55, 1, 2765, 7], + ["frame", 9, 7, 1, 2765, 7], + ["stone_text", 4], + ["setarg", 9, 1, 4, 2765, 7], + ["invoke", 9, 4, 2765, 7], + ["null", 4, 2766, 14], + ["return", 4, 2766, 14], + "_nop_ur_15", + "if_else_654", + "if_end_655", + ["access", 4, "break", 2769, 17], + ["eq", 7, 2, 4, 2769, 17], + ["jump_false", 7, "if_else_656", 2769, 17], + ["load_field", 4, 1, "name", 2770, 11], + ["null", 7, 2770, 24], + ["ne", 9, 4, 7, 2770, 24], + ["move", 4, 9, 2770, 24], + ["jump_false", 9, "and_end_660", 2770, 24], + ["get", 7, 25, 1, 2770, 32], + ["load_field", 9, 1, "name", 2770, 44], + ["load_dynamic", 10, 7, 9, 2770, 44], + ["null", 7, 2770, 58], + ["ne", 9, 10, 7, 2770, 58], + ["move", 4, 9, 2770, 58], + "and_end_660", + ["jump_false", 4, "if_else_658", 2770, 58], + ["get", 4, 25, 1, 2771, 19], + ["load_field", 7, 1, "name", 2771, 31], + ["load_dynamic", 9, 4, 7, 2771, 31], + ["load_field", 4, 9, "break_target", 2771, 31], + ["get", 7, 65, 1, 2771, 9], + ["frame", 9, 7, 1, 2771, 9], + ["setarg", 9, 1, 4, 2771, 9], + ["invoke", 9, 4, 2771, 9], + ["jump", "if_end_659", 2771, 9], + "if_else_658", + ["get", 4, 22, 1, 2772, 18], + ["null", 7, 2772, 34], + ["ne", 9, 4, 7, 2772, 34], + ["jump_false", 9, "if_else_661", 2772, 34], + ["get", 4, 22, 1, 2773, 19], + ["get", 7, 65, 1, 2773, 9], + ["frame", 9, 7, 1, 2773, 9], + ["setarg", 9, 1, 4, 2773, 9], + ["invoke", 9, 4, 2773, 9], + ["jump", "if_end_662", 2773, 9], + "if_else_661", + "if_end_662", + "if_end_659", + ["null", 4, 2775, 14], + ["return", 4, 2775, 14], + "_nop_ur_16", + "if_else_656", + "if_end_657", + ["access", 4, "continue", 2778, 17], + ["eq", 7, 2, 4, 2778, 17], + ["jump_false", 7, "if_else_663", 2778, 17], + ["load_field", 4, 1, "name", 2779, 11], + ["null", 7, 2779, 24], + ["ne", 9, 4, 7, 2779, 24], + ["move", 4, 9, 2779, 24], + ["jump_false", 9, "and_end_667", 2779, 24], + ["get", 7, 25, 1, 2779, 32], + ["load_field", 9, 1, "name", 2779, 44], + ["load_dynamic", 10, 7, 9, 2779, 44], + ["null", 7, 2779, 58], + ["ne", 9, 10, 7, 2779, 58], + ["move", 4, 9, 2779, 58], + "and_end_667", + ["jump_false", 4, "if_else_665", 2779, 58], + ["get", 4, 25, 1, 2780, 19], + ["load_field", 7, 1, "name", 2780, 31], + ["load_dynamic", 9, 4, 7, 2780, 31], + ["load_field", 4, 9, "continue_target", 2780, 31], + ["get", 7, 65, 1, 2780, 9], + ["frame", 9, 7, 1, 2780, 9], + ["setarg", 9, 1, 4, 2780, 9], + ["invoke", 9, 4, 2780, 9], + ["jump", "if_end_666", 2780, 9], + "if_else_665", + ["get", 4, 23, 1, 2781, 18], + ["null", 7, 2781, 37], + ["ne", 9, 4, 7, 2781, 37], + ["jump_false", 9, "if_else_668", 2781, 37], + ["get", 4, 23, 1, 2782, 19], + ["get", 7, 65, 1, 2782, 9], + ["frame", 9, 7, 1, 2782, 9], + ["setarg", 9, 1, 4, 2782, 9], + ["invoke", 9, 4, 2782, 9], + ["jump", "if_end_669", 2782, 9], + "if_else_668", + "if_end_669", + "if_end_666", + ["null", 4, 2784, 14], + ["return", 4, 2784, 14], + "_nop_ur_17", + "if_else_663", + "if_end_664", + ["access", 4, "switch", 2787, 17], + ["eq", 7, 2, 4, 2787, 17], + ["jump_false", 7, "if_else_670", 2787, 17], + ["load_field", 4, 1, "expression", 2788, 14], + ["move", 29, 4, 2788, 14], + ["load_field", 7, 1, "cases", 2789, 15], + ["move", 42, 7, 2789, 15], + ["access", 7, -1, 2790, 35], + ["get", 9, 101, 1, 2790, 20], + ["frame", 10, 9, 2, 2790, 20], + ["setarg", 10, 1, 4, 2790, 20], + ["setarg", 10, 2, 7, 2790, 20], + ["invoke", 10, 4, 2790, 20], + ["move", 43, 4, 2790, 20], + ["access", 4, "switch_end", 2791, 29], + ["get", 7, 51, 1, 2791, 19], + ["frame", 9, 7, 1, 2791, 19], + ["stone_text", 4], + ["setarg", 9, 1, 4, 2791, 19], + ["invoke", 9, 4, 2791, 19], + ["move", 17, 4, 2791, 19], + ["null", 44, 2792, 23], + ["get", 7, 22, 1, 2793, 19], + ["move", 20, 7, 2793, 19], + ["put", 4, 22, 1, 2794, 22], + ["array", 4, 0, 2796, 21], + ["move", 45, 4, 2796, 21], + ["access", 11, 0, 2797, 12], + "while_start_672", + ["length", 4, 42, 2798, 26], + ["lt", 7, 11, 4, 2798, 26], + ["jump_false", 7, "while_end_673", 2798, 26], + ["load_index", 4, 42, 11, 2799, 27], + ["move", 46, 4, 2799, 27], + ["load_field", 7, 4, "kind", 2800, 21], + ["move", 47, 7, 2800, 21], + ["access", 4, "default", 2801, 26], + ["eq", 9, 7, 4, 2801, 26], + ["jump_false", 9, "if_else_674", 2801, 26], + ["access", 4, "switch_default", 2802, 37], + ["get", 7, 51, 1, 2802, 27], + ["frame", 9, 7, 1, 2802, 27], + ["stone_text", 4], + ["setarg", 9, 1, 4, 2802, 27], + ["invoke", 9, 4, 2802, 27], + ["move", 44, 4, 2802, 27], + ["is_array", 4, 45, 2803, 29], + ["jump_false", 4, "push_err_676", 2803, 29], + ["push", 45, 44, 2803, 29], + ["jump", "push_done_677", 2803, 29], + "push_err_676", + [ + "access", + 4, + { + "name": "log", + "kind": "name", + "make": "intrinsic" + }, + 2803, + 29 + ], + ["access", 7, "error", 2803, 29], + ["access", 9, "cannot push: target must be an array", 2803, 29], + ["array", 10, 0, 2803, 29], + ["stone_text", 9], + ["push", 10, 9, 2803, 29], + ["frame", 9, 4, 2, 2803, 29], + ["null", 4, 2803, 29], + ["setarg", 9, 0, 4, 2803, 29], + ["stone_text", 7], + ["setarg", 9, 1, 7, 2803, 29], + ["setarg", 9, 2, 10, 2803, 29], + ["invoke", 9, 4, 2803, 29], + ["disrupt", 2803, 29], + "push_done_677", + ["jump", "if_end_675", 2803, 29], + "if_else_674", + ["access", 4, "switch_case", 2805, 34], + ["get", 7, 51, 1, 2805, 24], + ["frame", 9, 7, 1, 2805, 24], + ["stone_text", 4], + ["setarg", 9, 1, 4, 2805, 24], + ["invoke", 9, 4, 2805, 24], + ["move", 48, 4, 2805, 24], + ["load_field", 7, 46, "expression", 2806, 23], + ["move", 49, 7, 2806, 23], + ["access", 9, -1, 2807, 42], + ["get", 10, 101, 1, 2807, 22], + ["frame", 12, 10, 2, 2807, 22], + ["setarg", 12, 1, 7, 2807, 22], + ["setarg", 12, 2, 9, 2807, 22], + ["invoke", 12, 9, 2807, 22], + ["move", 50, 9, 2807, 22], + ["get", 10, 46, 1, 2808, 22], + ["frame", 12, 10, 0, 2808, 22], + ["invoke", 12, 10, 2808, 22], + ["move", 51, 10, 2808, 22], + ["null", 12, 2809, 20], + ["put", 12, 40, 1, 2809, 20], + ["put", 7, 41, 1, 2810, 20], + ["access", 7, "eq", 2811, 22], + ["get", 12, 79, 1, 2811, 11], + ["frame", 13, 12, 4, 2811, 11], + ["stone_text", 7], + ["setarg", 13, 1, 7, 2811, 11], + ["setarg", 13, 2, 10, 2811, 11], + ["setarg", 13, 3, 43, 2811, 11], + ["setarg", 13, 4, 9, 2811, 11], + ["invoke", 13, 7, 2811, 11], + ["access", 7, "jump_true", 2812, 26], + ["get", 9, 66, 1, 2812, 11], + ["frame", 12, 9, 3, 2812, 11], + ["stone_text", 7], + ["setarg", 12, 1, 7, 2812, 11], + ["setarg", 12, 2, 10, 2812, 11], + ["setarg", 12, 3, 4, 2812, 11], + ["invoke", 12, 4, 2812, 11], + ["is_array", 4, 45, 2813, 29], + ["jump_false", 4, "push_err_678", 2813, 29], + ["push", 45, 48, 2813, 29], + ["jump", "push_done_679", 2813, 29], + "push_err_678", + [ + "access", + 4, + { + "name": "log", + "kind": "name", + "make": "intrinsic" + }, + 2813, + 29 + ], + ["access", 7, "error", 2813, 29], + ["access", 9, "cannot push: target must be an array", 2813, 29], + ["array", 10, 0, 2813, 29], + ["stone_text", 9], + ["push", 10, 9, 2813, 29], + ["frame", 9, 4, 2, 2813, 29], + ["null", 4, 2813, 29], + ["setarg", 9, 0, 4, 2813, 29], + ["stone_text", 7], + ["setarg", 9, 1, 7, 2813, 29], + ["setarg", 9, 2, 10, 2813, 29], + ["invoke", 9, 4, 2813, 29], + ["disrupt", 2813, 29], + "push_done_679", + "if_end_675", + ["access", 4, 1, 2815, 19], + ["add", 11, 11, 4, 2815, 19], + ["jump", "while_start_672", 2815, 19], + "while_end_673", + ["null", 4, 2817, 28], + ["ne", 7, 44, 4, 2817, 28], + ["jump_false", 7, "if_else_680", 2817, 28], + ["get", 4, 65, 1, 2818, 9], + ["frame", 7, 4, 1, 2818, 9], + ["setarg", 7, 1, 44, 2818, 9], + ["invoke", 7, 4, 2818, 9], + ["jump", "if_end_681", 2818, 9], + "if_else_680", + ["get", 4, 65, 1, 2820, 9], + ["frame", 7, 4, 1, 2820, 9], + ["setarg", 7, 1, 17, 2820, 9], + ["invoke", 7, 4, 2820, 9], + "if_end_681", + ["access", 11, 0, 2823, 12], + "while_start_682", + ["length", 4, 42, 2824, 26], + ["lt", 7, 11, 4, 2824, 26], + ["jump_false", 7, "while_end_683", 2824, 26], + ["load_index", 4, 45, 11, 2825, 32], + ["get", 7, 54, 1, 2825, 9], + ["frame", 9, 7, 1, 2825, 9], + ["setarg", 9, 1, 4, 2825, 9], + ["invoke", 9, 4, 2825, 9], + ["load_index", 4, 42, 11, 2826, 28], + ["load_field", 7, 4, "statements", 2826, 28], + ["move", 52, 7, 2826, 28], + ["access", 53, 0, 2827, 14], + "while_start_684", + ["length", 4, 52, 2828, 28], + ["lt", 7, 53, 4, 2828, 28], + ["jump_false", 7, "while_end_685", 2828, 28], + ["load_index", 4, 52, 53, 2829, 36], + ["get", 7, 114, 1, 2829, 11], + ["frame", 9, 7, 1, 2829, 11], + ["setarg", 9, 1, 4, 2829, 11], + ["invoke", 9, 4, 2829, 11], + ["access", 4, 1, 2830, 21], + ["add", 53, 53, 4, 2830, 21], + ["jump", "while_start_684", 2830, 21], + "while_end_685", + ["access", 4, 1, 2832, 19], + ["add", 11, 11, 4, 2832, 19], + ["jump", "while_start_682", 2832, 19], + "while_end_683", + ["get", 4, 54, 1, 2834, 7], + ["frame", 7, 4, 1, 2834, 7], + ["setarg", 7, 1, 17, 2834, 7], + ["invoke", 7, 4, 2834, 7], + ["put", 20, 22, 1, 2835, 22], + ["null", 4, 2836, 14], + ["return", 4, 2836, 14], + "_nop_ur_18", "if_else_670", "if_end_671", - ["access", 3, "disrupt", 2464, 17], - ["eq", 4, 2, 3, 2464, 17], - ["jump_false", 4, "if_else_685", 2464, 17], - ["access", 3, "disrupt", 2465, 14], - ["get", 4, 53, 1, 2465, 7], - ["frame", 7, 4, 1, 2465, 7], - ["stone_text", 3], - ["setarg", 7, 1, 3, 2465, 7], - ["invoke", 7, 3, 2465, 7], - ["null", 3, 2466, 14], - ["return", 3, 2466, 14], - "_nop_ur_15", - "if_else_685", - "if_end_686", - ["access", 3, "break", 2469, 17], - ["eq", 4, 2, 3, 2469, 17], - ["jump_false", 4, "if_else_687", 2469, 17], - ["load_field", 3, 1, "name", 2470, 11], - ["null", 4, 2470, 24], - ["ne", 7, 3, 4, 2470, 24], - ["move", 3, 7, 2470, 24], - ["jump_false", 7, "and_end_691", 2470, 24], - ["get", 4, 25, 1, 2470, 32], - ["load_field", 7, 1, "name", 2470, 44], - ["load_dynamic", 8, 4, 7, 2470, 44], - ["null", 4, 2470, 58], - ["ne", 7, 8, 4, 2470, 58], - ["move", 3, 7, 2470, 58], - "and_end_691", - ["jump_false", 3, "if_else_689", 2470, 58], - ["get", 3, 25, 1, 2471, 19], - ["load_field", 4, 1, "name", 2471, 31], - ["load_dynamic", 7, 3, 4, 2471, 31], - ["load_field", 3, 7, "break_target", 2471, 31], - ["get", 4, 63, 1, 2471, 9], - ["frame", 7, 4, 1, 2471, 9], - ["setarg", 7, 1, 3, 2471, 9], - ["invoke", 7, 3, 2471, 9], - ["jump", "if_end_690", 2471, 9], - "if_else_689", - ["get", 3, 22, 1, 2472, 18], - ["null", 4, 2472, 34], - ["ne", 7, 3, 4, 2472, 34], - ["jump_false", 7, "if_else_692", 2472, 34], - ["get", 3, 22, 1, 2473, 19], - ["get", 4, 63, 1, 2473, 9], - ["frame", 7, 4, 1, 2473, 9], - ["setarg", 7, 1, 3, 2473, 9], - ["invoke", 7, 3, 2473, 9], - ["jump", "if_end_693", 2473, 9], - "if_else_692", - "if_end_693", - "if_end_690", - ["null", 3, 2475, 14], - ["return", 3, 2475, 14], - "_nop_ur_16", - "if_else_687", - "if_end_688", - ["access", 3, "continue", 2478, 17], - ["eq", 4, 2, 3, 2478, 17], - ["jump_false", 4, "if_else_694", 2478, 17], - ["load_field", 3, 1, "name", 2479, 11], - ["null", 4, 2479, 24], - ["ne", 7, 3, 4, 2479, 24], - ["move", 3, 7, 2479, 24], - ["jump_false", 7, "and_end_698", 2479, 24], - ["get", 4, 25, 1, 2479, 32], - ["load_field", 7, 1, "name", 2479, 44], - ["load_dynamic", 8, 4, 7, 2479, 44], - ["null", 4, 2479, 58], - ["ne", 7, 8, 4, 2479, 58], - ["move", 3, 7, 2479, 58], - "and_end_698", - ["jump_false", 3, "if_else_696", 2479, 58], - ["get", 3, 25, 1, 2480, 19], - ["load_field", 4, 1, "name", 2480, 31], - ["load_dynamic", 7, 3, 4, 2480, 31], - ["load_field", 3, 7, "continue_target", 2480, 31], - ["get", 4, 63, 1, 2480, 9], - ["frame", 7, 4, 1, 2480, 9], - ["setarg", 7, 1, 3, 2480, 9], - ["invoke", 7, 3, 2480, 9], - ["jump", "if_end_697", 2480, 9], - "if_else_696", - ["get", 3, 23, 1, 2481, 18], - ["null", 4, 2481, 37], - ["ne", 7, 3, 4, 2481, 37], - ["jump_false", 7, "if_else_699", 2481, 37], - ["get", 3, 23, 1, 2482, 19], - ["get", 4, 63, 1, 2482, 9], - ["frame", 7, 4, 1, 2482, 9], - ["setarg", 7, 1, 3, 2482, 9], - ["invoke", 7, 3, 2482, 9], - ["jump", "if_end_700", 2482, 9], - "if_else_699", - "if_end_700", - "if_end_697", - ["null", 3, 2484, 14], - ["return", 3, 2484, 14], - "_nop_ur_17", - "if_else_694", - "if_end_695", - ["access", 3, "switch", 2487, 17], - ["eq", 4, 2, 3, 2487, 17], - ["jump_false", 4, "if_else_701", 2487, 17], - ["load_field", 3, 1, "expression", 2488, 14], - ["move", 29, 3, 2488, 14], - ["load_field", 4, 1, "cases", 2489, 15], - ["move", 42, 4, 2489, 15], - ["access", 4, -1, 2490, 35], - ["get", 7, 97, 1, 2490, 20], - ["frame", 8, 7, 2, 2490, 20], - ["setarg", 8, 1, 3, 2490, 20], - ["setarg", 8, 2, 4, 2490, 20], - ["invoke", 8, 3, 2490, 20], - ["move", 43, 3, 2490, 20], - ["access", 3, "switch_end", 2491, 29], - ["get", 4, 49, 1, 2491, 19], - ["frame", 7, 4, 1, 2491, 19], - ["stone_text", 3], - ["setarg", 7, 1, 3, 2491, 19], - ["invoke", 7, 3, 2491, 19], - ["move", 17, 3, 2491, 19], - ["null", 44, 2492, 23], - ["get", 4, 22, 1, 2493, 19], - ["move", 20, 4, 2493, 19], - ["put", 3, 22, 1, 2494, 22], - ["array", 3, 0, 2496, 21], - ["move", 45, 3, 2496, 21], - ["access", 11, 0, 2497, 12], - "while_start_703", - ["length", 3, 42, 2498, 26], - ["lt", 4, 11, 3, 2498, 26], - ["jump_false", 4, "while_end_704", 2498, 26], - ["load_index", 3, 42, 11, 2499, 27], - ["move", 46, 3, 2499, 27], - ["load_field", 4, 3, "kind", 2500, 21], - ["move", 47, 4, 2500, 21], - ["access", 3, "default", 2501, 26], - ["eq", 7, 4, 3, 2501, 26], - ["jump_false", 7, "if_else_705", 2501, 26], - ["access", 3, "switch_default", 2502, 37], - ["get", 4, 49, 1, 2502, 27], - ["frame", 7, 4, 1, 2502, 27], - ["stone_text", 3], - ["setarg", 7, 1, 3, 2502, 27], - ["invoke", 7, 3, 2502, 27], - ["move", 44, 3, 2502, 27], - ["is_array", 3, 45, 2503, 29], - ["jump_false", 3, "push_err_707", 2503, 29], - ["push", 45, 44, 2503, 29], - ["jump", "push_done_708", 2503, 29], - "push_err_707", + ["access", 4, "function", 2839, 17], + ["eq", 7, 2, 4, 2839, 17], + ["jump_false", 7, "if_else_686", 2839, 17], + ["load_field", 4, 1, "name", 2840, 14], + ["move", 5, 4, 2840, 14], + ["null", 7, 2841, 19], + ["ne", 9, 4, 7, 2841, 19], + ["jump_false", 9, "if_else_688", 2841, 19], + ["get", 4, 115, 1, 2842, 16], + ["frame", 7, 4, 1, 2842, 16], + ["setarg", 7, 1, 1, 2842, 16], + ["invoke", 7, 4, 2842, 16], + ["move", 54, 4, 2842, 16], + ["get", 4, 21, 1, 2843, 19], + ["move", 55, 4, 2843, 19], + ["get", 4, 21, 1, 2844, 26], + ["access", 7, 1, 2844, 43], + ["is_num", 9, 4, 2844, 43], + ["jump_false", 9, "num_err_636", 2844, 43], + ["add", 3, 4, 7, 2844, 43], + ["put", 3, 21, 1, 2844, 43], + ["get", 3, 12, 1, 2845, 14], + ["is_array", 4, 3, 2845, 27], + ["jump_false", 4, "push_err_690", 2845, 27], + ["push", 3, 54, 2845, 27], + ["jump", "push_done_691", 2845, 27], + "push_err_690", [ "access", 3, @@ -12335,359 +13280,89 @@ "kind": "name", "make": "intrinsic" }, - 2503, - 29 - ], - ["access", 4, "error", 2503, 29], - ["access", 7, "cannot push: target must be an array", 2503, 29], - ["array", 8, 0, 2503, 29], - ["stone_text", 7], - ["push", 8, 7, 2503, 29], - ["frame", 7, 3, 2, 2503, 29], - ["null", 3, 2503, 29], - ["setarg", 7, 0, 3, 2503, 29], - ["stone_text", 4], - ["setarg", 7, 1, 4, 2503, 29], - ["setarg", 7, 2, 8, 2503, 29], - ["invoke", 7, 3, 2503, 29], - ["disrupt", 2503, 29], - "push_done_708", - ["jump", "if_end_706", 2503, 29], - "if_else_705", - ["access", 3, "switch_case", 2505, 34], - ["get", 4, 49, 1, 2505, 24], - ["frame", 7, 4, 1, 2505, 24], - ["stone_text", 3], - ["setarg", 7, 1, 3, 2505, 24], - ["invoke", 7, 3, 2505, 24], - ["move", 48, 3, 2505, 24], - ["load_field", 4, 46, "expression", 2506, 23], - ["move", 49, 4, 2506, 23], - ["access", 7, -1, 2507, 42], - ["get", 8, 97, 1, 2507, 22], - ["frame", 9, 8, 2, 2507, 22], - ["setarg", 9, 1, 4, 2507, 22], - ["setarg", 9, 2, 7, 2507, 22], - ["invoke", 9, 7, 2507, 22], - ["move", 50, 7, 2507, 22], - ["get", 8, 44, 1, 2508, 22], - ["frame", 9, 8, 0, 2508, 22], - ["invoke", 9, 8, 2508, 22], - ["move", 51, 8, 2508, 22], - ["null", 9, 2509, 20], - ["put", 9, 38, 1, 2509, 20], - ["put", 4, 39, 1, 2510, 20], - ["access", 4, "eq", 2511, 22], - ["get", 9, 77, 1, 2511, 11], - ["frame", 10, 9, 4, 2511, 11], - ["stone_text", 4], - ["setarg", 10, 1, 4, 2511, 11], - ["setarg", 10, 2, 8, 2511, 11], - ["setarg", 10, 3, 43, 2511, 11], - ["setarg", 10, 4, 7, 2511, 11], - ["invoke", 10, 4, 2511, 11], - ["access", 4, "jump_true", 2512, 26], - ["get", 7, 64, 1, 2512, 11], - ["frame", 9, 7, 3, 2512, 11], - ["stone_text", 4], - ["setarg", 9, 1, 4, 2512, 11], - ["setarg", 9, 2, 8, 2512, 11], - ["setarg", 9, 3, 3, 2512, 11], - ["invoke", 9, 3, 2512, 11], - ["is_array", 3, 45, 2513, 29], - ["jump_false", 3, "push_err_709", 2513, 29], - ["push", 45, 48, 2513, 29], - ["jump", "push_done_710", 2513, 29], - "push_err_709", - [ - "access", - 3, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 2513, - 29 - ], - ["access", 4, "error", 2513, 29], - ["access", 7, "cannot push: target must be an array", 2513, 29], - ["array", 8, 0, 2513, 29], - ["stone_text", 7], - ["push", 8, 7, 2513, 29], - ["frame", 7, 3, 2, 2513, 29], - ["null", 3, 2513, 29], - ["setarg", 7, 0, 3, 2513, 29], - ["stone_text", 4], - ["setarg", 7, 1, 4, 2513, 29], - ["setarg", 7, 2, 8, 2513, 29], - ["invoke", 7, 3, 2513, 29], - ["disrupt", 2513, 29], - "push_done_710", - "if_end_706", - ["access", 3, 1, 2515, 19], - "_nop_tc_37", - "_nop_tc_38", - "_nop_tc_39", - "_nop_tc_40", - ["add", 11, 11, 3, 2515, 19], - ["jump", "num_done_712", 2515, 19], - "num_err_711", - "_nop_ucfg_109", - "_nop_ucfg_110", - "_nop_ucfg_111", - "_nop_ucfg_112", - "_nop_ucfg_113", - "_nop_ucfg_114", - "_nop_ucfg_115", - "_nop_ucfg_116", - "_nop_ucfg_117", - "_nop_ucfg_118", - "_nop_ucfg_119", - "_nop_ucfg_120", - "num_done_712", - ["jump", "while_start_703", 2515, 19], - "while_end_704", - ["null", 3, 2517, 28], - ["ne", 4, 44, 3, 2517, 28], - ["jump_false", 4, "if_else_713", 2517, 28], - ["get", 3, 63, 1, 2518, 9], - ["frame", 4, 3, 1, 2518, 9], - ["setarg", 4, 1, 44, 2518, 9], - ["invoke", 4, 3, 2518, 9], - ["jump", "if_end_714", 2518, 9], - "if_else_713", - ["get", 3, 63, 1, 2520, 9], - ["frame", 4, 3, 1, 2520, 9], - ["setarg", 4, 1, 17, 2520, 9], - ["invoke", 4, 3, 2520, 9], - "if_end_714", - ["access", 11, 0, 2523, 12], - "while_start_715", - ["length", 3, 42, 2524, 26], - ["lt", 4, 11, 3, 2524, 26], - ["jump_false", 4, "while_end_716", 2524, 26], - ["load_index", 3, 45, 11, 2525, 32], - ["get", 4, 52, 1, 2525, 9], - ["frame", 7, 4, 1, 2525, 9], - ["setarg", 7, 1, 3, 2525, 9], - ["invoke", 7, 3, 2525, 9], - ["load_index", 3, 42, 11, 2526, 28], - ["load_field", 4, 3, "statements", 2526, 28], - ["move", 52, 4, 2526, 28], - ["access", 53, 0, 2527, 14], - "while_start_717", - ["length", 3, 52, 2528, 28], - ["lt", 4, 53, 3, 2528, 28], - ["jump_false", 4, "while_end_718", 2528, 28], - ["load_index", 3, 52, 53, 2529, 36], - ["get", 4, 104, 1, 2529, 11], - ["frame", 7, 4, 1, 2529, 11], - ["setarg", 7, 1, 3, 2529, 11], - ["invoke", 7, 3, 2529, 11], - ["access", 3, 1, 2530, 21], - "_nop_tc_41", - "_nop_tc_42", - "_nop_tc_43", - "_nop_tc_44", - ["add", 53, 53, 3, 2530, 21], - ["jump", "num_done_720", 2530, 21], - "num_err_719", - "_nop_ucfg_121", - "_nop_ucfg_122", - "_nop_ucfg_123", - "_nop_ucfg_124", - "_nop_ucfg_125", - "_nop_ucfg_126", - "_nop_ucfg_127", - "_nop_ucfg_128", - "_nop_ucfg_129", - "_nop_ucfg_130", - "_nop_ucfg_131", - "_nop_ucfg_132", - "num_done_720", - ["jump", "while_start_717", 2530, 21], - "while_end_718", - ["access", 3, 1, 2532, 19], - "_nop_tc_45", - "_nop_tc_46", - "_nop_tc_47", - "_nop_tc_48", - ["add", 11, 11, 3, 2532, 19], - ["jump", "num_done_722", 2532, 19], - "num_err_721", - "_nop_ucfg_133", - "_nop_ucfg_134", - "_nop_ucfg_135", - "_nop_ucfg_136", - "_nop_ucfg_137", - "_nop_ucfg_138", - "_nop_ucfg_139", - "_nop_ucfg_140", - "_nop_ucfg_141", - "_nop_ucfg_142", - "_nop_ucfg_143", - "_nop_ucfg_144", - "num_done_722", - ["jump", "while_start_715", 2532, 19], - "while_end_716", - ["get", 3, 52, 1, 2534, 7], - ["frame", 4, 3, 1, 2534, 7], - ["setarg", 4, 1, 17, 2534, 7], - ["invoke", 4, 3, 2534, 7], - ["put", 20, 22, 1, 2535, 22], - ["null", 3, 2536, 14], - ["return", 3, 2536, 14], - "_nop_ur_18", - "if_else_701", - "if_end_702", - ["access", 3, "function", 2539, 17], - ["eq", 4, 2, 3, 2539, 17], - ["jump_false", 4, "if_else_723", 2539, 17], - ["load_field", 3, 1, "name", 2540, 14], - ["move", 5, 3, 2540, 14], - ["null", 4, 2541, 19], - ["ne", 7, 3, 4, 2541, 19], - ["jump_false", 7, "if_else_725", 2541, 19], - ["get", 3, 105, 1, 2542, 16], - ["frame", 4, 3, 1, 2542, 16], - ["setarg", 4, 1, 1, 2542, 16], - ["invoke", 4, 3, 2542, 16], - ["move", 54, 3, 2542, 16], - ["get", 3, 21, 1, 2543, 19], - ["move", 55, 3, 2543, 19], - ["get", 3, 21, 1, 2544, 26], - ["access", 4, 1, 2544, 43], - ["is_num", 7, 3, 2544, 43], - ["jump_false", 7, "num_err_727", 2544, 43], - "_nop_tc_49", - "_nop_tc_50", - ["add", 7, 3, 4, 2544, 43], - ["jump", "num_done_728", 2544, 43], - "num_err_727", - [ - "access", - 3, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 2544, - 43 - ], - ["access", 4, "error", 2544, 43], - ["access", 8, "cannot apply '+': operands must be numbers", 2544, 43], - ["array", 9, 0, 2544, 43], - ["stone_text", 8], - ["push", 9, 8, 2544, 43], - ["frame", 8, 3, 2, 2544, 43], - ["null", 3, 2544, 43], - ["setarg", 8, 0, 3, 2544, 43], - ["stone_text", 4], - ["setarg", 8, 1, 4, 2544, 43], - ["setarg", 8, 2, 9, 2544, 43], - ["invoke", 8, 3, 2544, 43], - ["disrupt", 2544, 43], - "num_done_728", - ["put", 7, 21, 1, 2544, 43], - ["get", 3, 12, 1, 2545, 14], - ["is_array", 4, 3, 2545, 27], - ["jump_false", 4, "push_err_729", 2545, 27], - ["push", 3, 54, 2545, 27], - ["jump", "push_done_730", 2545, 27], - "push_err_729", - [ - "access", - 3, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 2545, + 2845, 27 ], - ["access", 4, "error", 2545, 27], - ["access", 7, "cannot push: target must be an array", 2545, 27], - ["array", 8, 0, 2545, 27], + ["access", 4, "error", 2845, 27], + ["access", 7, "cannot push: target must be an array", 2845, 27], + ["array", 8, 0, 2845, 27], ["stone_text", 7], - ["push", 8, 7, 2545, 27], - ["frame", 7, 3, 2, 2545, 27], - ["null", 3, 2545, 27], - ["setarg", 7, 0, 3, 2545, 27], + ["push", 8, 7, 2845, 27], + ["frame", 7, 3, 2, 2845, 27], + ["null", 3, 2845, 27], + ["setarg", 7, 0, 3, 2845, 27], ["stone_text", 4], - ["setarg", 7, 1, 4, 2545, 27], - ["setarg", 7, 2, 8, 2545, 27], - ["invoke", 7, 3, 2545, 27], - ["disrupt", 2545, 27], - "push_done_730", - ["get", 3, 46, 1, 2546, 22], - ["frame", 4, 3, 1, 2546, 22], - ["setarg", 4, 1, 5, 2546, 22], - ["invoke", 4, 3, 2546, 22], - ["move", 6, 3, 2546, 22], - ["get", 4, 44, 1, 2547, 16], - ["frame", 5, 4, 0, 2547, 16], - ["invoke", 5, 4, 2547, 16], - ["move", 56, 4, 2547, 16], - ["access", 5, "function", 2548, 16], - ["get", 7, 55, 1, 2548, 9], - ["frame", 8, 7, 3, 2548, 9], + ["setarg", 7, 1, 4, 2845, 27], + ["setarg", 7, 2, 8, 2845, 27], + ["invoke", 7, 3, 2845, 27], + ["disrupt", 2845, 27], + "push_done_691", + ["get", 3, 48, 1, 2846, 22], + ["frame", 4, 3, 1, 2846, 22], + ["setarg", 4, 1, 5, 2846, 22], + ["invoke", 4, 3, 2846, 22], + ["move", 6, 3, 2846, 22], + ["get", 4, 46, 1, 2847, 16], + ["frame", 5, 4, 0, 2847, 16], + ["invoke", 5, 4, 2847, 16], + ["move", 56, 4, 2847, 16], + ["access", 5, "function", 2848, 16], + ["get", 7, 57, 1, 2848, 9], + ["frame", 8, 7, 3, 2848, 9], ["stone_text", 5], - ["setarg", 8, 1, 5, 2548, 9], - ["setarg", 8, 2, 4, 2548, 9], - ["setarg", 8, 3, 55, 2548, 9], - ["invoke", 8, 4, 2548, 9], - ["access", 4, 0, 2549, 27], - ["ge", 5, 3, 4, 2549, 27], - ["jump_false", 5, "if_else_731", 2549, 27], - ["access", 3, "move", 2550, 18], - ["get", 4, 55, 1, 2550, 11], - ["frame", 5, 4, 3, 2550, 11], + ["setarg", 8, 1, 5, 2848, 9], + ["setarg", 8, 2, 4, 2848, 9], + ["setarg", 8, 3, 55, 2848, 9], + ["invoke", 8, 4, 2848, 9], + ["access", 4, 0, 2849, 27], + ["ge", 5, 3, 4, 2849, 27], + ["jump_false", 5, "if_else_692", 2849, 27], + ["access", 3, "move", 2850, 18], + ["get", 4, 57, 1, 2850, 11], + ["frame", 5, 4, 3, 2850, 11], ["stone_text", 3], - ["setarg", 5, 1, 3, 2550, 11], - ["setarg", 5, 2, 6, 2550, 11], - ["setarg", 5, 3, 56, 2550, 11], - ["invoke", 5, 3, 2550, 11], - ["jump", "if_end_732", 2550, 11], - "if_else_731", - "if_end_732", - ["jump", "if_end_726", 2550, 11], - "if_else_725", - "if_end_726", - ["null", 3, 2553, 14], - ["return", 3, 2553, 14], + ["setarg", 5, 1, 3, 2850, 11], + ["setarg", 5, 2, 6, 2850, 11], + ["setarg", 5, 3, 56, 2850, 11], + ["invoke", 5, 3, 2850, 11], + ["jump", "if_end_693", 2850, 11], + "if_else_692", + "if_end_693", + ["jump", "if_end_689", 2850, 11], + "if_else_688", + "if_end_689", + ["null", 3, 2853, 14], + ["return", 3, 2853, 14], "_nop_ur_19", - "if_else_723", - "if_end_724", - ["access", 3, "call", 2556, 17], - ["eq", 4, 2, 3, 2556, 17], - ["jump_false", 4, "if_else_733", 2556, 17], - ["load_field", 2, 1, "expression", 2557, 16], - ["access", 3, -1, 2557, 33], - ["get", 4, 97, 1, 2557, 7], - ["frame", 5, 4, 2, 2557, 7], - ["setarg", 5, 1, 2, 2557, 7], - ["setarg", 5, 2, 3, 2557, 7], - ["invoke", 5, 2, 2557, 7], - ["null", 2, 2558, 14], - ["return", 2, 2558, 14], + "if_else_686", + "if_end_687", + ["access", 3, "call", 2856, 17], + ["eq", 4, 2, 3, 2856, 17], + ["jump_false", 4, "if_else_694", 2856, 17], + ["load_field", 2, 1, "expression", 2857, 16], + ["access", 3, -1, 2857, 33], + ["get", 4, 101, 1, 2857, 7], + ["frame", 5, 4, 2, 2857, 7], + ["setarg", 5, 1, 2, 2857, 7], + ["setarg", 5, 2, 3, 2857, 7], + ["invoke", 5, 2, 2857, 7], + ["null", 2, 2858, 14], + ["return", 2, 2858, 14], "_nop_ur_20", - "if_else_733", - "if_end_734", - ["access", 2, -1, 2561, 20], - ["get", 3, 97, 1, 2561, 5], - ["frame", 4, 3, 2, 2561, 5], - ["setarg", 4, 1, 1, 2561, 5], - ["setarg", 4, 2, 2, 2561, 5], - ["invoke", 4, 2, 2561, 5], - ["null", 2, 2562, 12], - ["return", 2, 2562, 12], + "if_else_694", + "if_end_695", + ["access", 2, -1, 2861, 20], + ["get", 3, 101, 1, 2861, 5], + ["frame", 4, 3, 2, 2861, 5], + ["setarg", 4, 1, 1, 2861, 5], + ["setarg", 4, 2, 2, 2861, 5], + ["invoke", 4, 2, 2861, 5], + ["null", 2, 2862, 12], + ["return", 2, 2862, 12], "_nop_ur_21", "_nop_ur_22" ], - "_write_types": [null, null, "int", "int", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "null", "bool", "null", null, null, null, null, "null", "bool", "null", "text", "bool", "bool", "text", "bool", null, null, null, null, null, null, null, "bool", "bool", "bool", "null", "bool", null, "int", null, null, null, "int", "bool", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, "null", "null", "bool", null, null, null, "int", "bool", "bool", "bool", "text", null, null, null, "int", "bool", null, null, null, "null", "text", "bool", "bool", "text", "bool", null, "int", "bool", null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "null", "text", "bool", null, "int", "bool", null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "null", "text", "bool", null, null, "text", null, "null", "bool", null, "text", null, null, null, "text", null, null, null, "int", null, null, null, "text", null, null, null, "int", "bool", null, null, null, null, "int", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "null", "bool", "int", "bool", null, null, null, null, "int", null, null, null, null, null, null, null, null, null, null, null, null, "null", "text", "bool", null, null, null, null, null, "null", "null", "text", "bool", null, null, "text", null, null, null, "text", null, null, null, null, null, null, "null", "bool", "record", null, null, "null", null, null, null, "int", null, null, null, "text", null, null, null, "int", "bool", null, null, null, null, "int", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "null", "text", "bool", null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, "null", "bool", "record", null, null, "null", null, null, null, "int", "bool", null, null, null, null, "int", null, null, null, null, null, null, null, null, null, null, null, null, "int", null, null, null, "text", null, null, null, null, null, null, "null", "text", "bool", null, null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, "null", "bool", "record", null, null, "null", "null", "bool", null, "text", "bool", "bool", "text", "bool", null, null, null, "int", null, null, null, null, null, null, "null", "bool", "int", null, null, null, "text", null, null, null, "int", "bool", null, null, null, null, "int", null, null, null, null, null, null, null, null, null, null, null, null, "null", "bool", "int", null, null, null, null, null, null, null, null, null, "null", "text", "bool", null, "null", "bool", "int", null, null, null, null, "bool", "bool", "bool", null, "bool", null, null, "int", "int", "int", null, null, null, null, null, null, null, null, null, null, "bool", "bool", "int", null, "text", "bool", "text", "int", "text", null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, "null", "text", "bool", null, "null", "bool", "bool", null, "text", "bool", "null", null, null, "array", "null", "bool", "int", "int", "int", "bool", null, "int", null, null, null, "bool", null, "text", "text", "array", null, null, "null", "int", null, null, null, null, null, null, null, null, null, null, "text", "bool", null, null, "int", null, null, null, null, null, null, "int", null, null, null, null, null, null, "null", "text", "bool", "text", null, null, null, "null", "text", "bool", null, "null", "bool", "bool", null, null, null, "null", "bool", null, null, null, null, null, null, null, null, "null", "bool", null, null, null, null, "null", "text", "bool", null, "null", "bool", "bool", null, null, null, "null", "bool", null, null, null, null, null, null, null, null, "null", "bool", null, null, null, null, "null", "text", "bool", null, null, "int", null, null, null, "text", null, null, null, null, "array", "int", "bool", null, null, "text", "bool", "text", null, null, null, "bool", null, "text", "text", "array", null, null, "null", "text", null, null, null, null, "int", null, null, null, null, null, null, "null", "text", null, null, null, "text", null, null, null, "bool", null, "text", "text", "array", null, null, "null", "int", null, null, null, null, null, null, null, null, null, "null", "bool", null, null, null, null, null, null, "int", "bool", null, null, null, null, null, null, "int", "bool", null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, null, null, null, "null", "text", "bool", null, "null", "bool", null, null, null, null, null, "int", "num", "bool", null, null, "text", "text", "array", null, null, "null", null, "bool", null, "text", "text", "array", null, null, "null", null, null, null, null, null, null, "text", null, null, null, "int", "bool", "text", null, null, null, "null", "text", "bool", null, "int", null, null, null, "null", "int", null, null, null, "null", null], + "_write_types": [null, null, "int", "int", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "null", "bool", "null", null, null, null, null, "null", "bool", "null", "text", "bool", "bool", "text", "bool", null, null, null, null, null, null, null, "bool", "bool", "bool", "null", "bool", null, "int", null, null, null, "int", "bool", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, "null", "null", "bool", null, null, null, "int", "bool", "bool", "bool", "text", null, null, null, "int", "bool", null, null, null, "null", "text", "bool", "bool", "text", "bool", null, "int", "bool", null, null, null, null, "int", "null", "text", "bool", null, "int", "bool", null, null, null, null, "int", "null", "text", "bool", null, null, "text", null, "null", "bool", null, "text", null, null, null, "text", null, null, null, "int", null, null, null, "text", null, null, null, "int", "bool", null, null, null, null, "int", null, null, null, null, null, null, "null", "bool", "int", "bool", null, null, null, null, "int", null, null, null, "null", "text", "bool", null, null, null, null, null, "null", "null", "text", "bool", null, null, "text", null, null, null, "text", null, null, null, null, null, null, "null", "bool", "record", null, null, "null", null, null, null, "int", null, null, null, "text", null, null, null, "int", "bool", null, null, null, null, "int", null, null, null, null, null, null, "null", "text", "bool", null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, "null", "bool", "record", null, null, "null", null, null, null, "int", "bool", null, null, null, null, "int", null, null, null, "int", null, null, null, "text", null, null, null, null, null, null, "null", "text", "bool", null, null, null, null, "text", null, null, null, "text", null, null, null, "text", null, null, null, null, null, null, "null", "bool", "record", null, null, "null", "null", "bool", null, "text", "bool", "bool", "text", "bool", null, null, null, "int", null, null, null, null, null, null, "null", "bool", "int", null, null, null, "text", null, null, null, "int", "bool", null, null, null, null, "int", null, null, null, "null", "bool", "int", null, null, null, null, null, null, null, null, null, "null", "text", "bool", null, "null", "bool", "int", null, null, null, null, "bool", "bool", "bool", null, "bool", null, null, "int", "int", "int", null, null, "text", "text", "array", null, null, "null", null, "bool", "bool", "int", null, "text", "bool", "text", "int", "text", null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, "null", "text", "bool", null, "null", "bool", "bool", null, "text", "bool", "null", null, null, "array", "null", "bool", "int", "int", "int", "bool", null, "int", null, null, null, "bool", null, "text", "text", "array", null, null, "null", "int", null, "text", "bool", null, null, "int", null, null, null, null, null, null, "int", null, null, null, null, null, null, "null", "text", "bool", "text", null, null, null, "null", "text", "bool", null, "null", "bool", "bool", null, null, null, "null", "bool", null, null, null, null, null, null, null, null, "null", "bool", null, null, null, null, "null", "text", "bool", null, "null", "bool", "bool", null, null, null, "null", "bool", null, null, null, null, null, null, null, null, "null", "bool", null, null, null, null, "null", "text", "bool", null, null, "int", null, null, null, "text", null, null, null, null, "array", "int", "bool", null, null, "text", "bool", "text", null, null, null, "bool", null, "text", "text", "array", null, null, "null", "text", null, null, null, null, "int", null, null, null, null, null, null, "null", "text", null, null, null, "text", null, null, null, "bool", null, "text", "text", "array", null, null, "null", "int", "null", "bool", null, null, null, null, null, null, "int", "bool", null, null, null, null, null, null, "int", "bool", null, null, null, null, "int", "int", null, null, null, "null", "text", "bool", null, "null", "bool", null, null, null, null, null, "int", "num", "bool", null, "bool", null, "text", "text", "array", null, null, "null", null, null, null, null, null, null, "text", null, null, null, "int", "bool", "text", null, null, null, "null", "text", "bool", null, "int", null, null, null, "null", "int", null, null, null, "null", null], "name": "", "filename": ".cell/packages/core/mcode.cm", "nr_args": 1 @@ -12698,52 +13373,52 @@ "nr_slots": 37, "nr_close_slots": 0, "instructions": [ - ["get", 2, 42, 1, 2567, 17], - ["frame", 3, 2, 0, 2567, 17], - ["invoke", 3, 2, 2567, 17], - ["move", 3, 2, 2567, 17], - ["load_field", 2, 1, "arrow", 2568, 20], - ["true", 4, 2568, 39], - ["eq", 5, 2, 4, 2568, 39], - ["load_field", 2, 1, "function_nr", 2569, 22], - ["move", 4, 2, 2569, 22], - ["load_field", 2, 1, "list", 2570, 18], - ["move", 6, 2, 2570, 18], - ["access", 2, 0, 2571, 21], - ["access", 7, 1, 2572, 22], - ["access", 8, 0, 2573, 14], - ["null", 9, 2574, 17], - ["null", 10, 2575, 22], - ["access", 11, 1, 2576, 14], - ["null", 12, 2577, 24], - ["null", 13, 2578, 21], - ["access", 14, 0, 2579, 24], - ["null", 15, 2580, 19], - ["null", 16, 2581, 14], - ["null", 17, 2582, 17], - ["null", 18, 2583, 20], - ["access", 19, 0, 2584, 19], - ["access", 20, 0, 2585, 22], - ["access", 21, 0, 2586, 16], - ["null", 22, 2587, 17], - ["null", 23, 2588, 16], - ["access", 24, 0, 2589, 21], - ["access", 25, 0, 2590, 28], - ["load_field", 26, 1, "disruption", 2591, 26], - ["move", 27, 26, 2591, 26], - ["null", 26, 2592, 22], - ["load_field", 28, 1, "name", 2593, 19], - ["move", 29, 28, 2593, 19], - ["null", 28, 2594, 18], - ["access", 30, 0, 2595, 23], - ["access", 31, 0, 2596, 22], - ["access", 32, 0, 2597, 25], - ["get", 33, 109, 1, 2599, 10], - ["is_array", 34, 33, 2599, 25], - ["jump_false", 34, "push_err_735", 2599, 25], - ["push", 33, 3, 2599, 25], - ["jump", "push_done_736", 2599, 25], - "push_err_735", + ["get", 2, 44, 1, 2867, 17], + ["frame", 3, 2, 0, 2867, 17], + ["invoke", 3, 2, 2867, 17], + ["move", 3, 2, 2867, 17], + ["load_field", 2, 1, "arrow", 2868, 20], + ["true", 4, 2868, 39], + ["eq", 5, 2, 4, 2868, 39], + ["load_field", 2, 1, "function_nr", 2869, 22], + ["move", 4, 2, 2869, 22], + ["load_field", 2, 1, "list", 2870, 18], + ["move", 6, 2, 2870, 18], + ["access", 2, 0, 2871, 21], + ["access", 7, 1, 2872, 22], + ["access", 8, 0, 2873, 14], + ["null", 9, 2874, 17], + ["null", 10, 2875, 22], + ["access", 11, 1, 2876, 14], + ["null", 12, 2877, 24], + ["null", 13, 2878, 21], + ["access", 14, 0, 2879, 24], + ["null", 15, 2880, 19], + ["null", 16, 2881, 14], + ["null", 17, 2882, 17], + ["null", 18, 2883, 20], + ["access", 19, 0, 2884, 19], + ["access", 20, 0, 2885, 22], + ["access", 21, 0, 2886, 16], + ["null", 22, 2887, 17], + ["null", 23, 2888, 16], + ["access", 24, 0, 2889, 21], + ["access", 25, 0, 2890, 28], + ["load_field", 26, 1, "disruption", 2891, 26], + ["move", 27, 26, 2891, 26], + ["null", 26, 2892, 22], + ["load_field", 28, 1, "name", 2893, 19], + ["move", 29, 28, 2893, 19], + ["null", 28, 2894, 18], + ["access", 30, 0, 2895, 23], + ["access", 31, 0, 2896, 22], + ["access", 32, 0, 2897, 25], + ["get", 33, 119, 1, 2899, 10], + ["is_array", 34, 33, 2899, 25], + ["jump_false", 34, "push_err_696", 2899, 25], + ["push", 33, 3, 2899, 25], + ["jump", "push_done_697", 2899, 25], + "push_err_696", [ "access", 33, @@ -12752,169 +13427,133 @@ "kind": "name", "make": "intrinsic" }, - 2599, + 2899, 25 ], - ["access", 34, "error", 2599, 25], - ["access", 35, "cannot push: target must be an array", 2599, 25], - ["array", 36, 0, 2599, 25], + ["access", 34, "error", 2899, 25], + ["access", 35, "cannot push: target must be an array", 2899, 25], + ["array", 36, 0, 2899, 25], ["stone_text", 35], - ["push", 36, 35, 2599, 25], - ["frame", 35, 33, 2, 2599, 25], - ["null", 33, 2599, 25], - ["setarg", 35, 0, 33, 2599, 25], + ["push", 36, 35, 2899, 25], + ["frame", 35, 33, 2, 2899, 25], + ["null", 33, 2899, 25], + ["setarg", 35, 0, 33, 2899, 25], ["stone_text", 34], - ["setarg", 35, 1, 34, 2599, 25], - ["setarg", 35, 2, 36, 2599, 25], - ["invoke", 35, 33, 2599, 25], - ["disrupt", 2599, 25], - "push_done_736", - ["array", 33, 0, 2601, 22], - ["put", 33, 2, 1, 2601, 22], - ["array", 33, 0, 2602, 14], - ["put", 33, 13, 1, 2602, 14], - ["array", 33, 0, 2603, 25], - ["put", 33, 29, 1, 2603, 25], + ["setarg", 35, 1, 34, 2899, 25], + ["setarg", 35, 2, 36, 2899, 25], + ["invoke", 35, 33, 2899, 25], + ["disrupt", 2899, 25], + "push_done_697", + ["array", 33, 0, 2901, 22], + ["put", 33, 2, 1, 2901, 22], + ["array", 33, 0, 2902, 14], + ["put", 33, 13, 1, 2902, 14], + ["array", 33, 0, 2903, 25], + ["put", 33, 29, 1, 2903, 25], ["record", 33, 0], - ["put", 33, 35, 1, 2604, 20], - ["null", 33, 2605, 20], - ["put", 33, 22, 1, 2605, 20], - ["null", 33, 2606, 23], - ["put", 33, 23, 1, 2606, 23], + ["put", 33, 35, 1, 2904, 20], + ["null", 33, 2905, 23], + ["put", 33, 34, 1, 2905, 23], + ["false", 33, 2906, 25], + ["put", 33, 36, 1, 2906, 25], + ["null", 33, 2907, 20], + ["put", 33, 22, 1, 2907, 20], + ["null", 33, 2908, 23], + ["put", 33, 23, 1, 2908, 23], ["record", 33, 0], - ["put", 33, 25, 1, 2607, 19], - ["put", 5, 26, 1, 2609, 18], - ["null", 33, 2610, 42], - ["ne", 34, 27, 33, 2610, 42], - ["move", 33, 34, 2610, 42], - ["jump_false", 34, "and_end_737", 2610, 42], - ["is_array", 34, 27, 2610, 59], - ["move", 33, 34, 2610, 59], - "and_end_737", - ["put", 33, 33, 1, 2610, 59], - ["null", 33, 2612, 35], - ["ne", 34, 4, 33, 2612, 35], - ["jump_false", 34, "tern_else_738", 2612, 35], - ["move", 33, 4, 2612, 42], - ["jump", "tern_end_739", 2612, 42], - "tern_else_738", - ["access", 4, 0, 2612, 55], - ["move", 33, 4, 2612, 55], - "tern_end_739", - ["put", 33, 27, 1, 2612, 55], - ["null", 4, 2615, 19], - ["eq", 33, 6, 4, 2615, 19], - ["jump_false", 33, "if_else_740", 2615, 19], - ["load_field", 4, 1, "parameters", 2616, 16], - ["move", 6, 4, 2616, 16], - ["jump", "if_end_741", 2616, 16], - "if_else_740", - "if_end_741", - ["null", 4, 2618, 27], - ["ne", 33, 6, 4, 2618, 27], - ["jump_false", 33, "tern_else_742", 2618, 27], - ["length", 4, 6, 2618, 41], - ["move", 33, 4, 2618, 41], - ["jump", "tern_end_743", 2618, 41], - "tern_else_742", - ["access", 4, 0, 2618, 51], - ["move", 33, 4, 2618, 51], - "tern_end_743", - ["move", 2, 33, 2618, 51], - ["put", 33, 15, 1, 2619, 17], - ["access", 4, 0, 2620, 19], - ["put", 4, 14, 1, 2620, 19], - ["access", 4, 0, 2621, 24], - ["put", 4, 16, 1, 2621, 24], - ["access", 4, 0, 2622, 24], - ["put", 4, 17, 1, 2622, 24], - ["access", 7, 1, 2624, 18], - ["access", 8, 0, 2625, 10], - "while_start_744", - ["lt", 4, 8, 2, 2626, 17], - ["jump_false", 4, "while_end_745", 2626, 17], - ["load_index", 4, 6, 8, 2627, 22], - ["move", 9, 4, 2627, 22], - ["load_field", 33, 4, "name", 2628, 20], - ["move", 10, 33, 2628, 20], - ["null", 4, 2629, 25], - ["eq", 34, 33, 4, 2629, 25], - ["move", 4, 34, 2629, 25], - ["jump_false", 34, "and_end_748", 2629, 25], - ["is_text", 33, 9, 2629, 41], - ["move", 4, 33, 2629, 41], - "and_end_748", - ["jump_false", 4, "if_else_746", 2629, 41], - ["move", 10, 9, 2630, 22], - ["jump", "if_end_747", 2630, 22], - "if_else_746", - "if_end_747", - ["null", 4, 2632, 25], - ["ne", 33, 10, 4, 2632, 25], - ["jump_false", 33, "if_else_749", 2632, 25], - ["true", 4, 2633, 41], - ["get", 33, 45, 1, 2633, 9], - ["frame", 34, 33, 3, 2633, 9], - ["setarg", 34, 1, 10, 2633, 9], - ["setarg", 34, 2, 7, 2633, 9], - ["setarg", 34, 3, 4, 2633, 9], - ["invoke", 34, 4, 2633, 9], - ["access", 4, 1, 2634, 35], - "_nop_tc_1", - "_nop_tc_2", - "_nop_tc_3", - "_nop_tc_4", - ["add", 7, 7, 4, 2634, 35], - ["jump", "num_done_752", 2634, 35], - "num_err_751", - "_nop_ucfg_1", - "_nop_ucfg_2", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "num_done_752", - ["jump", "if_end_750", 2634, 35], - "if_else_749", - "if_end_750", - ["access", 4, 1, 2636, 17], - "_nop_tc_5", - "_nop_tc_6", - "_nop_tc_7", - "_nop_tc_8", - ["add", 8, 8, 4, 2636, 17], - ["jump", "num_done_754", 2636, 17], - "num_err_753", - "_nop_ucfg_13", - "_nop_ucfg_14", - "_nop_ucfg_15", - "_nop_ucfg_16", - "_nop_ucfg_17", - "_nop_ucfg_18", - "_nop_ucfg_19", - "_nop_ucfg_20", - "_nop_ucfg_21", - "_nop_ucfg_22", - "_nop_ucfg_23", - "_nop_ucfg_24", - "num_done_754", - ["jump", "while_start_744", 2636, 17], - "while_end_745", - ["access", 4, 1, 2639, 24], - ["get", 7, 15, 1, 2639, 28], - "_nop_tc_9", - "_nop_tc_10", - ["is_num", 10, 7, 2639, 28], - ["jump_false", 10, "num_err_755", 2639, 28], - ["add", 10, 4, 7, 2639, 28], - ["jump", "num_done_756", 2639, 28], - "num_err_755", + ["put", 33, 25, 1, 2909, 19], + ["put", 5, 26, 1, 2911, 18], + ["null", 33, 2912, 42], + ["ne", 34, 27, 33, 2912, 42], + ["move", 33, 34, 2912, 42], + ["jump_false", 34, "and_end_698", 2912, 42], + ["is_array", 34, 27, 2912, 59], + ["move", 33, 34, 2912, 59], + "and_end_698", + ["put", 33, 33, 1, 2912, 59], + ["null", 33, 2914, 35], + ["ne", 34, 4, 33, 2914, 35], + ["jump_false", 34, "tern_else_699", 2914, 35], + ["move", 33, 4, 2914, 42], + ["jump", "tern_end_700", 2914, 42], + "tern_else_699", + ["access", 4, 0, 2914, 55], + ["move", 33, 4, 2914, 55], + "tern_end_700", + ["put", 33, 27, 1, 2914, 55], + ["null", 4, 2917, 19], + ["eq", 33, 6, 4, 2917, 19], + ["jump_false", 33, "if_else_701", 2917, 19], + ["load_field", 4, 1, "parameters", 2918, 16], + ["move", 6, 4, 2918, 16], + ["jump", "if_end_702", 2918, 16], + "if_else_701", + "if_end_702", + ["null", 4, 2920, 27], + ["ne", 33, 6, 4, 2920, 27], + ["jump_false", 33, "tern_else_703", 2920, 27], + ["length", 4, 6, 2920, 41], + ["move", 33, 4, 2920, 41], + ["jump", "tern_end_704", 2920, 41], + "tern_else_703", + ["access", 4, 0, 2920, 51], + ["move", 33, 4, 2920, 51], + "tern_end_704", + ["move", 2, 33, 2920, 51], + ["put", 33, 15, 1, 2921, 17], + ["access", 4, 0, 2922, 19], + ["put", 4, 14, 1, 2922, 19], + ["access", 4, 0, 2923, 24], + ["put", 4, 16, 1, 2923, 24], + ["access", 4, 0, 2924, 24], + ["put", 4, 17, 1, 2924, 24], + ["access", 7, 1, 2926, 18], + ["access", 8, 0, 2927, 10], + "while_start_705", + ["lt", 4, 8, 2, 2928, 17], + ["jump_false", 4, "while_end_706", 2928, 17], + ["load_index", 4, 6, 8, 2929, 22], + ["move", 9, 4, 2929, 22], + ["load_field", 33, 4, "name", 2930, 20], + ["move", 10, 33, 2930, 20], + ["null", 4, 2931, 25], + ["eq", 34, 33, 4, 2931, 25], + ["move", 4, 34, 2931, 25], + ["jump_false", 34, "and_end_709", 2931, 25], + ["is_text", 33, 9, 2931, 41], + ["move", 4, 33, 2931, 41], + "and_end_709", + ["jump_false", 4, "if_else_707", 2931, 41], + ["move", 10, 9, 2932, 22], + ["jump", "if_end_708", 2932, 22], + "if_else_707", + "if_end_708", + ["null", 4, 2934, 25], + ["ne", 33, 10, 4, 2934, 25], + ["jump_false", 33, "if_else_710", 2934, 25], + ["true", 4, 2935, 41], + ["get", 33, 47, 1, 2935, 9], + ["frame", 34, 33, 3, 2935, 9], + ["setarg", 34, 1, 10, 2935, 9], + ["setarg", 34, 2, 7, 2935, 9], + ["setarg", 34, 3, 4, 2935, 9], + ["invoke", 34, 4, 2935, 9], + ["access", 4, 1, 2936, 35], + ["add", 7, 7, 4, 2936, 35], + ["jump", "if_end_711", 2936, 35], + "if_else_710", + "if_end_711", + ["access", 4, 1, 2938, 17], + ["add", 8, 8, 4, 2938, 17], + ["jump", "while_start_705", 2938, 17], + "while_end_706", + ["access", 4, 1, 2941, 24], + ["get", 7, 15, 1, 2941, 28], + ["is_num", 10, 7, 2941, 28], + ["jump_false", 10, "num_err_712", 2941, 28], + ["add", 10, 4, 7, 2941, 28], + ["jump", "num_done_713", 2941, 28], + "num_err_712", [ "access", 4, @@ -12923,290 +13562,168 @@ "kind": "name", "make": "intrinsic" }, - 2639, + 2941, 28 ], - ["access", 7, "error", 2639, 28], - ["access", 33, "cannot apply '+': operands must be numbers", 2639, 28], - ["array", 34, 0, 2639, 28], + ["access", 7, "error", 2941, 28], + ["access", 33, "operands must be numbers", 2941, 28], + ["array", 34, 0, 2941, 28], ["stone_text", 33], - ["push", 34, 33, 2639, 28], - ["frame", 33, 4, 2, 2639, 28], - ["null", 4, 2639, 28], - ["setarg", 33, 0, 4, 2639, 28], + ["push", 34, 33, 2941, 28], + ["frame", 33, 4, 2, 2941, 28], + ["null", 4, 2941, 28], + ["setarg", 33, 0, 4, 2941, 28], ["stone_text", 7], - ["setarg", 33, 1, 7, 2639, 28], - ["setarg", 33, 2, 34, 2639, 28], - ["invoke", 33, 4, 2639, 28], - ["disrupt", 2639, 28], - "num_done_756", - ["put", 10, 18, 1, 2639, 28], - ["access", 4, 1, 2640, 18], - ["get", 7, 15, 1, 2640, 22], - "_nop_tc_11", - "_nop_tc_12", - ["is_num", 10, 7, 2640, 22], - ["jump_false", 10, "num_err_757", 2640, 22], - ["add", 10, 4, 7, 2640, 22], - ["jump", "num_done_758", 2640, 22], - "num_err_757", - [ - "access", - 4, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 2640, - 22 - ], - ["access", 7, "error", 2640, 22], - ["access", 33, "cannot apply '+': operands must be numbers", 2640, 22], - ["array", 34, 0, 2640, 22], - ["stone_text", 33], - ["push", 34, 33, 2640, 22], - ["frame", 33, 4, 2, 2640, 22], - ["null", 4, 2640, 22], - ["setarg", 33, 0, 4, 2640, 22], + ["setarg", 33, 1, 7, 2941, 28], + ["setarg", 33, 2, 34, 2941, 28], + ["invoke", 33, 4, 2941, 28], + ["disrupt", 2941, 28], + "num_done_713", + ["put", 10, 18, 1, 2941, 28], + ["access", 4, 1, 2942, 18], + ["get", 7, 15, 1, 2942, 22], + ["is_num", 33, 7, 2942, 22], + ["jump_false", 33, "num_err_712", 2942, 22], + ["add", 33, 4, 7, 2942, 22], + ["put", 33, 19, 1, 2942, 22], + ["get", 4, 93, 1, 2945, 5], + ["frame", 7, 4, 0, 2945, 5], + ["invoke", 7, 4, 2945, 5], + ["access", 4, 1, 2947, 24], + ["get", 7, 15, 1, 2947, 28], + ["is_num", 33, 7, 2947, 28], + ["jump_false", 33, "num_err_712", 2947, 28], + ["add", 33, 4, 7, 2947, 28], + ["get", 4, 17, 1, 2947, 40], + ["is_num", 7, 4, 2947, 40], + ["jump_false", 7, "num_err_712", 2947, 40], + ["add", 7, 33, 4, 2947, 40], + ["put", 7, 18, 1, 2947, 40], + ["get", 4, 18, 1, 2948, 9], + ["get", 7, 19, 1, 2948, 28], + ["gt", 33, 4, 7, 2948, 28], + ["jump_false", 33, "if_else_714", 2948, 28], + ["get", 4, 18, 1, 2949, 20], + ["put", 4, 19, 1, 2949, 20], + ["jump", "if_end_715", 2949, 20], + "if_else_714", + "if_end_715", + ["jump_false", 5, "if_else_716", 2953, 9], + ["get", 4, 46, 1, 2954, 23], + ["frame", 7, 4, 0, 2954, 23], + ["invoke", 7, 4, 2954, 23], + ["move", 32, 4, 2954, 23], + ["access", 7, "get", 2955, 14], + ["load_field", 33, 3, "this_slot", 2955, 36], + ["access", 34, 1, 2955, 53], + ["get", 35, 58, 1, 2955, 7], + ["frame", 36, 35, 4, 2955, 7], ["stone_text", 7], - ["setarg", 33, 1, 7, 2640, 22], - ["setarg", 33, 2, 34, 2640, 22], - ["invoke", 33, 4, 2640, 22], - ["disrupt", 2640, 22], - "num_done_758", - ["put", 10, 19, 1, 2640, 22], - ["get", 4, 91, 1, 2643, 5], - ["frame", 7, 4, 0, 2643, 5], - ["invoke", 7, 4, 2643, 5], - ["access", 4, 1, 2645, 24], - ["get", 7, 15, 1, 2645, 28], - "_nop_tc_13", - "_nop_tc_14", - ["is_num", 10, 7, 2645, 28], - ["jump_false", 10, "num_err_759", 2645, 28], - ["add", 10, 4, 7, 2645, 28], - ["jump", "num_done_760", 2645, 28], - "num_err_759", - [ - "access", - 4, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 2645, - 28 - ], - ["access", 7, "error", 2645, 28], - ["access", 33, "cannot apply '+': operands must be numbers", 2645, 28], - ["array", 34, 0, 2645, 28], - ["stone_text", 33], - ["push", 34, 33, 2645, 28], - ["frame", 33, 4, 2, 2645, 28], - ["null", 4, 2645, 28], - ["setarg", 33, 0, 4, 2645, 28], - ["stone_text", 7], - ["setarg", 33, 1, 7, 2645, 28], - ["setarg", 33, 2, 34, 2645, 28], - ["invoke", 33, 4, 2645, 28], - ["disrupt", 2645, 28], - "num_done_760", - ["get", 4, 17, 1, 2645, 40], - "_nop_tc_15", - "_nop_tc_16", - ["is_num", 7, 4, 2645, 40], - ["jump_false", 7, "num_err_761", 2645, 40], - ["add", 7, 10, 4, 2645, 40], - ["jump", "num_done_762", 2645, 40], - "num_err_761", - [ - "access", - 4, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 2645, - 40 - ], - ["access", 10, "error", 2645, 40], - ["access", 33, "cannot apply '+': operands must be numbers", 2645, 40], - ["array", 34, 0, 2645, 40], - ["stone_text", 33], - ["push", 34, 33, 2645, 40], - ["frame", 33, 4, 2, 2645, 40], - ["null", 4, 2645, 40], - ["setarg", 33, 0, 4, 2645, 40], - ["stone_text", 10], - ["setarg", 33, 1, 10, 2645, 40], - ["setarg", 33, 2, 34, 2645, 40], - ["invoke", 33, 4, 2645, 40], - ["disrupt", 2645, 40], - "num_done_762", - ["put", 7, 18, 1, 2645, 40], - ["get", 4, 18, 1, 2646, 9], - ["get", 7, 19, 1, 2646, 28], - ["gt", 10, 4, 7, 2646, 28], - ["jump_false", 10, "if_else_763", 2646, 28], - ["get", 4, 18, 1, 2647, 20], - ["put", 4, 19, 1, 2647, 20], - ["jump", "if_end_764", 2647, 20], - "if_else_763", - "if_end_764", - ["jump_false", 5, "if_else_765", 2651, 9], - ["get", 4, 44, 1, 2652, 23], - ["frame", 5, 4, 0, 2652, 23], - ["invoke", 5, 4, 2652, 23], - ["move", 32, 4, 2652, 23], - ["access", 5, "get", 2653, 14], - ["load_field", 7, 3, "this_slot", 2653, 36], - ["access", 10, 1, 2653, 53], - ["get", 32, 56, 1, 2653, 7], - ["frame", 33, 32, 4, 2653, 7], - ["stone_text", 5], - ["setarg", 33, 1, 5, 2653, 7], - ["setarg", 33, 2, 4, 2653, 7], - ["setarg", 33, 3, 7, 2653, 7], - ["setarg", 33, 4, 10, 2653, 7], - ["invoke", 33, 5, 2653, 7], - ["put", 4, 14, 1, 2654, 21], - ["jump", "if_end_766", 2654, 21], - "if_else_765", - "if_end_766", - ["access", 11, 1, 2658, 10], - ["access", 8, 0, 2659, 10], - "while_start_767", - ["lt", 4, 8, 2, 2660, 17], - ["jump_false", 4, "while_end_768", 2660, 17], - ["load_index", 4, 6, 8, 2661, 22], - ["move", 9, 4, 2661, 22], - ["load_field", 5, 4, "expression", 2662, 22], - ["move", 12, 5, 2662, 22], - ["null", 4, 2663, 27], - ["ne", 7, 5, 4, 2663, 27], - ["jump_false", 7, "if_else_769", 2663, 27], - ["access", 4, "default_end", 2664, 31], - ["get", 5, 49, 1, 2664, 21], - ["frame", 7, 5, 1, 2664, 21], + ["setarg", 36, 1, 7, 2955, 7], + ["setarg", 36, 2, 4, 2955, 7], + ["setarg", 36, 3, 33, 2955, 7], + ["setarg", 36, 4, 34, 2955, 7], + ["invoke", 36, 7, 2955, 7], + ["put", 4, 14, 1, 2956, 21], + ["jump", "if_end_717", 2956, 21], + "if_else_716", + "if_end_717", + ["access", 11, 1, 2960, 10], + ["access", 8, 0, 2961, 10], + "while_start_718", + ["lt", 4, 8, 2, 2962, 17], + ["jump_false", 4, "while_end_719", 2962, 17], + ["load_index", 4, 6, 8, 2963, 22], + ["move", 9, 4, 2963, 22], + ["load_field", 7, 4, "expression", 2964, 22], + ["move", 12, 7, 2964, 22], + ["null", 4, 2965, 27], + ["ne", 33, 7, 4, 2965, 27], + ["jump_false", 33, "if_else_720", 2965, 27], + ["access", 4, "default_end", 2966, 31], + ["get", 7, 51, 1, 2966, 21], + ["frame", 33, 7, 1, 2966, 21], ["stone_text", 4], - ["setarg", 7, 1, 4, 2664, 21], - ["invoke", 7, 4, 2664, 21], - ["move", 13, 4, 2664, 21], - ["access", 5, "jump_not_null", 2665, 24], - ["get", 7, 64, 1, 2665, 9], - ["frame", 10, 7, 3, 2665, 9], - ["stone_text", 5], - ["setarg", 10, 1, 5, 2665, 9], - ["setarg", 10, 2, 11, 2665, 9], - ["setarg", 10, 3, 4, 2665, 9], - ["invoke", 10, 5, 2665, 9], - ["access", 5, -1, 2666, 47], - ["get", 7, 97, 1, 2666, 24], - ["frame", 10, 7, 2, 2666, 24], - ["setarg", 10, 1, 12, 2666, 24], - ["setarg", 10, 2, 5, 2666, 24], - ["invoke", 10, 5, 2666, 24], - ["move", 14, 5, 2666, 24], - ["access", 7, "move", 2667, 16], - ["get", 10, 55, 1, 2667, 9], - ["frame", 32, 10, 3, 2667, 9], + ["setarg", 33, 1, 4, 2966, 21], + ["invoke", 33, 4, 2966, 21], + ["move", 13, 4, 2966, 21], + ["access", 7, "jump_not_null", 2967, 24], + ["get", 33, 66, 1, 2967, 9], + ["frame", 34, 33, 3, 2967, 9], ["stone_text", 7], - ["setarg", 32, 1, 7, 2667, 9], - ["setarg", 32, 2, 11, 2667, 9], - ["setarg", 32, 3, 5, 2667, 9], - ["invoke", 32, 5, 2667, 9], - ["get", 5, 52, 1, 2668, 9], - ["frame", 7, 5, 1, 2668, 9], - ["setarg", 7, 1, 4, 2668, 9], - ["invoke", 7, 4, 2668, 9], - ["jump", "if_end_770", 2668, 9], - "if_else_769", - "if_end_770", - ["access", 4, 1, 2670, 17], - "_nop_tc_17", - "_nop_tc_18", - "_nop_tc_19", - "_nop_tc_20", - ["add", 11, 11, 4, 2670, 17], - ["jump", "num_done_772", 2670, 17], - "num_err_771", - "_nop_ucfg_25", - "_nop_ucfg_26", - "_nop_ucfg_27", - "_nop_ucfg_28", - "_nop_ucfg_29", - "_nop_ucfg_30", - "_nop_ucfg_31", - "_nop_ucfg_32", - "_nop_ucfg_33", - "_nop_ucfg_34", - "_nop_ucfg_35", - "_nop_ucfg_36", - "num_done_772", - ["access", 4, 1, 2671, 17], - "_nop_tc_21", - "_nop_tc_22", - "_nop_tc_23", - "_nop_tc_24", - ["add", 8, 8, 4, 2671, 17], - ["jump", "num_done_774", 2671, 17], - "num_err_773", - "_nop_ucfg_37", - "_nop_ucfg_38", - "_nop_ucfg_39", - "_nop_ucfg_40", - "_nop_ucfg_41", - "_nop_ucfg_42", - "_nop_ucfg_43", - "_nop_ucfg_44", - "_nop_ucfg_45", - "_nop_ucfg_46", - "_nop_ucfg_47", - "_nop_ucfg_48", - "num_done_774", - ["jump", "while_start_767", 2671, 17], - "while_end_768", - ["load_field", 4, 1, "intrinsics", 2675, 21], - ["get", 5, 87, 1, 2675, 5], - ["frame", 6, 5, 1, 2675, 5], - ["setarg", 6, 1, 4, 2675, 5], - ["invoke", 6, 4, 2675, 5], - ["load_field", 4, 1, "functions", 2678, 15], - ["move", 15, 4, 2678, 15], - ["null", 5, 2679, 20], - ["ne", 6, 4, 5, 2679, 20], - ["jump_false", 6, "if_else_775", 2679, 20], - ["access", 8, 0, 2680, 12], - "while_start_777", - ["length", 4, 15, 2681, 26], - ["lt", 5, 8, 4, 2681, 26], - ["jump_false", 5, "while_end_778", 2681, 26], - ["load_index", 4, 15, 8, 2682, 22], - ["move", 16, 4, 2682, 22], - ["load_field", 5, 4, "name", 2683, 17], - ["move", 17, 5, 2683, 17], - ["null", 4, 2684, 22], - ["ne", 6, 5, 4, 2684, 22], - ["jump_false", 6, "if_else_779", 2684, 22], - ["get", 4, 105, 1, 2685, 22], - ["frame", 5, 4, 1, 2685, 22], - ["setarg", 5, 1, 16, 2685, 22], - ["invoke", 5, 4, 2685, 22], - ["move", 18, 4, 2685, 22], - ["get", 4, 21, 1, 2686, 21], - ["move", 19, 4, 2686, 21], - ["get", 4, 21, 1, 2687, 28], - ["access", 5, 1, 2687, 45], - ["is_num", 6, 4, 2687, 45], - ["jump_false", 6, "num_err_781", 2687, 45], - "_nop_tc_25", - "_nop_tc_26", - ["add", 6, 4, 5, 2687, 45], - ["jump", "num_done_782", 2687, 45], - "num_err_781", + ["setarg", 34, 1, 7, 2967, 9], + ["setarg", 34, 2, 11, 2967, 9], + ["setarg", 34, 3, 4, 2967, 9], + ["invoke", 34, 7, 2967, 9], + ["access", 7, -1, 2968, 47], + ["get", 33, 101, 1, 2968, 24], + ["frame", 34, 33, 2, 2968, 24], + ["setarg", 34, 1, 12, 2968, 24], + ["setarg", 34, 2, 7, 2968, 24], + ["invoke", 34, 7, 2968, 24], + ["move", 14, 7, 2968, 24], + ["access", 33, "move", 2969, 16], + ["get", 34, 57, 1, 2969, 9], + ["frame", 35, 34, 3, 2969, 9], + ["stone_text", 33], + ["setarg", 35, 1, 33, 2969, 9], + ["setarg", 35, 2, 11, 2969, 9], + ["setarg", 35, 3, 7, 2969, 9], + ["invoke", 35, 7, 2969, 9], + ["get", 7, 54, 1, 2970, 9], + ["frame", 33, 7, 1, 2970, 9], + ["setarg", 33, 1, 4, 2970, 9], + ["invoke", 33, 4, 2970, 9], + ["jump", "if_end_721", 2970, 9], + "if_else_720", + "if_end_721", + ["access", 4, 1, 2972, 17], + ["add", 11, 11, 4, 2972, 17], + ["access", 4, 1, 2973, 17], + ["add", 8, 8, 4, 2973, 17], + ["jump", "while_start_718", 2973, 17], + "while_end_719", + ["load_field", 4, 1, "intrinsics", 2977, 21], + ["get", 7, 89, 1, 2977, 5], + ["frame", 33, 7, 1, 2977, 5], + ["setarg", 33, 1, 4, 2977, 5], + ["invoke", 33, 4, 2977, 5], + ["load_field", 4, 1, "functions", 2980, 15], + ["move", 15, 4, 2980, 15], + ["null", 7, 2981, 20], + ["ne", 33, 4, 7, 2981, 20], + ["jump_false", 33, "if_else_722", 2981, 20], + ["access", 8, 0, 2982, 12], + "while_start_724", + ["length", 4, 15, 2983, 26], + ["lt", 7, 8, 4, 2983, 26], + ["jump_false", 7, "while_end_725", 2983, 26], + ["load_index", 4, 15, 8, 2984, 22], + ["move", 16, 4, 2984, 22], + ["load_field", 7, 4, "name", 2985, 17], + ["move", 17, 7, 2985, 17], + ["null", 4, 2986, 22], + ["ne", 33, 7, 4, 2986, 22], + ["jump_false", 33, "if_else_726", 2986, 22], + ["get", 4, 115, 1, 2987, 22], + ["frame", 7, 4, 1, 2987, 22], + ["setarg", 7, 1, 16, 2987, 22], + ["invoke", 7, 4, 2987, 22], + ["move", 18, 4, 2987, 22], + ["get", 4, 21, 1, 2988, 21], + ["move", 19, 4, 2988, 21], + ["get", 4, 21, 1, 2989, 28], + ["access", 7, 1, 2989, 45], + ["is_num", 33, 4, 2989, 45], + ["jump_false", 33, "num_err_712", 2989, 45], + ["add", 33, 4, 7, 2989, 45], + ["put", 33, 21, 1, 2989, 45], + ["get", 4, 12, 1, 2990, 16], + ["is_array", 7, 4, 2990, 29], + ["jump_false", 7, "push_err_728", 2990, 29], + ["push", 4, 18, 2990, 29], + ["jump", "push_done_729", 2990, 29], + "push_err_728", [ "access", 4, @@ -13215,342 +13732,224 @@ "kind": "name", "make": "intrinsic" }, - 2687, - 45 - ], - ["access", 5, "error", 2687, 45], - ["access", 7, "cannot apply '+': operands must be numbers", 2687, 45], - ["array", 9, 0, 2687, 45], - ["stone_text", 7], - ["push", 9, 7, 2687, 45], - ["frame", 7, 4, 2, 2687, 45], - ["null", 4, 2687, 45], - ["setarg", 7, 0, 4, 2687, 45], - ["stone_text", 5], - ["setarg", 7, 1, 5, 2687, 45], - ["setarg", 7, 2, 9, 2687, 45], - ["invoke", 7, 4, 2687, 45], - ["disrupt", 2687, 45], - "num_done_782", - ["put", 6, 21, 1, 2687, 45], - ["get", 4, 12, 1, 2688, 16], - ["is_array", 5, 4, 2688, 29], - ["jump_false", 5, "push_err_783", 2688, 29], - ["push", 4, 18, 2688, 29], - ["jump", "push_done_784", 2688, 29], - "push_err_783", - [ - "access", - 4, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 2688, + 2990, 29 ], - ["access", 5, "error", 2688, 29], - ["access", 6, "cannot push: target must be an array", 2688, 29], - ["array", 7, 0, 2688, 29], - ["stone_text", 6], - ["push", 7, 6, 2688, 29], - ["frame", 6, 4, 2, 2688, 29], - ["null", 4, 2688, 29], - ["setarg", 6, 0, 4, 2688, 29], - ["stone_text", 5], - ["setarg", 6, 1, 5, 2688, 29], - ["setarg", 6, 2, 7, 2688, 29], - ["invoke", 6, 4, 2688, 29], - ["disrupt", 2688, 29], - "push_done_784", - ["get", 4, 46, 1, 2689, 24], - ["frame", 5, 4, 1, 2689, 24], - ["setarg", 5, 1, 17, 2689, 24], - ["invoke", 5, 4, 2689, 24], - ["move", 20, 4, 2689, 24], - ["get", 5, 44, 1, 2690, 18], - ["frame", 6, 5, 0, 2690, 18], - ["invoke", 6, 5, 2690, 18], - ["move", 21, 5, 2690, 18], - ["access", 6, "function", 2691, 18], - ["get", 7, 55, 1, 2691, 11], - ["frame", 9, 7, 3, 2691, 11], - ["stone_text", 6], - ["setarg", 9, 1, 6, 2691, 11], - ["setarg", 9, 2, 5, 2691, 11], - ["setarg", 9, 3, 19, 2691, 11], - ["invoke", 9, 5, 2691, 11], - ["access", 5, 0, 2692, 29], - ["ge", 6, 4, 5, 2692, 29], - ["jump_false", 6, "if_else_785", 2692, 29], - ["access", 4, "move", 2693, 20], - ["get", 5, 55, 1, 2693, 13], - ["frame", 6, 5, 3, 2693, 13], - ["stone_text", 4], - ["setarg", 6, 1, 4, 2693, 13], - ["setarg", 6, 2, 20, 2693, 13], - ["setarg", 6, 3, 21, 2693, 13], - ["invoke", 6, 4, 2693, 13], - ["jump", "if_end_786", 2693, 13], - "if_else_785", - "if_end_786", - ["jump", "if_end_780", 2693, 13], - "if_else_779", - "if_end_780", - ["access", 4, 1, 2696, 19], - "_nop_tc_27", - "_nop_tc_28", - "_nop_tc_29", - "_nop_tc_30", - ["add", 8, 8, 4, 2696, 19], - ["jump", "num_done_788", 2696, 19], - "num_err_787", - "_nop_ucfg_49", - "_nop_ucfg_50", - "_nop_ucfg_51", - "_nop_ucfg_52", - "_nop_ucfg_53", - "_nop_ucfg_54", - "_nop_ucfg_55", - "_nop_ucfg_56", - "_nop_ucfg_57", - "_nop_ucfg_58", - "_nop_ucfg_59", - "_nop_ucfg_60", - "num_done_788", - ["jump", "while_start_777", 2696, 19], - "while_end_778", - ["jump", "if_end_776", 2696, 19], - "if_else_775", - "if_end_776", - ["load_field", 4, 1, "statements", 2701, 13], - ["move", 22, 4, 2701, 13], - ["null", 5, 2702, 18], - ["eq", 6, 4, 5, 2702, 18], - ["jump_false", 6, "if_else_789", 2702, 18], - ["load_field", 4, 1, "body", 2703, 14], - ["move", 23, 4, 2703, 14], - ["null", 5, 2704, 19], - ["ne", 6, 4, 5, 2704, 19], - ["jump_false", 6, "if_else_791", 2704, 19], - ["load_field", 4, 23, "statements", 2705, 17], - ["move", 22, 4, 2705, 17], - ["null", 5, 2706, 22], - ["eq", 6, 4, 5, 2706, 22], - ["jump_false", 6, "if_else_793", 2706, 22], - ["move", 22, 23, 2707, 19], - ["jump", "if_end_794", 2707, 19], - "if_else_793", - "if_end_794", - ["jump", "if_end_792", 2707, 19], - "if_else_791", - "if_end_792", - ["jump", "if_end_790", 2707, 19], - "if_else_789", - "if_end_790", - ["null", 4, 2711, 18], - ["ne", 5, 22, 4, 2711, 18], - ["move", 4, 5, 2711, 18], - ["jump_false", 5, "and_end_797", 2711, 18], - ["is_array", 5, 22, 2711, 35], - ["move", 4, 5, 2711, 35], - "and_end_797", - ["jump_false", 4, "if_else_795", 2711, 35], - ["access", 8, 0, 2712, 12], - "while_start_798", - ["length", 4, 22, 2713, 26], - ["lt", 5, 8, 4, 2713, 26], - ["jump_false", 5, "while_end_799", 2713, 26], - ["load_index", 4, 22, 8, 2714, 29], - ["get", 5, 104, 1, 2714, 9], - ["frame", 6, 5, 1, 2714, 9], - ["setarg", 6, 1, 4, 2714, 9], - ["invoke", 6, 4, 2714, 9], - ["access", 4, 1, 2715, 19], - "_nop_tc_31", - "_nop_tc_32", - "_nop_tc_33", - "_nop_tc_34", - ["add", 8, 8, 4, 2715, 19], - ["jump", "num_done_801", 2715, 19], - "num_err_800", - "_nop_ucfg_61", - "_nop_ucfg_62", - "_nop_ucfg_63", - "_nop_ucfg_64", - "_nop_ucfg_65", - "_nop_ucfg_66", - "_nop_ucfg_67", - "_nop_ucfg_68", - "_nop_ucfg_69", - "_nop_ucfg_70", - "_nop_ucfg_71", - "_nop_ucfg_72", - "num_done_801", - ["jump", "while_start_798", 2715, 19], - "while_end_799", - ["jump", "if_end_796", 2715, 19], - "if_else_795", - "if_end_796", - ["get", 4, 44, 1, 2720, 17], - ["frame", 5, 4, 0, 2720, 17], - ["invoke", 5, 4, 2720, 17], - ["move", 24, 4, 2720, 17], - ["access", 5, "null", 2721, 12], - ["get", 6, 54, 1, 2721, 5], - ["frame", 7, 6, 2, 2721, 5], - ["stone_text", 5], - ["setarg", 7, 1, 5, 2721, 5], - ["setarg", 7, 2, 4, 2721, 5], - ["invoke", 7, 5, 2721, 5], - ["access", 5, "return", 2722, 12], - ["get", 6, 54, 1, 2722, 5], - ["frame", 7, 6, 2, 2722, 5], - ["stone_text", 5], - ["setarg", 7, 1, 5, 2722, 5], - ["setarg", 7, 2, 4, 2722, 5], - ["invoke", 7, 4, 2722, 5], - ["null", 4, 2725, 27], - ["ne", 5, 27, 4, 2725, 27], - ["move", 4, 5, 2725, 27], - ["jump_false", 5, "and_end_804", 2725, 27], - ["is_array", 5, 27, 2725, 44], - ["move", 4, 5, 2725, 44], - "and_end_804", - ["jump_false", 4, "if_else_802", 2725, 44], - ["access", 4, "disruption", 2726, 28], - ["get", 5, 49, 1, 2726, 18], - ["frame", 6, 5, 1, 2726, 18], - ["stone_text", 4], - ["setarg", 6, 1, 4, 2726, 18], - ["invoke", 6, 4, 2726, 18], - ["get", 5, 52, 1, 2726, 7], - ["frame", 6, 5, 1, 2726, 7], - ["setarg", 6, 1, 4, 2726, 7], - ["invoke", 6, 4, 2726, 7], - ["get", 4, 2, 1, 2727, 33], - ["length", 5, 4, 2727, 33], - ["move", 25, 5, 2727, 33], - ["access", 8, 0, 2728, 12], - "while_start_805", - ["length", 4, 27, 2729, 26], - ["lt", 5, 8, 4, 2729, 26], - ["jump_false", 5, "while_end_806", 2729, 26], - ["load_index", 4, 27, 8, 2730, 38], - ["get", 5, 104, 1, 2730, 9], - ["frame", 6, 5, 1, 2730, 9], - ["setarg", 6, 1, 4, 2730, 9], - ["invoke", 6, 4, 2730, 9], - ["access", 4, 1, 2731, 19], - "_nop_tc_35", - "_nop_tc_36", - "_nop_tc_37", - "_nop_tc_38", - ["add", 8, 8, 4, 2731, 19], - ["jump", "num_done_808", 2731, 19], - "num_err_807", - "_nop_ucfg_73", - "_nop_ucfg_74", - "_nop_ucfg_75", - "_nop_ucfg_76", - "_nop_ucfg_77", - "_nop_ucfg_78", - "_nop_ucfg_79", - "_nop_ucfg_80", - "_nop_ucfg_81", - "_nop_ucfg_82", - "_nop_ucfg_83", - "_nop_ucfg_84", - "num_done_808", - ["jump", "while_start_805", 2731, 19], - "while_end_806", - ["get", 4, 44, 1, 2733, 20], - ["frame", 5, 4, 0, 2733, 20], - ["invoke", 5, 4, 2733, 20], - ["move", 26, 4, 2733, 20], - ["access", 5, "null", 2734, 14], - ["get", 6, 54, 1, 2734, 7], - ["frame", 7, 6, 2, 2734, 7], - ["stone_text", 5], - ["setarg", 7, 1, 5, 2734, 7], - ["setarg", 7, 2, 4, 2734, 7], - ["invoke", 7, 5, 2734, 7], - ["access", 5, "return", 2735, 14], - ["get", 6, 54, 1, 2735, 7], - ["frame", 7, 6, 2, 2735, 7], - ["stone_text", 5], - ["setarg", 7, 1, 5, 2735, 7], - ["setarg", 7, 2, 4, 2735, 7], - ["invoke", 7, 4, 2735, 7], - ["jump", "if_end_803", 2735, 7], - "if_else_802", - "if_end_803", - ["null", 4, 2739, 20], - ["eq", 5, 29, 4, 2739, 20], - ["jump_false", 5, "if_else_809", 2739, 20], - ["access", 29, "", 2740, 17], - ["jump", "if_end_810", 2740, 17], - "if_else_809", - "if_end_810", - ["record", 4, 6], - ["store_field", 4, 29, "name", 2744, 13], - ["store_field", 4, 2, "nr_args", 2745, 16], - ["get", 2, 16, 1, 2746, 23], - ["store_field", 4, 2, "nr_close_slots", 2746, 23], - ["get", 2, 19, 1, 2747, 17], - ["access", 5, 1, 2747, 30], - ["is_num", 6, 2, 2747, 30], - ["jump_false", 6, "num_err_811", 2747, 30], - "_nop_tc_39", - "_nop_tc_40", - ["add", 6, 2, 5, 2747, 30], - ["jump", "num_done_812", 2747, 30], - "num_err_811", - [ - "access", - 2, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 2747, - 30 - ], - ["access", 5, "error", 2747, 30], - ["access", 7, "cannot apply '+': operands must be numbers", 2747, 30], - ["array", 8, 0, 2747, 30], + ["access", 7, "error", 2990, 29], + ["access", 33, "cannot push: target must be an array", 2990, 29], + ["array", 34, 0, 2990, 29], + ["stone_text", 33], + ["push", 34, 33, 2990, 29], + ["frame", 33, 4, 2, 2990, 29], + ["null", 4, 2990, 29], + ["setarg", 33, 0, 4, 2990, 29], ["stone_text", 7], - ["push", 8, 7, 2747, 30], - ["frame", 7, 2, 2, 2747, 30], - ["null", 2, 2747, 30], - ["setarg", 7, 0, 2, 2747, 30], - ["stone_text", 5], - ["setarg", 7, 1, 5, 2747, 30], - ["setarg", 7, 2, 8, 2747, 30], - ["invoke", 7, 2, 2747, 30], - ["disrupt", 2747, 30], - "num_done_812", - ["store_field", 4, 6, "nr_slots", 2747, 30], - ["store_field", 4, 25, "disruption_pc", 2748, 22], - ["get", 2, 2, 1, 2749, 21], - ["store_field", 4, 2, "instructions", 2749, 21], - ["move", 28, 4, 2749, 21], - ["get", 2, 32, 1, 2752, 9], - ["null", 4, 2752, 23], - ["ne", 5, 2, 4, 2752, 23], - ["jump_false", 5, "if_else_813", 2752, 23], - ["get", 2, 32, 1, 2753, 25], - ["store_field", 28, 2, "filename", 2753, 7], - ["jump", "if_end_814", 2753, 7], - "if_else_813", - "if_end_814", - ["get", 2, 20, 1, 2757, 19], - ["move", 30, 2, 2757, 19], - ["get", 4, 21, 1, 2758, 18], - ["move", 31, 4, 2758, 18], - ["get", 5, 109, 1, 2761, 9], + ["setarg", 33, 1, 7, 2990, 29], + ["setarg", 33, 2, 34, 2990, 29], + ["invoke", 33, 4, 2990, 29], + ["disrupt", 2990, 29], + "push_done_729", + ["get", 4, 48, 1, 2991, 24], + ["frame", 7, 4, 1, 2991, 24], + ["setarg", 7, 1, 17, 2991, 24], + ["invoke", 7, 4, 2991, 24], + ["move", 20, 4, 2991, 24], + ["get", 7, 46, 1, 2992, 18], + ["frame", 33, 7, 0, 2992, 18], + ["invoke", 33, 7, 2992, 18], + ["move", 21, 7, 2992, 18], + ["access", 33, "function", 2993, 18], + ["get", 34, 57, 1, 2993, 11], + ["frame", 35, 34, 3, 2993, 11], + ["stone_text", 33], + ["setarg", 35, 1, 33, 2993, 11], + ["setarg", 35, 2, 7, 2993, 11], + ["setarg", 35, 3, 19, 2993, 11], + ["invoke", 35, 7, 2993, 11], + ["access", 7, 0, 2994, 29], + ["ge", 33, 4, 7, 2994, 29], + ["jump_false", 33, "if_else_730", 2994, 29], + ["access", 4, "move", 2995, 20], + ["get", 7, 57, 1, 2995, 13], + ["frame", 33, 7, 3, 2995, 13], + ["stone_text", 4], + ["setarg", 33, 1, 4, 2995, 13], + ["setarg", 33, 2, 20, 2995, 13], + ["setarg", 33, 3, 21, 2995, 13], + ["invoke", 33, 4, 2995, 13], + ["jump", "if_end_731", 2995, 13], + "if_else_730", + "if_end_731", + ["jump", "if_end_727", 2995, 13], + "if_else_726", + "if_end_727", + ["access", 4, 1, 2998, 19], + ["add", 8, 8, 4, 2998, 19], + ["jump", "while_start_724", 2998, 19], + "while_end_725", + ["jump", "if_end_723", 2998, 19], + "if_else_722", + "if_end_723", + ["load_field", 4, 1, "statements", 3003, 13], + ["move", 22, 4, 3003, 13], + ["null", 7, 3004, 18], + ["eq", 33, 4, 7, 3004, 18], + ["jump_false", 33, "if_else_732", 3004, 18], + ["load_field", 4, 1, "body", 3005, 14], + ["move", 23, 4, 3005, 14], + ["null", 7, 3006, 19], + ["ne", 33, 4, 7, 3006, 19], + ["jump_false", 33, "if_else_734", 3006, 19], + ["load_field", 4, 23, "statements", 3007, 17], + ["move", 22, 4, 3007, 17], + ["null", 7, 3008, 22], + ["eq", 33, 4, 7, 3008, 22], + ["jump_false", 33, "if_else_736", 3008, 22], + ["move", 22, 23, 3009, 19], + ["jump", "if_end_737", 3009, 19], + "if_else_736", + "if_end_737", + ["jump", "if_end_735", 3009, 19], + "if_else_734", + "if_end_735", + ["jump", "if_end_733", 3009, 19], + "if_else_732", + "if_end_733", + ["null", 4, 3013, 18], + ["ne", 7, 22, 4, 3013, 18], + ["move", 4, 7, 3013, 18], + ["jump_false", 7, "and_end_740", 3013, 18], + ["is_array", 7, 22, 3013, 35], + ["move", 4, 7, 3013, 35], + "and_end_740", + ["jump_false", 4, "if_else_738", 3013, 35], + ["access", 8, 0, 3014, 12], + "while_start_741", + ["length", 4, 22, 3015, 26], + ["lt", 7, 8, 4, 3015, 26], + ["jump_false", 7, "while_end_742", 3015, 26], + ["load_index", 4, 22, 8, 3016, 29], + ["get", 7, 114, 1, 3016, 9], + ["frame", 33, 7, 1, 3016, 9], + ["setarg", 33, 1, 4, 3016, 9], + ["invoke", 33, 4, 3016, 9], + ["access", 4, 1, 3017, 19], + ["add", 8, 8, 4, 3017, 19], + ["jump", "while_start_741", 3017, 19], + "while_end_742", + ["jump", "if_end_739", 3017, 19], + "if_else_738", + "if_end_739", + ["get", 4, 46, 1, 3022, 17], + ["frame", 7, 4, 0, 3022, 17], + ["invoke", 7, 4, 3022, 17], + ["move", 24, 4, 3022, 17], + ["access", 7, "null", 3023, 12], + ["get", 33, 56, 1, 3023, 5], + ["frame", 34, 33, 2, 3023, 5], + ["stone_text", 7], + ["setarg", 34, 1, 7, 3023, 5], + ["setarg", 34, 2, 4, 3023, 5], + ["invoke", 34, 7, 3023, 5], + ["access", 7, "return", 3024, 12], + ["get", 33, 56, 1, 3024, 5], + ["frame", 34, 33, 2, 3024, 5], + ["stone_text", 7], + ["setarg", 34, 1, 7, 3024, 5], + ["setarg", 34, 2, 4, 3024, 5], + ["invoke", 34, 4, 3024, 5], + ["null", 4, 3027, 27], + ["ne", 7, 27, 4, 3027, 27], + ["move", 4, 7, 3027, 27], + ["jump_false", 7, "and_end_745", 3027, 27], + ["is_array", 7, 27, 3027, 44], + ["move", 4, 7, 3027, 44], + "and_end_745", + ["jump_false", 4, "if_else_743", 3027, 44], + ["access", 4, "disruption", 3028, 28], + ["get", 7, 51, 1, 3028, 18], + ["frame", 33, 7, 1, 3028, 18], + ["stone_text", 4], + ["setarg", 33, 1, 4, 3028, 18], + ["invoke", 33, 4, 3028, 18], + ["get", 7, 54, 1, 3028, 7], + ["frame", 33, 7, 1, 3028, 7], + ["setarg", 33, 1, 4, 3028, 7], + ["invoke", 33, 4, 3028, 7], + ["get", 4, 2, 1, 3029, 33], + ["length", 7, 4, 3029, 33], + ["move", 25, 7, 3029, 33], + ["access", 8, 0, 3030, 12], + "while_start_746", + ["length", 4, 27, 3031, 26], + ["lt", 7, 8, 4, 3031, 26], + ["jump_false", 7, "while_end_747", 3031, 26], + ["load_index", 4, 27, 8, 3032, 38], + ["get", 7, 114, 1, 3032, 9], + ["frame", 33, 7, 1, 3032, 9], + ["setarg", 33, 1, 4, 3032, 9], + ["invoke", 33, 4, 3032, 9], + ["access", 4, 1, 3033, 19], + ["add", 8, 8, 4, 3033, 19], + ["jump", "while_start_746", 3033, 19], + "while_end_747", + ["get", 4, 46, 1, 3035, 20], + ["frame", 7, 4, 0, 3035, 20], + ["invoke", 7, 4, 3035, 20], + ["move", 26, 4, 3035, 20], + ["access", 7, "null", 3036, 14], + ["get", 33, 56, 1, 3036, 7], + ["frame", 34, 33, 2, 3036, 7], + ["stone_text", 7], + ["setarg", 34, 1, 7, 3036, 7], + ["setarg", 34, 2, 4, 3036, 7], + ["invoke", 34, 7, 3036, 7], + ["access", 7, "return", 3037, 14], + ["get", 33, 56, 1, 3037, 7], + ["frame", 34, 33, 2, 3037, 7], + ["stone_text", 7], + ["setarg", 34, 1, 7, 3037, 7], + ["setarg", 34, 2, 4, 3037, 7], + ["invoke", 34, 4, 3037, 7], + ["jump", "if_end_744", 3037, 7], + "if_else_743", + "if_end_744", + ["null", 4, 3041, 20], + ["eq", 7, 29, 4, 3041, 20], + ["jump_false", 7, "if_else_748", 3041, 20], + ["access", 29, "", 3042, 17], + ["jump", "if_end_749", 3042, 17], + "if_else_748", + "if_end_749", + ["record", 4, 6], + ["store_field", 4, 29, "name", 3046, 13], + ["store_field", 4, 2, "nr_args", 3047, 16], + ["get", 7, 16, 1, 3048, 23], + ["store_field", 4, 7, "nr_close_slots", 3048, 23], + ["get", 7, 19, 1, 3049, 17], + ["access", 33, 1, 3049, 30], + ["is_num", 34, 7, 3049, 30], + ["jump_false", 34, "num_err_712", 3049, 30], + ["add", 2, 7, 33, 3049, 30], + ["store_field", 4, 2, "nr_slots", 3049, 30], + ["store_field", 4, 25, "disruption_pc", 3050, 22], + ["get", 2, 2, 1, 3051, 21], + ["store_field", 4, 2, "instructions", 3051, 21], + ["move", 28, 4, 3051, 21], + ["get", 2, 32, 1, 3054, 9], + ["null", 4, 3054, 23], + ["ne", 5, 2, 4, 3054, 23], + ["jump_false", 5, "if_else_750", 3054, 23], + ["get", 2, 32, 1, 3055, 25], + ["store_field", 28, 2, "filename", 3055, 7], + ["jump", "if_end_751", 3055, 7], + "if_else_750", + "if_end_751", + ["get", 2, 20, 1, 3059, 19], + ["move", 30, 2, 3059, 19], + ["get", 4, 21, 1, 3060, 18], + ["move", 31, 4, 3060, 18], + ["get", 5, 119, 1, 3063, 9], [ "access", 6, @@ -13559,23 +13958,23 @@ "kind": "name", "make": "intrinsic" }, - 2761, + 3063, 5 ], - ["frame", 7, 6, 1, 2761, 5], - ["setarg", 7, 1, 5, 2761, 5], - ["invoke", 7, 5, 2761, 5], - ["get", 5, 43, 1, 2762, 5], - ["frame", 6, 5, 1, 2762, 5], - ["setarg", 6, 1, 3, 2762, 5], - ["invoke", 6, 3, 2762, 5], - ["put", 2, 20, 1, 2763, 23], - ["put", 4, 21, 1, 2764, 22], - ["return", 28, 2766, 12], + ["frame", 7, 6, 1, 3063, 5], + ["setarg", 7, 1, 5, 3063, 5], + ["invoke", 7, 5, 3063, 5], + ["get", 5, 45, 1, 3064, 5], + ["frame", 6, 5, 1, 3064, 5], + ["setarg", 6, 1, 3, 3064, 5], + ["invoke", 6, 3, 3064, 5], + ["put", 2, 20, 1, 3065, 23], + ["put", 4, 21, 1, 3066, 22], + ["return", 28, 3068, 12], "_nop_ur_1", "_nop_ur_2" ], - "_write_types": [null, null, "int", null, null, null, null, null, null, null, "int", null, null, null, null, null, null, null, "bool", null, "int", null, null, null, null, "int", null, "int", null, null, null, null, null, null, null, null, null, "bool", null, null, null, null, null, "bool", null, "text", "text", "array", null, null, "null", "array", "array", "array", "record", "null", "null", "record", "null", "bool", "bool", "bool", "null", "bool", null, "int", "null", "bool", null, "null", "bool", "int", "int", "int", "int", "int", "int", "bool", null, null, "null", "bool", "bool", "bool", "null", "bool", "bool", null, null, null, "int", null, null, null, null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "int", null, "num", null, "bool", null, "text", "text", "array", null, null, "null", "int", null, "num", null, "bool", null, "text", "text", "array", null, null, "null", null, null, null, "int", null, "num", null, "bool", null, "text", "text", "array", null, null, "null", null, "num", null, "bool", null, "text", "text", "array", null, null, "null", null, null, "bool", null, null, null, null, "text", null, "int", null, null, null, "bool", null, null, "null", "bool", "text", null, null, null, "text", null, null, null, "int", null, null, null, "text", null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, null, null, null, null, null, "null", "bool", "int", "bool", null, null, "null", "bool", null, null, null, null, null, "int", "num", "bool", null, null, "text", "text", "array", null, null, "null", null, "bool", null, "text", "text", "array", null, null, "null", null, null, null, null, null, null, "text", null, null, null, "int", "bool", "text", null, null, null, "int", null, null, null, null, null, null, null, null, null, null, "null", "bool", null, "null", "bool", null, "null", "bool", "null", "bool", "bool", "bool", "int", "bool", null, null, null, null, "int", null, null, null, null, null, null, null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, "null", "bool", "bool", "bool", "text", null, null, null, null, null, null, null, "int", "int", "bool", null, null, null, null, "int", null, null, null, null, null, null, null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, "null", "bool", "record", null, null, "int", "num", "bool", null, null, "text", "text", "array", null, null, "null", null, null, "null", "bool", null, null, null, null, null, null, null, null, null, null, null], + "_write_types": [null, null, "int", null, null, null, null, null, null, null, "int", null, null, null, null, null, null, null, "bool", null, "int", null, null, null, null, "int", null, "int", null, null, null, null, null, null, null, null, null, "bool", null, null, null, null, null, "bool", null, "text", "text", "array", null, null, "null", "array", "array", "array", "record", "null", "bool", "null", "null", "record", "null", "bool", "bool", "bool", "null", "bool", null, "int", "null", "bool", null, "null", "bool", "int", "int", "int", "int", "int", "int", "bool", null, null, "null", "bool", "bool", "bool", "null", "bool", "bool", null, null, null, "int", "int", "int", null, "num", "bool", null, "text", "text", "array", null, null, "null", "int", null, "num", "bool", null, null, null, "int", null, "num", "bool", null, "num", "bool", null, null, "bool", null, null, null, null, "text", null, "int", null, null, null, "bool", null, null, "null", "bool", "text", null, null, null, "text", null, null, null, "int", null, null, null, "text", null, null, null, null, null, null, "int", "int", null, null, null, null, null, "null", "bool", "int", "bool", null, null, "null", "bool", null, null, null, null, null, "int", "num", "bool", null, "bool", null, "text", "text", "array", null, null, "null", null, null, null, null, null, null, "text", null, null, null, "int", "bool", "text", null, null, null, "int", null, "null", "bool", null, "null", "bool", null, "null", "bool", "null", "bool", "bool", "bool", "int", "bool", null, null, null, null, "int", null, null, null, "text", null, null, null, "text", null, null, null, "null", "bool", "bool", "bool", "text", null, null, null, null, null, null, null, "int", "int", "bool", null, null, null, null, "int", null, null, null, "text", null, null, null, "text", null, null, null, "null", "bool", "record", null, null, "int", "num", "bool", null, null, "null", "bool", null, null, null, null, null, null, null, null, null, null, null], "name": "", "filename": ".cell/packages/core/mcode.cm", "nr_args": 1 @@ -13583,78 +13982,80 @@ { "_closure_slot_types": {}, "disruption_pc": 0, - "nr_slots": 22, + "nr_slots": 23, "nr_close_slots": 0, "instructions": [ - ["load_field", 2, 1, "filename", 2771, 20], - ["move", 3, 2, 2771, 20], - ["load_field", 4, 1, "functions", 2772, 19], - ["move", 5, 4, 2772, 19], - ["access", 4, 0, 2773, 14], - ["null", 6, 2774, 14], - ["null", 7, 2775, 16], - ["null", 8, 2776, 20], - ["access", 9, 0, 2777, 19], - ["access", 10, 0, 2778, 22], - ["access", 11, 0, 2779, 16], - ["load_field", 12, 1, "statements", 2780, 22], - ["move", 13, 12, 2780, 22], - ["access", 12, -1, 2781, 26], - ["null", 14, 2782, 16], - ["null", 15, 2783, 16], - ["access", 16, 0, 2784, 21], - ["null", 17, 2785, 18], - ["put", 2, 32, 1, 2787, 18], - ["array", 2, 0, 2789, 22], - ["put", 2, 2, 1, 2789, 22], + ["load_field", 2, 1, "filename", 3073, 20], + ["move", 3, 2, 3073, 20], + ["load_field", 4, 1, "functions", 3074, 19], + ["move", 5, 4, 3074, 19], + ["access", 4, 0, 3075, 14], + ["null", 6, 3076, 14], + ["null", 7, 3077, 16], + ["null", 8, 3078, 20], + ["access", 9, 0, 3079, 19], + ["access", 10, 0, 3080, 22], + ["access", 11, 0, 3081, 16], + ["load_field", 12, 1, "statements", 3082, 22], + ["move", 13, 12, 3082, 22], + ["access", 12, -1, 3083, 26], + ["null", 14, 3084, 16], + ["null", 15, 3085, 16], + ["access", 16, 0, 3086, 21], + ["null", 17, 3087, 18], + ["put", 2, 32, 1, 3089, 18], + ["array", 2, 0, 3091, 22], + ["put", 2, 2, 1, 3091, 22], ["record", 2, 0], - ["put", 2, 11, 1, 2790, 14], - ["array", 2, 0, 2791, 19], - ["put", 2, 12, 1, 2791, 19], - ["array", 2, 0, 2792, 14], - ["put", 2, 13, 1, 2792, 14], - ["array", 2, 0, 2793, 25], - ["put", 2, 29, 1, 2793, 25], - ["load_field", 2, 1, "scopes", 2794, 16], - ["put", 2, 28, 1, 2794, 16], - ["access", 2, 0, 2795, 19], - ["put", 2, 14, 1, 2795, 19], - ["access", 2, 0, 2796, 17], - ["put", 2, 15, 1, 2796, 17], - ["access", 2, 0, 2797, 24], - ["put", 2, 16, 1, 2797, 24], - ["access", 2, 0, 2798, 24], - ["put", 2, 17, 1, 2798, 24], - ["access", 2, 1, 2799, 24], - ["put", 2, 18, 1, 2799, 24], - ["access", 2, 1, 2800, 18], - ["put", 2, 19, 1, 2800, 18], - ["access", 2, 0, 2801, 23], - ["put", 2, 20, 1, 2801, 23], - ["access", 2, 0, 2802, 22], - ["put", 2, 21, 1, 2802, 22], + ["put", 2, 11, 1, 3092, 14], + ["array", 2, 0, 3093, 19], + ["put", 2, 12, 1, 3093, 19], + ["array", 2, 0, 3094, 14], + ["put", 2, 13, 1, 3094, 14], + ["array", 2, 0, 3095, 25], + ["put", 2, 29, 1, 3095, 25], + ["load_field", 2, 1, "scopes", 3096, 16], + ["put", 2, 28, 1, 3096, 16], + ["access", 2, 0, 3097, 19], + ["put", 2, 14, 1, 3097, 19], + ["access", 2, 0, 3098, 17], + ["put", 2, 15, 1, 3098, 17], + ["access", 2, 0, 3099, 24], + ["put", 2, 16, 1, 3099, 24], + ["access", 2, 0, 3100, 24], + ["put", 2, 17, 1, 3100, 24], + ["access", 2, 1, 3101, 24], + ["put", 2, 18, 1, 3101, 24], + ["access", 2, 1, 3102, 18], + ["put", 2, 19, 1, 3102, 18], + ["access", 2, 0, 3103, 23], + ["put", 2, 20, 1, 3103, 23], + ["access", 2, 0, 3104, 22], + ["put", 2, 21, 1, 3104, 22], ["record", 2, 0], - ["put", 2, 35, 1, 2803, 20], - ["null", 2, 2804, 20], - ["put", 2, 22, 1, 2804, 20], - ["null", 2, 2805, 23], - ["put", 2, 23, 1, 2805, 23], + ["put", 2, 35, 1, 3105, 20], + ["null", 2, 3106, 23], + ["put", 2, 34, 1, 3106, 23], + ["false", 2, 3107, 25], + ["put", 2, 36, 1, 3107, 25], + ["null", 2, 3108, 20], + ["put", 2, 22, 1, 3108, 20], + ["null", 2, 3109, 23], + ["put", 2, 23, 1, 3109, 23], ["record", 2, 0], - ["put", 2, 25, 1, 2806, 19], - ["access", 2, 0, 2807, 21], - ["put", 2, 27, 1, 2807, 21], - ["get", 2, 91, 1, 2810, 5], - ["frame", 18, 2, 0, 2810, 5], - ["invoke", 18, 2, 2810, 5], - ["access", 2, 1, 2812, 24], - ["get", 18, 17, 1, 2812, 28], - "_nop_tc_1", - "_nop_tc_2", - ["is_num", 19, 18, 2812, 28], - ["jump_false", 19, "num_err_815", 2812, 28], - ["add", 19, 2, 18, 2812, 28], - ["jump", "num_done_816", 2812, 28], - "num_err_815", + ["put", 2, 25, 1, 3110, 19], + ["access", 2, 0, 3111, 21], + ["put", 2, 27, 1, 3111, 21], + ["get", 2, 93, 1, 3114, 5], + ["frame", 18, 2, 0, 3114, 5], + ["invoke", 18, 2, 3114, 5], + ["access", 2, 1, 3116, 24], + ["get", 18, 17, 1, 3116, 28], + ["is_num", 19, 18, 3116, 28], + ["jump_false", 19, "num_err_752", 3116, 28], + ["add", 19, 2, 18, 3116, 28], + ["jump", "num_done_753", 3116, 28], + "num_err_752", [ "access", 2, @@ -13663,64 +14064,67 @@ "kind": "name", "make": "intrinsic" }, - 2812, + 3116, 28 ], - ["access", 18, "error", 2812, 28], - ["access", 20, "cannot apply '+': operands must be numbers", 2812, 28], - ["array", 21, 0, 2812, 28], + ["access", 18, "error", 3116, 28], + ["access", 20, "operands must be numbers", 3116, 28], + ["array", 21, 0, 3116, 28], ["stone_text", 20], - ["push", 21, 20, 2812, 28], - ["frame", 20, 2, 2, 2812, 28], - ["null", 2, 2812, 28], - ["setarg", 20, 0, 2, 2812, 28], + ["push", 21, 20, 3116, 28], + ["frame", 20, 2, 2, 3116, 28], + ["null", 2, 3116, 28], + ["setarg", 20, 0, 2, 3116, 28], ["stone_text", 18], - ["setarg", 20, 1, 18, 2812, 28], - ["setarg", 20, 2, 21, 2812, 28], - ["invoke", 20, 2, 2812, 28], - ["disrupt", 2812, 28], - "num_done_816", - ["put", 19, 18, 1, 2812, 28], - ["get", 2, 18, 1, 2813, 9], - ["get", 18, 19, 1, 2813, 28], - ["gt", 19, 2, 18, 2813, 28], - ["jump_false", 19, "if_else_817", 2813, 28], - ["get", 2, 18, 1, 2814, 20], - ["put", 2, 19, 1, 2814, 20], - ["jump", "if_end_818", 2814, 20], - "if_else_817", - "if_end_818", - ["null", 2, 2818, 20], - ["ne", 18, 5, 2, 2818, 20], - ["jump_false", 18, "if_else_819", 2818, 20], - ["access", 4, 0, 2819, 12], - "while_start_821", - ["length", 2, 5, 2820, 26], - ["lt", 18, 4, 2, 2820, 26], - ["jump_false", 18, "while_end_822", 2820, 26], - ["load_index", 2, 5, 4, 2821, 22], - ["move", 6, 2, 2821, 22], - ["load_field", 18, 2, "name", 2822, 16], - ["move", 7, 18, 2822, 16], - ["null", 2, 2823, 21], - ["ne", 19, 18, 2, 2823, 21], - ["jump_false", 19, "if_else_823", 2823, 21], - ["get", 2, 105, 1, 2824, 22], - ["frame", 18, 2, 1, 2824, 22], - ["setarg", 18, 1, 6, 2824, 22], - ["invoke", 18, 2, 2824, 22], - ["move", 8, 2, 2824, 22], - ["get", 2, 21, 1, 2825, 21], - ["move", 9, 2, 2825, 21], - ["get", 2, 21, 1, 2826, 28], - ["access", 18, 1, 2826, 45], - ["is_num", 19, 2, 2826, 45], - ["jump_false", 19, "num_err_825", 2826, 45], - "_nop_tc_3", - "_nop_tc_4", - ["add", 19, 2, 18, 2826, 45], - ["jump", "num_done_826", 2826, 45], - "num_err_825", + ["setarg", 20, 1, 18, 3116, 28], + ["setarg", 20, 2, 21, 3116, 28], + ["invoke", 20, 2, 3116, 28], + ["disrupt", 3116, 28], + "num_done_753", + ["put", 19, 18, 1, 3116, 28], + ["get", 2, 18, 1, 3117, 9], + ["get", 18, 19, 1, 3117, 28], + ["gt", 20, 2, 18, 3117, 28], + ["jump_false", 20, "if_else_754", 3117, 28], + ["get", 2, 18, 1, 3118, 20], + ["put", 2, 19, 1, 3118, 20], + ["jump", "if_end_755", 3118, 20], + "if_else_754", + "if_end_755", + ["null", 2, 3122, 20], + ["ne", 18, 5, 2, 3122, 20], + ["jump_false", 18, "if_else_756", 3122, 20], + ["access", 4, 0, 3123, 12], + "while_start_758", + ["length", 2, 5, 3124, 26], + ["lt", 18, 4, 2, 3124, 26], + ["jump_false", 18, "while_end_759", 3124, 26], + ["load_index", 2, 5, 4, 3125, 22], + ["move", 6, 2, 3125, 22], + ["load_field", 18, 2, "name", 3126, 16], + ["move", 7, 18, 3126, 16], + ["null", 2, 3127, 21], + ["ne", 20, 18, 2, 3127, 21], + ["jump_false", 20, "if_else_760", 3127, 21], + ["get", 2, 115, 1, 3128, 22], + ["frame", 18, 2, 1, 3128, 22], + ["setarg", 18, 1, 6, 3128, 22], + ["invoke", 18, 2, 3128, 22], + ["move", 8, 2, 3128, 22], + ["get", 2, 21, 1, 3129, 21], + ["move", 9, 2, 3129, 21], + ["get", 2, 21, 1, 3130, 28], + ["access", 18, 1, 3130, 45], + ["is_num", 20, 2, 3130, 45], + ["jump_false", 20, "num_err_752", 3130, 45], + ["add", 20, 2, 18, 3130, 45], + ["put", 20, 21, 1, 3130, 45], + ["get", 2, 12, 1, 3131, 16], + ["is_array", 18, 2, 3131, 29], + ["jump_false", 18, "push_err_762", 3131, 29], + ["push", 2, 8, 3131, 29], + ["jump", "push_done_763", 3131, 29], + "push_err_762", [ "access", 2, @@ -13729,380 +14133,282 @@ "kind": "name", "make": "intrinsic" }, - 2826, - 45 - ], - ["access", 18, "error", 2826, 45], - ["access", 20, "cannot apply '+': operands must be numbers", 2826, 45], - ["array", 21, 0, 2826, 45], - ["stone_text", 20], - ["push", 21, 20, 2826, 45], - ["frame", 20, 2, 2, 2826, 45], - ["null", 2, 2826, 45], - ["setarg", 20, 0, 2, 2826, 45], - ["stone_text", 18], - ["setarg", 20, 1, 18, 2826, 45], - ["setarg", 20, 2, 21, 2826, 45], - ["invoke", 20, 2, 2826, 45], - ["disrupt", 2826, 45], - "num_done_826", - ["put", 19, 21, 1, 2826, 45], - ["get", 2, 12, 1, 2827, 16], - ["is_array", 18, 2, 2827, 29], - ["jump_false", 18, "push_err_827", 2827, 29], - ["push", 2, 8, 2827, 29], - ["jump", "push_done_828", 2827, 29], - "push_err_827", - [ - "access", - 2, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 2827, + 3131, 29 ], - ["access", 18, "error", 2827, 29], - ["access", 19, "cannot push: target must be an array", 2827, 29], - ["array", 20, 0, 2827, 29], - ["stone_text", 19], - ["push", 20, 19, 2827, 29], - ["frame", 19, 2, 2, 2827, 29], - ["null", 2, 2827, 29], - ["setarg", 19, 0, 2, 2827, 29], + ["access", 18, "error", 3131, 29], + ["access", 20, "cannot push: target must be an array", 3131, 29], + ["array", 21, 0, 3131, 29], + ["stone_text", 20], + ["push", 21, 20, 3131, 29], + ["frame", 20, 2, 2, 3131, 29], + ["null", 2, 3131, 29], + ["setarg", 20, 0, 2, 3131, 29], ["stone_text", 18], - ["setarg", 19, 1, 18, 2827, 29], - ["setarg", 19, 2, 20, 2827, 29], - ["invoke", 19, 2, 2827, 29], - ["disrupt", 2827, 29], - "push_done_828", - ["get", 2, 46, 1, 2828, 24], - ["frame", 18, 2, 1, 2828, 24], - ["setarg", 18, 1, 7, 2828, 24], - ["invoke", 18, 2, 2828, 24], - ["move", 10, 2, 2828, 24], - ["get", 18, 44, 1, 2829, 18], - ["frame", 19, 18, 0, 2829, 18], - ["invoke", 19, 18, 2829, 18], - ["move", 11, 18, 2829, 18], - ["access", 19, "function", 2830, 18], - ["get", 20, 55, 1, 2830, 11], - ["frame", 21, 20, 3, 2830, 11], - ["stone_text", 19], - ["setarg", 21, 1, 19, 2830, 11], - ["setarg", 21, 2, 18, 2830, 11], - ["setarg", 21, 3, 9, 2830, 11], - ["invoke", 21, 18, 2830, 11], - ["access", 18, 0, 2831, 29], - ["ge", 19, 2, 18, 2831, 29], - ["jump_false", 19, "if_else_829", 2831, 29], - ["access", 2, "move", 2832, 20], - ["get", 18, 55, 1, 2832, 13], - ["frame", 19, 18, 3, 2832, 13], + ["setarg", 20, 1, 18, 3131, 29], + ["setarg", 20, 2, 21, 3131, 29], + ["invoke", 20, 2, 3131, 29], + ["disrupt", 3131, 29], + "push_done_763", + ["get", 2, 48, 1, 3132, 24], + ["frame", 18, 2, 1, 3132, 24], + ["setarg", 18, 1, 7, 3132, 24], + ["invoke", 18, 2, 3132, 24], + ["move", 10, 2, 3132, 24], + ["get", 18, 46, 1, 3133, 18], + ["frame", 20, 18, 0, 3133, 18], + ["invoke", 20, 18, 3133, 18], + ["move", 11, 18, 3133, 18], + ["access", 20, "function", 3134, 18], + ["get", 21, 57, 1, 3134, 11], + ["frame", 22, 21, 3, 3134, 11], + ["stone_text", 20], + ["setarg", 22, 1, 20, 3134, 11], + ["setarg", 22, 2, 18, 3134, 11], + ["setarg", 22, 3, 9, 3134, 11], + ["invoke", 22, 18, 3134, 11], + ["access", 18, 0, 3135, 29], + ["ge", 20, 2, 18, 3135, 29], + ["jump_false", 20, "if_else_764", 3135, 29], + ["access", 2, "move", 3136, 20], + ["get", 18, 57, 1, 3136, 13], + ["frame", 20, 18, 3, 3136, 13], ["stone_text", 2], - ["setarg", 19, 1, 2, 2832, 13], - ["setarg", 19, 2, 10, 2832, 13], - ["setarg", 19, 3, 11, 2832, 13], - ["invoke", 19, 2, 2832, 13], - ["jump", "if_end_830", 2832, 13], - "if_else_829", - "if_end_830", - ["jump", "if_end_824", 2832, 13], - "if_else_823", - "if_end_824", - ["access", 2, 1, 2835, 19], - "_nop_tc_5", - "_nop_tc_6", - "_nop_tc_7", - "_nop_tc_8", - ["add", 4, 4, 2, 2835, 19], - ["jump", "num_done_832", 2835, 19], - "num_err_831", - "_nop_ucfg_1", - "_nop_ucfg_2", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "num_done_832", - ["jump", "while_start_821", 2835, 19], - "while_end_822", - ["jump", "if_end_820", 2835, 19], - "if_else_819", - "if_end_820", - ["access", 4, 0, 2840, 10], - "while_start_833", - ["length", 2, 13, 2841, 24], - ["lt", 5, 4, 2, 2841, 24], - ["jump_false", 5, "while_end_834", 2841, 24], - ["load_index", 2, 13, 4, 2842, 25], - ["move", 14, 2, 2842, 25], - ["load_field", 5, 2, "kind", 2843, 14], - ["move", 15, 5, 2843, 14], - ["null", 2, 2844, 19], - ["ne", 6, 5, 2, 2844, 19], - ["jump_false", 6, "if_else_835", 2844, 19], - ["access", 2, "call", 2845, 21], - ["eq", 5, 15, 2, 2845, 21], - ["jump_false", 5, "if_else_837", 2845, 21], - ["load_field", 2, 14, "expression", 2846, 37], - ["access", 5, -1, 2846, 54], - ["get", 6, 97, 1, 2846, 28], - ["frame", 7, 6, 2, 2846, 28], - ["setarg", 7, 1, 2, 2846, 28], - ["setarg", 7, 2, 5, 2846, 28], - ["invoke", 7, 2, 2846, 28], - ["move", 12, 2, 2846, 28], - ["jump", "if_end_838", 2846, 28], - "if_else_837", - ["access", 2, "return", 2847, 28], - ["eq", 5, 15, 2, 2847, 28], - ["move", 2, 5, 2847, 28], - ["jump_true", 5, "or_end_843", 2847, 28], - ["access", 5, "disrupt", 2847, 48], - ["eq", 6, 15, 5, 2847, 48], - ["move", 2, 6, 2847, 48], - "or_end_843", - ["move", 5, 2, 2847, 48], - ["jump_true", 2, "or_end_842", 2847, 48], - ["access", 2, "break", 2848, 28], - ["eq", 6, 15, 2, 2848, 28], - ["move", 5, 6, 2848, 28], - "or_end_842", - ["move", 2, 5, 2848, 28], - ["jump_true", 5, "or_end_841", 2848, 28], - ["access", 5, "continue", 2848, 47], - ["eq", 6, 15, 5, 2848, 47], - ["move", 2, 6, 2848, 47], - "or_end_841", - ["jump_false", 2, "if_else_839", 2848, 47], - ["get", 2, 104, 1, 2849, 11], - ["frame", 5, 2, 1, 2849, 11], - ["setarg", 5, 1, 14, 2849, 11], - ["invoke", 5, 2, 2849, 11], - ["access", 12, -1, 2850, 28], - ["jump", "if_end_840", 2850, 28], - "if_else_839", - ["access", 2, "var", 2851, 28], - ["eq", 5, 15, 2, 2851, 28], - ["move", 2, 5, 2851, 28], - ["jump_true", 5, "or_end_855", 2851, 28], - ["access", 5, "def", 2851, 45], - ["eq", 6, 15, 5, 2851, 45], - ["move", 2, 6, 2851, 45], - "or_end_855", - ["move", 5, 2, 2851, 45], - ["jump_true", 2, "or_end_854", 2851, 45], - ["access", 2, "var_list", 2852, 28], - ["eq", 6, 15, 2, 2852, 28], - ["move", 5, 6, 2852, 28], - "or_end_854", - ["move", 2, 5, 2852, 28], - ["jump_true", 5, "or_end_853", 2852, 28], - ["access", 5, "def_list", 2852, 50], - ["eq", 6, 15, 5, 2852, 50], - ["move", 2, 6, 2852, 50], - "or_end_853", - ["move", 5, 2, 2852, 50], - ["jump_true", 2, "or_end_852", 2852, 50], - ["access", 2, "function", 2853, 28], - ["eq", 6, 15, 2, 2853, 28], - ["move", 5, 6, 2853, 28], - "or_end_852", - ["move", 2, 5, 2853, 28], - ["jump_true", 5, "or_end_851", 2853, 28], - ["access", 5, "block", 2853, 50], - ["eq", 6, 15, 5, 2853, 50], - ["move", 2, 6, 2853, 50], - "or_end_851", - ["move", 5, 2, 2853, 50], - ["jump_true", 2, "or_end_850", 2853, 50], - ["access", 2, "if", 2854, 28], - ["eq", 6, 15, 2, 2854, 28], - ["move", 5, 6, 2854, 28], - "or_end_850", - ["move", 2, 5, 2854, 28], - ["jump_true", 5, "or_end_849", 2854, 28], - ["access", 5, "while", 2854, 44], - ["eq", 6, 15, 5, 2854, 44], - ["move", 2, 6, 2854, 44], - "or_end_849", - ["move", 5, 2, 2854, 44], - ["jump_true", 2, "or_end_848", 2854, 44], - ["access", 2, "do", 2855, 28], - ["eq", 6, 15, 2, 2855, 28], - ["move", 5, 6, 2855, 28], - "or_end_848", - ["move", 2, 5, 2855, 28], - ["jump_true", 5, "or_end_847", 2855, 28], - ["access", 5, "for", 2855, 44], - ["eq", 6, 15, 5, 2855, 44], - ["move", 2, 6, 2855, 44], - "or_end_847", - ["move", 5, 2, 2855, 44], - ["jump_true", 2, "or_end_846", 2855, 44], - ["access", 2, "switch", 2856, 28], - ["eq", 6, 15, 2, 2856, 28], - ["move", 5, 6, 2856, 28], - "or_end_846", - ["jump_false", 5, "if_else_844", 2856, 28], - ["get", 2, 104, 1, 2857, 11], - ["frame", 5, 2, 1, 2857, 11], - ["setarg", 5, 1, 14, 2857, 11], - ["invoke", 5, 2, 2857, 11], - ["access", 12, -1, 2858, 28], - ["jump", "if_end_845", 2858, 28], - "if_else_844", - ["access", 2, -1, 2860, 43], - ["get", 5, 97, 1, 2860, 28], - ["frame", 6, 5, 2, 2860, 28], - ["setarg", 6, 1, 14, 2860, 28], - ["setarg", 6, 2, 2, 2860, 28], - ["invoke", 6, 2, 2860, 28], - ["move", 12, 2, 2860, 28], - "if_end_845", - "if_end_840", - "if_end_838", - ["jump", "if_end_836", 2860, 28], - "if_else_835", - ["get", 2, 104, 1, 2863, 9], - ["frame", 5, 2, 1, 2863, 9], - ["setarg", 5, 1, 14, 2863, 9], - ["invoke", 5, 2, 2863, 9], - "if_end_836", - ["access", 2, 1, 2865, 17], - "_nop_tc_9", - "_nop_tc_10", - "_nop_tc_11", - "_nop_tc_12", - ["add", 4, 4, 2, 2865, 17], - ["jump", "num_done_857", 2865, 17], - "num_err_856", - "_nop_ucfg_13", - "_nop_ucfg_14", - "_nop_ucfg_15", - "_nop_ucfg_16", - "_nop_ucfg_17", - "_nop_ucfg_18", - "_nop_ucfg_19", - "_nop_ucfg_20", - "_nop_ucfg_21", - "_nop_ucfg_22", - "_nop_ucfg_23", - "_nop_ucfg_24", - "num_done_857", - ["jump", "while_start_833", 2865, 17], - "while_end_834", - ["access", 2, 0, 2868, 27], - ["ge", 4, 12, 2, 2868, 27], - ["jump_false", 4, "if_else_858", 2868, 27], - ["access", 2, "return", 2869, 14], - ["get", 4, 54, 1, 2869, 7], - ["frame", 5, 4, 2, 2869, 7], + ["setarg", 20, 1, 2, 3136, 13], + ["setarg", 20, 2, 10, 3136, 13], + ["setarg", 20, 3, 11, 3136, 13], + ["invoke", 20, 2, 3136, 13], + ["jump", "if_end_765", 3136, 13], + "if_else_764", + "if_end_765", + ["jump", "if_end_761", 3136, 13], + "if_else_760", + "if_end_761", + ["access", 2, 1, 3139, 19], + ["add", 4, 4, 2, 3139, 19], + ["jump", "while_start_758", 3139, 19], + "while_end_759", + ["jump", "if_end_757", 3139, 19], + "if_else_756", + "if_end_757", + ["access", 4, 0, 3144, 10], + "while_start_766", + ["length", 2, 13, 3145, 24], + ["lt", 18, 4, 2, 3145, 24], + ["jump_false", 18, "while_end_767", 3145, 24], + ["load_index", 2, 13, 4, 3146, 25], + ["move", 14, 2, 3146, 25], + ["load_field", 18, 2, "kind", 3147, 14], + ["move", 15, 18, 3147, 14], + ["null", 2, 3148, 19], + ["ne", 20, 18, 2, 3148, 19], + ["jump_false", 20, "if_else_768", 3148, 19], + ["access", 2, "call", 3149, 21], + ["eq", 18, 15, 2, 3149, 21], + ["jump_false", 18, "if_else_770", 3149, 21], + ["load_field", 2, 14, "expression", 3150, 37], + ["access", 18, -1, 3150, 54], + ["get", 20, 101, 1, 3150, 28], + ["frame", 21, 20, 2, 3150, 28], + ["setarg", 21, 1, 2, 3150, 28], + ["setarg", 21, 2, 18, 3150, 28], + ["invoke", 21, 2, 3150, 28], + ["move", 12, 2, 3150, 28], + ["jump", "if_end_771", 3150, 28], + "if_else_770", + ["access", 2, "return", 3151, 28], + ["eq", 18, 15, 2, 3151, 28], + ["move", 2, 18, 3151, 28], + ["jump_true", 18, "or_end_776", 3151, 28], + ["access", 18, "disrupt", 3151, 48], + ["eq", 20, 15, 18, 3151, 48], + ["move", 2, 20, 3151, 48], + "or_end_776", + ["move", 18, 2, 3151, 48], + ["jump_true", 2, "or_end_775", 3151, 48], + ["access", 2, "break", 3152, 28], + ["eq", 20, 15, 2, 3152, 28], + ["move", 18, 20, 3152, 28], + "or_end_775", + ["move", 2, 18, 3152, 28], + ["jump_true", 18, "or_end_774", 3152, 28], + ["access", 18, "continue", 3152, 47], + ["eq", 20, 15, 18, 3152, 47], + ["move", 2, 20, 3152, 47], + "or_end_774", + ["jump_false", 2, "if_else_772", 3152, 47], + ["get", 2, 114, 1, 3153, 11], + ["frame", 18, 2, 1, 3153, 11], + ["setarg", 18, 1, 14, 3153, 11], + ["invoke", 18, 2, 3153, 11], + ["access", 12, -1, 3154, 28], + ["jump", "if_end_773", 3154, 28], + "if_else_772", + ["access", 2, "var", 3155, 28], + ["eq", 18, 15, 2, 3155, 28], + ["move", 2, 18, 3155, 28], + ["jump_true", 18, "or_end_788", 3155, 28], + ["access", 18, "def", 3155, 45], + ["eq", 20, 15, 18, 3155, 45], + ["move", 2, 20, 3155, 45], + "or_end_788", + ["move", 18, 2, 3155, 45], + ["jump_true", 2, "or_end_787", 3155, 45], + ["access", 2, "var_list", 3156, 28], + ["eq", 20, 15, 2, 3156, 28], + ["move", 18, 20, 3156, 28], + "or_end_787", + ["move", 2, 18, 3156, 28], + ["jump_true", 18, "or_end_786", 3156, 28], + ["access", 18, "def_list", 3156, 50], + ["eq", 20, 15, 18, 3156, 50], + ["move", 2, 20, 3156, 50], + "or_end_786", + ["move", 18, 2, 3156, 50], + ["jump_true", 2, "or_end_785", 3156, 50], + ["access", 2, "function", 3157, 28], + ["eq", 20, 15, 2, 3157, 28], + ["move", 18, 20, 3157, 28], + "or_end_785", + ["move", 2, 18, 3157, 28], + ["jump_true", 18, "or_end_784", 3157, 28], + ["access", 18, "block", 3157, 50], + ["eq", 20, 15, 18, 3157, 50], + ["move", 2, 20, 3157, 50], + "or_end_784", + ["move", 18, 2, 3157, 50], + ["jump_true", 2, "or_end_783", 3157, 50], + ["access", 2, "if", 3158, 28], + ["eq", 20, 15, 2, 3158, 28], + ["move", 18, 20, 3158, 28], + "or_end_783", + ["move", 2, 18, 3158, 28], + ["jump_true", 18, "or_end_782", 3158, 28], + ["access", 18, "while", 3158, 44], + ["eq", 20, 15, 18, 3158, 44], + ["move", 2, 20, 3158, 44], + "or_end_782", + ["move", 18, 2, 3158, 44], + ["jump_true", 2, "or_end_781", 3158, 44], + ["access", 2, "do", 3159, 28], + ["eq", 20, 15, 2, 3159, 28], + ["move", 18, 20, 3159, 28], + "or_end_781", + ["move", 2, 18, 3159, 28], + ["jump_true", 18, "or_end_780", 3159, 28], + ["access", 18, "for", 3159, 44], + ["eq", 20, 15, 18, 3159, 44], + ["move", 2, 20, 3159, 44], + "or_end_780", + ["move", 18, 2, 3159, 44], + ["jump_true", 2, "or_end_779", 3159, 44], + ["access", 2, "switch", 3160, 28], + ["eq", 20, 15, 2, 3160, 28], + ["move", 18, 20, 3160, 28], + "or_end_779", + ["jump_false", 18, "if_else_777", 3160, 28], + ["get", 2, 114, 1, 3161, 11], + ["frame", 18, 2, 1, 3161, 11], + ["setarg", 18, 1, 14, 3161, 11], + ["invoke", 18, 2, 3161, 11], + ["access", 12, -1, 3162, 28], + ["jump", "if_end_778", 3162, 28], + "if_else_777", + ["access", 2, -1, 3164, 43], + ["get", 18, 101, 1, 3164, 28], + ["frame", 20, 18, 2, 3164, 28], + ["setarg", 20, 1, 14, 3164, 28], + ["setarg", 20, 2, 2, 3164, 28], + ["invoke", 20, 2, 3164, 28], + ["move", 12, 2, 3164, 28], + "if_end_778", + "if_end_773", + "if_end_771", + ["jump", "if_end_769", 3164, 28], + "if_else_768", + ["get", 2, 114, 1, 3167, 9], + ["frame", 18, 2, 1, 3167, 9], + ["setarg", 18, 1, 14, 3167, 9], + ["invoke", 18, 2, 3167, 9], + "if_end_769", + ["access", 2, 1, 3169, 17], + ["add", 4, 4, 2, 3169, 17], + ["jump", "while_start_766", 3169, 17], + "while_end_767", + ["access", 2, 0, 3172, 27], + ["ge", 18, 12, 2, 3172, 27], + ["jump_false", 18, "if_else_789", 3172, 27], + ["access", 2, "return", 3173, 14], + ["get", 18, 56, 1, 3173, 7], + ["frame", 20, 18, 2, 3173, 7], ["stone_text", 2], - ["setarg", 5, 1, 2, 2869, 7], - ["setarg", 5, 2, 12, 2869, 7], - ["invoke", 5, 2, 2869, 7], - ["jump", "if_end_859", 2869, 7], - "if_else_858", - ["get", 2, 44, 1, 2871, 19], - ["frame", 4, 2, 0, 2871, 19], - ["invoke", 4, 2, 2871, 19], - ["move", 16, 2, 2871, 19], - ["access", 4, "null", 2872, 14], - ["get", 5, 54, 1, 2872, 7], - ["frame", 6, 5, 2, 2872, 7], - ["stone_text", 4], - ["setarg", 6, 1, 4, 2872, 7], - ["setarg", 6, 2, 2, 2872, 7], - ["invoke", 6, 4, 2872, 7], - ["access", 4, "return", 2873, 14], - ["get", 5, 54, 1, 2873, 7], - ["frame", 6, 5, 2, 2873, 7], - ["stone_text", 4], - ["setarg", 6, 1, 4, 2873, 7], - ["setarg", 6, 2, 2, 2873, 7], - ["invoke", 6, 2, 2873, 7], - "if_end_859", + ["setarg", 20, 1, 2, 3173, 7], + ["setarg", 20, 2, 12, 3173, 7], + ["invoke", 20, 2, 3173, 7], + ["jump", "if_end_790", 3173, 7], + "if_else_789", + ["get", 2, 46, 1, 3175, 19], + ["frame", 18, 2, 0, 3175, 19], + ["invoke", 18, 2, 3175, 19], + ["move", 16, 2, 3175, 19], + ["access", 18, "null", 3176, 14], + ["get", 20, 56, 1, 3176, 7], + ["frame", 21, 20, 2, 3176, 7], + ["stone_text", 18], + ["setarg", 21, 1, 18, 3176, 7], + ["setarg", 21, 2, 2, 3176, 7], + ["invoke", 21, 18, 3176, 7], + ["access", 18, "return", 3177, 14], + ["get", 20, 56, 1, 3177, 7], + ["frame", 21, 20, 2, 3177, 7], + ["stone_text", 18], + ["setarg", 21, 1, 18, 3177, 7], + ["setarg", 21, 2, 2, 3177, 7], + ["invoke", 21, 2, 3177, 7], + "if_end_790", ["record", 2, 0], - ["move", 17, 2, 2876, 14], - ["null", 2, 2877, 31], - ["ne", 4, 3, 2, 2877, 31], - ["jump_false", 4, "tern_else_860", 2877, 31], - ["move", 2, 3, 2877, 38], - ["jump", "tern_end_861", 2877, 38], - "tern_else_860", - ["access", 4, "", 2877, 49], - ["move", 2, 4, 2877, 49], - "tern_end_861", - ["store_field", 17, 2, "name", 2877, 5], - ["get", 2, 11, 1, 2878, 19], - ["store_field", 17, 2, "data", 2878, 5], - ["get", 2, 12, 1, 2879, 24], - ["store_field", 17, 2, "functions", 2879, 5], + ["move", 17, 2, 3180, 14], + ["null", 2, 3181, 31], + ["ne", 18, 3, 2, 3181, 31], + ["jump_false", 18, "tern_else_791", 3181, 31], + ["move", 2, 3, 3181, 38], + ["jump", "tern_end_792", 3181, 38], + "tern_else_791", + ["access", 18, "", 3181, 49], + ["stone_text", 18], + ["move", 2, 18, 3181, 49], + "tern_end_792", + ["store_field", 17, 2, "name", 3181, 5], + ["get", 2, 11, 1, 3182, 19], + ["store_field", 17, 2, "data", 3182, 5], + ["get", 2, 12, 1, 3183, 24], + ["store_field", 17, 2, "functions", 3183, 5], ["record", 2, 4], - ["access", 4, 0, 2881, 16], - ["store_field", 2, 4, "nr_args", 2881, 16], - ["access", 4, 0, 2882, 23], - ["store_field", 2, 4, "nr_close_slots", 2882, 23], - ["get", 4, 19, 1, 2883, 17], - ["access", 5, 1, 2883, 30], - ["is_num", 6, 4, 2883, 30], - ["jump_false", 6, "num_err_862", 2883, 30], - "_nop_tc_13", - "_nop_tc_14", - ["add", 6, 4, 5, 2883, 30], - ["jump", "num_done_863", 2883, 30], - "num_err_862", - [ - "access", - 4, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 2883, - 30 - ], - ["access", 5, "error", 2883, 30], - ["access", 7, "cannot apply '+': operands must be numbers", 2883, 30], - ["array", 8, 0, 2883, 30], - ["stone_text", 7], - ["push", 8, 7, 2883, 30], - ["frame", 7, 4, 2, 2883, 30], - ["null", 4, 2883, 30], - ["setarg", 7, 0, 4, 2883, 30], - ["stone_text", 5], - ["setarg", 7, 1, 5, 2883, 30], - ["setarg", 7, 2, 8, 2883, 30], - ["invoke", 7, 4, 2883, 30], - ["disrupt", 2883, 30], - "num_done_863", - ["store_field", 2, 6, "nr_slots", 2883, 30], - ["get", 4, 2, 1, 2884, 21], - ["store_field", 2, 4, "instructions", 2884, 21], - ["store_field", 17, 2, "main", 2880, 5], - ["null", 2, 2887, 21], - ["ne", 4, 3, 2, 2887, 21], - ["jump_false", 4, "if_else_864", 2887, 21], - ["store_field", 17, 3, "filename", 2888, 7], - ["jump", "if_end_865", 2888, 7], - "if_else_864", - "if_end_865", - ["return", 17, 2891, 12], + ["access", 18, 0, 3185, 16], + ["store_field", 2, 18, "nr_args", 3185, 16], + ["access", 18, 0, 3186, 23], + ["store_field", 2, 18, "nr_close_slots", 3186, 23], + ["get", 18, 19, 1, 3187, 17], + ["access", 20, 1, 3187, 30], + ["is_num", 21, 18, 3187, 30], + ["jump_false", 21, "num_err_752", 3187, 30], + ["add", 4, 18, 20, 3187, 30], + ["store_field", 2, 4, "nr_slots", 3187, 30], + ["get", 4, 2, 1, 3188, 21], + ["store_field", 2, 4, "instructions", 3188, 21], + ["store_field", 17, 2, "main", 3184, 5], + ["null", 2, 3191, 21], + ["ne", 4, 3, 2, 3191, 21], + ["jump_false", 4, "if_else_793", 3191, 21], + ["store_field", 17, 3, "filename", 3192, 7], + ["jump", "if_end_794", 3192, 7], + "if_else_793", + "if_end_794", + ["return", 17, 3195, 12], "_nop_ur_1", "_nop_ur_2" ], - "_write_types": [null, null, "int", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "array", "record", "array", "array", "array", null, "int", "int", "int", "int", "int", "int", "int", "int", "record", "null", "null", "record", "int", null, null, null, "int", null, "num", null, "bool", null, "text", "text", "array", null, null, "null", null, null, "bool", null, "null", "bool", "int", "bool", null, null, "null", "bool", null, null, null, null, null, "int", "num", "bool", null, null, "text", "text", "array", null, null, "null", null, "bool", null, "text", "text", "array", null, null, "null", null, null, null, null, null, null, "text", null, null, null, "int", "bool", "text", null, null, null, "int", null, null, null, null, null, null, null, null, null, "int", "bool", null, null, "null", "bool", "text", "bool", null, "int", null, null, null, "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", null, null, null, "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", null, null, null, "int", null, null, null, null, null, null, "int", null, null, null, null, null, null, null, null, null, "int", "bool", "text", null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, "record", "null", "bool", null, "text", null, null, "record", "int", "int", null, "int", "num", "bool", null, null, "text", "text", "array", null, null, "null", null, "null", "bool", null], + "_write_types": [null, null, "int", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "array", "record", "array", "array", "array", null, "int", "int", "int", "int", "int", "int", "int", "int", "record", "null", "bool", "null", "null", "record", "int", null, null, null, "int", null, "num", "bool", null, "text", "text", "array", null, null, "null", null, null, "bool", null, "null", "bool", "int", "bool", null, null, "null", "bool", null, null, null, null, null, "int", "num", "bool", null, "bool", null, "text", "text", "array", null, null, "null", null, null, null, null, null, null, "text", null, null, null, "int", "bool", "text", null, null, null, "int", "int", "bool", null, null, "null", "bool", "text", "bool", null, "int", null, null, null, "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", null, null, null, "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "bool", "text", "bool", null, null, null, "int", null, null, null, null, null, null, "int", "int", "bool", "text", null, null, null, null, null, null, "text", null, null, null, "text", null, null, null, "record", "null", "bool", null, "text", null, null, "record", "int", "int", null, "int", "num", "bool", null, "null", "bool", null], "name": "", "filename": ".cell/packages/core/mcode.cm", "nr_args": 1 @@ -14110,8 +14416,8 @@ { "_closure_slot_types": {}, "disruption_pc": 0, - "nr_slots": 113, - "nr_close_slots": 110, + "nr_slots": 123, + "nr_close_slots": 120, "instructions": [ ["record", 2, 21], ["access", 3, "add", 6, 10], @@ -14249,7 +14555,7 @@ ["access", 6, "ushr", 34, 41], ["store_field", 2, 6, ">>>=", 34, 41], ["move", 6, 2, 34, 41], - ["record", 2, 10], + ["record", 2, 22], ["access", 7, "is_array", 38, 15], ["store_field", 2, 7, "is_array", 38, 15], ["access", 7, "is_func", 38, 40], @@ -14268,263 +14574,305 @@ ["store_field", 2, 7, "is_logical", 40, 38], ["access", 7, "is_null", 40, 58], ["store_field", 2, 7, "is_null", 40, 58], - ["access", 7, "length", 41, 13], - ["store_field", 2, 7, "length", 41, 13], - ["move", 7, 2, 41, 13], + ["access", 7, "is_blob", 41, 14], + ["store_field", 2, 7, "is_blob", 41, 14], + ["access", 7, "is_data", 41, 34], + ["store_field", 2, 7, "is_data", 41, 34], + ["access", 7, "is_true", 42, 14], + ["store_field", 2, 7, "is_true", 42, 14], + ["access", 7, "is_false", 42, 35], + ["store_field", 2, 7, "is_false", 42, 35], + ["access", 7, "is_fit", 42, 55], + ["store_field", 2, 7, "is_fit", 42, 55], + ["access", 7, "is_char", 43, 19], + ["store_field", 2, 7, "is_character", 43, 19], + ["access", 7, "is_digit", 43, 40], + ["store_field", 2, 7, "is_digit", 43, 40], + ["access", 7, "is_letter", 43, 63], + ["store_field", 2, 7, "is_letter", 43, 63], + ["access", 7, "is_lower", 44, 15], + ["store_field", 2, 7, "is_lower", 44, 15], + ["access", 7, "is_upper", 44, 37], + ["store_field", 2, 7, "is_upper", 44, 37], + ["access", 7, "is_ws", 44, 64], + ["store_field", 2, 7, "is_whitespace", 44, 64], + ["access", 7, "is_actor", 45, 15], + ["store_field", 2, 7, "is_actor", 45, 15], + ["access", 7, "length", 46, 13], + ["store_field", 2, 7, "length", 46, 13], + ["move", 7, 2, 46, 13], ["record", 2, 6], - ["access", 8, "abs", 46, 10], - ["store_field", 2, 8, "abs", 46, 10], - ["access", 8, "sign", 47, 11], - ["store_field", 2, 8, "sign", 47, 11], - ["access", 8, "fraction", 48, 15], - ["store_field", 2, 8, "fraction", 48, 15], - ["access", 8, "integer", 49, 14], - ["store_field", 2, 8, "integer", 49, 14], - ["access", 8, "integer", 50, 12], - ["store_field", 2, 8, "whole", 50, 12], - ["access", 8, "negate", 51, 10], - ["store_field", 2, 8, "neg", 51, 10], - ["move", 8, 2, 51, 10], + ["access", 8, "abs", 51, 10], + ["store_field", 2, 8, "abs", 51, 10], + ["access", 8, "sign", 52, 11], + ["store_field", 2, 8, "sign", 52, 11], + ["access", 8, "fraction", 53, 15], + ["store_field", 2, 8, "fraction", 53, 15], + ["access", 8, "integer", 54, 14], + ["store_field", 2, 8, "integer", 54, 14], + ["access", 8, "integer", 55, 12], + ["store_field", 2, 8, "whole", 55, 12], + ["access", 8, "negate", 56, 10], + ["store_field", 2, 8, "neg", 56, 10], + ["move", 8, 2, 56, 10], ["record", 2, 4], - ["access", 9, "modulo", 54, 13], - ["store_field", 2, 9, "modulo", 54, 13], - ["access", 9, "remainder", 55, 16], - ["store_field", 2, 9, "remainder", 55, 16], - ["access", 9, "max", 56, 10], - ["store_field", 2, 9, "max", 56, 10], - ["access", 9, "min", 57, 10], - ["store_field", 2, 9, "min", 57, 10], - ["move", 9, 2, 57, 10], + ["access", 9, "modulo", 59, 13], + ["store_field", 2, 9, "modulo", 59, 13], + ["access", 9, "remainder", 60, 16], + ["store_field", 2, 9, "remainder", 60, 16], + ["access", 9, "max", 61, 10], + ["store_field", 2, 9, "max", 61, 10], + ["access", 9, "min", 62, 10], + ["store_field", 2, 9, "min", 62, 10], + ["move", 9, 2, 62, 10], ["record", 2, 4], - ["access", 10, "floor", 60, 12], - ["store_field", 2, 10, "floor", 60, 12], - ["access", 10, "ceiling", 61, 14], - ["store_field", 2, 10, "ceiling", 61, 14], - ["access", 10, "round", 62, 12], - ["store_field", 2, 10, "round", 62, 12], - ["access", 10, "trunc", 63, 12], - ["store_field", 2, 10, "trunc", 63, 12], - ["move", 10, 2, 63, 12], - ["null", 2, 67, 24], - ["null", 11, 68, 16], - ["null", 12, 69, 21], - ["null", 13, 70, 16], - ["access", 14, 0, 71, 21], - ["access", 15, 0, 72, 19], - ["access", 16, 0, 73, 26], - ["access", 17, 0, 74, 26], - ["access", 18, 0, 75, 26], - ["access", 19, 0, 76, 20], - ["access", 20, 0, 77, 25], - ["access", 21, 0, 78, 24], - ["null", 22, 79, 22], - ["null", 23, 80, 25], + ["access", 10, "floor", 65, 12], + ["store_field", 2, 10, "floor", 65, 12], + ["access", 10, "ceiling", 66, 14], + ["store_field", 2, 10, "ceiling", 66, 14], + ["access", 10, "round", 67, 12], + ["store_field", 2, 10, "round", 67, 12], + ["access", 10, "trunc", 68, 12], + ["store_field", 2, 10, "trunc", 68, 12], + ["move", 10, 2, 68, 12], + ["null", 2, 72, 24], + ["null", 11, 73, 16], + ["null", 12, 74, 21], + ["null", 13, 75, 16], + ["access", 14, 0, 76, 21], + ["access", 15, 0, 77, 19], + ["access", 16, 0, 78, 26], + ["access", 17, 0, 79, 26], + ["access", 18, 0, 80, 26], + ["access", 19, 0, 81, 20], + ["access", 20, 0, 82, 25], + ["access", 21, 0, 83, 24], + ["null", 22, 84, 22], + ["null", 23, 85, 25], ["record", 24, 0], - ["move", 25, 24, 81, 21], - ["null", 24, 82, 25], - ["false", 26, 83, 20], - ["access", 27, 0, 84, 23], - ["null", 28, 85, 18], - ["null", 29, 86, 27], - ["access", 30, 0, 87, 20], - ["access", 31, 0, 88, 19], - ["null", 32, 89, 20], - ["false", 33, 90, 26], + ["move", 25, 24, 86, 21], + ["null", 24, 87, 25], + ["false", 26, 88, 20], + ["access", 27, 0, 89, 23], + ["null", 28, 90, 18], + ["null", 29, 91, 27], + ["access", 30, 0, 92, 20], + ["access", 31, 0, 93, 19], + ["null", 32, 94, 20], + ["false", 33, 95, 26], ["record", 34, 0], - ["move", 35, 34, 91, 22], - ["access", 34, 0, 94, 18], - ["access", 36, 0, 95, 18], - ["access", 37, 0, 96, 19], - ["null", 38, 97, 16], - ["null", 39, 98, 16], - ["null", 40, 99, 20], - ["function", 41, 0, 102, 20], - ["move", 42, 41, 102, 20], - ["function", 41, 1, 125, 23], - ["move", 43, 41, 125, 23], - ["function", 41, 2, 147, 20], - ["move", 44, 41, 147, 20], - ["function", 41, 3, 157, 17], - ["move", 45, 41, 157, 17], - ["function", 41, 4, 161, 18], - ["move", 46, 41, 161, 18], - ["function", 41, 5, 173, 24], - ["move", 47, 41, 173, 24], - ["function", 41, 6, 185, 27], - ["move", 48, 41, 185, 27], - ["function", 41, 7, 202, 19], - ["move", 49, 41, 202, 19], - ["function", 41, 8, 209, 17], - ["move", 50, 41, 209, 17], - ["function", 41, 9, 219, 19], - ["move", 51, 41, 219, 19], - ["function", 41, 10, 225, 20], - ["move", 52, 41, 225, 20], - ["function", 41, 11, 229, 16], - ["move", 53, 41, 229, 16], - ["function", 41, 12, 233, 16], - ["move", 54, 41, 233, 16], - ["function", 41, 13, 237, 16], - ["move", 55, 41, 237, 16], - ["function", 41, 14, 241, 16], - ["move", 56, 41, 241, 16], - ["function", 41, 15, 250, 21], - ["move", 57, 41, 250, 21], - ["function", 41, 16, 255, 24], - ["move", 58, 41, 255, 24], - ["function", 41, 17, 259, 24], - ["move", 59, 41, 259, 24], - ["function", 41, 18, 263, 25], - ["move", 60, 41, 263, 25], - ["function", 41, 19, 271, 25], - ["move", 61, 41, 271, 25], - ["function", 41, 20, 275, 24], - ["move", 62, 41, 275, 24], - ["function", 41, 21, 296, 19], - ["move", 63, 41, 296, 19], - ["function", 41, 22, 300, 24], - ["move", 64, 41, 300, 24], - ["function", 41, 23, 313, 23], - ["move", 65, 41, 313, 23], - ["function", 41, 24, 319, 25], - ["move", 66, 41, 319, 25], - ["function", 41, 25, 337, 21], - ["move", 67, 41, 337, 21], - ["function", 41, 26, 342, 22], - ["move", 68, 41, 342, 22], - ["function", 41, 27, 346, 19], - ["move", 69, 41, 346, 19], - ["function", 41, 28, 350, 24], - ["move", 70, 41, 350, 24], - ["function", 41, 29, 356, 29], - ["move", 71, 41, 356, 29], - ["function", 41, 30, 413, 28], - ["move", 72, 41, 413, 28], - ["function", 41, 31, 440, 28], - ["move", 73, 41, 440, 28], - ["function", 41, 32, 446, 28], - ["move", 74, 41, 446, 28], - ["function", 41, 33, 452, 25], - ["move", 75, 41, 452, 25], - ["function", 41, 34, 458, 29], - ["move", 76, 41, 458, 29], - ["function", 41, 35, 482, 20], - ["move", 77, 41, 482, 20], - ["function", 41, 36, 506, 23], - ["move", 78, 41, 506, 23], - ["function", 41, 37, 510, 23], - ["move", 79, 41, 510, 23], - ["function", 41, 38, 514, 23], - ["move", 80, 41, 514, 23], - ["function", 41, 39, 524, 23], - ["move", 81, 41, 524, 23], - ["function", 41, 40, 534, 19], - ["move", 82, 41, 534, 19], - ["function", 41, 41, 548, 26], - ["move", 83, 41, 548, 26], - ["function", 41, 42, 599, 30], - ["move", 84, 41, 599, 30], - ["function", 41, 43, 658, 22], - ["move", 85, 41, 658, 22], - ["function", 41, 44, 675, 29], - ["move", 86, 41, 675, 29], - ["function", 41, 45, 693, 25], - ["move", 87, 41, 693, 25], - ["function", 41, 46, 721, 34], - ["move", 88, 41, 721, 34], - ["function", 41, 47, 736, 35], - ["move", 89, 41, 736, 35], - ["function", 41, 48, 754, 34], - ["move", 90, 41, 754, 34], - ["function", 41, 49, 771, 20], - ["move", 91, 41, 771, 20], - ["function", 41, 50, 834, 27], - ["move", 92, 41, 834, 27], - ["true", 41, 846, 23], - ["true", 93, 847, 23], - ["true", 94, 848, 22], - ["true", 95, 849, 21], - ["true", 96, 850, 23], - ["function", 97, 51, 855, 26], - ["move", 98, 97, 855, 26], - ["function", 97, 52, 915, 30], - ["move", 99, 97, 915, 30], - ["function", 97, 53, 972, 29], - ["move", 100, 97, 972, 29], - ["function", 97, 54, 1025, 28], - ["move", 101, 97, 1025, 28], - ["function", 97, 55, 1078, 30], - ["move", 102, 97, 1078, 30], - ["function", 97, 56, 1141, 30], - ["move", 103, 97, 1141, 30], - ["null", 97, 1267, 18], - ["null", 104, 1268, 23], - ["null", 105, 1269, 22], - ["function", 106, 57, 1272, 31], - ["move", 107, 106, 1272, 31], - ["function", 106, 58, 1278, 20], - ["move", 108, 106, 1278, 20], - ["array", 106, 0, 1349, 23], - ["move", 109, 106, 1349, 23], - ["function", 106, 59, 1351, 29], - ["move", 110, 106, 1351, 29], - ["function", 106, 60, 1443, 20], - ["move", 111, 106, 1443, 20], - ["function", 106, 61, 1540, 14], - ["move", 97, 106, 1540, 14], - ["function", 106, 62, 2154, 19], - ["move", 104, 106, 2154, 19], - ["function", 106, 63, 2566, 18], - ["move", 105, 106, 2566, 18], - ["function", 106, 64, 2770, 21], - ["move", 112, 106, 2770, 21], - ["frame", 112, 106, 1, 2894, 10], - ["setarg", 112, 1, 1, 2894, 10], - ["tail_invoke", 112, 106, 2894, 10], - ["return", 106, 2894, 10], + ["move", 35, 34, 96, 22], + ["null", 34, 97, 25], + ["false", 36, 98, 27], + ["access", 37, 0, 101, 18], + ["access", 38, 0, 102, 18], + ["access", 39, 0, 103, 19], + ["null", 40, 104, 16], + ["null", 41, 105, 16], + ["null", 42, 106, 20], + ["function", 43, 0, 109, 20], + ["move", 44, 43, 109, 20], + ["function", 43, 1, 134, 23], + ["move", 45, 43, 134, 23], + ["function", 43, 2, 158, 20], + ["move", 46, 43, 158, 20], + ["function", 43, 3, 168, 17], + ["move", 47, 43, 168, 17], + ["function", 43, 4, 172, 18], + ["move", 48, 43, 172, 18], + ["function", 43, 5, 184, 24], + ["move", 49, 43, 184, 24], + ["function", 43, 6, 196, 27], + ["move", 50, 43, 196, 27], + ["function", 43, 7, 213, 19], + ["move", 51, 43, 213, 19], + ["function", 43, 8, 220, 17], + ["move", 52, 43, 220, 17], + ["function", 43, 9, 230, 19], + ["move", 53, 43, 230, 19], + ["function", 43, 10, 236, 20], + ["move", 54, 43, 236, 20], + ["function", 43, 11, 240, 16], + ["move", 55, 43, 240, 16], + ["function", 43, 12, 244, 16], + ["move", 56, 43, 244, 16], + ["function", 43, 13, 248, 16], + ["move", 57, 43, 248, 16], + ["function", 43, 14, 252, 16], + ["move", 58, 43, 252, 16], + ["function", 43, 15, 261, 21], + ["move", 59, 43, 261, 21], + ["function", 43, 16, 266, 24], + ["move", 60, 43, 266, 24], + ["function", 43, 17, 270, 24], + ["move", 61, 43, 270, 24], + ["function", 43, 18, 274, 25], + ["move", 62, 43, 274, 25], + ["function", 43, 19, 282, 25], + ["move", 63, 43, 282, 25], + ["function", 43, 20, 286, 24], + ["move", 64, 43, 286, 24], + ["function", 43, 21, 307, 19], + ["move", 65, 43, 307, 19], + ["function", 43, 22, 311, 24], + ["move", 66, 43, 311, 24], + ["function", 43, 23, 324, 23], + ["move", 67, 43, 324, 23], + ["function", 43, 24, 330, 25], + ["move", 68, 43, 330, 25], + ["function", 43, 25, 348, 21], + ["move", 69, 43, 348, 21], + ["function", 43, 26, 353, 22], + ["move", 70, 43, 353, 22], + ["function", 43, 27, 357, 19], + ["move", 71, 43, 357, 19], + ["function", 43, 28, 361, 24], + ["move", 72, 43, 361, 24], + ["function", 43, 29, 367, 29], + ["move", 73, 43, 367, 29], + ["function", 43, 30, 424, 28], + ["move", 74, 43, 424, 28], + ["function", 43, 31, 463, 28], + ["move", 75, 43, 463, 28], + ["function", 43, 32, 469, 28], + ["move", 76, 43, 469, 28], + ["function", 43, 33, 475, 25], + ["move", 77, 43, 475, 25], + ["function", 43, 34, 481, 29], + ["move", 78, 43, 481, 29], + ["function", 43, 35, 512, 20], + ["move", 79, 43, 512, 20], + ["function", 43, 36, 536, 23], + ["move", 80, 43, 536, 23], + ["function", 43, 37, 540, 23], + ["move", 81, 43, 540, 23], + ["function", 43, 38, 544, 23], + ["move", 82, 43, 544, 23], + ["function", 43, 39, 554, 23], + ["move", 83, 43, 554, 23], + ["function", 43, 40, 564, 19], + ["move", 84, 43, 564, 19], + ["function", 43, 41, 578, 26], + ["move", 85, 43, 578, 26], + ["function", 43, 42, 629, 30], + ["move", 86, 43, 629, 30], + ["function", 43, 43, 688, 22], + ["move", 87, 43, 688, 22], + ["function", 43, 44, 705, 29], + ["move", 88, 43, 705, 29], + ["function", 43, 45, 723, 25], + ["move", 89, 43, 723, 25], + ["function", 43, 46, 751, 34], + ["move", 90, 43, 751, 34], + ["function", 43, 47, 766, 35], + ["move", 91, 43, 766, 35], + ["function", 43, 48, 784, 34], + ["move", 92, 43, 784, 34], + ["function", 43, 49, 801, 20], + ["move", 93, 43, 801, 20], + ["function", 43, 50, 864, 27], + ["move", 94, 43, 864, 27], + ["true", 43, 876, 23], + ["true", 95, 877, 23], + ["true", 96, 878, 22], + ["true", 97, 879, 21], + ["true", 98, 880, 23], + ["true", 99, 881, 20], + ["true", 100, 882, 21], + ["function", 101, 51, 888, 25], + ["move", 102, 101, 888, 25], + ["function", 101, 52, 925, 27], + ["move", 103, 101, 925, 27], + ["function", 101, 53, 939, 27], + ["move", 104, 101, 939, 27], + ["function", 101, 54, 957, 26], + ["move", 105, 101, 957, 26], + ["function", 101, 56, 996, 30], + ["move", 106, 101, 996, 30], + ["function", 101, 57, 1056, 29], + ["move", 107, 101, 1056, 29], + ["function", 101, 58, 1109, 28], + ["move", 108, 101, 1109, 28], + ["function", 101, 60, 1162, 30], + ["move", 109, 101, 1162, 30], + ["function", 101, 63, 1199, 28], + ["move", 110, 101, 1199, 28], + ["function", 101, 64, 1315, 27], + ["move", 111, 101, 1315, 27], + ["function", 101, 65, 1375, 37], + ["move", 112, 101, 1375, 37], + ["function", 101, 66, 1405, 30], + ["move", 113, 101, 1405, 30], + ["null", 101, 1531, 18], + ["null", 114, 1532, 23], + ["null", 115, 1533, 22], + ["function", 116, 67, 1536, 31], + ["move", 117, 116, 1536, 31], + ["function", 116, 68, 1542, 20], + ["move", 118, 116, 1542, 20], + ["array", 116, 0, 1613, 23], + ["move", 119, 116, 1613, 23], + ["function", 116, 69, 1615, 29], + ["move", 120, 116, 1615, 29], + ["function", 116, 70, 1707, 20], + ["move", 121, 116, 1707, 20], + ["function", 116, 71, 1803, 14], + ["move", 101, 116, 1803, 14], + ["function", 116, 72, 2454, 19], + ["move", 114, 116, 2454, 19], + ["function", 116, 73, 2866, 18], + ["move", 115, 116, 2866, 18], + ["function", 116, 74, 3072, 21], + ["move", 122, 116, 3072, 21], + ["frame", 122, 116, 1, 3198, 10], + ["setarg", 122, 1, 1, 3198, 10], + ["tail_invoke", 122, 116, 3198, 10], + ["return", 116, 3198, 10], "_nop_ur_1", "_nop_ur_2" ], - "_write_types": [null, null, null, null, null, null, null, null, "function", "function", "function", "record", "record", "record", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "record", "function", "function", "function", null, null, "function", null, "bool", "bool", "bool", "bool", "bool", "record", "record", "record", "function", "function", "function", "function", "array", "function", "function", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "function", "function", "record", "function", "function", "function", "function", "record", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "record", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "record", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "record", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "record", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "record", "text", "text", "text", "text", "text", "text", "record", "text", "text", "text", "text", "record", "text", "text", "text", "text", "record", "record", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "array", "function", "function", "function", "function", "function", "function", null, null, null], + "_write_types": [null, null, null, null, null, null, null, null, "function", "function", "function", "record", "record", "record", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "record", "function", "function", "function", null, null, "function", null, "bool", "bool", "bool", "bool", "bool", "bool", "bool", "record", "record", "record", "function", "function", "function", "function", "array", "function", "function", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "function", "function", "record", "function", "function", "function", "function", "record", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "record", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "record", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "record", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "record", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "text", "record", "text", "text", "text", "text", "text", "text", "record", "text", "text", "text", "text", "record", "text", "text", "text", "text", "record", "record", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "function", "array", "function", "function", "function", "function", "function", "function", null, null, null], "name": "", "filename": ".cell/packages/core/mcode.cm", "nr_args": 1, "closure_written": { + "105": true, + "108": true, "4": true, - "85": true, + "106": true, "89": true, "88": true, "94": true, "92": true, - "83": true, + "112": true, + "107": true, "93": true, - "81": true, "5": true, - "82": true, + "109": true, "101": true, "99": true, - "91": true, "3": true, + "91": true, + "114": true, + "111": true, "104": true, "7": true, "103": true, "98": true, - "80": true, "100": true, "96": true, - "95": true, "102": true, + "95": true, "97": true, "6": true, - "84": true, - "86": true, - "87": true, "90": true, - "2": true + "2": true, + "110": true, + "113": true } } ], - "_parent_fc": 66, + "_parent_fc": 76, "main": { "nr_slots": 4, "nr_close_slots": 0, @@ -14545,9 +14893,9 @@ ["stone_text", 1], ["setarg", 3, 1, 1, 1, 12], ["invoke", 3, 1, 1, 12], - ["function", 1, 65, 3, 13], + ["function", 1, 75, 3, 13], ["move", 2, 1, 3, 13], - ["return", 1, 2897, 8], + ["return", 1, 3201, 8], "_nop_ur_1", "_nop_ur_2" ], @@ -14556,6 +14904,6 @@ }, "name": ".cell/packages/core/mcode.cm", "filename": ".cell/packages/core/mcode.cm", - "_parent_of": [65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 66], + "_parent_of": [75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 56, 75, 75, 75, 60, 75, 63, 63, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 76], "data": {} } \ No newline at end of file diff --git a/boot/parse.cm.mcode b/boot/parse.cm.mcode index 306dedd1..a887e6fc 100644 --- a/boot/parse.cm.mcode +++ b/boot/parse.cm.mcode @@ -14,8 +14,6 @@ ["access", 4, 1, 25, 23], ["is_num", 5, 3, 25, 23], ["jump_false", 5, "num_err_0", 25, 23], - "_nop_tc_1", - "_nop_tc_2", ["add", 5, 3, 4, 25, 23], ["jump", "num_done_1", 25, 23], "num_err_0", @@ -31,7 +29,7 @@ 23 ], ["access", 4, "error", 25, 23], - ["access", 6, "cannot apply '+': operands must be numbers", 25, 23], + ["access", 6, "operands must be numbers", 25, 23], ["array", 7, 0, 25, 23], ["stone_text", 6], ["push", 7, 6, 25, 23], @@ -50,107 +48,49 @@ "while_start_2", ["get", 3, 5, 1, 27, 12], ["get", 4, 1, 1, 27, 28], - ["length", 5, 4, 27, 28], - ["lt", 4, 3, 5, 27, 28], + ["length", 6, 4, 27, 28], + ["lt", 4, 3, 6, 27, 28], ["jump_false", 4, "while_end_3", 27, 28], ["get", 3, 1, 1, 28, 11], ["get", 4, 5, 1, 28, 18], - ["load_dynamic", 5, 3, 4, 28, 18], - ["move", 1, 5, 28, 18], - ["load_field", 3, 5, "kind", 29, 11], + ["load_dynamic", 6, 3, 4, 28, 18], + ["move", 1, 6, 28, 18], + ["load_field", 3, 6, "kind", 29, 11], ["move", 2, 3, 29, 11], ["access", 4, "space", 30, 16], - ["eq", 5, 3, 4, 30, 16], - ["move", 3, 5, 30, 16], - ["jump_true", 5, "or_end_6", 30, 16], + ["eq", 6, 3, 4, 30, 16], + ["move", 3, 6, 30, 16], + ["jump_true", 6, "or_end_6", 30, 16], ["access", 4, "comment", 30, 32], - ["eq", 5, 2, 4, 30, 32], - ["move", 3, 5, 30, 32], + ["eq", 6, 2, 4, 30, 32], + ["move", 3, 6, 30, 32], "or_end_6", ["jump_false", 3, "if_else_4", 30, 32], ["get", 3, 5, 1, 31, 18], ["access", 4, 1, 31, 27], - ["is_num", 5, 3, 31, 27], - ["jump_false", 5, "num_err_7", 31, 27], - "_nop_tc_3", - "_nop_tc_4", - ["add", 5, 3, 4, 31, 27], - ["jump", "num_done_8", 31, 27], - "num_err_7", - [ - "access", - 3, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 31, - 27 - ], - ["access", 4, "error", 31, 27], - ["access", 6, "cannot apply '+': operands must be numbers", 31, 27], - ["array", 7, 0, 31, 27], - ["stone_text", 6], - ["push", 7, 6, 31, 27], - ["frame", 6, 3, 2, 31, 27], - ["null", 3, 31, 27], - ["setarg", 6, 0, 3, 31, 27], - ["stone_text", 4], - ["setarg", 6, 1, 4, 31, 27], - ["setarg", 6, 2, 7, 31, 27], - ["invoke", 6, 3, 31, 27], - ["disrupt", 31, 27], - "num_done_8", - ["put", 5, 5, 1, 31, 27], + ["is_num", 6, 3, 31, 27], + ["jump_false", 6, "num_err_0", 31, 27], + ["add", 6, 3, 4, 31, 27], + ["put", 6, 5, 1, 31, 27], ["jump", "while_start_2", 32, 9], "_nop_ucfg_1", "if_else_4", "if_end_5", ["access", 3, "newline", 34, 16], ["eq", 4, 2, 3, 34, 16], - ["jump_false", 4, "if_else_9", 34, 16], + ["jump_false", 4, "if_else_7", 34, 16], ["true", 3, 35, 18], ["put", 3, 9, 1, 35, 18], ["get", 3, 5, 1, 36, 18], ["access", 4, 1, 36, 27], - ["is_num", 5, 3, 36, 27], - ["jump_false", 5, "num_err_11", 36, 27], - "_nop_tc_5", - "_nop_tc_6", - ["add", 5, 3, 4, 36, 27], - ["jump", "num_done_12", 36, 27], - "num_err_11", - [ - "access", - 3, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 36, - 27 - ], - ["access", 4, "error", 36, 27], - ["access", 6, "cannot apply '+': operands must be numbers", 36, 27], - ["array", 7, 0, 36, 27], - ["stone_text", 6], - ["push", 7, 6, 36, 27], - ["frame", 6, 3, 2, 36, 27], - ["null", 3, 36, 27], - ["setarg", 6, 0, 3, 36, 27], - ["stone_text", 4], - ["setarg", 6, 1, 4, 36, 27], - ["setarg", 6, 2, 7, 36, 27], - ["invoke", 6, 3, 36, 27], - ["disrupt", 36, 27], - "num_done_12", - ["put", 5, 5, 1, 36, 27], + ["is_num", 6, 3, 36, 27], + ["jump_false", 6, "num_err_0", 36, 27], + ["add", 6, 3, 4, 36, 27], + ["put", 6, 5, 1, 36, 27], ["jump", "while_start_2", 37, 9], "_nop_ucfg_2", - "if_else_9", - "if_end_10", + "if_else_7", + "if_end_8", ["put", 1, 8, 1, 39, 13], ["null", 1, 40, 14], ["return", 1, 40, 14], @@ -160,32 +100,15 @@ ["get", 2, 1, 1, 42, 25], ["length", 3, 2, 42, 25], ["access", 2, 1, 42, 35], - "_nop_tc_7", - "_nop_tc_8", - "_nop_tc_9", - "_nop_tc_10", + "_nop_tc_1", + "_nop_tc_2", ["subtract", 4, 3, 2, 42, 35], - ["jump", "num_done_14", 42, 35], - "num_err_13", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "_nop_ucfg_13", - "_nop_ucfg_14", - "num_done_14", ["load_index", 2, 1, 4, 42, 35], ["put", 2, 8, 1, 42, 35], ["null", 1, 42, 35], ["return", 1, 42, 35] ], - "_write_types": [null, null, null, null, null, "int", "num", "bool", null, null, "text", "text", "array", null, null, "null", "bool", null, null, "int", "bool", null, null, null, null, "text", "bool", "bool", "text", "bool", null, "int", "num", "bool", null, null, "text", "text", "array", null, null, "null", "text", "bool", "bool", null, "int", "num", "bool", null, null, "text", "text", "array", null, null, "null", "null", null, null, "int", "int", "int", null, null, null, null, null, null, null, null, null, null, "null"], + "_write_types": [null, null, null, null, null, "int", "num", "bool", null, "text", "text", "array", null, null, "null", "bool", null, null, "int", "bool", null, null, null, null, "text", "bool", "bool", "text", "bool", null, "int", "num", "bool", "text", "bool", "bool", null, "int", "num", "bool", "null", null, null, "int", "int", "int", null, null, "null"], "name": "", "filename": ".cell/packages/core/parse.cm", "nr_args": 0 @@ -199,12 +122,10 @@ ["get", 2, 5, 1, 46, 13], ["access", 3, 1, 46, 22], ["is_num", 4, 2, 46, 22], - ["jump_false", 4, "num_err_15", 46, 22], - "_nop_tc_1", - "_nop_tc_2", + ["jump_false", 4, "num_err_9", 46, 22], ["add", 4, 2, 3, 46, 22], - ["jump", "num_done_16", 46, 22], - "num_err_15", + ["jump", "num_done_10", 46, 22], + "num_err_9", [ "access", 2, @@ -217,7 +138,7 @@ 22 ], ["access", 3, "error", 46, 22], - ["access", 5, "cannot apply '+': operands must be numbers", 46, 22], + ["access", 5, "operands must be numbers", 46, 22], ["array", 6, 0, 46, 22], ["stone_text", 5], ["push", 6, 5, 46, 22], @@ -229,16 +150,16 @@ ["setarg", 5, 2, 6, 46, 22], ["invoke", 5, 2, 46, 22], ["disrupt", 46, 22], - "num_done_16", + "num_done_10", ["move", 2, 4, 46, 22], ["access", 3, 0, 47, 17], ["null", 4, 48, 13], ["null", 5, 49, 13], - "while_start_17", + "while_start_11", ["get", 6, 1, 1, 50, 23], ["length", 7, 6, 50, 23], ["lt", 6, 2, 7, 50, 23], - ["jump_false", 6, "while_end_18", 50, 23], + ["jump_false", 6, "while_end_12", 50, 23], ["get", 6, 1, 1, 51, 11], ["load_dynamic", 7, 6, 2, 51, 18], ["move", 4, 7, 51, 18], @@ -247,101 +168,48 @@ ["access", 7, "space", 53, 16], ["ne", 8, 6, 7, 53, 16], ["move", 6, 8, 53, 16], - ["jump_false", 8, "and_end_22", 53, 16], + ["jump_false", 8, "and_end_16", 53, 16], ["access", 7, "comment", 53, 32], ["ne", 8, 5, 7, 53, 32], ["move", 6, 8, 53, 32], - "and_end_22", + "and_end_16", ["move", 7, 6, 53, 32], - ["jump_false", 6, "and_end_21", 53, 32], + ["jump_false", 6, "and_end_15", 53, 32], ["access", 6, "newline", 53, 50], ["ne", 8, 5, 6, 53, 50], ["move", 7, 8, 53, 50], - "and_end_21", - ["jump_false", 7, "if_else_19", 53, 50], + "and_end_15", + ["jump_false", 7, "if_else_13", 53, 50], ["access", 6, 1, 54, 25], - "_nop_tc_3", - "_nop_tc_4", - "_nop_tc_5", - "_nop_tc_6", ["add", 3, 3, 6, 54, 25], - ["jump", "num_done_24", 54, 25], - "num_err_23", - "_nop_ucfg_1", - "_nop_ucfg_2", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "num_done_24", ["eq", 6, 3, 1, 55, 22], - ["jump_false", 6, "if_else_25", 55, 22], + ["jump_false", 6, "if_else_17", 55, 22], ["return", 4, 55, 32], "_nop_ur_1", - "if_else_25", - "if_end_26", - ["jump", "if_end_20", 55, 32], - "if_else_19", - "if_end_20", + "if_else_17", + "if_end_18", + ["jump", "if_end_14", 55, 32], + "if_else_13", + "if_end_14", ["access", 6, 1, 57, 15], - "_nop_tc_7", - "_nop_tc_8", - "_nop_tc_9", - "_nop_tc_10", + "_nop_tc_1", + "_nop_tc_2", ["add", 2, 2, 6, 57, 15], - ["jump", "num_done_28", 57, 15], - "num_err_27", - "_nop_ucfg_13", - "_nop_ucfg_14", - "_nop_ucfg_15", - "_nop_ucfg_16", - "_nop_ucfg_17", - "_nop_ucfg_18", - "_nop_ucfg_19", - "_nop_ucfg_20", - "_nop_ucfg_21", - "_nop_ucfg_22", - "_nop_ucfg_23", - "_nop_ucfg_24", - "num_done_28", - ["jump", "while_start_17", 57, 15], - "while_end_18", + ["jump", "while_start_11", 57, 15], + "while_end_12", ["get", 2, 1, 1, 59, 12], ["get", 3, 1, 1, 59, 26], ["length", 4, 3, 59, 26], ["access", 3, 1, 59, 36], - "_nop_tc_11", - "_nop_tc_12", - "_nop_tc_13", - "_nop_tc_14", + "_nop_tc_3", + "_nop_tc_4", ["subtract", 5, 4, 3, 59, 36], - ["jump", "num_done_30", 59, 36], - "num_err_29", - "_nop_ucfg_25", - "_nop_ucfg_26", - "_nop_ucfg_27", - "_nop_ucfg_28", - "_nop_ucfg_29", - "_nop_ucfg_30", - "_nop_ucfg_31", - "_nop_ucfg_32", - "_nop_ucfg_33", - "_nop_ucfg_34", - "_nop_ucfg_35", - "_nop_ucfg_36", - "num_done_30", ["load_index", 3, 2, 5, 59, 36], ["return", 3, 59, 36], "_nop_ur_2", "_nop_ur_3" ], - "_write_types": [null, null, "num", "int", null, null, null, "int", "num", "bool", null, null, "text", "text", "array", null, null, "null", null, "int", "bool", null, null, null, "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "int", null, null, null, null, null, null, null, null, null, "bool", "int", null, null, null, null, null, null, null, null, null, null, null, "int", "int", "int", null, null, null, null, null, null, null, null, null, null, null], + "_write_types": [null, null, "num", "int", null, null, null, "int", "num", "bool", null, "text", "text", "array", null, null, "null", null, "int", "bool", null, null, null, "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "int", "bool", "int", null, null, null, "int", "int", "int", null, null, null], "name": "", "filename": ".cell/packages/core/parse.cm", "nr_args": 1 @@ -412,27 +280,25 @@ { "_closure_slot_types": {}, "disruption_pc": 0, - "nr_slots": 10, + "nr_slots": 9, "nr_close_slots": 0, "instructions": [ ["get", 3, 17, 1, 91, 9], ["access", 4, 5, 91, 24], ["ge", 5, 3, 4, 91, 24], - ["jump_false", 5, "if_else_31", 91, 24], + ["jump_false", 5, "if_else_19", 91, 24], ["null", 3, 91, 34], ["return", 3, 91, 34], "_nop_ur_1", - "if_else_31", - "if_end_32", + "if_else_19", + "if_end_20", ["get", 3, 17, 1, 92, 19], ["access", 4, 1, 92, 33], ["is_num", 5, 3, 92, 33], - ["jump_false", 5, "num_err_33", 92, 33], - "_nop_tc_1", - "_nop_tc_2", + ["jump_false", 5, "num_err_21", 92, 33], ["add", 5, 3, 4, 92, 33], - ["jump", "num_done_34", 92, 33], - "num_err_33", + ["jump", "num_done_22", 92, 33], + "num_err_21", [ "access", 3, @@ -445,7 +311,7 @@ 33 ], ["access", 4, "error", 92, 33], - ["access", 6, "cannot apply '+': operands must be numbers", 92, 33], + ["access", 6, "operands must be numbers", 92, 33], ["array", 7, 0, 92, 33], ["stone_text", 6], ["push", 7, 6, 92, 33], @@ -457,88 +323,30 @@ ["setarg", 6, 2, 7, 92, 33], ["invoke", 6, 3, 92, 33], ["disrupt", 92, 33], - "num_done_34", + "num_done_22", ["put", 5, 17, 1, 92, 33], ["get", 3, 18, 1, 93, 10], ["record", 4, 4], ["store_field", 4, 2, "message", 94, 16], - ["load_field", 5, 1, "from_row", 95, 13], - ["access", 6, 1, 95, 30], - ["is_num", 7, 5, 95, 30], - ["jump_false", 7, "num_err_35", 95, 30], - "_nop_tc_3", - "_nop_tc_4", - ["add", 7, 5, 6, 95, 30], - ["jump", "num_done_36", 95, 30], - "num_err_35", - [ - "access", - 5, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 95, - 30 - ], - ["access", 6, "error", 95, 30], - ["access", 8, "cannot apply '+': operands must be numbers", 95, 30], - ["array", 9, 0, 95, 30], - ["stone_text", 8], - ["push", 9, 8, 95, 30], - ["frame", 8, 5, 2, 95, 30], - ["null", 5, 95, 30], - ["setarg", 8, 0, 5, 95, 30], - ["stone_text", 6], - ["setarg", 8, 1, 6, 95, 30], - ["setarg", 8, 2, 9, 95, 30], - ["invoke", 8, 5, 95, 30], - ["disrupt", 95, 30], - "num_done_36", - ["store_field", 4, 7, "line", 95, 30], - ["load_field", 5, 1, "from_column", 96, 15], - ["access", 6, 1, 96, 35], - ["is_num", 7, 5, 96, 35], - ["jump_false", 7, "num_err_37", 96, 35], - "_nop_tc_5", - "_nop_tc_6", - ["add", 7, 5, 6, 96, 35], - ["jump", "num_done_38", 96, 35], - "num_err_37", - [ - "access", - 5, - { - "name": "log", - "kind": "name", - "make": "intrinsic" - }, - 96, - 35 - ], - ["access", 6, "error", 96, 35], - ["access", 8, "cannot apply '+': operands must be numbers", 96, 35], - ["array", 9, 0, 96, 35], - ["stone_text", 8], - ["push", 9, 8, 96, 35], - ["frame", 8, 5, 2, 96, 35], - ["null", 5, 96, 35], - ["setarg", 8, 0, 5, 96, 35], - ["stone_text", 6], - ["setarg", 8, 1, 6, 96, 35], - ["setarg", 8, 2, 9, 96, 35], - ["invoke", 8, 5, 96, 35], - ["disrupt", 96, 35], - "num_done_38", - ["store_field", 4, 7, "column", 96, 35], + ["load_field", 6, 1, "from_row", 95, 13], + ["access", 7, 1, 95, 30], + ["is_num", 8, 6, 95, 30], + ["jump_false", 8, "num_err_21", 95, 30], + ["add", 8, 6, 7, 95, 30], + ["store_field", 4, 8, "line", 95, 30], + ["load_field", 6, 1, "from_column", 96, 15], + ["access", 7, 1, 96, 35], + ["is_num", 8, 6, 96, 35], + ["jump_false", 8, "num_err_21", 96, 35], + ["add", 5, 6, 7, 96, 35], + ["store_field", 4, 5, "column", 96, 35], ["load_field", 5, 1, "at", 97, 15], ["store_field", 4, 5, "offset", 97, 15], ["is_array", 5, 3, 97, 15], - ["jump_false", 5, "push_err_39", 97, 15], + ["jump_false", 5, "push_err_23", 97, 15], ["push", 3, 4, 97, 15], - ["jump", "push_done_40", 97, 15], - "push_err_39", + ["jump", "push_done_24", 97, 15], + "push_err_23", [ "access", 3, @@ -563,11 +371,11 @@ ["setarg", 5, 2, 6, 97, 15], ["invoke", 5, 3, 97, 15], ["disrupt", 97, 15], - "push_done_40", + "push_done_24", ["null", 3, 97, 15], ["return", 3, 97, 15] ], - "_write_types": [null, null, null, null, "int", "bool", "null", null, "int", "num", "bool", null, null, "text", "text", "array", null, null, "null", null, "record", null, "int", "num", "bool", null, null, "text", "text", "array", null, null, "null", null, "int", "num", "bool", null, null, "text", "text", "array", null, null, "null", null, "bool", null, "text", "text", "array", null, null, "null", "null"], + "_write_types": [null, null, null, null, "int", "bool", "null", null, "int", "num", "bool", null, "text", "text", "array", null, null, "null", null, "record", null, "int", "num", "bool", null, "int", "num", "bool", null, "bool", null, "text", "text", "array", null, null, "null", "null"], "name": "", "filename": ".cell/packages/core/parse.cm", "nr_args": 2 @@ -601,21 +409,19 @@ ["load_field", 2, 1, "kind", 129, 9], ["access", 1, "(", 129, 21], ["ne", 3, 2, 1, 129, 21], - ["jump_false", 3, "if_else_41", 129, 21], + ["jump_false", 3, "if_else_25", 129, 21], ["false", 1, 129, 33], ["return", 1, 129, 33], "_nop_ur_1", - "if_else_41", - "if_end_42", + "if_else_25", + "if_end_26", ["get", 1, 5, 1, 130, 13], ["access", 2, 1, 130, 22], ["is_num", 3, 1, 130, 22], - ["jump_false", 3, "num_err_43", 130, 22], - "_nop_tc_1", - "_nop_tc_2", + ["jump_false", 3, "num_err_27", 130, 22], ["add", 3, 1, 2, 130, 22], - ["jump", "num_done_44", 130, 22], - "num_err_43", + ["jump", "num_done_28", 130, 22], + "num_err_27", [ "access", 1, @@ -628,7 +434,7 @@ 22 ], ["access", 2, "error", 130, 22], - ["access", 4, "cannot apply '+': operands must be numbers", 130, 22], + ["access", 4, "operands must be numbers", 130, 22], ["array", 5, 0, 130, 22], ["stone_text", 4], ["push", 5, 4, 130, 22], @@ -640,119 +446,64 @@ ["setarg", 4, 2, 5, 130, 22], ["invoke", 4, 1, 130, 22], ["disrupt", 130, 22], - "num_done_44", + "num_done_28", ["move", 1, 3, 130, 22], ["access", 2, 1, 131, 17], ["null", 3, 132, 13], - "while_start_45", + "while_start_29", ["get", 4, 1, 1, 133, 23], ["length", 5, 4, 133, 23], ["lt", 4, 1, 5, 133, 23], ["move", 5, 4, 133, 23], - ["jump_false", 4, "and_end_47", 133, 23], + ["jump_false", 4, "and_end_31", 133, 23], ["access", 4, 0, 133, 42], ["gt", 6, 2, 4, 133, 42], ["move", 5, 6, 133, 42], - "and_end_47", - ["jump_false", 5, "while_end_46", 133, 42], + "and_end_31", + ["jump_false", 5, "while_end_30", 133, 42], ["get", 4, 1, 1, 134, 11], ["load_dynamic", 5, 4, 1, 134, 18], ["load_field", 4, 5, "kind", 134, 18], ["move", 3, 4, 134, 18], ["access", 5, "(", 135, 16], ["eq", 6, 4, 5, 135, 16], - ["jump_false", 6, "if_else_48", 135, 16], + ["jump_false", 6, "if_else_32", 135, 16], ["access", 4, 1, 135, 39], - "_nop_tc_3", - "_nop_tc_4", - "_nop_tc_5", - "_nop_tc_6", ["add", 2, 2, 4, 135, 39], - ["jump", "num_done_51", 135, 39], - "num_err_50", - "_nop_ucfg_1", - "_nop_ucfg_2", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "num_done_51", - ["jump", "if_end_49", 135, 39], - "if_else_48", + ["jump", "if_end_33", 135, 39], + "if_else_32", ["access", 4, ")", 136, 21], ["eq", 5, 3, 4, 136, 21], - ["jump_false", 5, "if_else_52", 136, 21], + ["jump_false", 5, "if_else_34", 136, 21], ["access", 4, 1, 136, 44], - "_nop_tc_7", - "_nop_tc_8", - "_nop_tc_9", - "_nop_tc_10", ["subtract", 2, 2, 4, 136, 44], - ["jump", "num_done_55", 136, 44], - "num_err_54", - "_nop_ucfg_13", - "_nop_ucfg_14", - "_nop_ucfg_15", - "_nop_ucfg_16", - "_nop_ucfg_17", - "_nop_ucfg_18", - "_nop_ucfg_19", - "_nop_ucfg_20", - "_nop_ucfg_21", - "_nop_ucfg_22", - "_nop_ucfg_23", - "_nop_ucfg_24", - "num_done_55", - ["jump", "if_end_53", 136, 44], - "if_else_52", + ["jump", "if_end_35", 136, 44], + "if_else_34", ["access", 4, "text", 137, 21], ["eq", 5, 3, 4, 137, 21], ["move", 4, 5, 137, 21], - ["jump_true", 5, "or_end_58", 137, 21], + ["jump_true", 5, "or_end_38", 137, 21], ["access", 5, "number", 137, 36], ["eq", 6, 3, 5, 137, 36], ["move", 4, 6, 137, 36], - "or_end_58", - ["jump_false", 4, "if_else_56", 137, 36], - ["jump", "if_end_57", 137, 46], - "if_else_56", - "if_end_57", - "if_end_53", - "if_end_49", + "or_end_38", + ["jump_false", 4, "if_else_36", 137, 36], + ["jump", "if_end_37", 137, 46], + "if_else_36", + "if_end_37", + "if_end_35", + "if_end_33", ["access", 4, 1, 138, 15], - "_nop_tc_11", - "_nop_tc_12", - "_nop_tc_13", - "_nop_tc_14", + "_nop_tc_1", + "_nop_tc_2", ["add", 1, 1, 4, 138, 15], - ["jump", "num_done_60", 138, 15], - "num_err_59", - "_nop_ucfg_25", - "_nop_ucfg_26", - "_nop_ucfg_27", - "_nop_ucfg_28", - "_nop_ucfg_29", - "_nop_ucfg_30", - "_nop_ucfg_31", - "_nop_ucfg_32", - "_nop_ucfg_33", - "_nop_ucfg_34", - "_nop_ucfg_35", - "_nop_ucfg_36", - "num_done_60", - ["jump", "while_start_45", 138, 15], - "while_end_46", - "while_start_61", + ["jump", "while_start_29", 138, 15], + "while_end_30", + "while_start_39", ["get", 2, 1, 1, 140, 23], ["length", 4, 2, 140, 23], ["lt", 2, 1, 4, 140, 23], - ["jump_false", 2, "while_end_62", 140, 23], + ["jump_false", 2, "while_end_40", 140, 23], ["get", 2, 1, 1, 141, 11], ["load_dynamic", 4, 2, 1, 141, 18], ["load_field", 2, 4, "kind", 141, 18], @@ -760,54 +511,35 @@ ["access", 4, "space", 142, 16], ["ne", 5, 2, 4, 142, 16], ["move", 2, 5, 142, 16], - ["jump_false", 5, "and_end_66", 142, 16], + ["jump_false", 5, "and_end_44", 142, 16], ["access", 4, "newline", 142, 32], ["ne", 5, 3, 4, 142, 32], ["move", 2, 5, 142, 32], - "and_end_66", + "and_end_44", ["move", 4, 2, 142, 32], - ["jump_false", 2, "and_end_65", 142, 32], + ["jump_false", 2, "and_end_43", 142, 32], ["access", 2, "comment", 142, 50], ["ne", 5, 3, 2, 142, 50], ["move", 4, 5, 142, 50], - "and_end_65", - ["jump_false", 4, "if_else_63", 142, 50], - ["jump", "while_end_62", 142, 61], - "_nop_ucfg_37", - "if_else_63", - "if_end_64", + "and_end_43", + ["jump_false", 4, "if_else_41", 142, 50], + ["jump", "while_end_40", 142, 61], + "_nop_ucfg_1", + "if_else_41", + "if_end_42", ["access", 2, 1, 143, 15], - "_nop_tc_15", - "_nop_tc_16", - "_nop_tc_17", - "_nop_tc_18", ["add", 1, 1, 2, 143, 15], - ["jump", "num_done_68", 143, 15], - "num_err_67", - "_nop_ucfg_38", - "_nop_ucfg_39", - "_nop_ucfg_40", - "_nop_ucfg_41", - "_nop_ucfg_42", - "_nop_ucfg_43", - "_nop_ucfg_44", - "_nop_ucfg_45", - "_nop_ucfg_46", - "_nop_ucfg_47", - "_nop_ucfg_48", - "_nop_ucfg_49", - "num_done_68", - ["jump", "while_start_61", 143, 15], - "while_end_62", + ["jump", "while_start_39", 143, 15], + "while_end_40", ["get", 2, 1, 1, 145, 21], ["length", 3, 2, 145, 21], ["ge", 2, 1, 3, 145, 21], - ["jump_false", 2, "if_else_69", 145, 21], + ["jump_false", 2, "if_else_45", 145, 21], ["false", 2, 145, 37], ["return", 2, 145, 37], "_nop_ur_2", - "if_else_69", - "if_end_70", + "if_else_45", + "if_end_46", ["get", 2, 1, 1, 146, 12], ["load_dynamic", 3, 2, 1, 146, 19], ["load_field", 1, 3, "kind", 146, 19], @@ -817,7 +549,7 @@ "_nop_ur_3", "_nop_ur_4" ], - "_write_types": [null, "num", "int", null, null, null, "text", "bool", "bool", null, "int", "num", "bool", null, null, "text", "text", "array", null, null, "null", null, "int", "bool", "bool", "int", "bool", null, null, null, "text", "bool", "int", null, null, null, null, null, null, null, null, null, "text", "bool", "int", null, null, null, null, null, null, null, null, null, "text", "bool", "bool", "text", "bool", "int", null, null, null, null, null, null, null, null, null, null, "int", "bool", null, null, null, "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "int", null, null, null, null, null, null, null, null, null, null, "int", "bool", "bool", null, null, null, "text", "bool", null], + "_write_types": [null, "num", "int", null, null, null, "text", "bool", "bool", null, "int", "num", "bool", null, "text", "text", "array", null, null, "null", null, "int", "bool", "bool", "int", "bool", null, null, null, "text", "bool", "int", "text", "bool", "int", "text", "bool", "bool", "text", "bool", "int", null, null, "int", "bool", null, null, null, "text", "bool", "bool", "text", "bool", "bool", "text", "bool", "int", null, "int", "bool", "bool", null, null, null, "text", "bool", null], "name": "", "filename": ".cell/packages/core/parse.cm", "nr_args": 0 @@ -827,7 +559,7 @@ "1_2": "function" }, "disruption_pc": 0, - "nr_slots": 46, + "nr_slots": 49, "nr_close_slots": 0, "instructions": [ ["get", 1, 8, 1, 150, 17], @@ -876,7 +608,7 @@ ["false", 42, 190, 23], ["access", 43, "number", 192, 14], ["eq", 44, 4, 43, 192, 14], - ["jump_false", 44, "if_else_71", 192, 14], + ["jump_false", 44, "if_else_47", 192, 14], ["access", 4, "number", 193, 23], ["get", 43, 21, 1, 193, 14], ["frame", 44, 43, 2, 193, 14], @@ -900,174 +632,165 @@ ["invoke", 44, 43, 197, 7], ["return", 4, 198, 14], "_nop_ur_1", - "if_else_71", - "if_end_72", + "if_else_47", + "if_end_48", ["access", 4, "text", 200, 14], ["eq", 43, 3, 4, 200, 14], - ["jump_false", 43, "if_else_73", 200, 14], + ["jump_false", 43, "if_else_49", 200, 14], ["get", 4, 8, 1, 202, 12], ["load_field", 43, 4, "value", 202, 12], ["move", 21, 43, 202, 12], ["false", 22, 203, 20], ["access", 23, 0, 204, 12], - "while_start_75", + "while_start_51", ["length", 4, 21, 205, 26], ["access", 43, 1, 205, 32], "_nop_tc_1", "_nop_tc_2", - "_nop_tc_3", - "_nop_tc_4", ["subtract", 44, 4, 43, 205, 32], - ["jump", "num_done_78", 205, 32], - "num_err_77", - "_nop_ucfg_1", - "_nop_ucfg_2", - "_nop_ucfg_3", - "_nop_ucfg_4", - "_nop_ucfg_5", - "_nop_ucfg_6", - "_nop_ucfg_7", - "_nop_ucfg_8", - "_nop_ucfg_9", - "_nop_ucfg_10", - "_nop_ucfg_11", - "_nop_ucfg_12", - "num_done_78", + ["jump", "num_done_54", 205, 32], + "num_err_53", + [ + "access", + 4, + { + "name": "log", + "kind": "name", + "make": "intrinsic" + }, + 205, + 32 + ], + ["access", 43, "error", 205, 32], + ["access", 45, "operands must be numbers", 205, 32], + ["array", 46, 0, 205, 32], + ["stone_text", 45], + ["push", 46, 45, 205, 32], + ["frame", 45, 4, 2, 205, 32], + ["null", 4, 205, 32], + ["setarg", 45, 0, 4, 205, 32], + ["stone_text", 43], + ["setarg", 45, 1, 43, 205, 32], + ["setarg", 45, 2, 46, 205, 32], + ["invoke", 45, 4, 205, 32], + ["disrupt", 205, 32], + "num_done_54", ["lt", 4, 23, 44, 205, 32], - ["jump_false", 4, "while_end_76", 205, 32], + ["jump_false", 4, "while_end_52", 205, 32], ["load_index", 4, 21, 23, 206, 16], ["access", 43, "$", 206, 23], - ["eq", 44, 4, 43, 206, 23], - ["move", 4, 44, 206, 23], - ["jump_false", 44, "and_end_81", 206, 23], + ["eq", 45, 4, 43, 206, 23], + ["move", 4, 45, 206, 23], + ["jump_false", 45, "and_end_57", 206, 23], ["access", 43, 1, 206, 38], - ["add", 44, 23, 43, 206, 38], - ["load_index", 43, 21, 44, 206, 38], - ["access", 44, "{", 206, 44], - ["eq", 45, 43, 44, 206, 44], - ["move", 4, 45, 206, 44], - "and_end_81", - ["jump_false", 4, "if_else_79", 206, 44], + ["add", 45, 23, 43, 206, 38], + ["load_index", 43, 21, 45, 206, 38], + ["access", 45, "{", 206, 44], + ["eq", 46, 43, 45, 206, 44], + ["move", 4, 46, 206, 44], + "and_end_57", + ["jump_false", 4, "if_else_55", 206, 44], ["access", 4, 0, 207, 21], ["eq", 43, 23, 4, 207, 21], ["move", 4, 43, 207, 21], - ["jump_true", 43, "or_end_84", 207, 21], + ["jump_true", 43, "or_end_60", 207, 21], ["access", 43, 1, 207, 34], - ["subtract", 44, 23, 43, 207, 34], - ["load_index", 43, 21, 44, 207, 34], - ["access", 44, "\\", 207, 40], - ["ne", 45, 43, 44, 207, 40], - ["move", 4, 45, 207, 40], - "or_end_84", - ["jump_false", 4, "if_else_82", 207, 40], + ["subtract", 45, 23, 43, 207, 34], + ["load_index", 43, 21, 45, 207, 34], + ["access", 45, "\\", 207, 40], + ["ne", 46, 43, 45, 207, 40], + ["move", 4, 46, 207, 40], + "or_end_60", + ["jump_false", 4, "if_else_58", 207, 40], ["true", 22, 208, 26], - ["jump", "while_end_76", 209, 13], - "_nop_ucfg_13", - "if_else_82", - "if_end_83", - ["jump", "if_end_80", 209, 13], - "if_else_79", - "if_end_80", + ["jump", "while_end_52", 209, 13], + "_nop_ucfg_1", + "if_else_58", + "if_end_59", + ["jump", "if_end_56", 209, 13], + "if_else_55", + "if_end_56", ["access", 4, 1, 212, 19], - "_nop_tc_5", - "_nop_tc_6", - "_nop_tc_7", - "_nop_tc_8", ["add", 23, 23, 4, 212, 19], - ["jump", "num_done_86", 212, 19], - "num_err_85", - "_nop_ucfg_14", - "_nop_ucfg_15", - "_nop_ucfg_16", - "_nop_ucfg_17", - "_nop_ucfg_18", - "_nop_ucfg_19", - "_nop_ucfg_20", - "_nop_ucfg_21", - "_nop_ucfg_22", - "_nop_ucfg_23", - "_nop_ucfg_24", - "_nop_ucfg_25", - "num_done_86", - ["jump", "while_start_75", 212, 19], - "while_end_76", + ["jump", "while_start_51", 212, 19], + "while_end_52", ["not", 4, 22, 214, 12], - ["move", 22, 4, 214, 12], - ["jump_true", 4, "or_end_89", 214, 12], + ["move", 43, 4, 214, 12], + ["jump_true", 4, "or_end_63", 214, 12], ["get", 4, 4, 1, 214, 26], - ["null", 23, 214, 39], - ["eq", 43, 4, 23, 214, 39], - ["move", 22, 43, 214, 39], - "or_end_89", - ["jump_false", 22, "if_else_87", 214, 39], + ["null", 45, 214, 39], + ["eq", 46, 4, 45, 214, 39], + ["move", 43, 46, 214, 39], + "or_end_63", + ["jump_false", 43, "if_else_61", 214, 39], ["access", 4, "text", 215, 25], - ["get", 22, 21, 1, 215, 16], - ["frame", 23, 22, 2, 215, 16], + ["get", 43, 21, 1, 215, 16], + ["frame", 45, 43, 2, 215, 16], ["stone_text", 4], - ["setarg", 23, 1, 4, 215, 16], - ["setarg", 23, 2, 2, 215, 16], - ["invoke", 23, 4, 215, 16], + ["setarg", 45, 1, 4, 215, 16], + ["setarg", 45, 2, 2, 215, 16], + ["invoke", 45, 4, 215, 16], ["move", 1, 4, 215, 16], - ["get", 22, 8, 1, 216, 22], - ["load_field", 23, 22, "value", 216, 22], - ["store_field", 4, 23, "value", 216, 9], - ["get", 22, 15, 1, 217, 9], - ["frame", 23, 22, 0, 217, 9], - ["invoke", 23, 22, 217, 9], - ["get", 22, 22, 1, 218, 9], - ["frame", 23, 22, 1, 218, 9], - ["setarg", 23, 1, 4, 218, 9], - ["invoke", 23, 22, 218, 9], + ["get", 43, 8, 1, 216, 22], + ["load_field", 45, 43, "value", 216, 22], + ["store_field", 4, 45, "value", 216, 9], + ["get", 43, 15, 1, 217, 9], + ["frame", 45, 43, 0, 217, 9], + ["invoke", 45, 43, 217, 9], + ["get", 43, 22, 1, 218, 9], + ["frame", 45, 43, 1, 218, 9], + ["setarg", 45, 1, 4, 218, 9], + ["invoke", 45, 43, 218, 9], ["return", 4, 219, 16], "_nop_ur_2", - "if_else_87", - "if_end_88", + "if_else_61", + "if_end_62", ["access", 4, "text literal", 222, 23], - ["get", 22, 21, 1, 222, 14], - ["frame", 23, 22, 2, 222, 14], + ["get", 43, 21, 1, 222, 14], + ["frame", 45, 43, 2, 222, 14], ["stone_text", 4], - ["setarg", 23, 1, 4, 222, 14], - ["setarg", 23, 2, 2, 222, 14], - ["invoke", 23, 4, 222, 14], + ["setarg", 45, 1, 4, 222, 14], + ["setarg", 45, 2, 2, 222, 14], + ["invoke", 45, 4, 222, 14], ["move", 1, 4, 222, 14], - ["array", 22, 0, 223, 18], - ["move", 24, 22, 223, 18], - ["store_field", 4, 22, "list", 224, 7], + ["array", 43, 0, 223, 18], + ["move", 24, 43, 223, 18], + ["store_field", 4, 43, "list", 224, 7], ["array", 4, 0, 225, 19], ["move", 25, 4, 225, 19], ["access", 26, 0, 226, 13], ["access", 27, 0, 227, 13], ["length", 4, 21, 228, 22], ["move", 28, 4, 228, 22], - "while_start_90", + "while_start_64", ["lt", 4, 27, 28, 229, 20], - ["jump_false", 4, "while_end_91", 229, 20], + ["jump_false", 4, "while_end_65", 229, 20], ["load_index", 4, 21, 27, 230, 16], - ["access", 22, "\\", 230, 24], - ["eq", 23, 4, 22, 230, 24], - ["move", 4, 23, 230, 24], - ["jump_false", 23, "and_end_94", 230, 24], - ["access", 22, 1, 230, 38], - ["add", 23, 27, 22, 230, 38], - ["lt", 22, 23, 28, 230, 42], - ["move", 4, 22, 230, 42], - "and_end_94", - ["jump_false", 4, "if_else_92", 230, 42], + ["access", 43, "\\", 230, 24], + ["eq", 45, 4, 43, 230, 24], + ["move", 4, 45, 230, 24], + ["jump_false", 45, "and_end_68", 230, 24], + ["access", 43, 1, 230, 38], + ["add", 45, 27, 43, 230, 38], + ["lt", 43, 45, 28, 230, 42], + ["move", 4, 43, 230, 42], + "and_end_68", + ["jump_false", 4, "if_else_66", 230, 42], ["access", 4, 1, 231, 29], - ["add", 22, 27, 4, 231, 29], - ["load_index", 4, 21, 22, 231, 29], + ["add", 43, 27, 4, 231, 29], + ["load_index", 4, 21, 43, 231, 29], ["move", 34, 4, 231, 29], - ["get", 22, 7, 1, 232, 21], - ["load_dynamic", 23, 22, 4, 232, 41], - ["move", 35, 23, 232, 41], + ["get", 43, 7, 1, 232, 21], + ["load_dynamic", 45, 43, 4, 232, 41], + ["move", 35, 45, 232, 41], ["null", 4, 233, 26], - ["ne", 22, 23, 4, 233, 26], - ["jump_false", 22, "if_else_95", 233, 26], + ["ne", 43, 45, 4, 233, 26], + ["jump_false", 43, "if_else_69", 233, 26], ["is_array", 4, 25, 233, 50], - ["jump_false", 4, "push_err_97", 233, 50], + ["jump_false", 4, "push_err_71", 233, 50], ["push", 25, 35, 233, 50], - ["jump", "push_done_98", 233, 50], - "push_err_97", + ["jump", "push_done_72", 233, 50], + "push_err_71", [ "access", 4, @@ -1079,27 +802,27 @@ 233, 50 ], - ["access", 22, "error", 233, 50], - ["access", 23, "cannot push: target must be an array", 233, 50], - ["array", 43, 0, 233, 50], - ["stone_text", 23], - ["push", 43, 23, 233, 50], - ["frame", 23, 4, 2, 233, 50], + ["access", 43, "error", 233, 50], + ["access", 45, "cannot push: target must be an array", 233, 50], + ["array", 46, 0, 233, 50], + ["stone_text", 45], + ["push", 46, 45, 233, 50], + ["frame", 45, 4, 2, 233, 50], ["null", 4, 233, 50], - ["setarg", 23, 0, 4, 233, 50], - ["stone_text", 22], - ["setarg", 23, 1, 22, 233, 50], - ["setarg", 23, 2, 43, 233, 50], - ["invoke", 23, 4, 233, 50], + ["setarg", 45, 0, 4, 233, 50], + ["stone_text", 43], + ["setarg", 45, 1, 43, 233, 50], + ["setarg", 45, 2, 46, 233, 50], + ["invoke", 45, 4, 233, 50], ["disrupt", 233, 50], - "push_done_98", - ["jump", "if_end_96", 233, 50], - "if_else_95", + "push_done_72", + ["jump", "if_end_70", 233, 50], + "if_else_69", ["is_array", 4, 25, 234, 34], - ["jump_false", 4, "push_err_99", 234, 34], + ["jump_false", 4, "push_err_73", 234, 34], ["push", 25, 34, 234, 34], - ["jump", "push_done_100", 234, 34], - "push_err_99", + ["jump", "push_done_74", 234, 34], + "push_err_73", [ "access", 4, @@ -1111,128 +834,71 @@ 234, 34 ], - ["access", 22, "error", 234, 34], - ["access", 23, "cannot push: target must be an array", 234, 34], - ["array", 43, 0, 234, 34], - ["stone_text", 23], - ["push", 43, 23, 234, 34], - ["frame", 23, 4, 2, 234, 34], + ["access", 43, "error", 234, 34], + ["access", 45, "cannot push: target must be an array", 234, 34], + ["array", 46, 0, 234, 34], + ["stone_text", 45], + ["push", 46, 45, 234, 34], + ["frame", 45, 4, 2, 234, 34], ["null", 4, 234, 34], - ["setarg", 23, 0, 4, 234, 34], - ["stone_text", 22], - ["setarg", 23, 1, 22, 234, 34], - ["setarg", 23, 2, 43, 234, 34], - ["invoke", 23, 4, 234, 34], + ["setarg", 45, 0, 4, 234, 34], + ["stone_text", 43], + ["setarg", 45, 1, 43, 234, 34], + ["setarg", 45, 2, 46, 234, 34], + ["invoke", 45, 4, 234, 34], ["disrupt", 234, 34], - "push_done_100", - "if_end_96", + "push_done_74", + "if_end_70", ["access", 4, 2, 235, 23], - "_nop_tc_9", - "_nop_tc_10", - "_nop_tc_11", - "_nop_tc_12", ["add", 27, 27, 4, 235, 23], - ["jump", "num_done_102", 235, 23], - "num_err_101", - "_nop_ucfg_26", - "_nop_ucfg_27", - "_nop_ucfg_28", - "_nop_ucfg_29", - "_nop_ucfg_30", - "_nop_ucfg_31", - "_nop_ucfg_32", - "_nop_ucfg_33", - "_nop_ucfg_34", - "_nop_ucfg_35", - "_nop_ucfg_36", - "_nop_ucfg_37", - "num_done_102", - ["jump", "if_end_93", 235, 23], - "if_else_92", + ["jump", "if_end_67", 235, 23], + "if_else_66", ["load_index", 4, 21, 27, 236, 23], - ["access", 22, "$", 236, 31], - ["eq", 23, 4, 22, 236, 31], - ["move", 4, 23, 236, 31], - ["jump_false", 23, "and_end_106", 236, 31], - ["access", 22, 1, 236, 44], - ["add", 23, 27, 22, 236, 44], - ["lt", 22, 23, 28, 236, 48], - ["move", 4, 22, 236, 48], - "and_end_106", - ["move", 22, 4, 236, 48], - ["jump_false", 4, "and_end_105", 236, 48], + ["access", 43, "$", 236, 31], + ["eq", 45, 4, 43, 236, 31], + ["move", 4, 45, 236, 31], + ["jump_false", 45, "and_end_78", 236, 31], + ["access", 43, 1, 236, 44], + ["add", 45, 27, 43, 236, 44], + ["lt", 43, 45, 28, 236, 48], + ["move", 4, 43, 236, 48], + "and_end_78", + ["move", 43, 4, 236, 48], + ["jump_false", 4, "and_end_77", 236, 48], ["access", 4, 1, 236, 66], - ["add", 23, 27, 4, 236, 66], - ["load_index", 4, 21, 23, 236, 66], - ["access", 23, "{", 236, 72], - ["eq", 43, 4, 23, 236, 72], - ["move", 22, 43, 236, 72], - "and_end_105", - ["jump_false", 22, "if_else_103", 236, 72], + ["add", 45, 27, 4, 236, 66], + ["load_index", 4, 21, 45, 236, 66], + ["access", 45, "{", 236, 72], + ["eq", 46, 4, 45, 236, 72], + ["move", 43, 46, 236, 72], + "and_end_77", + ["jump_false", 43, "if_else_75", 236, 72], ["access", 4, 2, 237, 23], - "_nop_tc_13", - "_nop_tc_14", - "_nop_tc_15", - "_nop_tc_16", ["add", 27, 27, 4, 237, 23], - ["jump", "num_done_108", 237, 23], - "num_err_107", - "_nop_ucfg_38", - "_nop_ucfg_39", - "_nop_ucfg_40", - "_nop_ucfg_41", - "_nop_ucfg_42", - "_nop_ucfg_43", - "_nop_ucfg_44", - "_nop_ucfg_45", - "_nop_ucfg_46", - "_nop_ucfg_47", - "_nop_ucfg_48", - "_nop_ucfg_49", - "num_done_108", ["access", 29, 1, 238, 19], ["array", 4, 0, 239, 24], ["move", 30, 4, 239, 24], - "while_start_109", + "while_start_79", ["lt", 4, 27, 28, 240, 24], - ["move", 22, 4, 240, 24], - ["jump_false", 4, "and_end_111", 240, 24], + ["move", 43, 4, 240, 24], + ["jump_false", 4, "and_end_81", 240, 24], ["access", 4, 0, 240, 41], - ["gt", 23, 29, 4, 240, 41], - ["move", 22, 23, 240, 41], - "and_end_111", - ["jump_false", 22, "while_end_110", 240, 41], + ["gt", 45, 29, 4, 240, 41], + ["move", 43, 45, 240, 41], + "and_end_81", + ["jump_false", 43, "while_end_80", 240, 41], ["load_index", 4, 21, 27, 241, 21], ["move", 32, 4, 241, 21], - ["access", 22, "{", 242, 23], - ["eq", 23, 4, 22, 242, 23], - ["jump_false", 23, "if_else_112", 242, 23], + ["access", 43, "{", 242, 23], + ["eq", 45, 4, 43, 242, 23], + ["jump_false", 45, "if_else_82", 242, 23], ["access", 4, 1, 242, 46], - "_nop_tc_17", - "_nop_tc_18", - "_nop_tc_19", - "_nop_tc_20", ["add", 29, 29, 4, 242, 46], - ["jump", "num_done_115", 242, 46], - "num_err_114", - "_nop_ucfg_50", - "_nop_ucfg_51", - "_nop_ucfg_52", - "_nop_ucfg_53", - "_nop_ucfg_54", - "_nop_ucfg_55", - "_nop_ucfg_56", - "_nop_ucfg_57", - "_nop_ucfg_58", - "_nop_ucfg_59", - "_nop_ucfg_60", - "_nop_ucfg_61", - "num_done_115", ["is_array", 4, 30, 242, 66], - ["jump_false", 4, "push_err_116", 242, 66], + ["jump_false", 4, "push_err_84", 242, 66], ["push", 30, 32, 242, 66], - ["jump", "push_done_117", 242, 66], - "push_err_116", + ["jump", "push_done_85", 242, 66], + "push_err_84", [ "access", 4, @@ -1244,75 +910,37 @@ 242, 66 ], - ["access", 22, "error", 242, 66], - ["access", 23, "cannot push: target must be an array", 242, 66], - ["array", 43, 0, 242, 66], - ["stone_text", 23], - ["push", 43, 23, 242, 66], - ["frame", 23, 4, 2, 242, 66], + ["access", 43, "error", 242, 66], + ["access", 45, "cannot push: target must be an array", 242, 66], + ["array", 46, 0, 242, 66], + ["stone_text", 45], + ["push", 46, 45, 242, 66], + ["frame", 45, 4, 2, 242, 66], ["null", 4, 242, 66], - ["setarg", 23, 0, 4, 242, 66], - ["stone_text", 22], - ["setarg", 23, 1, 22, 242, 66], - ["setarg", 23, 2, 43, 242, 66], - ["invoke", 23, 4, 242, 66], + ["setarg", 45, 0, 4, 242, 66], + ["stone_text", 43], + ["setarg", 45, 1, 43, 242, 66], + ["setarg", 45, 2, 46, 242, 66], + ["invoke", 45, 4, 242, 66], ["disrupt", 242, 66], - "push_done_117", + "push_done_85", ["access", 4, 1, 242, 83], - "_nop_tc_21", - "_nop_tc_22", - "_nop_tc_23", - "_nop_tc_24", ["add", 27, 27, 4, 242, 83], - ["jump", "num_done_119", 242, 83], - "num_err_118", - "_nop_ucfg_62", - "_nop_ucfg_63", - "_nop_ucfg_64", - "_nop_ucfg_65", - "_nop_ucfg_66", - "_nop_ucfg_67", - "_nop_ucfg_68", - "_nop_ucfg_69", - "_nop_ucfg_70", - "_nop_ucfg_71", - "_nop_ucfg_72", - "_nop_ucfg_73", - "num_done_119", - ["jump", "if_end_113", 242, 83], - "if_else_112", + ["jump", "if_end_83", 242, 83], + "if_else_82", ["access", 4, "}", 243, 28], - ["eq", 22, 32, 4, 243, 28], - ["jump_false", 22, "if_else_120", 243, 28], + ["eq", 43, 32, 4, 243, 28], + ["jump_false", 43, "if_else_86", 243, 28], ["access", 4, 1, 244, 31], - "_nop_tc_25", - "_nop_tc_26", - "_nop_tc_27", - "_nop_tc_28", ["subtract", 29, 29, 4, 244, 31], - ["jump", "num_done_123", 244, 31], - "num_err_122", - "_nop_ucfg_74", - "_nop_ucfg_75", - "_nop_ucfg_76", - "_nop_ucfg_77", - "_nop_ucfg_78", - "_nop_ucfg_79", - "_nop_ucfg_80", - "_nop_ucfg_81", - "_nop_ucfg_82", - "_nop_ucfg_83", - "_nop_ucfg_84", - "_nop_ucfg_85", - "num_done_123", ["access", 4, 0, 245, 27], - ["gt", 22, 29, 4, 245, 27], - ["jump_false", 22, "if_else_124", 245, 27], + ["gt", 43, 29, 4, 245, 27], + ["jump_false", 43, "if_else_88", 245, 27], ["is_array", 4, 30, 245, 49], - ["jump_false", 4, "push_err_126", 245, 49], + ["jump_false", 4, "push_err_90", 245, 49], ["push", 30, 32, 245, 49], - ["jump", "push_done_127", 245, 49], - "push_err_126", + ["jump", "push_done_91", 245, 49], + "push_err_90", [ "access", 4, @@ -1324,67 +952,48 @@ 245, 49 ], - ["access", 22, "error", 245, 49], - ["access", 23, "cannot push: target must be an array", 245, 49], - ["array", 43, 0, 245, 49], - ["stone_text", 23], - ["push", 43, 23, 245, 49], - ["frame", 23, 4, 2, 245, 49], + ["access", 43, "error", 245, 49], + ["access", 45, "cannot push: target must be an array", 245, 49], + ["array", 46, 0, 245, 49], + ["stone_text", 45], + ["push", 46, 45, 245, 49], + ["frame", 45, 4, 2, 245, 49], ["null", 4, 245, 49], - ["setarg", 23, 0, 4, 245, 49], - ["stone_text", 22], - ["setarg", 23, 1, 22, 245, 49], - ["setarg", 23, 2, 43, 245, 49], - ["invoke", 23, 4, 245, 49], + ["setarg", 45, 0, 4, 245, 49], + ["stone_text", 43], + ["setarg", 45, 1, 43, 245, 49], + ["setarg", 45, 2, 46, 245, 49], + ["invoke", 45, 4, 245, 49], ["disrupt", 245, 49], - "push_done_127", - ["jump", "if_end_125", 245, 49], - "if_else_124", - "if_end_125", + "push_done_91", + ["jump", "if_end_89", 245, 49], + "if_else_88", + "if_end_89", ["access", 4, 1, 246, 27], - "_nop_tc_29", - "_nop_tc_30", - "_nop_tc_31", - "_nop_tc_32", ["add", 27, 27, 4, 246, 27], - ["jump", "num_done_129", 246, 27], - "num_err_128", - "_nop_ucfg_86", - "_nop_ucfg_87", - "_nop_ucfg_88", - "_nop_ucfg_89", - "_nop_ucfg_90", - "_nop_ucfg_91", - "_nop_ucfg_92", - "_nop_ucfg_93", - "_nop_ucfg_94", - "_nop_ucfg_95", - "_nop_ucfg_96", - "_nop_ucfg_97", - "num_done_129", - ["jump", "if_end_121", 246, 27], - "if_else_120", + ["jump", "if_end_87", 246, 27], + "if_else_86", ["access", 4, "'", 248, 28], - ["eq", 22, 32, 4, 248, 28], - ["move", 4, 22, 248, 28], - ["jump_true", 22, "or_end_133", 248, 28], - ["access", 22, "\"", 248, 41], - ["eq", 23, 32, 22, 248, 41], - ["move", 4, 23, 248, 41], - "or_end_133", - ["move", 22, 4, 248, 41], - ["jump_true", 4, "or_end_132", 248, 41], + ["eq", 43, 32, 4, 248, 28], + ["move", 4, 43, 248, 28], + ["jump_true", 43, "or_end_95", 248, 28], + ["access", 43, "\"", 248, 41], + ["eq", 45, 32, 43, 248, 41], + ["move", 4, 45, 248, 41], + "or_end_95", + ["move", 43, 4, 248, 41], + ["jump_true", 4, "or_end_94", 248, 41], ["access", 4, "`", 248, 55], - ["eq", 23, 32, 4, 248, 55], - ["move", 22, 23, 248, 55], - "or_end_132", - ["jump_false", 22, "if_else_130", 248, 55], + ["eq", 45, 32, 4, 248, 55], + ["move", 43, 45, 248, 55], + "or_end_94", + ["jump_false", 43, "if_else_92", 248, 55], ["move", 33, 32, 249, 20], ["is_array", 4, 30, 250, 32], - ["jump_false", 4, "push_err_134", 250, 32], + ["jump_false", 4, "push_err_96", 250, 32], ["push", 30, 32, 250, 32], - ["jump", "push_done_135", 250, 32], - "push_err_134", + ["jump", "push_done_97", 250, 32], + "push_err_96", [ "access", 4, @@ -1396,67 +1005,48 @@ 250, 32 ], - ["access", 22, "error", 250, 32], - ["access", 23, "cannot push: target must be an array", 250, 32], - ["array", 43, 0, 250, 32], - ["stone_text", 23], - ["push", 43, 23, 250, 32], - ["frame", 23, 4, 2, 250, 32], + ["access", 43, "error", 250, 32], + ["access", 45, "cannot push: target must be an array", 250, 32], + ["array", 46, 0, 250, 32], + ["stone_text", 45], + ["push", 46, 45, 250, 32], + ["frame", 45, 4, 2, 250, 32], ["null", 4, 250, 32], - ["setarg", 23, 0, 4, 250, 32], - ["stone_text", 22], - ["setarg", 23, 1, 22, 250, 32], - ["setarg", 23, 2, 43, 250, 32], - ["invoke", 23, 4, 250, 32], + ["setarg", 45, 0, 4, 250, 32], + ["stone_text", 43], + ["setarg", 45, 1, 43, 250, 32], + ["setarg", 45, 2, 46, 250, 32], + ["invoke", 45, 4, 250, 32], ["disrupt", 250, 32], - "push_done_135", + "push_done_97", ["access", 4, 1, 251, 27], - "_nop_tc_33", - "_nop_tc_34", - "_nop_tc_35", - "_nop_tc_36", ["add", 27, 27, 4, 251, 27], - ["jump", "num_done_137", 251, 27], - "num_err_136", - "_nop_ucfg_98", - "_nop_ucfg_99", - "_nop_ucfg_100", - "_nop_ucfg_101", - "_nop_ucfg_102", - "_nop_ucfg_103", - "_nop_ucfg_104", - "_nop_ucfg_105", - "_nop_ucfg_106", - "_nop_ucfg_107", - "_nop_ucfg_108", - "_nop_ucfg_109", - "num_done_137", - "while_start_138", + "while_start_98", ["lt", 4, 27, 28, 252, 28], - ["move", 22, 4, 252, 28], - ["jump_false", 4, "and_end_140", 252, 28], + ["move", 43, 4, 252, 28], + ["jump_false", 4, "and_end_100", 252, 28], ["load_index", 4, 21, 27, 252, 40], - ["ne", 23, 4, 33, 252, 48], - ["move", 22, 23, 252, 48], - "and_end_140", - ["jump_false", 22, "while_end_139", 252, 48], + ["ne", 45, 4, 33, 252, 48], + ["move", 43, 45, 252, 48], + "and_end_100", + ["jump_false", 43, "while_end_99", 252, 48], ["load_index", 4, 21, 27, 253, 24], - ["access", 22, "\\", 253, 32], - ["eq", 23, 4, 22, 253, 32], - ["move", 4, 23, 253, 32], - ["jump_false", 23, "and_end_143", 253, 32], - ["access", 22, 1, 253, 46], - ["add", 23, 27, 22, 253, 46], - ["lt", 22, 23, 28, 253, 50], - ["move", 4, 22, 253, 50], - "and_end_143", - ["jump_false", 4, "if_else_141", 253, 50], + ["access", 43, "\\", 253, 32], + ["eq", 45, 4, 43, 253, 32], + ["move", 4, 45, 253, 32], + ["jump_false", 45, "and_end_103", 253, 32], + ["access", 43, 1, 253, 46], + ["add", 45, 27, 43, 253, 46], + ["lt", 43, 45, 28, 253, 50], + ["move", 4, 43, 253, 50], + "and_end_103", + ["jump_false", 4, "if_else_101", 253, 50], ["load_index", 4, 21, 27, 254, 39], - ["is_array", 22, 30, 254, 39], - ["jump_false", 22, "push_err_144", 254, 39], + ["is_array", 43, 30, 254, 39], + ["jump_false", 43, "push_err_104", 254, 39], ["push", 30, 4, 254, 39], - ["jump", "push_done_145", 254, 39], - "push_err_144", + ["jump", "push_done_105", 254, 39], + "push_err_104", [ "access", 4, @@ -1468,50 +1058,31 @@ 254, 39 ], - ["access", 22, "error", 254, 39], - ["access", 23, "cannot push: target must be an array", 254, 39], - ["array", 43, 0, 254, 39], - ["stone_text", 23], - ["push", 43, 23, 254, 39], - ["frame", 23, 4, 2, 254, 39], + ["access", 43, "error", 254, 39], + ["access", 45, "cannot push: target must be an array", 254, 39], + ["array", 46, 0, 254, 39], + ["stone_text", 45], + ["push", 46, 45, 254, 39], + ["frame", 45, 4, 2, 254, 39], ["null", 4, 254, 39], - ["setarg", 23, 0, 4, 254, 39], - ["stone_text", 22], - ["setarg", 23, 1, 22, 254, 39], - ["setarg", 23, 2, 43, 254, 39], - ["invoke", 23, 4, 254, 39], + ["setarg", 45, 0, 4, 254, 39], + ["stone_text", 43], + ["setarg", 45, 1, 43, 254, 39], + ["setarg", 45, 2, 46, 254, 39], + ["invoke", 45, 4, 254, 39], ["disrupt", 254, 39], - "push_done_145", + "push_done_105", ["access", 4, 1, 255, 31], - "_nop_tc_37", - "_nop_tc_38", - "_nop_tc_39", - "_nop_tc_40", ["add", 27, 27, 4, 255, 31], - ["jump", "num_done_147", 255, 31], - "num_err_146", - "_nop_ucfg_110", - "_nop_ucfg_111", - "_nop_ucfg_112", - "_nop_ucfg_113", - "_nop_ucfg_114", - "_nop_ucfg_115", - "_nop_ucfg_116", - "_nop_ucfg_117", - "_nop_ucfg_118", - "_nop_ucfg_119", - "_nop_ucfg_120", - "_nop_ucfg_121", - "num_done_147", - ["jump", "if_end_142", 255, 31], - "if_else_141", - "if_end_142", + ["jump", "if_end_102", 255, 31], + "if_else_101", + "if_end_102", ["load_index", 4, 21, 27, 257, 37], - ["is_array", 22, 30, 257, 37], - ["jump_false", 22, "push_err_148", 257, 37], + ["is_array", 43, 30, 257, 37], + ["jump_false", 43, "push_err_106", 257, 37], ["push", 30, 4, 257, 37], - ["jump", "push_done_149", 257, 37], - "push_err_148", + ["jump", "push_done_107", 257, 37], + "push_err_106", [ "access", 4, @@ -1523,51 +1094,32 @@ 257, 37 ], - ["access", 22, "error", 257, 37], - ["access", 23, "cannot push: target must be an array", 257, 37], - ["array", 43, 0, 257, 37], - ["stone_text", 23], - ["push", 43, 23, 257, 37], - ["frame", 23, 4, 2, 257, 37], + ["access", 43, "error", 257, 37], + ["access", 45, "cannot push: target must be an array", 257, 37], + ["array", 46, 0, 257, 37], + ["stone_text", 45], + ["push", 46, 45, 257, 37], + ["frame", 45, 4, 2, 257, 37], ["null", 4, 257, 37], - ["setarg", 23, 0, 4, 257, 37], - ["stone_text", 22], - ["setarg", 23, 1, 22, 257, 37], - ["setarg", 23, 2, 43, 257, 37], - ["invoke", 23, 4, 257, 37], + ["setarg", 45, 0, 4, 257, 37], + ["stone_text", 43], + ["setarg", 45, 1, 43, 257, 37], + ["setarg", 45, 2, 46, 257, 37], + ["invoke", 45, 4, 257, 37], ["disrupt", 257, 37], - "push_done_149", + "push_done_107", ["access", 4, 1, 258, 29], - "_nop_tc_41", - "_nop_tc_42", - "_nop_tc_43", - "_nop_tc_44", ["add", 27, 27, 4, 258, 29], - ["jump", "num_done_151", 258, 29], - "num_err_150", - "_nop_ucfg_122", - "_nop_ucfg_123", - "_nop_ucfg_124", - "_nop_ucfg_125", - "_nop_ucfg_126", - "_nop_ucfg_127", - "_nop_ucfg_128", - "_nop_ucfg_129", - "_nop_ucfg_130", - "_nop_ucfg_131", - "_nop_ucfg_132", - "_nop_ucfg_133", - "num_done_151", - ["jump", "while_start_138", 258, 29], - "while_end_139", + ["jump", "while_start_98", 258, 29], + "while_end_99", ["lt", 4, 27, 28, 260, 25], - ["jump_false", 4, "if_else_152", 260, 25], + ["jump_false", 4, "if_else_108", 260, 25], ["load_index", 4, 21, 27, 260, 54], - ["is_array", 22, 30, 260, 54], - ["jump_false", 22, "push_err_154", 260, 54], + ["is_array", 43, 30, 260, 54], + ["jump_false", 43, "push_err_110", 260, 54], ["push", 30, 4, 260, 54], - ["jump", "push_done_155", 260, 54], - "push_err_154", + ["jump", "push_done_111", 260, 54], + "push_err_110", [ "access", 4, @@ -1579,51 +1131,32 @@ 260, 54 ], - ["access", 22, "error", 260, 54], - ["access", 23, "cannot push: target must be an array", 260, 54], - ["array", 43, 0, 260, 54], - ["stone_text", 23], - ["push", 43, 23, 260, 54], - ["frame", 23, 4, 2, 260, 54], + ["access", 43, "error", 260, 54], + ["access", 45, "cannot push: target must be an array", 260, 54], + ["array", 46, 0, 260, 54], + ["stone_text", 45], + ["push", 46, 45, 260, 54], + ["frame", 45, 4, 2, 260, 54], ["null", 4, 260, 54], - ["setarg", 23, 0, 4, 260, 54], - ["stone_text", 22], - ["setarg", 23, 1, 22, 260, 54], - ["setarg", 23, 2, 43, 260, 54], - ["invoke", 23, 4, 260, 54], + ["setarg", 45, 0, 4, 260, 54], + ["stone_text", 43], + ["setarg", 45, 1, 43, 260, 54], + ["setarg", 45, 2, 46, 260, 54], + ["invoke", 45, 4, 260, 54], ["disrupt", 260, 54], - "push_done_155", + "push_done_111", ["access", 4, 1, 260, 73], - "_nop_tc_45", - "_nop_tc_46", - "_nop_tc_47", - "_nop_tc_48", ["add", 27, 27, 4, 260, 73], - ["jump", "num_done_157", 260, 73], - "num_err_156", - "_nop_ucfg_134", - "_nop_ucfg_135", - "_nop_ucfg_136", - "_nop_ucfg_137", - "_nop_ucfg_138", - "_nop_ucfg_139", - "_nop_ucfg_140", - "_nop_ucfg_141", - "_nop_ucfg_142", - "_nop_ucfg_143", - "_nop_ucfg_144", - "_nop_ucfg_145", - "num_done_157", - ["jump", "if_end_153", 260, 73], - "if_else_152", - "if_end_153", - ["jump", "if_end_131", 260, 73], - "if_else_130", + ["jump", "if_end_109", 260, 73], + "if_else_108", + "if_end_109", + ["jump", "if_end_93", 260, 73], + "if_else_92", ["is_array", 4, 30, 262, 32], - ["jump_false", 4, "push_err_158", 262, 32], + ["jump_false", 4, "push_err_112", 262, 32], ["push", 30, 32, 262, 32], - ["jump", "push_done_159", 262, 32], - "push_err_158", + ["jump", "push_done_113", 262, 32], + "push_err_112", [ "access", 4, @@ -1635,46 +1168,27 @@ 262, 32 ], - ["access", 22, "error", 262, 32], - ["access", 23, "cannot push: target must be an array", 262, 32], - ["array", 43, 0, 262, 32], - ["stone_text", 23], - ["push", 43, 23, 262, 32], - ["frame", 23, 4, 2, 262, 32], + ["access", 43, "error", 262, 32], + ["access", 45, "cannot push: target must be an array", 262, 32], + ["array", 46, 0, 262, 32], + ["stone_text", 45], + ["push", 46, 45, 262, 32], + ["frame", 45, 4, 2, 262, 32], ["null", 4, 262, 32], - ["setarg", 23, 0, 4, 262, 32], - ["stone_text", 22], - ["setarg", 23, 1, 22, 262, 32], - ["setarg", 23, 2, 43, 262, 32], - ["invoke", 23, 4, 262, 32], + ["setarg", 45, 0, 4, 262, 32], + ["stone_text", 43], + ["setarg", 45, 1, 43, 262, 32], + ["setarg", 45, 2, 46, 262, 32], + ["invoke", 45, 4, 262, 32], ["disrupt", 262, 32], - "push_done_159", + "push_done_113", ["access", 4, 1, 263, 27], - "_nop_tc_49", - "_nop_tc_50", - "_nop_tc_51", - "_nop_tc_52", ["add", 27, 27, 4, 263, 27], - ["jump", "num_done_161", 263, 27], - "num_err_160", - "_nop_ucfg_146", - "_nop_ucfg_147", - "_nop_ucfg_148", - "_nop_ucfg_149", - "_nop_ucfg_150", - "_nop_ucfg_151", - "_nop_ucfg_152", - "_nop_ucfg_153", - "_nop_ucfg_154", - "_nop_ucfg_155", - "_nop_ucfg_156", - "_nop_ucfg_157", - "num_done_161", - "if_end_131", - "if_end_121", - "if_end_113", - ["jump", "while_start_109", 263, 27], - "while_end_110", + "if_end_93", + "if_end_87", + "if_end_83", + ["jump", "while_start_79", 263, 27], + "while_end_80", [ "access", 4, @@ -1686,68 +1200,68 @@ 266, 22 ], - ["frame", 22, 4, 1, 266, 22], - ["setarg", 22, 1, 30, 266, 22], - ["invoke", 22, 4, 266, 22], + ["frame", 43, 4, 1, 266, 22], + ["setarg", 43, 1, 30, 266, 22], + ["invoke", 43, 4, 266, 22], ["move", 31, 4, 266, 22], - ["access", 22, "