import { bench, run } from "../node_modules/mitata/src/cli.mjs";
const properties = {
closed: {
get() {
return this._writableState ? this._writableState.closed : false;
},
},
destroyed: {
get() {
return this._writableState ? this._writableState.destroyed : false;
},
set(value) {
if (this._writableState) {
this._writableState.destroyed = value;
}
},
},
writable: {
get() {
const w = this._writableState;
return (
!!w &&
w.writable !== false &&
!w.destroyed &&
!w.errored &&
!w.ending &&
!w.ended
);
},
set(val) {
if (this._writableState) {
this._writableState.writable = !!val;
}
},
},
writableFinished: {
get() {
return this._writableState ? this._writableState.finished : false;
},
},
writableObjectMode: {
get() {
return this._writableState ? this._writableState.objectMode : false;
},
},
writableBuffer: {
get() {
return this._writableState && this._writableState.getBuffer();
},
},
writableEnded: {
get() {
return this._writableState ? this._writableState.ending : false;
},
},
writableNeedDrain: {
get() {
const wState = this._writableState;
if (!wState) return false;
return !wState.destroyed && !wState.ending && wState.needDrain;
},
},
writableHighWaterMark: {
get() {
return this._writableState && this._writableState.highWaterMark;
},
},
writableCorked: {
get() {
return this._writableState ? this._writableState.corked : 0;
},
},
writableLength: {
get() {
return this._writableState && this._writableState.length;
},
},
errored: {
enumerable: false,
get() {
return this._writableState ? this._writableState.errored : null;
},
},
writableAborted: {
enumerable: false,
get: function () {
return !!(
this._writableState.writable !== false &&
(this._writableState.destroyed || this._writableState.errored) &&
!this._writableState.finished
);
},
},
};
var count = 10_000;
bench("Object.defineProperty x " + count, () => {
const prop = {
enumerable: false,
get: function () {
return !!(
this._writableState.writable !== false &&
(this._writableState.destroyed || this._writableState.errored) &&
!this._writableState.finished
);
},
};
for (let i = 0; i < count; i++) {
function Hey() {
return this;
}
Object.defineProperty(Hey.prototype, "writableAborted", prop);
}
});
bench("Object.defineProperties x " + count, () => {
for (let i = 0; i < count; i++) {
function Hey() {
return this;
}
Object.defineProperties(Hey.prototype, properties);
}
});
bench("(all the keys) Object.defineProperties x " + count, () => {
var first;
{
function Hey() {
return this;
}
Object.defineProperties(Hey.prototype, properties);
first = Object.getOwnPropertyDescriptors(Hey.prototype);
}
for (let i = 0; i < count; i++) {
function Hey() {
return this;
}
Object.defineProperties(Hey.prototype, first);
}
});
await run();
ption value='derrick/fix/event-emitter-emit-throw-native'>derrick/fix/event-emitter-emit-throw-native
Unnamed repository; edit this file 'description' to name the repository. | |