Merge pull request #15510 from Snuffleupagus/compatibility-loading

Change how `src/shared/compatibility.js` is imported
This commit is contained in:
Jonas Jenwald 2022-10-01 13:47:44 +02:00 committed by GitHub
commit a93c01ae6a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 71 additions and 71 deletions

View File

@ -16,79 +16,71 @@
import { isNodeJS } from "./is_node.js"; import { isNodeJS } from "./is_node.js";
// Skip compatibility checks for modern builds and if we already ran the module. // Support: Node.js<16.0.0
if ( (function checkNodeBtoa() {
(typeof PDFJSDev === "undefined" || !PDFJSDev.test("SKIP_BABEL")) && if (globalThis.btoa || !isNodeJS) {
!globalThis._pdfjsCompatibilityChecked return;
) { }
globalThis._pdfjsCompatibilityChecked = true; globalThis.btoa = function (chars) {
// eslint-disable-next-line no-undef
return Buffer.from(chars, "binary").toString("base64");
};
})();
// Support: Node.js<16.0.0 // Support: Node.js<16.0.0
(function checkNodeBtoa() { (function checkNodeAtob() {
if (globalThis.btoa || !isNodeJS) { if (globalThis.atob || !isNodeJS) {
return; return;
} }
globalThis.btoa = function (chars) { globalThis.atob = function (input) {
// eslint-disable-next-line no-undef // eslint-disable-next-line no-undef
return Buffer.from(chars, "binary").toString("base64"); return Buffer.from(input, "base64").toString("binary");
}; };
})(); })();
// Support: Node.js<16.0.0 // Support: Node.js
(function checkNodeAtob() { (function checkDOMMatrix() {
if (globalThis.atob || !isNodeJS) { if (globalThis.DOMMatrix || !isNodeJS) {
return; return;
} }
globalThis.atob = function (input) { globalThis.DOMMatrix = __non_webpack_require__("canvas").DOMMatrix;
// eslint-disable-next-line no-undef })();
return Buffer.from(input, "base64").toString("binary");
};
})();
// Support: Node.js // Support: Node.js
(function checkDOMMatrix() { (function checkReadableStream() {
if (globalThis.DOMMatrix || !isNodeJS) { if (globalThis.ReadableStream || !isNodeJS) {
return; return;
} }
globalThis.DOMMatrix = __non_webpack_require__("canvas").DOMMatrix; globalThis.ReadableStream = __non_webpack_require__(
})(); "web-streams-polyfill/dist/ponyfill.js"
).ReadableStream;
})();
// Support: Node.js // Support: Firefox<90, Chrome<92, Safari<15.4, Node.js<16.6.0
(function checkReadableStream() { (function checkArrayAt() {
if (globalThis.ReadableStream || !isNodeJS) { if (Array.prototype.at) {
return; return;
} }
globalThis.ReadableStream = __non_webpack_require__( require("core-js/es/array/at.js");
"web-streams-polyfill/dist/ponyfill.js" })();
).ReadableStream;
})();
// Support: Firefox<90, Chrome<92, Safari<15.4, Node.js<16.6.0 // Support: Firefox<90, Chrome<92, Safari<15.4, Node.js<16.6.0
(function checkArrayAt() { (function checkTypedArrayAt() {
if (Array.prototype.at) { if (Uint8Array.prototype.at) {
return; return;
} }
require("core-js/es/array/at.js"); require("core-js/es/typed-array/at.js");
})(); })();
// Support: Firefox<90, Chrome<92, Safari<15.4, Node.js<16.6.0 // Support: Firefox<94, Chrome<98, Safari<15.4, Node.js<17.0.0
(function checkTypedArrayAt() { (function checkStructuredClone() {
if (Uint8Array.prototype.at) { if (typeof PDFJSDev !== "undefined" && PDFJSDev.test("IMAGE_DECODERS")) {
return; // The current image decoders are synchronous, hence `structuredClone`
} // shouldn't need to be polyfilled for the IMAGE_DECODERS build target.
require("core-js/es/typed-array/at.js"); return;
})(); }
if (globalThis.structuredClone) {
// Support: Firefox<94, Chrome<98, Safari<15.4, Node.js<17.0.0 return;
(function checkStructuredClone() { }
if (typeof PDFJSDev !== "undefined" && PDFJSDev.test("IMAGE_DECODERS")) { require("core-js/web/structured-clone.js");
// The current image decoders are synchronous, hence `structuredClone` })();
// shouldn't need to be polyfilled for the IMAGE_DECODERS build target.
return;
}
if (globalThis.structuredClone) {
return;
}
require("core-js/web/structured-clone.js");
})();
}

View File

@ -13,7 +13,15 @@
* limitations under the License. * limitations under the License.
*/ */
import "./compatibility.js"; // Skip compatibility checks for modern builds and if we already ran the module.
if (
typeof PDFJSDev !== "undefined" &&
!PDFJSDev.test("SKIP_BABEL") &&
!globalThis._pdfjsCompatibilityChecked
) {
globalThis._pdfjsCompatibilityChecked = true;
require("./compatibility.js");
}
const IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0]; const IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];
const FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0]; const FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];