UNPKG

reign

Version:

A persistent, typed-objects implementation.

51 lines (41 loc) 1.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.make = make; var _float = require("../../hash-functions/float32"); var _float2 = _interopRequireDefault(_float); var _backing = require("backing"); var _backing2 = _interopRequireDefault(_backing); var _ = require("../.."); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function make(_ref) { let PrimitiveType = _ref.PrimitiveType; return new PrimitiveType({ name: 'Float32', byteAlignment: 4, byteLength: 4, cast: function cast(input) { return Math.fround(input) || 0; }, accepts: function accepts(input) { return Math.fround(input) === input; }, store: function store(backing, address, value) { backing.setFloat32(address, Math.fround(value) || 0); }, load: function load(backing, address) { return backing.getFloat32(address); }, emptyValue: function emptyValue() { return 0; }, randomValue: function randomValue() { return Math.fround(Math.random() * Math.pow(2, 16) * Math.pow(2, 8) - Math.random() * Math.pow(2, 24)); }, hashValue: _float2.default, flowType: function flowType() { return `float32`; } }); }