{"ast":null,"code":"'use strict';\n\nvar fastProto = null; // Creates an object with permanently fast properties in V8. See Toon Verwaest's\n// post https://medium.com/@tverwaes/setting-up-prototypes-in-v8-ec9c9491dfe2#5f62\n// for more details. Use %HasFastProperties(object) and the Node.js flag\n// --allow-natives-syntax to check whether an object has fast properties.\n\nfunction FastObject(o) {\n // A prototype object will have \"fast properties\" enabled once it is checked\n // against the inline property cache of a function, e.g. fastProto.property:\n // https://github.com/v8/v8/blob/6.0.122/test/mjsunit/fast-prototype.js#L48-L63\n if (fastProto !== null && typeof fastProto.property) {\n var result = fastProto;\n fastProto = FastObject.prototype = null;\n return result;\n }\n\n fastProto = FastObject.prototype = o == null ? Object.create(null) : o;\n return new FastObject();\n} // Initialize the inline property cache of FastObject\n\n\nFastObject();\n\nmodule.exports = function toFastproperties(o) {\n return FastObject(o);\n};","map":null,"metadata":{},"sourceType":"script"}