UNPKG

reign

Version:

A persistent, typed-objects implementation.

51 lines (41 loc) 1.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.make = make; var _float = require("../../hash-functions/float64"); 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: 'Float64', byteAlignment: 8, byteLength: 8, cast: function cast(input) { return +input || 0; }, accepts: function accepts(input) { return typeof input === 'number' && !isNaN(input); }, store: function store(backing, address, value) { backing.setFloat64(address, +value || 0); }, load: function load(backing, address) { return backing.getFloat64(address); }, emptyValue: function emptyValue() { return 0; }, randomValue: function randomValue() { return Math.random() * Math.pow(2, 16) * Math.pow(2, 8) - Math.random() * Math.pow(2, 24); }, hashValue: _float2.default, flowType: function flowType() { return `float64`; } }); }