JS
Inherits JS::ExpandMethods
Constants
EXPORTS = [] of Nil
FUNCTIONS = [[_js1, [[arg1, Int32]], Void, "_js1(arg1) { // JS::Reference#finalize \n \n drop_ref(arg1);\n }", false, []], [_js2, [], Int32, "_js2() { // JS.get_console \n return __make_ref((() => { \n return console;\n })()); }", false, []], [_js3, [[arg1, Int32]], Int32, "_js3(arg1) { // JS::String#dup \n return __make_ref((() => { \n return __heap[arg1];\n })()); }", false, []], [_js4, [[arg1, Int32]], Void*, "_js4(arg1) { // JS::String#to_crystal \n return __helper_1((() => { \n return __heap[arg1]\n })()); }", false, [{:write, String}]], [_js5, [[arg1, Int32], [arg2, Int32]], UInt8, "_js5(arg1, arg2) { // JS::String#== \n return (() => { \n return __heap[arg1] == __heap[arg2]\n })() ? 1 : 0; }", false, []], [_js6, [[arg1, Int32], [arg2, Int32]], UInt8, "_js6(arg1, arg2) { // JS::String#!= \n return (() => { \n return __heap[arg1] != __heap[arg2]\n })() ? 1 : 0; }", false, []], [_js7, [[arg1, Int32], [arg2, Int32]], UInt8, "_js7(arg1, arg2) { // JS::String#< \n return (() => { \n return __heap[arg1] < __heap[arg2]\n })() ? 1 : 0; }", false, []], [_js8, [[arg1, Int32], [arg2, Int32]], UInt8, "_js8(arg1, arg2) { // JS::String#> \n return (() => { \n return __heap[arg1] > __heap[arg2]\n })() ? 1 : 0; }", false, []], [_js9, [[arg1, Int32], [arg2, Int32]], UInt8, "_js9(arg1, arg2) { // JS::String#<= \n return (() => { \n return __heap[arg1] <= __heap[arg2]\n })() ? 1 : 0; }", false, []], [_js10, [[arg1, Int32], [arg2, Int32]], UInt8, "_js10(arg1, arg2) { // JS::String#>= \n return (() => { \n return __heap[arg1] >= __heap[arg2]\n })() ? 1 : 0; }", false, []], [_js11, [[arg1, Int32], [arg2, Int32]], UInt8, "_js11(arg1, arg2) { // JS::String#+ \n return (() => { \n return __heap[arg1] + __heap[arg2]\n })() ? 1 : 0; }", false, []], [_js12, [[arg1, Int32]], Int32, "_js12(arg1) { // JS::String#length \n \n return __heap[arg1].length;\n }", false, []], [_js13, [[arg1, Int32], [arg2, Int32]], Int32, "_js13(arg1, arg2) { // JS::String#at \n return __make_ref((() => { \n return __heap[arg1].at(arg2);\n })()); }", false, []], [_js14, [[arg1, Int32], [arg2, Int32]], Int32, "_js14(arg1, arg2) { // JS::String#char_at \n return __make_ref((() => { \n return __heap[arg1].charAt(arg2);\n })()); }", false, []], [_js15, [[arg1, Int32], [arg2, Int32]], UInt16, "_js15(arg1, arg2) { // JS::String#code_code_at \n \n return __heap[arg1].codeCodeAt(arg2);\n }", false, []], [_js16, [[arg1, Int32], [arg2, Int32]], UInt32, "_js16(arg1, arg2) { // JS::String#code_point_at \n \n return __heap[arg1].codePointAt(arg2);\n }", false, []], [_js17, [[arg1, Int32], [arg3, UInt32], [arg4, Int32]], Int32, "_js17(arg1, arg3, arg4) { // JS::String#concat \n return __make_ref((() => { \n return __heap[arg1].concat(...__helper_2(arg3, arg4));\n })()); }", false, [{:read, Enumerable(JS::String)}]], [_js18, [[arg1, Int32], [arg3, UInt32], [arg4, Int32]], Int32, "_js18(arg1, arg3, arg4) { // JS::String#concat \n return __make_ref((() => { \n return __heap[arg1].concat(...__helper_2(arg3, arg4));\n })()); }", false, [{:read, Enumerable(JS::String)}]], [_js19, [[arg1, Int32], [arg2, Int32], [arg3, Int32]], UInt8, "_js19(arg1, arg2, arg3) { // JS::String#ends_with \n return (() => { \n return __heap[arg1].endsWith(__heap[arg2], arg3);\n })() ? 1 : 0; }", false, []], [_js20, [[arg1, Int32], [arg2, UInt32], [arg3, Int32], [arg5, Int32]], UInt8, "_js20(arg1, arg2, arg3, arg5) { // JS::String#ends_with \n return (() => { \n return __heap[arg1].endsWith(__helper_3(arg2, arg3), arg5);\n })() ? 1 : 0; }", false, [{:read, String}]], [_js21, [[arg1, Int32], [arg2, Int32]], UInt8, "_js21(arg1, arg2) { // JS::String#ends_with \n return (() => { \n return __heap[arg1].endsWith(__heap[arg2]);\n })() ? 1 : 0; }", false, []], [_js22, [[arg1, Int32], [arg2, UInt32], [arg3, Int32]], UInt8, "_js22(arg1, arg2, arg3) { // JS::String#ends_with \n return (() => { \n return __heap[arg1].endsWith(__helper_3(arg2, arg3));\n })() ? 1 : 0; }", false, [{:read, String}]], [_js23, [[arg1, Int32], [arg2, Int32], [arg3, Int32]], UInt8, "_js23(arg1, arg2, arg3) { // JS::String#includes \n return (() => { \n return __heap[arg1].includes(__heap[arg2], arg3);\n })() ? 1 : 0; }", false, []], [_js24, [[arg1, Int32], [arg2, UInt32], [arg3, Int32], [arg5, Int32]], UInt8, "_js24(arg1, arg2, arg3, arg5) { // JS::String#includes \n return (() => { \n return __heap[arg1].includes(__helper_3(arg2, arg3), arg5);\n })() ? 1 : 0; }", false, [{:read, String}]], [_js25, [[arg1, Int32], [arg2, Int32]], UInt8, "_js25(arg1, arg2) { // JS::String#includes \n return (() => { \n return __heap[arg1].includes(__heap[arg2]);\n })() ? 1 : 0; }", false, []], [_js26, [[arg1, Int32], [arg2, UInt32], [arg3, Int32]], UInt8, "_js26(arg1, arg2, arg3) { // JS::String#includes \n return (() => { \n return __heap[arg1].includes(__helper_3(arg2, arg3));\n })() ? 1 : 0; }", false, [{:read, String}]], [_js27, [[arg1, Int32], [arg2, Int32], [arg3, Int32]], Int32, "_js27(arg1, arg2, arg3) { // JS::String#index_of \n \n return __heap[arg1].indexOf(__heap[arg2], arg3);\n }", false, []], [_js28, [[arg1, Int32], [arg2, UInt32], [arg3, Int32], [arg5, Int32]], Int32, "_js28(arg1, arg2, arg3, arg5) { // JS::String#index_of \n \n return __heap[arg1].indexOf(__helper_3(arg2, arg3), arg5);\n }", false, [{:read, String}]], [_js29, [[arg1, Int32], [arg2, Int32]], Int32, "_js29(arg1, arg2) { // JS::String#index_of \n \n return __heap[arg1].indexOf(__heap[arg2]);\n }", false, []], [_js30, [[arg1, Int32], [arg2, UInt32], [arg3, Int32]], Int32, "_js30(arg1, arg2, arg3) { // JS::String#index_of \n \n return __heap[arg1].indexOf(__helper_3(arg2, arg3));\n }", false, [{:read, String}]], [_js31, [[arg1, Int32], [arg2, Int32], [arg3, Int32]], Int32, "_js31(arg1, arg2, arg3) { // JS::String#last_index_of \n \n return __heap[arg1].lastIndexOf(__heap[arg2], arg3);\n }", false, []], [_js32, [[arg1, Int32], [arg2, UInt32], [arg3, Int32], [arg5, Int32]], Int32, "_js32(arg1, arg2, arg3, arg5) { // JS::String#last_index_of \n \n return __heap[arg1].lastIndexOf(__helper_3(arg2, arg3), arg5);\n }", false, [{:read, String}]], [_js33, [[arg1, Int32], [arg2, Int32]], Int32, "_js33(arg1, arg2) { // JS::String#last_index_of \n \n return __heap[arg1].lastIndexOf(__heap[arg2]);\n }", false, []], [_js34, [[arg1, Int32], [arg2, UInt32], [arg3, Int32]], Int32, "_js34(arg1, arg2, arg3) { // JS::String#last_index_of \n \n return __heap[arg1].lastIndexOf(__helper_3(arg2, arg3));\n }", false, [{:read, String}]], [_js35, [[arg1, Int32], [arg2, Int32], [arg3, Int32]], Int32, "_js35(arg1, arg2, arg3) { // JS::String#locale_compare \n \n return __heap[arg1].localeCompare(__heap[arg2], __heap[arg3]);\n }", false, []], [_js36, [[arg1, Int32], [arg2, UInt32], [arg3, Int32], [arg5, Int32]], Int32, "_js36(arg1, arg2, arg3, arg5) { // JS::String#locale_compare \n \n return __heap[arg1].localeCompare(__helper_3(arg2, arg3), __heap[arg5]);\n }", false, [{:read, String}]], [_js37, [[arg1, Int32], [arg2, Int32], [arg3, UInt32], [arg4, Int32]], Int32, "_js37(arg1, arg2, arg3, arg4) { // JS::String#locale_compare \n \n return __heap[arg1].localeCompare(__heap[arg2], __helper_3(arg3, arg4));\n }", false, [{:read, String}]], [_js38, [[arg1, Int32], [arg2, UInt32], [arg3, Int32], [arg5, UInt32], [arg6, Int32]], Int32, "_js38(arg1, arg2, arg3, arg5, arg6) { // JS::String#locale_compare \n \n return __heap[arg1].localeCompare(__helper_3(arg2, arg3), __helper_3(arg5, arg6));\n }", false, [{:read, String}, {:read, String}]], [_js39, [[arg1, Int32], [arg2, Int32]], Int32, "_js39(arg1, arg2) { // JS::String#locale_compare \n \n return __heap[arg1].localeCompare(__heap[arg2]);\n }", false, []], [_js40, [[arg1, Int32], [arg2, UInt32], [arg3, Int32]], Int32, "_js40(arg1, arg2, arg3) { // JS::String#locale_compare \n \n return __heap[arg1].localeCompare(__helper_3(arg2, arg3));\n }", false, [{:read, String}]], [_js41, [[arg1, Int32], [arg2, Int32]], Int32, "_js41(arg1, arg2) { // JS::String#normalize \n return __make_ref((() => { \n return __heap[arg1].normalize(__heap[arg2]);\n })()); }", false, []], [_js42, [[arg1, Int32], [arg2, UInt32], [arg3, Int32]], Int32, "_js42(arg1, arg2, arg3) { // JS::String#normalize \n return __make_ref((() => { \n return __heap[arg1].normalize(__helper_3(arg2, arg3));\n })()); }", false, [{:read, String}]], [_js43, [[arg1, Int32]], Int32, "_js43(arg1) { // JS::String#normalize \n return __make_ref((() => { \n return __heap[arg1].normalize();\n })()); }", false, []], [_js44, [[arg1, Int32], [arg2, Int32], [arg3, Int32]], Int32, "_js44(arg1, arg2, arg3) { // JS::String#pad_end \n return __make_ref((() => { \n return __heap[arg1].padEnd(arg2, __heap[arg3]);\n })()); }", false, []], [_js45, [[arg1, Int32], [arg2, Int32], [arg3, UInt32], [arg4, Int32]], Int32, "_js45(arg1, arg2, arg3, arg4) { // JS::String#pad_end \n return __make_ref((() => { \n return __heap[arg1].padEnd(arg2, __helper_3(arg3, arg4));\n })()); }", false, [{:read, String}]], [_js46, [[arg1, Int32], [arg2, Int32]], Int32, "_js46(arg1, arg2) { // JS::String#pad_end \n return __make_ref((() => { \n return __heap[arg1].padEnd(arg2);\n })()); }", false, []], [_js47, [[arg1, Int32], [arg2, Int32], [arg3, Int32]], Int32, "_js47(arg1, arg2, arg3) { // JS::String#pad_start \n return __make_ref((() => { \n return __heap[arg1].padStart(arg2, __heap[arg3]);\n })()); }", false, []], [_js48, [[arg1, Int32], [arg2, Int32], [arg3, UInt32], [arg4, Int32]], Int32, "_js48(arg1, arg2, arg3, arg4) { // JS::String#pad_start \n return __make_ref((() => { \n return __heap[arg1].padStart(arg2, __helper_3(arg3, arg4));\n })()); }", false, [{:read, String}]], [_js49, [[arg1, Int32], [arg2, Int32]], Int32, "_js49(arg1, arg2) { // JS::String#pad_start \n return __make_ref((() => { \n return __heap[arg1].padStart(arg2);\n })()); }", false, []], [_js50, [[arg1, UInt32], [arg2, Int32]], Int32, "_js50(arg1, arg2) { // JS::String.new \n return __make_ref((() => { \n return __helper_3(arg1, arg2)\n })()); }", false, [{:read, String}]], [_js51, [[arg2, UInt32], [arg3, Int32]], Int32, "_js51(arg2, arg3) { // JS::String.from_char_code \n return __make_ref((() => { \n return String.fromCharCode(...__helper_4(arg2, arg3));\n })()); }", false, [{:read, Enumerable(UInt16)}]], [_js52, [[arg2, UInt32], [arg3, Int32]], Int32, "_js52(arg2, arg3) { // JS::String.from_code_point \n return __make_ref((() => { \n return String.fromCodePoint(...__helper_5(arg2, arg3));\n })()); }", false, [{:read, Enumerable(UInt32)}]], [_js53, [[arg1, Int32]], Int32, "_js53(arg1) { // JS::Console#dup \n return __make_ref((() => { \n return __heap[arg1];\n })()); }", false, []], [_js54, [[arg1, Int32], [arg2, Int32]], Void, "_js54(arg1, arg2) { // JS::Console#log \n \n return __heap[arg1].log(__heap[arg2]);\n }", false, []], [_js55, [[arg1, Int32], [arg2, UInt32], [arg3, Int32]], Void, "_js55(arg1, arg2, arg3) { // JS::Console#log \n \n return __heap[arg1].log(__helper_3(arg2, arg3));\n }", false, [{:read, String}]]] of Nil
HELPERS = { {:write, String} => ["__helper_1", " function __helper_1(str) { // write String\n const data = __utf8Encoder.encode(str);\n const ptr = __exports.__crystal_malloc_atomic(13 + data.byteLength);\n __memory.setUint32(ptr, __string_type_id, true);\n __memory.setUint32(ptr + 4, data.byteLength, true);\n __memory.setUint32(ptr + 8, str.length, true);\n for (let i = 0; i < data.byteLength; i++) {\n __memory.setUint8(ptr + 12 + i, data[i]);\n }\n __memory.setUint8(ptr + 12 + data.byteLength, 0);\n return ptr;\n }", false], {:read, Enumerable(JS::String)} => ["__helper_2", " function __helper_2(buf, size) { // read Enumerable(JS::String)\n return Array.from({length: size}, () => {\n const arg2 = __memory.getInt32(buf, true);\n buf += 4;\n return __heap[arg2];\n });\n }", false], {:read, String} => ["__helper_3", " function __helper_3(pos, len) { // read String\n return __utf8Decoder.decode(new Uint8Array(__memory.buffer, pos, len));\n }", false], {:read, Enumerable(UInt16)} => ["__helper_4", " function __helper_4(buf, size) { // read Enumerable(UInt16)\n return Array.from({length: size}, () => {\n const arg1 = __memory.getUint16(buf, true);\n buf += 2;\n return arg1;\n });\n }", false], {:read, Enumerable(UInt32)} => ["__helper_5", " function __helper_5(buf, size) { // read Enumerable(UInt32)\n return Array.from({length: size}, () => {\n const arg1 = __memory.getUint32(buf, true);\n buf += 4;\n return arg1;\n });\n }", false]} of Nil => Nil
Class methods
console
Sourceget_console
Macros
export(method_def)
Source