UNPKG

@embedpdf/pdfium

Version:

PDFium WebAssembly for the web platform. This package provides a powerful JavaScript interface to PDFium, enabling high-quality PDF rendering and manipulation directly in web applications.

1,358 lines (1,260 loc) 315 kB
var createPdfium = (() => { var _scriptName = import.meta.url; return async function (moduleArg = {}) { var moduleRtn; // include: shell.js // The Module object: Our interface to the outside world. We import // and export values on it. There are various ways Module can be used: // 1. Not defined. We create it here // 2. A function parameter, function(moduleArg) => Promise<Module> // 3. pre-run appended it, var Module = {}; ..generated code.. // 4. External script tag defines var Module. // We need to check if Module already exists (e.g. case 3 above). // Substitution will be replaced with actual code on later stage of the build, // this way Closure Compiler will not mangle it (e.g. case 4. above). // Note that if you want to run closure, and also to use Module // after the generated code, you will need to define var Module = {}; // before the code. Then that object will be used in the code, and you // can continue to use Module afterwards as well. var Module = moduleArg; // Set up the promise that indicates the Module is initialized var readyPromiseResolve, readyPromiseReject; var readyPromise = new Promise((resolve, reject) => { readyPromiseResolve = resolve; readyPromiseReject = reject; }); [ '_EPDF_GetMetaKeyCount', '_EPDF_GetMetaKeyName', '_EPDF_GetMetaTrapped', '_EPDF_GetPageRotationByIndex', '_EPDF_GetPageSizeByIndexNormalized', '_EPDF_HasMetaText', '_EPDF_IsEncrypted', '_EPDF_IsOwnerUnlocked', '_EPDF_LoadPageNormalized', '_EPDF_PNG_EncodeRGBA', '_EPDF_RemoveEncryption', '_EPDF_RenderAnnotBitmap', '_EPDF_RenderAnnotBitmapUnrotated', '_EPDF_SetEncryption', '_EPDF_SetMetaText', '_EPDF_SetMetaTrapped', '_EPDF_UnlockOwnerPermissions', '_EPDFAction_CreateGoTo', '_EPDFAction_CreateGoToNamed', '_EPDFAction_CreateLaunch', '_EPDFAction_CreateRemoteGoToByName', '_EPDFAction_CreateRemoteGoToDest', '_EPDFAction_CreateURI', '_EPDFAnnot_ApplyRedaction', '_EPDFAnnot_ClearColor', '_EPDFAnnot_ClearRectangleDifferences', '_EPDFAnnot_Flatten', '_EPDFAnnot_GenerateAppearance', '_EPDFAnnot_GenerateAppearanceWithBlend', '_EPDFAnnot_GetAPMatrix', '_EPDFAnnot_GetAvailableAppearanceModes', '_EPDFAnnot_GetBlendMode', '_EPDFAnnot_GetBorderDashPattern', '_EPDFAnnot_GetBorderDashPatternCount', '_EPDFAnnot_GetBorderEffect', '_EPDFAnnot_GetBorderStyle', '_EPDFAnnot_GetColor', '_EPDFAnnot_GetDefaultAppearance', '_EPDFAnnot_GetExtendedRotation', '_EPDFAnnot_GetIcon', '_EPDFAnnot_GetIntent', '_EPDFAnnot_GetLineEndings', '_EPDFAnnot_GetOpacity', '_EPDFAnnot_GetOverlayText', '_EPDFAnnot_GetOverlayTextRepeat', '_EPDFAnnot_GetRect', '_EPDFAnnot_GetRectangleDifferences', '_EPDFAnnot_GetReplyType', '_EPDFAnnot_GetRichContent', '_EPDFAnnot_GetRotate', '_EPDFAnnot_GetTextAlignment', '_EPDFAnnot_GetUnrotatedRect', '_EPDFAnnot_GetVerticalAlignment', '_EPDFAnnot_HasAppearanceStream', '_EPDFAnnot_SetAction', '_EPDFAnnot_SetAPMatrix', '_EPDFAnnot_SetBorderDashPattern', '_EPDFAnnot_SetBorderStyle', '_EPDFAnnot_SetColor', '_EPDFAnnot_SetDefaultAppearance', '_EPDFAnnot_SetExtendedRotation', '_EPDFAnnot_SetIcon', '_EPDFAnnot_SetIntent', '_EPDFAnnot_SetLine', '_EPDFAnnot_SetLineEndings', '_EPDFAnnot_SetLinkedAnnot', '_EPDFAnnot_SetOpacity', '_EPDFAnnot_SetOverlayText', '_EPDFAnnot_SetOverlayTextRepeat', '_EPDFAnnot_SetRectangleDifferences', '_EPDFAnnot_SetReplyType', '_EPDFAnnot_SetRotate', '_EPDFAnnot_SetTextAlignment', '_EPDFAnnot_SetUnrotatedRect', '_EPDFAnnot_SetVerticalAlignment', '_EPDFAnnot_SetVertices', '_EPDFAnnot_UpdateAppearanceToRect', '_EPDFAttachment_GetDescription', '_EPDFAttachment_GetIntegerValue', '_EPDFAttachment_SetDescription', '_EPDFAttachment_SetSubtype', '_EPDFBookmark_AppendChild', '_EPDFBookmark_Clear', '_EPDFBookmark_ClearTarget', '_EPDFBookmark_Create', '_EPDFBookmark_Delete', '_EPDFBookmark_InsertAfter', '_EPDFBookmark_SetAction', '_EPDFBookmark_SetDest', '_EPDFBookmark_SetTitle', '_EPDFCatalog_GetLanguage', '_EPDFDest_CreateRemoteView', '_EPDFDest_CreateRemoteXYZ', '_EPDFDest_CreateView', '_EPDFDest_CreateXYZ', '_EPDFNamedDest_Remove', '_EPDFNamedDest_SetDest', '_EPDFPage_ApplyRedactions', '_EPDFPage_CreateAnnot', '_EPDFPage_GetAnnotByName', '_EPDFPage_GetAnnotCountRaw', '_EPDFPage_GetAnnotRaw', '_EPDFPage_RemoveAnnotByName', '_EPDFPage_RemoveAnnotRaw', '_EPDFText_RedactInQuads', '_EPDFText_RedactInRect', '_FORM_CanRedo', '_FORM_CanUndo', '_FORM_DoDocumentAAction', '_FORM_DoDocumentJSAction', '_FORM_DoDocumentOpenAction', '_FORM_DoPageAAction', '_FORM_ForceToKillFocus', '_FORM_GetFocusedAnnot', '_FORM_GetFocusedText', '_FORM_GetSelectedText', '_FORM_IsIndexSelected', '_FORM_OnAfterLoadPage', '_FORM_OnBeforeClosePage', '_FORM_OnChar', '_FORM_OnFocus', '_FORM_OnKeyDown', '_FORM_OnKeyUp', '_FORM_OnLButtonDoubleClick', '_FORM_OnLButtonDown', '_FORM_OnLButtonUp', '_FORM_OnMouseMove', '_FORM_OnMouseWheel', '_FORM_OnRButtonDown', '_FORM_OnRButtonUp', '_FORM_Redo', '_FORM_ReplaceAndKeepSelection', '_FORM_ReplaceSelection', '_FORM_SelectAllText', '_FORM_SetFocusedAnnot', '_FORM_SetIndexSelected', '_FORM_Undo', '_FPDF_AddInstalledFont', '_FPDF_CloseDocument', '_FPDF_ClosePage', '_FPDF_CloseXObject', '_FPDF_CopyViewerPreferences', '_FPDF_CountNamedDests', '_FPDF_CreateClipPath', '_FPDF_CreateNewDocument', '_FPDF_DestroyClipPath', '_FPDF_DestroyLibrary', '_FPDF_DeviceToPage', '_FPDF_DocumentHasValidCrossReferenceTable', '_FPDF_FFLDraw', '_FPDF_FreeDefaultSystemFontInfo', '_FPDF_GetDefaultSystemFontInfo', '_FPDF_GetDefaultTTFMap', '_FPDF_GetDefaultTTFMapCount', '_FPDF_GetDefaultTTFMapEntry', '_FPDF_GetDocPermissions', '_FPDF_GetDocUserPermissions', '_FPDF_GetFileIdentifier', '_FPDF_GetFileVersion', '_FPDF_GetFormType', '_FPDF_GetLastError', '_FPDF_GetMetaText', '_FPDF_GetNamedDest', '_FPDF_GetNamedDestByName', '_FPDF_GetPageAAction', '_FPDF_GetPageBoundingBox', '_FPDF_GetPageCount', '_FPDF_GetPageHeight', '_FPDF_GetPageHeightF', '_FPDF_GetPageLabel', '_FPDF_GetPageSizeByIndex', '_FPDF_GetPageSizeByIndexF', '_FPDF_GetPageWidth', '_FPDF_GetPageWidthF', '_FPDF_GetSecurityHandlerRevision', '_FPDF_GetSignatureCount', '_FPDF_GetSignatureObject', '_FPDF_GetTrailerEnds', '_FPDF_GetXFAPacketContent', '_FPDF_GetXFAPacketCount', '_FPDF_GetXFAPacketName', '_FPDF_ImportNPagesToOne', '_FPDF_ImportPages', '_FPDF_ImportPagesByIndex', '_FPDF_InitLibrary', '_FPDF_InitLibraryWithConfig', '_FPDF_LoadCustomDocument', '_FPDF_LoadDocument', '_FPDF_LoadMemDocument', '_FPDF_LoadMemDocument64', '_FPDF_LoadPage', '_FPDF_LoadXFA', '_FPDF_MovePages', '_FPDF_NewFormObjectFromXObject', '_FPDF_NewXObjectFromPage', '_FPDF_PageToDevice', '_FPDF_RemoveFormFieldHighlight', '_FPDF_RenderPage_Close', '_FPDF_RenderPage_Continue', '_FPDF_RenderPageBitmap', '_FPDF_RenderPageBitmap_Start', '_FPDF_RenderPageBitmapWithColorScheme_Start', '_FPDF_RenderPageBitmapWithMatrix', '_FPDF_SaveAsCopy', '_FPDF_SaveWithVersion', '_FPDF_SetFormFieldHighlightAlpha', '_FPDF_SetFormFieldHighlightColor', '_FPDF_SetSandBoxPolicy', '_FPDF_SetSystemFontInfo', '_FPDF_StructElement_Attr_CountChildren', '_FPDF_StructElement_Attr_GetBlobValue', '_FPDF_StructElement_Attr_GetBooleanValue', '_FPDF_StructElement_Attr_GetChildAtIndex', '_FPDF_StructElement_Attr_GetCount', '_FPDF_StructElement_Attr_GetName', '_FPDF_StructElement_Attr_GetNumberValue', '_FPDF_StructElement_Attr_GetStringValue', '_FPDF_StructElement_Attr_GetType', '_FPDF_StructElement_Attr_GetValue', '_FPDF_StructElement_CountChildren', '_FPDF_StructElement_GetActualText', '_FPDF_StructElement_GetAltText', '_FPDF_StructElement_GetAttributeAtIndex', '_FPDF_StructElement_GetAttributeCount', '_FPDF_StructElement_GetChildAtIndex', '_FPDF_StructElement_GetChildMarkedContentID', '_FPDF_StructElement_GetID', '_FPDF_StructElement_GetLang', '_FPDF_StructElement_GetMarkedContentID', '_FPDF_StructElement_GetMarkedContentIdAtIndex', '_FPDF_StructElement_GetMarkedContentIdCount', '_FPDF_StructElement_GetObjType', '_FPDF_StructElement_GetParent', '_FPDF_StructElement_GetStringAttribute', '_FPDF_StructElement_GetTitle', '_FPDF_StructElement_GetType', '_FPDF_StructTree_Close', '_FPDF_StructTree_CountChildren', '_FPDF_StructTree_GetChildAtIndex', '_FPDF_StructTree_GetForPage', '_FPDF_VIEWERREF_GetDuplex', '_FPDF_VIEWERREF_GetName', '_FPDF_VIEWERREF_GetNumCopies', '_FPDF_VIEWERREF_GetPrintPageRange', '_FPDF_VIEWERREF_GetPrintPageRangeCount', '_FPDF_VIEWERREF_GetPrintPageRangeElement', '_FPDF_VIEWERREF_GetPrintScaling', '_FPDFAction_GetDest', '_FPDFAction_GetFilePath', '_FPDFAction_GetType', '_FPDFAction_GetURIPath', '_FPDFAnnot_AddFileAttachment', '_FPDFAnnot_AddInkStroke', '_FPDFAnnot_AppendAttachmentPoints', '_FPDFAnnot_AppendObject', '_FPDFAnnot_CountAttachmentPoints', '_FPDFAnnot_GetAP', '_FPDFAnnot_GetAttachmentPoints', '_FPDFAnnot_GetBorder', '_FPDFAnnot_GetColor', '_FPDFAnnot_GetFileAttachment', '_FPDFAnnot_GetFlags', '_FPDFAnnot_GetFocusableSubtypes', '_FPDFAnnot_GetFocusableSubtypesCount', '_FPDFAnnot_GetFontColor', '_FPDFAnnot_GetFontSize', '_FPDFAnnot_GetFormAdditionalActionJavaScript', '_FPDFAnnot_GetFormControlCount', '_FPDFAnnot_GetFormControlIndex', '_FPDFAnnot_GetFormFieldAlternateName', '_FPDFAnnot_GetFormFieldAtPoint', '_FPDFAnnot_GetFormFieldExportValue', '_FPDFAnnot_GetFormFieldFlags', '_FPDFAnnot_GetFormFieldName', '_FPDFAnnot_GetFormFieldType', '_FPDFAnnot_GetFormFieldValue', '_FPDFAnnot_GetInkListCount', '_FPDFAnnot_GetInkListPath', '_FPDFAnnot_GetLine', '_FPDFAnnot_GetLink', '_FPDFAnnot_GetLinkedAnnot', '_FPDFAnnot_GetNumberValue', '_FPDFAnnot_GetObject', '_FPDFAnnot_GetObjectCount', '_FPDFAnnot_GetOptionCount', '_FPDFAnnot_GetOptionLabel', '_FPDFAnnot_GetRect', '_FPDFAnnot_GetStringValue', '_FPDFAnnot_GetSubtype', '_FPDFAnnot_GetValueType', '_FPDFAnnot_GetVertices', '_FPDFAnnot_HasAttachmentPoints', '_FPDFAnnot_HasKey', '_FPDFAnnot_IsChecked', '_FPDFAnnot_IsObjectSupportedSubtype', '_FPDFAnnot_IsOptionSelected', '_FPDFAnnot_IsSupportedSubtype', '_FPDFAnnot_RemoveInkList', '_FPDFAnnot_RemoveObject', '_FPDFAnnot_SetAP', '_FPDFAnnot_SetAttachmentPoints', '_FPDFAnnot_SetBorder', '_FPDFAnnot_SetColor', '_FPDFAnnot_SetFlags', '_FPDFAnnot_SetFocusableSubtypes', '_FPDFAnnot_SetFontColor', '_FPDFAnnot_SetFormFieldFlags', '_FPDFAnnot_SetRect', '_FPDFAnnot_SetStringValue', '_FPDFAnnot_SetURI', '_FPDFAnnot_UpdateObject', '_FPDFAttachment_GetFile', '_FPDFAttachment_GetName', '_FPDFAttachment_GetStringValue', '_FPDFAttachment_GetSubtype', '_FPDFAttachment_GetValueType', '_FPDFAttachment_HasKey', '_FPDFAttachment_SetFile', '_FPDFAttachment_SetStringValue', '_FPDFAvail_Create', '_FPDFAvail_Destroy', '_FPDFAvail_GetDocument', '_FPDFAvail_GetFirstPageNum', '_FPDFAvail_IsDocAvail', '_FPDFAvail_IsFormAvail', '_FPDFAvail_IsLinearized', '_FPDFAvail_IsPageAvail', '_FPDFBitmap_Create', '_FPDFBitmap_CreateEx', '_FPDFBitmap_Destroy', '_FPDFBitmap_FillRect', '_FPDFBitmap_GetBuffer', '_FPDFBitmap_GetFormat', '_FPDFBitmap_GetHeight', '_FPDFBitmap_GetStride', '_FPDFBitmap_GetWidth', '_FPDFBookmark_Find', '_FPDFBookmark_GetAction', '_FPDFBookmark_GetCount', '_FPDFBookmark_GetDest', '_FPDFBookmark_GetFirstChild', '_FPDFBookmark_GetNextSibling', '_FPDFBookmark_GetTitle', '_FPDFCatalog_GetLanguage', '_FPDFCatalog_IsTagged', '_FPDFCatalog_SetLanguage', '_FPDFClipPath_CountPaths', '_FPDFClipPath_CountPathSegments', '_FPDFClipPath_GetPathSegment', '_FPDFDest_GetDestPageIndex', '_FPDFDest_GetLocationInPage', '_FPDFDest_GetView', '_FPDFDoc_AddAttachment', '_FPDFDoc_CloseJavaScriptAction', '_FPDFDoc_DeleteAttachment', '_FPDFDOC_ExitFormFillEnvironment', '_FPDFDoc_GetAttachment', '_FPDFDoc_GetAttachmentCount', '_FPDFDoc_GetJavaScriptAction', '_FPDFDoc_GetJavaScriptActionCount', '_FPDFDoc_GetPageMode', '_FPDFDOC_InitFormFillEnvironment', '_FPDFFont_Close', '_FPDFFont_GetAscent', '_FPDFFont_GetBaseFontName', '_FPDFFont_GetDescent', '_FPDFFont_GetFamilyName', '_FPDFFont_GetFlags', '_FPDFFont_GetFontData', '_FPDFFont_GetGlyphPath', '_FPDFFont_GetGlyphWidth', '_FPDFFont_GetIsEmbedded', '_FPDFFont_GetItalicAngle', '_FPDFFont_GetWeight', '_FPDFFormObj_CountObjects', '_FPDFFormObj_GetObject', '_FPDFFormObj_RemoveObject', '_FPDFGlyphPath_CountGlyphSegments', '_FPDFGlyphPath_GetGlyphPathSegment', '_FPDFImageObj_GetBitmap', '_FPDFImageObj_GetIccProfileDataDecoded', '_FPDFImageObj_GetImageDataDecoded', '_FPDFImageObj_GetImageDataRaw', '_FPDFImageObj_GetImageFilter', '_FPDFImageObj_GetImageFilterCount', '_FPDFImageObj_GetImageMetadata', '_FPDFImageObj_GetImagePixelSize', '_FPDFImageObj_GetRenderedBitmap', '_FPDFImageObj_LoadJpegFile', '_FPDFImageObj_LoadJpegFileInline', '_FPDFImageObj_SetBitmap', '_FPDFImageObj_SetMatrix', '_FPDFJavaScriptAction_GetName', '_FPDFJavaScriptAction_GetScript', '_FPDFLink_CloseWebLinks', '_FPDFLink_CountQuadPoints', '_FPDFLink_CountRects', '_FPDFLink_CountWebLinks', '_FPDFLink_Enumerate', '_FPDFLink_GetAction', '_FPDFLink_GetAnnot', '_FPDFLink_GetAnnotRect', '_FPDFLink_GetDest', '_FPDFLink_GetLinkAtPoint', '_FPDFLink_GetLinkZOrderAtPoint', '_FPDFLink_GetQuadPoints', '_FPDFLink_GetRect', '_FPDFLink_GetTextRange', '_FPDFLink_GetURL', '_FPDFLink_LoadWebLinks', '_FPDFPage_CloseAnnot', '_FPDFPage_CountObjects', '_FPDFPage_CreateAnnot', '_FPDFPage_Delete', '_FPDFPage_Flatten', '_FPDFPage_FormFieldZOrderAtPoint', '_FPDFPage_GenerateContent', '_FPDFPage_GetAnnot', '_FPDFPage_GetAnnotCount', '_FPDFPage_GetAnnotIndex', '_FPDFPage_GetArtBox', '_FPDFPage_GetBleedBox', '_FPDFPage_GetCropBox', '_FPDFPage_GetDecodedThumbnailData', '_FPDFPage_GetMediaBox', '_FPDFPage_GetObject', '_FPDFPage_GetRawThumbnailData', '_FPDFPage_GetRotation', '_FPDFPage_GetThumbnailAsBitmap', '_FPDFPage_GetTrimBox', '_FPDFPage_HasFormFieldAtPoint', '_FPDFPage_HasTransparency', '_FPDFPage_InsertClipPath', '_FPDFPage_InsertObject', '_FPDFPage_InsertObjectAtIndex', '_FPDFPage_New', '_FPDFPage_RemoveAnnot', '_FPDFPage_RemoveObject', '_FPDFPage_SetArtBox', '_FPDFPage_SetBleedBox', '_FPDFPage_SetCropBox', '_FPDFPage_SetMediaBox', '_FPDFPage_SetRotation', '_FPDFPage_SetTrimBox', '_FPDFPage_TransformAnnots', '_FPDFPage_TransFormWithClip', '_FPDFPageObj_AddMark', '_FPDFPageObj_CountMarks', '_FPDFPageObj_CreateNewPath', '_FPDFPageObj_CreateNewRect', '_FPDFPageObj_CreateTextObj', '_FPDFPageObj_Destroy', '_FPDFPageObj_GetBounds', '_FPDFPageObj_GetClipPath', '_FPDFPageObj_GetDashArray', '_FPDFPageObj_GetDashCount', '_FPDFPageObj_GetDashPhase', '_FPDFPageObj_GetFillColor', '_FPDFPageObj_GetIsActive', '_FPDFPageObj_GetLineCap', '_FPDFPageObj_GetLineJoin', '_FPDFPageObj_GetMark', '_FPDFPageObj_GetMarkedContentID', '_FPDFPageObj_GetMatrix', '_FPDFPageObj_GetRotatedBounds', '_FPDFPageObj_GetStrokeColor', '_FPDFPageObj_GetStrokeWidth', '_FPDFPageObj_GetType', '_FPDFPageObj_HasTransparency', '_FPDFPageObj_NewImageObj', '_FPDFPageObj_NewTextObj', '_FPDFPageObj_RemoveMark', '_FPDFPageObj_SetBlendMode', '_FPDFPageObj_SetDashArray', '_FPDFPageObj_SetDashPhase', '_FPDFPageObj_SetFillColor', '_FPDFPageObj_SetIsActive', '_FPDFPageObj_SetLineCap', '_FPDFPageObj_SetLineJoin', '_FPDFPageObj_SetMatrix', '_FPDFPageObj_SetStrokeColor', '_FPDFPageObj_SetStrokeWidth', '_FPDFPageObj_Transform', '_FPDFPageObj_TransformClipPath', '_FPDFPageObj_TransformF', '_FPDFPageObjMark_CountParams', '_FPDFPageObjMark_GetName', '_FPDFPageObjMark_GetParamBlobValue', '_FPDFPageObjMark_GetParamFloatValue', '_FPDFPageObjMark_GetParamIntValue', '_FPDFPageObjMark_GetParamKey', '_FPDFPageObjMark_GetParamStringValue', '_FPDFPageObjMark_GetParamValueType', '_FPDFPageObjMark_RemoveParam', '_FPDFPageObjMark_SetBlobParam', '_FPDFPageObjMark_SetFloatParam', '_FPDFPageObjMark_SetIntParam', '_FPDFPageObjMark_SetStringParam', '_FPDFPath_BezierTo', '_FPDFPath_Close', '_FPDFPath_CountSegments', '_FPDFPath_GetDrawMode', '_FPDFPath_GetPathSegment', '_FPDFPath_LineTo', '_FPDFPath_MoveTo', '_FPDFPath_SetDrawMode', '_FPDFPathSegment_GetClose', '_FPDFPathSegment_GetPoint', '_FPDFPathSegment_GetType', '_FPDFSignatureObj_GetByteRange', '_FPDFSignatureObj_GetContents', '_FPDFSignatureObj_GetDocMDPPermission', '_FPDFSignatureObj_GetReason', '_FPDFSignatureObj_GetSubFilter', '_FPDFSignatureObj_GetTime', '_FPDFText_ClosePage', '_FPDFText_CountChars', '_FPDFText_CountRects', '_FPDFText_FindClose', '_FPDFText_FindNext', '_FPDFText_FindPrev', '_FPDFText_FindStart', '_FPDFText_GetBoundedText', '_FPDFText_GetCharAngle', '_FPDFText_GetCharBox', '_FPDFText_GetCharIndexAtPos', '_FPDFText_GetCharIndexFromTextIndex', '_FPDFText_GetCharOrigin', '_FPDFText_GetFillColor', '_FPDFText_GetFontInfo', '_FPDFText_GetFontSize', '_FPDFText_GetFontWeight', '_FPDFText_GetLooseCharBox', '_FPDFText_GetMatrix', '_FPDFText_GetRect', '_FPDFText_GetSchCount', '_FPDFText_GetSchResultIndex', '_FPDFText_GetStrokeColor', '_FPDFText_GetText', '_FPDFText_GetTextIndexFromCharIndex', '_FPDFText_GetTextObject', '_FPDFText_GetUnicode', '_FPDFText_HasUnicodeMapError', '_FPDFText_IsGenerated', '_FPDFText_IsHyphen', '_FPDFText_LoadCidType2Font', '_FPDFText_LoadFont', '_FPDFText_LoadPage', '_FPDFText_LoadStandardFont', '_FPDFText_SetCharcodes', '_FPDFText_SetText', '_FPDFTextObj_GetFont', '_FPDFTextObj_GetFontSize', '_FPDFTextObj_GetRenderedBitmap', '_FPDFTextObj_GetText', '_FPDFTextObj_GetTextRenderMode', '_FPDFTextObj_SetTextRenderMode', '_PDFiumExt_CloseFileWriter', '_PDFiumExt_CloseFormFillInfo', '_PDFiumExt_ExitFormFillEnvironment', '_PDFiumExt_GetFileWriterData', '_PDFiumExt_GetFileWriterSize', '_PDFiumExt_Init', '_PDFiumExt_InitFormFillEnvironment', '_PDFiumExt_OpenFileWriter', '_PDFiumExt_OpenFormFillInfo', '_PDFiumExt_SaveAsCopy', '_malloc', '_free', '_memory', '___indirect_function_table', 'onRuntimeInitialized', ].forEach((prop) => { if (!Object.getOwnPropertyDescriptor(readyPromise, prop)) { Object.defineProperty(readyPromise, prop, { get: () => abort( 'You are getting ' + prop + ' on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js', ), set: () => abort( 'You are setting ' + prop + ' on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js', ), }); } }); // Determine the runtime environment we are in. You can customize this by // setting the ENVIRONMENT setting at compile time (see settings.js). // Attempt to auto-detect the environment var ENVIRONMENT_IS_WEB = typeof window == 'object'; var ENVIRONMENT_IS_WORKER = typeof importScripts == 'function'; // N.b. Electron.js environment is simultaneously a NODE-environment, but // also a web environment. typeof process == 'object' && typeof process.versions == 'object' && typeof process.versions.node == 'string' && process.type != 'renderer'; var ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && true && !ENVIRONMENT_IS_WORKER; var require; // --pre-jses are emitted after the Module integration code, so that they can // refer to Module (if they choose; they can also define Module) // Sometimes an existing Module object exists with properties // meant to overwrite the default module functionality. Here // we collect those properties and reapply _after_ we configure // the current environment's defaults to avoid having to be so // defensive during initialization. var moduleOverrides = Object.assign({}, Module); var thisProgram = './this.program'; // `/` should be present at the end if `scriptDirectory` is not empty var scriptDirectory = ''; function locateFile(path) { if (Module['locateFile']) { return Module['locateFile'](path, scriptDirectory); } return scriptDirectory + path; } // Hooks that are implemented differently in different runtime environments. var readAsync, readBinary; if (ENVIRONMENT_IS_SHELL) { if ( (typeof process == 'object' && typeof require === 'function') || typeof window == 'object' || typeof importScripts == 'function' ) throw new Error( 'not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)', ); readBinary = (f) => { if (typeof readbuffer == 'function') { return new Uint8Array(readbuffer(f)); } let data = read(f, 'binary'); assert(typeof data == 'object'); return data; }; readAsync = (f) => { return new Promise((resolve, reject) => { setTimeout(() => resolve(readBinary(f))); }); }; globalThis.clearTimeout ??= (id) => {}; // spidermonkey lacks setTimeout but we use it above in readAsync. globalThis.setTimeout ??= (f) => (typeof f == 'function' ? f() : abort()); if (typeof print != 'undefined') { // Prefer to use print/printErr where they exist, as they usually work better. globalThis.console ??= /** @type{!Console} */ ({}); console.log = /** @type{!function(this:Console, ...*): undefined} */ (print); console.warn = console.error = /** @type{!function(this:Console, ...*): undefined} */ ( globalThis.printErr ?? print ); } } else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { // Note that this includes Node.js workers when relevant (pthreads is enabled). // Node.js workers are detected as a combination of ENVIRONMENT_IS_WORKER and // ENVIRONMENT_IS_NODE. if (ENVIRONMENT_IS_WORKER) { // Check worker, not web, since window could be polyfilled scriptDirectory = self.location.href; } else if (typeof document != 'undefined' && document.currentScript) { // web scriptDirectory = document.currentScript.src; } // When MODULARIZE, this JS may be executed later, after document.currentScript // is gone, so we saved it, and we use it here instead of any other info. if (_scriptName) { scriptDirectory = _scriptName; } // blob urls look like blob:http://site.com/etc/etc and we cannot infer anything from them. // otherwise, slice off the final part of the url to find the script directory. // if scriptDirectory does not contain a slash, lastIndexOf will return -1, // and scriptDirectory will correctly be replaced with an empty string. // If scriptDirectory contains a query (starting with ?) or a fragment (starting with #), // they are removed because they could contain a slash. if (scriptDirectory.startsWith('blob:')) { scriptDirectory = ''; } else { scriptDirectory = scriptDirectory.substr( 0, scriptDirectory.replace(/[?#].*/, '').lastIndexOf('/') + 1, ); } if (!(typeof window == 'object' || typeof importScripts == 'function')) throw new Error( 'not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)', ); { // include: web_or_worker_shell_read.js if (ENVIRONMENT_IS_WORKER) { readBinary = (url) => { var xhr = new XMLHttpRequest(); xhr.open('GET', url, false); xhr.responseType = 'arraybuffer'; xhr.send(null); return new Uint8Array(/** @type{!ArrayBuffer} */ (xhr.response)); }; } readAsync = (url) => { assert(!isFileURI(url), 'readAsync does not work with file:// URLs'); return fetch(url, { credentials: 'same-origin' }).then((response) => { if (response.ok) { return response.arrayBuffer(); } return Promise.reject(new Error(response.status + ' : ' + response.url)); }); }; // end include: web_or_worker_shell_read.js } } else { throw new Error('environment detection error'); } var out = Module['print'] || console.log.bind(console); var err = Module['printErr'] || console.error.bind(console); // Merge back in the overrides Object.assign(Module, moduleOverrides); // Free the object hierarchy contained in the overrides, this lets the GC // reclaim data used. moduleOverrides = null; checkIncomingModuleAPI(); // Emit code to handle expected values on the Module object. This applies Module.x // to the proper local x. This has two benefits: first, we only emit it if it is // expected to arrive, and second, by using a local everywhere else that can be // minified. if (Module['arguments']) Module['arguments']; legacyModuleProp('arguments', 'arguments_'); if (Module['thisProgram']) thisProgram = Module['thisProgram']; legacyModuleProp('thisProgram', 'thisProgram'); // perform assertions in shell.js after we set up out() and err(), as otherwise if an assertion fails it cannot print the message // Assertions on removed incoming Module JS APIs. assert( typeof Module['memoryInitializerPrefixURL'] == 'undefined', 'Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead', ); assert( typeof Module['pthreadMainPrefixURL'] == 'undefined', 'Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead', ); assert( typeof Module['cdInitializerPrefixURL'] == 'undefined', 'Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead', ); assert( typeof Module['filePackagePrefixURL'] == 'undefined', 'Module.filePackagePrefixURL option was removed, use Module.locateFile instead', ); assert(typeof Module['read'] == 'undefined', 'Module.read option was removed'); assert( typeof Module['readAsync'] == 'undefined', 'Module.readAsync option was removed (modify readAsync in JS)', ); assert( typeof Module['readBinary'] == 'undefined', 'Module.readBinary option was removed (modify readBinary in JS)', ); assert( typeof Module['setWindowTitle'] == 'undefined', 'Module.setWindowTitle option was removed (modify emscripten_set_window_title in JS)', ); assert( typeof Module['TOTAL_MEMORY'] == 'undefined', 'Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY', ); legacyModuleProp('asm', 'wasmExports'); legacyModuleProp('readAsync', 'readAsync'); legacyModuleProp('readBinary', 'readBinary'); legacyModuleProp('setWindowTitle', 'setWindowTitle'); // end include: shell.js // include: preamble.js // === Preamble library stuff === // Documentation for the public APIs defined in this file must be updated in: // site/source/docs/api_reference/preamble.js.rst // A prebuilt local version of the documentation is available at: // site/build/text/docs/api_reference/preamble.js.txt // You can also build docs locally as HTML or other formats in site/ // An online HTML version (which may be of a different version of Emscripten) // is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html var wasmBinary = Module['wasmBinary']; legacyModuleProp('wasmBinary', 'wasmBinary'); if (typeof WebAssembly != 'object') { err('no native wasm support detected'); } // Wasm globals var wasmMemory; //======================================== // Runtime essentials //======================================== // whether we are quitting the application. no code should run after this. // set in exit() and abort() var ABORT = false; // In STRICT mode, we only define assert() when ASSERTIONS is set. i.e. we // don't define it at all in release modes. This matches the behaviour of // MINIMAL_RUNTIME. // TODO(sbc): Make this the default even without STRICT enabled. /** @type {function(*, string=)} */ function assert(condition, text) { if (!condition) { abort('Assertion failed' + (text ? ': ' + text : '')); } } // We used to include malloc/free by default in the past. Show a helpful error in // builds with assertions. // Memory management var /** @type {!Int8Array} */ HEAP8, /** @type {!Uint8Array} */ HEAPU8, /** @type {!Int16Array} */ HEAP16, /** @type {!Uint16Array} */ HEAPU16, /** @type {!Int32Array} */ HEAP32, /** @type {!Uint32Array} */ HEAPU32, /** @type {!Float32Array} */ HEAPF32, /** @type {!Float64Array} */ HEAPF64; // include: runtime_shared.js function updateMemoryViews() { var b = wasmMemory.buffer; Module['HEAP8'] = HEAP8 = new Int8Array(b); Module['HEAP16'] = HEAP16 = new Int16Array(b); Module['HEAPU8'] = HEAPU8 = new Uint8Array(b); Module['HEAPU16'] = HEAPU16 = new Uint16Array(b); Module['HEAP32'] = HEAP32 = new Int32Array(b); Module['HEAPU32'] = HEAPU32 = new Uint32Array(b); Module['HEAPF32'] = HEAPF32 = new Float32Array(b); Module['HEAPF64'] = HEAPF64 = new Float64Array(b); } // end include: runtime_shared.js assert( !Module['STACK_SIZE'], 'STACK_SIZE can no longer be set at runtime. Use -sSTACK_SIZE at link time', ); assert( typeof Int32Array != 'undefined' && typeof Float64Array !== 'undefined' && Int32Array.prototype.subarray != undefined && Int32Array.prototype.set != undefined, 'JS engine does not provide full typed array support', ); // If memory is defined in wasm, the user can't provide it, or set INITIAL_MEMORY assert( !Module['wasmMemory'], 'Use of `wasmMemory` detected. Use -sIMPORTED_MEMORY to define wasmMemory externally', ); assert( !Module['INITIAL_MEMORY'], 'Detected runtime INITIAL_MEMORY setting. Use -sIMPORTED_MEMORY to define wasmMemory dynamically', ); // include: runtime_stack_check.js // Initializes the stack cookie. Called at the startup of main and at the startup of each thread in pthreads mode. function writeStackCookie() { var max = _emscripten_stack_get_end(); assert((max & 3) == 0); // If the stack ends at address zero we write our cookies 4 bytes into the // stack. This prevents interference with SAFE_HEAP and ASAN which also // monitor writes to address zero. if (max == 0) { max += 4; } // The stack grow downwards towards _emscripten_stack_get_end. // We write cookies to the final two words in the stack and detect if they are // ever overwritten. HEAPU32[max >> 2] = 0x02135467; HEAPU32[(max + 4) >> 2] = 0x89bacdfe; // Also test the global address 0 for integrity. HEAPU32[0 >> 2] = 1668509029; } function checkStackCookie() { if (ABORT) return; var max = _emscripten_stack_get_end(); // See writeStackCookie(). if (max == 0) { max += 4; } var cookie1 = HEAPU32[max >> 2]; var cookie2 = HEAPU32[(max + 4) >> 2]; if (cookie1 != 0x02135467 || cookie2 != 0x89bacdfe) { abort( `Stack overflow! Stack cookie has been overwritten at ${ptrToString(max)}, expected hex dwords 0x89BACDFE and 0x2135467, but received ${ptrToString(cookie2)} ${ptrToString(cookie1)}`, ); } // Also test the global address 0 for integrity. if (HEAPU32[0 >> 2] != 0x63736d65 /* 'emsc' */) { abort('Runtime error: The application has corrupted its heap memory area (address zero)!'); } } // end include: runtime_stack_check.js var __ATPRERUN__ = []; // functions called before the runtime is initialized var __ATINIT__ = []; // functions called during startup var __ATPOSTRUN__ = []; // functions called after the main() is called var runtimeInitialized = false; function preRun() { var preRuns = Module['preRun']; if (preRuns) { if (typeof preRuns == 'function') preRuns = [preRuns]; preRuns.forEach(addOnPreRun); } callRuntimeCallbacks(__ATPRERUN__); } function initRuntime() { assert(!runtimeInitialized); runtimeInitialized = true; checkStackCookie(); if (!Module['noFSInit'] && !FS.initialized) FS.init(); FS.ignorePermissions = false; callRuntimeCallbacks(__ATINIT__); } function postRun() { checkStackCookie(); var postRuns = Module['postRun']; if (postRuns) { if (typeof postRuns == 'function') postRuns = [postRuns]; postRuns.forEach(addOnPostRun); } callRuntimeCallbacks(__ATPOSTRUN__); } function addOnPreRun(cb) { __ATPRERUN__.unshift(cb); } function addOnInit(cb) { __ATINIT__.unshift(cb); } function addOnPostRun(cb) { __ATPOSTRUN__.unshift(cb); } // include: runtime_math.js // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/fround // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/clz32 // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc assert( Math.imul, 'This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill', ); assert( Math.fround, 'This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill', ); assert( Math.clz32, 'This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill', ); assert( Math.trunc, 'This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill', ); // end include: runtime_math.js // A counter of dependencies for calling run(). If we need to // do asynchronous work before running, increment this and // decrement it. Incrementing must happen in a place like // Module.preRun (used by emcc to add file preloading). // Note that you can add dependencies in preRun, even though // it happens right before run - run will be postponed until // the dependencies are met. var runDependencies = 0; var runDependencyWatcher = null; var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled var runDependencyTracking = {}; function getUniqueRunDependency(id) { var orig = id; while (1) { if (!runDependencyTracking[id]) return id; id = orig + Math.random(); } } function addRunDependency(id) { runDependencies++; Module['monitorRunDependencies']?.(runDependencies); if (id) { assert(!runDependencyTracking[id]); runDependencyTracking[id] = 1; if (runDependencyWatcher === null && typeof setInterval != 'undefined') { // Check for missing dependencies every few seconds runDependencyWatcher = setInterval(() => { if (ABORT) { clearInterval(runDependencyWatcher); runDependencyWatcher = null; return; } var shown = false; for (var dep in runDependencyTracking) { if (!shown) { shown = true; err('still waiting on run dependencies:'); } err(`dependency: ${dep}`); } if (shown) { err('(end of list)'); } }, 10000); } } else { err('warning: run dependency added without ID'); } } function removeRunDependency(id) { runDependencies--; Module['monitorRunDependencies']?.(runDependencies); if (id) { assert(runDependencyTracking[id]); delete runDependencyTracking[id]; } else { err('warning: run dependency removed without ID'); } if (runDependencies == 0) { if (runDependencyWatcher !== null) { clearInterval(runDependencyWatcher); runDependencyWatcher = null; } if (dependenciesFulfilled) { var callback = dependenciesFulfilled; dependenciesFulfilled = null; callback(); // can add another dependenciesFulfilled } } } /** @param {string|number=} what */ function abort(what) { Module['onAbort']?.(what); what = 'Aborted(' + what + ')'; // TODO(sbc): Should we remove printing and leave it up to whoever // catches the exception? err(what); ABORT = true; // Use a wasm runtime error, because a JS error might be seen as a foreign // exception, which means we'd run destructors on it. We need the error to // simply make the program stop. // FIXME This approach does not work in Wasm EH because it currently does not assume // all RuntimeErrors are from traps; it decides whether a RuntimeError is from // a trap or not based on a hidden field within the object. So at the moment // we don't have a way of throwing a wasm trap from JS. TODO Make a JS API that // allows this in the wasm spec. // Suppress closure compiler warning here. Closure compiler's builtin extern // definition for WebAssembly.RuntimeError claims it takes no arguments even // though it can. // TODO(https://github.com/google/closure-compiler/pull/3913): Remove if/when upstream closure gets fixed. /** @suppress {checkTypes} */ var e = new WebAssembly.RuntimeError(what); readyPromiseReject(e); // Throw the error whether or not MODULARIZE is set because abort is used // in code paths apart from instantiation where an exception is expected // to be thrown when abort is called. throw e; } // include: memoryprofiler.js // end include: memoryprofiler.js // include: URIUtils.js // Prefix of data URIs emitted by SINGLE_FILE and related options. var dataURIPrefix = 'data:application/octet-stream;base64,'; /** * Indicates whether filename is a base64 data URI. * @noinline */ var isDataURI = (filename) => filename.startsWith(dataURIPrefix); /** * Indicates whether filename is delivered via file protocol (as opposed to http/https) * @noinline */ var isFileURI = (filename) => filename.startsWith('file://'); // end include: URIUtils.js function createExportWrapper(name, nargs) { return (...args) => { assert( runtimeInitialized, `native function \`${name}\` called before runtime initialization`, ); var f = wasmExports[name]; assert(f, `exported native function \`${name}\` not found`); // Only assert for too many arguments. Too few can be valid since the missing arguments will be zero filled. assert( args.length <= nargs, `native function \`${name}\` called with ${args.length} args but expects ${nargs}`, ); return f(...args); }; } // include: runtime_exceptions.js // end include: runtime_exceptions.js function findWasmBinary() { if (Module['locateFile']) { var f = 'pdfium.wasm'; if (!isDataURI(f)) { return locateFile(f); } return f; } if (ENVIRONMENT_IS_SHELL) return 'pdfium.wasm'; // Use bundler-friendly `new URL(..., import.meta.url)` pattern; works in browsers too. return new URL('pdfium.wasm', import.meta.url).href; } var wasmBinaryFile; function getBinarySync(file) { if (file == wasmBinaryFile && wasmBinary) { return new Uint8Array(wasmBinary); } if (readBinary) { return readBinary(file); } throw 'both async and sync fetching of the wasm failed'; } function getBinaryPromise(binaryFile) { // If we don't have the binary yet, load it asynchronously using readAsync. if (!wasmBinary) { // Fetch the binary using readAsync return readAsync(binaryFile).then( (response) => new Uint8Array(/** @type{!ArrayBuffer} */ (response)), // Fall back to getBinarySync if readAsync fails () => getBinarySync(binaryFile), ); } // Otherwise, getBinarySync should be able to get it synchronously return Promise.resolve().then(() => getBinarySync(binaryFile)); } function instantiateArrayBuffer(binaryFile, imports, receiver) { return getBinaryPromise(binaryFile) .then((binary) => { return WebAssembly.instantiate(binary, imports); }) .then(receiver, (reason) => { err(`failed to asynchronously prepare wasm: ${reason}`); // Warn on some common problems. if (isFileURI(wasmBinaryFile)) { err( `warning: Loading from a file URI (${wasmBinaryFile}) is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing`, ); } abort(reason); }); } function instantiateAsync(binary, binaryFile, imports, callback) { if ( !binary && typeof WebAssembly.instantiateStreaming == 'function' && !isDataURI(binaryFile) && // Avoid instantiateStreaming() on Node.js environment for now, as while // Node.js v18.1.0 implements it, it does not have a full fetch() // implementation yet. // // Reference: // https://github.com/emscripten-core/emscripten/pull/16917 true && typeof fetch == 'function' ) { return fetch(binaryFile, { credentials: 'same-origin' }).then((response) => { // Suppress closure warning here since the upstream definition for // instantiateStreaming only allows Promise<Repsponse> rather than // an actual Response. // TODO(https://github.com/google/closure-compiler/pull/3913): Remove if/when upstream closure is fixed. /** @suppress {checkTypes} */ var result = WebAssembly.instantiateStreaming(response, imports); return result.then(callback, function (reason) { // We expect the most common failure cause to be a bad MIME type for the binary, // in which case falling back to ArrayBuffer instantiation should work. err(`wasm streaming compile failed: ${reason}`); err('falling back to ArrayBuffer instantiation'); return instantiateArrayBuffer(binaryFile, imports, callback); }); }); } return instantiateArrayBuffer(binaryFile, imports, callback); } function getWasmImports() { // prepare imports return { env: wasmImports, wasi_snapshot_preview1: wasmImports, }; } // Create the wasm instance. // Receives the wasm imports, returns the exports. function createWasm() { var info = getWasmImports(); // Load the wasm module and create an instance of using native support in the JS engine. // handle a generated wasm instance, receiving its exports and // performing other necessary setup /** @param {WebAssembly.Module=} module*/ function receiveInstance(instance, module) { wasmExports = instance.exports; Module['wasmExports'] = wasmExports; wasmMemory = wasmExports['memory']; assert(wasmMemory, 'memory not found in wasm exports'); updateMemoryViews(); wasmTable = wasmExports['__indirect_function_table']; assert(wasmTable, 'table not found in wasm exports'); addOnInit(wasmExports['__wasm_call_ctors']); removeRunDependency('wasm-instantiate'); return wasmExports; } // wait for the pthread pool (if any) addRunDependency('wasm-instantiate'); // Prefer streaming instantiation if available. // Async compilation can be confusing when an error on the page overwrites Module // (for example, if the order of elements is wrong, and the one defining Module is // later), so we save Module and check it later. var trueModule = Module; function receiveInstantiationResult(result) { // 'result' is a ResultObject object which has both the module and instance. // receiveInstance() will swap in the exports (to Module.asm) so they can be called assert( Module === trueModule, 'the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?', ); trueModule = null; // TODO: Due to Closure regression https://github.com/google/closure-compiler/issues/3193, the above line no longer optimizes out down to the following line. // When the regression is fixed, can restore the above PTHREADS-enabled path. receiveInstance(result['instance']); } // User shell pages can write their own Module.instantiateWasm = function(imports, successCallback) callback // to manually instantiate the Wasm module themselves. This allows pages to // run the instantiation parallel to any other async startup actions they are // performing. // Also pthreads and wasm workers initialize the wasm instance through this // path. if (Module['instantiateWasm']) { try { return Module['instantiateWasm'](info, receiveInstance); } catch (e) { err(`Module.instantiateWasm callback failed with error: ${e}`); // If instantiation fails, reject the module ready promise. readyPromiseReject(e); } } wasmBinaryFile ??= findWasmBinary(); // If instantiation fails, reject the module ready promise. instantiateAsync(wasmBinary, wasmBinaryFile, info, receiveInstantiationResult).catch( readyPromiseReject,