mirror of
https://github.com/oven-sh/bun
synced 2026-02-14 21:01:52 +00:00
* make our debug assertions work * install bun-webkit-debug * more progress * ok * progress... * more debug build stuff * ok * a * asdfghjkl * fix(runtime): fix bad assertion failure in JSBufferList * ok * stuff * upgrade webkit * Update src/bun.js/bindings/JSDOMWrapperCache.h Co-authored-by: Jarred Sumner <jarred@jarredsumner.com> * fix message for colin's changes * okay * fix cjs prototype * implement mainModule * i think this fixes it all --------- Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
61 lines
1.2 KiB
TypeScript
61 lines
1.2 KiB
TypeScript
// Import Events
|
|
var EventEmitter = require("node:events");
|
|
|
|
// Export Domain
|
|
var domain: any = {};
|
|
domain.createDomain = domain.create = function () {
|
|
var d = new EventEmitter();
|
|
|
|
function emitError(e) {
|
|
d.emit("error", e);
|
|
}
|
|
|
|
d.add = function (emitter) {
|
|
emitter.on("error", emitError);
|
|
};
|
|
d.remove = function (emitter) {
|
|
emitter.removeListener("error", emitError);
|
|
};
|
|
d.bind = function (fn) {
|
|
return function () {
|
|
var args = Array.prototype.slice.$call(arguments);
|
|
try {
|
|
fn.$apply(null, args);
|
|
} catch (err) {
|
|
emitError(err);
|
|
}
|
|
};
|
|
};
|
|
d.intercept = function (fn) {
|
|
return function (err) {
|
|
if (err) {
|
|
emitError(err);
|
|
} else {
|
|
var args = Array.prototype.slice.$call(arguments, 1);
|
|
try {
|
|
fn.$apply(null, args);
|
|
} catch (err) {
|
|
emitError(err);
|
|
}
|
|
}
|
|
};
|
|
};
|
|
d.run = function (fn) {
|
|
try {
|
|
fn();
|
|
} catch (err) {
|
|
emitError(err);
|
|
}
|
|
return this;
|
|
};
|
|
d.dispose = function () {
|
|
this.removeAllListeners();
|
|
return this;
|
|
};
|
|
d.enter = d.exit = function () {
|
|
return this;
|
|
};
|
|
return d;
|
|
};
|
|
export default domain;
|