Define Buffer globally if buffer built-in module installed.

This commit is contained in:
Ben Newman
2018-05-08 12:02:27 -04:00
parent 6c3e31a4fe
commit fc83c29b09

View File

@@ -24,3 +24,18 @@ if (typeof meteorInstall === "function") {
}
});
}
// If Buffer is not defined globally, but the "buffer" built-in stub is
// installed and can be imported, use it to define global.Buffer so that
// modules like core-util-is/lib/util.js can refer to Buffer without
// crashing application startup.
if (typeof global.Buffer !== "function") {
try {
// Use (0, require)(...) to avoid registering a dependency on the
// "buffer" stub, in case it is not otherwise bundled.
global.Buffer = (0, require)("buffer");
} catch (ok) {
// Failure to import "buffer" is fine as long as the Buffer global
// variable is not used.
}
}