UNPKG

bs-platform

Version:

bucklescript compiler, ocaml standard libary by bucklescript and its required runtime support

189 lines (146 loc) 4.9 kB
'use strict'; var Marshal = require("./marshal.js"); var Caml_array = require("./caml_array.js"); var Caml_external_polyfill = require("./caml_external_polyfill.js"); var Caml_builtin_exceptions = require("./caml_builtin_exceptions.js"); function is_block(a) { return typeof a !== "number"; } var double_field = Caml_array.caml_array_get; var set_double_field = Caml_array.caml_array_set; function marshal(obj) { return Caml_external_polyfill.resolve("caml_output_value_to_string")(obj, /* [] */0); } function unmarshal(str, pos) { return /* tuple */[ Marshal.from_bytes(str, pos), pos + Marshal.total_size(str, pos) | 0 ]; } function extension_constructor(x) { var slot = typeof x !== "number" && (x.tag | 0) !== 248 && x.length >= 1 ? x[0] : x; var name; if (typeof slot !== "number" && slot.tag === 248) { name = slot[0]; } else { throw [ Caml_builtin_exceptions.invalid_argument, "Obj.extension_constructor" ]; } if (name.tag === 252) { return slot; } throw [ Caml_builtin_exceptions.invalid_argument, "Obj.extension_constructor" ]; } function extension_name(slot) { return slot[0]; } function extension_id(slot) { return slot[1]; } function length(x) { return x.length - 2 | 0; } var first_non_constant_constructor_tag = 0; var last_non_constant_constructor_tag = 245; var lazy_tag = 246; var closure_tag = 247; var object_tag = 248; var infix_tag = 249; var forward_tag = 250; var no_scan_tag = 251; var abstract_tag = 251; var string_tag = 252; var double_tag = 253; var double_array_tag = 254; var custom_tag = 255; var final_tag = 255; var int_tag = 1000; var out_of_heap_tag = 1001; var unaligned_tag = 1002; function Ephemeron_create(prim) { return Caml_external_polyfill.resolve("caml_ephe_create")(prim); } function Ephemeron_get_key(prim, prim$1) { return Caml_external_polyfill.resolve("caml_ephe_get_key")(prim, prim$1); } function Ephemeron_get_key_copy(prim, prim$1) { return Caml_external_polyfill.resolve("caml_ephe_get_key_copy")(prim, prim$1); } function Ephemeron_set_key(prim, prim$1, prim$2) { return Caml_external_polyfill.resolve("caml_ephe_set_key")(prim, prim$1, prim$2); } function Ephemeron_unset_key(prim, prim$1) { return Caml_external_polyfill.resolve("caml_ephe_unset_key")(prim, prim$1); } function Ephemeron_check_key(prim, prim$1) { return Caml_external_polyfill.resolve("caml_ephe_check_key")(prim, prim$1); } function Ephemeron_blit_key(prim, prim$1, prim$2, prim$3, prim$4) { return Caml_external_polyfill.resolve("caml_ephe_blit_key")(prim, prim$1, prim$2, prim$3, prim$4); } function Ephemeron_get_data(prim) { return Caml_external_polyfill.resolve("caml_ephe_get_data")(prim); } function Ephemeron_get_data_copy(prim) { return Caml_external_polyfill.resolve("caml_ephe_get_data_copy")(prim); } function Ephemeron_set_data(prim, prim$1) { return Caml_external_polyfill.resolve("caml_ephe_set_data")(prim, prim$1); } function Ephemeron_unset_data(prim) { return Caml_external_polyfill.resolve("caml_ephe_unset_data")(prim); } function Ephemeron_check_data(prim) { return Caml_external_polyfill.resolve("caml_ephe_check_data")(prim); } function Ephemeron_blit_data(prim, prim$1) { return Caml_external_polyfill.resolve("caml_ephe_blit_data")(prim, prim$1); } var Ephemeron = { create: Ephemeron_create, length: length, get_key: Ephemeron_get_key, get_key_copy: Ephemeron_get_key_copy, set_key: Ephemeron_set_key, unset_key: Ephemeron_unset_key, check_key: Ephemeron_check_key, blit_key: Ephemeron_blit_key, get_data: Ephemeron_get_data, get_data_copy: Ephemeron_get_data_copy, set_data: Ephemeron_set_data, unset_data: Ephemeron_unset_data, check_data: Ephemeron_check_data, blit_data: Ephemeron_blit_data }; exports.is_block = is_block; exports.double_field = double_field; exports.set_double_field = set_double_field; exports.first_non_constant_constructor_tag = first_non_constant_constructor_tag; exports.last_non_constant_constructor_tag = last_non_constant_constructor_tag; exports.lazy_tag = lazy_tag; exports.closure_tag = closure_tag; exports.object_tag = object_tag; exports.infix_tag = infix_tag; exports.forward_tag = forward_tag; exports.no_scan_tag = no_scan_tag; exports.abstract_tag = abstract_tag; exports.string_tag = string_tag; exports.double_tag = double_tag; exports.double_array_tag = double_array_tag; exports.custom_tag = custom_tag; exports.final_tag = final_tag; exports.int_tag = int_tag; exports.out_of_heap_tag = out_of_heap_tag; exports.unaligned_tag = unaligned_tag; exports.extension_constructor = extension_constructor; exports.extension_name = extension_name; exports.extension_id = extension_id; exports.marshal = marshal; exports.unmarshal = unmarshal; exports.Ephemeron = Ephemeron; /* No side effect */