reign
Version:
A persistent, typed-objects implementation.
51 lines (41 loc) • 1.26 kB
JavaScript
;
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`;
}
});
}