diff --git a/app/index.html b/app/index.html
index 64fdb33..9c4dbd3 100644
--- a/app/index.html
+++ b/app/index.html
@@ -685,8 +685,7 @@
autocomplete="off" value="SubsPlease">
name != null))].join(')|(')})${ep}"${settings.torrent1}"-(${exclusions[userBrowser].join('|')})`)
+ const url = new URL(`https://meowinjapanese.cf/?page=rss&c=1_2&f=${settings.torrent3 === true ? 2 : 0}&s=seeders&o=desc&q=(${[...new Set(Object.values(media.title).concat(media.synonyms).filter(name => name != null))].join(')|(')})${ep}"${settings.torrent1}"-(${exclusions[userBrowser].join('|')})`)
res = await fetch(url)
await res.text().then((xmlTxt) => {
try {
diff --git a/app/js/player.js b/app/js/player.js
index 75585ad..215b363 100644
--- a/app/js/player.js
+++ b/app/js/player.js
@@ -170,11 +170,11 @@ Style: Default,${options.defaultSSAStyles || 'Roboto Medium,26,&H00FFFFFF,&H0000
}
if ('setPositionState' in navigator.mediaSession) this.video.addEventListener('timeupdate', () => this.updatePositionState())
+ this.subtitleExtensions = ['.srt', '.ass', '.vtt']
this.videoExtensions = ['.3g2', '.3gp', '.asf', '.avi', '.dv', '.flv', '.gxf', '.m2ts', '.m4a', '.m4b', '.m4p', '.m4r', '.m4v', '.mkv', '.mov', '.mp4', '.mpd', '.mpeg', '.mpg', '.mxf', '.nut', '.ogm', '.ogv', '.swf', '.ts', '.vob', '.webm', '.wmv', '.wtv']
this.videoFiles = undefined
this.updateDisplay()
- this.currentTorrent = undefined
this.offlineTorrents = JSON.parse(localStorage.getItem('offlineTorrents')) || {}
// adds all offline store torrents to the client
Object.values(this.offlineTorrents).forEach(torrentID => this.offlineDownload(new Blob([new Uint8Array(torrentID)]), true))
@@ -318,7 +318,6 @@ Style: Default,${options.defaultSSAStyles || 'Roboto Medium,26,&H00FFFFFF,&H0000
} else {
this.currentFile = this.videoFiles[0]
}
- this.currentTorrent = torrent
this.video.src = `/app/webtorrent/${torrent.infoHash}/${encodeURI(this.currentFile.path)}`
this.video.load()
@@ -364,7 +363,6 @@ Style: Default,${options.defaultSSAStyles || 'Roboto Medium,26,&H00FFFFFF,&H0000
if (this.subtitleData.fonts) this.subtitleData.fonts.forEach(file => URL.revokeObjectURL(file)) // ideally this should clean up after its been downloaded by the sw renderer, but oh well
this.controls.downloadFile.setAttribute('disabled', '')
this.currentFile = undefined
- this.currentTorrent = undefined
this.video.poster = ''
// some attemt at cache clearing
this.video.pause()
@@ -459,8 +457,9 @@ Style: Default,${options.defaultSSAStyles || 'Roboto Medium,26,&H00FFFFFF,&H0000
if (this.videoFiles?.indexOf(this.currentFile) < this.videoFiles?.length) {
const nowPlaying = this.nowPlaying
nowPlaying.episodeNumber += 1
+ const torrent = this.currentFile._torrent
this.cleanupVideo()
- this.buildVideo(this.currentTorrent, { media: nowPlaying, file: this.videoFiles[this.videoFiles.indexOf(this.currentFile) + 1] })
+ this.buildVideo(torrent, { media: nowPlaying, file: this.videoFiles[this.videoFiles.indexOf(this.currentFile) + 1] })
} else {
if (this.onNext) this.onNext()
}
@@ -664,11 +663,11 @@ Style: Default,${options.defaultSSAStyles || 'Roboto Medium,26,&H00FFFFFF,&H0000
}
updateDisplay () {
- if (this.currentTorrent && this.currentFile) {
+ if (this.currentFile && this.currentFile._torrent) {
this.player.style.setProperty('--download', this.currentFile.progress * 100 + '%')
- this.controls.peers.dataset.value = this.currentTorrent.numPeers
- this.controls.downSpeed.dataset.value = this.prettyBytes(this.currentTorrent.downloadSpeed) + '/s'
- this.controls.upSpeed.dataset.value = this.prettyBytes(this.currentTorrent.uploadSpeed) + '/s'
+ this.controls.peers.dataset.value = this.currentFile._torrent.numPeers
+ this.controls.downSpeed.dataset.value = this.prettyBytes(this.currentFile._torrent.downloadSpeed) + '/s'
+ this.controls.upSpeed.dataset.value = this.prettyBytes(this.currentFile._torrent.uploadSpeed) + '/s'
}
setTimeout(() => requestAnimationFrame(() => this.updateDisplay()), 200)
}
@@ -875,8 +874,17 @@ Style: Default,${options.defaultSSAStyles || 'Roboto Medium,26,&H00FFFFFF,&H0000
return subtitles
}
+ findSubtitles (targetFile) {
+ const path = targetFile.path.split(targetFile.name)[0]
+ const subtitleFiles = []
+ for (const file of targetFile.torrent_.files.filter(file => this.subtitleExtensions.some(ext => file.name.endsWith(ext)))) {
+ const split = file.split(path)
+ if (split.length === 2) subtitleFiles.push(file)
+ }
+ }
+
async downloadFile () {
- if (this.currentFile?.done && !this.currentTorrent.store.store._store) {
+ if (this.currentFile?.done && !this.currentFile._torrent.store.store._store) {
this.currentFile.getBlobURL((err, url) => {
if (err) throw err
const a = document.createElement('a')
@@ -896,7 +904,7 @@ Style: Default,${options.defaultSSAStyles || 'Roboto Medium,26,&H00FFFFFF,&H0000
if (this.generateThumbnails) {
this.finishThumbnails(this.video.src)
}
- if (!this.currentTorrent.store.store._store) { // only allow download from RAM
+ if (!this.currentFile._torrent.store.store._store) { // only allow download from RAM
this.controls.downloadFile.removeAttribute('disabled')
}
}
@@ -1043,8 +1051,7 @@ const client = new TorrentPlayer({
fillType: ''
})
},
- onWatched: () => { // TODO: fix
- console.log('ran')
+ onWatched: () => {
if (client.nowPlaying.media?.episodes || client.nowPlaying.media?.nextAiringEpisode?.episode) {
if (settings.other2 && (client.nowPlaying.media?.episodes || client.nowPlaying.media?.nextAiringEpisode?.episode > client.nowPlaying.episodeNumber)) {
alEntry()
diff --git a/app/js/subtitles-octopus-worker.js b/app/js/subtitles-octopus-worker.js
index b60c573..11e07f2 100644
--- a/app/js/subtitles-octopus-worker.js
+++ b/app/js/subtitles-octopus-worker.js
@@ -1,41 +1,54 @@
-var Module = typeof Module !== "undefined" ? Module : {}
+var Module = typeof Module !== 'undefined' ? Module : {}
if (!Module.expectedDataFileDownloads) {
Module.expectedDataFileDownloads = 0
Module.finishedDataFileDownloads = 0
}
-Module.expectedDataFileDownloads++;
-(function () {
- var loadPackage = function (metadata) {
- var PACKAGE_PATH
- if (typeof window === "object") {
- PACKAGE_PATH = window["encodeURIComponent"](window.location.pathname.toString().substring(0, window.location.pathname.toString().lastIndexOf("/")) + "/")
- } else if (typeof location !== "undefined") {
- PACKAGE_PATH = encodeURIComponent(location.pathname.toString().substring(0, location.pathname.toString().lastIndexOf("/")) + "/")
+Module.expectedDataFileDownloads++
+;(function () {
+ const loadPackage = function (metadata) {
+ let PACKAGE_PATH
+ if (typeof window === 'object') {
+ PACKAGE_PATH = window.encodeURIComponent(
+ window.location.pathname
+ .toString()
+ .substring(0, window.location.pathname.toString().lastIndexOf('/')) +
+ '/'
+ )
+ } else if (typeof location !== 'undefined') {
+ PACKAGE_PATH = encodeURIComponent(
+ location.pathname
+ .toString()
+ .substring(0, location.pathname.toString().lastIndexOf('/')) + '/'
+ )
} else {
- throw "using preloaded data can only be done on a web page or in a web worker"
+ throw 'using preloaded data can only be done on a web page or in a web worker'
}
- var PACKAGE_NAME = "dist/js/subtitles-octopus-worker.data";
- var REMOTE_PACKAGE_BASE = "subtitles-octopus-worker.data";
- if (typeof Module["locateFilePackage"] === "function" && !Module["locateFile"]) {
- Module["locateFile"] = Module["locateFilePackage"];
- err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")
+ const PACKAGE_NAME = 'dist/js/subtitles-octopus-worker.data'
+ const REMOTE_PACKAGE_BASE = 'subtitles-octopus-worker.data'
+ if (typeof Module.locateFilePackage === 'function' && !Module.locateFile) {
+ Module.locateFile = Module.locateFilePackage
+ err(
+ 'warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)'
+ )
}
- var REMOTE_PACKAGE_NAME = Module["locateFile"] ? Module["locateFile"](REMOTE_PACKAGE_BASE, "") : REMOTE_PACKAGE_BASE;
- var REMOTE_PACKAGE_SIZE = metadata["remote_package_size"];
- var PACKAGE_UUID = metadata["package_uuid"];
+ const REMOTE_PACKAGE_NAME = Module.locateFile
+ ? Module.locateFile(REMOTE_PACKAGE_BASE, '')
+ : REMOTE_PACKAGE_BASE
+ const REMOTE_PACKAGE_SIZE = metadata.remote_package_size
+ const PACKAGE_UUID = metadata.package_uuid
- function fetchRemotePackage(packageName, packageSize, callback, errback) {
- var xhr = new XMLHttpRequest;
- xhr.open("GET", packageName, true);
- xhr.responseType = "arraybuffer";
+ function fetchRemotePackage (packageName, packageSize, callback, errback) {
+ const xhr = new XMLHttpRequest()
+ xhr.open('GET', packageName, true)
+ xhr.responseType = 'arraybuffer'
xhr.onprogress = function (event) {
- var url = packageName;
- var size = packageSize;
- if (event.total) size = event.total;
+ const url = packageName
+ let size = packageSize
+ if (event.total) size = event.total
if (event.loaded) {
if (!xhr.addedTotal) {
- xhr.addedTotal = true;
- if (!Module.dataFileDownloads) Module.dataFileDownloads = {};
+ xhr.addedTotal = true
+ if (!Module.dataFileDownloads) Module.dataFileDownloads = {}
Module.dataFileDownloads[url] = {
loaded: event.loaded,
total: size
@@ -43,138 +56,177 @@ Module.expectedDataFileDownloads++;
} else {
Module.dataFileDownloads[url].loaded = event.loaded
}
- var total = 0;
- var loaded = 0;
- var num = 0;
- for (var download in Module.dataFileDownloads) {
- var data = Module.dataFileDownloads[download];
- total += data.total;
- loaded += data.loaded;
+ let total = 0
+ let loaded = 0
+ let num = 0
+ for (const download in Module.dataFileDownloads) {
+ const data = Module.dataFileDownloads[download]
+ total += data.total
+ loaded += data.loaded
num++
}
- total = Math.ceil(total * Module.expectedDataFileDownloads / num);
- if (Module["setStatus"]) Module["setStatus"]("Downloading data... (" + loaded + "/" + total + ")")
+ total = Math.ceil((total * Module.expectedDataFileDownloads) / num)
+ if (Module.setStatus) {
+ Module.setStatus(
+ 'Downloading data... (' + loaded + '/' + total + ')'
+ )
+ }
} else if (!Module.dataFileDownloads) {
- if (Module["setStatus"]) Module["setStatus"]("Downloading data...")
+ if (Module.setStatus) Module.setStatus('Downloading data...')
}
- };
+ }
xhr.onerror = function (event) {
- throw new Error("NetworkError for: " + packageName)
- };
+ throw new Error('NetworkError for: ' + packageName)
+ }
xhr.onload = function (event) {
- if (xhr.status == 200 || xhr.status == 304 || xhr.status == 206 || xhr.status == 0 && xhr.response) {
- var packageData = xhr.response;
+ if (
+ xhr.status == 200 ||
+ xhr.status == 304 ||
+ xhr.status == 206 ||
+ (xhr.status == 0 && xhr.response)
+ ) {
+ const packageData = xhr.response
callback(packageData)
} else {
- throw new Error(xhr.statusText + " : " + xhr.responseURL)
+ throw new Error(xhr.statusText + ' : ' + xhr.responseURL)
}
- };
+ }
xhr.send(null)
}
- function handleError(error) {
- console.error("package error:", error)
+ function handleError (error) {
+ console.error('package error:', error)
+ }
+ let fetchedCallback = null
+ let fetched = Module.getPreloadedPackage
+ ? Module.getPreloadedPackage(REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE)
+ : null
+ if (!fetched) {
+ fetchRemotePackage(
+ REMOTE_PACKAGE_NAME,
+ REMOTE_PACKAGE_SIZE,
+ function (data) {
+ if (fetchedCallback) {
+ fetchedCallback(data)
+ fetchedCallback = null
+ } else {
+ fetched = data
+ }
+ },
+ handleError
+ )
}
- var fetchedCallback = null;
- var fetched = Module["getPreloadedPackage"] ? Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE) : null;
- if (!fetched) fetchRemotePackage(REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE, function (data) {
- if (fetchedCallback) {
- fetchedCallback(data);
- fetchedCallback = null
- } else {
- fetched = data
- }
- }, handleError);
- function runWithFS() {
- function assert(check, msg) {
- if (!check) throw msg + (new Error).stack
+ function runWithFS () {
+ function assert (check, msg) {
+ if (!check) throw msg + new Error().stack
}
- Module["FS_createPath"]("/", "assets", true, true);
+ Module.FS_createPath('/', 'assets', true, true)
- function DataRequest(start, end, audio) {
- this.start = start;
- this.end = end;
+ function DataRequest (start, end, audio) {
+ this.start = start
+ this.end = end
this.audio = audio
}
DataRequest.prototype = {
requests: {},
open: function (mode, name) {
- this.name = name;
- this.requests[name] = this;
- Module["addRunDependency"]("fp " + this.name)
+ this.name = name
+ this.requests[name] = this
+ Module.addRunDependency('fp ' + this.name)
},
send: function () {},
onload: function () {
- var byteArray = this.byteArray.subarray(this.start, this.end);
+ const byteArray = this.byteArray.subarray(this.start, this.end)
this.finish(byteArray)
},
finish: function (byteArray) {
- var that = this;
- Module["FS_createPreloadedFile"](this.name, null, byteArray, true, true, function () {
- Module["removeRunDependency"]("fp " + that.name)
- }, function () {
- if (that.audio) {
- Module["removeRunDependency"]("fp " + that.name)
- } else {
- err("Preloading file " + that.name + " failed")
- }
- }, false, true);
+ const that = this
+ Module.FS_createPreloadedFile(
+ this.name,
+ null,
+ byteArray,
+ true,
+ true,
+ function () {
+ Module.removeRunDependency('fp ' + that.name)
+ },
+ function () {
+ if (that.audio) {
+ Module.removeRunDependency('fp ' + that.name)
+ } else {
+ err('Preloading file ' + that.name + ' failed')
+ }
+ },
+ false,
+ true
+ )
this.requests[this.name] = null
}
- };
- var files = metadata["files"];
- for (var i = 0; i < files.length; ++i) {
- new DataRequest(files[i]["start"], files[i]["end"], files[i]["audio"]).open("GET", files[i]["filename"])
+ }
+ const files = metadata.files
+ for (let i = 0; i < files.length; ++i) {
+ new DataRequest(files[i].start, files[i].end, files[i].audio).open(
+ 'GET',
+ files[i].filename
+ )
}
- function processPackageData(arrayBuffer) {
- Module.finishedDataFileDownloads++;
- assert(arrayBuffer, "Loading data file failed.");
- assert(arrayBuffer instanceof ArrayBuffer, "bad input to processPackageData");
- var byteArray = new Uint8Array(arrayBuffer);
- DataRequest.prototype.byteArray = byteArray;
- var files = metadata["files"];
- for (var i = 0; i < files.length; ++i) {
+ function processPackageData (arrayBuffer) {
+ Module.finishedDataFileDownloads++
+ assert(arrayBuffer, 'Loading data file failed.')
+ assert(
+ arrayBuffer instanceof ArrayBuffer,
+ 'bad input to processPackageData'
+ )
+ const byteArray = new Uint8Array(arrayBuffer)
+ DataRequest.prototype.byteArray = byteArray
+ const files = metadata.files
+ for (let i = 0; i < files.length; ++i) {
DataRequest.prototype.requests[files[i].filename].onload()
}
- Module["removeRunDependency"]("datafile_dist/js/subtitles-octopus-worker.data")
+ Module.removeRunDependency(
+ 'datafile_dist/js/subtitles-octopus-worker.data'
+ )
}
- Module["addRunDependency"]("datafile_dist/js/subtitles-octopus-worker.data");
- if (!Module.preloadResults) Module.preloadResults = {};
+ Module.addRunDependency('datafile_dist/js/subtitles-octopus-worker.data')
+ if (!Module.preloadResults) Module.preloadResults = {}
Module.preloadResults[PACKAGE_NAME] = {
fromCache: false
- };
+ }
if (fetched) {
- processPackageData(fetched);
+ processPackageData(fetched)
fetched = null
} else {
fetchedCallback = processPackageData
}
}
- if (Module["calledRun"]) {
+ if (Module.calledRun) {
runWithFS()
} else {
- if (!Module["preRun"]) Module["preRun"] = [];
- Module["preRun"].push(runWithFS)
+ if (!Module.preRun) Module.preRun = []
+ Module.preRun.push(runWithFS)
}
- };
+ }
loadPackage({
- "files": [{
- "filename": "/assets/default.ttc",
- "start": 0,
- "end": 18748872,
- "audio": 0
- }, {
- "filename": "/assets/fonts.conf",
- "start": 18748872,
- "end": 18749675,
- "audio": 0
- }],
- "remote_package_size": 18749675,
- "package_uuid": "c2c4bc8c-8d5f-44f7-ba59-afa5c87c5ec1"
+ files: [
+ {
+ filename: '/assets/default.ttc',
+ start: 0,
+ end: 18748872,
+ audio: 0
+ },
+ {
+ filename: '/assets/fonts.conf',
+ start: 18748872,
+ end: 18749675,
+ audio: 0
+ }
+ ],
+ remote_package_size: 18749675,
+ package_uuid: 'c2c4bc8c-8d5f-44f7-ba59-afa5c87c5ec1'
})
-})();
+})()
if (!String.prototype.endsWith) {
String.prototype.endsWith = function (search, this_len) {
if (this_len === undefined || this_len > this.length) {
@@ -184,168 +236,192 @@ if (!String.prototype.endsWith) {
}
}
if (!Uint8Array.prototype.slice) {
- Object.defineProperty(Uint8Array.prototype, "slice", {
+ Object.defineProperty(Uint8Array.prototype, 'slice', {
value: function (begin, end) {
return new Uint8Array(this.subarray(begin, end))
}
})
}
-var hasNativeConsole = typeof console !== "undefined";
+const hasNativeConsole = typeof console !== 'undefined'
-function makeCustomConsole() {
- var console = function () {
- function postConsoleMessage(prefix, args) {
+function makeCustomConsole () {
+ const console = (function () {
+ function postConsoleMessage (prefix, args) {
postMessage({
- target: "console-" + prefix,
+ target: 'console-' + prefix,
content: JSON.stringify(Array.prototype.slice.call(args))
})
}
return {
log: function () {
- postConsoleMessage("log", arguments)
+ postConsoleMessage('log', arguments)
},
debug: function () {
- postConsoleMessage("debug", arguments)
+ postConsoleMessage('debug', arguments)
},
info: function () {
- postConsoleMessage("info", arguments)
+ postConsoleMessage('info', arguments)
},
warn: function () {
- postConsoleMessage("warn", arguments)
+ postConsoleMessage('warn', arguments)
},
error: function () {
- postConsoleMessage("error", arguments)
+ postConsoleMessage('error', arguments)
}
}
- }();
+ })()
return console
}
-Module = Module || {};
-Module["preRun"] = Module["preRun"] || [];
-Module["preRun"].push(function () {
- var i;
- Module["FS_createFolder"]("/", "fonts", true, true);
+Module = Module || {}
+Module.preRun = Module.preRun || []
+Module.preRun.push(function () {
+ var i
+ Module.FS_createFolder('/', 'fonts', true, true)
if (!self.subContent) {
- if (self.subUrl.endsWith(".br")) {
- self.subContent = Module["BrotliDecode"](readBinary(self.subUrl))
+ if (self.subUrl.endsWith('.br')) {
+ self.subContent = Module.BrotliDecode(readBinary(self.subUrl))
} else {
self.subContent = read_(self.subUrl)
}
}
- let result; {
- const regex = new RegExp("^fontname((v2:[ \t]*(?[^_]+)_(?[^,]*).(?[a-z0-9]{3,5}),[ \t]*(?.+)$)|(:[ \t]*(?[^_]+)_(?[^$]*).(?[a-z0-9]{3,5})(?(?:\r?\n[!-`]+)+)))", "mg");
+ let result
+ {
+ const regex = new RegExp(
+ '^fontname((v2:[ \t]*(?[^_]+)_(?[^,]*).(?[a-z0-9]{3,5}),[ \t]*(?.+)$)|(:[ \t]*(?[^_]+)_(?[^$]*).(?[a-z0-9]{3,5})(?(?:\r?\n[!-`]+)+)))',
+ 'mg'
+ )
while ((result = regex.exec(self.subContent)) !== null) {
- let font;
- if ("fontName2" in result.groups && result.groups.fontName2 !== undefined) {
+ let font
+ if (
+ 'fontName2' in result.groups &&
+ result.groups.fontName2 !== undefined
+ ) {
font = {
content: self.readDataUri(result.groups.fontContent2),
id: result.groups.fontName2,
- name: result.groups.fontName2 + "." + result.groups.fontExtension2
+ name: result.groups.fontName2 + '.' + result.groups.fontExtension2
}
} else {
font = {
content: self.decodeASSFontEncoding(result.groups.fontContent),
id: result.groups.fontName2,
- name: result.groups.fontName + "." + result.groups.fontExtension
+ name: result.groups.fontName + '.' + result.groups.fontExtension
}
}
- self.fontMap_[font.id] = true;
- Module["FS"].writeFile("/fonts/font" + self.fontId++ + "-" + font.name, font.content, {
- encoding: "binary"
- });
- console.log("libass: attaching embedded font " + font.name)
+ self.fontMap_[font.id] = true
+ Module.FS.writeFile(
+ '/fonts/font' + self.fontId++ + '-' + font.name,
+ font.content,
+ {
+ encoding: 'binary'
+ }
+ )
+ console.log('libass: attaching embedded font ' + font.name)
}
}
if (self.availableFonts && self.availableFonts.length !== 0) {
- var sections = parseAss(self.subContent);
+ const sections = parseAss(self.subContent)
for (var i = 0; i < sections.length; i++) {
- for (var j = 0; j < sections[i].body.length; j++) {
- if (sections[i].body[j].key === "Style") {
- self.writeFontToFS(sections[i].body[j].value["Fontname"])
+ for (let j = 0; j < sections[i].body.length; j++) {
+ if (sections[i].body[j].key === 'Style') {
+ self.writeFontToFS(sections[i].body[j].value.Fontname)
}
}
}
- var regex = /\\fn([^\\}]*?)[\\}]/g;
- var matches;
- while (matches = regex.exec(self.subContent)) {
+ const regex = /\\fn([^\\}]*?)[\\}]/g
+ let matches
+ while ((matches = regex.exec(self.subContent))) {
self.writeFontToFS(matches[1])
}
}
if (self.subContent) {
- Module["FS"].writeFile("/sub.ass", self.subContent)
+ Module.FS.writeFile('/sub.ass', self.subContent)
}
- self.subContent = null;
- var fontFiles = self.fontFiles || [];
+ self.subContent = null
+ const fontFiles = self.fontFiles || []
for (i = 0; i < fontFiles.length; i++) {
- Module["FS_createPreloadedFile"]("/fonts", "font" + i + "-" + fontFiles[i].split("/").pop(), fontFiles[i], true, true)
+ Module.FS_createPreloadedFile(
+ '/fonts',
+ 'font' + i + '-' + fontFiles[i].split('/').pop(),
+ fontFiles[i],
+ true,
+ true
+ )
}
-});
-Module["onRuntimeInitialized"] = function () {
- self.octObj = new Module.SubtitleOctopus;
- self.changed = Module._malloc(4);
- self.octObj.initLibrary(screen.width, screen.height);
- self.octObj.setDropAnimations(!!self.dropAllAnimations);
- self.octObj.createTrack("/sub.ass");
- self.ass_track = self.octObj.track;
- self.ass_library = self.octObj.ass_library;
- self.ass_renderer = self.octObj.ass_renderer;
+})
+Module.onRuntimeInitialized = function () {
+ self.octObj = new Module.SubtitleOctopus()
+ self.changed = Module._malloc(4)
+ self.octObj.initLibrary(screen.width, screen.height)
+ self.octObj.setDropAnimations(!!self.dropAllAnimations)
+ self.octObj.createTrack('/sub.ass')
+ self.ass_track = self.octObj.track
+ self.ass_library = self.octObj.ass_library
+ self.ass_renderer = self.octObj.ass_renderer
if (self.libassMemoryLimit > 0 || self.libassGlyphLimit > 0) {
self.octObj.setMemoryLimits(self.libassGlyphLimit, self.libassMemoryLimit)
}
-};
-Module["print"] = function (text) {
- if (arguments.length > 1) text = Array.prototype.slice.call(arguments).join(" ");
+}
+Module.print = function (text) {
+ if (arguments.length > 1) {
+ text = Array.prototype.slice.call(arguments).join(' ')
+ }
console.log(text)
-};
-Module["printErr"] = function (text) {
- if (arguments.length > 1) text = Array.prototype.slice.call(arguments).join(" ");
+}
+Module.printErr = function (text) {
+ if (arguments.length > 1) {
+ text = Array.prototype.slice.call(arguments).join(' ')
+ }
console.error(text)
-};
+}
if (!hasNativeConsole) {
var console = {
log: function (x) {
- if (typeof dump === "function") dump("log: " + x + "\n")
+ if (typeof dump === 'function') dump('log: ' + x + '\n')
},
debug: function (x) {
- if (typeof dump === "function") dump("debug: " + x + "\n")
+ if (typeof dump === 'function') dump('debug: ' + x + '\n')
},
info: function (x) {
- if (typeof dump === "function") dump("info: " + x + "\n")
+ if (typeof dump === 'function') dump('info: ' + x + '\n')
},
warn: function (x) {
- if (typeof dump === "function") dump("warn: " + x + "\n")
+ if (typeof dump === 'function') dump('warn: ' + x + '\n')
},
error: function (x) {
- if (typeof dump === "function") dump("error: " + x + "\n")
+ if (typeof dump === 'function') dump('error: ' + x + '\n')
}
}
}
-if ("performance" in self === false) {
+if ('performance' in self === false) {
self.performance = {}
}
-Date.now = Date.now || function () {
- return (new Date).getTime()
-};
-if ("now" in self.performance === false) {
- var nowOffset = Date.now();
+Date.now =
+ Date.now ||
+ function () {
+ return new Date().getTime()
+ }
+if ('now' in self.performance === false) {
+ let nowOffset = Date.now()
if (performance.timing && performance.timing.navigationStart) {
nowOffset = performance.timing.navigationStart
}
- self.performance.now = function now() {
+ self.performance.now = function now () {
return Date.now() - nowOffset
}
-}(function (f) {
- if (typeof exports === "object" && typeof module !== "undefined") {
+}
+;(function (f) {
+ if (typeof exports === 'object' && typeof module !== 'undefined') {
module.exports = f()
- } else if (typeof define === "function" && define.amd) {
+ } else if (typeof define === 'function' && define.amd) {
define([], f)
} else {
- var g;
- if (typeof window !== "undefined") {
+ let g
+ if (typeof window !== 'undefined') {
g = window
- } else if (typeof global !== "undefined") {
+ } else if (typeof global !== 'undefined') {
g = global
- } else if (typeof self !== "undefined") {
+ } else if (typeof self !== 'undefined') {
g = self
} else {
g = this
@@ -353,1408 +429,3983 @@ if ("now" in self.performance === false) {
g.unbrotli = f()
}
})(function () {
- return function () {
- function r(e, n, t) {
- function o(i, f) {
+ return (function () {
+ function r (e, n, t) {
+ function o (i, f) {
if (!n[i]) {
if (!e[i]) {
- var c = "function" == typeof require && require;
- if (!f && c) return c(i, !0);
- if (u) return u(i, !0);
- var a = new Error("Cannot find module '" + i + "'");
- throw a.code = "MODULE_NOT_FOUND", a
+ const c = typeof require === 'function' && require
+ if (!f && c) return c(i, !0)
+ if (u) return u(i, !0)
+ const a = new Error("Cannot find module '" + i + "'")
+ throw ((a.code = 'MODULE_NOT_FOUND'), a)
}
- var p = n[i] = {
+ const p = (n[i] = {
exports: {}
- };
- e[i][0].call(p.exports, function (r) {
- var n = e[i][1][r];
- return o(n || r)
- }, p, p.exports, r, e, n, t)
+ })
+ e[i][0].call(
+ p.exports,
+ function (r) {
+ const n = e[i][1][r]
+ return o(n || r)
+ },
+ p,
+ p.exports,
+ r,
+ e,
+ n,
+ t
+ )
}
return n[i].exports
}
- for (var u = "function" == typeof require && require, i = 0; i < t.length; i++) o(t[i]);
+ for (
+ var u = typeof require === 'function' && require, i = 0;
+ i < t.length;
+ i++
+ ) {
+ o(t[i])
+ }
return o
}
return r
- }()({
- 1: [function (require, module, exports) {
- var BROTLI_READ_SIZE = 4096;
- var BROTLI_IBUF_SIZE = 2 * BROTLI_READ_SIZE + 32;
- var BROTLI_IBUF_MASK = 2 * BROTLI_READ_SIZE - 1;
- var kBitMask = new Uint32Array([0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767, 65535, 131071, 262143, 524287, 1048575, 2097151, 4194303, 8388607, 16777215]);
+ })()(
+ {
+ 1: [
+ function (require, module, exports) {
+ const BROTLI_READ_SIZE = 4096
+ const BROTLI_IBUF_SIZE = 2 * BROTLI_READ_SIZE + 32
+ const BROTLI_IBUF_MASK = 2 * BROTLI_READ_SIZE - 1
+ const kBitMask = new Uint32Array([
+ 0,
+ 1,
+ 3,
+ 7,
+ 15,
+ 31,
+ 63,
+ 127,
+ 255,
+ 511,
+ 1023,
+ 2047,
+ 4095,
+ 8191,
+ 16383,
+ 32767,
+ 65535,
+ 131071,
+ 262143,
+ 524287,
+ 1048575,
+ 2097151,
+ 4194303,
+ 8388607,
+ 16777215
+ ])
- function BrotliBitReader(input) {
- this.buf_ = new Uint8Array(BROTLI_IBUF_SIZE);
- this.input_ = input;
- this.reset()
- }
- BrotliBitReader.READ_SIZE = BROTLI_READ_SIZE;
- BrotliBitReader.IBUF_MASK = BROTLI_IBUF_MASK;
- BrotliBitReader.prototype.reset = function () {
- this.buf_ptr_ = 0;
- this.val_ = 0;
- this.pos_ = 0;
- this.bit_pos_ = 0;
- this.bit_end_pos_ = 0;
- this.eos_ = 0;
- this.readMoreInput();
- for (var i = 0; i < 4; i++) {
- this.val_ |= this.buf_[this.pos_] << 8 * i;
- ++this.pos_
- }
- return this.bit_end_pos_ > 0
- };
- BrotliBitReader.prototype.readMoreInput = function () {
- if (this.bit_end_pos_ > 256) {
- return
- } else if (this.eos_) {
- if (this.bit_pos_ > this.bit_end_pos_) throw new Error("Unexpected end of input " + this.bit_pos_ + " " + this.bit_end_pos_)
- } else {
- var dst = this.buf_ptr_;
- var bytes_read = this.input_.read(this.buf_, dst, BROTLI_READ_SIZE);
- if (bytes_read < 0) {
- throw new Error("Unexpected end of input")
+ function BrotliBitReader (input) {
+ this.buf_ = new Uint8Array(BROTLI_IBUF_SIZE)
+ this.input_ = input
+ this.reset()
}
- if (bytes_read < BROTLI_READ_SIZE) {
- this.eos_ = 1;
- for (var p = 0; p < 32; p++) this.buf_[dst + bytes_read + p] = 0
- }
- if (dst === 0) {
- for (var p = 0; p < 32; p++) this.buf_[(BROTLI_READ_SIZE << 1) + p] = this.buf_[p];
- this.buf_ptr_ = BROTLI_READ_SIZE
- } else {
+ BrotliBitReader.READ_SIZE = BROTLI_READ_SIZE
+ BrotliBitReader.IBUF_MASK = BROTLI_IBUF_MASK
+ BrotliBitReader.prototype.reset = function () {
this.buf_ptr_ = 0
- }
- this.bit_end_pos_ += bytes_read << 3
- }
- };
- BrotliBitReader.prototype.fillBitWindow = function () {
- while (this.bit_pos_ >= 8) {
- this.val_ >>>= 8;
- this.val_ |= this.buf_[this.pos_ & BROTLI_IBUF_MASK] << 24;
- ++this.pos_;
- this.bit_pos_ = this.bit_pos_ - 8 >>> 0;
- this.bit_end_pos_ = this.bit_end_pos_ - 8 >>> 0
- }
- };
- BrotliBitReader.prototype.readBits = function (n_bits) {
- if (32 - this.bit_pos_ < n_bits) {
- this.fillBitWindow()
- }
- var val = this.val_ >>> this.bit_pos_ & kBitMask[n_bits];
- this.bit_pos_ += n_bits;
- return val
- };
- module.exports = BrotliBitReader
- }, {}],
- 2: [function (require, module, exports) {
- exports.lookup = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 12, 16, 12, 12, 20, 12, 16, 24, 28, 12, 12, 32, 12, 36, 12, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 32, 32, 24, 40, 28, 12, 12, 48, 52, 52, 52, 48, 52, 52, 52, 48, 52, 52, 52, 52, 52, 48, 52, 52, 52, 52, 52, 48, 52, 52, 52, 52, 52, 24, 12, 28, 12, 12, 12, 56, 60, 60, 60, 56, 60, 60, 60, 56, 60, 60, 60, 60, 60, 56, 60, 60, 60, 60, 60, 56, 60, 60, 60, 60, 60, 24, 12, 28, 12, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 56, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 23, 23, 23, 23, 24, 24, 24, 24, 25, 25, 25, 25, 26, 26, 26, 26, 27, 27, 27, 27, 28, 28, 28, 28, 29, 29, 29, 29, 30, 30, 30, 30, 31, 31, 31, 31, 32, 32, 32, 32, 33, 33, 33, 33, 34, 34, 34, 34, 35, 35, 35, 35, 36, 36, 36, 36, 37, 37, 37, 37, 38, 38, 38, 38, 39, 39, 39, 39, 40, 40, 40, 40, 41, 41, 41, 41, 42, 42, 42, 42, 43, 43, 43, 43, 44, 44, 44, 44, 45, 45, 45, 45, 46, 46, 46, 46, 47, 47, 47, 47, 48, 48, 48, 48, 49, 49, 49, 49, 50, 50, 50, 50, 51, 51, 51, 51, 52, 52, 52, 52, 53, 53, 53, 53, 54, 54, 54, 54, 55, 55, 55, 55, 56, 56, 56, 56, 57, 57, 57, 57, 58, 58, 58, 58, 59, 59, 59, 59, 60, 60, 60, 60, 61, 61, 61, 61, 62, 62, 62, 62, 63, 63, 63, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
- exports.lookupOffsets = new Uint16Array([1024, 1536, 1280, 1536, 0, 256, 768, 512])
- }, {}],
- 3: [function (require, module, exports) {
- var BrotliInput = require("./streams").BrotliInput;
- var BrotliOutput = require("./streams").BrotliOutput;
- var BrotliBitReader = require("./bit_reader");
- var BrotliDictionary = require("./dictionary");
- var HuffmanCode = require("./huffman").HuffmanCode;
- var BrotliBuildHuffmanTable = require("./huffman").BrotliBuildHuffmanTable;
- var Context = require("./context");
- var Prefix = require("./prefix");
- var Transform = require("./transform");
- var kDefaultCodeLength = 8;
- var kCodeLengthRepeatCode = 16;
- var kNumLiteralCodes = 256;
- var kNumInsertAndCopyCodes = 704;
- var kNumBlockLengthCodes = 26;
- var kLiteralContextBits = 6;
- var kDistanceContextBits = 2;
- var HUFFMAN_TABLE_BITS = 8;
- var HUFFMAN_TABLE_MASK = 255;
- var HUFFMAN_MAX_TABLE_SIZE = 1080;
- var CODE_LENGTH_CODES = 18;
- var kCodeLengthCodeOrder = new Uint8Array([1, 2, 3, 4, 0, 5, 17, 6, 16, 7, 8, 9, 10, 11, 12, 13, 14, 15]);
- var NUM_DISTANCE_SHORT_CODES = 16;
- var kDistanceShortCodeIndexOffset = new Uint8Array([3, 2, 1, 0, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2]);
- var kDistanceShortCodeValueOffset = new Int8Array([0, 0, 0, 0, -1, 1, -2, 2, -3, 3, -1, 1, -2, 2, -3, 3]);
- var kMaxHuffmanTableSize = new Uint16Array([256, 402, 436, 468, 500, 534, 566, 598, 630, 662, 694, 726, 758, 790, 822, 854, 886, 920, 952, 984, 1016, 1048, 1080]);
-
- function DecodeWindowBits(br) {
- var n;
- if (br.readBits(1) === 0) {
- return 16
- }
- n = br.readBits(3);
- if (n > 0) {
- return 17 + n
- }
- n = br.readBits(3);
- if (n > 0) {
- return 8 + n
- }
- return 17
- }
-
- function DecodeVarLenUint8(br) {
- if (br.readBits(1)) {
- var nbits = br.readBits(3);
- if (nbits === 0) {
- return 1
- } else {
- return br.readBits(nbits) + (1 << nbits)
- }
- }
- return 0
- }
-
- function MetaBlockLength() {
- this.meta_block_length = 0;
- this.input_end = 0;
- this.is_uncompressed = 0;
- this.is_metadata = false
- }
-
- function DecodeMetaBlockLength(br) {
- var out = new MetaBlockLength;
- var size_nibbles;
- var size_bytes;
- var i;
- out.input_end = br.readBits(1);
- if (out.input_end && br.readBits(1)) {
- return out
- }
- size_nibbles = br.readBits(2) + 4;
- if (size_nibbles === 7) {
- out.is_metadata = true;
- if (br.readBits(1) !== 0) throw new Error("Invalid reserved bit");
- size_bytes = br.readBits(2);
- if (size_bytes === 0) return out;
- for (i = 0; i < size_bytes; i++) {
- var next_byte = br.readBits(8);
- if (i + 1 === size_bytes && size_bytes > 1 && next_byte === 0) throw new Error("Invalid size byte");
- out.meta_block_length |= next_byte << i * 8
- }
- } else {
- for (i = 0; i < size_nibbles; ++i) {
- var next_nibble = br.readBits(4);
- if (i + 1 === size_nibbles && size_nibbles > 4 && next_nibble === 0) throw new Error("Invalid size nibble");
- out.meta_block_length |= next_nibble << i * 4
- }
- }++out.meta_block_length;
- if (!out.input_end && !out.is_metadata) {
- out.is_uncompressed = br.readBits(1)
- }
- return out
- }
-
- function ReadSymbol(table, index, br) {
- var nbits;
- br.fillBitWindow();
- index += br.val_ >>> br.bit_pos_ & HUFFMAN_TABLE_MASK;
- nbits = table[index].bits - HUFFMAN_TABLE_BITS;
- if (nbits > 0) {
- br.bit_pos_ += HUFFMAN_TABLE_BITS;
- index += table[index].value;
- index += br.val_ >>> br.bit_pos_ & (1 << nbits) - 1
- }
- br.bit_pos_ += table[index].bits;
- return table[index].value
- }
-
- function ReadHuffmanCodeLengths(code_length_code_lengths, num_symbols, code_lengths, br) {
- var symbol = 0;
- var prev_code_len = kDefaultCodeLength;
- var repeat = 0;
- var repeat_code_len = 0;
- var space = 32768;
- var table = [];
- for (var i = 0; i < 32; i++) table.push(new HuffmanCode(0, 0));
- BrotliBuildHuffmanTable(table, 0, 5, code_length_code_lengths, CODE_LENGTH_CODES);
- while (symbol < num_symbols && space > 0) {
- var p = 0;
- var code_len;
- br.readMoreInput();
- br.fillBitWindow();
- p += br.val_ >>> br.bit_pos_ & 31;
- br.bit_pos_ += table[p].bits;
- code_len = table[p].value & 255;
- if (code_len < kCodeLengthRepeatCode) {
- repeat = 0;
- code_lengths[symbol++] = code_len;
- if (code_len !== 0) {
- prev_code_len = code_len;
- space -= 32768 >> code_len
- }
- } else {
- var extra_bits = code_len - 14;
- var old_repeat;
- var repeat_delta;
- var new_len = 0;
- if (code_len === kCodeLengthRepeatCode) {
- new_len = prev_code_len
- }
- if (repeat_code_len !== new_len) {
- repeat = 0;
- repeat_code_len = new_len
- }
- old_repeat = repeat;
- if (repeat > 0) {
- repeat -= 2;
- repeat <<= extra_bits
- }
- repeat += br.readBits(extra_bits) + 3;
- repeat_delta = repeat - old_repeat;
- if (symbol + repeat_delta > num_symbols) {
- throw new Error("[ReadHuffmanCodeLengths] symbol + repeat_delta > num_symbols")
- }
- for (var x = 0; x < repeat_delta; x++) code_lengths[symbol + x] = repeat_code_len;
- symbol += repeat_delta;
- if (repeat_code_len !== 0) {
- space -= repeat_delta << 15 - repeat_code_len
+ this.val_ = 0
+ this.pos_ = 0
+ this.bit_pos_ = 0
+ this.bit_end_pos_ = 0
+ this.eos_ = 0
+ this.readMoreInput()
+ for (let i = 0; i < 4; i++) {
+ this.val_ |= this.buf_[this.pos_] << (8 * i)
+ ++this.pos_
}
+ return this.bit_end_pos_ > 0
}
- }
- if (space !== 0) {
- throw new Error("[ReadHuffmanCodeLengths] space = " + space)
- }
- for (; symbol < num_symbols; symbol++) code_lengths[symbol] = 0
- }
-
- function ReadHuffmanCode(alphabet_size, tables, table, br) {
- var table_size = 0;
- var simple_code_or_skip;
- var code_lengths = new Uint8Array(alphabet_size);
- br.readMoreInput();
- simple_code_or_skip = br.readBits(2);
- if (simple_code_or_skip === 1) {
- var i;
- var max_bits_counter = alphabet_size - 1;
- var max_bits = 0;
- var symbols = new Int32Array(4);
- var num_symbols = br.readBits(2) + 1;
- while (max_bits_counter) {
- max_bits_counter >>= 1;
- ++max_bits
- }
- for (i = 0; i < num_symbols; ++i) {
- symbols[i] = br.readBits(max_bits) % alphabet_size;
- code_lengths[symbols[i]] = 2
- }
- code_lengths[symbols[0]] = 1;
- switch (num_symbols) {
- case 1:
- break;
- case 3:
- if (symbols[0] === symbols[1] || symbols[0] === symbols[2] || symbols[1] === symbols[2]) {
- throw new Error("[ReadHuffmanCode] invalid symbols")
+ BrotliBitReader.prototype.readMoreInput = function () {
+ if (this.bit_end_pos_ > 256) {
+ } else if (this.eos_) {
+ if (this.bit_pos_ > this.bit_end_pos_) {
+ throw new Error(
+ 'Unexpected end of input ' +
+ this.bit_pos_ +
+ ' ' +
+ this.bit_end_pos_
+ )
}
- break;
- case 2:
- if (symbols[0] === symbols[1]) {
- throw new Error("[ReadHuffmanCode] invalid symbols")
+ } else {
+ const dst = this.buf_ptr_
+ const bytes_read = this.input_.read(
+ this.buf_,
+ dst,
+ BROTLI_READ_SIZE
+ )
+ if (bytes_read < 0) {
+ throw new Error('Unexpected end of input')
}
- code_lengths[symbols[1]] = 1;
- break;
- case 4:
- if (symbols[0] === symbols[1] || symbols[0] === symbols[2] || symbols[0] === symbols[3] || symbols[1] === symbols[2] || symbols[1] === symbols[3] || symbols[2] === symbols[3]) {
- throw new Error("[ReadHuffmanCode] invalid symbols")
+ if (bytes_read < BROTLI_READ_SIZE) {
+ this.eos_ = 1
+ for (var p = 0; p < 32; p++) this.buf_[dst + bytes_read + p] = 0
}
- if (br.readBits(1)) {
- code_lengths[symbols[2]] = 3;
- code_lengths[symbols[3]] = 3
+ if (dst === 0) {
+ for (var p = 0; p < 32; p++) {
+ this.buf_[(BROTLI_READ_SIZE << 1) + p] = this.buf_[p]
+ }
+ this.buf_ptr_ = BROTLI_READ_SIZE
} else {
- code_lengths[symbols[0]] = 2
+ this.buf_ptr_ = 0
}
- break
- }
- } else {
- var i;
- var code_length_code_lengths = new Uint8Array(CODE_LENGTH_CODES);
- var space = 32;
- var num_codes = 0;
- var huff = [new HuffmanCode(2, 0), new HuffmanCode(2, 4), new HuffmanCode(2, 3), new HuffmanCode(3, 2), new HuffmanCode(2, 0), new HuffmanCode(2, 4), new HuffmanCode(2, 3), new HuffmanCode(4, 1), new HuffmanCode(2, 0), new HuffmanCode(2, 4), new HuffmanCode(2, 3), new HuffmanCode(3, 2), new HuffmanCode(2, 0), new HuffmanCode(2, 4), new HuffmanCode(2, 3), new HuffmanCode(4, 5)];
- for (i = simple_code_or_skip; i < CODE_LENGTH_CODES && space > 0; ++i) {
- var code_len_idx = kCodeLengthCodeOrder[i];
- var p = 0;
- var v;
- br.fillBitWindow();
- p += br.val_ >>> br.bit_pos_ & 15;
- br.bit_pos_ += huff[p].bits;
- v = huff[p].value;
- code_length_code_lengths[code_len_idx] = v;
- if (v !== 0) {
- space -= 32 >> v;
- ++num_codes
+ this.bit_end_pos_ += bytes_read << 3
}
}
- if (!(num_codes === 1 || space === 0)) throw new Error("[ReadHuffmanCode] invalid num_codes or space");
- ReadHuffmanCodeLengths(code_length_code_lengths, alphabet_size, code_lengths, br)
- }
- table_size = BrotliBuildHuffmanTable(tables, table, HUFFMAN_TABLE_BITS, code_lengths, alphabet_size);
- if (table_size === 0) {
- throw new Error("[ReadHuffmanCode] BuildHuffmanTable failed: ")
- }
- return table_size
- }
+ BrotliBitReader.prototype.fillBitWindow = function () {
+ while (this.bit_pos_ >= 8) {
+ this.val_ >>>= 8
+ this.val_ |= this.buf_[this.pos_ & BROTLI_IBUF_MASK] << 24
+ ++this.pos_
+ this.bit_pos_ = (this.bit_pos_ - 8) >>> 0
+ this.bit_end_pos_ = (this.bit_end_pos_ - 8) >>> 0
+ }
+ }
+ BrotliBitReader.prototype.readBits = function (n_bits) {
+ if (32 - this.bit_pos_ < n_bits) {
+ this.fillBitWindow()
+ }
+ const val = (this.val_ >>> this.bit_pos_) & kBitMask[n_bits]
+ this.bit_pos_ += n_bits
+ return val
+ }
+ module.exports = BrotliBitReader
+ },
+ {}
+ ],
+ 2: [
+ function (require, module, exports) {
+ exports.lookup = new Uint8Array([
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 4,
+ 4,
+ 0,
+ 0,
+ 4,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 8,
+ 12,
+ 16,
+ 12,
+ 12,
+ 20,
+ 12,
+ 16,
+ 24,
+ 28,
+ 12,
+ 12,
+ 32,
+ 12,
+ 36,
+ 12,
+ 44,
+ 44,
+ 44,
+ 44,
+ 44,
+ 44,
+ 44,
+ 44,
+ 44,
+ 44,
+ 32,
+ 32,
+ 24,
+ 40,
+ 28,
+ 12,
+ 12,
+ 48,
+ 52,
+ 52,
+ 52,
+ 48,
+ 52,
+ 52,
+ 52,
+ 48,
+ 52,
+ 52,
+ 52,
+ 52,
+ 52,
+ 48,
+ 52,
+ 52,
+ 52,
+ 52,
+ 52,
+ 48,
+ 52,
+ 52,
+ 52,
+ 52,
+ 52,
+ 24,
+ 12,
+ 28,
+ 12,
+ 12,
+ 12,
+ 56,
+ 60,
+ 60,
+ 60,
+ 56,
+ 60,
+ 60,
+ 60,
+ 56,
+ 60,
+ 60,
+ 60,
+ 60,
+ 60,
+ 56,
+ 60,
+ 60,
+ 60,
+ 60,
+ 60,
+ 56,
+ 60,
+ 60,
+ 60,
+ 60,
+ 60,
+ 24,
+ 12,
+ 28,
+ 12,
+ 0,
+ 0,
+ 1,
+ 0,
+ 1,
+ 0,
+ 1,
+ 0,
+ 1,
+ 0,
+ 1,
+ 0,
+ 1,
+ 0,
+ 1,
+ 0,
+ 1,
+ 0,
+ 1,
+ 0,
+ 1,
+ 0,
+ 1,
+ 0,
+ 1,
+ 0,
+ 1,
+ 0,
+ 1,
+ 0,
+ 1,
+ 0,
+ 1,
+ 0,
+ 1,
+ 0,
+ 1,
+ 0,
+ 1,
+ 0,
+ 1,
+ 0,
+ 1,
+ 0,
+ 1,
+ 0,
+ 1,
+ 0,
+ 1,
+ 0,
+ 1,
+ 0,
+ 1,
+ 0,
+ 1,
+ 0,
+ 1,
+ 0,
+ 1,
+ 0,
+ 1,
+ 0,
+ 1,
+ 0,
+ 1,
+ 2,
+ 3,
+ 2,
+ 3,
+ 2,
+ 3,
+ 2,
+ 3,
+ 2,
+ 3,
+ 2,
+ 3,
+ 2,
+ 3,
+ 2,
+ 3,
+ 2,
+ 3,
+ 2,
+ 3,
+ 2,
+ 3,
+ 2,
+ 3,
+ 2,
+ 3,
+ 2,
+ 3,
+ 2,
+ 3,
+ 2,
+ 3,
+ 2,
+ 3,
+ 2,
+ 3,
+ 2,
+ 3,
+ 2,
+ 3,
+ 2,
+ 3,
+ 2,
+ 3,
+ 2,
+ 3,
+ 2,
+ 3,
+ 2,
+ 3,
+ 2,
+ 3,
+ 2,
+ 3,
+ 2,
+ 3,
+ 2,
+ 3,
+ 2,
+ 3,
+ 2,
+ 3,
+ 2,
+ 3,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 1,
+ 1,
+ 1,
+ 1,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 0,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 4,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 6,
+ 6,
+ 6,
+ 6,
+ 6,
+ 6,
+ 6,
+ 6,
+ 6,
+ 6,
+ 6,
+ 6,
+ 6,
+ 6,
+ 6,
+ 7,
+ 0,
+ 8,
+ 8,
+ 8,
+ 8,
+ 8,
+ 8,
+ 8,
+ 8,
+ 8,
+ 8,
+ 8,
+ 8,
+ 8,
+ 8,
+ 8,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 32,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 40,
+ 48,
+ 48,
+ 48,
+ 48,
+ 48,
+ 48,
+ 48,
+ 48,
+ 48,
+ 48,
+ 48,
+ 48,
+ 48,
+ 48,
+ 48,
+ 56,
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 1,
+ 1,
+ 1,
+ 2,
+ 2,
+ 2,
+ 2,
+ 3,
+ 3,
+ 3,
+ 3,
+ 4,
+ 4,
+ 4,
+ 4,
+ 5,
+ 5,
+ 5,
+ 5,
+ 6,
+ 6,
+ 6,
+ 6,
+ 7,
+ 7,
+ 7,
+ 7,
+ 8,
+ 8,
+ 8,
+ 8,
+ 9,
+ 9,
+ 9,
+ 9,
+ 10,
+ 10,
+ 10,
+ 10,
+ 11,
+ 11,
+ 11,
+ 11,
+ 12,
+ 12,
+ 12,
+ 12,
+ 13,
+ 13,
+ 13,
+ 13,
+ 14,
+ 14,
+ 14,
+ 14,
+ 15,
+ 15,
+ 15,
+ 15,
+ 16,
+ 16,
+ 16,
+ 16,
+ 17,
+ 17,
+ 17,
+ 17,
+ 18,
+ 18,
+ 18,
+ 18,
+ 19,
+ 19,
+ 19,
+ 19,
+ 20,
+ 20,
+ 20,
+ 20,
+ 21,
+ 21,
+ 21,
+ 21,
+ 22,
+ 22,
+ 22,
+ 22,
+ 23,
+ 23,
+ 23,
+ 23,
+ 24,
+ 24,
+ 24,
+ 24,
+ 25,
+ 25,
+ 25,
+ 25,
+ 26,
+ 26,
+ 26,
+ 26,
+ 27,
+ 27,
+ 27,
+ 27,
+ 28,
+ 28,
+ 28,
+ 28,
+ 29,
+ 29,
+ 29,
+ 29,
+ 30,
+ 30,
+ 30,
+ 30,
+ 31,
+ 31,
+ 31,
+ 31,
+ 32,
+ 32,
+ 32,
+ 32,
+ 33,
+ 33,
+ 33,
+ 33,
+ 34,
+ 34,
+ 34,
+ 34,
+ 35,
+ 35,
+ 35,
+ 35,
+ 36,
+ 36,
+ 36,
+ 36,
+ 37,
+ 37,
+ 37,
+ 37,
+ 38,
+ 38,
+ 38,
+ 38,
+ 39,
+ 39,
+ 39,
+ 39,
+ 40,
+ 40,
+ 40,
+ 40,
+ 41,
+ 41,
+ 41,
+ 41,
+ 42,
+ 42,
+ 42,
+ 42,
+ 43,
+ 43,
+ 43,
+ 43,
+ 44,
+ 44,
+ 44,
+ 44,
+ 45,
+ 45,
+ 45,
+ 45,
+ 46,
+ 46,
+ 46,
+ 46,
+ 47,
+ 47,
+ 47,
+ 47,
+ 48,
+ 48,
+ 48,
+ 48,
+ 49,
+ 49,
+ 49,
+ 49,
+ 50,
+ 50,
+ 50,
+ 50,
+ 51,
+ 51,
+ 51,
+ 51,
+ 52,
+ 52,
+ 52,
+ 52,
+ 53,
+ 53,
+ 53,
+ 53,
+ 54,
+ 54,
+ 54,
+ 54,
+ 55,
+ 55,
+ 55,
+ 55,
+ 56,
+ 56,
+ 56,
+ 56,
+ 57,
+ 57,
+ 57,
+ 57,
+ 58,
+ 58,
+ 58,
+ 58,
+ 59,
+ 59,
+ 59,
+ 59,
+ 60,
+ 60,
+ 60,
+ 60,
+ 61,
+ 61,
+ 61,
+ 61,
+ 62,
+ 62,
+ 62,
+ 62,
+ 63,
+ 63,
+ 63,
+ 63,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ ])
+ exports.lookupOffsets = new Uint16Array([
+ 1024,
+ 1536,
+ 1280,
+ 1536,
+ 0,
+ 256,
+ 768,
+ 512
+ ])
+ },
+ {}
+ ],
+ 3: [
+ function (require, module, exports) {
+ const BrotliInput = require('./streams').BrotliInput
+ const BrotliOutput = require('./streams').BrotliOutput
+ const BrotliBitReader = require('./bit_reader')
+ const BrotliDictionary = require('./dictionary')
+ const HuffmanCode = require('./huffman').HuffmanCode
+ const BrotliBuildHuffmanTable = require('./huffman')
+ .BrotliBuildHuffmanTable
+ const Context = require('./context')
+ const Prefix = require('./prefix')
+ const Transform = require('./transform')
+ const kDefaultCodeLength = 8
+ const kCodeLengthRepeatCode = 16
+ const kNumLiteralCodes = 256
+ const kNumInsertAndCopyCodes = 704
+ const kNumBlockLengthCodes = 26
+ const kLiteralContextBits = 6
+ const kDistanceContextBits = 2
+ const HUFFMAN_TABLE_BITS = 8
+ const HUFFMAN_TABLE_MASK = 255
+ const HUFFMAN_MAX_TABLE_SIZE = 1080
+ const CODE_LENGTH_CODES = 18
+ const kCodeLengthCodeOrder = new Uint8Array([
+ 1,
+ 2,
+ 3,
+ 4,
+ 0,
+ 5,
+ 17,
+ 6,
+ 16,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15
+ ])
+ const NUM_DISTANCE_SHORT_CODES = 16
+ const kDistanceShortCodeIndexOffset = new Uint8Array([
+ 3,
+ 2,
+ 1,
+ 0,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 3,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2
+ ])
+ const kDistanceShortCodeValueOffset = new Int8Array([
+ 0,
+ 0,
+ 0,
+ 0,
+ -1,
+ 1,
+ -2,
+ 2,
+ -3,
+ 3,
+ -1,
+ 1,
+ -2,
+ 2,
+ -3,
+ 3
+ ])
+ const kMaxHuffmanTableSize = new Uint16Array([
+ 256,
+ 402,
+ 436,
+ 468,
+ 500,
+ 534,
+ 566,
+ 598,
+ 630,
+ 662,
+ 694,
+ 726,
+ 758,
+ 790,
+ 822,
+ 854,
+ 886,
+ 920,
+ 952,
+ 984,
+ 1016,
+ 1048,
+ 1080
+ ])
- function ReadBlockLength(table, index, br) {
- var code;
- var nbits;
- code = ReadSymbol(table, index, br);
- nbits = Prefix.kBlockLengthPrefixCode[code].nbits;
- return Prefix.kBlockLengthPrefixCode[code].offset + br.readBits(nbits)
- }
+ function DecodeWindowBits (br) {
+ let n
+ if (br.readBits(1) === 0) {
+ return 16
+ }
+ n = br.readBits(3)
+ if (n > 0) {
+ return 17 + n
+ }
+ n = br.readBits(3)
+ if (n > 0) {
+ return 8 + n
+ }
+ return 17
+ }
- function TranslateShortCodes(code, ringbuffer, index) {
- var val;
- if (code < NUM_DISTANCE_SHORT_CODES) {
- index += kDistanceShortCodeIndexOffset[code];
- index &= 3;
- val = ringbuffer[index] + kDistanceShortCodeValueOffset[code]
- } else {
- val = code - NUM_DISTANCE_SHORT_CODES + 1
- }
- return val
- }
-
- function MoveToFront(v, index) {
- var value = v[index];
- var i = index;
- for (; i; --i) v[i] = v[i - 1];
- v[0] = value
- }
-
- function InverseMoveToFrontTransform(v, v_len) {
- var mtf = new Uint8Array(256);
- var i;
- for (i = 0; i < 256; ++i) {
- mtf[i] = i
- }
- for (i = 0; i < v_len; ++i) {
- var index = v[i];
- v[i] = mtf[index];
- if (index) MoveToFront(mtf, index)
- }
- }
-
- function HuffmanTreeGroup(alphabet_size, num_htrees) {
- this.alphabet_size = alphabet_size;
- this.num_htrees = num_htrees;
- this.codes = new Array(num_htrees + num_htrees * kMaxHuffmanTableSize[alphabet_size + 31 >>> 5]);
- this.htrees = new Uint32Array(num_htrees)
- }
- HuffmanTreeGroup.prototype.decode = function (br) {
- var i;
- var table_size;
- var next = 0;
- for (i = 0; i < this.num_htrees; ++i) {
- this.htrees[i] = next;
- table_size = ReadHuffmanCode(this.alphabet_size, this.codes, next, br);
- next += table_size
- }
- };
-
- function DecodeContextMap(context_map_size, br) {
- var out = {
- num_htrees: null,
- context_map: null
- };
- var use_rle_for_zeros;
- var max_run_length_prefix = 0;
- var table;
- var i;
- br.readMoreInput();
- var num_htrees = out.num_htrees = DecodeVarLenUint8(br) + 1;
- var context_map = out.context_map = new Uint8Array(context_map_size);
- if (num_htrees <= 1) {
- return out
- }
- use_rle_for_zeros = br.readBits(1);
- if (use_rle_for_zeros) {
- max_run_length_prefix = br.readBits(4) + 1
- }
- table = [];
- for (i = 0; i < HUFFMAN_MAX_TABLE_SIZE; i++) {
- table[i] = new HuffmanCode(0, 0)
- }
- ReadHuffmanCode(num_htrees + max_run_length_prefix, table, 0, br);
- for (i = 0; i < context_map_size;) {
- var code;
- br.readMoreInput();
- code = ReadSymbol(table, 0, br);
- if (code === 0) {
- context_map[i] = 0;
- ++i
- } else if (code <= max_run_length_prefix) {
- var reps = 1 + (1 << code) + br.readBits(code);
- while (--reps) {
- if (i >= context_map_size) {
- throw new Error("[DecodeContextMap] i >= context_map_size")
+ function DecodeVarLenUint8 (br) {
+ if (br.readBits(1)) {
+ const nbits = br.readBits(3)
+ if (nbits === 0) {
+ return 1
+ } else {
+ return br.readBits(nbits) + (1 << nbits)
}
- context_map[i] = 0;
- ++i
}
- } else {
- context_map[i] = code - max_run_length_prefix;
- ++i
+ return 0
}
- }
- if (br.readBits(1)) {
- InverseMoveToFrontTransform(context_map, context_map_size)
- }
- return out
- }
- function DecodeBlockType(max_block_type, trees, tree_type, block_types, ringbuffers, indexes, br) {
- var ringbuffer = tree_type * 2;
- var index = tree_type;
- var type_code = ReadSymbol(trees, tree_type * HUFFMAN_MAX_TABLE_SIZE, br);
- var block_type;
- if (type_code === 0) {
- block_type = ringbuffers[ringbuffer + (indexes[index] & 1)]
- } else if (type_code === 1) {
- block_type = ringbuffers[ringbuffer + (indexes[index] - 1 & 1)] + 1
- } else {
- block_type = type_code - 2
- }
- if (block_type >= max_block_type) {
- block_type -= max_block_type
- }
- block_types[tree_type] = block_type;
- ringbuffers[ringbuffer + (indexes[index] & 1)] = block_type;
- ++indexes[index]
- }
+ function MetaBlockLength () {
+ this.meta_block_length = 0
+ this.input_end = 0
+ this.is_uncompressed = 0
+ this.is_metadata = false
+ }
- function CopyUncompressedBlockToOutput(output, len, pos, ringbuffer, ringbuffer_mask, br) {
- var rb_size = ringbuffer_mask + 1;
- var rb_pos = pos & ringbuffer_mask;
- var br_pos = br.pos_ & BrotliBitReader.IBUF_MASK;
- var nbytes;
- if (len < 8 || br.bit_pos_ + (len << 3) < br.bit_end_pos_) {
- while (len-- > 0) {
- br.readMoreInput();
- ringbuffer[rb_pos++] = br.readBits(8);
- if (rb_pos === rb_size) {
- output.write(ringbuffer, rb_size);
- rb_pos = 0
+ function DecodeMetaBlockLength (br) {
+ const out = new MetaBlockLength()
+ let size_nibbles
+ let size_bytes
+ let i
+ out.input_end = br.readBits(1)
+ if (out.input_end && br.readBits(1)) {
+ return out
}
- }
- return
- }
- if (br.bit_end_pos_ < 32) {
- throw new Error("[CopyUncompressedBlockToOutput] br.bit_end_pos_ < 32")
- }
- while (br.bit_pos_ < 32) {
- ringbuffer[rb_pos] = br.val_ >>> br.bit_pos_;
- br.bit_pos_ += 8;
- ++rb_pos;
- --len
- }
- nbytes = br.bit_end_pos_ - br.bit_pos_ >> 3;
- if (br_pos + nbytes > BrotliBitReader.IBUF_MASK) {
- var tail = BrotliBitReader.IBUF_MASK + 1 - br_pos;
- for (var x = 0; x < tail; x++) ringbuffer[rb_pos + x] = br.buf_[br_pos + x];
- nbytes -= tail;
- rb_pos += tail;
- len -= tail;
- br_pos = 0
- }
- for (var x = 0; x < nbytes; x++) ringbuffer[rb_pos + x] = br.buf_[br_pos + x];
- rb_pos += nbytes;
- len -= nbytes;
- if (rb_pos >= rb_size) {
- output.write(ringbuffer, rb_size);
- rb_pos -= rb_size;
- for (var x = 0; x < rb_pos; x++) ringbuffer[x] = ringbuffer[rb_size + x]
- }
- while (rb_pos + len >= rb_size) {
- nbytes = rb_size - rb_pos;
- if (br.input_.read(ringbuffer, rb_pos, nbytes) < nbytes) {
- throw new Error("[CopyUncompressedBlockToOutput] not enough bytes")
- }
- output.write(ringbuffer, rb_size);
- len -= nbytes;
- rb_pos = 0
- }
- if (br.input_.read(ringbuffer, rb_pos, len) < len) {
- throw new Error("[CopyUncompressedBlockToOutput] not enough bytes")
- }
- br.reset()
- }
-
- function JumpToByteBoundary(br) {
- var new_bit_pos = br.bit_pos_ + 7 & ~7;
- var pad_bits = br.readBits(new_bit_pos - br.bit_pos_);
- return pad_bits == 0
- }
-
- function BrotliDecompressedSize(buffer) {
- var input = new BrotliInput(buffer);
- var br = new BrotliBitReader(input);
- DecodeWindowBits(br);
- var out = DecodeMetaBlockLength(br);
- return out.meta_block_length
- }
- exports.BrotliDecompressedSize = BrotliDecompressedSize;
-
- function BrotliDecompressBuffer(buffer, output_size) {
- var input = new BrotliInput(buffer);
- if (output_size == null) {
- output_size = BrotliDecompressedSize(buffer)
- }
- var output_buffer = new Uint8Array(output_size);
- var output = new BrotliOutput(output_buffer);
- BrotliDecompress(input, output);
- if (output.pos < output.buffer.length) {
- output.buffer = output.buffer.subarray(0, output.pos)
- }
- return output.buffer
- }
- exports.BrotliDecompressBuffer = BrotliDecompressBuffer;
-
- function BrotliDecompress(input, output) {
- var i;
- var pos = 0;
- var input_end = 0;
- var window_bits = 0;
- var max_backward_distance;
- var max_distance = 0;
- var ringbuffer_size;
- var ringbuffer_mask;
- var ringbuffer;
- var ringbuffer_end;
- var dist_rb = [16, 15, 11, 4];
- var dist_rb_idx = 0;
- var prev_byte1 = 0;
- var prev_byte2 = 0;
- var hgroup = [new HuffmanTreeGroup(0, 0), new HuffmanTreeGroup(0, 0), new HuffmanTreeGroup(0, 0)];
- var block_type_trees;
- var block_len_trees;
- var br;
- var kRingBufferWriteAheadSlack = 128 + BrotliBitReader.READ_SIZE;
- br = new BrotliBitReader(input);
- window_bits = DecodeWindowBits(br);
- max_backward_distance = (1 << window_bits) - 16;
- ringbuffer_size = 1 << window_bits;
- ringbuffer_mask = ringbuffer_size - 1;
- ringbuffer = new Uint8Array(ringbuffer_size + kRingBufferWriteAheadSlack + BrotliDictionary.maxDictionaryWordLength);
- ringbuffer_end = ringbuffer_size;
- block_type_trees = [];
- block_len_trees = [];
- for (var x = 0; x < 3 * HUFFMAN_MAX_TABLE_SIZE; x++) {
- block_type_trees[x] = new HuffmanCode(0, 0);
- block_len_trees[x] = new HuffmanCode(0, 0)
- }
- while (!input_end) {
- var meta_block_remaining_len = 0;
- var is_uncompressed;
- var block_length = [1 << 28, 1 << 28, 1 << 28];
- var block_type = [0];
- var num_block_types = [1, 1, 1];
- var block_type_rb = [0, 1, 0, 1, 0, 1];
- var block_type_rb_index = [0];
- var distance_postfix_bits;
- var num_direct_distance_codes;
- var distance_postfix_mask;
- var num_distance_codes;
- var context_map = null;
- var context_modes = null;
- var num_literal_htrees;
- var dist_context_map = null;
- var num_dist_htrees;
- var context_offset = 0;
- var context_map_slice = null;
- var literal_htree_index = 0;
- var dist_context_offset = 0;
- var dist_context_map_slice = null;
- var dist_htree_index = 0;
- var context_lookup_offset1 = 0;
- var context_lookup_offset2 = 0;
- var context_mode;
- var htree_command;
- for (i = 0; i < 3; ++i) {
- hgroup[i].codes = null;
- hgroup[i].htrees = null
- }
- br.readMoreInput();
- var _out = DecodeMetaBlockLength(br);
- meta_block_remaining_len = _out.meta_block_length;
- if (pos + meta_block_remaining_len > output.buffer.length) {
- var tmp = new Uint8Array(pos + meta_block_remaining_len);
- tmp.set(output.buffer);
- output.buffer = tmp
- }
- input_end = _out.input_end;
- is_uncompressed = _out.is_uncompressed;
- if (_out.is_metadata) {
- JumpToByteBoundary(br);
- for (; meta_block_remaining_len > 0; --meta_block_remaining_len) {
- br.readMoreInput();
- br.readBits(8)
- }
- continue
- }
- if (meta_block_remaining_len === 0) {
- continue
- }
- if (is_uncompressed) {
- br.bit_pos_ = br.bit_pos_ + 7 & ~7;
- CopyUncompressedBlockToOutput(output, meta_block_remaining_len, pos, ringbuffer, ringbuffer_mask, br);
- pos += meta_block_remaining_len;
- continue
- }
- for (i = 0; i < 3; ++i) {
- num_block_types[i] = DecodeVarLenUint8(br) + 1;
- if (num_block_types[i] >= 2) {
- ReadHuffmanCode(num_block_types[i] + 2, block_type_trees, i * HUFFMAN_MAX_TABLE_SIZE, br);
- ReadHuffmanCode(kNumBlockLengthCodes, block_len_trees, i * HUFFMAN_MAX_TABLE_SIZE, br);
- block_length[i] = ReadBlockLength(block_len_trees, i * HUFFMAN_MAX_TABLE_SIZE, br);
- block_type_rb_index[i] = 1
- }
- }
- br.readMoreInput();
- distance_postfix_bits = br.readBits(2);
- num_direct_distance_codes = NUM_DISTANCE_SHORT_CODES + (br.readBits(4) << distance_postfix_bits);
- distance_postfix_mask = (1 << distance_postfix_bits) - 1;
- num_distance_codes = num_direct_distance_codes + (48 << distance_postfix_bits);
- context_modes = new Uint8Array(num_block_types[0]);
- for (i = 0; i < num_block_types[0]; ++i) {
- br.readMoreInput();
- context_modes[i] = br.readBits(2) << 1
- }
- var _o1 = DecodeContextMap(num_block_types[0] << kLiteralContextBits, br);
- num_literal_htrees = _o1.num_htrees;
- context_map = _o1.context_map;
- var _o2 = DecodeContextMap(num_block_types[2] << kDistanceContextBits, br);
- num_dist_htrees = _o2.num_htrees;
- dist_context_map = _o2.context_map;
- hgroup[0] = new HuffmanTreeGroup(kNumLiteralCodes, num_literal_htrees);
- hgroup[1] = new HuffmanTreeGroup(kNumInsertAndCopyCodes, num_block_types[1]);
- hgroup[2] = new HuffmanTreeGroup(num_distance_codes, num_dist_htrees);
- for (i = 0; i < 3; ++i) {
- hgroup[i].decode(br)
- }
- context_map_slice = 0;
- dist_context_map_slice = 0;
- context_mode = context_modes[block_type[0]];
- context_lookup_offset1 = Context.lookupOffsets[context_mode];
- context_lookup_offset2 = Context.lookupOffsets[context_mode + 1];
- htree_command = hgroup[1].htrees[0];
- while (meta_block_remaining_len > 0) {
- var cmd_code;
- var range_idx;
- var insert_code;
- var copy_code;
- var insert_length;
- var copy_length;
- var distance_code;
- var distance;
- var context;
- var j;
- var copy_dst;
- br.readMoreInput();
- if (block_length[1] === 0) {
- DecodeBlockType(num_block_types[1], block_type_trees, 1, block_type, block_type_rb, block_type_rb_index, br);
- block_length[1] = ReadBlockLength(block_len_trees, HUFFMAN_MAX_TABLE_SIZE, br);
- htree_command = hgroup[1].htrees[block_type[1]]
- }--block_length[1];
- cmd_code = ReadSymbol(hgroup[1].codes, htree_command, br);
- range_idx = cmd_code >> 6;
- if (range_idx >= 2) {
- range_idx -= 2;
- distance_code = -1
+ size_nibbles = br.readBits(2) + 4
+ if (size_nibbles === 7) {
+ out.is_metadata = true
+ if (br.readBits(1) !== 0) throw new Error('Invalid reserved bit')
+ size_bytes = br.readBits(2)
+ if (size_bytes === 0) return out
+ for (i = 0; i < size_bytes; i++) {
+ const next_byte = br.readBits(8)
+ if (i + 1 === size_bytes && size_bytes > 1 && next_byte === 0) {
+ throw new Error('Invalid size byte')
+ }
+ out.meta_block_length |= next_byte << (i * 8)
+ }
} else {
- distance_code = 0
- }
- insert_code = Prefix.kInsertRangeLut[range_idx] + (cmd_code >> 3 & 7);
- copy_code = Prefix.kCopyRangeLut[range_idx] + (cmd_code & 7);
- insert_length = Prefix.kInsertLengthPrefixCode[insert_code].offset + br.readBits(Prefix.kInsertLengthPrefixCode[insert_code].nbits);
- copy_length = Prefix.kCopyLengthPrefixCode[copy_code].offset + br.readBits(Prefix.kCopyLengthPrefixCode[copy_code].nbits);
- prev_byte1 = ringbuffer[pos - 1 & ringbuffer_mask];
- prev_byte2 = ringbuffer[pos - 2 & ringbuffer_mask];
- for (j = 0; j < insert_length; ++j) {
- br.readMoreInput();
- if (block_length[0] === 0) {
- DecodeBlockType(num_block_types[0], block_type_trees, 0, block_type, block_type_rb, block_type_rb_index, br);
- block_length[0] = ReadBlockLength(block_len_trees, 0, br);
- context_offset = block_type[0] << kLiteralContextBits;
- context_map_slice = context_offset;
- context_mode = context_modes[block_type[0]];
- context_lookup_offset1 = Context.lookupOffsets[context_mode];
- context_lookup_offset2 = Context.lookupOffsets[context_mode + 1]
- }
- context = Context.lookup[context_lookup_offset1 + prev_byte1] | Context.lookup[context_lookup_offset2 + prev_byte2];
- literal_htree_index = context_map[context_map_slice + context];
- --block_length[0];
- prev_byte2 = prev_byte1;
- prev_byte1 = ReadSymbol(hgroup[0].codes, hgroup[0].htrees[literal_htree_index], br);
- ringbuffer[pos & ringbuffer_mask] = prev_byte1;
- if ((pos & ringbuffer_mask) === ringbuffer_mask) {
- output.write(ringbuffer, ringbuffer_size)
- }++pos
- }
- meta_block_remaining_len -= insert_length;
- if (meta_block_remaining_len <= 0) break;
- if (distance_code < 0) {
- var context;
- br.readMoreInput();
- if (block_length[2] === 0) {
- DecodeBlockType(num_block_types[2], block_type_trees, 2, block_type, block_type_rb, block_type_rb_index, br);
- block_length[2] = ReadBlockLength(block_len_trees, 2 * HUFFMAN_MAX_TABLE_SIZE, br);
- dist_context_offset = block_type[2] << kDistanceContextBits;
- dist_context_map_slice = dist_context_offset
- }--block_length[2];
- context = (copy_length > 4 ? 3 : copy_length - 2) & 255;
- dist_htree_index = dist_context_map[dist_context_map_slice + context];
- distance_code = ReadSymbol(hgroup[2].codes, hgroup[2].htrees[dist_htree_index], br);
- if (distance_code >= num_direct_distance_codes) {
- var nbits;
- var postfix;
- var offset;
- distance_code -= num_direct_distance_codes;
- postfix = distance_code & distance_postfix_mask;
- distance_code >>= distance_postfix_bits;
- nbits = (distance_code >> 1) + 1;
- offset = (2 + (distance_code & 1) << nbits) - 4;
- distance_code = num_direct_distance_codes + (offset + br.readBits(nbits) << distance_postfix_bits) + postfix
+ for (i = 0; i < size_nibbles; ++i) {
+ const next_nibble = br.readBits(4)
+ if (
+ i + 1 === size_nibbles &&
+ size_nibbles > 4 &&
+ next_nibble === 0
+ ) {
+ throw new Error('Invalid size nibble')
+ }
+ out.meta_block_length |= next_nibble << (i * 4)
}
}
- distance = TranslateShortCodes(distance_code, dist_rb, dist_rb_idx);
- if (distance < 0) {
- throw new Error("[BrotliDecompress] invalid distance")
+ ++out.meta_block_length
+ if (!out.input_end && !out.is_metadata) {
+ out.is_uncompressed = br.readBits(1)
}
- if (pos < max_backward_distance && max_distance !== max_backward_distance) {
- max_distance = pos
- } else {
- max_distance = max_backward_distance
+ return out
+ }
+
+ function ReadSymbol (table, index, br) {
+ let nbits
+ br.fillBitWindow()
+ index += (br.val_ >>> br.bit_pos_) & HUFFMAN_TABLE_MASK
+ nbits = table[index].bits - HUFFMAN_TABLE_BITS
+ if (nbits > 0) {
+ br.bit_pos_ += HUFFMAN_TABLE_BITS
+ index += table[index].value
+ index += (br.val_ >>> br.bit_pos_) & ((1 << nbits) - 1)
}
- copy_dst = pos & ringbuffer_mask;
- if (distance > max_distance) {
- if (copy_length >= BrotliDictionary.minDictionaryWordLength && copy_length <= BrotliDictionary.maxDictionaryWordLength) {
- var offset = BrotliDictionary.offsetsByLength[copy_length];
- var word_id = distance - max_distance - 1;
- var shift = BrotliDictionary.sizeBitsByLength[copy_length];
- var mask = (1 << shift) - 1;
- var word_idx = word_id & mask;
- var transform_idx = word_id >> shift;
- offset += word_idx * copy_length;
- if (transform_idx < Transform.kNumTransforms) {
- var len = Transform.transformDictionaryWord(ringbuffer, copy_dst, offset, copy_length, transform_idx);
- copy_dst += len;
- pos += len;
- meta_block_remaining_len -= len;
- if (copy_dst >= ringbuffer_end) {
- output.write(ringbuffer, ringbuffer_size);
- for (var _x = 0; _x < copy_dst - ringbuffer_end; _x++) ringbuffer[_x] = ringbuffer[ringbuffer_end + _x]
- }
- } else {
- throw new Error("Invalid backward reference. pos: " + pos + " distance: " + distance + " len: " + copy_length + " bytes left: " + meta_block_remaining_len)
+ br.bit_pos_ += table[index].bits
+ return table[index].value
+ }
+
+ function ReadHuffmanCodeLengths (
+ code_length_code_lengths,
+ num_symbols,
+ code_lengths,
+ br
+ ) {
+ let symbol = 0
+ let prev_code_len = kDefaultCodeLength
+ let repeat = 0
+ let repeat_code_len = 0
+ let space = 32768
+ const table = []
+ for (let i = 0; i < 32; i++) table.push(new HuffmanCode(0, 0))
+ BrotliBuildHuffmanTable(
+ table,
+ 0,
+ 5,
+ code_length_code_lengths,
+ CODE_LENGTH_CODES
+ )
+ while (symbol < num_symbols && space > 0) {
+ let p = 0
+ var code_len
+ br.readMoreInput()
+ br.fillBitWindow()
+ p += (br.val_ >>> br.bit_pos_) & 31
+ br.bit_pos_ += table[p].bits
+ code_len = table[p].value & 255
+ if (code_len < kCodeLengthRepeatCode) {
+ repeat = 0
+ code_lengths[symbol++] = code_len
+ if (code_len !== 0) {
+ prev_code_len = code_len
+ space -= 32768 >> code_len
}
} else {
- throw new Error("Invalid backward reference. pos: " + pos + " distance: " + distance + " len: " + copy_length + " bytes left: " + meta_block_remaining_len)
+ const extra_bits = code_len - 14
+ var old_repeat
+ var repeat_delta
+ let new_len = 0
+ if (code_len === kCodeLengthRepeatCode) {
+ new_len = prev_code_len
+ }
+ if (repeat_code_len !== new_len) {
+ repeat = 0
+ repeat_code_len = new_len
+ }
+ old_repeat = repeat
+ if (repeat > 0) {
+ repeat -= 2
+ repeat <<= extra_bits
+ }
+ repeat += br.readBits(extra_bits) + 3
+ repeat_delta = repeat - old_repeat
+ if (symbol + repeat_delta > num_symbols) {
+ throw new Error(
+ '[ReadHuffmanCodeLengths] symbol + repeat_delta > num_symbols'
+ )
+ }
+ for (let x = 0; x < repeat_delta; x++) {
+ code_lengths[symbol + x] = repeat_code_len
+ }
+ symbol += repeat_delta
+ if (repeat_code_len !== 0) {
+ space -= repeat_delta << (15 - repeat_code_len)
+ }
+ }
+ }
+ if (space !== 0) {
+ throw new Error('[ReadHuffmanCodeLengths] space = ' + space)
+ }
+ for (; symbol < num_symbols; symbol++) code_lengths[symbol] = 0
+ }
+
+ function ReadHuffmanCode (alphabet_size, tables, table, br) {
+ let table_size = 0
+ let simple_code_or_skip
+ const code_lengths = new Uint8Array(alphabet_size)
+ br.readMoreInput()
+ simple_code_or_skip = br.readBits(2)
+ if (simple_code_or_skip === 1) {
+ var i
+ let max_bits_counter = alphabet_size - 1
+ let max_bits = 0
+ const symbols = new Int32Array(4)
+ const num_symbols = br.readBits(2) + 1
+ while (max_bits_counter) {
+ max_bits_counter >>= 1
+ ++max_bits
+ }
+ for (i = 0; i < num_symbols; ++i) {
+ symbols[i] = br.readBits(max_bits) % alphabet_size
+ code_lengths[symbols[i]] = 2
+ }
+ code_lengths[symbols[0]] = 1
+ switch (num_symbols) {
+ case 1:
+ break
+ case 3:
+ if (
+ symbols[0] === symbols[1] ||
+ symbols[0] === symbols[2] ||
+ symbols[1] === symbols[2]
+ ) {
+ throw new Error('[ReadHuffmanCode] invalid symbols')
+ }
+ break
+ case 2:
+ if (symbols[0] === symbols[1]) {
+ throw new Error('[ReadHuffmanCode] invalid symbols')
+ }
+ code_lengths[symbols[1]] = 1
+ break
+ case 4:
+ if (
+ symbols[0] === symbols[1] ||
+ symbols[0] === symbols[2] ||
+ symbols[0] === symbols[3] ||
+ symbols[1] === symbols[2] ||
+ symbols[1] === symbols[3] ||
+ symbols[2] === symbols[3]
+ ) {
+ throw new Error('[ReadHuffmanCode] invalid symbols')
+ }
+ if (br.readBits(1)) {
+ code_lengths[symbols[2]] = 3
+ code_lengths[symbols[3]] = 3
+ } else {
+ code_lengths[symbols[0]] = 2
+ }
+ break
}
} else {
- if (distance_code > 0) {
- dist_rb[dist_rb_idx & 3] = distance;
- ++dist_rb_idx
+ var i
+ const code_length_code_lengths = new Uint8Array(CODE_LENGTH_CODES)
+ let space = 32
+ let num_codes = 0
+ const huff = [
+ new HuffmanCode(2, 0),
+ new HuffmanCode(2, 4),
+ new HuffmanCode(2, 3),
+ new HuffmanCode(3, 2),
+ new HuffmanCode(2, 0),
+ new HuffmanCode(2, 4),
+ new HuffmanCode(2, 3),
+ new HuffmanCode(4, 1),
+ new HuffmanCode(2, 0),
+ new HuffmanCode(2, 4),
+ new HuffmanCode(2, 3),
+ new HuffmanCode(3, 2),
+ new HuffmanCode(2, 0),
+ new HuffmanCode(2, 4),
+ new HuffmanCode(2, 3),
+ new HuffmanCode(4, 5)
+ ]
+ for (
+ i = simple_code_or_skip;
+ i < CODE_LENGTH_CODES && space > 0;
+ ++i
+ ) {
+ const code_len_idx = kCodeLengthCodeOrder[i]
+ let p = 0
+ var v
+ br.fillBitWindow()
+ p += (br.val_ >>> br.bit_pos_) & 15
+ br.bit_pos_ += huff[p].bits
+ v = huff[p].value
+ code_length_code_lengths[code_len_idx] = v
+ if (v !== 0) {
+ space -= 32 >> v
+ ++num_codes
+ }
}
- if (copy_length > meta_block_remaining_len) {
- throw new Error("Invalid backward reference. pos: " + pos + " distance: " + distance + " len: " + copy_length + " bytes left: " + meta_block_remaining_len)
+ if (!(num_codes === 1 || space === 0)) {
+ throw new Error('[ReadHuffmanCode] invalid num_codes or space')
}
- for (j = 0; j < copy_length; ++j) {
- ringbuffer[pos & ringbuffer_mask] = ringbuffer[pos - distance & ringbuffer_mask];
- if ((pos & ringbuffer_mask) === ringbuffer_mask) {
- output.write(ringbuffer, ringbuffer_size)
- }++pos;
- --meta_block_remaining_len
+ ReadHuffmanCodeLengths(
+ code_length_code_lengths,
+ alphabet_size,
+ code_lengths,
+ br
+ )
+ }
+ table_size = BrotliBuildHuffmanTable(
+ tables,
+ table,
+ HUFFMAN_TABLE_BITS,
+ code_lengths,
+ alphabet_size
+ )
+ if (table_size === 0) {
+ throw new Error('[ReadHuffmanCode] BuildHuffmanTable failed: ')
+ }
+ return table_size
+ }
+
+ function ReadBlockLength (table, index, br) {
+ let code
+ let nbits
+ code = ReadSymbol(table, index, br)
+ nbits = Prefix.kBlockLengthPrefixCode[code].nbits
+ return (
+ Prefix.kBlockLengthPrefixCode[code].offset + br.readBits(nbits)
+ )
+ }
+
+ function TranslateShortCodes (code, ringbuffer, index) {
+ let val
+ if (code < NUM_DISTANCE_SHORT_CODES) {
+ index += kDistanceShortCodeIndexOffset[code]
+ index &= 3
+ val = ringbuffer[index] + kDistanceShortCodeValueOffset[code]
+ } else {
+ val = code - NUM_DISTANCE_SHORT_CODES + 1
+ }
+ return val
+ }
+
+ function MoveToFront (v, index) {
+ const value = v[index]
+ let i = index
+ for (; i; --i) v[i] = v[i - 1]
+ v[0] = value
+ }
+
+ function InverseMoveToFrontTransform (v, v_len) {
+ const mtf = new Uint8Array(256)
+ let i
+ for (i = 0; i < 256; ++i) {
+ mtf[i] = i
+ }
+ for (i = 0; i < v_len; ++i) {
+ const index = v[i]
+ v[i] = mtf[index]
+ if (index) MoveToFront(mtf, index)
+ }
+ }
+
+ function HuffmanTreeGroup (alphabet_size, num_htrees) {
+ this.alphabet_size = alphabet_size
+ this.num_htrees = num_htrees
+ this.codes = new Array(
+ num_htrees +
+ num_htrees * kMaxHuffmanTableSize[(alphabet_size + 31) >>> 5]
+ )
+ this.htrees = new Uint32Array(num_htrees)
+ }
+ HuffmanTreeGroup.prototype.decode = function (br) {
+ let i
+ let table_size
+ let next = 0
+ for (i = 0; i < this.num_htrees; ++i) {
+ this.htrees[i] = next
+ table_size = ReadHuffmanCode(
+ this.alphabet_size,
+ this.codes,
+ next,
+ br
+ )
+ next += table_size
+ }
+ }
+
+ function DecodeContextMap (context_map_size, br) {
+ const out = {
+ num_htrees: null,
+ context_map: null
+ }
+ let use_rle_for_zeros
+ let max_run_length_prefix = 0
+ let table
+ let i
+ br.readMoreInput()
+ const num_htrees = (out.num_htrees = DecodeVarLenUint8(br) + 1)
+ const context_map = (out.context_map = new Uint8Array(
+ context_map_size
+ ))
+ if (num_htrees <= 1) {
+ return out
+ }
+ use_rle_for_zeros = br.readBits(1)
+ if (use_rle_for_zeros) {
+ max_run_length_prefix = br.readBits(4) + 1
+ }
+ table = []
+ for (i = 0; i < HUFFMAN_MAX_TABLE_SIZE; i++) {
+ table[i] = new HuffmanCode(0, 0)
+ }
+ ReadHuffmanCode(num_htrees + max_run_length_prefix, table, 0, br)
+ for (i = 0; i < context_map_size; ) {
+ var code
+ br.readMoreInput()
+ code = ReadSymbol(table, 0, br)
+ if (code === 0) {
+ context_map[i] = 0
+ ++i
+ } else if (code <= max_run_length_prefix) {
+ let reps = 1 + (1 << code) + br.readBits(code)
+ while (--reps) {
+ if (i >= context_map_size) {
+ throw new Error('[DecodeContextMap] i >= context_map_size')
+ }
+ context_map[i] = 0
+ ++i
+ }
+ } else {
+ context_map[i] = code - max_run_length_prefix
+ ++i
}
}
- prev_byte1 = ringbuffer[pos - 1 & ringbuffer_mask];
- prev_byte2 = ringbuffer[pos - 2 & ringbuffer_mask]
- }
- pos &= 1073741823
- }
- output.write(ringbuffer, pos & ringbuffer_mask)
- }
- exports.BrotliDecompress = BrotliDecompress;
- BrotliDictionary.init()
- }, {
- "./bit_reader": 1,
- "./context": 2,
- "./dictionary": 6,
- "./huffman": 7,
- "./prefix": 8,
- "./streams": 9,
- "./transform": 10
- }],
- 4: [function (require, module, exports) {
- var base64 = require("base64-js");
- exports.init = function () {
- var BrotliDecompressBuffer = require("./decode").BrotliDecompressBuffer;
- var compressed = base64.toByteArray(require("./dictionary.bin.js"));
- return BrotliDecompressBuffer(compressed)
- }
- }, {
- "./decode": 3,
- "./dictionary.bin.js": 5,
- "base64-js": 12
- }],
- 5: [function (require, module, exports) {
- module.exports = "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"
- }, {}],
- 6: [function (require, module, exports) {
- var data = require("./dictionary-browser");
- exports.init = function () {
- exports.dictionary = data.init()
- };
- exports.offsetsByLength = new Uint32Array([0, 0, 0, 0, 0, 4096, 9216, 21504, 35840, 44032, 53248, 63488, 74752, 87040, 93696, 100864, 104704, 106752, 108928, 113536, 115968, 118528, 119872, 121280, 122016]);
- exports.sizeBitsByLength = new Uint8Array([0, 0, 0, 0, 10, 10, 11, 11, 10, 10, 10, 10, 10, 9, 9, 8, 7, 7, 8, 7, 7, 6, 6, 5, 5]);
- exports.minDictionaryWordLength = 4;
- exports.maxDictionaryWordLength = 24
- }, {
- "./dictionary-browser": 4
- }],
- 7: [function (require, module, exports) {
- function HuffmanCode(bits, value) {
- this.bits = bits;
- this.value = value
- }
- exports.HuffmanCode = HuffmanCode;
- var MAX_LENGTH = 15;
-
- function GetNextKey(key, len) {
- var step = 1 << len - 1;
- while (key & step) {
- step >>= 1
- }
- return (key & step - 1) + step
- }
-
- function ReplicateValue(table, i, step, end, code) {
- do {
- end -= step;
- table[i + end] = new HuffmanCode(code.bits, code.value)
- } while (end > 0)
- }
-
- function NextTableBitSize(count, len, root_bits) {
- var left = 1 << len - root_bits;
- while (len < MAX_LENGTH) {
- left -= count[len];
- if (left <= 0) break;
- ++len;
- left <<= 1
- }
- return len - root_bits
- }
- exports.BrotliBuildHuffmanTable = function (root_table, table, root_bits, code_lengths, code_lengths_size) {
- var start_table = table;
- var code;
- var len;
- var symbol;
- var key;
- var step;
- var low;
- var mask;
- var table_bits;
- var table_size;
- var total_size;
- var sorted;
- var count = new Int32Array(MAX_LENGTH + 1);
- var offset = new Int32Array(MAX_LENGTH + 1);
- sorted = new Int32Array(code_lengths_size);
- for (symbol = 0; symbol < code_lengths_size; symbol++) {
- count[code_lengths[symbol]]++
- }
- offset[1] = 0;
- for (len = 1; len < MAX_LENGTH; len++) {
- offset[len + 1] = offset[len] + count[len]
- }
- for (symbol = 0; symbol < code_lengths_size; symbol++) {
- if (code_lengths[symbol] !== 0) {
- sorted[offset[code_lengths[symbol]]++] = symbol
- }
- }
- table_bits = root_bits;
- table_size = 1 << table_bits;
- total_size = table_size;
- if (offset[MAX_LENGTH] === 1) {
- for (key = 0; key < total_size; ++key) {
- root_table[table + key] = new HuffmanCode(0, sorted[0] & 65535)
- }
- return total_size
- }
- key = 0;
- symbol = 0;
- for (len = 1, step = 2; len <= root_bits; ++len, step <<= 1) {
- for (; count[len] > 0; --count[len]) {
- code = new HuffmanCode(len & 255, sorted[symbol++] & 65535);
- ReplicateValue(root_table, table + key, step, table_size, code);
- key = GetNextKey(key, len)
- }
- }
- mask = total_size - 1;
- low = -1;
- for (len = root_bits + 1, step = 2; len <= MAX_LENGTH; ++len, step <<= 1) {
- for (; count[len] > 0; --count[len]) {
- if ((key & mask) !== low) {
- table += table_size;
- table_bits = NextTableBitSize(count, len, root_bits);
- table_size = 1 << table_bits;
- total_size += table_size;
- low = key & mask;
- root_table[start_table + low] = new HuffmanCode(table_bits + root_bits & 255, table - start_table - low & 65535)
+ if (br.readBits(1)) {
+ InverseMoveToFrontTransform(context_map, context_map_size)
}
- code = new HuffmanCode(len - root_bits & 255, sorted[symbol++] & 65535);
- ReplicateValue(root_table, table + (key >> root_bits), step, table_size, code);
- key = GetNextKey(key, len)
+ return out
}
- }
- return total_size
- }
- }, {}],
- 8: [function (require, module, exports) {
- function PrefixCodeRange(offset, nbits) {
- this.offset = offset;
- this.nbits = nbits
- }
- exports.kBlockLengthPrefixCode = [new PrefixCodeRange(1, 2), new PrefixCodeRange(5, 2), new PrefixCodeRange(9, 2), new PrefixCodeRange(13, 2), new PrefixCodeRange(17, 3), new PrefixCodeRange(25, 3), new PrefixCodeRange(33, 3), new PrefixCodeRange(41, 3), new PrefixCodeRange(49, 4), new PrefixCodeRange(65, 4), new PrefixCodeRange(81, 4), new PrefixCodeRange(97, 4), new PrefixCodeRange(113, 5), new PrefixCodeRange(145, 5), new PrefixCodeRange(177, 5), new PrefixCodeRange(209, 5), new PrefixCodeRange(241, 6), new PrefixCodeRange(305, 6), new PrefixCodeRange(369, 7), new PrefixCodeRange(497, 8), new PrefixCodeRange(753, 9), new PrefixCodeRange(1265, 10), new PrefixCodeRange(2289, 11), new PrefixCodeRange(4337, 12), new PrefixCodeRange(8433, 13), new PrefixCodeRange(16625, 24)];
- exports.kInsertLengthPrefixCode = [new PrefixCodeRange(0, 0), new PrefixCodeRange(1, 0), new PrefixCodeRange(2, 0), new PrefixCodeRange(3, 0), new PrefixCodeRange(4, 0), new PrefixCodeRange(5, 0), new PrefixCodeRange(6, 1), new PrefixCodeRange(8, 1), new PrefixCodeRange(10, 2), new PrefixCodeRange(14, 2), new PrefixCodeRange(18, 3), new PrefixCodeRange(26, 3), new PrefixCodeRange(34, 4), new PrefixCodeRange(50, 4), new PrefixCodeRange(66, 5), new PrefixCodeRange(98, 5), new PrefixCodeRange(130, 6), new PrefixCodeRange(194, 7), new PrefixCodeRange(322, 8), new PrefixCodeRange(578, 9), new PrefixCodeRange(1090, 10), new PrefixCodeRange(2114, 12), new PrefixCodeRange(6210, 14), new PrefixCodeRange(22594, 24)];
- exports.kCopyLengthPrefixCode = [new PrefixCodeRange(2, 0), new PrefixCodeRange(3, 0), new PrefixCodeRange(4, 0), new PrefixCodeRange(5, 0), new PrefixCodeRange(6, 0), new PrefixCodeRange(7, 0), new PrefixCodeRange(8, 0), new PrefixCodeRange(9, 0), new PrefixCodeRange(10, 1), new PrefixCodeRange(12, 1), new PrefixCodeRange(14, 2), new PrefixCodeRange(18, 2), new PrefixCodeRange(22, 3), new PrefixCodeRange(30, 3), new PrefixCodeRange(38, 4), new PrefixCodeRange(54, 4), new PrefixCodeRange(70, 5), new PrefixCodeRange(102, 5), new PrefixCodeRange(134, 6), new PrefixCodeRange(198, 7), new PrefixCodeRange(326, 8), new PrefixCodeRange(582, 9), new PrefixCodeRange(1094, 10), new PrefixCodeRange(2118, 24)];
- exports.kInsertRangeLut = [0, 0, 8, 8, 0, 16, 8, 16, 16];
- exports.kCopyRangeLut = [0, 8, 0, 8, 16, 0, 16, 8, 16]
- }, {}],
- 9: [function (require, module, exports) {
- function BrotliInput(buffer) {
- this.buffer = buffer;
- this.pos = 0
- }
- BrotliInput.prototype.read = function (buf, i, count) {
- if (this.pos + count > this.buffer.length) {
- count = this.buffer.length - this.pos
- }
- for (var p = 0; p < count; p++) buf[i + p] = this.buffer[this.pos + p];
- this.pos += count;
- return count
- };
- exports.BrotliInput = BrotliInput;
- function BrotliOutput(buf) {
- this.buffer = buf;
- this.pos = 0
- }
- BrotliOutput.prototype.write = function (buf, count) {
- if (this.pos + count > this.buffer.length) throw new Error("Output buffer is not large enough");
- this.buffer.set(buf.subarray(0, count), this.pos);
- this.pos += count;
- return count
- };
- exports.BrotliOutput = BrotliOutput
- }, {}],
- 10: [function (require, module, exports) {
- var BrotliDictionary = require("./dictionary");
- var kIdentity = 0;
- var kOmitLast1 = 1;
- var kOmitLast2 = 2;
- var kOmitLast3 = 3;
- var kOmitLast4 = 4;
- var kOmitLast5 = 5;
- var kOmitLast6 = 6;
- var kOmitLast7 = 7;
- var kOmitLast8 = 8;
- var kOmitLast9 = 9;
- var kUppercaseFirst = 10;
- var kUppercaseAll = 11;
- var kOmitFirst1 = 12;
- var kOmitFirst2 = 13;
- var kOmitFirst3 = 14;
- var kOmitFirst4 = 15;
- var kOmitFirst5 = 16;
- var kOmitFirst6 = 17;
- var kOmitFirst7 = 18;
- var kOmitFirst9 = 20;
-
- function Transform(prefix, transform, suffix) {
- this.prefix = new Uint8Array(prefix.length);
- this.transform = transform;
- this.suffix = new Uint8Array(suffix.length);
- for (var i = 0; i < prefix.length; i++) this.prefix[i] = prefix.charCodeAt(i);
- for (var i = 0; i < suffix.length; i++) this.suffix[i] = suffix.charCodeAt(i)
- }
- var kTransforms = [new Transform("", kIdentity, ""), new Transform("", kIdentity, " "), new Transform(" ", kIdentity, " "), new Transform("", kOmitFirst1, ""), new Transform("", kUppercaseFirst, " "), new Transform("", kIdentity, " the "), new Transform(" ", kIdentity, ""), new Transform("s ", kIdentity, " "), new Transform("", kIdentity, " of "), new Transform("", kUppercaseFirst, ""), new Transform("", kIdentity, " and "), new Transform("", kOmitFirst2, ""), new Transform("", kOmitLast1, ""), new Transform(", ", kIdentity, " "), new Transform("", kIdentity, ", "), new Transform(" ", kUppercaseFirst, " "), new Transform("", kIdentity, " in "), new Transform("", kIdentity, " to "), new Transform("e ", kIdentity, " "), new Transform("", kIdentity, '"'), new Transform("", kIdentity, "."), new Transform("", kIdentity, '">'), new Transform("", kIdentity, "\n"), new Transform("", kOmitLast3, ""), new Transform("", kIdentity, "]"), new Transform("", kIdentity, " for "), new Transform("", kOmitFirst3, ""), new Transform("", kOmitLast2, ""), new Transform("", kIdentity, " a "), new Transform("", kIdentity, " that "), new Transform(" ", kUppercaseFirst, ""), new Transform("", kIdentity, ". "), new Transform(".", kIdentity, ""), new Transform(" ", kIdentity, ", "), new Transform("", kOmitFirst4, ""), new Transform("", kIdentity, " with "), new Transform("", kIdentity, "'"), new Transform("", kIdentity, " from "), new Transform("", kIdentity, " by "), new Transform("", kOmitFirst5, ""), new Transform("", kOmitFirst6, ""), new Transform(" the ", kIdentity, ""), new Transform("", kOmitLast4, ""), new Transform("", kIdentity, ". The "), new Transform("", kUppercaseAll, ""), new Transform("", kIdentity, " on "), new Transform("", kIdentity, " as "), new Transform("", kIdentity, " is "), new Transform("", kOmitLast7, ""), new Transform("", kOmitLast1, "ing "), new Transform("", kIdentity, "\n\t"), new Transform("", kIdentity, ":"), new Transform(" ", kIdentity, ". "), new Transform("", kIdentity, "ed "), new Transform("", kOmitFirst9, ""), new Transform("", kOmitFirst7, ""), new Transform("", kOmitLast6, ""), new Transform("", kIdentity, "("), new Transform("", kUppercaseFirst, ", "), new Transform("", kOmitLast8, ""), new Transform("", kIdentity, " at "), new Transform("", kIdentity, "ly "), new Transform(" the ", kIdentity, " of "), new Transform("", kOmitLast5, ""), new Transform("", kOmitLast9, ""), new Transform(" ", kUppercaseFirst, ", "), new Transform("", kUppercaseFirst, '"'), new Transform(".", kIdentity, "("), new Transform("", kUppercaseAll, " "), new Transform("", kUppercaseFirst, '">'), new Transform("", kIdentity, '="'), new Transform(" ", kIdentity, "."), new Transform(".com/", kIdentity, ""), new Transform(" the ", kIdentity, " of the "), new Transform("", kUppercaseFirst, "'"), new Transform("", kIdentity, ". This "), new Transform("", kIdentity, ","), new Transform(".", kIdentity, " "), new Transform("", kUppercaseFirst, "("), new Transform("", kUppercaseFirst, "."), new Transform("", kIdentity, " not "), new Transform(" ", kIdentity, '="'), new Transform("", kIdentity, "er "), new Transform(" ", kUppercaseAll, " "), new Transform("", kIdentity, "al "), new Transform(" ", kUppercaseAll, ""), new Transform("", kIdentity, "='"), new Transform("", kUppercaseAll, '"'), new Transform("", kUppercaseFirst, ". "), new Transform(" ", kIdentity, "("), new Transform("", kIdentity, "ful "), new Transform(" ", kUppercaseFirst, ". "), new Transform("", kIdentity, "ive "), new Transform("", kIdentity, "less "), new Transform("", kUppercaseAll, "'"), new Transform("", kIdentity, "est "), new Transform(" ", kUppercaseFirst, "."), new Transform("", kUppercaseAll, '">'), new Transform(" ", kIdentity, "='"), new Transform("", kUppercaseFirst, ","), new Transform("", kIdentity, "ize "), new Transform("", kUppercaseAll, "."), new Transform("Â ", kIdentity, ""), new Transform(" ", kIdentity, ","), new Transform("", kUppercaseFirst, '="'), new Transform("", kUppercaseAll, '="'), new Transform("", kIdentity, "ous "), new Transform("", kUppercaseAll, ", "), new Transform("", kUppercaseFirst, "='"), new Transform(" ", kUppercaseFirst, ","), new Transform(" ", kUppercaseAll, '="'), new Transform(" ", kUppercaseAll, ", "), new Transform("", kUppercaseAll, ","), new Transform("", kUppercaseAll, "("), new Transform("", kUppercaseAll, ". "), new Transform(" ", kUppercaseAll, "."), new Transform("", kUppercaseAll, "='"), new Transform(" ", kUppercaseAll, ". "), new Transform(" ", kUppercaseFirst, '="'), new Transform(" ", kUppercaseAll, "='"), new Transform(" ", kUppercaseFirst, "='")];
- exports.kTransforms = kTransforms;
- exports.kNumTransforms = kTransforms.length;
-
- function ToUpperCase(p, i) {
- if (p[i] < 192) {
- if (p[i] >= 97 && p[i] <= 122) {
- p[i] ^= 32
+ function DecodeBlockType (
+ max_block_type,
+ trees,
+ tree_type,
+ block_types,
+ ringbuffers,
+ indexes,
+ br
+ ) {
+ const ringbuffer = tree_type * 2
+ const index = tree_type
+ const type_code = ReadSymbol(
+ trees,
+ tree_type * HUFFMAN_MAX_TABLE_SIZE,
+ br
+ )
+ let block_type
+ if (type_code === 0) {
+ block_type = ringbuffers[ringbuffer + (indexes[index] & 1)]
+ } else if (type_code === 1) {
+ block_type =
+ ringbuffers[ringbuffer + ((indexes[index] - 1) & 1)] + 1
+ } else {
+ block_type = type_code - 2
+ }
+ if (block_type >= max_block_type) {
+ block_type -= max_block_type
+ }
+ block_types[tree_type] = block_type
+ ringbuffers[ringbuffer + (indexes[index] & 1)] = block_type
+ ++indexes[index]
}
- return 1
- }
- if (p[i] < 224) {
- p[i + 1] ^= 32;
- return 2
- }
- p[i + 2] ^= 5;
- return 3
- }
- exports.transformDictionaryWord = function (dst, idx, word, len, transform) {
- var prefix = kTransforms[transform].prefix;
- var suffix = kTransforms[transform].suffix;
- var t = kTransforms[transform].transform;
- var skip = t < kOmitFirst1 ? 0 : t - (kOmitFirst1 - 1);
- var i = 0;
- var start_idx = idx;
- var uppercase;
- if (skip > len) {
- skip = len
- }
- var prefix_pos = 0;
- while (prefix_pos < prefix.length) {
- dst[idx++] = prefix[prefix_pos++]
- }
- word += skip;
- len -= skip;
- if (t <= kOmitLast9) {
- len -= t
- }
- for (i = 0; i < len; i++) {
- dst[idx++] = BrotliDictionary.dictionary[word + i]
- }
- uppercase = idx - len;
- if (t === kUppercaseFirst) {
- ToUpperCase(dst, uppercase)
- } else if (t === kUppercaseAll) {
- while (len > 0) {
- var step = ToUpperCase(dst, uppercase);
- uppercase += step;
- len -= step
+
+ function CopyUncompressedBlockToOutput (
+ output,
+ len,
+ pos,
+ ringbuffer,
+ ringbuffer_mask,
+ br
+ ) {
+ const rb_size = ringbuffer_mask + 1
+ let rb_pos = pos & ringbuffer_mask
+ let br_pos = br.pos_ & BrotliBitReader.IBUF_MASK
+ let nbytes
+ if (len < 8 || br.bit_pos_ + (len << 3) < br.bit_end_pos_) {
+ while (len-- > 0) {
+ br.readMoreInput()
+ ringbuffer[rb_pos++] = br.readBits(8)
+ if (rb_pos === rb_size) {
+ output.write(ringbuffer, rb_size)
+ rb_pos = 0
+ }
+ }
+ return
+ }
+ if (br.bit_end_pos_ < 32) {
+ throw new Error(
+ '[CopyUncompressedBlockToOutput] br.bit_end_pos_ < 32'
+ )
+ }
+ while (br.bit_pos_ < 32) {
+ ringbuffer[rb_pos] = br.val_ >>> br.bit_pos_
+ br.bit_pos_ += 8
+ ++rb_pos
+ --len
+ }
+ nbytes = (br.bit_end_pos_ - br.bit_pos_) >> 3
+ if (br_pos + nbytes > BrotliBitReader.IBUF_MASK) {
+ const tail = BrotliBitReader.IBUF_MASK + 1 - br_pos
+ for (var x = 0; x < tail; x++) {
+ ringbuffer[rb_pos + x] = br.buf_[br_pos + x]
+ }
+ nbytes -= tail
+ rb_pos += tail
+ len -= tail
+ br_pos = 0
+ }
+ for (var x = 0; x < nbytes; x++) {
+ ringbuffer[rb_pos + x] = br.buf_[br_pos + x]
+ }
+ rb_pos += nbytes
+ len -= nbytes
+ if (rb_pos >= rb_size) {
+ output.write(ringbuffer, rb_size)
+ rb_pos -= rb_size
+ for (var x = 0; x < rb_pos; x++) {
+ ringbuffer[x] = ringbuffer[rb_size + x]
+ }
+ }
+ while (rb_pos + len >= rb_size) {
+ nbytes = rb_size - rb_pos
+ if (br.input_.read(ringbuffer, rb_pos, nbytes) < nbytes) {
+ throw new Error(
+ '[CopyUncompressedBlockToOutput] not enough bytes'
+ )
+ }
+ output.write(ringbuffer, rb_size)
+ len -= nbytes
+ rb_pos = 0
+ }
+ if (br.input_.read(ringbuffer, rb_pos, len) < len) {
+ throw new Error(
+ '[CopyUncompressedBlockToOutput] not enough bytes'
+ )
+ }
+ br.reset()
}
- }
- var suffix_pos = 0;
- while (suffix_pos < suffix.length) {
- dst[idx++] = suffix[suffix_pos++]
- }
- return idx - start_idx
- }
- }, {
- "./dictionary": 6
- }],
- 11: [function (require, module, exports) {
- Module["BrotliDecode"] = require("./dec/decode").BrotliDecompressBuffer
- }, {
- "./dec/decode": 3
- }],
- 12: [function (require, module, exports) {
- null;
- exports.byteLength = byteLength;
- exports.toByteArray = toByteArray;
- exports.fromByteArray = fromByteArray;
- var lookup = [];
- var revLookup = [];
- var Arr = typeof Uint8Array !== "undefined" ? Uint8Array : Array;
- var code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
- for (var i = 0, len = code.length; i < len; ++i) {
- lookup[i] = code[i];
- revLookup[code.charCodeAt(i)] = i
- }
- revLookup["-".charCodeAt(0)] = 62;
- revLookup["_".charCodeAt(0)] = 63;
- function getLens(b64) {
- var len = b64.length;
- if (len % 4 > 0) {
- throw new Error("Invalid string. Length must be a multiple of 4")
- }
- var validLen = b64.indexOf("=");
- if (validLen === -1) validLen = len;
- var placeHoldersLen = validLen === len ? 0 : 4 - validLen % 4;
- return [validLen, placeHoldersLen]
- }
+ function JumpToByteBoundary (br) {
+ const new_bit_pos = (br.bit_pos_ + 7) & ~7
+ const pad_bits = br.readBits(new_bit_pos - br.bit_pos_)
+ return pad_bits == 0
+ }
- function byteLength(b64) {
- var lens = getLens(b64);
- var validLen = lens[0];
- var placeHoldersLen = lens[1];
- return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen
- }
+ function BrotliDecompressedSize (buffer) {
+ const input = new BrotliInput(buffer)
+ const br = new BrotliBitReader(input)
+ DecodeWindowBits(br)
+ const out = DecodeMetaBlockLength(br)
+ return out.meta_block_length
+ }
+ exports.BrotliDecompressedSize = BrotliDecompressedSize
- function _byteLength(b64, validLen, placeHoldersLen) {
- return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen
- }
+ function BrotliDecompressBuffer (buffer, output_size) {
+ const input = new BrotliInput(buffer)
+ if (output_size == null) {
+ output_size = BrotliDecompressedSize(buffer)
+ }
+ const output_buffer = new Uint8Array(output_size)
+ const output = new BrotliOutput(output_buffer)
+ BrotliDecompress(input, output)
+ if (output.pos < output.buffer.length) {
+ output.buffer = output.buffer.subarray(0, output.pos)
+ }
+ return output.buffer
+ }
+ exports.BrotliDecompressBuffer = BrotliDecompressBuffer
- function toByteArray(b64) {
- var tmp;
- var lens = getLens(b64);
- var validLen = lens[0];
- var placeHoldersLen = lens[1];
- var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));
- var curByte = 0;
- var len = placeHoldersLen > 0 ? validLen - 4 : validLen;
- var i;
- for (i = 0; i < len; i += 4) {
- tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)];
- arr[curByte++] = tmp >> 16 & 255;
- arr[curByte++] = tmp >> 8 & 255;
- arr[curByte++] = tmp & 255
+ function BrotliDecompress (input, output) {
+ let i
+ let pos = 0
+ let input_end = 0
+ let window_bits = 0
+ let max_backward_distance
+ let max_distance = 0
+ let ringbuffer_size
+ let ringbuffer_mask
+ let ringbuffer
+ let ringbuffer_end
+ const dist_rb = [16, 15, 11, 4]
+ let dist_rb_idx = 0
+ let prev_byte1 = 0
+ let prev_byte2 = 0
+ const hgroup = [
+ new HuffmanTreeGroup(0, 0),
+ new HuffmanTreeGroup(0, 0),
+ new HuffmanTreeGroup(0, 0)
+ ]
+ let block_type_trees
+ let block_len_trees
+ let br
+ const kRingBufferWriteAheadSlack = 128 + BrotliBitReader.READ_SIZE
+ br = new BrotliBitReader(input)
+ window_bits = DecodeWindowBits(br)
+ max_backward_distance = (1 << window_bits) - 16
+ ringbuffer_size = 1 << window_bits
+ ringbuffer_mask = ringbuffer_size - 1
+ ringbuffer = new Uint8Array(
+ ringbuffer_size +
+ kRingBufferWriteAheadSlack +
+ BrotliDictionary.maxDictionaryWordLength
+ )
+ ringbuffer_end = ringbuffer_size
+ block_type_trees = []
+ block_len_trees = []
+ for (let x = 0; x < 3 * HUFFMAN_MAX_TABLE_SIZE; x++) {
+ block_type_trees[x] = new HuffmanCode(0, 0)
+ block_len_trees[x] = new HuffmanCode(0, 0)
+ }
+ while (!input_end) {
+ let meta_block_remaining_len = 0
+ var is_uncompressed
+ const block_length = [1 << 28, 1 << 28, 1 << 28]
+ const block_type = [0]
+ const num_block_types = [1, 1, 1]
+ const block_type_rb = [0, 1, 0, 1, 0, 1]
+ const block_type_rb_index = [0]
+ var distance_postfix_bits
+ var num_direct_distance_codes
+ var distance_postfix_mask
+ var num_distance_codes
+ let context_map = null
+ let context_modes = null
+ var num_literal_htrees
+ let dist_context_map = null
+ var num_dist_htrees
+ let context_offset = 0
+ let context_map_slice = null
+ let literal_htree_index = 0
+ let dist_context_offset = 0
+ let dist_context_map_slice = null
+ let dist_htree_index = 0
+ let context_lookup_offset1 = 0
+ let context_lookup_offset2 = 0
+ var context_mode
+ var htree_command
+ for (i = 0; i < 3; ++i) {
+ hgroup[i].codes = null
+ hgroup[i].htrees = null
+ }
+ br.readMoreInput()
+ const _out = DecodeMetaBlockLength(br)
+ meta_block_remaining_len = _out.meta_block_length
+ if (pos + meta_block_remaining_len > output.buffer.length) {
+ const tmp = new Uint8Array(pos + meta_block_remaining_len)
+ tmp.set(output.buffer)
+ output.buffer = tmp
+ }
+ input_end = _out.input_end
+ is_uncompressed = _out.is_uncompressed
+ if (_out.is_metadata) {
+ JumpToByteBoundary(br)
+ for (
+ ;
+ meta_block_remaining_len > 0;
+ --meta_block_remaining_len
+ ) {
+ br.readMoreInput()
+ br.readBits(8)
+ }
+ continue
+ }
+ if (meta_block_remaining_len === 0) {
+ continue
+ }
+ if (is_uncompressed) {
+ br.bit_pos_ = (br.bit_pos_ + 7) & ~7
+ CopyUncompressedBlockToOutput(
+ output,
+ meta_block_remaining_len,
+ pos,
+ ringbuffer,
+ ringbuffer_mask,
+ br
+ )
+ pos += meta_block_remaining_len
+ continue
+ }
+ for (i = 0; i < 3; ++i) {
+ num_block_types[i] = DecodeVarLenUint8(br) + 1
+ if (num_block_types[i] >= 2) {
+ ReadHuffmanCode(
+ num_block_types[i] + 2,
+ block_type_trees,
+ i * HUFFMAN_MAX_TABLE_SIZE,
+ br
+ )
+ ReadHuffmanCode(
+ kNumBlockLengthCodes,
+ block_len_trees,
+ i * HUFFMAN_MAX_TABLE_SIZE,
+ br
+ )
+ block_length[i] = ReadBlockLength(
+ block_len_trees,
+ i * HUFFMAN_MAX_TABLE_SIZE,
+ br
+ )
+ block_type_rb_index[i] = 1
+ }
+ }
+ br.readMoreInput()
+ distance_postfix_bits = br.readBits(2)
+ num_direct_distance_codes =
+ NUM_DISTANCE_SHORT_CODES +
+ (br.readBits(4) << distance_postfix_bits)
+ distance_postfix_mask = (1 << distance_postfix_bits) - 1
+ num_distance_codes =
+ num_direct_distance_codes + (48 << distance_postfix_bits)
+ context_modes = new Uint8Array(num_block_types[0])
+ for (i = 0; i < num_block_types[0]; ++i) {
+ br.readMoreInput()
+ context_modes[i] = br.readBits(2) << 1
+ }
+ const _o1 = DecodeContextMap(
+ num_block_types[0] << kLiteralContextBits,
+ br
+ )
+ num_literal_htrees = _o1.num_htrees
+ context_map = _o1.context_map
+ const _o2 = DecodeContextMap(
+ num_block_types[2] << kDistanceContextBits,
+ br
+ )
+ num_dist_htrees = _o2.num_htrees
+ dist_context_map = _o2.context_map
+ hgroup[0] = new HuffmanTreeGroup(
+ kNumLiteralCodes,
+ num_literal_htrees
+ )
+ hgroup[1] = new HuffmanTreeGroup(
+ kNumInsertAndCopyCodes,
+ num_block_types[1]
+ )
+ hgroup[2] = new HuffmanTreeGroup(
+ num_distance_codes,
+ num_dist_htrees
+ )
+ for (i = 0; i < 3; ++i) {
+ hgroup[i].decode(br)
+ }
+ context_map_slice = 0
+ dist_context_map_slice = 0
+ context_mode = context_modes[block_type[0]]
+ context_lookup_offset1 = Context.lookupOffsets[context_mode]
+ context_lookup_offset2 = Context.lookupOffsets[context_mode + 1]
+ htree_command = hgroup[1].htrees[0]
+ while (meta_block_remaining_len > 0) {
+ var cmd_code
+ var range_idx
+ var insert_code
+ var copy_code
+ var insert_length
+ var copy_length
+ var distance_code
+ var distance
+ var context
+ var j
+ var copy_dst
+ br.readMoreInput()
+ if (block_length[1] === 0) {
+ DecodeBlockType(
+ num_block_types[1],
+ block_type_trees,
+ 1,
+ block_type,
+ block_type_rb,
+ block_type_rb_index,
+ br
+ )
+ block_length[1] = ReadBlockLength(
+ block_len_trees,
+ HUFFMAN_MAX_TABLE_SIZE,
+ br
+ )
+ htree_command = hgroup[1].htrees[block_type[1]]
+ }
+ --block_length[1]
+ cmd_code = ReadSymbol(hgroup[1].codes, htree_command, br)
+ range_idx = cmd_code >> 6
+ if (range_idx >= 2) {
+ range_idx -= 2
+ distance_code = -1
+ } else {
+ distance_code = 0
+ }
+ insert_code =
+ Prefix.kInsertRangeLut[range_idx] + ((cmd_code >> 3) & 7)
+ copy_code = Prefix.kCopyRangeLut[range_idx] + (cmd_code & 7)
+ insert_length =
+ Prefix.kInsertLengthPrefixCode[insert_code].offset +
+ br.readBits(Prefix.kInsertLengthPrefixCode[insert_code].nbits)
+ copy_length =
+ Prefix.kCopyLengthPrefixCode[copy_code].offset +
+ br.readBits(Prefix.kCopyLengthPrefixCode[copy_code].nbits)
+ prev_byte1 = ringbuffer[(pos - 1) & ringbuffer_mask]
+ prev_byte2 = ringbuffer[(pos - 2) & ringbuffer_mask]
+ for (j = 0; j < insert_length; ++j) {
+ br.readMoreInput()
+ if (block_length[0] === 0) {
+ DecodeBlockType(
+ num_block_types[0],
+ block_type_trees,
+ 0,
+ block_type,
+ block_type_rb,
+ block_type_rb_index,
+ br
+ )
+ block_length[0] = ReadBlockLength(block_len_trees, 0, br)
+ context_offset = block_type[0] << kLiteralContextBits
+ context_map_slice = context_offset
+ context_mode = context_modes[block_type[0]]
+ context_lookup_offset1 = Context.lookupOffsets[context_mode]
+ context_lookup_offset2 =
+ Context.lookupOffsets[context_mode + 1]
+ }
+ context =
+ Context.lookup[context_lookup_offset1 + prev_byte1] |
+ Context.lookup[context_lookup_offset2 + prev_byte2]
+ literal_htree_index = context_map[context_map_slice + context]
+ --block_length[0]
+ prev_byte2 = prev_byte1
+ prev_byte1 = ReadSymbol(
+ hgroup[0].codes,
+ hgroup[0].htrees[literal_htree_index],
+ br
+ )
+ ringbuffer[pos & ringbuffer_mask] = prev_byte1
+ if ((pos & ringbuffer_mask) === ringbuffer_mask) {
+ output.write(ringbuffer, ringbuffer_size)
+ }
+ ++pos
+ }
+ meta_block_remaining_len -= insert_length
+ if (meta_block_remaining_len <= 0) break
+ if (distance_code < 0) {
+ var context
+ br.readMoreInput()
+ if (block_length[2] === 0) {
+ DecodeBlockType(
+ num_block_types[2],
+ block_type_trees,
+ 2,
+ block_type,
+ block_type_rb,
+ block_type_rb_index,
+ br
+ )
+ block_length[2] = ReadBlockLength(
+ block_len_trees,
+ 2 * HUFFMAN_MAX_TABLE_SIZE,
+ br
+ )
+ dist_context_offset = block_type[2] << kDistanceContextBits
+ dist_context_map_slice = dist_context_offset
+ }
+ --block_length[2]
+ context = (copy_length > 4 ? 3 : copy_length - 2) & 255
+ dist_htree_index =
+ dist_context_map[dist_context_map_slice + context]
+ distance_code = ReadSymbol(
+ hgroup[2].codes,
+ hgroup[2].htrees[dist_htree_index],
+ br
+ )
+ if (distance_code >= num_direct_distance_codes) {
+ var nbits
+ var postfix
+ var offset
+ distance_code -= num_direct_distance_codes
+ postfix = distance_code & distance_postfix_mask
+ distance_code >>= distance_postfix_bits
+ nbits = (distance_code >> 1) + 1
+ offset = ((2 + (distance_code & 1)) << nbits) - 4
+ distance_code =
+ num_direct_distance_codes +
+ ((offset + br.readBits(nbits)) << distance_postfix_bits) +
+ postfix
+ }
+ }
+ distance = TranslateShortCodes(
+ distance_code,
+ dist_rb,
+ dist_rb_idx
+ )
+ if (distance < 0) {
+ throw new Error('[BrotliDecompress] invalid distance')
+ }
+ if (
+ pos < max_backward_distance &&
+ max_distance !== max_backward_distance
+ ) {
+ max_distance = pos
+ } else {
+ max_distance = max_backward_distance
+ }
+ copy_dst = pos & ringbuffer_mask
+ if (distance > max_distance) {
+ if (
+ copy_length >= BrotliDictionary.minDictionaryWordLength &&
+ copy_length <= BrotliDictionary.maxDictionaryWordLength
+ ) {
+ var offset = BrotliDictionary.offsetsByLength[copy_length]
+ const word_id = distance - max_distance - 1
+ const shift = BrotliDictionary.sizeBitsByLength[copy_length]
+ const mask = (1 << shift) - 1
+ const word_idx = word_id & mask
+ const transform_idx = word_id >> shift
+ offset += word_idx * copy_length
+ if (transform_idx < Transform.kNumTransforms) {
+ const len = Transform.transformDictionaryWord(
+ ringbuffer,
+ copy_dst,
+ offset,
+ copy_length,
+ transform_idx
+ )
+ copy_dst += len
+ pos += len
+ meta_block_remaining_len -= len
+ if (copy_dst >= ringbuffer_end) {
+ output.write(ringbuffer, ringbuffer_size)
+ for (let _x = 0; _x < copy_dst - ringbuffer_end; _x++) {
+ ringbuffer[_x] = ringbuffer[ringbuffer_end + _x]
+ }
+ }
+ } else {
+ throw new Error(
+ 'Invalid backward reference. pos: ' +
+ pos +
+ ' distance: ' +
+ distance +
+ ' len: ' +
+ copy_length +
+ ' bytes left: ' +
+ meta_block_remaining_len
+ )
+ }
+ } else {
+ throw new Error(
+ 'Invalid backward reference. pos: ' +
+ pos +
+ ' distance: ' +
+ distance +
+ ' len: ' +
+ copy_length +
+ ' bytes left: ' +
+ meta_block_remaining_len
+ )
+ }
+ } else {
+ if (distance_code > 0) {
+ dist_rb[dist_rb_idx & 3] = distance
+ ++dist_rb_idx
+ }
+ if (copy_length > meta_block_remaining_len) {
+ throw new Error(
+ 'Invalid backward reference. pos: ' +
+ pos +
+ ' distance: ' +
+ distance +
+ ' len: ' +
+ copy_length +
+ ' bytes left: ' +
+ meta_block_remaining_len
+ )
+ }
+ for (j = 0; j < copy_length; ++j) {
+ ringbuffer[pos & ringbuffer_mask] =
+ ringbuffer[(pos - distance) & ringbuffer_mask]
+ if ((pos & ringbuffer_mask) === ringbuffer_mask) {
+ output.write(ringbuffer, ringbuffer_size)
+ }
+ ++pos
+ --meta_block_remaining_len
+ }
+ }
+ prev_byte1 = ringbuffer[(pos - 1) & ringbuffer_mask]
+ prev_byte2 = ringbuffer[(pos - 2) & ringbuffer_mask]
+ }
+ pos &= 1073741823
+ }
+ output.write(ringbuffer, pos & ringbuffer_mask)
+ }
+ exports.BrotliDecompress = BrotliDecompress
+ BrotliDictionary.init()
+ },
+ {
+ './bit_reader': 1,
+ './context': 2,
+ './dictionary': 6,
+ './huffman': 7,
+ './prefix': 8,
+ './streams': 9,
+ './transform': 10
}
- if (placeHoldersLen === 2) {
- tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4;
- arr[curByte++] = tmp & 255
+ ],
+ 4: [
+ function (require, module, exports) {
+ const base64 = require('base64-js')
+ exports.init = function () {
+ const BrotliDecompressBuffer = require('./decode')
+ .BrotliDecompressBuffer
+ const compressed = base64.toByteArray(
+ require('./dictionary.bin.js')
+ )
+ return BrotliDecompressBuffer(compressed)
+ }
+ },
+ {
+ './decode': 3,
+ './dictionary.bin.js': 5,
+ 'base64-js': 12
}
- if (placeHoldersLen === 1) {
- tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2;
- arr[curByte++] = tmp >> 8 & 255;
- arr[curByte++] = tmp & 255
+ ],
+ 5: [
+ function (require, module, exports) {
+ module.exports =
+ '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'
+ },
+ {}
+ ],
+ 6: [
+ function (require, module, exports) {
+ const data = require('./dictionary-browser')
+ exports.init = function () {
+ exports.dictionary = data.init()
+ }
+ exports.offsetsByLength = new Uint32Array([
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 4096,
+ 9216,
+ 21504,
+ 35840,
+ 44032,
+ 53248,
+ 63488,
+ 74752,
+ 87040,
+ 93696,
+ 100864,
+ 104704,
+ 106752,
+ 108928,
+ 113536,
+ 115968,
+ 118528,
+ 119872,
+ 121280,
+ 122016
+ ])
+ exports.sizeBitsByLength = new Uint8Array([
+ 0,
+ 0,
+ 0,
+ 0,
+ 10,
+ 10,
+ 11,
+ 11,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 9,
+ 9,
+ 8,
+ 7,
+ 7,
+ 8,
+ 7,
+ 7,
+ 6,
+ 6,
+ 5,
+ 5
+ ])
+ exports.minDictionaryWordLength = 4
+ exports.maxDictionaryWordLength = 24
+ },
+ {
+ './dictionary-browser': 4
}
- return arr
- }
+ ],
+ 7: [
+ function (require, module, exports) {
+ function HuffmanCode (bits, value) {
+ this.bits = bits
+ this.value = value
+ }
+ exports.HuffmanCode = HuffmanCode
+ const MAX_LENGTH = 15
- function tripletToBase64(num) {
- return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63]
- }
+ function GetNextKey (key, len) {
+ let step = 1 << (len - 1)
+ while (key & step) {
+ step >>= 1
+ }
+ return (key & (step - 1)) + step
+ }
- function encodeChunk(uint8, start, end) {
- var tmp;
- var output = [];
- for (var i = start; i < end; i += 3) {
- tmp = (uint8[i] << 16 & 16711680) + (uint8[i + 1] << 8 & 65280) + (uint8[i + 2] & 255);
- output.push(tripletToBase64(tmp))
- }
- return output.join("")
- }
+ function ReplicateValue (table, i, step, end, code) {
+ do {
+ end -= step
+ table[i + end] = new HuffmanCode(code.bits, code.value)
+ } while (end > 0)
+ }
- function fromByteArray(uint8) {
- var tmp;
- var len = uint8.length;
- var extraBytes = len % 3;
- var parts = [];
- var maxChunkLength = 16383;
- for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
- parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength))
+ function NextTableBitSize (count, len, root_bits) {
+ let left = 1 << (len - root_bits)
+ while (len < MAX_LENGTH) {
+ left -= count[len]
+ if (left <= 0) break
+ ++len
+ left <<= 1
+ }
+ return len - root_bits
+ }
+ exports.BrotliBuildHuffmanTable = function (
+ root_table,
+ table,
+ root_bits,
+ code_lengths,
+ code_lengths_size
+ ) {
+ const start_table = table
+ let code
+ let len
+ let symbol
+ let key
+ let step
+ let low
+ let mask
+ let table_bits
+ let table_size
+ let total_size
+ let sorted
+ const count = new Int32Array(MAX_LENGTH + 1)
+ const offset = new Int32Array(MAX_LENGTH + 1)
+ sorted = new Int32Array(code_lengths_size)
+ for (symbol = 0; symbol < code_lengths_size; symbol++) {
+ count[code_lengths[symbol]]++
+ }
+ offset[1] = 0
+ for (len = 1; len < MAX_LENGTH; len++) {
+ offset[len + 1] = offset[len] + count[len]
+ }
+ for (symbol = 0; symbol < code_lengths_size; symbol++) {
+ if (code_lengths[symbol] !== 0) {
+ sorted[offset[code_lengths[symbol]]++] = symbol
+ }
+ }
+ table_bits = root_bits
+ table_size = 1 << table_bits
+ total_size = table_size
+ if (offset[MAX_LENGTH] === 1) {
+ for (key = 0; key < total_size; ++key) {
+ root_table[table + key] = new HuffmanCode(0, sorted[0] & 65535)
+ }
+ return total_size
+ }
+ key = 0
+ symbol = 0
+ for (len = 1, step = 2; len <= root_bits; ++len, step <<= 1) {
+ for (; count[len] > 0; --count[len]) {
+ code = new HuffmanCode(len & 255, sorted[symbol++] & 65535)
+ ReplicateValue(root_table, table + key, step, table_size, code)
+ key = GetNextKey(key, len)
+ }
+ }
+ mask = total_size - 1
+ low = -1
+ for (
+ len = root_bits + 1, step = 2;
+ len <= MAX_LENGTH;
+ ++len, step <<= 1
+ ) {
+ for (; count[len] > 0; --count[len]) {
+ if ((key & mask) !== low) {
+ table += table_size
+ table_bits = NextTableBitSize(count, len, root_bits)
+ table_size = 1 << table_bits
+ total_size += table_size
+ low = key & mask
+ root_table[start_table + low] = new HuffmanCode(
+ (table_bits + root_bits) & 255,
+ (table - start_table - low) & 65535
+ )
+ }
+ code = new HuffmanCode(
+ (len - root_bits) & 255,
+ sorted[symbol++] & 65535
+ )
+ ReplicateValue(
+ root_table,
+ table + (key >> root_bits),
+ step,
+ table_size,
+ code
+ )
+ key = GetNextKey(key, len)
+ }
+ }
+ return total_size
+ }
+ },
+ {}
+ ],
+ 8: [
+ function (require, module, exports) {
+ function PrefixCodeRange (offset, nbits) {
+ this.offset = offset
+ this.nbits = nbits
+ }
+ exports.kBlockLengthPrefixCode = [
+ new PrefixCodeRange(1, 2),
+ new PrefixCodeRange(5, 2),
+ new PrefixCodeRange(9, 2),
+ new PrefixCodeRange(13, 2),
+ new PrefixCodeRange(17, 3),
+ new PrefixCodeRange(25, 3),
+ new PrefixCodeRange(33, 3),
+ new PrefixCodeRange(41, 3),
+ new PrefixCodeRange(49, 4),
+ new PrefixCodeRange(65, 4),
+ new PrefixCodeRange(81, 4),
+ new PrefixCodeRange(97, 4),
+ new PrefixCodeRange(113, 5),
+ new PrefixCodeRange(145, 5),
+ new PrefixCodeRange(177, 5),
+ new PrefixCodeRange(209, 5),
+ new PrefixCodeRange(241, 6),
+ new PrefixCodeRange(305, 6),
+ new PrefixCodeRange(369, 7),
+ new PrefixCodeRange(497, 8),
+ new PrefixCodeRange(753, 9),
+ new PrefixCodeRange(1265, 10),
+ new PrefixCodeRange(2289, 11),
+ new PrefixCodeRange(4337, 12),
+ new PrefixCodeRange(8433, 13),
+ new PrefixCodeRange(16625, 24)
+ ]
+ exports.kInsertLengthPrefixCode = [
+ new PrefixCodeRange(0, 0),
+ new PrefixCodeRange(1, 0),
+ new PrefixCodeRange(2, 0),
+ new PrefixCodeRange(3, 0),
+ new PrefixCodeRange(4, 0),
+ new PrefixCodeRange(5, 0),
+ new PrefixCodeRange(6, 1),
+ new PrefixCodeRange(8, 1),
+ new PrefixCodeRange(10, 2),
+ new PrefixCodeRange(14, 2),
+ new PrefixCodeRange(18, 3),
+ new PrefixCodeRange(26, 3),
+ new PrefixCodeRange(34, 4),
+ new PrefixCodeRange(50, 4),
+ new PrefixCodeRange(66, 5),
+ new PrefixCodeRange(98, 5),
+ new PrefixCodeRange(130, 6),
+ new PrefixCodeRange(194, 7),
+ new PrefixCodeRange(322, 8),
+ new PrefixCodeRange(578, 9),
+ new PrefixCodeRange(1090, 10),
+ new PrefixCodeRange(2114, 12),
+ new PrefixCodeRange(6210, 14),
+ new PrefixCodeRange(22594, 24)
+ ]
+ exports.kCopyLengthPrefixCode = [
+ new PrefixCodeRange(2, 0),
+ new PrefixCodeRange(3, 0),
+ new PrefixCodeRange(4, 0),
+ new PrefixCodeRange(5, 0),
+ new PrefixCodeRange(6, 0),
+ new PrefixCodeRange(7, 0),
+ new PrefixCodeRange(8, 0),
+ new PrefixCodeRange(9, 0),
+ new PrefixCodeRange(10, 1),
+ new PrefixCodeRange(12, 1),
+ new PrefixCodeRange(14, 2),
+ new PrefixCodeRange(18, 2),
+ new PrefixCodeRange(22, 3),
+ new PrefixCodeRange(30, 3),
+ new PrefixCodeRange(38, 4),
+ new PrefixCodeRange(54, 4),
+ new PrefixCodeRange(70, 5),
+ new PrefixCodeRange(102, 5),
+ new PrefixCodeRange(134, 6),
+ new PrefixCodeRange(198, 7),
+ new PrefixCodeRange(326, 8),
+ new PrefixCodeRange(582, 9),
+ new PrefixCodeRange(1094, 10),
+ new PrefixCodeRange(2118, 24)
+ ]
+ exports.kInsertRangeLut = [0, 0, 8, 8, 0, 16, 8, 16, 16]
+ exports.kCopyRangeLut = [0, 8, 0, 8, 16, 0, 16, 8, 16]
+ },
+ {}
+ ],
+ 9: [
+ function (require, module, exports) {
+ function BrotliInput (buffer) {
+ this.buffer = buffer
+ this.pos = 0
+ }
+ BrotliInput.prototype.read = function (buf, i, count) {
+ if (this.pos + count > this.buffer.length) {
+ count = this.buffer.length - this.pos
+ }
+ for (let p = 0; p < count; p++) {
+ buf[i + p] = this.buffer[this.pos + p]
+ }
+ this.pos += count
+ return count
+ }
+ exports.BrotliInput = BrotliInput
+
+ function BrotliOutput (buf) {
+ this.buffer = buf
+ this.pos = 0
+ }
+ BrotliOutput.prototype.write = function (buf, count) {
+ if (this.pos + count > this.buffer.length) {
+ throw new Error('Output buffer is not large enough')
+ }
+ this.buffer.set(buf.subarray(0, count), this.pos)
+ this.pos += count
+ return count
+ }
+ exports.BrotliOutput = BrotliOutput
+ },
+ {}
+ ],
+ 10: [
+ function (require, module, exports) {
+ const BrotliDictionary = require('./dictionary')
+ const kIdentity = 0
+ const kOmitLast1 = 1
+ const kOmitLast2 = 2
+ const kOmitLast3 = 3
+ const kOmitLast4 = 4
+ const kOmitLast5 = 5
+ const kOmitLast6 = 6
+ const kOmitLast7 = 7
+ const kOmitLast8 = 8
+ const kOmitLast9 = 9
+ const kUppercaseFirst = 10
+ const kUppercaseAll = 11
+ const kOmitFirst1 = 12
+ const kOmitFirst2 = 13
+ const kOmitFirst3 = 14
+ const kOmitFirst4 = 15
+ const kOmitFirst5 = 16
+ const kOmitFirst6 = 17
+ const kOmitFirst7 = 18
+ const kOmitFirst9 = 20
+
+ function Transform (prefix, transform, suffix) {
+ this.prefix = new Uint8Array(prefix.length)
+ this.transform = transform
+ this.suffix = new Uint8Array(suffix.length)
+ for (var i = 0; i < prefix.length; i++) {
+ this.prefix[i] = prefix.charCodeAt(i)
+ }
+ for (var i = 0; i < suffix.length; i++) {
+ this.suffix[i] = suffix.charCodeAt(i)
+ }
+ }
+ const kTransforms = [
+ new Transform('', kIdentity, ''),
+ new Transform('', kIdentity, ' '),
+ new Transform(' ', kIdentity, ' '),
+ new Transform('', kOmitFirst1, ''),
+ new Transform('', kUppercaseFirst, ' '),
+ new Transform('', kIdentity, ' the '),
+ new Transform(' ', kIdentity, ''),
+ new Transform('s ', kIdentity, ' '),
+ new Transform('', kIdentity, ' of '),
+ new Transform('', kUppercaseFirst, ''),
+ new Transform('', kIdentity, ' and '),
+ new Transform('', kOmitFirst2, ''),
+ new Transform('', kOmitLast1, ''),
+ new Transform(', ', kIdentity, ' '),
+ new Transform('', kIdentity, ', '),
+ new Transform(' ', kUppercaseFirst, ' '),
+ new Transform('', kIdentity, ' in '),
+ new Transform('', kIdentity, ' to '),
+ new Transform('e ', kIdentity, ' '),
+ new Transform('', kIdentity, '"'),
+ new Transform('', kIdentity, '.'),
+ new Transform('', kIdentity, '">'),
+ new Transform('', kIdentity, '\n'),
+ new Transform('', kOmitLast3, ''),
+ new Transform('', kIdentity, ']'),
+ new Transform('', kIdentity, ' for '),
+ new Transform('', kOmitFirst3, ''),
+ new Transform('', kOmitLast2, ''),
+ new Transform('', kIdentity, ' a '),
+ new Transform('', kIdentity, ' that '),
+ new Transform(' ', kUppercaseFirst, ''),
+ new Transform('', kIdentity, '. '),
+ new Transform('.', kIdentity, ''),
+ new Transform(' ', kIdentity, ', '),
+ new Transform('', kOmitFirst4, ''),
+ new Transform('', kIdentity, ' with '),
+ new Transform('', kIdentity, "'"),
+ new Transform('', kIdentity, ' from '),
+ new Transform('', kIdentity, ' by '),
+ new Transform('', kOmitFirst5, ''),
+ new Transform('', kOmitFirst6, ''),
+ new Transform(' the ', kIdentity, ''),
+ new Transform('', kOmitLast4, ''),
+ new Transform('', kIdentity, '. The '),
+ new Transform('', kUppercaseAll, ''),
+ new Transform('', kIdentity, ' on '),
+ new Transform('', kIdentity, ' as '),
+ new Transform('', kIdentity, ' is '),
+ new Transform('', kOmitLast7, ''),
+ new Transform('', kOmitLast1, 'ing '),
+ new Transform('', kIdentity, '\n\t'),
+ new Transform('', kIdentity, ':'),
+ new Transform(' ', kIdentity, '. '),
+ new Transform('', kIdentity, 'ed '),
+ new Transform('', kOmitFirst9, ''),
+ new Transform('', kOmitFirst7, ''),
+ new Transform('', kOmitLast6, ''),
+ new Transform('', kIdentity, '('),
+ new Transform('', kUppercaseFirst, ', '),
+ new Transform('', kOmitLast8, ''),
+ new Transform('', kIdentity, ' at '),
+ new Transform('', kIdentity, 'ly '),
+ new Transform(' the ', kIdentity, ' of '),
+ new Transform('', kOmitLast5, ''),
+ new Transform('', kOmitLast9, ''),
+ new Transform(' ', kUppercaseFirst, ', '),
+ new Transform('', kUppercaseFirst, '"'),
+ new Transform('.', kIdentity, '('),
+ new Transform('', kUppercaseAll, ' '),
+ new Transform('', kUppercaseFirst, '">'),
+ new Transform('', kIdentity, '="'),
+ new Transform(' ', kIdentity, '.'),
+ new Transform('.com/', kIdentity, ''),
+ new Transform(' the ', kIdentity, ' of the '),
+ new Transform('', kUppercaseFirst, "'"),
+ new Transform('', kIdentity, '. This '),
+ new Transform('', kIdentity, ','),
+ new Transform('.', kIdentity, ' '),
+ new Transform('', kUppercaseFirst, '('),
+ new Transform('', kUppercaseFirst, '.'),
+ new Transform('', kIdentity, ' not '),
+ new Transform(' ', kIdentity, '="'),
+ new Transform('', kIdentity, 'er '),
+ new Transform(' ', kUppercaseAll, ' '),
+ new Transform('', kIdentity, 'al '),
+ new Transform(' ', kUppercaseAll, ''),
+ new Transform('', kIdentity, "='"),
+ new Transform('', kUppercaseAll, '"'),
+ new Transform('', kUppercaseFirst, '. '),
+ new Transform(' ', kIdentity, '('),
+ new Transform('', kIdentity, 'ful '),
+ new Transform(' ', kUppercaseFirst, '. '),
+ new Transform('', kIdentity, 'ive '),
+ new Transform('', kIdentity, 'less '),
+ new Transform('', kUppercaseAll, "'"),
+ new Transform('', kIdentity, 'est '),
+ new Transform(' ', kUppercaseFirst, '.'),
+ new Transform('', kUppercaseAll, '">'),
+ new Transform(' ', kIdentity, "='"),
+ new Transform('', kUppercaseFirst, ','),
+ new Transform('', kIdentity, 'ize '),
+ new Transform('', kUppercaseAll, '.'),
+ new Transform('Â ', kIdentity, ''),
+ new Transform(' ', kIdentity, ','),
+ new Transform('', kUppercaseFirst, '="'),
+ new Transform('', kUppercaseAll, '="'),
+ new Transform('', kIdentity, 'ous '),
+ new Transform('', kUppercaseAll, ', '),
+ new Transform('', kUppercaseFirst, "='"),
+ new Transform(' ', kUppercaseFirst, ','),
+ new Transform(' ', kUppercaseAll, '="'),
+ new Transform(' ', kUppercaseAll, ', '),
+ new Transform('', kUppercaseAll, ','),
+ new Transform('', kUppercaseAll, '('),
+ new Transform('', kUppercaseAll, '. '),
+ new Transform(' ', kUppercaseAll, '.'),
+ new Transform('', kUppercaseAll, "='"),
+ new Transform(' ', kUppercaseAll, '. '),
+ new Transform(' ', kUppercaseFirst, '="'),
+ new Transform(' ', kUppercaseAll, "='"),
+ new Transform(' ', kUppercaseFirst, "='")
+ ]
+ exports.kTransforms = kTransforms
+ exports.kNumTransforms = kTransforms.length
+
+ function ToUpperCase (p, i) {
+ if (p[i] < 192) {
+ if (p[i] >= 97 && p[i] <= 122) {
+ p[i] ^= 32
+ }
+ return 1
+ }
+ if (p[i] < 224) {
+ p[i + 1] ^= 32
+ return 2
+ }
+ p[i + 2] ^= 5
+ return 3
+ }
+ exports.transformDictionaryWord = function (
+ dst,
+ idx,
+ word,
+ len,
+ transform
+ ) {
+ const prefix = kTransforms[transform].prefix
+ const suffix = kTransforms[transform].suffix
+ const t = kTransforms[transform].transform
+ let skip = t < kOmitFirst1 ? 0 : t - (kOmitFirst1 - 1)
+ let i = 0
+ const start_idx = idx
+ let uppercase
+ if (skip > len) {
+ skip = len
+ }
+ let prefix_pos = 0
+ while (prefix_pos < prefix.length) {
+ dst[idx++] = prefix[prefix_pos++]
+ }
+ word += skip
+ len -= skip
+ if (t <= kOmitLast9) {
+ len -= t
+ }
+ for (i = 0; i < len; i++) {
+ dst[idx++] = BrotliDictionary.dictionary[word + i]
+ }
+ uppercase = idx - len
+ if (t === kUppercaseFirst) {
+ ToUpperCase(dst, uppercase)
+ } else if (t === kUppercaseAll) {
+ while (len > 0) {
+ const step = ToUpperCase(dst, uppercase)
+ uppercase += step
+ len -= step
+ }
+ }
+ let suffix_pos = 0
+ while (suffix_pos < suffix.length) {
+ dst[idx++] = suffix[suffix_pos++]
+ }
+ return idx - start_idx
+ }
+ },
+ {
+ './dictionary': 6
}
- if (extraBytes === 1) {
- tmp = uint8[len - 1];
- parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 63] + "==")
- } else if (extraBytes === 2) {
- tmp = (uint8[len - 2] << 8) + uint8[len - 1];
- parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + "=")
+ ],
+ 11: [
+ function (require, module, exports) {
+ Module.BrotliDecode = require('./dec/decode').BrotliDecompressBuffer
+ },
+ {
+ './dec/decode': 3
}
- return parts.join("")
- }
- }, {}]
- }, {}, [11])(11)
-});
-var moduleOverrides = {};
-var key;
+ ],
+ 12: [
+ function (require, module, exports) {
+ null
+ exports.byteLength = byteLength
+ exports.toByteArray = toByteArray
+ exports.fromByteArray = fromByteArray
+ const lookup = []
+ const revLookup = []
+ const Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
+ const code =
+ 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
+ for (let i = 0, len = code.length; i < len; ++i) {
+ lookup[i] = code[i]
+ revLookup[code.charCodeAt(i)] = i
+ }
+ revLookup['-'.charCodeAt(0)] = 62
+ revLookup['_'.charCodeAt(0)] = 63
+
+ function getLens (b64) {
+ const len = b64.length
+ if (len % 4 > 0) {
+ throw new Error('Invalid string. Length must be a multiple of 4')
+ }
+ let validLen = b64.indexOf('=')
+ if (validLen === -1) validLen = len
+ const placeHoldersLen = validLen === len ? 0 : 4 - (validLen % 4)
+ return [validLen, placeHoldersLen]
+ }
+
+ function byteLength (b64) {
+ const lens = getLens(b64)
+ const validLen = lens[0]
+ const placeHoldersLen = lens[1]
+ return ((validLen + placeHoldersLen) * 3) / 4 - placeHoldersLen
+ }
+
+ function _byteLength (b64, validLen, placeHoldersLen) {
+ return ((validLen + placeHoldersLen) * 3) / 4 - placeHoldersLen
+ }
+
+ function toByteArray (b64) {
+ let tmp
+ const lens = getLens(b64)
+ const validLen = lens[0]
+ const placeHoldersLen = lens[1]
+ const arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))
+ let curByte = 0
+ const len = placeHoldersLen > 0 ? validLen - 4 : validLen
+ let i
+ for (i = 0; i < len; i += 4) {
+ tmp =
+ (revLookup[b64.charCodeAt(i)] << 18) |
+ (revLookup[b64.charCodeAt(i + 1)] << 12) |
+ (revLookup[b64.charCodeAt(i + 2)] << 6) |
+ revLookup[b64.charCodeAt(i + 3)]
+ arr[curByte++] = (tmp >> 16) & 255
+ arr[curByte++] = (tmp >> 8) & 255
+ arr[curByte++] = tmp & 255
+ }
+ if (placeHoldersLen === 2) {
+ tmp =
+ (revLookup[b64.charCodeAt(i)] << 2) |
+ (revLookup[b64.charCodeAt(i + 1)] >> 4)
+ arr[curByte++] = tmp & 255
+ }
+ if (placeHoldersLen === 1) {
+ tmp =
+ (revLookup[b64.charCodeAt(i)] << 10) |
+ (revLookup[b64.charCodeAt(i + 1)] << 4) |
+ (revLookup[b64.charCodeAt(i + 2)] >> 2)
+ arr[curByte++] = (tmp >> 8) & 255
+ arr[curByte++] = tmp & 255
+ }
+ return arr
+ }
+
+ function tripletToBase64 (num) {
+ return (
+ lookup[(num >> 18) & 63] +
+ lookup[(num >> 12) & 63] +
+ lookup[(num >> 6) & 63] +
+ lookup[num & 63]
+ )
+ }
+
+ function encodeChunk (uint8, start, end) {
+ let tmp
+ const output = []
+ for (let i = start; i < end; i += 3) {
+ tmp =
+ ((uint8[i] << 16) & 16711680) +
+ ((uint8[i + 1] << 8) & 65280) +
+ (uint8[i + 2] & 255)
+ output.push(tripletToBase64(tmp))
+ }
+ return output.join('')
+ }
+
+ function fromByteArray (uint8) {
+ let tmp
+ const len = uint8.length
+ const extraBytes = len % 3
+ const parts = []
+ const maxChunkLength = 16383
+ for (
+ let i = 0, len2 = len - extraBytes;
+ i < len2;
+ i += maxChunkLength
+ ) {
+ parts.push(
+ encodeChunk(
+ uint8,
+ i,
+ i + maxChunkLength > len2 ? len2 : i + maxChunkLength
+ )
+ )
+ }
+ if (extraBytes === 1) {
+ tmp = uint8[len - 1]
+ parts.push(lookup[tmp >> 2] + lookup[(tmp << 4) & 63] + '==')
+ } else if (extraBytes === 2) {
+ tmp = (uint8[len - 2] << 8) + uint8[len - 1]
+ parts.push(
+ lookup[tmp >> 10] +
+ lookup[(tmp >> 4) & 63] +
+ lookup[(tmp << 2) & 63] +
+ '='
+ )
+ }
+ return parts.join('')
+ }
+ },
+ {}
+ ]
+ },
+ {},
+ [11]
+ )(11)
+})
+let moduleOverrides = {}
+let key
for (key in Module) {
if (Module.hasOwnProperty(key)) {
moduleOverrides[key] = Module[key]
}
}
-var arguments_ = [];
-var thisProgram = "./this.program";
-var quit_ = function (status, toThrow) {
+let arguments_ = []
+let thisProgram = './this.program'
+let quit_ = function (status, toThrow) {
throw toThrow
-};
-var ENVIRONMENT_IS_WEB = false;
-var ENVIRONMENT_IS_WORKER = false;
-var ENVIRONMENT_IS_NODE = false;
-var ENVIRONMENT_IS_SHELL = false;
-ENVIRONMENT_IS_WEB = typeof window === "object";
-ENVIRONMENT_IS_WORKER = typeof importScripts === "function";
-ENVIRONMENT_IS_NODE = typeof process === "object" && typeof process.versions === "object" && typeof process.versions.node === "string";
-ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER;
-var scriptDirectory = "";
+}
+let ENVIRONMENT_IS_WEB = false
+let ENVIRONMENT_IS_WORKER = false
+let ENVIRONMENT_IS_NODE = false
+let ENVIRONMENT_IS_SHELL = false
+ENVIRONMENT_IS_WEB = typeof window === 'object'
+ENVIRONMENT_IS_WORKER = typeof importScripts === 'function'
+ENVIRONMENT_IS_NODE =
+ typeof process === 'object' &&
+ typeof process.versions === 'object' &&
+ typeof process.versions.node === 'string'
+ENVIRONMENT_IS_SHELL =
+ !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER
+let scriptDirectory = ''
-function locateFile(path) {
- if (Module["locateFile"]) {
- return Module["locateFile"](path, scriptDirectory)
+function locateFile (path) {
+ if (Module.locateFile) {
+ return Module.locateFile(path, scriptDirectory)
}
return scriptDirectory + path
}
-var read_, readAsync, readBinary, setWindowTitle;
+let read_, readAsync, readBinary, setWindowTitle
if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {
if (ENVIRONMENT_IS_WORKER) {
scriptDirectory = self.location.href
} else if (document.currentScript) {
scriptDirectory = document.currentScript.src
}
- if (scriptDirectory.indexOf("blob:") !== 0) {
- scriptDirectory = scriptDirectory.substr(0, scriptDirectory.lastIndexOf("/") + 1)
+ if (scriptDirectory.indexOf('blob:') !== 0) {
+ scriptDirectory = scriptDirectory.substr(
+ 0,
+ scriptDirectory.lastIndexOf('/') + 1
+ )
} else {
- scriptDirectory = ""
- } {
- read_ = function shell_read(url) {
- var xhr = new XMLHttpRequest;
- xhr.open("GET", url, false);
- xhr.send(null);
+ scriptDirectory = ''
+ }
+ {
+ read_ = function shell_read (url) {
+ const xhr = new XMLHttpRequest()
+ xhr.open('GET', url, false)
+ xhr.send(null)
return xhr.responseText
- };
+ }
if (ENVIRONMENT_IS_WORKER) {
- readBinary = function readBinary(url) {
- var xhr = new XMLHttpRequest;
- xhr.open("GET", url, false);
- xhr.responseType = "arraybuffer";
- xhr.send(null);
+ readBinary = function readBinary (url) {
+ const xhr = new XMLHttpRequest()
+ xhr.open('GET', url, false)
+ xhr.responseType = 'arraybuffer'
+ xhr.send(null)
return new Uint8Array(xhr.response)
}
}
- readAsync = function readAsync(url, onload, onerror) {
- var xhr = new XMLHttpRequest;
- xhr.open("GET", url, true);
- xhr.responseType = "arraybuffer";
- xhr.onload = function xhr_onload() {
- if (xhr.status == 200 || xhr.status == 0 && xhr.response) {
- onload(xhr.response);
+ readAsync = function readAsync (url, onload, onerror) {
+ const xhr = new XMLHttpRequest()
+ xhr.open('GET', url, true)
+ xhr.responseType = 'arraybuffer'
+ xhr.onload = function xhr_onload () {
+ if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) {
+ onload(xhr.response)
return
}
onerror()
- };
- xhr.onerror = onerror;
+ }
+ xhr.onerror = onerror
xhr.send(null)
}
}
setWindowTitle = function (title) {
document.title = title
}
-} else {}
-var out = Module["print"] || console.log.bind(console);
-var err = Module["printErr"] || console.warn.bind(console);
+} else {
+}
+const out = Module.print || console.log.bind(console)
+var err = Module.printErr || console.warn.bind(console)
for (key in moduleOverrides) {
if (moduleOverrides.hasOwnProperty(key)) {
Module[key] = moduleOverrides[key]
}
}
-moduleOverrides = null;
-if (Module["arguments"]) arguments_ = Module["arguments"];
-if (Module["thisProgram"]) thisProgram = Module["thisProgram"];
-if (Module["quit"]) quit_ = Module["quit"];
+moduleOverrides = null
+if (Module.arguments) arguments_ = Module.arguments
+if (Module.thisProgram) thisProgram = Module.thisProgram
+if (Module.quit) quit_ = Module.quit
-function dynamicAlloc(size) {
- var ret = HEAP32[DYNAMICTOP_PTR >> 2];
- var end = ret + size + 15 & -16;
- HEAP32[DYNAMICTOP_PTR >> 2] = end;
+function dynamicAlloc (size) {
+ const ret = HEAP32[DYNAMICTOP_PTR >> 2]
+ const end = (ret + size + 15) & -16
+ HEAP32[DYNAMICTOP_PTR >> 2] = end
return ret
}
-function warnOnce(text) {
- if (!warnOnce.shown) warnOnce.shown = {};
+function warnOnce (text) {
+ if (!warnOnce.shown) warnOnce.shown = {}
if (!warnOnce.shown[text]) {
- warnOnce.shown[text] = 1;
+ warnOnce.shown[text] = 1
err(text)
}
}
-var tempRet0 = 0;
-var setTempRet0 = function (value) {
+let tempRet0 = 0
+const setTempRet0 = function (value) {
tempRet0 = value
-};
-var getTempRet0 = function () {
+}
+const getTempRet0 = function () {
return tempRet0
-};
-var wasmBinary;
-if (Module["wasmBinary"]) wasmBinary = Module["wasmBinary"];
-var noExitRuntime;
-if (Module["noExitRuntime"]) noExitRuntime = Module["noExitRuntime"];
-if (typeof WebAssembly !== "object") {
- err("no native wasm support detected")
+}
+let wasmBinary
+if (Module.wasmBinary) wasmBinary = Module.wasmBinary
+let noExitRuntime
+if (Module.noExitRuntime) noExitRuntime = Module.noExitRuntime
+if (typeof WebAssembly !== 'object') {
+ err('no native wasm support detected')
}
-function getValue(ptr, type, noSafe) {
- type = type || "i8";
- if (type.charAt(type.length - 1) === "*") type = "i32";
+function getValue (ptr, type, noSafe) {
+ type = type || 'i8'
+ if (type.charAt(type.length - 1) === '*') type = 'i32'
switch (type) {
- case "i1":
- return HEAP8[ptr >> 0];
- case "i8":
- return HEAP8[ptr >> 0];
- case "i16":
- return HEAP16[ptr >> 1];
- case "i32":
- return HEAP32[ptr >> 2];
- case "i64":
- return HEAP32[ptr >> 2];
- case "float":
- return HEAPF32[ptr >> 2];
- case "double":
- return HEAPF64[ptr >> 3];
+ case 'i1':
+ return HEAP8[ptr >> 0]
+ case 'i8':
+ return HEAP8[ptr >> 0]
+ case 'i16':
+ return HEAP16[ptr >> 1]
+ case 'i32':
+ return HEAP32[ptr >> 2]
+ case 'i64':
+ return HEAP32[ptr >> 2]
+ case 'float':
+ return HEAPF32[ptr >> 2]
+ case 'double':
+ return HEAPF64[ptr >> 3]
default:
- abort("invalid type for getValue: " + type)
+ abort('invalid type for getValue: ' + type)
}
return null
}
-var wasmMemory;
-var wasmTable = new WebAssembly.Table({
- "initial": 1014,
- "maximum": 1014 + 0,
- "element": "anyfunc"
-});
-var ABORT = false;
-var EXITSTATUS = 0;
+let wasmMemory
+const wasmTable = new WebAssembly.Table({
+ initial: 1014,
+ maximum: 1014 + 0,
+ element: 'anyfunc'
+})
+let ABORT = false
+let EXITSTATUS = 0
-function assert(condition, text) {
+function assert (condition, text) {
if (!condition) {
- abort("Assertion failed: " + text)
+ abort('Assertion failed: ' + text)
}
}
-function getCFunc(ident) {
- var func = Module["_" + ident];
- assert(func, "Cannot call unknown function " + ident + ", make sure it is exported");
+function getCFunc (ident) {
+ const func = Module['_' + ident]
+ assert(
+ func,
+ 'Cannot call unknown function ' + ident + ', make sure it is exported'
+ )
return func
}
-function ccall(ident, returnType, argTypes, args, opts) {
- var toC = {
- "string": function (str) {
- var ret = 0;
+function ccall (ident, returnType, argTypes, args, opts) {
+ const toC = {
+ string: function (str) {
+ let ret = 0
if (str !== null && str !== undefined && str !== 0) {
- var len = (str.length << 2) + 1;
- ret = stackAlloc(len);
+ const len = (str.length << 2) + 1
+ ret = stackAlloc(len)
stringToUTF8(str, ret, len)
}
return ret
},
- "array": function (arr) {
- var ret = stackAlloc(arr.length);
- writeArrayToMemory(arr, ret);
+ array: function (arr) {
+ const ret = stackAlloc(arr.length)
+ writeArrayToMemory(arr, ret)
return ret
}
- };
+ }
- function convertReturnValue(ret) {
- if (returnType === "string") return UTF8ToString(ret);
- if (returnType === "boolean") return Boolean(ret);
+ function convertReturnValue (ret) {
+ if (returnType === 'string') return UTF8ToString(ret)
+ if (returnType === 'boolean') return Boolean(ret)
return ret
}
- var func = getCFunc(ident);
- var cArgs = [];
- var stack = 0;
+ const func = getCFunc(ident)
+ const cArgs = []
+ let stack = 0
if (args) {
- for (var i = 0; i < args.length; i++) {
- var converter = toC[argTypes[i]];
+ for (let i = 0; i < args.length; i++) {
+ const converter = toC[argTypes[i]]
if (converter) {
- if (stack === 0) stack = stackSave();
+ if (stack === 0) stack = stackSave()
cArgs[i] = converter(args[i])
} else {
cArgs[i] = args[i]
}
}
}
- var ret = func.apply(null, cArgs);
- ret = convertReturnValue(ret);
- if (stack !== 0) stackRestore(stack);
+ let ret = func.apply(null, cArgs)
+ ret = convertReturnValue(ret)
+ if (stack !== 0) stackRestore(stack)
return ret
}
-function cwrap(ident, returnType, argTypes, opts) {
- argTypes = argTypes || [];
- var numericArgs = argTypes.every(function (type) {
- return type === "number"
- });
- var numericRet = returnType !== "string";
+function cwrap (ident, returnType, argTypes, opts) {
+ argTypes = argTypes || []
+ const numericArgs = argTypes.every(function (type) {
+ return type === 'number'
+ })
+ const numericRet = returnType !== 'string'
if (numericRet && numericArgs && !opts) {
return getCFunc(ident)
}
@@ -1763,303 +4414,308 @@ function cwrap(ident, returnType, argTypes, opts) {
}
}
-function getMemory(size) {
- if (!runtimeInitialized) return dynamicAlloc(size);
+function getMemory (size) {
+ if (!runtimeInitialized) return dynamicAlloc(size)
return _malloc(size)
}
-var UTF8Decoder = typeof TextDecoder !== "undefined" ? new TextDecoder("utf8") : undefined;
+const UTF8Decoder =
+ typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') : undefined
-function UTF8ArrayToString(heap, idx, maxBytesToRead) {
- var endIdx = idx + maxBytesToRead;
- var endPtr = idx;
- while (heap[endPtr] && !(endPtr >= endIdx)) ++endPtr;
+function UTF8ArrayToString (heap, idx, maxBytesToRead) {
+ const endIdx = idx + maxBytesToRead
+ let endPtr = idx
+ while (heap[endPtr] && !(endPtr >= endIdx)) ++endPtr
if (endPtr - idx > 16 && heap.subarray && UTF8Decoder) {
return UTF8Decoder.decode(heap.subarray(idx, endPtr))
} else {
- var str = "";
+ var str = ''
while (idx < endPtr) {
- var u0 = heap[idx++];
+ let u0 = heap[idx++]
if (!(u0 & 128)) {
- str += String.fromCharCode(u0);
+ str += String.fromCharCode(u0)
continue
}
- var u1 = heap[idx++] & 63;
+ const u1 = heap[idx++] & 63
if ((u0 & 224) == 192) {
- str += String.fromCharCode((u0 & 31) << 6 | u1);
+ str += String.fromCharCode(((u0 & 31) << 6) | u1)
continue
}
- var u2 = heap[idx++] & 63;
+ const u2 = heap[idx++] & 63
if ((u0 & 240) == 224) {
- u0 = (u0 & 15) << 12 | u1 << 6 | u2
+ u0 = ((u0 & 15) << 12) | (u1 << 6) | u2
} else {
- u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heap[idx++] & 63
+ u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (heap[idx++] & 63)
}
if (u0 < 65536) {
str += String.fromCharCode(u0)
} else {
- var ch = u0 - 65536;
- str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023)
+ const ch = u0 - 65536
+ str += String.fromCharCode(55296 | (ch >> 10), 56320 | (ch & 1023))
}
}
}
return str
}
-function UTF8ToString(ptr, maxBytesToRead) {
- return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : ""
+function UTF8ToString (ptr, maxBytesToRead) {
+ return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : ''
}
-function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) {
- if (!(maxBytesToWrite > 0)) return 0;
- var startIdx = outIdx;
- var endIdx = outIdx + maxBytesToWrite - 1;
- for (var i = 0; i < str.length; ++i) {
- var u = str.charCodeAt(i);
+function stringToUTF8Array (str, heap, outIdx, maxBytesToWrite) {
+ if (!(maxBytesToWrite > 0)) return 0
+ const startIdx = outIdx
+ const endIdx = outIdx + maxBytesToWrite - 1
+ for (let i = 0; i < str.length; ++i) {
+ let u = str.charCodeAt(i)
if (u >= 55296 && u <= 57343) {
- var u1 = str.charCodeAt(++i);
- u = 65536 + ((u & 1023) << 10) | u1 & 1023
+ const u1 = str.charCodeAt(++i)
+ u = (65536 + ((u & 1023) << 10)) | (u1 & 1023)
}
if (u <= 127) {
- if (outIdx >= endIdx) break;
+ if (outIdx >= endIdx) break
heap[outIdx++] = u
} else if (u <= 2047) {
- if (outIdx + 1 >= endIdx) break;
- heap[outIdx++] = 192 | u >> 6;
- heap[outIdx++] = 128 | u & 63
+ if (outIdx + 1 >= endIdx) break
+ heap[outIdx++] = 192 | (u >> 6)
+ heap[outIdx++] = 128 | (u & 63)
} else if (u <= 65535) {
- if (outIdx + 2 >= endIdx) break;
- heap[outIdx++] = 224 | u >> 12;
- heap[outIdx++] = 128 | u >> 6 & 63;
- heap[outIdx++] = 128 | u & 63
+ if (outIdx + 2 >= endIdx) break
+ heap[outIdx++] = 224 | (u >> 12)
+ heap[outIdx++] = 128 | ((u >> 6) & 63)
+ heap[outIdx++] = 128 | (u & 63)
} else {
- if (outIdx + 3 >= endIdx) break;
- heap[outIdx++] = 240 | u >> 18;
- heap[outIdx++] = 128 | u >> 12 & 63;
- heap[outIdx++] = 128 | u >> 6 & 63;
- heap[outIdx++] = 128 | u & 63
+ if (outIdx + 3 >= endIdx) break
+ heap[outIdx++] = 240 | (u >> 18)
+ heap[outIdx++] = 128 | ((u >> 12) & 63)
+ heap[outIdx++] = 128 | ((u >> 6) & 63)
+ heap[outIdx++] = 128 | (u & 63)
}
}
- heap[outIdx] = 0;
+ heap[outIdx] = 0
return outIdx - startIdx
}
-function stringToUTF8(str, outPtr, maxBytesToWrite) {
+function stringToUTF8 (str, outPtr, maxBytesToWrite) {
return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite)
}
-function lengthBytesUTF8(str) {
- var len = 0;
- for (var i = 0; i < str.length; ++i) {
- var u = str.charCodeAt(i);
- if (u >= 55296 && u <= 57343) u = 65536 + ((u & 1023) << 10) | str.charCodeAt(++i) & 1023;
- if (u <= 127) ++len;
- else if (u <= 2047) len += 2;
- else if (u <= 65535) len += 3;
+function lengthBytesUTF8 (str) {
+ let len = 0
+ for (let i = 0; i < str.length; ++i) {
+ let u = str.charCodeAt(i)
+ if (u >= 55296 && u <= 57343) {
+ u = (65536 + ((u & 1023) << 10)) | (str.charCodeAt(++i) & 1023)
+ }
+ if (u <= 127) ++len
+ else if (u <= 2047) len += 2
+ else if (u <= 65535) len += 3
else len += 4
}
return len
}
-function allocateUTF8OnStack(str) {
- var size = lengthBytesUTF8(str) + 1;
- var ret = stackAlloc(size);
- stringToUTF8Array(str, HEAP8, ret, size);
+function allocateUTF8OnStack (str) {
+ const size = lengthBytesUTF8(str) + 1
+ const ret = stackAlloc(size)
+ stringToUTF8Array(str, HEAP8, ret, size)
return ret
}
-function writeArrayToMemory(array, buffer) {
+function writeArrayToMemory (array, buffer) {
HEAP8.set(array, buffer)
}
-function writeAsciiToMemory(str, buffer, dontAddNull) {
- for (var i = 0; i < str.length; ++i) {
+function writeAsciiToMemory (str, buffer, dontAddNull) {
+ for (let i = 0; i < str.length; ++i) {
HEAP8[buffer++ >> 0] = str.charCodeAt(i)
}
if (!dontAddNull) HEAP8[buffer >> 0] = 0
}
-var WASM_PAGE_SIZE = 65536;
+const WASM_PAGE_SIZE = 65536
-function alignUp(x, multiple) {
+function alignUp (x, multiple) {
if (x % multiple > 0) {
- x += multiple - x % multiple
+ x += multiple - (x % multiple)
}
return x
}
-var buffer, HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;
+let buffer, HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64
-function updateGlobalBufferAndViews(buf) {
- buffer = buf;
- Module["HEAP8"] = HEAP8 = new Int8Array(buf);
- Module["HEAP16"] = HEAP16 = new Int16Array(buf);
- Module["HEAP32"] = HEAP32 = new Int32Array(buf);
- Module["HEAPU8"] = HEAPU8 = new Uint8Array(buf);
- Module["HEAPU16"] = HEAPU16 = new Uint16Array(buf);
- Module["HEAPU32"] = HEAPU32 = new Uint32Array(buf);
- Module["HEAPF32"] = HEAPF32 = new Float32Array(buf);
- Module["HEAPF64"] = HEAPF64 = new Float64Array(buf)
+function updateGlobalBufferAndViews (buf) {
+ buffer = buf
+ Module.HEAP8 = HEAP8 = new Int8Array(buf)
+ Module.HEAP16 = HEAP16 = new Int16Array(buf)
+ Module.HEAP32 = HEAP32 = new Int32Array(buf)
+ Module.HEAPU8 = HEAPU8 = new Uint8Array(buf)
+ Module.HEAPU16 = HEAPU16 = new Uint16Array(buf)
+ Module.HEAPU32 = HEAPU32 = new Uint32Array(buf)
+ Module.HEAPF32 = HEAPF32 = new Float32Array(buf)
+ Module.HEAPF64 = HEAPF64 = new Float64Array(buf)
}
-var DYNAMIC_BASE = 5888880,
- DYNAMICTOP_PTR = 645840;
-var INITIAL_INITIAL_MEMORY = Module["INITIAL_MEMORY"] || 16777216;
-if (Module["wasmMemory"]) {
- wasmMemory = Module["wasmMemory"]
+const DYNAMIC_BASE = 5888880
+var DYNAMICTOP_PTR = 645840
+let INITIAL_INITIAL_MEMORY = Module.INITIAL_MEMORY || 16777216
+if (Module.wasmMemory) {
+ wasmMemory = Module.wasmMemory
} else {
wasmMemory = new WebAssembly.Memory({
- "initial": INITIAL_INITIAL_MEMORY / WASM_PAGE_SIZE,
- "maximum": 2147483648 / WASM_PAGE_SIZE
+ initial: INITIAL_INITIAL_MEMORY / WASM_PAGE_SIZE,
+ maximum: 2147483648 / WASM_PAGE_SIZE
})
}
if (wasmMemory) {
buffer = wasmMemory.buffer
}
-INITIAL_INITIAL_MEMORY = buffer.byteLength;
-updateGlobalBufferAndViews(buffer);
-HEAP32[DYNAMICTOP_PTR >> 2] = DYNAMIC_BASE;
+INITIAL_INITIAL_MEMORY = buffer.byteLength
+updateGlobalBufferAndViews(buffer)
+HEAP32[DYNAMICTOP_PTR >> 2] = DYNAMIC_BASE
-function callRuntimeCallbacks(callbacks) {
+function callRuntimeCallbacks (callbacks) {
while (callbacks.length > 0) {
- var callback = callbacks.shift();
- if (typeof callback == "function") {
- callback(Module);
+ const callback = callbacks.shift()
+ if (typeof callback === 'function') {
+ callback(Module)
continue
}
- var func = callback.func;
- if (typeof func === "number") {
+ const func = callback.func
+ if (typeof func === 'number') {
if (callback.arg === undefined) {
- Module["dynCall_v"](func)
+ Module.dynCall_v(func)
} else {
- Module["dynCall_vi"](func, callback.arg)
+ Module.dynCall_vi(func, callback.arg)
}
} else {
func(callback.arg === undefined ? null : callback.arg)
}
}
}
-var __ATPRERUN__ = [];
-var __ATINIT__ = [];
-var __ATMAIN__ = [];
-var __ATPOSTRUN__ = [];
-var runtimeInitialized = false;
-var runtimeExited = false;
+const __ATPRERUN__ = []
+const __ATINIT__ = []
+const __ATMAIN__ = []
+const __ATPOSTRUN__ = []
+var runtimeInitialized = false
+let runtimeExited = false
-function preRun() {
- if (Module["preRun"]) {
- if (typeof Module["preRun"] == "function") Module["preRun"] = [Module["preRun"]];
- while (Module["preRun"].length) {
- addOnPreRun(Module["preRun"].shift())
+function preRun () {
+ if (Module.preRun) {
+ if (typeof Module.preRun === 'function') Module.preRun = [Module.preRun]
+ while (Module.preRun.length) {
+ addOnPreRun(Module.preRun.shift())
}
}
callRuntimeCallbacks(__ATPRERUN__)
}
-function initRuntime() {
- runtimeInitialized = true;
- if (!Module["noFSInit"] && !FS.init.initialized) FS.init();
- TTY.init();
+function initRuntime () {
+ runtimeInitialized = true
+ if (!Module.noFSInit && !FS.init.initialized) FS.init()
+ TTY.init()
callRuntimeCallbacks(__ATINIT__)
}
-function preMain() {
- FS.ignorePermissions = false;
+function preMain () {
+ FS.ignorePermissions = false
callRuntimeCallbacks(__ATMAIN__)
}
-function exitRuntime() {
+function exitRuntime () {
runtimeExited = true
}
-function postRun() {
- if (Module["postRun"]) {
- if (typeof Module["postRun"] == "function") Module["postRun"] = [Module["postRun"]];
- while (Module["postRun"].length) {
- addOnPostRun(Module["postRun"].shift())
+function postRun () {
+ if (Module.postRun) {
+ if (typeof Module.postRun === 'function') Module.postRun = [Module.postRun]
+ while (Module.postRun.length) {
+ addOnPostRun(Module.postRun.shift())
}
}
callRuntimeCallbacks(__ATPOSTRUN__)
}
-function addOnPreRun(cb) {
+function addOnPreRun (cb) {
__ATPRERUN__.unshift(cb)
}
-function addOnPreMain(cb) {
+function addOnPreMain (cb) {
__ATMAIN__.unshift(cb)
}
-function addOnPostRun(cb) {
+function addOnPostRun (cb) {
__ATPOSTRUN__.unshift(cb)
}
-var Math_abs = Math.abs;
-var Math_ceil = Math.ceil;
-var Math_floor = Math.floor;
-var Math_min = Math.min;
-var runDependencies = 0;
-var runDependencyWatcher = null;
-var dependenciesFulfilled = null;
+const Math_abs = Math.abs
+const Math_ceil = Math.ceil
+const Math_floor = Math.floor
+const Math_min = Math.min
+let runDependencies = 0
+let runDependencyWatcher = null
+let dependenciesFulfilled = null
-function getUniqueRunDependency(id) {
+function getUniqueRunDependency (id) {
return id
}
-function addRunDependency(id) {
- runDependencies++;
- if (Module["monitorRunDependencies"]) {
- Module["monitorRunDependencies"](runDependencies)
+function addRunDependency (id) {
+ runDependencies++
+ if (Module.monitorRunDependencies) {
+ Module.monitorRunDependencies(runDependencies)
}
}
-function removeRunDependency(id) {
- runDependencies--;
- if (Module["monitorRunDependencies"]) {
- Module["monitorRunDependencies"](runDependencies)
+function removeRunDependency (id) {
+ runDependencies--
+ if (Module.monitorRunDependencies) {
+ Module.monitorRunDependencies(runDependencies)
}
if (runDependencies == 0) {
if (runDependencyWatcher !== null) {
- clearInterval(runDependencyWatcher);
+ clearInterval(runDependencyWatcher)
runDependencyWatcher = null
}
if (dependenciesFulfilled) {
- var callback = dependenciesFulfilled;
- dependenciesFulfilled = null;
+ const callback = dependenciesFulfilled
+ dependenciesFulfilled = null
callback()
}
}
}
-Module["preloadedImages"] = {};
-Module["preloadedAudios"] = {};
+Module.preloadedImages = {}
+Module.preloadedAudios = {}
-function abort(what) {
- if (Module["onAbort"]) {
- Module["onAbort"](what)
+function abort (what) {
+ if (Module.onAbort) {
+ Module.onAbort(what)
}
- what += "";
- out(what);
- err(what);
- ABORT = true;
- EXITSTATUS = 1;
- what = "abort(" + what + "). Build with -s ASSERTIONS=1 for more info.";
+ what += ''
+ out(what)
+ err(what)
+ ABORT = true
+ EXITSTATUS = 1
+ what = 'abort(' + what + '). Build with -s ASSERTIONS=1 for more info.'
throw new WebAssembly.RuntimeError(what)
}
-function hasPrefix(str, prefix) {
- return String.prototype.startsWith ? str.startsWith(prefix) : str.indexOf(prefix) === 0
+function hasPrefix (str, prefix) {
+ return String.prototype.startsWith
+ ? str.startsWith(prefix)
+ : str.indexOf(prefix) === 0
}
-var dataURIPrefix = "data:application/octet-stream;base64,";
+const dataURIPrefix = 'data:application/octet-stream;base64,'
-function isDataURI(filename) {
+function isDataURI (filename) {
return hasPrefix(filename, dataURIPrefix)
}
-var fileURIPrefix = "file://";
+const fileURIPrefix = 'file://'
-function isFileURI(filename) {
+function isFileURI (filename) {
return hasPrefix(filename, fileURIPrefix)
}
-var wasmBinaryFile = "subtitles-octopus-worker.wasm";
+let wasmBinaryFile = 'subtitles-octopus-worker.wasm'
if (!isDataURI(wasmBinaryFile)) {
wasmBinaryFile = locateFile(wasmBinaryFile)
}
-function getBinary() {
+function getBinary () {
try {
if (wasmBinary) {
return new Uint8Array(wasmBinary)
@@ -2067,65 +4723,80 @@ function getBinary() {
if (readBinary) {
return readBinary(wasmBinaryFile)
} else {
- throw "both async and sync fetching of the wasm failed"
+ throw 'both async and sync fetching of the wasm failed'
}
} catch (err) {
abort(err)
}
}
-function getBinaryPromise() {
- if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) && typeof fetch === "function" && !isFileURI(wasmBinaryFile)) {
+function getBinaryPromise () {
+ if (
+ !wasmBinary &&
+ (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) &&
+ typeof fetch === 'function' &&
+ !isFileURI(wasmBinaryFile)
+ ) {
return fetch(wasmBinaryFile, {
- credentials: "same-origin"
- }).then(function (response) {
- if (!response["ok"]) {
- throw "failed to load wasm binary file at '" + wasmBinaryFile + "'"
- }
- return response["arrayBuffer"]()
- }).catch(function () {
- return getBinary()
+ credentials: 'same-origin'
})
+ .then(function (response) {
+ if (!response.ok) {
+ throw "failed to load wasm binary file at '" + wasmBinaryFile + "'"
+ }
+ return response.arrayBuffer()
+ })
+ .catch(function () {
+ return getBinary()
+ })
}
return new Promise(function (resolve, reject) {
resolve(getBinary())
})
}
-function createWasm() {
- var info = {
- "a": asmLibraryArg
- };
-
- function receiveInstance(instance, module) {
- var exports = instance.exports;
- Module["asm"] = exports;
- removeRunDependency("wasm-instantiate")
- }
- addRunDependency("wasm-instantiate");
-
- function receiveInstantiatedSource(output) {
- receiveInstance(output["instance"])
+function createWasm () {
+ const info = {
+ a: asmLibraryArg
}
- function instantiateArrayBuffer(receiver) {
- return getBinaryPromise().then(function (binary) {
- return WebAssembly.instantiate(binary, info)
- }).then(receiver, function (reason) {
- err("failed to asynchronously prepare wasm: " + reason);
- abort(reason)
- })
+ function receiveInstance (instance, module) {
+ const exports = instance.exports
+ Module.asm = exports
+ removeRunDependency('wasm-instantiate')
+ }
+ addRunDependency('wasm-instantiate')
+
+ function receiveInstantiatedSource (output) {
+ receiveInstance(output.instance)
}
- function instantiateAsync() {
- if (!wasmBinary && typeof WebAssembly.instantiateStreaming === "function" && !isDataURI(wasmBinaryFile) && !isFileURI(wasmBinaryFile) && typeof fetch === "function") {
+ function instantiateArrayBuffer (receiver) {
+ return getBinaryPromise()
+ .then(function (binary) {
+ return WebAssembly.instantiate(binary, info)
+ })
+ .then(receiver, function (reason) {
+ err('failed to asynchronously prepare wasm: ' + reason)
+ abort(reason)
+ })
+ }
+
+ function instantiateAsync () {
+ if (
+ !wasmBinary &&
+ typeof WebAssembly.instantiateStreaming === 'function' &&
+ !isDataURI(wasmBinaryFile) &&
+ !isFileURI(wasmBinaryFile) &&
+ typeof fetch === 'function'
+ ) {
fetch(wasmBinaryFile, {
- credentials: "same-origin"
+ credentials: 'same-origin'
}).then(function (response) {
- var result = WebAssembly.instantiateStreaming(response, info);
+ const result = WebAssembly.instantiateStreaming(response, info)
return result.then(receiveInstantiatedSource, function (reason) {
- err("wasm streaming compile failed: " + reason);
- err("falling back to ArrayBuffer instantiation");
+ err('wasm streaming compile failed: ' + reason)
+ err('falling back to ArrayBuffer instantiation')
instantiateArrayBuffer(receiveInstantiatedSource)
})
})
@@ -2133,141 +4804,170 @@ function createWasm() {
return instantiateArrayBuffer(receiveInstantiatedSource)
}
}
- if (Module["instantiateWasm"]) {
+ if (Module.instantiateWasm) {
try {
- var exports = Module["instantiateWasm"](info, receiveInstance);
+ const exports = Module.instantiateWasm(info, receiveInstance)
return exports
} catch (e) {
- err("Module.instantiateWasm callback failed with error: " + e);
+ err('Module.instantiateWasm callback failed with error: ' + e)
return false
}
}
- instantiateAsync();
+ instantiateAsync()
return {}
}
-var tempDouble;
-var tempI64;
+let tempDouble
+let tempI64
__ATINIT__.push({
func: function () {
___wasm_call_ctors()
}
-});
+})
-function _emscripten_set_main_loop_timing(mode, value) {
- Browser.mainLoop.timingMode = mode;
- Browser.mainLoop.timingValue = value;
+function _emscripten_set_main_loop_timing (mode, value) {
+ Browser.mainLoop.timingMode = mode
+ Browser.mainLoop.timingValue = value
if (!Browser.mainLoop.func) {
return 1
}
if (mode == 0) {
- Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setTimeout() {
- var timeUntilNextTick = Math.max(0, Browser.mainLoop.tickStartTime + value - _emscripten_get_now()) | 0;
+ Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setTimeout () {
+ const timeUntilNextTick =
+ Math.max(
+ 0,
+ Browser.mainLoop.tickStartTime + value - _emscripten_get_now()
+ ) | 0
setTimeout(Browser.mainLoop.runner, timeUntilNextTick)
- };
- Browser.mainLoop.method = "timeout"
+ }
+ Browser.mainLoop.method = 'timeout'
} else if (mode == 1) {
- Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_rAF() {
+ Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_rAF () {
Browser.requestAnimationFrame(Browser.mainLoop.runner)
- };
- Browser.mainLoop.method = "rAF"
+ }
+ Browser.mainLoop.method = 'rAF'
} else if (mode == 2) {
- if (typeof setImmediate === "undefined") {
- var setImmediates = [];
- var emscriptenMainLoopMessageId = "setimmediate";
- var Browser_setImmediate_messageHandler = function (event) {
- if (event.data === emscriptenMainLoopMessageId || event.data.target === emscriptenMainLoopMessageId) {
- event.stopPropagation();
+ if (typeof setImmediate === 'undefined') {
+ const setImmediates = []
+ const emscriptenMainLoopMessageId = 'setimmediate'
+ const Browser_setImmediate_messageHandler = function (event) {
+ if (
+ event.data === emscriptenMainLoopMessageId ||
+ event.data.target === emscriptenMainLoopMessageId
+ ) {
+ event.stopPropagation()
setImmediates.shift()()
}
- };
- addEventListener("message", Browser_setImmediate_messageHandler, true);
- setImmediate = function Browser_emulated_setImmediate(func) {
- setImmediates.push(func);
+ }
+ addEventListener('message', Browser_setImmediate_messageHandler, true)
+ setImmediate = function Browser_emulated_setImmediate (func) {
+ setImmediates.push(func)
if (ENVIRONMENT_IS_WORKER) {
- if (Module["setImmediates"] === undefined) Module["setImmediates"] = [];
- Module["setImmediates"].push(func);
+ if (Module.setImmediates === undefined) Module.setImmediates = []
+ Module.setImmediates.push(func)
postMessage({
target: emscriptenMainLoopMessageId
})
- } else postMessage(emscriptenMainLoopMessageId, "*")
+ } else postMessage(emscriptenMainLoopMessageId, '*')
}
}
- Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setImmediate() {
+ Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setImmediate () {
setImmediate(Browser.mainLoop.runner)
- };
- Browser.mainLoop.method = "immediate"
+ }
+ Browser.mainLoop.method = 'immediate'
}
return 0
}
-var _emscripten_get_now;
+let _emscripten_get_now
_emscripten_get_now = function () {
return performance.now()
-};
+}
-function _emscripten_set_main_loop(func, fps, simulateInfiniteLoop, arg, noSetTiming) {
- noExitRuntime = true;
- assert(!Browser.mainLoop.func, "emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");
- Browser.mainLoop.func = func;
- Browser.mainLoop.arg = arg;
- var browserIterationFunc;
- if (typeof arg !== "undefined") {
+function _emscripten_set_main_loop (
+ func,
+ fps,
+ simulateInfiniteLoop,
+ arg,
+ noSetTiming
+) {
+ noExitRuntime = true
+ assert(
+ !Browser.mainLoop.func,
+ 'emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.'
+ )
+ Browser.mainLoop.func = func
+ Browser.mainLoop.arg = arg
+ let browserIterationFunc
+ if (typeof arg !== 'undefined') {
browserIterationFunc = function () {
- Module["dynCall_vi"](func, arg)
+ Module.dynCall_vi(func, arg)
}
} else {
browserIterationFunc = function () {
- Module["dynCall_v"](func)
+ Module.dynCall_v(func)
}
}
- var thisMainLoopId = Browser.mainLoop.currentlyRunningMainloop;
- Browser.mainLoop.runner = function Browser_mainLoop_runner() {
- if (ABORT) return;
+ const thisMainLoopId = Browser.mainLoop.currentlyRunningMainloop
+ Browser.mainLoop.runner = function Browser_mainLoop_runner () {
+ if (ABORT) return
if (Browser.mainLoop.queue.length > 0) {
- var start = Date.now();
- var blocker = Browser.mainLoop.queue.shift();
- blocker.func(blocker.arg);
+ const start = Date.now()
+ const blocker = Browser.mainLoop.queue.shift()
+ blocker.func(blocker.arg)
if (Browser.mainLoop.remainingBlockers) {
- var remaining = Browser.mainLoop.remainingBlockers;
- var next = remaining % 1 == 0 ? remaining - 1 : Math.floor(remaining);
+ const remaining = Browser.mainLoop.remainingBlockers
+ let next = remaining % 1 == 0 ? remaining - 1 : Math.floor(remaining)
if (blocker.counted) {
Browser.mainLoop.remainingBlockers = next
} else {
- next = next + .5;
+ next = next + 0.5
Browser.mainLoop.remainingBlockers = (8 * remaining + next) / 9
}
}
- console.log('main loop blocker "' + blocker.name + '" took ' + (Date.now() - start) + " ms");
- Browser.mainLoop.updateStatus();
- if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return;
- setTimeout(Browser.mainLoop.runner, 0);
+ console.log(
+ 'main loop blocker "' +
+ blocker.name +
+ '" took ' +
+ (Date.now() - start) +
+ ' ms'
+ )
+ Browser.mainLoop.updateStatus()
+ if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return
+ setTimeout(Browser.mainLoop.runner, 0)
return
}
- if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return;
- Browser.mainLoop.currentFrameNumber = Browser.mainLoop.currentFrameNumber + 1 | 0;
- if (Browser.mainLoop.timingMode == 1 && Browser.mainLoop.timingValue > 1 && Browser.mainLoop.currentFrameNumber % Browser.mainLoop.timingValue != 0) {
- Browser.mainLoop.scheduler();
+ if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return
+ Browser.mainLoop.currentFrameNumber =
+ (Browser.mainLoop.currentFrameNumber + 1) | 0
+ if (
+ Browser.mainLoop.timingMode == 1 &&
+ Browser.mainLoop.timingValue > 1 &&
+ Browser.mainLoop.currentFrameNumber % Browser.mainLoop.timingValue != 0
+ ) {
+ Browser.mainLoop.scheduler()
return
} else if (Browser.mainLoop.timingMode == 0) {
Browser.mainLoop.tickStartTime = _emscripten_get_now()
}
- Browser.mainLoop.runIter(browserIterationFunc);
- if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return;
- if (typeof SDL === "object" && SDL.audio && SDL.audio.queueNewAudioData) SDL.audio.queueNewAudioData();
+ Browser.mainLoop.runIter(browserIterationFunc)
+ if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return
+ if (typeof SDL === 'object' && SDL.audio && SDL.audio.queueNewAudioData) {
+ SDL.audio.queueNewAudioData()
+ }
Browser.mainLoop.scheduler()
- };
+ }
if (!noSetTiming) {
- if (fps && fps > 0) _emscripten_set_main_loop_timing(0, 1e3 / fps);
- else _emscripten_set_main_loop_timing(1, 1);
+ if (fps && fps > 0) _emscripten_set_main_loop_timing(0, 1e3 / fps)
+ else _emscripten_set_main_loop_timing(1, 1)
Browser.mainLoop.scheduler()
}
if (simulateInfiniteLoop) {
- throw "unwind"
+ throw 'unwind'
}
}
var Browser = {
mainLoop: {
scheduler: null,
- method: "",
+ method: '',
currentlyRunningMainloop: 0,
func: null,
arg: 0,
@@ -2276,39 +4976,41 @@ var Browser = {
currentFrameNumber: 0,
queue: [],
pause: function () {
- Browser.mainLoop.scheduler = null;
+ Browser.mainLoop.scheduler = null
Browser.mainLoop.currentlyRunningMainloop++
},
resume: function () {
- Browser.mainLoop.currentlyRunningMainloop++;
- var timingMode = Browser.mainLoop.timingMode;
- var timingValue = Browser.mainLoop.timingValue;
- var func = Browser.mainLoop.func;
- Browser.mainLoop.func = null;
- _emscripten_set_main_loop(func, 0, false, Browser.mainLoop.arg, true);
- _emscripten_set_main_loop_timing(timingMode, timingValue);
+ Browser.mainLoop.currentlyRunningMainloop++
+ const timingMode = Browser.mainLoop.timingMode
+ const timingValue = Browser.mainLoop.timingValue
+ const func = Browser.mainLoop.func
+ Browser.mainLoop.func = null
+ _emscripten_set_main_loop(func, 0, false, Browser.mainLoop.arg, true)
+ _emscripten_set_main_loop_timing(timingMode, timingValue)
Browser.mainLoop.scheduler()
},
updateStatus: function () {
- if (Module["setStatus"]) {
- var message = Module["statusMessage"] || "Please wait...";
- var remaining = Browser.mainLoop.remainingBlockers;
- var expected = Browser.mainLoop.expectedBlockers;
+ if (Module.setStatus) {
+ const message = Module.statusMessage || 'Please wait...'
+ const remaining = Browser.mainLoop.remainingBlockers
+ const expected = Browser.mainLoop.expectedBlockers
if (remaining) {
if (remaining < expected) {
- Module["setStatus"](message + " (" + (expected - remaining) + "/" + expected + ")")
+ Module.setStatus(
+ message + ' (' + (expected - remaining) + '/' + expected + ')'
+ )
} else {
- Module["setStatus"](message)
+ Module.setStatus(message)
}
} else {
- Module["setStatus"]("")
+ Module.setStatus('')
}
}
},
runIter: function (func) {
- if (ABORT) return;
- if (Module["preMainLoop"]) {
- var preRet = Module["preMainLoop"]();
+ if (ABORT) return
+ if (Module.preMainLoop) {
+ const preRet = Module.preMainLoop()
if (preRet === false) {
return
}
@@ -2319,11 +5021,13 @@ var Browser = {
if (e instanceof ExitStatus) {
return
} else {
- if (e && typeof e === "object" && e.stack) err("exception thrown: " + [e, e.stack]);
+ if (e && typeof e === 'object' && e.stack) {
+ err('exception thrown: ' + [e, e.stack])
+ }
throw e
}
}
- if (Module["postMainLoop"]) Module["postMainLoop"]()
+ if (Module.postMainLoop) Module.postMainLoop()
}
},
isFullscreen: false,
@@ -2331,89 +5035,123 @@ var Browser = {
moduleContextCreatedCallbacks: [],
workers: [],
init: function () {
- if (!Module["preloadPlugins"]) Module["preloadPlugins"] = [];
- if (Browser.initted) return;
- Browser.initted = true;
+ if (!Module.preloadPlugins) Module.preloadPlugins = []
+ if (Browser.initted) return
+ Browser.initted = true
try {
- new Blob;
+ new Blob()
Browser.hasBlobConstructor = true
} catch (e) {
- Browser.hasBlobConstructor = false;
- console.log("warning: no blob constructor, cannot create blobs with mimetypes")
+ Browser.hasBlobConstructor = false
+ console.log(
+ 'warning: no blob constructor, cannot create blobs with mimetypes'
+ )
}
- Browser.BlobBuilder = typeof MozBlobBuilder != "undefined" ? MozBlobBuilder : typeof WebKitBlobBuilder != "undefined" ? WebKitBlobBuilder : !Browser.hasBlobConstructor ? console.log("warning: no BlobBuilder") : null;
- Browser.URLObject = typeof window != "undefined" ? window.URL ? window.URL : window.webkitURL : undefined;
- if (!Module.noImageDecoding && typeof Browser.URLObject === "undefined") {
- console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available.");
+ Browser.BlobBuilder =
+ typeof MozBlobBuilder !== 'undefined'
+ ? MozBlobBuilder
+ : typeof WebKitBlobBuilder !== 'undefined'
+ ? WebKitBlobBuilder
+ : !Browser.hasBlobConstructor
+ ? console.log('warning: no BlobBuilder')
+ : null
+ Browser.URLObject =
+ typeof window !== 'undefined'
+ ? window.URL
+ ? window.URL
+ : window.webkitURL
+ : undefined
+ if (!Module.noImageDecoding && typeof Browser.URLObject === 'undefined') {
+ console.log(
+ 'warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available.'
+ )
Module.noImageDecoding = true
}
- var imagePlugin = {};
- imagePlugin["canHandle"] = function imagePlugin_canHandle(name) {
+ const imagePlugin = {}
+ imagePlugin.canHandle = function imagePlugin_canHandle (name) {
return !Module.noImageDecoding && /\.(jpg|jpeg|png|bmp)$/i.test(name)
- };
- imagePlugin["handle"] = function imagePlugin_handle(byteArray, name, onload, onerror) {
- var b = null;
+ }
+ imagePlugin.handle = function imagePlugin_handle (
+ byteArray,
+ name,
+ onload,
+ onerror
+ ) {
+ let b = null
if (Browser.hasBlobConstructor) {
try {
b = new Blob([byteArray], {
type: Browser.getMimetype(name)
- });
+ })
if (b.size !== byteArray.length) {
b = new Blob([new Uint8Array(byteArray).buffer], {
type: Browser.getMimetype(name)
})
}
} catch (e) {
- warnOnce("Blob constructor present but fails: " + e + "; falling back to blob builder")
+ warnOnce(
+ 'Blob constructor present but fails: ' +
+ e +
+ '; falling back to blob builder'
+ )
}
}
if (!b) {
- var bb = new Browser.BlobBuilder;
- bb.append(new Uint8Array(byteArray).buffer);
+ const bb = new Browser.BlobBuilder()
+ bb.append(new Uint8Array(byteArray).buffer)
b = bb.getBlob()
}
- var url = Browser.URLObject.createObjectURL(b);
- var img = new Image;
- img.onload = function img_onload() {
- assert(img.complete, "Image " + name + " could not be decoded");
- var canvas = document.createElement("canvas");
- canvas.width = img.width;
- canvas.height = img.height;
- var ctx = canvas.getContext("2d");
- ctx.drawImage(img, 0, 0);
- Module["preloadedImages"][name] = canvas;
- Browser.URLObject.revokeObjectURL(url);
+ const url = Browser.URLObject.createObjectURL(b)
+ const img = new Image()
+ img.onload = function img_onload () {
+ assert(img.complete, 'Image ' + name + ' could not be decoded')
+ const canvas = document.createElement('canvas')
+ canvas.width = img.width
+ canvas.height = img.height
+ const ctx = canvas.getContext('2d')
+ ctx.drawImage(img, 0, 0)
+ Module.preloadedImages[name] = canvas
+ Browser.URLObject.revokeObjectURL(url)
if (onload) onload(byteArray)
- };
- img.onerror = function img_onerror(event) {
- console.log("Image " + url + " could not be decoded");
+ }
+ img.onerror = function img_onerror (event) {
+ console.log('Image ' + url + ' could not be decoded')
if (onerror) onerror()
- };
- img.src = url
- };
- Module["preloadPlugins"].push(imagePlugin);
- var audioPlugin = {};
- audioPlugin["canHandle"] = function audioPlugin_canHandle(name) {
- return !Module.noAudioDecoding && name.substr(-4) in {
- ".ogg": 1,
- ".wav": 1,
- ".mp3": 1
}
- };
- audioPlugin["handle"] = function audioPlugin_handle(byteArray, name, onload, onerror) {
- var done = false;
+ img.src = url
+ }
+ Module.preloadPlugins.push(imagePlugin)
+ const audioPlugin = {}
+ audioPlugin.canHandle = function audioPlugin_canHandle (name) {
+ return (
+ !Module.noAudioDecoding &&
+ name.substr(-4) in
+ {
+ '.ogg': 1,
+ '.wav': 1,
+ '.mp3': 1
+ }
+ )
+ }
+ audioPlugin.handle = function audioPlugin_handle (
+ byteArray,
+ name,
+ onload,
+ onerror
+ ) {
+ let done = false
- function finish(audio) {
- if (done) return;
- done = true;
- Module["preloadedAudios"][name] = audio;
+ function finish (audio) {
+ if (done) return
+ done = true
+ Module.preloadedAudios[name] = audio
if (onload) onload(byteArray)
}
- function fail() {
- if (done) return;
- done = true;
- Module["preloadedAudios"][name] = new Audio;
+ function fail () {
+ if (done) return
+ done = true
+ Module.preloadedAudios[name] = new Audio()
if (onerror) onerror()
}
if (Browser.hasBlobConstructor) {
@@ -2424,107 +5162,153 @@ var Browser = {
} catch (e) {
return fail()
}
- var url = Browser.URLObject.createObjectURL(b);
- var audio = new Audio;
- audio.addEventListener("canplaythrough", function () {
- finish(audio)
- }, false);
- audio.onerror = function audio_onerror(event) {
- if (done) return;
- console.log("warning: browser could not fully decode audio " + name + ", trying slower base64 approach");
+ const url = Browser.URLObject.createObjectURL(b)
+ const audio = new Audio()
+ audio.addEventListener(
+ 'canplaythrough',
+ function () {
+ finish(audio)
+ },
+ false
+ )
+ audio.onerror = function audio_onerror (event) {
+ if (done) return
+ console.log(
+ 'warning: browser could not fully decode audio ' +
+ name +
+ ', trying slower base64 approach'
+ )
- function encode64(data) {
- var BASE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
- var PAD = "=";
- var ret = "";
- var leftchar = 0;
- var leftbits = 0;
- for (var i = 0; i < data.length; i++) {
- leftchar = leftchar << 8 | data[i];
- leftbits += 8;
+ function encode64 (data) {
+ const BASE =
+ 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
+ const PAD = '='
+ let ret = ''
+ let leftchar = 0
+ let leftbits = 0
+ for (let i = 0; i < data.length; i++) {
+ leftchar = (leftchar << 8) | data[i]
+ leftbits += 8
while (leftbits >= 6) {
- var curr = leftchar >> leftbits - 6 & 63;
- leftbits -= 6;
+ const curr = (leftchar >> (leftbits - 6)) & 63
+ leftbits -= 6
ret += BASE[curr]
}
}
if (leftbits == 2) {
- ret += BASE[(leftchar & 3) << 4];
+ ret += BASE[(leftchar & 3) << 4]
ret += PAD + PAD
} else if (leftbits == 4) {
- ret += BASE[(leftchar & 15) << 2];
+ ret += BASE[(leftchar & 15) << 2]
ret += PAD
}
return ret
}
- audio.src = "data:audio/x-" + name.substr(-3) + ";base64," + encode64(byteArray);
+ audio.src =
+ 'data:audio/x-' + name.substr(-3) + ';base64,' + encode64(byteArray)
finish(audio)
- };
- audio.src = url;
+ }
+ audio.src = url
Browser.safeSetTimeout(function () {
finish(audio)
}, 1e4)
} else {
return fail()
}
- };
- Module["preloadPlugins"].push(audioPlugin);
-
- function pointerLockChange() {
- Browser.pointerLock = document["pointerLockElement"] === Module["canvas"] || document["mozPointerLockElement"] === Module["canvas"] || document["webkitPointerLockElement"] === Module["canvas"] || document["msPointerLockElement"] === Module["canvas"]
}
- var canvas = Module["canvas"];
+ Module.preloadPlugins.push(audioPlugin)
+
+ function pointerLockChange () {
+ Browser.pointerLock =
+ document.pointerLockElement === Module.canvas ||
+ document.mozPointerLockElement === Module.canvas ||
+ document.webkitPointerLockElement === Module.canvas ||
+ document.msPointerLockElement === Module.canvas
+ }
+ const canvas = Module.canvas
if (canvas) {
- canvas.requestPointerLock = canvas["requestPointerLock"] || canvas["mozRequestPointerLock"] || canvas["webkitRequestPointerLock"] || canvas["msRequestPointerLock"] || function () {};
- canvas.exitPointerLock = document["exitPointerLock"] || document["mozExitPointerLock"] || document["webkitExitPointerLock"] || document["msExitPointerLock"] || function () {};
- canvas.exitPointerLock = canvas.exitPointerLock.bind(document);
- document.addEventListener("pointerlockchange", pointerLockChange, false);
- document.addEventListener("mozpointerlockchange", pointerLockChange, false);
- document.addEventListener("webkitpointerlockchange", pointerLockChange, false);
- document.addEventListener("mspointerlockchange", pointerLockChange, false);
- if (Module["elementPointerLock"]) {
- canvas.addEventListener("click", function (ev) {
- if (!Browser.pointerLock && Module["canvas"].requestPointerLock) {
- Module["canvas"].requestPointerLock();
- ev.preventDefault()
- }
- }, false)
+ canvas.requestPointerLock =
+ canvas.requestPointerLock ||
+ canvas.mozRequestPointerLock ||
+ canvas.webkitRequestPointerLock ||
+ canvas.msRequestPointerLock ||
+ function () {}
+ canvas.exitPointerLock =
+ document.exitPointerLock ||
+ document.mozExitPointerLock ||
+ document.webkitExitPointerLock ||
+ document.msExitPointerLock ||
+ function () {}
+ canvas.exitPointerLock = canvas.exitPointerLock.bind(document)
+ document.addEventListener('pointerlockchange', pointerLockChange, false)
+ document.addEventListener(
+ 'mozpointerlockchange',
+ pointerLockChange,
+ false
+ )
+ document.addEventListener(
+ 'webkitpointerlockchange',
+ pointerLockChange,
+ false
+ )
+ document.addEventListener('mspointerlockchange', pointerLockChange, false)
+ if (Module.elementPointerLock) {
+ canvas.addEventListener(
+ 'click',
+ function (ev) {
+ if (!Browser.pointerLock && Module.canvas.requestPointerLock) {
+ Module.canvas.requestPointerLock()
+ ev.preventDefault()
+ }
+ },
+ false
+ )
}
}
},
- createContext: function (canvas, useWebGL, setInModule, webGLContextAttributes) {
- if (useWebGL && Module.ctx && canvas == Module.canvas) return Module.ctx;
- var ctx;
- var contextHandle;
+ createContext: function (
+ canvas,
+ useWebGL,
+ setInModule,
+ webGLContextAttributes
+ ) {
+ if (useWebGL && Module.ctx && canvas == Module.canvas) return Module.ctx
+ let ctx
+ let contextHandle
if (useWebGL) {
- var contextAttributes = {
+ const contextAttributes = {
antialias: false,
alpha: false,
majorVersion: 1
- };
+ }
if (webGLContextAttributes) {
- for (var attribute in webGLContextAttributes) {
+ for (const attribute in webGLContextAttributes) {
contextAttributes[attribute] = webGLContextAttributes[attribute]
}
}
- if (typeof GL !== "undefined") {
- contextHandle = GL.createContext(canvas, contextAttributes);
+ if (typeof GL !== 'undefined') {
+ contextHandle = GL.createContext(canvas, contextAttributes)
if (contextHandle) {
ctx = GL.getContext(contextHandle).GLctx
}
}
} else {
- ctx = canvas.getContext("2d")
+ ctx = canvas.getContext('2d')
}
- if (!ctx) return null;
+ if (!ctx) return null
if (setInModule) {
- if (!useWebGL) assert(typeof GLctx === "undefined", "cannot set in module if GLctx is used, but we are a non-GL context that would replace it");
- Module.ctx = ctx;
- if (useWebGL) GL.makeContextCurrent(contextHandle);
- Module.useWebGL = useWebGL;
+ if (!useWebGL) {
+ assert(
+ typeof GLctx === 'undefined',
+ 'cannot set in module if GLctx is used, but we are a non-GL context that would replace it'
+ )
+ }
+ Module.ctx = ctx
+ if (useWebGL) GL.makeContextCurrent(contextHandle)
+ Module.useWebGL = useWebGL
Browser.moduleContextCreatedCallbacks.forEach(function (callback) {
callback()
- });
+ })
Browser.init()
}
return ctx
@@ -2534,64 +5318,95 @@ var Browser = {
lockPointer: undefined,
resizeCanvas: undefined,
requestFullscreen: function (lockPointer, resizeCanvas) {
- Browser.lockPointer = lockPointer;
- Browser.resizeCanvas = resizeCanvas;
- if (typeof Browser.lockPointer === "undefined") Browser.lockPointer = true;
- if (typeof Browser.resizeCanvas === "undefined") Browser.resizeCanvas = false;
- var canvas = Module["canvas"];
+ Browser.lockPointer = lockPointer
+ Browser.resizeCanvas = resizeCanvas
+ if (typeof Browser.lockPointer === 'undefined') Browser.lockPointer = true
+ if (typeof Browser.resizeCanvas === 'undefined') {
+ Browser.resizeCanvas = false
+ }
+ const canvas = Module.canvas
- function fullscreenChange() {
- Browser.isFullscreen = false;
- var canvasContainer = canvas.parentNode;
- if ((document["fullscreenElement"] || document["mozFullScreenElement"] || document["msFullscreenElement"] || document["webkitFullscreenElement"] || document["webkitCurrentFullScreenElement"]) === canvasContainer) {
- canvas.exitFullscreen = Browser.exitFullscreen;
- if (Browser.lockPointer) canvas.requestPointerLock();
- Browser.isFullscreen = true;
+ function fullscreenChange () {
+ Browser.isFullscreen = false
+ const canvasContainer = canvas.parentNode
+ if (
+ (document.fullscreenElement ||
+ document.mozFullScreenElement ||
+ document.msFullscreenElement ||
+ document.webkitFullscreenElement ||
+ document.webkitCurrentFullScreenElement) === canvasContainer
+ ) {
+ canvas.exitFullscreen = Browser.exitFullscreen
+ if (Browser.lockPointer) canvas.requestPointerLock()
+ Browser.isFullscreen = true
if (Browser.resizeCanvas) {
Browser.setFullscreenCanvasSize()
} else {
Browser.updateCanvasDimensions(canvas)
}
} else {
- canvasContainer.parentNode.insertBefore(canvas, canvasContainer);
- canvasContainer.parentNode.removeChild(canvasContainer);
+ canvasContainer.parentNode.insertBefore(canvas, canvasContainer)
+ canvasContainer.parentNode.removeChild(canvasContainer)
if (Browser.resizeCanvas) {
Browser.setWindowedCanvasSize()
} else {
Browser.updateCanvasDimensions(canvas)
}
}
- if (Module["onFullScreen"]) Module["onFullScreen"](Browser.isFullscreen);
- if (Module["onFullscreen"]) Module["onFullscreen"](Browser.isFullscreen)
+ if (Module.onFullScreen) Module.onFullScreen(Browser.isFullscreen)
+ if (Module.onFullscreen) Module.onFullscreen(Browser.isFullscreen)
}
if (!Browser.fullscreenHandlersInstalled) {
- Browser.fullscreenHandlersInstalled = true;
- document.addEventListener("fullscreenchange", fullscreenChange, false);
- document.addEventListener("mozfullscreenchange", fullscreenChange, false);
- document.addEventListener("webkitfullscreenchange", fullscreenChange, false);
- document.addEventListener("MSFullscreenChange", fullscreenChange, false)
+ Browser.fullscreenHandlersInstalled = true
+ document.addEventListener('fullscreenchange', fullscreenChange, false)
+ document.addEventListener('mozfullscreenchange', fullscreenChange, false)
+ document.addEventListener(
+ 'webkitfullscreenchange',
+ fullscreenChange,
+ false
+ )
+ document.addEventListener('MSFullscreenChange', fullscreenChange, false)
}
- var canvasContainer = document.createElement("div");
- canvas.parentNode.insertBefore(canvasContainer, canvas);
- canvasContainer.appendChild(canvas);
- canvasContainer.requestFullscreen = canvasContainer["requestFullscreen"] || canvasContainer["mozRequestFullScreen"] || canvasContainer["msRequestFullscreen"] || (canvasContainer["webkitRequestFullscreen"] ? function () {
- canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])
- } : null) || (canvasContainer["webkitRequestFullScreen"] ? function () {
- canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])
- } : null);
+ const canvasContainer = document.createElement('div')
+ canvas.parentNode.insertBefore(canvasContainer, canvas)
+ canvasContainer.appendChild(canvas)
+ canvasContainer.requestFullscreen =
+ canvasContainer.requestFullscreen ||
+ canvasContainer.mozRequestFullScreen ||
+ canvasContainer.msRequestFullscreen ||
+ (canvasContainer.webkitRequestFullscreen
+ ? function () {
+ canvasContainer.webkitRequestFullscreen(
+ Element.ALLOW_KEYBOARD_INPUT
+ )
+ }
+ : null) ||
+ (canvasContainer.webkitRequestFullScreen
+ ? function () {
+ canvasContainer.webkitRequestFullScreen(
+ Element.ALLOW_KEYBOARD_INPUT
+ )
+ }
+ : null)
canvasContainer.requestFullscreen()
},
exitFullscreen: function () {
if (!Browser.isFullscreen) {
return false
}
- var CFS = document["exitFullscreen"] || document["cancelFullScreen"] || document["mozCancelFullScreen"] || document["msExitFullscreen"] || document["webkitCancelFullScreen"] || function () {};
- CFS.apply(document, []);
+ const CFS =
+ document.exitFullscreen ||
+ document.cancelFullScreen ||
+ document.mozCancelFullScreen ||
+ document.msExitFullscreen ||
+ document.webkitCancelFullScreen ||
+ function () {}
+ CFS.apply(document, [])
return true
},
nextRAF: 0,
fakeRequestAnimationFrame: function (func) {
- var now = Date.now();
+ const now = Date.now()
if (Browser.nextRAF === 0) {
Browser.nextRAF = now + 1e3 / 60
} else {
@@ -2599,15 +5414,15 @@ var Browser = {
Browser.nextRAF += 1e3 / 60
}
}
- var delay = Math.max(Browser.nextRAF - now, 0);
+ const delay = Math.max(Browser.nextRAF - now, 0)
setTimeout(func, delay)
},
requestAnimationFrame: function (func) {
- if (typeof requestAnimationFrame === "function") {
- requestAnimationFrame(func);
+ if (typeof requestAnimationFrame === 'function') {
+ requestAnimationFrame(func)
return
}
- var RAF = Browser.fakeRequestAnimationFrame;
+ const RAF = Browser.fakeRequestAnimationFrame
RAF(func)
},
safeCallback: function (func) {
@@ -2621,10 +5436,10 @@ var Browser = {
Browser.allowAsyncCallbacks = false
},
resumeAsyncCallbacks: function () {
- Browser.allowAsyncCallbacks = true;
+ Browser.allowAsyncCallbacks = true
if (Browser.queuedAsyncCallbacks.length > 0) {
- var callbacks = Browser.queuedAsyncCallbacks;
- Browser.queuedAsyncCallbacks = [];
+ const callbacks = Browser.queuedAsyncCallbacks
+ Browser.queuedAsyncCallbacks = []
callbacks.forEach(function (func) {
func()
})
@@ -2632,7 +5447,7 @@ var Browser = {
},
safeRequestAnimationFrame: function (func) {
return Browser.requestAnimationFrame(function () {
- if (ABORT) return;
+ if (ABORT) return
if (Browser.allowAsyncCallbacks) {
func()
} else {
@@ -2641,9 +5456,9 @@ var Browser = {
})
},
safeSetTimeout: function (func, timeout) {
- noExitRuntime = true;
+ noExitRuntime = true
return setTimeout(function () {
- if (ABORT) return;
+ if (ABORT) return
if (Browser.allowAsyncCallbacks) {
func()
} else {
@@ -2652,9 +5467,9 @@ var Browser = {
}, timeout)
},
safeSetInterval: function (func, timeout) {
- noExitRuntime = true;
+ noExitRuntime = true
return setInterval(function () {
- if (ABORT) return;
+ if (ABORT) return
if (Browser.allowAsyncCallbacks) {
func()
}
@@ -2662,54 +5477,54 @@ var Browser = {
},
getMimetype: function (name) {
return {
- "jpg": "image/jpeg",
- "jpeg": "image/jpeg",
- "png": "image/png",
- "bmp": "image/bmp",
- "ogg": "audio/ogg",
- "wav": "audio/wav",
- "mp3": "audio/mpeg"
- } [name.substr(name.lastIndexOf(".") + 1)]
+ jpg: 'image/jpeg',
+ jpeg: 'image/jpeg',
+ png: 'image/png',
+ bmp: 'image/bmp',
+ ogg: 'audio/ogg',
+ wav: 'audio/wav',
+ mp3: 'audio/mpeg'
+ }[name.substr(name.lastIndexOf('.') + 1)]
},
getUserMedia: function (func) {
if (!window.getUserMedia) {
- window.getUserMedia = navigator["getUserMedia"] || navigator["mozGetUserMedia"]
+ window.getUserMedia = navigator.getUserMedia || navigator.mozGetUserMedia
}
window.getUserMedia(func)
},
getMovementX: function (event) {
- return event["movementX"] || event["mozMovementX"] || event["webkitMovementX"] || 0
+ return event.movementX || event.mozMovementX || event.webkitMovementX || 0
},
getMovementY: function (event) {
- return event["movementY"] || event["mozMovementY"] || event["webkitMovementY"] || 0
+ return event.movementY || event.mozMovementY || event.webkitMovementY || 0
},
getMouseWheelDelta: function (event) {
- var delta = 0;
+ let delta = 0
switch (event.type) {
- case "DOMMouseScroll":
- delta = event.detail / 3;
- break;
- case "mousewheel":
- delta = event.wheelDelta / 120;
- break;
- case "wheel":
- delta = event.deltaY;
+ case 'DOMMouseScroll':
+ delta = event.detail / 3
+ break
+ case 'mousewheel':
+ delta = event.wheelDelta / 120
+ break
+ case 'wheel':
+ delta = event.deltaY
switch (event.deltaMode) {
case 0:
- delta /= 100;
- break;
+ delta /= 100
+ break
case 1:
- delta /= 3;
- break;
+ delta /= 3
+ break
case 2:
- delta *= 80;
- break;
+ delta *= 80
+ break
default:
- throw "unrecognized mouse wheel delta mode: " + event.deltaMode
+ throw 'unrecognized mouse wheel delta mode: ' + event.deltaMode
}
- break;
+ break
default:
- throw "unrecognized mouse wheel event: " + event.type
+ throw 'unrecognized mouse wheel event: ' + event.type
}
return delta
},
@@ -2721,145 +5536,169 @@ var Browser = {
lastTouches: {},
calculateMouseEvent: function (event) {
if (Browser.pointerLock) {
- if (event.type != "mousemove" && "mozMovementX" in event) {
+ if (event.type != 'mousemove' && 'mozMovementX' in event) {
Browser.mouseMovementX = Browser.mouseMovementY = 0
} else {
- Browser.mouseMovementX = Browser.getMovementX(event);
+ Browser.mouseMovementX = Browser.getMovementX(event)
Browser.mouseMovementY = Browser.getMovementY(event)
}
- if (typeof SDL != "undefined") {
- Browser.mouseX = SDL.mouseX + Browser.mouseMovementX;
+ if (typeof SDL !== 'undefined') {
+ Browser.mouseX = SDL.mouseX + Browser.mouseMovementX
Browser.mouseY = SDL.mouseY + Browser.mouseMovementY
} else {
- Browser.mouseX += Browser.mouseMovementX;
+ Browser.mouseX += Browser.mouseMovementX
Browser.mouseY += Browser.mouseMovementY
}
} else {
- var rect = Module["canvas"].getBoundingClientRect();
- var cw = Module["canvas"].width;
- var ch = Module["canvas"].height;
- var scrollX = typeof window.scrollX !== "undefined" ? window.scrollX : window.pageXOffset;
- var scrollY = typeof window.scrollY !== "undefined" ? window.scrollY : window.pageYOffset;
- if (event.type === "touchstart" || event.type === "touchend" || event.type === "touchmove") {
- var touch = event.touch;
+ const rect = Module.canvas.getBoundingClientRect()
+ const cw = Module.canvas.width
+ const ch = Module.canvas.height
+ const scrollX =
+ typeof window.scrollX !== 'undefined'
+ ? window.scrollX
+ : window.pageXOffset
+ const scrollY =
+ typeof window.scrollY !== 'undefined'
+ ? window.scrollY
+ : window.pageYOffset
+ if (
+ event.type === 'touchstart' ||
+ event.type === 'touchend' ||
+ event.type === 'touchmove'
+ ) {
+ const touch = event.touch
if (touch === undefined) {
return
}
- var adjustedX = touch.pageX - (scrollX + rect.left);
- var adjustedY = touch.pageY - (scrollY + rect.top);
- adjustedX = adjustedX * (cw / rect.width);
- adjustedY = adjustedY * (ch / rect.height);
- var coords = {
+ let adjustedX = touch.pageX - (scrollX + rect.left)
+ let adjustedY = touch.pageY - (scrollY + rect.top)
+ adjustedX = adjustedX * (cw / rect.width)
+ adjustedY = adjustedY * (ch / rect.height)
+ const coords = {
x: adjustedX,
y: adjustedY
- };
- if (event.type === "touchstart") {
- Browser.lastTouches[touch.identifier] = coords;
+ }
+ if (event.type === 'touchstart') {
+ Browser.lastTouches[touch.identifier] = coords
Browser.touches[touch.identifier] = coords
- } else if (event.type === "touchend" || event.type === "touchmove") {
- var last = Browser.touches[touch.identifier];
- if (!last) last = coords;
- Browser.lastTouches[touch.identifier] = last;
+ } else if (event.type === 'touchend' || event.type === 'touchmove') {
+ let last = Browser.touches[touch.identifier]
+ if (!last) last = coords
+ Browser.lastTouches[touch.identifier] = last
Browser.touches[touch.identifier] = coords
}
return
}
- var x = event.pageX - (scrollX + rect.left);
- var y = event.pageY - (scrollY + rect.top);
- x = x * (cw / rect.width);
- y = y * (ch / rect.height);
- Browser.mouseMovementX = x - Browser.mouseX;
- Browser.mouseMovementY = y - Browser.mouseY;
- Browser.mouseX = x;
+ let x = event.pageX - (scrollX + rect.left)
+ let y = event.pageY - (scrollY + rect.top)
+ x = x * (cw / rect.width)
+ y = y * (ch / rect.height)
+ Browser.mouseMovementX = x - Browser.mouseX
+ Browser.mouseMovementY = y - Browser.mouseY
+ Browser.mouseX = x
Browser.mouseY = y
}
},
asyncLoad: function (url, onload, onerror, noRunDep) {
- var dep = !noRunDep ? getUniqueRunDependency("al " + url) : "";
- readAsync(url, function (arrayBuffer) {
- assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).');
- onload(new Uint8Array(arrayBuffer));
- if (dep) removeRunDependency(dep)
- }, function (event) {
- if (onerror) {
- onerror()
- } else {
- throw 'Loading data file "' + url + '" failed.'
+ const dep = !noRunDep ? getUniqueRunDependency('al ' + url) : ''
+ readAsync(
+ url,
+ function (arrayBuffer) {
+ assert(
+ arrayBuffer,
+ 'Loading data file "' + url + '" failed (no arrayBuffer).'
+ )
+ onload(new Uint8Array(arrayBuffer))
+ if (dep) removeRunDependency(dep)
+ },
+ function (event) {
+ if (onerror) {
+ onerror()
+ } else {
+ throw 'Loading data file "' + url + '" failed.'
+ }
}
- });
+ )
if (dep) addRunDependency(dep)
},
resizeListeners: [],
updateResizeListeners: function () {
- var canvas = Module["canvas"];
+ const canvas = Module.canvas
Browser.resizeListeners.forEach(function (listener) {
listener(canvas.width, canvas.height)
})
},
setCanvasSize: function (width, height, noUpdates) {
- var canvas = Module["canvas"];
- Browser.updateCanvasDimensions(canvas, width, height);
+ const canvas = Module.canvas
+ Browser.updateCanvasDimensions(canvas, width, height)
if (!noUpdates) Browser.updateResizeListeners()
},
windowedWidth: 0,
windowedHeight: 0,
setFullscreenCanvasSize: function () {
- if (typeof SDL != "undefined") {
- var flags = HEAPU32[SDL.screen >> 2];
- flags = flags | 8388608;
+ if (typeof SDL !== 'undefined') {
+ let flags = HEAPU32[SDL.screen >> 2]
+ flags = flags | 8388608
HEAP32[SDL.screen >> 2] = flags
}
- Browser.updateCanvasDimensions(Module["canvas"]);
+ Browser.updateCanvasDimensions(Module.canvas)
Browser.updateResizeListeners()
},
setWindowedCanvasSize: function () {
- if (typeof SDL != "undefined") {
- var flags = HEAPU32[SDL.screen >> 2];
- flags = flags & ~8388608;
+ if (typeof SDL !== 'undefined') {
+ let flags = HEAPU32[SDL.screen >> 2]
+ flags = flags & ~8388608
HEAP32[SDL.screen >> 2] = flags
}
- Browser.updateCanvasDimensions(Module["canvas"]);
+ Browser.updateCanvasDimensions(Module.canvas)
Browser.updateResizeListeners()
},
updateCanvasDimensions: function (canvas, wNative, hNative) {
if (wNative && hNative) {
- canvas.widthNative = wNative;
+ canvas.widthNative = wNative
canvas.heightNative = hNative
} else {
- wNative = canvas.widthNative;
+ wNative = canvas.widthNative
hNative = canvas.heightNative
}
- var w = wNative;
- var h = hNative;
- if (Module["forcedAspectRatio"] && Module["forcedAspectRatio"] > 0) {
- if (w / h < Module["forcedAspectRatio"]) {
- w = Math.round(h * Module["forcedAspectRatio"])
+ let w = wNative
+ let h = hNative
+ if (Module.forcedAspectRatio && Module.forcedAspectRatio > 0) {
+ if (w / h < Module.forcedAspectRatio) {
+ w = Math.round(h * Module.forcedAspectRatio)
} else {
- h = Math.round(w / Module["forcedAspectRatio"])
+ h = Math.round(w / Module.forcedAspectRatio)
}
}
- if ((document["fullscreenElement"] || document["mozFullScreenElement"] || document["msFullscreenElement"] || document["webkitFullscreenElement"] || document["webkitCurrentFullScreenElement"]) === canvas.parentNode && typeof screen != "undefined") {
- var factor = Math.min(screen.width / w, screen.height / h);
- w = Math.round(w * factor);
+ if (
+ (document.fullscreenElement ||
+ document.mozFullScreenElement ||
+ document.msFullscreenElement ||
+ document.webkitFullscreenElement ||
+ document.webkitCurrentFullScreenElement) === canvas.parentNode &&
+ typeof screen !== 'undefined'
+ ) {
+ const factor = Math.min(screen.width / w, screen.height / h)
+ w = Math.round(w * factor)
h = Math.round(h * factor)
}
if (Browser.resizeCanvas) {
- if (canvas.width != w) canvas.width = w;
- if (canvas.height != h) canvas.height = h;
- if (typeof canvas.style != "undefined") {
- canvas.style.removeProperty("width");
- canvas.style.removeProperty("height")
+ if (canvas.width != w) canvas.width = w
+ if (canvas.height != h) canvas.height = h
+ if (typeof canvas.style !== 'undefined') {
+ canvas.style.removeProperty('width')
+ canvas.style.removeProperty('height')
}
} else {
- if (canvas.width != wNative) canvas.width = wNative;
- if (canvas.height != hNative) canvas.height = hNative;
- if (typeof canvas.style != "undefined") {
+ if (canvas.width != wNative) canvas.width = wNative
+ if (canvas.height != hNative) canvas.height = hNative
+ if (typeof canvas.style !== 'undefined') {
if (w != wNative || h != hNative) {
- canvas.style.setProperty("width", w + "px", "important");
- canvas.style.setProperty("height", h + "px", "important")
+ canvas.style.setProperty('width', w + 'px', 'important')
+ canvas.style.setProperty('height', h + 'px', 'important')
} else {
- canvas.style.removeProperty("width");
- canvas.style.removeProperty("height")
+ canvas.style.removeProperty('width')
+ canvas.style.removeProperty('height')
}
}
}
@@ -2867,124 +5706,139 @@ var Browser = {
wgetRequests: {},
nextWgetRequestHandle: 0,
getNextWgetRequestHandle: function () {
- var handle = Browser.nextWgetRequestHandle;
- Browser.nextWgetRequestHandle++;
+ const handle = Browser.nextWgetRequestHandle
+ Browser.nextWgetRequestHandle++
return handle
}
-};
+}
-function demangle(func) {
+function demangle (func) {
return func
}
-function demangleAll(text) {
- var regex = /\b_Z[\w\d_]+/g;
+function demangleAll (text) {
+ const regex = /\b_Z[\w\d_]+/g
return text.replace(regex, function (x) {
- var y = demangle(x);
- return x === y ? x : y + " [" + x + "]"
+ const y = demangle(x)
+ return x === y ? x : y + ' [' + x + ']'
})
}
-function jsStackTrace() {
- var err = new Error;
+function jsStackTrace () {
+ let err = new Error()
if (!err.stack) {
try {
- throw new Error
+ throw new Error()
} catch (e) {
err = e
}
if (!err.stack) {
- return "(no stack trace available)"
+ return '(no stack trace available)'
}
}
return err.stack.toString()
}
-function stackTrace() {
- var js = jsStackTrace();
- if (Module["extraStackTrace"]) js += "\n" + Module["extraStackTrace"]();
+function stackTrace () {
+ let js = jsStackTrace()
+ if (Module.extraStackTrace) js += '\n' + Module.extraStackTrace()
return demangleAll(js)
}
-function ___assert_fail(condition, filename, line, func) {
- abort("Assertion failed: " + UTF8ToString(condition) + ", at: " + [filename ? UTF8ToString(filename) : "unknown filename", line, func ? UTF8ToString(func) : "unknown function"])
+function ___assert_fail (condition, filename, line, func) {
+ abort(
+ 'Assertion failed: ' +
+ UTF8ToString(condition) +
+ ', at: ' +
+ [
+ filename ? UTF8ToString(filename) : 'unknown filename',
+ line,
+ func ? UTF8ToString(func) : 'unknown function'
+ ]
+ )
}
-var _emscripten_get_now_is_monotonic = true;
+const _emscripten_get_now_is_monotonic = true
-function setErrNo(value) {
- HEAP32[___errno_location() >> 2] = value;
+function setErrNo (value) {
+ HEAP32[___errno_location() >> 2] = value
return value
}
-function _clock_gettime(clk_id, tp) {
- var now;
+function _clock_gettime (clk_id, tp) {
+ let now
if (clk_id === 0) {
now = Date.now()
- } else if ((clk_id === 1 || clk_id === 4) && _emscripten_get_now_is_monotonic) {
+ } else if (
+ (clk_id === 1 || clk_id === 4) &&
+ _emscripten_get_now_is_monotonic
+ ) {
now = _emscripten_get_now()
} else {
- setErrNo(28);
+ setErrNo(28)
return -1
}
- HEAP32[tp >> 2] = now / 1e3 | 0;
- HEAP32[tp + 4 >> 2] = now % 1e3 * 1e3 * 1e3 | 0;
+ HEAP32[tp >> 2] = (now / 1e3) | 0
+ HEAP32[(tp + 4) >> 2] = ((now % 1e3) * 1e3 * 1e3) | 0
return 0
}
-function ___clock_gettime(a0, a1) {
+function ___clock_gettime (a0, a1) {
return _clock_gettime(a0, a1)
}
-function ___map_file(pathname, size) {
- setErrNo(63);
+function ___map_file (pathname, size) {
+ setErrNo(63)
return -1
}
var PATH = {
splitPath: function (filename) {
- var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
+ const splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/
return splitPathRe.exec(filename).slice(1)
},
normalizeArray: function (parts, allowAboveRoot) {
- var up = 0;
- for (var i = parts.length - 1; i >= 0; i--) {
- var last = parts[i];
- if (last === ".") {
+ let up = 0
+ for (let i = parts.length - 1; i >= 0; i--) {
+ const last = parts[i]
+ if (last === '.') {
+ parts.splice(i, 1)
+ } else if (last === '..') {
parts.splice(i, 1)
- } else if (last === "..") {
- parts.splice(i, 1);
up++
} else if (up) {
- parts.splice(i, 1);
+ parts.splice(i, 1)
up--
}
}
if (allowAboveRoot) {
for (; up; up--) {
- parts.unshift("..")
+ parts.unshift('..')
}
}
return parts
},
normalize: function (path) {
- var isAbsolute = path.charAt(0) === "/",
- trailingSlash = path.substr(-1) === "/";
- path = PATH.normalizeArray(path.split("/").filter(function (p) {
- return !!p
- }), !isAbsolute).join("/");
+ const isAbsolute = path.charAt(0) === '/'
+ const trailingSlash = path.substr(-1) === '/'
+ path = PATH.normalizeArray(
+ path.split('/').filter(function (p) {
+ return !!p
+ }),
+ !isAbsolute
+ ).join('/')
if (!path && !isAbsolute) {
- path = "."
+ path = '.'
}
if (path && trailingSlash) {
- path += "/"
+ path += '/'
}
- return (isAbsolute ? "/" : "") + path
+ return (isAbsolute ? '/' : '') + path
},
dirname: function (path) {
- var result = PATH.splitPath(path),
- root = result[0],
- dir = result[1];
+ const result = PATH.splitPath(path)
+ const root = result[0]
+ let dir = result[1]
if (!root && !dir) {
- return "."
+ return '.'
}
if (dir) {
dir = dir.substr(0, dir.length - 1)
@@ -2992,75 +5846,78 @@ var PATH = {
return root + dir
},
basename: function (path) {
- if (path === "/") return "/";
- var lastSlash = path.lastIndexOf("/");
- if (lastSlash === -1) return path;
+ if (path === '/') return '/'
+ const lastSlash = path.lastIndexOf('/')
+ if (lastSlash === -1) return path
return path.substr(lastSlash + 1)
},
extname: function (path) {
return PATH.splitPath(path)[3]
},
join: function () {
- var paths = Array.prototype.slice.call(arguments, 0);
- return PATH.normalize(paths.join("/"))
+ const paths = Array.prototype.slice.call(arguments, 0)
+ return PATH.normalize(paths.join('/'))
},
join2: function (l, r) {
- return PATH.normalize(l + "/" + r)
+ return PATH.normalize(l + '/' + r)
}
-};
+}
var PATH_FS = {
resolve: function () {
- var resolvedPath = "",
- resolvedAbsolute = false;
- for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
- var path = i >= 0 ? arguments[i] : FS.cwd();
- if (typeof path !== "string") {
- throw new TypeError("Arguments to path.resolve must be strings")
+ let resolvedPath = ''
+ let resolvedAbsolute = false
+ for (let i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
+ const path = i >= 0 ? arguments[i] : FS.cwd()
+ if (typeof path !== 'string') {
+ throw new TypeError('Arguments to path.resolve must be strings')
} else if (!path) {
- return ""
+ return ''
}
- resolvedPath = path + "/" + resolvedPath;
- resolvedAbsolute = path.charAt(0) === "/"
+ resolvedPath = path + '/' + resolvedPath
+ resolvedAbsolute = path.charAt(0) === '/'
}
- resolvedPath = PATH.normalizeArray(resolvedPath.split("/").filter(function (p) {
- return !!p
- }), !resolvedAbsolute).join("/");
- return (resolvedAbsolute ? "/" : "") + resolvedPath || "."
+ resolvedPath = PATH.normalizeArray(
+ resolvedPath.split('/').filter(function (p) {
+ return !!p
+ }),
+ !resolvedAbsolute
+ ).join('/')
+ return (resolvedAbsolute ? '/' : '') + resolvedPath || '.'
},
relative: function (from, to) {
- from = PATH_FS.resolve(from).substr(1);
- to = PATH_FS.resolve(to).substr(1);
+ from = PATH_FS.resolve(from).substr(1)
+ to = PATH_FS.resolve(to).substr(1)
- function trim(arr) {
- var start = 0;
+ function trim (arr) {
+ let start = 0
for (; start < arr.length; start++) {
- if (arr[start] !== "") break
+ if (arr[start] !== '') break
}
- var end = arr.length - 1;
+ let end = arr.length - 1
for (; end >= 0; end--) {
- if (arr[end] !== "") break
+ if (arr[end] !== '') break
}
- if (start > end) return [];
+ if (start > end) return []
return arr.slice(start, end - start + 1)
}
- var fromParts = trim(from.split("/"));
- var toParts = trim(to.split("/"));
- var length = Math.min(fromParts.length, toParts.length);
- var samePartsLength = length;
+ const fromParts = trim(from.split('/'))
+ const toParts = trim(to.split('/'))
+ const length = Math.min(fromParts.length, toParts.length)
+ let samePartsLength = length
for (var i = 0; i < length; i++) {
if (fromParts[i] !== toParts[i]) {
- samePartsLength = i;
+ samePartsLength = i
break
}
}
- var outputParts = [];
+ let outputParts = []
for (var i = samePartsLength; i < fromParts.length; i++) {
- outputParts.push("..")
+ outputParts.push('..')
}
- outputParts = outputParts.concat(toParts.slice(samePartsLength));
- return outputParts.join("/")
+ outputParts = outputParts.concat(toParts.slice(samePartsLength))
+ return outputParts.join('/')
}
-};
+}
var TTY = {
ttys: [],
init: function () {},
@@ -3070,16 +5927,16 @@ var TTY = {
input: [],
output: [],
ops: ops
- };
+ }
FS.registerDevice(dev, TTY.stream_ops)
},
stream_ops: {
open: function (stream) {
- var tty = TTY.ttys[stream.node.rdev];
+ const tty = TTY.ttys[stream.node.rdev]
if (!tty) {
throw new FS.ErrnoError(43)
}
- stream.tty = tty;
+ stream.tty = tty
stream.seekable = false
},
close: function (stream) {
@@ -3092,9 +5949,9 @@ var TTY = {
if (!stream.tty || !stream.tty.ops.get_char) {
throw new FS.ErrnoError(60)
}
- var bytesRead = 0;
- for (var i = 0; i < length; i++) {
- var result;
+ let bytesRead = 0
+ for (let i = 0; i < length; i++) {
+ var result
try {
result = stream.tty.ops.get_char(stream.tty)
} catch (e) {
@@ -3103,8 +5960,8 @@ var TTY = {
if (result === undefined && bytesRead === 0) {
throw new FS.ErrnoError(6)
}
- if (result === null || result === undefined) break;
- bytesRead++;
+ if (result === null || result === undefined) break
+ bytesRead++
buffer[offset + i] = result
}
if (bytesRead) {
@@ -3132,16 +5989,19 @@ var TTY = {
default_tty_ops: {
get_char: function (tty) {
if (!tty.input.length) {
- var result = null;
- if (typeof window != "undefined" && typeof window.prompt == "function") {
- result = window.prompt("Input: ");
+ let result = null
+ if (
+ typeof window !== 'undefined' &&
+ typeof window.prompt === 'function'
+ ) {
+ result = window.prompt('Input: ')
if (result !== null) {
- result += "\n"
+ result += '\n'
}
- } else if (typeof readline == "function") {
- result = readline();
+ } else if (typeof readline === 'function') {
+ result = readline()
if (result !== null) {
- result += "\n"
+ result += '\n'
}
}
if (!result) {
@@ -3153,7 +6013,7 @@ var TTY = {
},
put_char: function (tty, val) {
if (val === null || val === 10) {
- out(UTF8ArrayToString(tty.output, 0));
+ out(UTF8ArrayToString(tty.output, 0))
tty.output = []
} else {
if (val != 0) tty.output.push(val)
@@ -3161,7 +6021,7 @@ var TTY = {
},
flush: function (tty) {
if (tty.output && tty.output.length > 0) {
- out(UTF8ArrayToString(tty.output, 0));
+ out(UTF8ArrayToString(tty.output, 0))
tty.output = []
}
}
@@ -3169,7 +6029,7 @@ var TTY = {
default_tty1_ops: {
put_char: function (tty, val) {
if (val === null || val === 10) {
- err(UTF8ArrayToString(tty.output, 0));
+ err(UTF8ArrayToString(tty.output, 0))
tty.output = []
} else {
if (val != 0) tty.output.push(val)
@@ -3177,16 +6037,16 @@ var TTY = {
},
flush: function (tty) {
if (tty.output && tty.output.length > 0) {
- err(UTF8ArrayToString(tty.output, 0));
+ err(UTF8ArrayToString(tty.output, 0))
tty.output = []
}
}
}
-};
+}
var MEMFS = {
ops_table: null,
mount: function (mount) {
- return MEMFS.createNode(null, "/", 16384 | 511, 0)
+ return MEMFS.createNode(null, '/', 16384 | 511, 0)
},
createNode: function (parent, name, mode, dev) {
if (FS.isBlkdev(mode) || FS.isFIFO(mode)) {
@@ -3241,24 +6101,24 @@ var MEMFS = {
}
}
}
- var node = FS.createNode(parent, name, mode, dev);
+ const node = FS.createNode(parent, name, mode, dev)
if (FS.isDir(node.mode)) {
- node.node_ops = MEMFS.ops_table.dir.node;
- node.stream_ops = MEMFS.ops_table.dir.stream;
+ node.node_ops = MEMFS.ops_table.dir.node
+ node.stream_ops = MEMFS.ops_table.dir.stream
node.contents = {}
} else if (FS.isFile(node.mode)) {
- node.node_ops = MEMFS.ops_table.file.node;
- node.stream_ops = MEMFS.ops_table.file.stream;
- node.usedBytes = 0;
+ node.node_ops = MEMFS.ops_table.file.node
+ node.stream_ops = MEMFS.ops_table.file.stream
+ node.usedBytes = 0
node.contents = null
} else if (FS.isLink(node.mode)) {
- node.node_ops = MEMFS.ops_table.link.node;
+ node.node_ops = MEMFS.ops_table.link.node
node.stream_ops = MEMFS.ops_table.link.stream
} else if (FS.isChrdev(node.mode)) {
- node.node_ops = MEMFS.ops_table.chrdev.node;
+ node.node_ops = MEMFS.ops_table.chrdev.node
node.stream_ops = MEMFS.ops_table.chrdev.stream
}
- node.timestamp = Date.now();
+ node.timestamp = Date.now()
if (parent) {
parent.contents[name] = node
}
@@ -3266,60 +6126,67 @@ var MEMFS = {
},
getFileDataAsRegularArray: function (node) {
if (node.contents && node.contents.subarray) {
- var arr = [];
- for (var i = 0; i < node.usedBytes; ++i) arr.push(node.contents[i]);
+ const arr = []
+ for (let i = 0; i < node.usedBytes; ++i) arr.push(node.contents[i])
return arr
}
return node.contents
},
getFileDataAsTypedArray: function (node) {
- if (!node.contents) return new Uint8Array(0);
- if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes);
+ if (!node.contents) return new Uint8Array(0)
+ if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes)
return new Uint8Array(node.contents)
},
expandFileStorage: function (node, newCapacity) {
- var prevCapacity = node.contents ? node.contents.length : 0;
- if (prevCapacity >= newCapacity) return;
- var CAPACITY_DOUBLING_MAX = 1024 * 1024;
- newCapacity = Math.max(newCapacity, prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125) >>> 0);
- if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256);
- var oldContents = node.contents;
- node.contents = new Uint8Array(newCapacity);
- if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0);
- return
+ const prevCapacity = node.contents ? node.contents.length : 0
+ if (prevCapacity >= newCapacity) return
+ const CAPACITY_DOUBLING_MAX = 1024 * 1024
+ newCapacity = Math.max(
+ newCapacity,
+ (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125)) >>> 0
+ )
+ if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256)
+ const oldContents = node.contents
+ node.contents = new Uint8Array(newCapacity)
+ if (node.usedBytes > 0) {
+ node.contents.set(oldContents.subarray(0, node.usedBytes), 0)
+ }
},
resizeFileStorage: function (node, newSize) {
- if (node.usedBytes == newSize) return;
+ if (node.usedBytes == newSize) return
if (newSize == 0) {
- node.contents = null;
- node.usedBytes = 0;
+ node.contents = null
+ node.usedBytes = 0
return
}
if (!node.contents || node.contents.subarray) {
- var oldContents = node.contents;
- node.contents = new Uint8Array(newSize);
+ const oldContents = node.contents
+ node.contents = new Uint8Array(newSize)
if (oldContents) {
- node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes)))
+ node.contents.set(
+ oldContents.subarray(0, Math.min(newSize, node.usedBytes))
+ )
}
- node.usedBytes = newSize;
+ node.usedBytes = newSize
return
}
- if (!node.contents) node.contents = [];
- if (node.contents.length > newSize) node.contents.length = newSize;
- else
- while (node.contents.length < newSize) node.contents.push(0);
+ if (!node.contents) node.contents = []
+ if (node.contents.length > newSize) node.contents.length = newSize
+ else {
+ while (node.contents.length < newSize) node.contents.push(0)
+ }
node.usedBytes = newSize
},
node_ops: {
getattr: function (node) {
- var attr = {};
- attr.dev = FS.isChrdev(node.mode) ? node.id : 1;
- attr.ino = node.id;
- attr.mode = node.mode;
- attr.nlink = 1;
- attr.uid = 0;
- attr.gid = 0;
- attr.rdev = node.rdev;
+ const attr = {}
+ attr.dev = FS.isChrdev(node.mode) ? node.id : 1
+ attr.ino = node.id
+ attr.mode = node.mode
+ attr.nlink = 1
+ attr.uid = 0
+ attr.gid = 0
+ attr.rdev = node.rdev
if (FS.isDir(node.mode)) {
attr.size = 4096
} else if (FS.isFile(node.mode)) {
@@ -3329,11 +6196,11 @@ var MEMFS = {
} else {
attr.size = 0
}
- attr.atime = new Date(node.timestamp);
- attr.mtime = new Date(node.timestamp);
- attr.ctime = new Date(node.timestamp);
- attr.blksize = 4096;
- attr.blocks = Math.ceil(attr.size / attr.blksize);
+ attr.atime = new Date(node.timestamp)
+ attr.mtime = new Date(node.timestamp)
+ attr.ctime = new Date(node.timestamp)
+ attr.blksize = 4096
+ attr.blocks = Math.ceil(attr.size / attr.blksize)
return attr
},
setattr: function (node, attr) {
@@ -3355,34 +6222,34 @@ var MEMFS = {
},
rename: function (old_node, new_dir, new_name) {
if (FS.isDir(old_node.mode)) {
- var new_node;
+ let new_node
try {
new_node = FS.lookupNode(new_dir, new_name)
} catch (e) {}
if (new_node) {
- for (var i in new_node.contents) {
+ for (const i in new_node.contents) {
throw new FS.ErrnoError(55)
}
}
}
- delete old_node.parent.contents[old_node.name];
- old_node.name = new_name;
- new_dir.contents[new_name] = old_node;
+ delete old_node.parent.contents[old_node.name]
+ old_node.name = new_name
+ new_dir.contents[new_name] = old_node
old_node.parent = new_dir
},
unlink: function (parent, name) {
delete parent.contents[name]
},
rmdir: function (parent, name) {
- var node = FS.lookupNode(parent, name);
- for (var i in node.contents) {
+ const node = FS.lookupNode(parent, name)
+ for (const i in node.contents) {
throw new FS.ErrnoError(55)
}
delete parent.contents[name]
},
readdir: function (node) {
- var entries = [".", ".."];
- for (var key in node.contents) {
+ const entries = ['.', '..']
+ for (const key in node.contents) {
if (!node.contents.hasOwnProperty(key)) {
continue
}
@@ -3391,8 +6258,8 @@ var MEMFS = {
return entries
},
symlink: function (parent, newname, oldpath) {
- var node = MEMFS.createNode(parent, newname, 511 | 40960, 0);
- node.link = oldpath;
+ const node = MEMFS.createNode(parent, newname, 511 | 40960, 0)
+ node.link = oldpath
return node
},
readlink: function (node) {
@@ -3404,13 +6271,15 @@ var MEMFS = {
},
stream_ops: {
read: function (stream, buffer, offset, length, position) {
- var contents = stream.node.contents;
- if (position >= stream.node.usedBytes) return 0;
- var size = Math.min(stream.node.usedBytes - position, length);
+ const contents = stream.node.contents
+ if (position >= stream.node.usedBytes) return 0
+ const size = Math.min(stream.node.usedBytes - position, length)
if (size > 8 && contents.subarray) {
buffer.set(contents.subarray(position, position + size), offset)
} else {
- for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i]
+ for (let i = 0; i < size; i++) {
+ buffer[offset + i] = contents[position + i]
+ }
}
return size
},
@@ -3418,35 +6287,36 @@ var MEMFS = {
if (buffer.buffer === HEAP8.buffer) {
canOwn = false
}
- if (!length) return 0;
- var node = stream.node;
- node.timestamp = Date.now();
+ if (!length) return 0
+ const node = stream.node
+ node.timestamp = Date.now()
if (buffer.subarray && (!node.contents || node.contents.subarray)) {
if (canOwn) {
- node.contents = buffer.subarray(offset, offset + length);
- node.usedBytes = length;
+ node.contents = buffer.subarray(offset, offset + length)
+ node.usedBytes = length
return length
} else if (node.usedBytes === 0 && position === 0) {
- node.contents = buffer.slice(offset, offset + length);
- node.usedBytes = length;
+ node.contents = buffer.slice(offset, offset + length)
+ node.usedBytes = length
return length
} else if (position + length <= node.usedBytes) {
- node.contents.set(buffer.subarray(offset, offset + length), position);
+ node.contents.set(buffer.subarray(offset, offset + length), position)
return length
}
}
- MEMFS.expandFileStorage(node, position + length);
- if (node.contents.subarray && buffer.subarray) node.contents.set(buffer.subarray(offset, offset + length), position);
- else {
- for (var i = 0; i < length; i++) {
+ MEMFS.expandFileStorage(node, position + length)
+ if (node.contents.subarray && buffer.subarray) {
+ node.contents.set(buffer.subarray(offset, offset + length), position)
+ } else {
+ for (let i = 0; i < length; i++) {
node.contents[position + i] = buffer[offset + i]
}
}
- node.usedBytes = Math.max(node.usedBytes, position + length);
+ node.usedBytes = Math.max(node.usedBytes, position + length)
return length
},
llseek: function (stream, offset, whence) {
- var position = offset;
+ let position = offset
if (whence === 1) {
position += stream.position
} else if (whence === 2) {
@@ -3460,33 +6330,38 @@ var MEMFS = {
return position
},
allocate: function (stream, offset, length) {
- MEMFS.expandFileStorage(stream.node, offset + length);
+ MEMFS.expandFileStorage(stream.node, offset + length)
stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length)
},
mmap: function (stream, buffer, offset, length, position, prot, flags) {
if (!FS.isFile(stream.node.mode)) {
throw new FS.ErrnoError(43)
}
- var ptr;
- var allocated;
- var contents = stream.node.contents;
+ let ptr
+ let allocated
+ let contents = stream.node.contents
if (!(flags & 2) && contents.buffer === buffer.buffer) {
- allocated = false;
+ allocated = false
ptr = contents.byteOffset
} else {
if (position > 0 || position + length < contents.length) {
if (contents.subarray) {
contents = contents.subarray(position, position + length)
} else {
- contents = Array.prototype.slice.call(contents, position, position + length)
+ contents = Array.prototype.slice.call(
+ contents,
+ position,
+ position + length
+ )
}
}
- allocated = true;
- var fromHeap = buffer.buffer == HEAP8.buffer;
- ptr = _malloc(length);
+ allocated = true
+ const fromHeap = buffer.buffer == HEAP8.buffer
+ ptr = _malloc(length)
if (!ptr) {
throw new FS.ErrnoError(48)
- }(fromHeap ? HEAP8 : buffer).set(contents, ptr)
+ }
+ ;(fromHeap ? HEAP8 : buffer).set(contents, ptr)
}
return {
ptr: ptr,
@@ -3500,11 +6375,18 @@ var MEMFS = {
if (mmapFlags & 2) {
return 0
}
- var bytesWritten = MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false);
+ const bytesWritten = MEMFS.stream_ops.write(
+ stream,
+ buffer,
+ 0,
+ length,
+ offset,
+ false
+ )
return 0
}
}
-};
+}
var FS = {
root: null,
mounts: [],
@@ -3512,7 +6394,7 @@ var FS = {
streams: [],
nextInode: 1,
nameTable: null,
- currentPath: "/",
+ currentPath: '/',
initialized: false,
ignorePermissions: true,
trackingDelegate: {},
@@ -3527,21 +6409,23 @@ var FS = {
filesystems: null,
syncFSRequests: 0,
handleFSError: function (e) {
- if (!(e instanceof FS.ErrnoError)) throw e + " : " + stackTrace();
+ if (!(e instanceof FS.ErrnoError)) throw e + ' : ' + stackTrace()
return setErrNo(e.errno)
},
lookupPath: function (path, opts) {
- path = PATH_FS.resolve(FS.cwd(), path);
- opts = opts || {};
- if (!path) return {
- path: "",
- node: null
- };
- var defaults = {
+ path = PATH_FS.resolve(FS.cwd(), path)
+ opts = opts || {}
+ if (!path) {
+ return {
+ path: '',
+ node: null
+ }
+ }
+ const defaults = {
follow_mount: true,
recurse_count: 0
- };
- for (var key in defaults) {
+ }
+ for (const key in defaults) {
if (opts[key] === undefined) {
opts[key] = defaults[key]
}
@@ -3549,32 +6433,35 @@ var FS = {
if (opts.recurse_count > 8) {
throw new FS.ErrnoError(32)
}
- var parts = PATH.normalizeArray(path.split("/").filter(function (p) {
- return !!p
- }), false);
- var current = FS.root;
- var current_path = "/";
- for (var i = 0; i < parts.length; i++) {
- var islast = i === parts.length - 1;
+ const parts = PATH.normalizeArray(
+ path.split('/').filter(function (p) {
+ return !!p
+ }),
+ false
+ )
+ let current = FS.root
+ let current_path = '/'
+ for (let i = 0; i < parts.length; i++) {
+ const islast = i === parts.length - 1
if (islast && opts.parent) {
break
}
- current = FS.lookupNode(current, parts[i]);
- current_path = PATH.join2(current_path, parts[i]);
+ current = FS.lookupNode(current, parts[i])
+ current_path = PATH.join2(current_path, parts[i])
if (FS.isMountpoint(current)) {
- if (!islast || islast && opts.follow_mount) {
+ if (!islast || (islast && opts.follow_mount)) {
current = current.mounted.root
}
}
if (!islast || opts.follow) {
- var count = 0;
+ let count = 0
while (FS.isLink(current.mode)) {
- var link = FS.readlink(current_path);
- current_path = PATH_FS.resolve(PATH.dirname(current_path), link);
- var lookup = FS.lookupPath(current_path, {
+ const link = FS.readlink(current_path)
+ current_path = PATH_FS.resolve(PATH.dirname(current_path), link)
+ const lookup = FS.lookupPath(current_path, {
recurse_count: opts.recurse_count
- });
- current = lookup.node;
+ })
+ current = lookup.node
if (count++ > 40) {
throw new FS.ErrnoError(32)
}
@@ -3587,38 +6474,40 @@ var FS = {
}
},
getPath: function (node) {
- var path;
+ let path
while (true) {
if (FS.isRoot(node)) {
- var mount = node.mount.mountpoint;
- if (!path) return mount;
- return mount[mount.length - 1] !== "/" ? mount + "/" + path : mount + path
+ const mount = node.mount.mountpoint
+ if (!path) return mount
+ return mount[mount.length - 1] !== '/'
+ ? mount + '/' + path
+ : mount + path
}
- path = path ? node.name + "/" + path : node.name;
+ path = path ? node.name + '/' + path : node.name
node = node.parent
}
},
hashName: function (parentid, name) {
- var hash = 0;
- for (var i = 0; i < name.length; i++) {
- hash = (hash << 5) - hash + name.charCodeAt(i) | 0
+ let hash = 0
+ for (let i = 0; i < name.length; i++) {
+ hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0
}
- return (parentid + hash >>> 0) % FS.nameTable.length
+ return ((parentid + hash) >>> 0) % FS.nameTable.length
},
hashAddNode: function (node) {
- var hash = FS.hashName(node.parent.id, node.name);
- node.name_next = FS.nameTable[hash];
+ const hash = FS.hashName(node.parent.id, node.name)
+ node.name_next = FS.nameTable[hash]
FS.nameTable[hash] = node
},
hashRemoveNode: function (node) {
- var hash = FS.hashName(node.parent.id, node.name);
+ const hash = FS.hashName(node.parent.id, node.name)
if (FS.nameTable[hash] === node) {
FS.nameTable[hash] = node.name_next
} else {
- var current = FS.nameTable[hash];
+ let current = FS.nameTable[hash]
while (current) {
if (current.name_next === node) {
- current.name_next = node.name_next;
+ current.name_next = node.name_next
break
}
current = current.name_next
@@ -3626,13 +6515,13 @@ var FS = {
}
},
lookupNode: function (parent, name) {
- var errCode = FS.mayLookup(parent);
+ const errCode = FS.mayLookup(parent)
if (errCode) {
throw new FS.ErrnoError(errCode, parent)
}
- var hash = FS.hashName(parent.id, name);
- for (var node = FS.nameTable[hash]; node; node = node.name_next) {
- var nodeName = node.name;
+ const hash = FS.hashName(parent.id, name)
+ for (let node = FS.nameTable[hash]; node; node = node.name_next) {
+ const nodeName = node.name
if (node.parent.id === parent.id && nodeName === name) {
return node
}
@@ -3640,8 +6529,8 @@ var FS = {
return FS.lookup(parent, name)
},
createNode: function (parent, name, mode, rdev) {
- var node = new FS.FSNode(parent, name, mode, rdev);
- FS.hashAddNode(node);
+ const node = new FS.FSNode(parent, name, mode, rdev)
+ FS.hashAddNode(node)
return node
},
destroyNode: function (node) {
@@ -3675,33 +6564,33 @@ var FS = {
return (mode & 49152) === 49152
},
flagModes: {
- "r": 0,
- "rs": 1052672,
- "r+": 2,
- "w": 577,
- "wx": 705,
- "xw": 705,
- "w+": 578,
- "wx+": 706,
- "xw+": 706,
- "a": 1089,
- "ax": 1217,
- "xa": 1217,
- "a+": 1090,
- "ax+": 1218,
- "xa+": 1218
+ r: 0,
+ rs: 1052672,
+ 'r+': 2,
+ w: 577,
+ wx: 705,
+ xw: 705,
+ 'w+': 578,
+ 'wx+': 706,
+ 'xw+': 706,
+ a: 1089,
+ ax: 1217,
+ xa: 1217,
+ 'a+': 1090,
+ 'ax+': 1218,
+ 'xa+': 1218
},
modeStringToFlags: function (str) {
- var flags = FS.flagModes[str];
- if (typeof flags === "undefined") {
- throw new Error("Unknown file open mode: " + str)
+ const flags = FS.flagModes[str]
+ if (typeof flags === 'undefined') {
+ throw new Error('Unknown file open mode: ' + str)
}
return flags
},
flagsToPermissionString: function (flag) {
- var perms = ["r", "w", "rw"][flag & 3];
+ let perms = ['r', 'w', 'rw'][flag & 3]
if (flag & 512) {
- perms += "w"
+ perms += 'w'
}
return perms
},
@@ -3709,36 +6598,36 @@ var FS = {
if (FS.ignorePermissions) {
return 0
}
- if (perms.indexOf("r") !== -1 && !(node.mode & 292)) {
+ if (perms.indexOf('r') !== -1 && !(node.mode & 292)) {
return 2
- } else if (perms.indexOf("w") !== -1 && !(node.mode & 146)) {
+ } else if (perms.indexOf('w') !== -1 && !(node.mode & 146)) {
return 2
- } else if (perms.indexOf("x") !== -1 && !(node.mode & 73)) {
+ } else if (perms.indexOf('x') !== -1 && !(node.mode & 73)) {
return 2
}
return 0
},
mayLookup: function (dir) {
- var errCode = FS.nodePermissions(dir, "x");
- if (errCode) return errCode;
- if (!dir.node_ops.lookup) return 2;
+ const errCode = FS.nodePermissions(dir, 'x')
+ if (errCode) return errCode
+ if (!dir.node_ops.lookup) return 2
return 0
},
mayCreate: function (dir, name) {
try {
- var node = FS.lookupNode(dir, name);
+ const node = FS.lookupNode(dir, name)
return 20
} catch (e) {}
- return FS.nodePermissions(dir, "wx")
+ return FS.nodePermissions(dir, 'wx')
},
mayDelete: function (dir, name, isdir) {
- var node;
+ let node
try {
node = FS.lookupNode(dir, name)
} catch (e) {
return e.errno
}
- var errCode = FS.nodePermissions(dir, "wx");
+ const errCode = FS.nodePermissions(dir, 'wx')
if (errCode) {
return errCode
}
@@ -3763,7 +6652,7 @@ var FS = {
if (FS.isLink(node.mode)) {
return 32
} else if (FS.isDir(node.mode)) {
- if (FS.flagsToPermissionString(flags) !== "r" || flags & 512) {
+ if (FS.flagsToPermissionString(flags) !== 'r' || flags & 512) {
return 31
}
}
@@ -3771,9 +6660,9 @@ var FS = {
},
MAX_OPEN_FDS: 4096,
nextfd: function (fd_start, fd_end) {
- fd_start = fd_start || 0;
- fd_end = fd_end || FS.MAX_OPEN_FDS;
- for (var fd = fd_start; fd <= fd_end; fd++) {
+ fd_start = fd_start || 0
+ fd_end = fd_end || FS.MAX_OPEN_FDS
+ for (let fd = fd_start; fd <= fd_end; fd++) {
if (!FS.streams[fd]) {
return fd
}
@@ -3785,7 +6674,7 @@ var FS = {
},
createStream: function (stream, fd_start, fd_end) {
if (!FS.FSStream) {
- FS.FSStream = function () {};
+ FS.FSStream = function () {}
FS.FSStream.prototype = {
object: {
get: function () {
@@ -3812,14 +6701,14 @@ var FS = {
}
}
}
- var newStream = new FS.FSStream;
- for (var p in stream) {
+ const newStream = new FS.FSStream()
+ for (const p in stream) {
newStream[p] = stream[p]
}
- stream = newStream;
- var fd = FS.nextfd(fd_start, fd_end);
- stream.fd = fd;
- FS.streams[fd] = stream;
+ stream = newStream
+ const fd = FS.nextfd(fd_start, fd_end)
+ stream.fd = fd
+ FS.streams[fd] = stream
return stream
},
closeStream: function (fd) {
@@ -3827,8 +6716,8 @@ var FS = {
},
chrdev_stream_ops: {
open: function (stream) {
- var device = FS.getDevice(stream.node.rdev);
- stream.stream_ops = device.stream_ops;
+ const device = FS.getDevice(stream.node.rdev)
+ stream.stream_ops = device.stream_ops
if (stream.stream_ops.open) {
stream.stream_ops.open(stream)
}
@@ -3844,7 +6733,7 @@ var FS = {
return dev & 255
},
makedev: function (ma, mi) {
- return ma << 8 | mi
+ return (ma << 8) | mi
},
registerDevice: function (dev, ops) {
FS.devices[dev] = {
@@ -3855,36 +6744,40 @@ var FS = {
return FS.devices[dev]
},
getMounts: function (mount) {
- var mounts = [];
- var check = [mount];
+ const mounts = []
+ const check = [mount]
while (check.length) {
- var m = check.pop();
- mounts.push(m);
+ const m = check.pop()
+ mounts.push(m)
check.push.apply(check, m.mounts)
}
return mounts
},
syncfs: function (populate, callback) {
- if (typeof populate === "function") {
- callback = populate;
+ if (typeof populate === 'function') {
+ callback = populate
populate = false
}
- FS.syncFSRequests++;
+ FS.syncFSRequests++
if (FS.syncFSRequests > 1) {
- err("warning: " + FS.syncFSRequests + " FS.syncfs operations in flight at once, probably just doing extra work")
+ err(
+ 'warning: ' +
+ FS.syncFSRequests +
+ ' FS.syncfs operations in flight at once, probably just doing extra work'
+ )
}
- var mounts = FS.getMounts(FS.root.mount);
- var completed = 0;
+ const mounts = FS.getMounts(FS.root.mount)
+ let completed = 0
- function doCallback(errCode) {
- FS.syncFSRequests--;
+ function doCallback (errCode) {
+ FS.syncFSRequests--
return callback(errCode)
}
- function done(errCode) {
+ function done (errCode) {
if (errCode) {
if (!done.errored) {
- done.errored = true;
+ done.errored = true
return doCallback(errCode)
}
return
@@ -3901,17 +6794,17 @@ var FS = {
})
},
mount: function (type, opts, mountpoint) {
- var root = mountpoint === "/";
- var pseudo = !mountpoint;
- var node;
+ const root = mountpoint === '/'
+ const pseudo = !mountpoint
+ let node
if (root && FS.root) {
throw new FS.ErrnoError(10)
} else if (!root && !pseudo) {
- var lookup = FS.lookupPath(mountpoint, {
+ const lookup = FS.lookupPath(mountpoint, {
follow_mount: false
- });
- mountpoint = lookup.path;
- node = lookup.node;
+ })
+ mountpoint = lookup.path
+ node = lookup.node
if (FS.isMountpoint(node)) {
throw new FS.ErrnoError(10)
}
@@ -3919,19 +6812,19 @@ var FS = {
throw new FS.ErrnoError(54)
}
}
- var mount = {
+ const mount = {
type: type,
opts: opts,
mountpoint: mountpoint,
mounts: []
- };
- var mountRoot = type.mount(mount);
- mountRoot.mount = mount;
- mount.root = mountRoot;
+ }
+ const mountRoot = type.mount(mount)
+ mountRoot.mount = mount
+ mount.root = mountRoot
if (root) {
FS.root = mountRoot
} else if (node) {
- node.mounted = mount;
+ node.mounted = mount
if (node.mount) {
node.mount.mounts.push(mount)
}
@@ -3939,42 +6832,42 @@ var FS = {
return mountRoot
},
unmount: function (mountpoint) {
- var lookup = FS.lookupPath(mountpoint, {
+ const lookup = FS.lookupPath(mountpoint, {
follow_mount: false
- });
+ })
if (!FS.isMountpoint(lookup.node)) {
throw new FS.ErrnoError(28)
}
- var node = lookup.node;
- var mount = node.mounted;
- var mounts = FS.getMounts(mount);
+ const node = lookup.node
+ const mount = node.mounted
+ const mounts = FS.getMounts(mount)
Object.keys(FS.nameTable).forEach(function (hash) {
- var current = FS.nameTable[hash];
+ let current = FS.nameTable[hash]
while (current) {
- var next = current.name_next;
+ const next = current.name_next
if (mounts.indexOf(current.mount) !== -1) {
FS.destroyNode(current)
}
current = next
}
- });
- node.mounted = null;
- var idx = node.mount.mounts.indexOf(mount);
+ })
+ node.mounted = null
+ const idx = node.mount.mounts.indexOf(mount)
node.mount.mounts.splice(idx, 1)
},
lookup: function (parent, name) {
return parent.node_ops.lookup(parent, name)
},
mknod: function (path, mode, dev) {
- var lookup = FS.lookupPath(path, {
+ const lookup = FS.lookupPath(path, {
parent: true
- });
- var parent = lookup.node;
- var name = PATH.basename(path);
- if (!name || name === "." || name === "..") {
+ })
+ const parent = lookup.node
+ const name = PATH.basename(path)
+ if (!name || name === '.' || name === '..') {
throw new FS.ErrnoError(28)
}
- var errCode = FS.mayCreate(parent, name);
+ const errCode = FS.mayCreate(parent, name)
if (errCode) {
throw new FS.ErrnoError(errCode)
}
@@ -3984,23 +6877,23 @@ var FS = {
return parent.node_ops.mknod(parent, name, mode, dev)
},
create: function (path, mode) {
- mode = mode !== undefined ? mode : 438;
- mode &= 4095;
- mode |= 32768;
+ mode = mode !== undefined ? mode : 438
+ mode &= 4095
+ mode |= 32768
return FS.mknod(path, mode, 0)
},
mkdir: function (path, mode) {
- mode = mode !== undefined ? mode : 511;
- mode &= 511 | 512;
- mode |= 16384;
+ mode = mode !== undefined ? mode : 511
+ mode &= 511 | 512
+ mode |= 16384
return FS.mknod(path, mode, 0)
},
mkdirTree: function (path, mode) {
- var dirs = path.split("/");
- var d = "";
- for (var i = 0; i < dirs.length; ++i) {
- if (!dirs[i]) continue;
- d += "/" + dirs[i];
+ const dirs = path.split('/')
+ let d = ''
+ for (let i = 0; i < dirs.length; ++i) {
+ if (!dirs[i]) continue
+ d += '/' + dirs[i]
try {
FS.mkdir(d, mode)
} catch (e) {
@@ -4009,26 +6902,26 @@ var FS = {
}
},
mkdev: function (path, mode, dev) {
- if (typeof dev === "undefined") {
- dev = mode;
+ if (typeof dev === 'undefined') {
+ dev = mode
mode = 438
}
- mode |= 8192;
+ mode |= 8192
return FS.mknod(path, mode, dev)
},
symlink: function (oldpath, newpath) {
if (!PATH_FS.resolve(oldpath)) {
throw new FS.ErrnoError(44)
}
- var lookup = FS.lookupPath(newpath, {
+ const lookup = FS.lookupPath(newpath, {
parent: true
- });
- var parent = lookup.node;
+ })
+ const parent = lookup.node
if (!parent) {
throw new FS.ErrnoError(44)
}
- var newname = PATH.basename(newpath);
- var errCode = FS.mayCreate(parent, newname);
+ const newname = PATH.basename(newpath)
+ const errCode = FS.mayCreate(parent, newname)
if (errCode) {
throw new FS.ErrnoError(errCode)
}
@@ -4038,72 +6931,81 @@ var FS = {
return parent.node_ops.symlink(parent, newname, oldpath)
},
rename: function (old_path, new_path) {
- var old_dirname = PATH.dirname(old_path);
- var new_dirname = PATH.dirname(new_path);
- var old_name = PATH.basename(old_path);
- var new_name = PATH.basename(new_path);
- var lookup, old_dir, new_dir;
+ const old_dirname = PATH.dirname(old_path)
+ const new_dirname = PATH.dirname(new_path)
+ const old_name = PATH.basename(old_path)
+ const new_name = PATH.basename(new_path)
+ let lookup, old_dir, new_dir
try {
lookup = FS.lookupPath(old_path, {
parent: true
- });
- old_dir = lookup.node;
+ })
+ old_dir = lookup.node
lookup = FS.lookupPath(new_path, {
parent: true
- });
+ })
new_dir = lookup.node
} catch (e) {
throw new FS.ErrnoError(10)
}
- if (!old_dir || !new_dir) throw new FS.ErrnoError(44);
+ if (!old_dir || !new_dir) throw new FS.ErrnoError(44)
if (old_dir.mount !== new_dir.mount) {
throw new FS.ErrnoError(75)
}
- var old_node = FS.lookupNode(old_dir, old_name);
- var relative = PATH_FS.relative(old_path, new_dirname);
- if (relative.charAt(0) !== ".") {
+ const old_node = FS.lookupNode(old_dir, old_name)
+ let relative = PATH_FS.relative(old_path, new_dirname)
+ if (relative.charAt(0) !== '.') {
throw new FS.ErrnoError(28)
}
- relative = PATH_FS.relative(new_path, old_dirname);
- if (relative.charAt(0) !== ".") {
+ relative = PATH_FS.relative(new_path, old_dirname)
+ if (relative.charAt(0) !== '.') {
throw new FS.ErrnoError(55)
}
- var new_node;
+ let new_node
try {
new_node = FS.lookupNode(new_dir, new_name)
} catch (e) {}
if (old_node === new_node) {
return
}
- var isdir = FS.isDir(old_node.mode);
- var errCode = FS.mayDelete(old_dir, old_name, isdir);
+ const isdir = FS.isDir(old_node.mode)
+ let errCode = FS.mayDelete(old_dir, old_name, isdir)
if (errCode) {
throw new FS.ErrnoError(errCode)
}
- errCode = new_node ? FS.mayDelete(new_dir, new_name, isdir) : FS.mayCreate(new_dir, new_name);
+ errCode = new_node
+ ? FS.mayDelete(new_dir, new_name, isdir)
+ : FS.mayCreate(new_dir, new_name)
if (errCode) {
throw new FS.ErrnoError(errCode)
}
if (!old_dir.node_ops.rename) {
throw new FS.ErrnoError(63)
}
- if (FS.isMountpoint(old_node) || new_node && FS.isMountpoint(new_node)) {
+ if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) {
throw new FS.ErrnoError(10)
}
if (new_dir !== old_dir) {
- errCode = FS.nodePermissions(old_dir, "w");
+ errCode = FS.nodePermissions(old_dir, 'w')
if (errCode) {
throw new FS.ErrnoError(errCode)
}
}
try {
- if (FS.trackingDelegate["willMovePath"]) {
- FS.trackingDelegate["willMovePath"](old_path, new_path)
+ if (FS.trackingDelegate.willMovePath) {
+ FS.trackingDelegate.willMovePath(old_path, new_path)
}
} catch (e) {
- err("FS.trackingDelegate['willMovePath']('" + old_path + "', '" + new_path + "') threw an exception: " + e.message)
+ err(
+ "FS.trackingDelegate['willMovePath']('" +
+ old_path +
+ "', '" +
+ new_path +
+ "') threw an exception: " +
+ e.message
+ )
}
- FS.hashRemoveNode(old_node);
+ FS.hashRemoveNode(old_node)
try {
old_dir.node_ops.rename(old_node, new_dir, new_name)
} catch (e) {
@@ -4112,19 +7014,28 @@ var FS = {
FS.hashAddNode(old_node)
}
try {
- if (FS.trackingDelegate["onMovePath"]) FS.trackingDelegate["onMovePath"](old_path, new_path)
+ if (FS.trackingDelegate.onMovePath) {
+ FS.trackingDelegate.onMovePath(old_path, new_path)
+ }
} catch (e) {
- err("FS.trackingDelegate['onMovePath']('" + old_path + "', '" + new_path + "') threw an exception: " + e.message)
+ err(
+ "FS.trackingDelegate['onMovePath']('" +
+ old_path +
+ "', '" +
+ new_path +
+ "') threw an exception: " +
+ e.message
+ )
}
},
rmdir: function (path) {
- var lookup = FS.lookupPath(path, {
+ const lookup = FS.lookupPath(path, {
parent: true
- });
- var parent = lookup.node;
- var name = PATH.basename(path);
- var node = FS.lookupNode(parent, name);
- var errCode = FS.mayDelete(parent, name, true);
+ })
+ const parent = lookup.node
+ const name = PATH.basename(path)
+ const node = FS.lookupNode(parent, name)
+ const errCode = FS.mayDelete(parent, name, true)
if (errCode) {
throw new FS.ErrnoError(errCode)
}
@@ -4135,38 +7046,50 @@ var FS = {
throw new FS.ErrnoError(10)
}
try {
- if (FS.trackingDelegate["willDeletePath"]) {
- FS.trackingDelegate["willDeletePath"](path)
+ if (FS.trackingDelegate.willDeletePath) {
+ FS.trackingDelegate.willDeletePath(path)
}
} catch (e) {
- err("FS.trackingDelegate['willDeletePath']('" + path + "') threw an exception: " + e.message)
+ err(
+ "FS.trackingDelegate['willDeletePath']('" +
+ path +
+ "') threw an exception: " +
+ e.message
+ )
}
- parent.node_ops.rmdir(parent, name);
- FS.destroyNode(node);
+ parent.node_ops.rmdir(parent, name)
+ FS.destroyNode(node)
try {
- if (FS.trackingDelegate["onDeletePath"]) FS.trackingDelegate["onDeletePath"](path)
+ if (FS.trackingDelegate.onDeletePath) {
+ FS.trackingDelegate.onDeletePath(path)
+ }
} catch (e) {
- err("FS.trackingDelegate['onDeletePath']('" + path + "') threw an exception: " + e.message)
+ err(
+ "FS.trackingDelegate['onDeletePath']('" +
+ path +
+ "') threw an exception: " +
+ e.message
+ )
}
},
readdir: function (path) {
- var lookup = FS.lookupPath(path, {
+ const lookup = FS.lookupPath(path, {
follow: true
- });
- var node = lookup.node;
+ })
+ const node = lookup.node
if (!node.node_ops.readdir) {
throw new FS.ErrnoError(54)
}
return node.node_ops.readdir(node)
},
unlink: function (path) {
- var lookup = FS.lookupPath(path, {
+ const lookup = FS.lookupPath(path, {
parent: true
- });
- var parent = lookup.node;
- var name = PATH.basename(path);
- var node = FS.lookupNode(parent, name);
- var errCode = FS.mayDelete(parent, name, false);
+ })
+ const parent = lookup.node
+ const name = PATH.basename(path)
+ const node = FS.lookupNode(parent, name)
+ const errCode = FS.mayDelete(parent, name, false)
if (errCode) {
throw new FS.ErrnoError(errCode)
}
@@ -4177,36 +7100,51 @@ var FS = {
throw new FS.ErrnoError(10)
}
try {
- if (FS.trackingDelegate["willDeletePath"]) {
- FS.trackingDelegate["willDeletePath"](path)
+ if (FS.trackingDelegate.willDeletePath) {
+ FS.trackingDelegate.willDeletePath(path)
}
} catch (e) {
- err("FS.trackingDelegate['willDeletePath']('" + path + "') threw an exception: " + e.message)
+ err(
+ "FS.trackingDelegate['willDeletePath']('" +
+ path +
+ "') threw an exception: " +
+ e.message
+ )
}
- parent.node_ops.unlink(parent, name);
- FS.destroyNode(node);
+ parent.node_ops.unlink(parent, name)
+ FS.destroyNode(node)
try {
- if (FS.trackingDelegate["onDeletePath"]) FS.trackingDelegate["onDeletePath"](path)
+ if (FS.trackingDelegate.onDeletePath) {
+ FS.trackingDelegate.onDeletePath(path)
+ }
} catch (e) {
- err("FS.trackingDelegate['onDeletePath']('" + path + "') threw an exception: " + e.message)
+ err(
+ "FS.trackingDelegate['onDeletePath']('" +
+ path +
+ "') threw an exception: " +
+ e.message
+ )
}
},
readlink: function (path) {
- var lookup = FS.lookupPath(path);
- var link = lookup.node;
+ const lookup = FS.lookupPath(path)
+ const link = lookup.node
if (!link) {
throw new FS.ErrnoError(44)
}
if (!link.node_ops.readlink) {
throw new FS.ErrnoError(28)
}
- return PATH_FS.resolve(FS.getPath(link.parent), link.node_ops.readlink(link))
+ return PATH_FS.resolve(
+ FS.getPath(link.parent),
+ link.node_ops.readlink(link)
+ )
},
stat: function (path, dontFollow) {
- var lookup = FS.lookupPath(path, {
+ const lookup = FS.lookupPath(path, {
follow: !dontFollow
- });
- var node = lookup.node;
+ })
+ const node = lookup.node
if (!node) {
throw new FS.ErrnoError(44)
}
@@ -4219,11 +7157,11 @@ var FS = {
return FS.stat(path, true)
},
chmod: function (path, mode, dontFollow) {
- var node;
- if (typeof path === "string") {
- var lookup = FS.lookupPath(path, {
+ let node
+ if (typeof path === 'string') {
+ const lookup = FS.lookupPath(path, {
follow: !dontFollow
- });
+ })
node = lookup.node
} else {
node = path
@@ -4232,7 +7170,7 @@ var FS = {
throw new FS.ErrnoError(63)
}
node.node_ops.setattr(node, {
- mode: mode & 4095 | node.mode & ~4095,
+ mode: (mode & 4095) | (node.mode & ~4095),
timestamp: Date.now()
})
},
@@ -4240,18 +7178,18 @@ var FS = {
FS.chmod(path, mode, true)
},
fchmod: function (fd, mode) {
- var stream = FS.getStream(fd);
+ const stream = FS.getStream(fd)
if (!stream) {
throw new FS.ErrnoError(8)
}
FS.chmod(stream.node, mode)
},
chown: function (path, uid, gid, dontFollow) {
- var node;
- if (typeof path === "string") {
- var lookup = FS.lookupPath(path, {
+ let node
+ if (typeof path === 'string') {
+ const lookup = FS.lookupPath(path, {
follow: !dontFollow
- });
+ })
node = lookup.node
} else {
node = path
@@ -4267,7 +7205,7 @@ var FS = {
FS.chown(path, uid, gid, true)
},
fchown: function (fd, uid, gid) {
- var stream = FS.getStream(fd);
+ const stream = FS.getStream(fd)
if (!stream) {
throw new FS.ErrnoError(8)
}
@@ -4277,11 +7215,11 @@ var FS = {
if (len < 0) {
throw new FS.ErrnoError(28)
}
- var node;
- if (typeof path === "string") {
- var lookup = FS.lookupPath(path, {
+ let node
+ if (typeof path === 'string') {
+ const lookup = FS.lookupPath(path, {
follow: true
- });
+ })
node = lookup.node
} else {
node = path
@@ -4295,7 +7233,7 @@ var FS = {
if (!FS.isFile(node.mode)) {
throw new FS.ErrnoError(28)
}
- var errCode = FS.nodePermissions(node, "w");
+ const errCode = FS.nodePermissions(node, 'w')
if (errCode) {
throw new FS.ErrnoError(errCode)
}
@@ -4305,7 +7243,7 @@ var FS = {
})
},
ftruncate: function (fd, len) {
- var stream = FS.getStream(fd);
+ const stream = FS.getStream(fd)
if (!stream) {
throw new FS.ErrnoError(8)
}
@@ -4315,45 +7253,45 @@ var FS = {
FS.truncate(stream.node, len)
},
utime: function (path, atime, mtime) {
- var lookup = FS.lookupPath(path, {
+ const lookup = FS.lookupPath(path, {
follow: true
- });
- var node = lookup.node;
+ })
+ const node = lookup.node
node.node_ops.setattr(node, {
timestamp: Math.max(atime, mtime)
})
},
open: function (path, flags, mode, fd_start, fd_end) {
- if (path === "") {
+ if (path === '') {
throw new FS.ErrnoError(44)
}
- flags = typeof flags === "string" ? FS.modeStringToFlags(flags) : flags;
- mode = typeof mode === "undefined" ? 438 : mode;
+ flags = typeof flags === 'string' ? FS.modeStringToFlags(flags) : flags
+ mode = typeof mode === 'undefined' ? 438 : mode
if (flags & 64) {
- mode = mode & 4095 | 32768
+ mode = (mode & 4095) | 32768
} else {
mode = 0
}
- var node;
- if (typeof path === "object") {
+ let node
+ if (typeof path === 'object') {
node = path
} else {
- path = PATH.normalize(path);
+ path = PATH.normalize(path)
try {
- var lookup = FS.lookupPath(path, {
+ const lookup = FS.lookupPath(path, {
follow: !(flags & 131072)
- });
+ })
node = lookup.node
} catch (e) {}
}
- var created = false;
+ let created = false
if (flags & 64) {
if (node) {
if (flags & 128) {
throw new FS.ErrnoError(20)
}
} else {
- node = FS.mknod(path, mode, 0);
+ node = FS.mknod(path, mode, 0)
created = true
}
}
@@ -4367,7 +7305,7 @@ var FS = {
throw new FS.ErrnoError(54)
}
if (!created) {
- var errCode = FS.mayOpen(node, flags);
+ const errCode = FS.mayOpen(node, flags)
if (errCode) {
throw new FS.ErrnoError(errCode)
}
@@ -4375,40 +7313,49 @@ var FS = {
if (flags & 512) {
FS.truncate(node, 0)
}
- flags &= ~(128 | 512 | 131072);
- var stream = FS.createStream({
- node: node,
- path: FS.getPath(node),
- flags: flags,
- seekable: true,
- position: 0,
- stream_ops: node.stream_ops,
- ungotten: [],
- error: false
- }, fd_start, fd_end);
+ flags &= ~(128 | 512 | 131072)
+ const stream = FS.createStream(
+ {
+ node: node,
+ path: FS.getPath(node),
+ flags: flags,
+ seekable: true,
+ position: 0,
+ stream_ops: node.stream_ops,
+ ungotten: [],
+ error: false
+ },
+ fd_start,
+ fd_end
+ )
if (stream.stream_ops.open) {
stream.stream_ops.open(stream)
}
- if (Module["logReadFiles"] && !(flags & 1)) {
- if (!FS.readFiles) FS.readFiles = {};
+ if (Module.logReadFiles && !(flags & 1)) {
+ if (!FS.readFiles) FS.readFiles = {}
if (!(path in FS.readFiles)) {
- FS.readFiles[path] = 1;
- err("FS.trackingDelegate error on read file: " + path)
+ FS.readFiles[path] = 1
+ err('FS.trackingDelegate error on read file: ' + path)
}
}
try {
- if (FS.trackingDelegate["onOpenFile"]) {
- var trackingFlags = 0;
+ if (FS.trackingDelegate.onOpenFile) {
+ let trackingFlags = 0
if ((flags & 2097155) !== 1) {
trackingFlags |= FS.tracking.openFlags.READ
}
if ((flags & 2097155) !== 0) {
trackingFlags |= FS.tracking.openFlags.WRITE
}
- FS.trackingDelegate["onOpenFile"](path, trackingFlags)
+ FS.trackingDelegate.onOpenFile(path, trackingFlags)
}
} catch (e) {
- err("FS.trackingDelegate['onOpenFile']('" + path + "', flags) threw an exception: " + e.message)
+ err(
+ "FS.trackingDelegate['onOpenFile']('" +
+ path +
+ "', flags) threw an exception: " +
+ e.message
+ )
}
return stream
},
@@ -4416,7 +7363,7 @@ var FS = {
if (FS.isClosed(stream)) {
throw new FS.ErrnoError(8)
}
- if (stream.getdents) stream.getdents = null;
+ if (stream.getdents) stream.getdents = null
try {
if (stream.stream_ops.close) {
stream.stream_ops.close(stream)
@@ -4441,8 +7388,8 @@ var FS = {
if (whence != 0 && whence != 1 && whence != 2) {
throw new FS.ErrnoError(28)
}
- stream.position = stream.stream_ops.llseek(stream, offset, whence);
- stream.ungotten = [];
+ stream.position = stream.stream_ops.llseek(stream, offset, whence)
+ stream.ungotten = []
return stream.position
},
read: function (stream, buffer, offset, length, position) {
@@ -4461,14 +7408,20 @@ var FS = {
if (!stream.stream_ops.read) {
throw new FS.ErrnoError(28)
}
- var seeking = typeof position !== "undefined";
+ const seeking = typeof position !== 'undefined'
if (!seeking) {
position = stream.position
} else if (!stream.seekable) {
throw new FS.ErrnoError(70)
}
- var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position);
- if (!seeking) stream.position += bytesRead;
+ const bytesRead = stream.stream_ops.read(
+ stream,
+ buffer,
+ offset,
+ length,
+ position
+ )
+ if (!seeking) stream.position += bytesRead
return bytesRead
},
write: function (stream, buffer, offset, length, position, canOwn) {
@@ -4490,18 +7443,32 @@ var FS = {
if (stream.seekable && stream.flags & 1024) {
FS.llseek(stream, 0, 2)
}
- var seeking = typeof position !== "undefined";
+ const seeking = typeof position !== 'undefined'
if (!seeking) {
position = stream.position
} else if (!stream.seekable) {
throw new FS.ErrnoError(70)
}
- var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn);
- if (!seeking) stream.position += bytesWritten;
+ const bytesWritten = stream.stream_ops.write(
+ stream,
+ buffer,
+ offset,
+ length,
+ position,
+ canOwn
+ )
+ if (!seeking) stream.position += bytesWritten
try {
- if (stream.path && FS.trackingDelegate["onWriteToFile"]) FS.trackingDelegate["onWriteToFile"](stream.path)
+ if (stream.path && FS.trackingDelegate.onWriteToFile) {
+ FS.trackingDelegate.onWriteToFile(stream.path)
+ }
} catch (e) {
- err("FS.trackingDelegate['onWriteToFile']('" + stream.path + "') threw an exception: " + e.message)
+ err(
+ "FS.trackingDelegate['onWriteToFile']('" +
+ stream.path +
+ "') threw an exception: " +
+ e.message
+ )
}
return bytesWritten
},
@@ -4524,7 +7491,11 @@ var FS = {
stream.stream_ops.allocate(stream, offset, length)
},
mmap: function (stream, buffer, offset, length, position, prot, flags) {
- if ((prot & 2) !== 0 && (flags & 2) === 0 && (stream.flags & 2097155) !== 2) {
+ if (
+ (prot & 2) !== 0 &&
+ (flags & 2) === 0 &&
+ (stream.flags & 2097155) !== 2
+ ) {
throw new FS.ErrnoError(2)
}
if ((stream.flags & 2097155) === 1) {
@@ -4533,7 +7504,15 @@ var FS = {
if (!stream.stream_ops.mmap) {
throw new FS.ErrnoError(43)
}
- return stream.stream_ops.mmap(stream, buffer, offset, length, position, prot, flags)
+ return stream.stream_ops.mmap(
+ stream,
+ buffer,
+ offset,
+ length,
+ position,
+ prot,
+ flags
+ )
},
msync: function (stream, buffer, offset, length, mmapFlags) {
if (!stream || !stream.stream_ops.msync) {
@@ -4551,38 +7530,38 @@ var FS = {
return stream.stream_ops.ioctl(stream, cmd, arg)
},
readFile: function (path, opts) {
- opts = opts || {};
- opts.flags = opts.flags || "r";
- opts.encoding = opts.encoding || "binary";
- if (opts.encoding !== "utf8" && opts.encoding !== "binary") {
+ opts = opts || {}
+ opts.flags = opts.flags || 'r'
+ opts.encoding = opts.encoding || 'binary'
+ if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') {
throw new Error('Invalid encoding type "' + opts.encoding + '"')
}
- var ret;
- var stream = FS.open(path, opts.flags);
- var stat = FS.stat(path);
- var length = stat.size;
- var buf = new Uint8Array(length);
- FS.read(stream, buf, 0, length, 0);
- if (opts.encoding === "utf8") {
+ let ret
+ const stream = FS.open(path, opts.flags)
+ const stat = FS.stat(path)
+ const length = stat.size
+ const buf = new Uint8Array(length)
+ FS.read(stream, buf, 0, length, 0)
+ if (opts.encoding === 'utf8') {
ret = UTF8ArrayToString(buf, 0)
- } else if (opts.encoding === "binary") {
+ } else if (opts.encoding === 'binary') {
ret = buf
}
- FS.close(stream);
+ FS.close(stream)
return ret
},
writeFile: function (path, data, opts) {
- opts = opts || {};
- opts.flags = opts.flags || "w";
- var stream = FS.open(path, opts.flags, opts.mode);
- if (typeof data === "string") {
- var buf = new Uint8Array(lengthBytesUTF8(data) + 1);
- var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length);
+ opts = opts || {}
+ opts.flags = opts.flags || 'w'
+ const stream = FS.open(path, opts.flags, opts.mode)
+ if (typeof data === 'string') {
+ const buf = new Uint8Array(lengthBytesUTF8(data) + 1)
+ const actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length)
FS.write(stream, buf, 0, actualNumBytes, undefined, opts.canOwn)
} else if (ArrayBuffer.isView(data)) {
FS.write(stream, data, 0, data.byteLength, undefined, opts.canOwn)
} else {
- throw new Error("Unsupported data type")
+ throw new Error('Unsupported data type')
}
FS.close(stream)
},
@@ -4590,28 +7569,28 @@ var FS = {
return FS.currentPath
},
chdir: function (path) {
- var lookup = FS.lookupPath(path, {
+ const lookup = FS.lookupPath(path, {
follow: true
- });
+ })
if (lookup.node === null) {
throw new FS.ErrnoError(44)
}
if (!FS.isDir(lookup.node.mode)) {
throw new FS.ErrnoError(54)
}
- var errCode = FS.nodePermissions(lookup.node, "x");
+ const errCode = FS.nodePermissions(lookup.node, 'x')
if (errCode) {
throw new FS.ErrnoError(errCode)
}
FS.currentPath = lookup.path
},
createDefaultDirectories: function () {
- FS.mkdir("/tmp");
- FS.mkdir("/home");
- FS.mkdir("/home/web_user")
+ FS.mkdir('/tmp')
+ FS.mkdir('/home')
+ FS.mkdir('/home/web_user')
},
createDefaultDevices: function () {
- FS.mkdir("/dev");
+ FS.mkdir('/dev')
FS.registerDevice(FS.makedev(1, 3), {
read: function () {
return 0
@@ -4619,123 +7598,131 @@ var FS = {
write: function (stream, buffer, offset, length, pos) {
return length
}
- });
- FS.mkdev("/dev/null", FS.makedev(1, 3));
- TTY.register(FS.makedev(5, 0), TTY.default_tty_ops);
- TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops);
- FS.mkdev("/dev/tty", FS.makedev(5, 0));
- FS.mkdev("/dev/tty1", FS.makedev(6, 0));
- var random_device;
- if (typeof crypto === "object" && typeof crypto["getRandomValues"] === "function") {
- var randomBuffer = new Uint8Array(1);
+ })
+ FS.mkdev('/dev/null', FS.makedev(1, 3))
+ TTY.register(FS.makedev(5, 0), TTY.default_tty_ops)
+ TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops)
+ FS.mkdev('/dev/tty', FS.makedev(5, 0))
+ FS.mkdev('/dev/tty1', FS.makedev(6, 0))
+ let random_device
+ if (
+ typeof crypto === 'object' &&
+ typeof crypto.getRandomValues === 'function'
+ ) {
+ const randomBuffer = new Uint8Array(1)
random_device = function () {
- crypto.getRandomValues(randomBuffer);
+ crypto.getRandomValues(randomBuffer)
return randomBuffer[0]
}
- } else {}
+ } else {
+ }
if (!random_device) {
random_device = function () {
- abort("random_device")
+ abort('random_device')
}
}
- FS.createDevice("/dev", "random", random_device);
- FS.createDevice("/dev", "urandom", random_device);
- FS.mkdir("/dev/shm");
- FS.mkdir("/dev/shm/tmp")
+ FS.createDevice('/dev', 'random', random_device)
+ FS.createDevice('/dev', 'urandom', random_device)
+ FS.mkdir('/dev/shm')
+ FS.mkdir('/dev/shm/tmp')
},
createSpecialDirectories: function () {
- FS.mkdir("/proc");
- FS.mkdir("/proc/self");
- FS.mkdir("/proc/self/fd");
- FS.mount({
- mount: function () {
- var node = FS.createNode("/proc/self", "fd", 16384 | 511, 73);
- node.node_ops = {
- lookup: function (parent, name) {
- var fd = +name;
- var stream = FS.getStream(fd);
- if (!stream) throw new FS.ErrnoError(8);
- var ret = {
- parent: null,
- mount: {
- mountpoint: "fake"
- },
- node_ops: {
- readlink: function () {
- return stream.path
+ FS.mkdir('/proc')
+ FS.mkdir('/proc/self')
+ FS.mkdir('/proc/self/fd')
+ FS.mount(
+ {
+ mount: function () {
+ const node = FS.createNode('/proc/self', 'fd', 16384 | 511, 73)
+ node.node_ops = {
+ lookup: function (parent, name) {
+ const fd = +name
+ const stream = FS.getStream(fd)
+ if (!stream) throw new FS.ErrnoError(8)
+ const ret = {
+ parent: null,
+ mount: {
+ mountpoint: 'fake'
+ },
+ node_ops: {
+ readlink: function () {
+ return stream.path
+ }
}
}
- };
- ret.parent = ret;
- return ret
+ ret.parent = ret
+ return ret
+ }
}
- };
- return node
- }
- }, {}, "/proc/self/fd")
+ return node
+ }
+ },
+ {},
+ '/proc/self/fd'
+ )
},
createStandardStreams: function () {
- if (Module["stdin"]) {
- FS.createDevice("/dev", "stdin", Module["stdin"])
+ if (Module.stdin) {
+ FS.createDevice('/dev', 'stdin', Module.stdin)
} else {
- FS.symlink("/dev/tty", "/dev/stdin")
+ FS.symlink('/dev/tty', '/dev/stdin')
}
- if (Module["stdout"]) {
- FS.createDevice("/dev", "stdout", null, Module["stdout"])
+ if (Module.stdout) {
+ FS.createDevice('/dev', 'stdout', null, Module.stdout)
} else {
- FS.symlink("/dev/tty", "/dev/stdout")
+ FS.symlink('/dev/tty', '/dev/stdout')
}
- if (Module["stderr"]) {
- FS.createDevice("/dev", "stderr", null, Module["stderr"])
+ if (Module.stderr) {
+ FS.createDevice('/dev', 'stderr', null, Module.stderr)
} else {
- FS.symlink("/dev/tty1", "/dev/stderr")
+ FS.symlink('/dev/tty1', '/dev/stderr')
}
- var stdin = FS.open("/dev/stdin", "r");
- var stdout = FS.open("/dev/stdout", "w");
- var stderr = FS.open("/dev/stderr", "w")
+ const stdin = FS.open('/dev/stdin', 'r')
+ const stdout = FS.open('/dev/stdout', 'w')
+ const stderr = FS.open('/dev/stderr', 'w')
},
ensureErrnoError: function () {
- if (FS.ErrnoError) return;
- FS.ErrnoError = function ErrnoError(errno, node) {
- this.node = node;
+ if (FS.ErrnoError) return
+ FS.ErrnoError = function ErrnoError (errno, node) {
+ this.node = node
this.setErrno = function (errno) {
this.errno = errno
- };
- this.setErrno(errno);
- this.message = "FS error"
- };
- FS.ErrnoError.prototype = new Error;
- FS.ErrnoError.prototype.constructor = FS.ErrnoError;
- [44].forEach(function (code) {
- FS.genericErrors[code] = new FS.ErrnoError(code);
- FS.genericErrors[code].stack = ""
+ }
+ this.setErrno(errno)
+ this.message = 'FS error'
+ }
+ FS.ErrnoError.prototype = new Error()
+ FS.ErrnoError.prototype.constructor = FS.ErrnoError
+ ;[44].forEach(function (code) {
+ FS.genericErrors[code] = new FS.ErrnoError(code)
+ FS.genericErrors[code].stack = ''
})
},
staticInit: function () {
- FS.ensureErrnoError();
- FS.nameTable = new Array(4096);
- FS.mount(MEMFS, {}, "/");
- FS.createDefaultDirectories();
- FS.createDefaultDevices();
- FS.createSpecialDirectories();
+ FS.ensureErrnoError()
+ FS.nameTable = new Array(4096)
+ FS.mount(MEMFS, {}, '/')
+ FS.createDefaultDirectories()
+ FS.createDefaultDevices()
+ FS.createSpecialDirectories()
FS.filesystems = {
- "MEMFS": MEMFS
+ MEMFS: MEMFS
}
},
init: function (input, output, error) {
- FS.init.initialized = true;
- FS.ensureErrnoError();
- Module["stdin"] = input || Module["stdin"];
- Module["stdout"] = output || Module["stdout"];
- Module["stderr"] = error || Module["stderr"];
+ FS.init.initialized = true
+ FS.ensureErrnoError()
+ Module.stdin = input || Module.stdin
+ Module.stdout = output || Module.stdout
+ Module.stderr = error || Module.stderr
FS.createStandardStreams()
},
quit: function () {
- FS.init.initialized = false;
- var fflush = Module["_fflush"];
- if (fflush) fflush(0);
- for (var i = 0; i < FS.streams.length; i++) {
- var stream = FS.streams[i];
+ FS.init.initialized = false
+ const fflush = Module._fflush
+ if (fflush) fflush(0)
+ for (let i = 0; i < FS.streams.length; i++) {
+ const stream = FS.streams[i]
if (!stream) {
continue
}
@@ -4743,14 +7730,14 @@ var FS = {
}
},
getMode: function (canRead, canWrite) {
- var mode = 0;
- if (canRead) mode |= 292 | 73;
- if (canWrite) mode |= 146;
+ let mode = 0
+ if (canRead) mode |= 292 | 73
+ if (canWrite) mode |= 146
return mode
},
joinPath: function (parts, forceRelative) {
- var path = PATH.join.apply(null, parts);
- if (forceRelative && path[0] == "/") path = path.substr(1);
+ let path = PATH.join.apply(null, parts)
+ if (forceRelative && path[0] == '/') path = path.substr(1)
return path
},
absolutePath: function (relative, base) {
@@ -4760,11 +7747,11 @@ var FS = {
return PATH.normalize(path)
},
findObject: function (path, dontResolveLastLink) {
- var ret = FS.analyzePath(path, dontResolveLastLink);
+ const ret = FS.analyzePath(path, dontResolveLastLink)
if (ret.exists) {
return ret.object
} else {
- setErrNo(ret.error);
+ setErrNo(ret.error)
return null
}
},
@@ -4772,10 +7759,10 @@ var FS = {
try {
var lookup = FS.lookupPath(path, {
follow: !dontResolveLastLink
- });
+ })
path = lookup.path
} catch (e) {}
- var ret = {
+ const ret = {
isRoot: false,
exists: false,
error: 0,
@@ -4785,40 +7772,43 @@ var FS = {
parentExists: false,
parentPath: null,
parentObject: null
- };
+ }
try {
var lookup = FS.lookupPath(path, {
parent: true
- });
- ret.parentExists = true;
- ret.parentPath = lookup.path;
- ret.parentObject = lookup.node;
- ret.name = PATH.basename(path);
+ })
+ ret.parentExists = true
+ ret.parentPath = lookup.path
+ ret.parentObject = lookup.node
+ ret.name = PATH.basename(path)
lookup = FS.lookupPath(path, {
follow: !dontResolveLastLink
- });
- ret.exists = true;
- ret.path = lookup.path;
- ret.object = lookup.node;
- ret.name = lookup.node.name;
- ret.isRoot = lookup.path === "/"
+ })
+ ret.exists = true
+ ret.path = lookup.path
+ ret.object = lookup.node
+ ret.name = lookup.node.name
+ ret.isRoot = lookup.path === '/'
} catch (e) {
ret.error = e.errno
}
return ret
},
createFolder: function (parent, name, canRead, canWrite) {
- var path = PATH.join2(typeof parent === "string" ? parent : FS.getPath(parent), name);
- var mode = FS.getMode(canRead, canWrite);
+ const path = PATH.join2(
+ typeof parent === 'string' ? parent : FS.getPath(parent),
+ name
+ )
+ const mode = FS.getMode(canRead, canWrite)
return FS.mkdir(path, mode)
},
createPath: function (parent, path, canRead, canWrite) {
- parent = typeof parent === "string" ? parent : FS.getPath(parent);
- var parts = path.split("/").reverse();
+ parent = typeof parent === 'string' ? parent : FS.getPath(parent)
+ const parts = path.split('/').reverse()
while (parts.length) {
- var part = parts.pop();
- if (!part) continue;
- var current = PATH.join2(parent, part);
+ const part = parts.pop()
+ if (!part) continue
+ var current = PATH.join2(parent, part)
try {
FS.mkdir(current)
} catch (e) {}
@@ -4827,33 +7817,46 @@ var FS = {
return current
},
createFile: function (parent, name, properties, canRead, canWrite) {
- var path = PATH.join2(typeof parent === "string" ? parent : FS.getPath(parent), name);
- var mode = FS.getMode(canRead, canWrite);
+ const path = PATH.join2(
+ typeof parent === 'string' ? parent : FS.getPath(parent),
+ name
+ )
+ const mode = FS.getMode(canRead, canWrite)
return FS.create(path, mode)
},
createDataFile: function (parent, name, data, canRead, canWrite, canOwn) {
- var path = name ? PATH.join2(typeof parent === "string" ? parent : FS.getPath(parent), name) : parent;
- var mode = FS.getMode(canRead, canWrite);
- var node = FS.create(path, mode);
+ const path = name
+ ? PATH.join2(
+ typeof parent === 'string' ? parent : FS.getPath(parent),
+ name
+ )
+ : parent
+ const mode = FS.getMode(canRead, canWrite)
+ const node = FS.create(path, mode)
if (data) {
- if (typeof data === "string") {
- var arr = new Array(data.length);
- for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i);
+ if (typeof data === 'string') {
+ const arr = new Array(data.length)
+ for (let i = 0, len = data.length; i < len; ++i) {
+ arr[i] = data.charCodeAt(i)
+ }
data = arr
}
- FS.chmod(node, mode | 146);
- var stream = FS.open(node, "w");
- FS.write(stream, data, 0, data.length, 0, canOwn);
- FS.close(stream);
+ FS.chmod(node, mode | 146)
+ const stream = FS.open(node, 'w')
+ FS.write(stream, data, 0, data.length, 0, canOwn)
+ FS.close(stream)
FS.chmod(node, mode)
}
return node
},
createDevice: function (parent, name, input, output) {
- var path = PATH.join2(typeof parent === "string" ? parent : FS.getPath(parent), name);
- var mode = FS.getMode(!!input, !!output);
- if (!FS.createDevice.major) FS.createDevice.major = 64;
- var dev = FS.makedev(FS.createDevice.major++, 0);
+ const path = PATH.join2(
+ typeof parent === 'string' ? parent : FS.getPath(parent),
+ name
+ )
+ const mode = FS.getMode(!!input, !!output)
+ if (!FS.createDevice.major) FS.createDevice.major = 64
+ const dev = FS.makedev(FS.createDevice.major++, 0)
FS.registerDevice(dev, {
open: function (stream) {
stream.seekable = false
@@ -4864,9 +7867,9 @@ var FS = {
}
},
read: function (stream, buffer, offset, length, pos) {
- var bytesRead = 0;
- for (var i = 0; i < length; i++) {
- var result;
+ let bytesRead = 0
+ for (let i = 0; i < length; i++) {
+ var result
try {
result = input()
} catch (e) {
@@ -4875,8 +7878,8 @@ var FS = {
if (result === undefined && bytesRead === 0) {
throw new FS.ErrnoError(6)
}
- if (result === null || result === undefined) break;
- bytesRead++;
+ if (result === null || result === undefined) break
+ bytesRead++
buffer[offset + i] = result
}
if (bytesRead) {
@@ -4897,100 +7900,130 @@ var FS = {
}
return i
}
- });
+ })
return FS.mkdev(path, mode, dev)
},
createLink: function (parent, name, target, canRead, canWrite) {
- var path = PATH.join2(typeof parent === "string" ? parent : FS.getPath(parent), name);
+ const path = PATH.join2(
+ typeof parent === 'string' ? parent : FS.getPath(parent),
+ name
+ )
return FS.symlink(target, path)
},
forceLoadFile: function (obj) {
- if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true;
- var success = true;
- if (typeof XMLHttpRequest !== "undefined") {
- throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")
+ if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true
+ let success = true
+ if (typeof XMLHttpRequest !== 'undefined') {
+ throw new Error(
+ 'Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.'
+ )
} else if (read_) {
try {
- obj.contents = intArrayFromString(read_(obj.url), true);
+ obj.contents = intArrayFromString(read_(obj.url), true)
obj.usedBytes = obj.contents.length
} catch (e) {
success = false
}
} else {
- throw new Error("Cannot load without read() or XMLHttpRequest.")
+ throw new Error('Cannot load without read() or XMLHttpRequest.')
}
- if (!success) setErrNo(29);
+ if (!success) setErrNo(29)
return success
},
createLazyFile: function (parent, name, url, canRead, canWrite) {
- function LazyUint8Array() {
- this.lengthKnown = false;
+ function LazyUint8Array () {
+ this.lengthKnown = false
this.chunks = []
}
- LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) {
+ LazyUint8Array.prototype.get = function LazyUint8Array_get (idx) {
if (idx > this.length - 1 || idx < 0) {
return undefined
}
- var chunkOffset = idx % this.chunkSize;
- var chunkNum = idx / this.chunkSize | 0;
+ const chunkOffset = idx % this.chunkSize
+ const chunkNum = (idx / this.chunkSize) | 0
return this.getter(chunkNum)[chunkOffset]
- };
- LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) {
+ }
+ LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter (
+ getter
+ ) {
this.getter = getter
- };
- LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() {
- var xhr = new XMLHttpRequest;
- xhr.open("HEAD", url, false);
- xhr.send(null);
- if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status);
- var datalength = Number(xhr.getResponseHeader("Content-length"));
- var header;
- var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes";
- var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip";
- var chunkSize = 1024 * 1024;
- if (!hasByteServing) chunkSize = datalength;
- var doXHR = function (from, to) {
- if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!");
- if (to > datalength - 1) throw new Error("only " + datalength + " bytes available! programmer error!");
- var xhr = new XMLHttpRequest;
- xhr.open("GET", url, false);
- if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to);
- if (typeof Uint8Array != "undefined") xhr.responseType = "arraybuffer";
- if (xhr.overrideMimeType) {
- xhr.overrideMimeType("text/plain; charset=x-user-defined")
+ }
+ LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength () {
+ const xhr = new XMLHttpRequest()
+ xhr.open('HEAD', url, false)
+ xhr.send(null)
+ if (!((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304)) {
+ throw new Error("Couldn't load " + url + '. Status: ' + xhr.status)
+ }
+ let datalength = Number(xhr.getResponseHeader('Content-length'))
+ let header
+ const hasByteServing =
+ (header = xhr.getResponseHeader('Accept-Ranges')) && header === 'bytes'
+ const usesGzip =
+ (header = xhr.getResponseHeader('Content-Encoding')) &&
+ header === 'gzip'
+ let chunkSize = 1024 * 1024
+ if (!hasByteServing) chunkSize = datalength
+ const doXHR = function (from, to) {
+ if (from > to) {
+ throw new Error(
+ 'invalid range (' + from + ', ' + to + ') or no bytes requested!'
+ )
+ }
+ if (to > datalength - 1) {
+ throw new Error(
+ 'only ' + datalength + ' bytes available! programmer error!'
+ )
+ }
+ const xhr = new XMLHttpRequest()
+ xhr.open('GET', url, false)
+ if (datalength !== chunkSize) {
+ xhr.setRequestHeader('Range', 'bytes=' + from + '-' + to)
+ }
+ if (typeof Uint8Array !== 'undefined') xhr.responseType = 'arraybuffer'
+ if (xhr.overrideMimeType) {
+ xhr.overrideMimeType('text/plain; charset=x-user-defined')
+ }
+ xhr.send(null)
+ if (!((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304)) {
+ throw new Error("Couldn't load " + url + '. Status: ' + xhr.status)
}
- xhr.send(null);
- if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status);
if (xhr.response !== undefined) {
return new Uint8Array(xhr.response || [])
} else {
- return intArrayFromString(xhr.responseText || "", true)
+ return intArrayFromString(xhr.responseText || '', true)
}
- };
- var lazyArray = this;
+ }
+ const lazyArray = this
lazyArray.setDataGetter(function (chunkNum) {
- var start = chunkNum * chunkSize;
- var end = (chunkNum + 1) * chunkSize - 1;
- end = Math.min(end, datalength - 1);
- if (typeof lazyArray.chunks[chunkNum] === "undefined") {
+ const start = chunkNum * chunkSize
+ let end = (chunkNum + 1) * chunkSize - 1
+ end = Math.min(end, datalength - 1)
+ if (typeof lazyArray.chunks[chunkNum] === 'undefined') {
lazyArray.chunks[chunkNum] = doXHR(start, end)
}
- if (typeof lazyArray.chunks[chunkNum] === "undefined") throw new Error("doXHR failed!");
+ if (typeof lazyArray.chunks[chunkNum] === 'undefined') {
+ throw new Error('doXHR failed!')
+ }
return lazyArray.chunks[chunkNum]
- });
+ })
if (usesGzip || !datalength) {
- chunkSize = datalength = 1;
- datalength = this.getter(0).length;
- chunkSize = datalength;
- out("LazyFiles on gzip forces download of the whole file when length is accessed")
+ chunkSize = datalength = 1
+ datalength = this.getter(0).length
+ chunkSize = datalength
+ out(
+ 'LazyFiles on gzip forces download of the whole file when length is accessed'
+ )
}
- this._length = datalength;
- this._chunkSize = chunkSize;
+ this._length = datalength
+ this._chunkSize = chunkSize
this.lengthKnown = true
- };
- if (typeof XMLHttpRequest !== "undefined") {
- if (!ENVIRONMENT_IS_WORKER) throw "Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";
- var lazyArray = new LazyUint8Array;
+ }
+ if (typeof XMLHttpRequest !== 'undefined') {
+ if (!ENVIRONMENT_IS_WORKER) {
+ throw 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc'
+ }
+ const lazyArray = new LazyUint8Array()
Object.defineProperties(lazyArray, {
length: {
get: function () {
@@ -5008,7 +8041,7 @@ var FS = {
return this._chunkSize
}
}
- });
+ })
var properties = {
isDevice: false,
contents: lazyArray
@@ -5019,11 +8052,11 @@ var FS = {
url: url
}
}
- var node = FS.createFile(parent, name, properties, canRead, canWrite);
+ const node = FS.createFile(parent, name, properties, canRead, canWrite)
if (properties.contents) {
node.contents = properties.contents
} else if (properties.url) {
- node.contents = null;
+ node.contents = null
node.url = properties.url
}
Object.defineProperties(node, {
@@ -5032,25 +8065,31 @@ var FS = {
return this.contents.length
}
}
- });
- var stream_ops = {};
- var keys = Object.keys(node.stream_ops);
+ })
+ const stream_ops = {}
+ const keys = Object.keys(node.stream_ops)
keys.forEach(function (key) {
- var fn = node.stream_ops[key];
- stream_ops[key] = function forceLoadLazyFile() {
+ const fn = node.stream_ops[key]
+ stream_ops[key] = function forceLoadLazyFile () {
if (!FS.forceLoadFile(node)) {
throw new FS.ErrnoError(29)
}
return fn.apply(null, arguments)
}
- });
- stream_ops.read = function stream_ops_read(stream, buffer, offset, length, position) {
+ })
+ stream_ops.read = function stream_ops_read (
+ stream,
+ buffer,
+ offset,
+ length,
+ position
+ ) {
if (!FS.forceLoadFile(node)) {
throw new FS.ErrnoError(29)
}
- var contents = stream.node.contents;
- if (position >= contents.length) return 0;
- var size = Math.min(contents.length - position, length);
+ const contents = stream.node.contents
+ if (position >= contents.length) return 0
+ const size = Math.min(contents.length - position, length)
if (contents.slice) {
for (var i = 0; i < size; i++) {
buffer[offset + i] = contents[position + i]
@@ -5061,154 +8100,181 @@ var FS = {
}
}
return size
- };
- node.stream_ops = stream_ops;
+ }
+ node.stream_ops = stream_ops
return node
},
- createPreloadedFile: function (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) {
- Browser.init();
- var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent;
- var dep = getUniqueRunDependency("cp " + fullname);
+ createPreloadedFile: function (
+ parent,
+ name,
+ url,
+ canRead,
+ canWrite,
+ onload,
+ onerror,
+ dontCreateFile,
+ canOwn,
+ preFinish
+ ) {
+ Browser.init()
+ const fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent
+ const dep = getUniqueRunDependency('cp ' + fullname)
- function processData(byteArray) {
- function finish(byteArray) {
- if (preFinish) preFinish();
+ function processData (byteArray) {
+ function finish (byteArray) {
+ if (preFinish) preFinish()
if (!dontCreateFile) {
FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn)
}
- if (onload) onload();
+ if (onload) onload()
removeRunDependency(dep)
}
- var handled = false;
- Module["preloadPlugins"].forEach(function (plugin) {
- if (handled) return;
- if (plugin["canHandle"](fullname)) {
- plugin["handle"](byteArray, fullname, finish, function () {
- if (onerror) onerror();
+ let handled = false
+ Module.preloadPlugins.forEach(function (plugin) {
+ if (handled) return
+ if (plugin.canHandle(fullname)) {
+ plugin.handle(byteArray, fullname, finish, function () {
+ if (onerror) onerror()
removeRunDependency(dep)
- });
+ })
handled = true
}
- });
+ })
if (!handled) finish(byteArray)
}
- addRunDependency(dep);
- if (typeof url == "string") {
- Browser.asyncLoad(url, function (byteArray) {
- processData(byteArray)
- }, onerror)
+ addRunDependency(dep)
+ if (typeof url === 'string') {
+ Browser.asyncLoad(
+ url,
+ function (byteArray) {
+ processData(byteArray)
+ },
+ onerror
+ )
} else {
processData(url)
}
},
indexedDB: function () {
- return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB
+ return (
+ window.indexedDB ||
+ window.mozIndexedDB ||
+ window.webkitIndexedDB ||
+ window.msIndexedDB
+ )
},
DB_NAME: function () {
- return "EM_FS_" + window.location.pathname
+ return 'EM_FS_' + window.location.pathname
},
DB_VERSION: 20,
- DB_STORE_NAME: "FILE_DATA",
+ DB_STORE_NAME: 'FILE_DATA',
saveFilesToDB: function (paths, onload, onerror) {
- onload = onload || function () {};
- onerror = onerror || function () {};
- var indexedDB = FS.indexedDB();
+ onload = onload || function () {}
+ onerror = onerror || function () {}
+ const indexedDB = FS.indexedDB()
try {
var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION)
} catch (e) {
return onerror(e)
}
- openRequest.onupgradeneeded = function openRequest_onupgradeneeded() {
- out("creating db");
- var db = openRequest.result;
+ openRequest.onupgradeneeded = function openRequest_onupgradeneeded () {
+ out('creating db')
+ const db = openRequest.result
db.createObjectStore(FS.DB_STORE_NAME)
- };
- openRequest.onsuccess = function openRequest_onsuccess() {
- var db = openRequest.result;
- var transaction = db.transaction([FS.DB_STORE_NAME], "readwrite");
- var files = transaction.objectStore(FS.DB_STORE_NAME);
- var ok = 0,
- fail = 0,
- total = paths.length;
+ }
+ openRequest.onsuccess = function openRequest_onsuccess () {
+ const db = openRequest.result
+ const transaction = db.transaction([FS.DB_STORE_NAME], 'readwrite')
+ const files = transaction.objectStore(FS.DB_STORE_NAME)
+ let ok = 0
+ let fail = 0
+ const total = paths.length
- function finish() {
- if (fail == 0) onload();
+ function finish () {
+ if (fail == 0) onload()
else onerror()
}
paths.forEach(function (path) {
- var putRequest = files.put(FS.analyzePath(path).object.contents, path);
- putRequest.onsuccess = function putRequest_onsuccess() {
- ok++;
- if (ok + fail == total) finish()
- };
- putRequest.onerror = function putRequest_onerror() {
- fail++;
+ const putRequest = files.put(FS.analyzePath(path).object.contents, path)
+ putRequest.onsuccess = function putRequest_onsuccess () {
+ ok++
if (ok + fail == total) finish()
}
- });
+ putRequest.onerror = function putRequest_onerror () {
+ fail++
+ if (ok + fail == total) finish()
+ }
+ })
transaction.onerror = onerror
- };
+ }
openRequest.onerror = onerror
},
loadFilesFromDB: function (paths, onload, onerror) {
- onload = onload || function () {};
- onerror = onerror || function () {};
- var indexedDB = FS.indexedDB();
+ onload = onload || function () {}
+ onerror = onerror || function () {}
+ const indexedDB = FS.indexedDB()
try {
var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION)
} catch (e) {
return onerror(e)
}
- openRequest.onupgradeneeded = onerror;
- openRequest.onsuccess = function openRequest_onsuccess() {
- var db = openRequest.result;
+ openRequest.onupgradeneeded = onerror
+ openRequest.onsuccess = function openRequest_onsuccess () {
+ const db = openRequest.result
try {
- var transaction = db.transaction([FS.DB_STORE_NAME], "readonly")
+ var transaction = db.transaction([FS.DB_STORE_NAME], 'readonly')
} catch (e) {
- onerror(e);
+ onerror(e)
return
}
- var files = transaction.objectStore(FS.DB_STORE_NAME);
- var ok = 0,
- fail = 0,
- total = paths.length;
+ const files = transaction.objectStore(FS.DB_STORE_NAME)
+ let ok = 0
+ let fail = 0
+ const total = paths.length
- function finish() {
- if (fail == 0) onload();
+ function finish () {
+ if (fail == 0) onload()
else onerror()
}
paths.forEach(function (path) {
- var getRequest = files.get(path);
- getRequest.onsuccess = function getRequest_onsuccess() {
+ const getRequest = files.get(path)
+ getRequest.onsuccess = function getRequest_onsuccess () {
if (FS.analyzePath(path).exists) {
FS.unlink(path)
}
- FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true);
- ok++;
- if (ok + fail == total) finish()
- };
- getRequest.onerror = function getRequest_onerror() {
- fail++;
+ FS.createDataFile(
+ PATH.dirname(path),
+ PATH.basename(path),
+ getRequest.result,
+ true,
+ true,
+ true
+ )
+ ok++
if (ok + fail == total) finish()
}
- });
+ getRequest.onerror = function getRequest_onerror () {
+ fail++
+ if (ok + fail == total) finish()
+ }
+ })
transaction.onerror = onerror
- };
+ }
openRequest.onerror = onerror
}
-};
+}
var SYSCALLS = {
mappings: {},
DEFAULT_POLLMASK: 5,
umask: 511,
calculateAt: function (dirfd, path) {
- if (path[0] !== "/") {
- var dir;
+ if (path[0] !== '/') {
+ let dir
if (dirfd === -100) {
dir = FS.cwd()
} else {
- var dirstream = FS.getStream(dirfd);
- if (!dirstream) throw new FS.ErrnoError(8);
+ const dirstream = FS.getStream(dirfd)
+ if (!dirstream) throw new FS.ErrnoError(8)
dir = dirstream.path
}
path = PATH.join2(dir, path)
@@ -5219,40 +8285,68 @@ var SYSCALLS = {
try {
var stat = func(path)
} catch (e) {
- if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) {
+ if (
+ e &&
+ e.node &&
+ PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))
+ ) {
return -54
}
throw e
}
- HEAP32[buf >> 2] = stat.dev;
- HEAP32[buf + 4 >> 2] = 0;
- HEAP32[buf + 8 >> 2] = stat.ino;
- HEAP32[buf + 12 >> 2] = stat.mode;
- HEAP32[buf + 16 >> 2] = stat.nlink;
- HEAP32[buf + 20 >> 2] = stat.uid;
- HEAP32[buf + 24 >> 2] = stat.gid;
- HEAP32[buf + 28 >> 2] = stat.rdev;
- HEAP32[buf + 32 >> 2] = 0;
- tempI64 = [stat.size >>> 0, (tempDouble = stat.size, +Math_abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math_min(+Math_floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 40 >> 2] = tempI64[0], HEAP32[buf + 44 >> 2] = tempI64[1];
- HEAP32[buf + 48 >> 2] = 4096;
- HEAP32[buf + 52 >> 2] = stat.blocks;
- HEAP32[buf + 56 >> 2] = stat.atime.getTime() / 1e3 | 0;
- HEAP32[buf + 60 >> 2] = 0;
- HEAP32[buf + 64 >> 2] = stat.mtime.getTime() / 1e3 | 0;
- HEAP32[buf + 68 >> 2] = 0;
- HEAP32[buf + 72 >> 2] = stat.ctime.getTime() / 1e3 | 0;
- HEAP32[buf + 76 >> 2] = 0;
- tempI64 = [stat.ino >>> 0, (tempDouble = stat.ino, +Math_abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math_min(+Math_floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 80 >> 2] = tempI64[0], HEAP32[buf + 84 >> 2] = tempI64[1];
+ HEAP32[buf >> 2] = stat.dev
+ HEAP32[(buf + 4) >> 2] = 0
+ HEAP32[(buf + 8) >> 2] = stat.ino
+ HEAP32[(buf + 12) >> 2] = stat.mode
+ HEAP32[(buf + 16) >> 2] = stat.nlink
+ HEAP32[(buf + 20) >> 2] = stat.uid
+ HEAP32[(buf + 24) >> 2] = stat.gid
+ HEAP32[(buf + 28) >> 2] = stat.rdev
+ HEAP32[(buf + 32) >> 2] = 0
+ ;(tempI64 = [
+ stat.size >>> 0,
+ ((tempDouble = stat.size),
+ +Math_abs(tempDouble) >= 1
+ ? tempDouble > 0
+ ? (Math_min(+Math_floor(tempDouble / 4294967296), 4294967295) | 0) >>>
+ 0
+ : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>>
+ 0
+ : 0)
+ ]),
+ (HEAP32[(buf + 40) >> 2] = tempI64[0]),
+ (HEAP32[(buf + 44) >> 2] = tempI64[1])
+ HEAP32[(buf + 48) >> 2] = 4096
+ HEAP32[(buf + 52) >> 2] = stat.blocks
+ HEAP32[(buf + 56) >> 2] = (stat.atime.getTime() / 1e3) | 0
+ HEAP32[(buf + 60) >> 2] = 0
+ HEAP32[(buf + 64) >> 2] = (stat.mtime.getTime() / 1e3) | 0
+ HEAP32[(buf + 68) >> 2] = 0
+ HEAP32[(buf + 72) >> 2] = (stat.ctime.getTime() / 1e3) | 0
+ HEAP32[(buf + 76) >> 2] = 0
+ ;(tempI64 = [
+ stat.ino >>> 0,
+ ((tempDouble = stat.ino),
+ +Math_abs(tempDouble) >= 1
+ ? tempDouble > 0
+ ? (Math_min(+Math_floor(tempDouble / 4294967296), 4294967295) | 0) >>>
+ 0
+ : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>>
+ 0
+ : 0)
+ ]),
+ (HEAP32[(buf + 80) >> 2] = tempI64[0]),
+ (HEAP32[(buf + 84) >> 2] = tempI64[1])
return 0
},
doMsync: function (addr, stream, len, flags, offset) {
- var buffer = HEAPU8.slice(addr, addr + len);
+ const buffer = HEAPU8.slice(addr, addr + len)
FS.msync(stream, buffer, offset, len, flags)
},
doMkdir: function (path, mode) {
- path = PATH.normalize(path);
- if (path[path.length - 1] === "/") path = path.substr(0, path.length - 1);
- FS.mkdir(path, mode, 0);
+ path = PATH.normalize(path)
+ if (path[path.length - 1] === '/') path = path.substr(0, path.length - 1)
+ FS.mkdir(path, mode, 0)
return 0
},
doMknod: function (path, mode, dev) {
@@ -5262,235 +8356,269 @@ var SYSCALLS = {
case 24576:
case 4096:
case 49152:
- break;
+ break
default:
return -28
}
- FS.mknod(path, mode, dev);
+ FS.mknod(path, mode, dev)
return 0
},
doReadlink: function (path, buf, bufsize) {
- if (bufsize <= 0) return -28;
- var ret = FS.readlink(path);
- var len = Math.min(bufsize, lengthBytesUTF8(ret));
- var endChar = HEAP8[buf + len];
- stringToUTF8(ret, buf, bufsize + 1);
- HEAP8[buf + len] = endChar;
+ if (bufsize <= 0) return -28
+ const ret = FS.readlink(path)
+ const len = Math.min(bufsize, lengthBytesUTF8(ret))
+ const endChar = HEAP8[buf + len]
+ stringToUTF8(ret, buf, bufsize + 1)
+ HEAP8[buf + len] = endChar
return len
},
doAccess: function (path, amode) {
if (amode & ~7) {
return -28
}
- var node;
- var lookup = FS.lookupPath(path, {
+ let node
+ const lookup = FS.lookupPath(path, {
follow: true
- });
- node = lookup.node;
+ })
+ node = lookup.node
if (!node) {
return -44
}
- var perms = "";
- if (amode & 4) perms += "r";
- if (amode & 2) perms += "w";
- if (amode & 1) perms += "x";
+ let perms = ''
+ if (amode & 4) perms += 'r'
+ if (amode & 2) perms += 'w'
+ if (amode & 1) perms += 'x'
if (perms && FS.nodePermissions(node, perms)) {
return -2
}
return 0
},
doDup: function (path, flags, suggestFD) {
- var suggest = FS.getStream(suggestFD);
- if (suggest) FS.close(suggest);
+ const suggest = FS.getStream(suggestFD)
+ if (suggest) FS.close(suggest)
return FS.open(path, flags, 0, suggestFD, suggestFD).fd
},
doReadv: function (stream, iov, iovcnt, offset) {
- var ret = 0;
- for (var i = 0; i < iovcnt; i++) {
- var ptr = HEAP32[iov + i * 8 >> 2];
- var len = HEAP32[iov + (i * 8 + 4) >> 2];
- var curr = FS.read(stream, HEAP8, ptr, len, offset);
- if (curr < 0) return -1;
- ret += curr;
+ let ret = 0
+ for (let i = 0; i < iovcnt; i++) {
+ const ptr = HEAP32[(iov + i * 8) >> 2]
+ const len = HEAP32[(iov + (i * 8 + 4)) >> 2]
+ const curr = FS.read(stream, HEAP8, ptr, len, offset)
+ if (curr < 0) return -1
+ ret += curr
if (curr < len) break
}
return ret
},
doWritev: function (stream, iov, iovcnt, offset) {
- var ret = 0;
- for (var i = 0; i < iovcnt; i++) {
- var ptr = HEAP32[iov + i * 8 >> 2];
- var len = HEAP32[iov + (i * 8 + 4) >> 2];
- var curr = FS.write(stream, HEAP8, ptr, len, offset);
- if (curr < 0) return -1;
+ let ret = 0
+ for (let i = 0; i < iovcnt; i++) {
+ const ptr = HEAP32[(iov + i * 8) >> 2]
+ const len = HEAP32[(iov + (i * 8 + 4)) >> 2]
+ const curr = FS.write(stream, HEAP8, ptr, len, offset)
+ if (curr < 0) return -1
ret += curr
}
return ret
},
varargs: undefined,
get: function () {
- SYSCALLS.varargs += 4;
- var ret = HEAP32[SYSCALLS.varargs - 4 >> 2];
+ SYSCALLS.varargs += 4
+ const ret = HEAP32[(SYSCALLS.varargs - 4) >> 2]
return ret
},
getStr: function (ptr) {
- var ret = UTF8ToString(ptr);
+ const ret = UTF8ToString(ptr)
return ret
},
getStreamFromFD: function (fd) {
- var stream = FS.getStream(fd);
- if (!stream) throw new FS.ErrnoError(8);
+ const stream = FS.getStream(fd)
+ if (!stream) throw new FS.ErrnoError(8)
return stream
},
get64: function (low, high) {
return low
}
-};
+}
-function ___sys_access(path, amode) {
+function ___sys_access (path, amode) {
try {
- path = SYSCALLS.getStr(path);
+ path = SYSCALLS.getStr(path)
return SYSCALLS.doAccess(path, amode)
} catch (e) {
- if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+ if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e)
return -e.errno
}
}
-function ___sys_chmod(path, mode) {
+function ___sys_chmod (path, mode) {
try {
- path = SYSCALLS.getStr(path);
- FS.chmod(path, mode);
+ path = SYSCALLS.getStr(path)
+ FS.chmod(path, mode)
return 0
} catch (e) {
- if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+ if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e)
return -e.errno
}
}
-function ___sys_fcntl64(fd, cmd, varargs) {
- SYSCALLS.varargs = varargs;
+function ___sys_fcntl64 (fd, cmd, varargs) {
+ SYSCALLS.varargs = varargs
try {
- var stream = SYSCALLS.getStreamFromFD(fd);
+ const stream = SYSCALLS.getStreamFromFD(fd)
switch (cmd) {
case 0: {
- var arg = SYSCALLS.get();
+ var arg = SYSCALLS.get()
if (arg < 0) {
return -28
}
- var newStream;
- newStream = FS.open(stream.path, stream.flags, 0, arg);
+ let newStream
+ newStream = FS.open(stream.path, stream.flags, 0, arg)
return newStream.fd
}
case 1:
case 2:
- return 0;
+ return 0
case 3:
- return stream.flags;
+ return stream.flags
case 4: {
- var arg = SYSCALLS.get();
- stream.flags |= arg;
+ var arg = SYSCALLS.get()
+ stream.flags |= arg
return 0
}
case 12: {
- var arg = SYSCALLS.get();
- var offset = 0;
- HEAP16[arg + offset >> 1] = 2;
+ var arg = SYSCALLS.get()
+ const offset = 0
+ HEAP16[(arg + offset) >> 1] = 2
return 0
}
case 13:
case 14:
- return 0;
+ return 0
case 16:
case 8:
- return -28;
+ return -28
case 9:
- setErrNo(28);
- return -1;
+ setErrNo(28)
+ return -1
default: {
return -28
}
}
} catch (e) {
- if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+ if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e)
return -e.errno
}
}
-function ___sys_fstat64(fd, buf) {
+function ___sys_fstat64 (fd, buf) {
try {
- var stream = SYSCALLS.getStreamFromFD(fd);
+ const stream = SYSCALLS.getStreamFromFD(fd)
return SYSCALLS.doStat(FS.stat, stream.path, buf)
} catch (e) {
- if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+ if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e)
return -e.errno
}
}
-function ___sys_getcwd(buf, size) {
+function ___sys_getcwd (buf, size) {
try {
- if (size === 0) return -28;
- var cwd = FS.cwd();
- var cwdLengthInBytes = lengthBytesUTF8(cwd);
- if (size < cwdLengthInBytes + 1) return -68;
- stringToUTF8(cwd, buf, size);
+ if (size === 0) return -28
+ const cwd = FS.cwd()
+ const cwdLengthInBytes = lengthBytesUTF8(cwd)
+ if (size < cwdLengthInBytes + 1) return -68
+ stringToUTF8(cwd, buf, size)
return buf
} catch (e) {
- if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+ if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e)
return -e.errno
}
}
-function ___sys_getdents64(fd, dirp, count) {
+function ___sys_getdents64 (fd, dirp, count) {
try {
- var stream = SYSCALLS.getStreamFromFD(fd);
+ const stream = SYSCALLS.getStreamFromFD(fd)
if (!stream.getdents) {
stream.getdents = FS.readdir(stream.path)
}
- var struct_size = 280;
- var pos = 0;
- var off = FS.llseek(stream, 0, 1);
- var idx = Math.floor(off / struct_size);
+ const struct_size = 280
+ let pos = 0
+ const off = FS.llseek(stream, 0, 1)
+ let idx = Math.floor(off / struct_size)
while (idx < stream.getdents.length && pos + struct_size <= count) {
- var id;
- var type;
- var name = stream.getdents[idx];
- if (name[0] === ".") {
- id = 1;
+ var id
+ var type
+ const name = stream.getdents[idx]
+ if (name[0] === '.') {
+ id = 1
type = 4
} else {
- var child = FS.lookupNode(stream.node, name);
- id = child.id;
- type = FS.isChrdev(child.mode) ? 2 : FS.isDir(child.mode) ? 4 : FS.isLink(child.mode) ? 10 : 8
+ const child = FS.lookupNode(stream.node, name)
+ id = child.id
+ type = FS.isChrdev(child.mode)
+ ? 2
+ : FS.isDir(child.mode)
+ ? 4
+ : FS.isLink(child.mode)
+ ? 10
+ : 8
}
- tempI64 = [id >>> 0, (tempDouble = id, +Math_abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math_min(+Math_floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[dirp + pos >> 2] = tempI64[0], HEAP32[dirp + pos + 4 >> 2] = tempI64[1];
- tempI64 = [(idx + 1) * struct_size >>> 0, (tempDouble = (idx + 1) * struct_size, +Math_abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math_min(+Math_floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[dirp + pos + 8 >> 2] = tempI64[0], HEAP32[dirp + pos + 12 >> 2] = tempI64[1];
- HEAP16[dirp + pos + 16 >> 1] = 280;
- HEAP8[dirp + pos + 18 >> 0] = type;
- stringToUTF8(name, dirp + pos + 19, 256);
- pos += struct_size;
+ ;(tempI64 = [
+ id >>> 0,
+ ((tempDouble = id),
+ +Math_abs(tempDouble) >= 1
+ ? tempDouble > 0
+ ? (Math_min(+Math_floor(tempDouble / 4294967296), 4294967295) |
+ 0) >>>
+ 0
+ : ~~+Math_ceil(
+ (tempDouble - +(~~tempDouble >>> 0)) / 4294967296
+ ) >>> 0
+ : 0)
+ ]),
+ (HEAP32[(dirp + pos) >> 2] = tempI64[0]),
+ (HEAP32[(dirp + pos + 4) >> 2] = tempI64[1])
+ ;(tempI64 = [
+ ((idx + 1) * struct_size) >>> 0,
+ ((tempDouble = (idx + 1) * struct_size),
+ +Math_abs(tempDouble) >= 1
+ ? tempDouble > 0
+ ? (Math_min(+Math_floor(tempDouble / 4294967296), 4294967295) |
+ 0) >>>
+ 0
+ : ~~+Math_ceil(
+ (tempDouble - +(~~tempDouble >>> 0)) / 4294967296
+ ) >>> 0
+ : 0)
+ ]),
+ (HEAP32[(dirp + pos + 8) >> 2] = tempI64[0]),
+ (HEAP32[(dirp + pos + 12) >> 2] = tempI64[1])
+ HEAP16[(dirp + pos + 16) >> 1] = 280
+ HEAP8[(dirp + pos + 18) >> 0] = type
+ stringToUTF8(name, dirp + pos + 19, 256)
+ pos += struct_size
idx += 1
}
- FS.llseek(stream, idx * struct_size, 0);
+ FS.llseek(stream, idx * struct_size, 0)
return pos
} catch (e) {
- if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+ if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e)
return -e.errno
}
}
-function ___sys_getpid() {
+function ___sys_getpid () {
return 42
}
-function ___sys_ioctl(fd, op, varargs) {
- SYSCALLS.varargs = varargs;
+function ___sys_ioctl (fd, op, varargs) {
+ SYSCALLS.varargs = varargs
try {
- var stream = SYSCALLS.getStreamFromFD(fd);
+ const stream = SYSCALLS.getStreamFromFD(fd)
switch (op) {
case 21509:
case 21505: {
- if (!stream.tty) return -59;
+ if (!stream.tty) return -59
return 0
}
case 21510:
@@ -5499,81 +8627,81 @@ function ___sys_ioctl(fd, op, varargs) {
case 21506:
case 21507:
case 21508: {
- if (!stream.tty) return -59;
+ if (!stream.tty) return -59
return 0
}
case 21519: {
- if (!stream.tty) return -59;
- var argp = SYSCALLS.get();
- HEAP32[argp >> 2] = 0;
+ if (!stream.tty) return -59
+ var argp = SYSCALLS.get()
+ HEAP32[argp >> 2] = 0
return 0
}
case 21520: {
- if (!stream.tty) return -59;
+ if (!stream.tty) return -59
return -28
}
case 21531: {
- var argp = SYSCALLS.get();
+ var argp = SYSCALLS.get()
return FS.ioctl(stream, op, argp)
}
case 21523: {
- if (!stream.tty) return -59;
+ if (!stream.tty) return -59
return 0
}
case 21524: {
- if (!stream.tty) return -59;
+ if (!stream.tty) return -59
return 0
}
default:
- abort("bad ioctl syscall " + op)
+ abort('bad ioctl syscall ' + op)
}
} catch (e) {
- if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+ if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e)
return -e.errno
}
}
-function ___sys_link(oldpath, newpath) {
+function ___sys_link (oldpath, newpath) {
return -34
}
-function ___sys_lstat64(path, buf) {
+function ___sys_lstat64 (path, buf) {
try {
- path = SYSCALLS.getStr(path);
+ path = SYSCALLS.getStr(path)
return SYSCALLS.doStat(FS.lstat, path, buf)
} catch (e) {
- if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+ if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e)
return -e.errno
}
}
-function ___sys_mkdir(path, mode) {
+function ___sys_mkdir (path, mode) {
try {
- path = SYSCALLS.getStr(path);
+ path = SYSCALLS.getStr(path)
return SYSCALLS.doMkdir(path, mode)
} catch (e) {
- if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+ if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e)
return -e.errno
}
}
-function ___sys_mprotect(addr, len, size) {
+function ___sys_mprotect (addr, len, size) {
return 0
}
-function syscallMunmap(addr, len) {
+function syscallMunmap (addr, len) {
if ((addr | 0) === -1 || len === 0) {
return -28
}
- var info = SYSCALLS.mappings[addr];
- if (!info) return 0;
+ const info = SYSCALLS.mappings[addr]
+ if (!info) return 0
if (len === info.len) {
- var stream = FS.getStream(info.fd);
+ const stream = FS.getStream(info.fd)
if (info.prot & 2) {
SYSCALLS.doMsync(addr, stream, len, info.flags, info.offset)
}
- FS.munmap(stream);
- SYSCALLS.mappings[addr] = null;
+ FS.munmap(stream)
+ SYSCALLS.mappings[addr] = null
if (info.allocated) {
_free(info.malloc)
}
@@ -5581,344 +8709,374 @@ function syscallMunmap(addr, len) {
return 0
}
-function ___sys_munmap(addr, len) {
+function ___sys_munmap (addr, len) {
try {
return syscallMunmap(addr, len)
} catch (e) {
- if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+ if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e)
return -e.errno
}
}
-function ___sys_open(path, flags, varargs) {
- SYSCALLS.varargs = varargs;
+function ___sys_open (path, flags, varargs) {
+ SYSCALLS.varargs = varargs
try {
- var pathname = SYSCALLS.getStr(path);
- var mode = SYSCALLS.get();
- var stream = FS.open(pathname, flags, mode);
+ const pathname = SYSCALLS.getStr(path)
+ const mode = SYSCALLS.get()
+ const stream = FS.open(pathname, flags, mode)
return stream.fd
} catch (e) {
- if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+ if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e)
return -e.errno
}
}
-function ___sys_read(fd, buf, count) {
+function ___sys_read (fd, buf, count) {
try {
- var stream = SYSCALLS.getStreamFromFD(fd);
+ const stream = SYSCALLS.getStreamFromFD(fd)
return FS.read(stream, HEAP8, buf, count)
} catch (e) {
- if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+ if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e)
return -e.errno
}
}
-function ___sys_readlink(path, buf, bufsize) {
+function ___sys_readlink (path, buf, bufsize) {
try {
- path = SYSCALLS.getStr(path);
+ path = SYSCALLS.getStr(path)
return SYSCALLS.doReadlink(path, buf, bufsize)
} catch (e) {
- if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+ if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e)
return -e.errno
}
}
-function ___sys_rename(old_path, new_path) {
+function ___sys_rename (old_path, new_path) {
try {
- old_path = SYSCALLS.getStr(old_path);
- new_path = SYSCALLS.getStr(new_path);
- FS.rename(old_path, new_path);
+ old_path = SYSCALLS.getStr(old_path)
+ new_path = SYSCALLS.getStr(new_path)
+ FS.rename(old_path, new_path)
return 0
} catch (e) {
- if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+ if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e)
return -e.errno
}
}
-function ___sys_rmdir(path) {
+function ___sys_rmdir (path) {
try {
- path = SYSCALLS.getStr(path);
- FS.rmdir(path);
+ path = SYSCALLS.getStr(path)
+ FS.rmdir(path)
return 0
} catch (e) {
- if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+ if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e)
return -e.errno
}
}
-function ___sys_stat64(path, buf) {
+function ___sys_stat64 (path, buf) {
try {
- path = SYSCALLS.getStr(path);
+ path = SYSCALLS.getStr(path)
return SYSCALLS.doStat(FS.stat, path, buf)
} catch (e) {
- if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+ if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e)
return -e.errno
}
}
-function ___sys_symlink(target, linkpath) {
+function ___sys_symlink (target, linkpath) {
try {
- target = SYSCALLS.getStr(target);
- linkpath = SYSCALLS.getStr(linkpath);
- FS.symlink(target, linkpath);
+ target = SYSCALLS.getStr(target)
+ linkpath = SYSCALLS.getStr(linkpath)
+ FS.symlink(target, linkpath)
return 0
} catch (e) {
- if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+ if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e)
return -e.errno
}
}
-function ___sys_unlink(path) {
+function ___sys_unlink (path) {
try {
- path = SYSCALLS.getStr(path);
- FS.unlink(path);
+ path = SYSCALLS.getStr(path)
+ FS.unlink(path)
return 0
} catch (e) {
- if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+ if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e)
return -e.errno
}
}
-function _abort() {
+function _abort () {
abort()
}
-var setjmpId = 0;
+let setjmpId = 0
-function _saveSetjmp(env, label, table, size) {
- env = env | 0;
- label = label | 0;
- table = table | 0;
- size = size | 0;
- var i = 0;
- setjmpId = setjmpId + 1 | 0;
- HEAP32[env >> 2] = setjmpId;
+function _saveSetjmp (env, label, table, size) {
+ env = env | 0
+ label = label | 0
+ table = table | 0
+ size = size | 0
+ let i = 0
+ setjmpId = (setjmpId + 1) | 0
+ HEAP32[env >> 2] = setjmpId
while ((i | 0) < (size | 0)) {
- if ((HEAP32[table + (i << 3) >> 2] | 0) == 0) {
- HEAP32[table + (i << 3) >> 2] = setjmpId;
- HEAP32[table + ((i << 3) + 4) >> 2] = label;
- HEAP32[table + ((i << 3) + 8) >> 2] = 0;
- setTempRet0(size | 0);
+ if ((HEAP32[(table + (i << 3)) >> 2] | 0) == 0) {
+ HEAP32[(table + (i << 3)) >> 2] = setjmpId
+ HEAP32[(table + ((i << 3) + 4)) >> 2] = label
+ HEAP32[(table + ((i << 3) + 8)) >> 2] = 0
+ setTempRet0(size | 0)
return table | 0
}
- i = i + 1 | 0
+ i = (i + 1) | 0
}
- size = size * 2 | 0;
- table = _realloc(table | 0, 8 * (size + 1 | 0) | 0) | 0;
- table = _saveSetjmp(env | 0, label | 0, table | 0, size | 0) | 0;
- setTempRet0(size | 0);
+ size = (size * 2) | 0
+ table = _realloc(table | 0, (8 * ((size + 1) | 0)) | 0) | 0
+ table = _saveSetjmp(env | 0, label | 0, table | 0, size | 0) | 0
+ setTempRet0(size | 0)
return table | 0
}
-function _testSetjmp(id, table, size) {
- id = id | 0;
- table = table | 0;
- size = size | 0;
- var i = 0,
- curr = 0;
+function _testSetjmp (id, table, size) {
+ id = id | 0
+ table = table | 0
+ size = size | 0
+ let i = 0
+ let curr = 0
while ((i | 0) < (size | 0)) {
- curr = HEAP32[table + (i << 3) >> 2] | 0;
- if ((curr | 0) == 0) break;
+ curr = HEAP32[(table + (i << 3)) >> 2] | 0
+ if ((curr | 0) == 0) break
if ((curr | 0) == (id | 0)) {
- return HEAP32[table + ((i << 3) + 4) >> 2] | 0
+ return HEAP32[(table + ((i << 3) + 4)) >> 2] | 0
}
- i = i + 1 | 0
+ i = (i + 1) | 0
}
return 0
}
-function _longjmp(env, value) {
- _setThrew(env, value || 1);
- throw "longjmp"
+function _longjmp (env, value) {
+ _setThrew(env, value || 1)
+ throw 'longjmp'
}
-function _emscripten_longjmp(env, value) {
+function _emscripten_longjmp (env, value) {
_longjmp(env, value)
}
-function _emscripten_memcpy_big(dest, src, num) {
+function _emscripten_memcpy_big (dest, src, num) {
HEAPU8.copyWithin(dest, src, src + num)
}
-function _emscripten_get_heap_size() {
+function _emscripten_get_heap_size () {
return HEAPU8.length
}
-function emscripten_realloc_buffer(size) {
+function emscripten_realloc_buffer (size) {
try {
- wasmMemory.grow(size - buffer.byteLength + 65535 >>> 16);
- updateGlobalBufferAndViews(wasmMemory.buffer);
+ wasmMemory.grow((size - buffer.byteLength + 65535) >>> 16)
+ updateGlobalBufferAndViews(wasmMemory.buffer)
return 1
} catch (e) {}
}
-function _emscripten_resize_heap(requestedSize) {
- requestedSize = requestedSize >>> 0;
- var oldSize = _emscripten_get_heap_size();
- var PAGE_MULTIPLE = 65536;
- var maxHeapSize = 2147483648;
+function _emscripten_resize_heap (requestedSize) {
+ requestedSize = requestedSize >>> 0
+ const oldSize = _emscripten_get_heap_size()
+ const PAGE_MULTIPLE = 65536
+ const maxHeapSize = 2147483648
if (requestedSize > maxHeapSize) {
return false
}
- var minHeapSize = 16777216;
- for (var cutDown = 1; cutDown <= 4; cutDown *= 2) {
- var overGrownHeapSize = oldSize * (1 + .2 / cutDown);
- overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);
- var newSize = Math.min(maxHeapSize, alignUp(Math.max(minHeapSize, requestedSize, overGrownHeapSize), PAGE_MULTIPLE));
- var replacement = emscripten_realloc_buffer(newSize);
+ const minHeapSize = 16777216
+ for (let cutDown = 1; cutDown <= 4; cutDown *= 2) {
+ let overGrownHeapSize = oldSize * (1 + 0.2 / cutDown)
+ overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296)
+ const newSize = Math.min(
+ maxHeapSize,
+ alignUp(
+ Math.max(minHeapSize, requestedSize, overGrownHeapSize),
+ PAGE_MULTIPLE
+ )
+ )
+ const replacement = emscripten_realloc_buffer(newSize)
if (replacement) {
return true
}
}
return false
}
-var ENV = {};
+const ENV = {}
-function __getExecutableName() {
- return thisProgram || "./this.program"
+function __getExecutableName () {
+ return thisProgram || './this.program'
}
-function getEnvStrings() {
+function getEnvStrings () {
if (!getEnvStrings.strings) {
- var env = {
- "USER": "web_user",
- "LOGNAME": "web_user",
- "PATH": "/",
- "PWD": "/",
- "HOME": "/home/web_user",
- "LANG": (typeof navigator === "object" && navigator.languages && navigator.languages[0] || "C").replace("-", "_") + ".UTF-8",
- "_": __getExecutableName()
- };
+ const env = {
+ USER: 'web_user',
+ LOGNAME: 'web_user',
+ PATH: '/',
+ PWD: '/',
+ HOME: '/home/web_user',
+ LANG:
+ (
+ (typeof navigator === 'object' &&
+ navigator.languages &&
+ navigator.languages[0]) ||
+ 'C'
+ ).replace('-', '_') + '.UTF-8',
+ _: __getExecutableName()
+ }
for (var x in ENV) {
env[x] = ENV[x]
}
- var strings = [];
+ const strings = []
for (var x in env) {
- strings.push(x + "=" + env[x])
+ strings.push(x + '=' + env[x])
}
getEnvStrings.strings = strings
}
return getEnvStrings.strings
}
-function _environ_get(__environ, environ_buf) {
- var bufSize = 0;
+function _environ_get (__environ, environ_buf) {
+ let bufSize = 0
getEnvStrings().forEach(function (string, i) {
- var ptr = environ_buf + bufSize;
- HEAP32[__environ + i * 4 >> 2] = ptr;
- writeAsciiToMemory(string, ptr);
+ const ptr = environ_buf + bufSize
+ HEAP32[(__environ + i * 4) >> 2] = ptr
+ writeAsciiToMemory(string, ptr)
bufSize += string.length + 1
- });
+ })
return 0
}
-function _environ_sizes_get(penviron_count, penviron_buf_size) {
- var strings = getEnvStrings();
- HEAP32[penviron_count >> 2] = strings.length;
- var bufSize = 0;
+function _environ_sizes_get (penviron_count, penviron_buf_size) {
+ const strings = getEnvStrings()
+ HEAP32[penviron_count >> 2] = strings.length
+ let bufSize = 0
strings.forEach(function (string) {
bufSize += string.length + 1
- });
- HEAP32[penviron_buf_size >> 2] = bufSize;
+ })
+ HEAP32[penviron_buf_size >> 2] = bufSize
return 0
}
-function _exit(status) {
+function _exit (status) {
exit(status)
}
-function _fd_close(fd) {
+function _fd_close (fd) {
try {
- var stream = SYSCALLS.getStreamFromFD(fd);
- FS.close(stream);
+ const stream = SYSCALLS.getStreamFromFD(fd)
+ FS.close(stream)
return 0
} catch (e) {
- if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+ if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e)
return e.errno
}
}
-function _fd_fdstat_get(fd, pbuf) {
+function _fd_fdstat_get (fd, pbuf) {
try {
- var stream = SYSCALLS.getStreamFromFD(fd);
- var type = stream.tty ? 2 : FS.isDir(stream.mode) ? 3 : FS.isLink(stream.mode) ? 7 : 4;
- HEAP8[pbuf >> 0] = type;
+ const stream = SYSCALLS.getStreamFromFD(fd)
+ const type = stream.tty
+ ? 2
+ : FS.isDir(stream.mode)
+ ? 3
+ : FS.isLink(stream.mode)
+ ? 7
+ : 4
+ HEAP8[pbuf >> 0] = type
return 0
} catch (e) {
- if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+ if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e)
return e.errno
}
}
-function _fd_read(fd, iov, iovcnt, pnum) {
+function _fd_read (fd, iov, iovcnt, pnum) {
try {
- var stream = SYSCALLS.getStreamFromFD(fd);
- var num = SYSCALLS.doReadv(stream, iov, iovcnt);
- HEAP32[pnum >> 2] = num;
+ const stream = SYSCALLS.getStreamFromFD(fd)
+ const num = SYSCALLS.doReadv(stream, iov, iovcnt)
+ HEAP32[pnum >> 2] = num
return 0
} catch (e) {
- if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+ if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e)
return e.errno
}
}
-function _fd_seek(fd, offset_low, offset_high, whence, newOffset) {
+function _fd_seek (fd, offset_low, offset_high, whence, newOffset) {
try {
- var stream = SYSCALLS.getStreamFromFD(fd);
- var HIGH_OFFSET = 4294967296;
- var offset = offset_high * HIGH_OFFSET + (offset_low >>> 0);
- var DOUBLE_LIMIT = 9007199254740992;
+ const stream = SYSCALLS.getStreamFromFD(fd)
+ const HIGH_OFFSET = 4294967296
+ const offset = offset_high * HIGH_OFFSET + (offset_low >>> 0)
+ const DOUBLE_LIMIT = 9007199254740992
if (offset <= -DOUBLE_LIMIT || offset >= DOUBLE_LIMIT) {
return -61
}
- FS.llseek(stream, offset, whence);
- tempI64 = [stream.position >>> 0, (tempDouble = stream.position, +Math_abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math_min(+Math_floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[newOffset >> 2] = tempI64[0], HEAP32[newOffset + 4 >> 2] = tempI64[1];
- if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null;
+ FS.llseek(stream, offset, whence)
+ ;(tempI64 = [
+ stream.position >>> 0,
+ ((tempDouble = stream.position),
+ +Math_abs(tempDouble) >= 1
+ ? tempDouble > 0
+ ? (Math_min(+Math_floor(tempDouble / 4294967296), 4294967295) | 0) >>>
+ 0
+ : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>>
+ 0
+ : 0)
+ ]),
+ (HEAP32[newOffset >> 2] = tempI64[0]),
+ (HEAP32[(newOffset + 4) >> 2] = tempI64[1])
+ if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null
return 0
} catch (e) {
- if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+ if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e)
return e.errno
}
}
-function _fd_write(fd, iov, iovcnt, pnum) {
+function _fd_write (fd, iov, iovcnt, pnum) {
try {
- var stream = SYSCALLS.getStreamFromFD(fd);
- var num = SYSCALLS.doWritev(stream, iov, iovcnt);
- HEAP32[pnum >> 2] = num;
+ const stream = SYSCALLS.getStreamFromFD(fd)
+ const num = SYSCALLS.doWritev(stream, iov, iovcnt)
+ HEAP32[pnum >> 2] = num
return 0
} catch (e) {
- if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+ if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e)
return e.errno
}
}
-function _getTempRet0() {
+function _getTempRet0 () {
return getTempRet0() | 0
}
-function _gettimeofday(ptr) {
- var now = Date.now();
- HEAP32[ptr >> 2] = now / 1e3 | 0;
- HEAP32[ptr + 4 >> 2] = now % 1e3 * 1e3 | 0;
+function _gettimeofday (ptr) {
+ const now = Date.now()
+ HEAP32[ptr >> 2] = (now / 1e3) | 0
+ HEAP32[(ptr + 4) >> 2] = ((now % 1e3) * 1e3) | 0
return 0
}
-function _roundf(d) {
- d = +d;
- return d >= +0 ? +Math_floor(d + +.5) : +Math_ceil(d - +.5)
+function _roundf (d) {
+ d = +d
+ return d >= +0 ? +Math_floor(d + +0.5) : +Math_ceil(d - +0.5)
}
-function _setTempRet0($i) {
+function _setTempRet0 ($i) {
setTempRet0($i | 0)
}
-function _sysconf(name) {
+function _sysconf (name) {
switch (name) {
case 30:
- return 16384;
+ return 16384
case 85:
- var maxHeapSize = 2147483648;
- return maxHeapSize / 16384;
+ var maxHeapSize = 2147483648
+ return maxHeapSize / 16384
case 132:
case 133:
case 12:
@@ -5960,7 +9118,7 @@ function _sysconf(name) {
case 51:
case 46:
case 79:
- return 200809;
+ return 200809
case 27:
case 246:
case 127:
@@ -5993,7 +9151,7 @@ function _sysconf(name) {
case 32:
case 173:
case 35:
- return -1;
+ return -1
case 176:
case 177:
case 7:
@@ -6009,120 +9167,139 @@ function _sysconf(name) {
case 131:
case 94:
case 91:
- return 1;
+ return 1
case 74:
case 60:
case 69:
case 70:
case 4:
- return 1024;
+ return 1024
case 31:
case 42:
case 72:
- return 32;
+ return 32
case 87:
case 26:
case 33:
- return 2147483647;
+ return 2147483647
case 34:
case 1:
- return 47839;
+ return 47839
case 38:
case 36:
- return 99;
+ return 99
case 43:
case 37:
- return 2048;
+ return 2048
case 0:
- return 2097152;
+ return 2097152
case 3:
- return 65536;
+ return 65536
case 28:
- return 32768;
+ return 32768
case 44:
- return 32767;
+ return 32767
case 75:
- return 16384;
+ return 16384
case 39:
- return 1e3;
+ return 1e3
case 89:
- return 700;
+ return 700
case 71:
- return 256;
+ return 256
case 40:
- return 255;
+ return 255
case 2:
- return 100;
+ return 100
case 180:
- return 64;
+ return 64
case 25:
- return 20;
+ return 20
case 5:
- return 16;
+ return 16
case 6:
- return 6;
+ return 6
case 73:
- return 4;
+ return 4
case 84: {
- if (typeof navigator === "object") return navigator["hardwareConcurrency"] || 1;
+ if (typeof navigator === 'object') {
+ return navigator.hardwareConcurrency || 1
+ }
return 1
}
}
- setErrNo(28);
+ setErrNo(28)
return -1
}
-function _time(ptr) {
- var ret = Date.now() / 1e3 | 0;
+function _time (ptr) {
+ const ret = (Date.now() / 1e3) | 0
if (ptr) {
HEAP32[ptr >> 2] = ret
}
return ret
}
-Module["requestFullscreen"] = function Module_requestFullscreen(lockPointer, resizeCanvas) {
+Module.requestFullscreen = function Module_requestFullscreen (
+ lockPointer,
+ resizeCanvas
+) {
Browser.requestFullscreen(lockPointer, resizeCanvas)
-};
-Module["requestAnimationFrame"] = function Module_requestAnimationFrame(func) {
+}
+Module.requestAnimationFrame = function Module_requestAnimationFrame (func) {
Browser.requestAnimationFrame(func)
-};
-Module["setCanvasSize"] = function Module_setCanvasSize(width, height, noUpdates) {
+}
+Module.setCanvasSize = function Module_setCanvasSize (
+ width,
+ height,
+ noUpdates
+) {
Browser.setCanvasSize(width, height, noUpdates)
-};
-Module["pauseMainLoop"] = function Module_pauseMainLoop() {
+}
+Module.pauseMainLoop = function Module_pauseMainLoop () {
Browser.mainLoop.pause()
-};
-Module["resumeMainLoop"] = function Module_resumeMainLoop() {
+}
+Module.resumeMainLoop = function Module_resumeMainLoop () {
Browser.mainLoop.resume()
-};
-Module["getUserMedia"] = function Module_getUserMedia() {
+}
+Module.getUserMedia = function Module_getUserMedia () {
Browser.getUserMedia()
-};
-Module["createContext"] = function Module_createContext(canvas, useWebGL, setInModule, webGLContextAttributes) {
- return Browser.createContext(canvas, useWebGL, setInModule, webGLContextAttributes)
-};
-var FSNode = function (parent, name, mode, rdev) {
+}
+Module.createContext = function Module_createContext (
+ canvas,
+ useWebGL,
+ setInModule,
+ webGLContextAttributes
+) {
+ return Browser.createContext(
+ canvas,
+ useWebGL,
+ setInModule,
+ webGLContextAttributes
+ )
+}
+const FSNode = function (parent, name, mode, rdev) {
if (!parent) {
parent = this
}
- this.parent = parent;
- this.mount = parent.mount;
- this.mounted = null;
- this.id = FS.nextInode++;
- this.name = name;
- this.mode = mode;
- this.node_ops = {};
- this.stream_ops = {};
+ this.parent = parent
+ this.mount = parent.mount
+ this.mounted = null
+ this.id = FS.nextInode++
+ this.name = name
+ this.mode = mode
+ this.node_ops = {}
+ this.stream_ops = {}
this.rdev = rdev
-};
-var readMode = 292 | 73;
-var writeMode = 146;
+}
+const readMode = 292 | 73
+const writeMode = 146
Object.defineProperties(FSNode.prototype, {
read: {
get: function () {
return (this.mode & readMode) === readMode
},
set: function (val) {
- val ? this.mode |= readMode : this.mode &= ~readMode
+ val ? (this.mode |= readMode) : (this.mode &= ~readMode)
}
},
write: {
@@ -6130,7 +9307,7 @@ Object.defineProperties(FSNode.prototype, {
return (this.mode & writeMode) === writeMode
},
set: function (val) {
- val ? this.mode |= writeMode : this.mode &= ~writeMode
+ val ? (this.mode |= writeMode) : (this.mode &= ~writeMode)
}
},
isFolder: {
@@ -6143,942 +9320,1202 @@ Object.defineProperties(FSNode.prototype, {
return FS.isChrdev(this.mode)
}
}
-});
-FS.FSNode = FSNode;
-FS.staticInit();
-Module["FS_createFolder"] = FS.createFolder;
-Module["FS_createPath"] = FS.createPath;
-Module["FS_createDataFile"] = FS.createDataFile;
-Module["FS_createPreloadedFile"] = FS.createPreloadedFile;
-Module["FS_createLazyFile"] = FS.createLazyFile;
-Module["FS_createLink"] = FS.createLink;
-Module["FS_createDevice"] = FS.createDevice;
-Module["FS_unlink"] = FS.unlink;
+})
+FS.FSNode = FSNode
+FS.staticInit()
+Module.FS_createFolder = FS.createFolder
+Module.FS_createPath = FS.createPath
+Module.FS_createDataFile = FS.createDataFile
+Module.FS_createPreloadedFile = FS.createPreloadedFile
+Module.FS_createLazyFile = FS.createLazyFile
+Module.FS_createLink = FS.createLink
+Module.FS_createDevice = FS.createDevice
+Module.FS_unlink = FS.unlink
-function intArrayFromString(stringy, dontAddNull, length) {
- var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1;
- var u8array = new Array(len);
- var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length);
- if (dontAddNull) u8array.length = numBytesWritten;
+function intArrayFromString (stringy, dontAddNull, length) {
+ const len = length > 0 ? length : lengthBytesUTF8(stringy) + 1
+ const u8array = new Array(len)
+ const numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length)
+ if (dontAddNull) u8array.length = numBytesWritten
return u8array
}
var asmLibraryArg = {
- "a": ___assert_fail,
- "G": ___clock_gettime,
- "S": ___map_file,
- "J": ___sys_access,
- "F": ___sys_chmod,
- "d": ___sys_fcntl64,
- "D": ___sys_fstat64,
- "M": ___sys_getcwd,
- "T": ___sys_getdents64,
- "j": ___sys_getpid,
- "R": ___sys_ioctl,
- "I": ___sys_link,
- "C": ___sys_lstat64,
- "E": ___sys_mkdir,
- "B": ___sys_mprotect,
- "A": ___sys_munmap,
- "k": ___sys_open,
- "K": ___sys_read,
- "H": ___sys_readlink,
- "P": ___sys_rename,
- "O": ___sys_rmdir,
- "p": ___sys_stat64,
- "N": ___sys_symlink,
- "L": ___sys_unlink,
- "m": _abort,
- "r": _emscripten_get_now,
- "h": _emscripten_longjmp,
- "v": _emscripten_memcpy_big,
- "w": _emscripten_resize_heap,
- "y": _environ_get,
- "z": _environ_sizes_get,
- "i": _exit,
- "g": _fd_close,
- "x": _fd_fdstat_get,
- "Q": _fd_read,
- "u": _fd_seek,
- "l": _fd_write,
- "e": _getTempRet0,
- "U": _gettimeofday,
- "t": invoke_iii,
- "q": invoke_iiii,
- "s": invoke_iiiii,
- "V": invoke_vii,
- "memory": wasmMemory,
- "b": _roundf,
- "o": _saveSetjmp,
- "c": _setTempRet0,
- "W": _sysconf,
- "table": wasmTable,
- "f": _testSetjmp,
- "n": _time
-};
-var asm = createWasm();
-Module["asm"] = asm;
-var ___wasm_call_ctors = Module["___wasm_call_ctors"] = function () {
- return (___wasm_call_ctors = Module["___wasm_call_ctors"] = Module["asm"]["X"]).apply(null, arguments)
-};
-var _main = Module["_main"] = function () {
- return (_main = Module["_main"] = Module["asm"]["Y"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Event_get_Start_0 = Module["_emscripten_bind_ASS_Event_get_Start_0"] = function () {
- return (_emscripten_bind_ASS_Event_get_Start_0 = Module["_emscripten_bind_ASS_Event_get_Start_0"] = Module["asm"]["Z"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Event_set_Start_1 = Module["_emscripten_bind_ASS_Event_set_Start_1"] = function () {
- return (_emscripten_bind_ASS_Event_set_Start_1 = Module["_emscripten_bind_ASS_Event_set_Start_1"] = Module["asm"]["_"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Event_get_Duration_0 = Module["_emscripten_bind_ASS_Event_get_Duration_0"] = function () {
- return (_emscripten_bind_ASS_Event_get_Duration_0 = Module["_emscripten_bind_ASS_Event_get_Duration_0"] = Module["asm"]["$"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Event_set_Duration_1 = Module["_emscripten_bind_ASS_Event_set_Duration_1"] = function () {
- return (_emscripten_bind_ASS_Event_set_Duration_1 = Module["_emscripten_bind_ASS_Event_set_Duration_1"] = Module["asm"]["aa"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Event_get_ReadOrder_0 = Module["_emscripten_bind_ASS_Event_get_ReadOrder_0"] = function () {
- return (_emscripten_bind_ASS_Event_get_ReadOrder_0 = Module["_emscripten_bind_ASS_Event_get_ReadOrder_0"] = Module["asm"]["ba"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Event_set_ReadOrder_1 = Module["_emscripten_bind_ASS_Event_set_ReadOrder_1"] = function () {
- return (_emscripten_bind_ASS_Event_set_ReadOrder_1 = Module["_emscripten_bind_ASS_Event_set_ReadOrder_1"] = Module["asm"]["ca"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Event_get_Layer_0 = Module["_emscripten_bind_ASS_Event_get_Layer_0"] = function () {
- return (_emscripten_bind_ASS_Event_get_Layer_0 = Module["_emscripten_bind_ASS_Event_get_Layer_0"] = Module["asm"]["da"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Event_set_Layer_1 = Module["_emscripten_bind_ASS_Event_set_Layer_1"] = function () {
- return (_emscripten_bind_ASS_Event_set_Layer_1 = Module["_emscripten_bind_ASS_Event_set_Layer_1"] = Module["asm"]["ea"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Event_get_Style_0 = Module["_emscripten_bind_ASS_Event_get_Style_0"] = function () {
- return (_emscripten_bind_ASS_Event_get_Style_0 = Module["_emscripten_bind_ASS_Event_get_Style_0"] = Module["asm"]["fa"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Event_set_Style_1 = Module["_emscripten_bind_ASS_Event_set_Style_1"] = function () {
- return (_emscripten_bind_ASS_Event_set_Style_1 = Module["_emscripten_bind_ASS_Event_set_Style_1"] = Module["asm"]["ga"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Event_get_Name_0 = Module["_emscripten_bind_ASS_Event_get_Name_0"] = function () {
- return (_emscripten_bind_ASS_Event_get_Name_0 = Module["_emscripten_bind_ASS_Event_get_Name_0"] = Module["asm"]["ha"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Event_set_Name_1 = Module["_emscripten_bind_ASS_Event_set_Name_1"] = function () {
- return (_emscripten_bind_ASS_Event_set_Name_1 = Module["_emscripten_bind_ASS_Event_set_Name_1"] = Module["asm"]["ia"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Event_get_MarginL_0 = Module["_emscripten_bind_ASS_Event_get_MarginL_0"] = function () {
- return (_emscripten_bind_ASS_Event_get_MarginL_0 = Module["_emscripten_bind_ASS_Event_get_MarginL_0"] = Module["asm"]["ja"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Event_set_MarginL_1 = Module["_emscripten_bind_ASS_Event_set_MarginL_1"] = function () {
- return (_emscripten_bind_ASS_Event_set_MarginL_1 = Module["_emscripten_bind_ASS_Event_set_MarginL_1"] = Module["asm"]["ka"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Event_get_MarginR_0 = Module["_emscripten_bind_ASS_Event_get_MarginR_0"] = function () {
- return (_emscripten_bind_ASS_Event_get_MarginR_0 = Module["_emscripten_bind_ASS_Event_get_MarginR_0"] = Module["asm"]["la"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Event_set_MarginR_1 = Module["_emscripten_bind_ASS_Event_set_MarginR_1"] = function () {
- return (_emscripten_bind_ASS_Event_set_MarginR_1 = Module["_emscripten_bind_ASS_Event_set_MarginR_1"] = Module["asm"]["ma"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Event_get_MarginV_0 = Module["_emscripten_bind_ASS_Event_get_MarginV_0"] = function () {
- return (_emscripten_bind_ASS_Event_get_MarginV_0 = Module["_emscripten_bind_ASS_Event_get_MarginV_0"] = Module["asm"]["na"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Event_set_MarginV_1 = Module["_emscripten_bind_ASS_Event_set_MarginV_1"] = function () {
- return (_emscripten_bind_ASS_Event_set_MarginV_1 = Module["_emscripten_bind_ASS_Event_set_MarginV_1"] = Module["asm"]["oa"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Event_get_Effect_0 = Module["_emscripten_bind_ASS_Event_get_Effect_0"] = function () {
- return (_emscripten_bind_ASS_Event_get_Effect_0 = Module["_emscripten_bind_ASS_Event_get_Effect_0"] = Module["asm"]["pa"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Event_set_Effect_1 = Module["_emscripten_bind_ASS_Event_set_Effect_1"] = function () {
- return (_emscripten_bind_ASS_Event_set_Effect_1 = Module["_emscripten_bind_ASS_Event_set_Effect_1"] = Module["asm"]["qa"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Event_get_Text_0 = Module["_emscripten_bind_ASS_Event_get_Text_0"] = function () {
- return (_emscripten_bind_ASS_Event_get_Text_0 = Module["_emscripten_bind_ASS_Event_get_Text_0"] = Module["asm"]["ra"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Event_set_Text_1 = Module["_emscripten_bind_ASS_Event_set_Text_1"] = function () {
- return (_emscripten_bind_ASS_Event_set_Text_1 = Module["_emscripten_bind_ASS_Event_set_Text_1"] = Module["asm"]["sa"]).apply(null, arguments)
-};
-var _emscripten_bind_RenderBlendResult_get_changed_0 = Module["_emscripten_bind_RenderBlendResult_get_changed_0"] = function () {
- return (_emscripten_bind_RenderBlendResult_get_changed_0 = Module["_emscripten_bind_RenderBlendResult_get_changed_0"] = Module["asm"]["ta"]).apply(null, arguments)
-};
-var _emscripten_bind_RenderBlendResult_set_changed_1 = Module["_emscripten_bind_RenderBlendResult_set_changed_1"] = function () {
- return (_emscripten_bind_RenderBlendResult_set_changed_1 = Module["_emscripten_bind_RenderBlendResult_set_changed_1"] = Module["asm"]["ua"]).apply(null, arguments)
-};
-var _emscripten_bind_RenderBlendResult_get_blend_time_0 = Module["_emscripten_bind_RenderBlendResult_get_blend_time_0"] = function () {
- return (_emscripten_bind_RenderBlendResult_get_blend_time_0 = Module["_emscripten_bind_RenderBlendResult_get_blend_time_0"] = Module["asm"]["va"]).apply(null, arguments)
-};
-var _emscripten_bind_RenderBlendResult_set_blend_time_1 = Module["_emscripten_bind_RenderBlendResult_set_blend_time_1"] = function () {
- return (_emscripten_bind_RenderBlendResult_set_blend_time_1 = Module["_emscripten_bind_RenderBlendResult_set_blend_time_1"] = Module["asm"]["wa"]).apply(null, arguments)
-};
-var _emscripten_bind_RenderBlendResult_get_part_0 = Module["_emscripten_bind_RenderBlendResult_get_part_0"] = function () {
- return (_emscripten_bind_RenderBlendResult_get_part_0 = Module["_emscripten_bind_RenderBlendResult_get_part_0"] = Module["asm"]["xa"]).apply(null, arguments)
-};
-var _emscripten_bind_RenderBlendResult_set_part_1 = Module["_emscripten_bind_RenderBlendResult_set_part_1"] = function () {
- return (_emscripten_bind_RenderBlendResult_set_part_1 = Module["_emscripten_bind_RenderBlendResult_set_part_1"] = Module["asm"]["ya"]).apply(null, arguments)
-};
-var _emscripten_bind_SubtitleOctopus_SubtitleOctopus_0 = Module["_emscripten_bind_SubtitleOctopus_SubtitleOctopus_0"] = function () {
- return (_emscripten_bind_SubtitleOctopus_SubtitleOctopus_0 = Module["_emscripten_bind_SubtitleOctopus_SubtitleOctopus_0"] = Module["asm"]["za"]).apply(null, arguments)
-};
-var _emscripten_bind_SubtitleOctopus_setLogLevel_1 = Module["_emscripten_bind_SubtitleOctopus_setLogLevel_1"] = function () {
- return (_emscripten_bind_SubtitleOctopus_setLogLevel_1 = Module["_emscripten_bind_SubtitleOctopus_setLogLevel_1"] = Module["asm"]["Aa"]).apply(null, arguments)
-};
-var _emscripten_bind_SubtitleOctopus_setDropAnimations_1 = Module["_emscripten_bind_SubtitleOctopus_setDropAnimations_1"] = function () {
- return (_emscripten_bind_SubtitleOctopus_setDropAnimations_1 = Module["_emscripten_bind_SubtitleOctopus_setDropAnimations_1"] = Module["asm"]["Ba"]).apply(null, arguments)
-};
-var _emscripten_bind_SubtitleOctopus_getDropAnimations_0 = Module["_emscripten_bind_SubtitleOctopus_getDropAnimations_0"] = function () {
- return (_emscripten_bind_SubtitleOctopus_getDropAnimations_0 = Module["_emscripten_bind_SubtitleOctopus_getDropAnimations_0"] = Module["asm"]["Ca"]).apply(null, arguments)
-};
-var _emscripten_bind_SubtitleOctopus_initLibrary_2 = Module["_emscripten_bind_SubtitleOctopus_initLibrary_2"] = function () {
- return (_emscripten_bind_SubtitleOctopus_initLibrary_2 = Module["_emscripten_bind_SubtitleOctopus_initLibrary_2"] = Module["asm"]["Da"]).apply(null, arguments)
-};
-var _free = Module["_free"] = function () {
- return (_free = Module["_free"] = Module["asm"]["Ea"]).apply(null, arguments)
-};
-var _emscripten_bind_SubtitleOctopus_createTrack_1 = Module["_emscripten_bind_SubtitleOctopus_createTrack_1"] = function () {
- return (_emscripten_bind_SubtitleOctopus_createTrack_1 = Module["_emscripten_bind_SubtitleOctopus_createTrack_1"] = Module["asm"]["Fa"]).apply(null, arguments)
-};
-var _emscripten_bind_SubtitleOctopus_createTrackMem_2 = Module["_emscripten_bind_SubtitleOctopus_createTrackMem_2"] = function () {
- return (_emscripten_bind_SubtitleOctopus_createTrackMem_2 = Module["_emscripten_bind_SubtitleOctopus_createTrackMem_2"] = Module["asm"]["Ga"]).apply(null, arguments)
-};
-var _emscripten_bind_SubtitleOctopus_removeTrack_0 = Module["_emscripten_bind_SubtitleOctopus_removeTrack_0"] = function () {
- return (_emscripten_bind_SubtitleOctopus_removeTrack_0 = Module["_emscripten_bind_SubtitleOctopus_removeTrack_0"] = Module["asm"]["Ha"]).apply(null, arguments)
-};
-var _emscripten_bind_SubtitleOctopus_resizeCanvas_2 = Module["_emscripten_bind_SubtitleOctopus_resizeCanvas_2"] = function () {
- return (_emscripten_bind_SubtitleOctopus_resizeCanvas_2 = Module["_emscripten_bind_SubtitleOctopus_resizeCanvas_2"] = Module["asm"]["Ia"]).apply(null, arguments)
-};
-var _emscripten_bind_SubtitleOctopus_renderImage_2 = Module["_emscripten_bind_SubtitleOctopus_renderImage_2"] = function () {
- return (_emscripten_bind_SubtitleOctopus_renderImage_2 = Module["_emscripten_bind_SubtitleOctopus_renderImage_2"] = Module["asm"]["Ja"]).apply(null, arguments)
-};
-var _emscripten_bind_SubtitleOctopus_quitLibrary_0 = Module["_emscripten_bind_SubtitleOctopus_quitLibrary_0"] = function () {
- return (_emscripten_bind_SubtitleOctopus_quitLibrary_0 = Module["_emscripten_bind_SubtitleOctopus_quitLibrary_0"] = Module["asm"]["Ka"]).apply(null, arguments)
-};
-var _emscripten_bind_SubtitleOctopus_reloadLibrary_0 = Module["_emscripten_bind_SubtitleOctopus_reloadLibrary_0"] = function () {
- return (_emscripten_bind_SubtitleOctopus_reloadLibrary_0 = Module["_emscripten_bind_SubtitleOctopus_reloadLibrary_0"] = Module["asm"]["La"]).apply(null, arguments)
-};
-var _emscripten_bind_SubtitleOctopus_reloadFonts_0 = Module["_emscripten_bind_SubtitleOctopus_reloadFonts_0"] = function () {
- return (_emscripten_bind_SubtitleOctopus_reloadFonts_0 = Module["_emscripten_bind_SubtitleOctopus_reloadFonts_0"] = Module["asm"]["Ma"]).apply(null, arguments)
-};
-var _emscripten_bind_SubtitleOctopus_setMargin_4 = Module["_emscripten_bind_SubtitleOctopus_setMargin_4"] = function () {
- return (_emscripten_bind_SubtitleOctopus_setMargin_4 = Module["_emscripten_bind_SubtitleOctopus_setMargin_4"] = Module["asm"]["Na"]).apply(null, arguments)
-};
-var _emscripten_bind_SubtitleOctopus_getEventCount_0 = Module["_emscripten_bind_SubtitleOctopus_getEventCount_0"] = function () {
- return (_emscripten_bind_SubtitleOctopus_getEventCount_0 = Module["_emscripten_bind_SubtitleOctopus_getEventCount_0"] = Module["asm"]["Oa"]).apply(null, arguments)
-};
-var _emscripten_bind_SubtitleOctopus_allocEvent_0 = Module["_emscripten_bind_SubtitleOctopus_allocEvent_0"] = function () {
- return (_emscripten_bind_SubtitleOctopus_allocEvent_0 = Module["_emscripten_bind_SubtitleOctopus_allocEvent_0"] = Module["asm"]["Pa"]).apply(null, arguments)
-};
-var _emscripten_bind_SubtitleOctopus_allocStyle_0 = Module["_emscripten_bind_SubtitleOctopus_allocStyle_0"] = function () {
- return (_emscripten_bind_SubtitleOctopus_allocStyle_0 = Module["_emscripten_bind_SubtitleOctopus_allocStyle_0"] = Module["asm"]["Qa"]).apply(null, arguments)
-};
-var _emscripten_bind_SubtitleOctopus_removeEvent_1 = Module["_emscripten_bind_SubtitleOctopus_removeEvent_1"] = function () {
- return (_emscripten_bind_SubtitleOctopus_removeEvent_1 = Module["_emscripten_bind_SubtitleOctopus_removeEvent_1"] = Module["asm"]["Ra"]).apply(null, arguments)
-};
-var _emscripten_bind_SubtitleOctopus_getStyleCount_0 = Module["_emscripten_bind_SubtitleOctopus_getStyleCount_0"] = function () {
- return (_emscripten_bind_SubtitleOctopus_getStyleCount_0 = Module["_emscripten_bind_SubtitleOctopus_getStyleCount_0"] = Module["asm"]["Sa"]).apply(null, arguments)
-};
-var _emscripten_bind_SubtitleOctopus_getStyleByName_1 = Module["_emscripten_bind_SubtitleOctopus_getStyleByName_1"] = function () {
- return (_emscripten_bind_SubtitleOctopus_getStyleByName_1 = Module["_emscripten_bind_SubtitleOctopus_getStyleByName_1"] = Module["asm"]["Ta"]).apply(null, arguments)
-};
-var _emscripten_bind_SubtitleOctopus_removeStyle_1 = Module["_emscripten_bind_SubtitleOctopus_removeStyle_1"] = function () {
- return (_emscripten_bind_SubtitleOctopus_removeStyle_1 = Module["_emscripten_bind_SubtitleOctopus_removeStyle_1"] = Module["asm"]["Ua"]).apply(null, arguments)
-};
-var _emscripten_bind_SubtitleOctopus_removeAllEvents_0 = Module["_emscripten_bind_SubtitleOctopus_removeAllEvents_0"] = function () {
- return (_emscripten_bind_SubtitleOctopus_removeAllEvents_0 = Module["_emscripten_bind_SubtitleOctopus_removeAllEvents_0"] = Module["asm"]["Va"]).apply(null, arguments)
-};
-var _emscripten_bind_SubtitleOctopus_setMemoryLimits_2 = Module["_emscripten_bind_SubtitleOctopus_setMemoryLimits_2"] = function () {
- return (_emscripten_bind_SubtitleOctopus_setMemoryLimits_2 = Module["_emscripten_bind_SubtitleOctopus_setMemoryLimits_2"] = Module["asm"]["Wa"]).apply(null, arguments)
-};
-var _emscripten_bind_SubtitleOctopus_renderBlend_2 = Module["_emscripten_bind_SubtitleOctopus_renderBlend_2"] = function () {
- return (_emscripten_bind_SubtitleOctopus_renderBlend_2 = Module["_emscripten_bind_SubtitleOctopus_renderBlend_2"] = Module["asm"]["Xa"]).apply(null, arguments)
-};
-var _emscripten_bind_SubtitleOctopus_findNextEventStart_1 = Module["_emscripten_bind_SubtitleOctopus_findNextEventStart_1"] = function () {
- return (_emscripten_bind_SubtitleOctopus_findNextEventStart_1 = Module["_emscripten_bind_SubtitleOctopus_findNextEventStart_1"] = Module["asm"]["Ya"]).apply(null, arguments)
-};
-var _emscripten_bind_SubtitleOctopus_findEventStopTimes_1 = Module["_emscripten_bind_SubtitleOctopus_findEventStopTimes_1"] = function () {
- return (_emscripten_bind_SubtitleOctopus_findEventStopTimes_1 = Module["_emscripten_bind_SubtitleOctopus_findEventStopTimes_1"] = Module["asm"]["Za"]).apply(null, arguments)
-};
-var _emscripten_bind_SubtitleOctopus_rescanAllAnimations_0 = Module["_emscripten_bind_SubtitleOctopus_rescanAllAnimations_0"] = function () {
- return (_emscripten_bind_SubtitleOctopus_rescanAllAnimations_0 = Module["_emscripten_bind_SubtitleOctopus_rescanAllAnimations_0"] = Module["asm"]["_a"]).apply(null, arguments)
-};
-var _malloc = Module["_malloc"] = function () {
- return (_malloc = Module["_malloc"] = Module["asm"]["$a"]).apply(null, arguments)
-};
-var _emscripten_bind_SubtitleOctopus_get_track_0 = Module["_emscripten_bind_SubtitleOctopus_get_track_0"] = function () {
- return (_emscripten_bind_SubtitleOctopus_get_track_0 = Module["_emscripten_bind_SubtitleOctopus_get_track_0"] = Module["asm"]["ab"]).apply(null, arguments)
-};
-var _emscripten_bind_SubtitleOctopus_set_track_1 = Module["_emscripten_bind_SubtitleOctopus_set_track_1"] = function () {
- return (_emscripten_bind_SubtitleOctopus_set_track_1 = Module["_emscripten_bind_SubtitleOctopus_set_track_1"] = Module["asm"]["bb"]).apply(null, arguments)
-};
-var _emscripten_bind_SubtitleOctopus_get_ass_renderer_0 = Module["_emscripten_bind_SubtitleOctopus_get_ass_renderer_0"] = function () {
- return (_emscripten_bind_SubtitleOctopus_get_ass_renderer_0 = Module["_emscripten_bind_SubtitleOctopus_get_ass_renderer_0"] = Module["asm"]["cb"]).apply(null, arguments)
-};
-var _emscripten_bind_SubtitleOctopus_set_ass_renderer_1 = Module["_emscripten_bind_SubtitleOctopus_set_ass_renderer_1"] = function () {
- return (_emscripten_bind_SubtitleOctopus_set_ass_renderer_1 = Module["_emscripten_bind_SubtitleOctopus_set_ass_renderer_1"] = Module["asm"]["db"]).apply(null, arguments)
-};
-var _emscripten_bind_SubtitleOctopus_get_ass_library_0 = Module["_emscripten_bind_SubtitleOctopus_get_ass_library_0"] = function () {
- return (_emscripten_bind_SubtitleOctopus_get_ass_library_0 = Module["_emscripten_bind_SubtitleOctopus_get_ass_library_0"] = Module["asm"]["eb"]).apply(null, arguments)
-};
-var _emscripten_bind_SubtitleOctopus_set_ass_library_1 = Module["_emscripten_bind_SubtitleOctopus_set_ass_library_1"] = function () {
- return (_emscripten_bind_SubtitleOctopus_set_ass_library_1 = Module["_emscripten_bind_SubtitleOctopus_set_ass_library_1"] = Module["asm"]["fb"]).apply(null, arguments)
-};
-var _emscripten_bind_SubtitleOctopus___destroy___0 = Module["_emscripten_bind_SubtitleOctopus___destroy___0"] = function () {
- return (_emscripten_bind_SubtitleOctopus___destroy___0 = Module["_emscripten_bind_SubtitleOctopus___destroy___0"] = Module["asm"]["gb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Track_get_n_styles_0 = Module["_emscripten_bind_ASS_Track_get_n_styles_0"] = function () {
- return (_emscripten_bind_ASS_Track_get_n_styles_0 = Module["_emscripten_bind_ASS_Track_get_n_styles_0"] = Module["asm"]["hb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Track_set_n_styles_1 = Module["_emscripten_bind_ASS_Track_set_n_styles_1"] = function () {
- return (_emscripten_bind_ASS_Track_set_n_styles_1 = Module["_emscripten_bind_ASS_Track_set_n_styles_1"] = Module["asm"]["ib"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Track_get_max_styles_0 = Module["_emscripten_bind_ASS_Track_get_max_styles_0"] = function () {
- return (_emscripten_bind_ASS_Track_get_max_styles_0 = Module["_emscripten_bind_ASS_Track_get_max_styles_0"] = Module["asm"]["jb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Track_set_max_styles_1 = Module["_emscripten_bind_ASS_Track_set_max_styles_1"] = function () {
- return (_emscripten_bind_ASS_Track_set_max_styles_1 = Module["_emscripten_bind_ASS_Track_set_max_styles_1"] = Module["asm"]["kb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Track_get_n_events_0 = Module["_emscripten_bind_ASS_Track_get_n_events_0"] = function () {
- return (_emscripten_bind_ASS_Track_get_n_events_0 = Module["_emscripten_bind_ASS_Track_get_n_events_0"] = Module["asm"]["lb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Track_set_n_events_1 = Module["_emscripten_bind_ASS_Track_set_n_events_1"] = function () {
- return (_emscripten_bind_ASS_Track_set_n_events_1 = Module["_emscripten_bind_ASS_Track_set_n_events_1"] = Module["asm"]["mb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Track_get_max_events_0 = Module["_emscripten_bind_ASS_Track_get_max_events_0"] = function () {
- return (_emscripten_bind_ASS_Track_get_max_events_0 = Module["_emscripten_bind_ASS_Track_get_max_events_0"] = Module["asm"]["nb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Track_set_max_events_1 = Module["_emscripten_bind_ASS_Track_set_max_events_1"] = function () {
- return (_emscripten_bind_ASS_Track_set_max_events_1 = Module["_emscripten_bind_ASS_Track_set_max_events_1"] = Module["asm"]["ob"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Track_get_styles_1 = Module["_emscripten_bind_ASS_Track_get_styles_1"] = function () {
- return (_emscripten_bind_ASS_Track_get_styles_1 = Module["_emscripten_bind_ASS_Track_get_styles_1"] = Module["asm"]["pb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Track_set_styles_2 = Module["_emscripten_bind_ASS_Track_set_styles_2"] = function () {
- return (_emscripten_bind_ASS_Track_set_styles_2 = Module["_emscripten_bind_ASS_Track_set_styles_2"] = Module["asm"]["qb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Track_get_events_1 = Module["_emscripten_bind_ASS_Track_get_events_1"] = function () {
- return (_emscripten_bind_ASS_Track_get_events_1 = Module["_emscripten_bind_ASS_Track_get_events_1"] = Module["asm"]["rb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Track_set_events_2 = Module["_emscripten_bind_ASS_Track_set_events_2"] = function () {
- return (_emscripten_bind_ASS_Track_set_events_2 = Module["_emscripten_bind_ASS_Track_set_events_2"] = Module["asm"]["sb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Track_get_style_format_0 = Module["_emscripten_bind_ASS_Track_get_style_format_0"] = function () {
- return (_emscripten_bind_ASS_Track_get_style_format_0 = Module["_emscripten_bind_ASS_Track_get_style_format_0"] = Module["asm"]["tb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Track_set_style_format_1 = Module["_emscripten_bind_ASS_Track_set_style_format_1"] = function () {
- return (_emscripten_bind_ASS_Track_set_style_format_1 = Module["_emscripten_bind_ASS_Track_set_style_format_1"] = Module["asm"]["ub"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Track_get_event_format_0 = Module["_emscripten_bind_ASS_Track_get_event_format_0"] = function () {
- return (_emscripten_bind_ASS_Track_get_event_format_0 = Module["_emscripten_bind_ASS_Track_get_event_format_0"] = Module["asm"]["vb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Track_set_event_format_1 = Module["_emscripten_bind_ASS_Track_set_event_format_1"] = function () {
- return (_emscripten_bind_ASS_Track_set_event_format_1 = Module["_emscripten_bind_ASS_Track_set_event_format_1"] = Module["asm"]["wb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Track_get_PlayResX_0 = Module["_emscripten_bind_ASS_Track_get_PlayResX_0"] = function () {
- return (_emscripten_bind_ASS_Track_get_PlayResX_0 = Module["_emscripten_bind_ASS_Track_get_PlayResX_0"] = Module["asm"]["xb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Track_set_PlayResX_1 = Module["_emscripten_bind_ASS_Track_set_PlayResX_1"] = function () {
- return (_emscripten_bind_ASS_Track_set_PlayResX_1 = Module["_emscripten_bind_ASS_Track_set_PlayResX_1"] = Module["asm"]["yb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Track_get_PlayResY_0 = Module["_emscripten_bind_ASS_Track_get_PlayResY_0"] = function () {
- return (_emscripten_bind_ASS_Track_get_PlayResY_0 = Module["_emscripten_bind_ASS_Track_get_PlayResY_0"] = Module["asm"]["zb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Track_set_PlayResY_1 = Module["_emscripten_bind_ASS_Track_set_PlayResY_1"] = function () {
- return (_emscripten_bind_ASS_Track_set_PlayResY_1 = Module["_emscripten_bind_ASS_Track_set_PlayResY_1"] = Module["asm"]["Ab"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Track_get_Timer_0 = Module["_emscripten_bind_ASS_Track_get_Timer_0"] = function () {
- return (_emscripten_bind_ASS_Track_get_Timer_0 = Module["_emscripten_bind_ASS_Track_get_Timer_0"] = Module["asm"]["Bb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Track_set_Timer_1 = Module["_emscripten_bind_ASS_Track_set_Timer_1"] = function () {
- return (_emscripten_bind_ASS_Track_set_Timer_1 = Module["_emscripten_bind_ASS_Track_set_Timer_1"] = Module["asm"]["Cb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Track_get_WrapStyle_0 = Module["_emscripten_bind_ASS_Track_get_WrapStyle_0"] = function () {
- return (_emscripten_bind_ASS_Track_get_WrapStyle_0 = Module["_emscripten_bind_ASS_Track_get_WrapStyle_0"] = Module["asm"]["Db"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Track_set_WrapStyle_1 = Module["_emscripten_bind_ASS_Track_set_WrapStyle_1"] = function () {
- return (_emscripten_bind_ASS_Track_set_WrapStyle_1 = Module["_emscripten_bind_ASS_Track_set_WrapStyle_1"] = Module["asm"]["Eb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Track_get_ScaledBorderAndShadow_0 = Module["_emscripten_bind_ASS_Track_get_ScaledBorderAndShadow_0"] = function () {
- return (_emscripten_bind_ASS_Track_get_ScaledBorderAndShadow_0 = Module["_emscripten_bind_ASS_Track_get_ScaledBorderAndShadow_0"] = Module["asm"]["Fb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Track_set_ScaledBorderAndShadow_1 = Module["_emscripten_bind_ASS_Track_set_ScaledBorderAndShadow_1"] = function () {
- return (_emscripten_bind_ASS_Track_set_ScaledBorderAndShadow_1 = Module["_emscripten_bind_ASS_Track_set_ScaledBorderAndShadow_1"] = Module["asm"]["Gb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Track_get_Kerning_0 = Module["_emscripten_bind_ASS_Track_get_Kerning_0"] = function () {
- return (_emscripten_bind_ASS_Track_get_Kerning_0 = Module["_emscripten_bind_ASS_Track_get_Kerning_0"] = Module["asm"]["Hb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Track_set_Kerning_1 = Module["_emscripten_bind_ASS_Track_set_Kerning_1"] = function () {
- return (_emscripten_bind_ASS_Track_set_Kerning_1 = Module["_emscripten_bind_ASS_Track_set_Kerning_1"] = Module["asm"]["Ib"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Track_get_Language_0 = Module["_emscripten_bind_ASS_Track_get_Language_0"] = function () {
- return (_emscripten_bind_ASS_Track_get_Language_0 = Module["_emscripten_bind_ASS_Track_get_Language_0"] = Module["asm"]["Jb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Track_set_Language_1 = Module["_emscripten_bind_ASS_Track_set_Language_1"] = function () {
- return (_emscripten_bind_ASS_Track_set_Language_1 = Module["_emscripten_bind_ASS_Track_set_Language_1"] = Module["asm"]["Kb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Track_get_default_style_0 = Module["_emscripten_bind_ASS_Track_get_default_style_0"] = function () {
- return (_emscripten_bind_ASS_Track_get_default_style_0 = Module["_emscripten_bind_ASS_Track_get_default_style_0"] = Module["asm"]["Lb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Track_set_default_style_1 = Module["_emscripten_bind_ASS_Track_set_default_style_1"] = function () {
- return (_emscripten_bind_ASS_Track_set_default_style_1 = Module["_emscripten_bind_ASS_Track_set_default_style_1"] = Module["asm"]["Mb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Track_get_name_0 = Module["_emscripten_bind_ASS_Track_get_name_0"] = function () {
- return (_emscripten_bind_ASS_Track_get_name_0 = Module["_emscripten_bind_ASS_Track_get_name_0"] = Module["asm"]["Nb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Track_set_name_1 = Module["_emscripten_bind_ASS_Track_set_name_1"] = function () {
- return (_emscripten_bind_ASS_Track_set_name_1 = Module["_emscripten_bind_ASS_Track_set_name_1"] = Module["asm"]["Ob"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_get_Name_0 = Module["_emscripten_bind_ASS_Style_get_Name_0"] = function () {
- return (_emscripten_bind_ASS_Style_get_Name_0 = Module["_emscripten_bind_ASS_Style_get_Name_0"] = Module["asm"]["Pb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_set_Name_1 = Module["_emscripten_bind_ASS_Style_set_Name_1"] = function () {
- return (_emscripten_bind_ASS_Style_set_Name_1 = Module["_emscripten_bind_ASS_Style_set_Name_1"] = Module["asm"]["Qb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_get_FontName_0 = Module["_emscripten_bind_ASS_Style_get_FontName_0"] = function () {
- return (_emscripten_bind_ASS_Style_get_FontName_0 = Module["_emscripten_bind_ASS_Style_get_FontName_0"] = Module["asm"]["Rb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_set_FontName_1 = Module["_emscripten_bind_ASS_Style_set_FontName_1"] = function () {
- return (_emscripten_bind_ASS_Style_set_FontName_1 = Module["_emscripten_bind_ASS_Style_set_FontName_1"] = Module["asm"]["Sb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_get_FontSize_0 = Module["_emscripten_bind_ASS_Style_get_FontSize_0"] = function () {
- return (_emscripten_bind_ASS_Style_get_FontSize_0 = Module["_emscripten_bind_ASS_Style_get_FontSize_0"] = Module["asm"]["Tb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_set_FontSize_1 = Module["_emscripten_bind_ASS_Style_set_FontSize_1"] = function () {
- return (_emscripten_bind_ASS_Style_set_FontSize_1 = Module["_emscripten_bind_ASS_Style_set_FontSize_1"] = Module["asm"]["Ub"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_get_PrimaryColour_0 = Module["_emscripten_bind_ASS_Style_get_PrimaryColour_0"] = function () {
- return (_emscripten_bind_ASS_Style_get_PrimaryColour_0 = Module["_emscripten_bind_ASS_Style_get_PrimaryColour_0"] = Module["asm"]["Vb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_set_PrimaryColour_1 = Module["_emscripten_bind_ASS_Style_set_PrimaryColour_1"] = function () {
- return (_emscripten_bind_ASS_Style_set_PrimaryColour_1 = Module["_emscripten_bind_ASS_Style_set_PrimaryColour_1"] = Module["asm"]["Wb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_get_SecondaryColour_0 = Module["_emscripten_bind_ASS_Style_get_SecondaryColour_0"] = function () {
- return (_emscripten_bind_ASS_Style_get_SecondaryColour_0 = Module["_emscripten_bind_ASS_Style_get_SecondaryColour_0"] = Module["asm"]["Xb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_set_SecondaryColour_1 = Module["_emscripten_bind_ASS_Style_set_SecondaryColour_1"] = function () {
- return (_emscripten_bind_ASS_Style_set_SecondaryColour_1 = Module["_emscripten_bind_ASS_Style_set_SecondaryColour_1"] = Module["asm"]["Yb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_get_OutlineColour_0 = Module["_emscripten_bind_ASS_Style_get_OutlineColour_0"] = function () {
- return (_emscripten_bind_ASS_Style_get_OutlineColour_0 = Module["_emscripten_bind_ASS_Style_get_OutlineColour_0"] = Module["asm"]["Zb"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_set_OutlineColour_1 = Module["_emscripten_bind_ASS_Style_set_OutlineColour_1"] = function () {
- return (_emscripten_bind_ASS_Style_set_OutlineColour_1 = Module["_emscripten_bind_ASS_Style_set_OutlineColour_1"] = Module["asm"]["_b"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_get_BackColour_0 = Module["_emscripten_bind_ASS_Style_get_BackColour_0"] = function () {
- return (_emscripten_bind_ASS_Style_get_BackColour_0 = Module["_emscripten_bind_ASS_Style_get_BackColour_0"] = Module["asm"]["$b"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_set_BackColour_1 = Module["_emscripten_bind_ASS_Style_set_BackColour_1"] = function () {
- return (_emscripten_bind_ASS_Style_set_BackColour_1 = Module["_emscripten_bind_ASS_Style_set_BackColour_1"] = Module["asm"]["ac"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_get_Bold_0 = Module["_emscripten_bind_ASS_Style_get_Bold_0"] = function () {
- return (_emscripten_bind_ASS_Style_get_Bold_0 = Module["_emscripten_bind_ASS_Style_get_Bold_0"] = Module["asm"]["bc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_set_Bold_1 = Module["_emscripten_bind_ASS_Style_set_Bold_1"] = function () {
- return (_emscripten_bind_ASS_Style_set_Bold_1 = Module["_emscripten_bind_ASS_Style_set_Bold_1"] = Module["asm"]["cc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_get_Italic_0 = Module["_emscripten_bind_ASS_Style_get_Italic_0"] = function () {
- return (_emscripten_bind_ASS_Style_get_Italic_0 = Module["_emscripten_bind_ASS_Style_get_Italic_0"] = Module["asm"]["dc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_set_Italic_1 = Module["_emscripten_bind_ASS_Style_set_Italic_1"] = function () {
- return (_emscripten_bind_ASS_Style_set_Italic_1 = Module["_emscripten_bind_ASS_Style_set_Italic_1"] = Module["asm"]["ec"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_get_Underline_0 = Module["_emscripten_bind_ASS_Style_get_Underline_0"] = function () {
- return (_emscripten_bind_ASS_Style_get_Underline_0 = Module["_emscripten_bind_ASS_Style_get_Underline_0"] = Module["asm"]["fc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_set_Underline_1 = Module["_emscripten_bind_ASS_Style_set_Underline_1"] = function () {
- return (_emscripten_bind_ASS_Style_set_Underline_1 = Module["_emscripten_bind_ASS_Style_set_Underline_1"] = Module["asm"]["gc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_get_StrikeOut_0 = Module["_emscripten_bind_ASS_Style_get_StrikeOut_0"] = function () {
- return (_emscripten_bind_ASS_Style_get_StrikeOut_0 = Module["_emscripten_bind_ASS_Style_get_StrikeOut_0"] = Module["asm"]["hc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_set_StrikeOut_1 = Module["_emscripten_bind_ASS_Style_set_StrikeOut_1"] = function () {
- return (_emscripten_bind_ASS_Style_set_StrikeOut_1 = Module["_emscripten_bind_ASS_Style_set_StrikeOut_1"] = Module["asm"]["ic"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_get_ScaleX_0 = Module["_emscripten_bind_ASS_Style_get_ScaleX_0"] = function () {
- return (_emscripten_bind_ASS_Style_get_ScaleX_0 = Module["_emscripten_bind_ASS_Style_get_ScaleX_0"] = Module["asm"]["jc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_set_ScaleX_1 = Module["_emscripten_bind_ASS_Style_set_ScaleX_1"] = function () {
- return (_emscripten_bind_ASS_Style_set_ScaleX_1 = Module["_emscripten_bind_ASS_Style_set_ScaleX_1"] = Module["asm"]["kc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_get_ScaleY_0 = Module["_emscripten_bind_ASS_Style_get_ScaleY_0"] = function () {
- return (_emscripten_bind_ASS_Style_get_ScaleY_0 = Module["_emscripten_bind_ASS_Style_get_ScaleY_0"] = Module["asm"]["lc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_set_ScaleY_1 = Module["_emscripten_bind_ASS_Style_set_ScaleY_1"] = function () {
- return (_emscripten_bind_ASS_Style_set_ScaleY_1 = Module["_emscripten_bind_ASS_Style_set_ScaleY_1"] = Module["asm"]["mc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_get_Spacing_0 = Module["_emscripten_bind_ASS_Style_get_Spacing_0"] = function () {
- return (_emscripten_bind_ASS_Style_get_Spacing_0 = Module["_emscripten_bind_ASS_Style_get_Spacing_0"] = Module["asm"]["nc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_set_Spacing_1 = Module["_emscripten_bind_ASS_Style_set_Spacing_1"] = function () {
- return (_emscripten_bind_ASS_Style_set_Spacing_1 = Module["_emscripten_bind_ASS_Style_set_Spacing_1"] = Module["asm"]["oc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_get_Angle_0 = Module["_emscripten_bind_ASS_Style_get_Angle_0"] = function () {
- return (_emscripten_bind_ASS_Style_get_Angle_0 = Module["_emscripten_bind_ASS_Style_get_Angle_0"] = Module["asm"]["pc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_set_Angle_1 = Module["_emscripten_bind_ASS_Style_set_Angle_1"] = function () {
- return (_emscripten_bind_ASS_Style_set_Angle_1 = Module["_emscripten_bind_ASS_Style_set_Angle_1"] = Module["asm"]["qc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_get_BorderStyle_0 = Module["_emscripten_bind_ASS_Style_get_BorderStyle_0"] = function () {
- return (_emscripten_bind_ASS_Style_get_BorderStyle_0 = Module["_emscripten_bind_ASS_Style_get_BorderStyle_0"] = Module["asm"]["rc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_set_BorderStyle_1 = Module["_emscripten_bind_ASS_Style_set_BorderStyle_1"] = function () {
- return (_emscripten_bind_ASS_Style_set_BorderStyle_1 = Module["_emscripten_bind_ASS_Style_set_BorderStyle_1"] = Module["asm"]["sc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_get_Outline_0 = Module["_emscripten_bind_ASS_Style_get_Outline_0"] = function () {
- return (_emscripten_bind_ASS_Style_get_Outline_0 = Module["_emscripten_bind_ASS_Style_get_Outline_0"] = Module["asm"]["tc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_set_Outline_1 = Module["_emscripten_bind_ASS_Style_set_Outline_1"] = function () {
- return (_emscripten_bind_ASS_Style_set_Outline_1 = Module["_emscripten_bind_ASS_Style_set_Outline_1"] = Module["asm"]["uc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_get_Shadow_0 = Module["_emscripten_bind_ASS_Style_get_Shadow_0"] = function () {
- return (_emscripten_bind_ASS_Style_get_Shadow_0 = Module["_emscripten_bind_ASS_Style_get_Shadow_0"] = Module["asm"]["vc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_set_Shadow_1 = Module["_emscripten_bind_ASS_Style_set_Shadow_1"] = function () {
- return (_emscripten_bind_ASS_Style_set_Shadow_1 = Module["_emscripten_bind_ASS_Style_set_Shadow_1"] = Module["asm"]["wc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_get_Alignment_0 = Module["_emscripten_bind_ASS_Style_get_Alignment_0"] = function () {
- return (_emscripten_bind_ASS_Style_get_Alignment_0 = Module["_emscripten_bind_ASS_Style_get_Alignment_0"] = Module["asm"]["xc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_set_Alignment_1 = Module["_emscripten_bind_ASS_Style_set_Alignment_1"] = function () {
- return (_emscripten_bind_ASS_Style_set_Alignment_1 = Module["_emscripten_bind_ASS_Style_set_Alignment_1"] = Module["asm"]["yc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_get_MarginL_0 = Module["_emscripten_bind_ASS_Style_get_MarginL_0"] = function () {
- return (_emscripten_bind_ASS_Style_get_MarginL_0 = Module["_emscripten_bind_ASS_Style_get_MarginL_0"] = Module["asm"]["zc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_set_MarginL_1 = Module["_emscripten_bind_ASS_Style_set_MarginL_1"] = function () {
- return (_emscripten_bind_ASS_Style_set_MarginL_1 = Module["_emscripten_bind_ASS_Style_set_MarginL_1"] = Module["asm"]["Ac"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_get_MarginR_0 = Module["_emscripten_bind_ASS_Style_get_MarginR_0"] = function () {
- return (_emscripten_bind_ASS_Style_get_MarginR_0 = Module["_emscripten_bind_ASS_Style_get_MarginR_0"] = Module["asm"]["Bc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_set_MarginR_1 = Module["_emscripten_bind_ASS_Style_set_MarginR_1"] = function () {
- return (_emscripten_bind_ASS_Style_set_MarginR_1 = Module["_emscripten_bind_ASS_Style_set_MarginR_1"] = Module["asm"]["Cc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_get_MarginV_0 = Module["_emscripten_bind_ASS_Style_get_MarginV_0"] = function () {
- return (_emscripten_bind_ASS_Style_get_MarginV_0 = Module["_emscripten_bind_ASS_Style_get_MarginV_0"] = Module["asm"]["Dc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_set_MarginV_1 = Module["_emscripten_bind_ASS_Style_set_MarginV_1"] = function () {
- return (_emscripten_bind_ASS_Style_set_MarginV_1 = Module["_emscripten_bind_ASS_Style_set_MarginV_1"] = Module["asm"]["Ec"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_get_Encoding_0 = Module["_emscripten_bind_ASS_Style_get_Encoding_0"] = function () {
- return (_emscripten_bind_ASS_Style_get_Encoding_0 = Module["_emscripten_bind_ASS_Style_get_Encoding_0"] = Module["asm"]["Fc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_set_Encoding_1 = Module["_emscripten_bind_ASS_Style_set_Encoding_1"] = function () {
- return (_emscripten_bind_ASS_Style_set_Encoding_1 = Module["_emscripten_bind_ASS_Style_set_Encoding_1"] = Module["asm"]["Gc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_get_treat_fontname_as_pattern_0 = Module["_emscripten_bind_ASS_Style_get_treat_fontname_as_pattern_0"] = function () {
- return (_emscripten_bind_ASS_Style_get_treat_fontname_as_pattern_0 = Module["_emscripten_bind_ASS_Style_get_treat_fontname_as_pattern_0"] = Module["asm"]["Hc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_set_treat_fontname_as_pattern_1 = Module["_emscripten_bind_ASS_Style_set_treat_fontname_as_pattern_1"] = function () {
- return (_emscripten_bind_ASS_Style_set_treat_fontname_as_pattern_1 = Module["_emscripten_bind_ASS_Style_set_treat_fontname_as_pattern_1"] = Module["asm"]["Ic"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_get_Blur_0 = Module["_emscripten_bind_ASS_Style_get_Blur_0"] = function () {
- return (_emscripten_bind_ASS_Style_get_Blur_0 = Module["_emscripten_bind_ASS_Style_get_Blur_0"] = Module["asm"]["Jc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_set_Blur_1 = Module["_emscripten_bind_ASS_Style_set_Blur_1"] = function () {
- return (_emscripten_bind_ASS_Style_set_Blur_1 = Module["_emscripten_bind_ASS_Style_set_Blur_1"] = Module["asm"]["Kc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_get_Justify_0 = Module["_emscripten_bind_ASS_Style_get_Justify_0"] = function () {
- return (_emscripten_bind_ASS_Style_get_Justify_0 = Module["_emscripten_bind_ASS_Style_get_Justify_0"] = Module["asm"]["Lc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Style_set_Justify_1 = Module["_emscripten_bind_ASS_Style_set_Justify_1"] = function () {
- return (_emscripten_bind_ASS_Style_set_Justify_1 = Module["_emscripten_bind_ASS_Style_set_Justify_1"] = Module["asm"]["Mc"]).apply(null, arguments)
-};
-var _emscripten_bind_EventStopTimesResult_get_eventFinish_0 = Module["_emscripten_bind_EventStopTimesResult_get_eventFinish_0"] = function () {
- return (_emscripten_bind_EventStopTimesResult_get_eventFinish_0 = Module["_emscripten_bind_EventStopTimesResult_get_eventFinish_0"] = Module["asm"]["Nc"]).apply(null, arguments)
-};
-var _emscripten_bind_EventStopTimesResult_set_eventFinish_1 = Module["_emscripten_bind_EventStopTimesResult_set_eventFinish_1"] = function () {
- return (_emscripten_bind_EventStopTimesResult_set_eventFinish_1 = Module["_emscripten_bind_EventStopTimesResult_set_eventFinish_1"] = Module["asm"]["Oc"]).apply(null, arguments)
-};
-var _emscripten_bind_EventStopTimesResult_get_emptyFinish_0 = Module["_emscripten_bind_EventStopTimesResult_get_emptyFinish_0"] = function () {
- return (_emscripten_bind_EventStopTimesResult_get_emptyFinish_0 = Module["_emscripten_bind_EventStopTimesResult_get_emptyFinish_0"] = Module["asm"]["Pc"]).apply(null, arguments)
-};
-var _emscripten_bind_EventStopTimesResult_set_emptyFinish_1 = Module["_emscripten_bind_EventStopTimesResult_set_emptyFinish_1"] = function () {
- return (_emscripten_bind_EventStopTimesResult_set_emptyFinish_1 = Module["_emscripten_bind_EventStopTimesResult_set_emptyFinish_1"] = Module["asm"]["Qc"]).apply(null, arguments)
-};
-var _emscripten_bind_EventStopTimesResult_get_is_animated_0 = Module["_emscripten_bind_EventStopTimesResult_get_is_animated_0"] = function () {
- return (_emscripten_bind_EventStopTimesResult_get_is_animated_0 = Module["_emscripten_bind_EventStopTimesResult_get_is_animated_0"] = Module["asm"]["Rc"]).apply(null, arguments)
-};
-var _emscripten_bind_EventStopTimesResult_set_is_animated_1 = Module["_emscripten_bind_EventStopTimesResult_set_is_animated_1"] = function () {
- return (_emscripten_bind_EventStopTimesResult_set_is_animated_1 = Module["_emscripten_bind_EventStopTimesResult_set_is_animated_1"] = Module["asm"]["Sc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Image_get_w_0 = Module["_emscripten_bind_ASS_Image_get_w_0"] = function () {
- return (_emscripten_bind_ASS_Image_get_w_0 = Module["_emscripten_bind_ASS_Image_get_w_0"] = Module["asm"]["Tc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Image_set_w_1 = Module["_emscripten_bind_ASS_Image_set_w_1"] = function () {
- return (_emscripten_bind_ASS_Image_set_w_1 = Module["_emscripten_bind_ASS_Image_set_w_1"] = Module["asm"]["Uc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Image_get_h_0 = Module["_emscripten_bind_ASS_Image_get_h_0"] = function () {
- return (_emscripten_bind_ASS_Image_get_h_0 = Module["_emscripten_bind_ASS_Image_get_h_0"] = Module["asm"]["Vc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Image_set_h_1 = Module["_emscripten_bind_ASS_Image_set_h_1"] = function () {
- return (_emscripten_bind_ASS_Image_set_h_1 = Module["_emscripten_bind_ASS_Image_set_h_1"] = Module["asm"]["Wc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Image_get_stride_0 = Module["_emscripten_bind_ASS_Image_get_stride_0"] = function () {
- return (_emscripten_bind_ASS_Image_get_stride_0 = Module["_emscripten_bind_ASS_Image_get_stride_0"] = Module["asm"]["Xc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Image_set_stride_1 = Module["_emscripten_bind_ASS_Image_set_stride_1"] = function () {
- return (_emscripten_bind_ASS_Image_set_stride_1 = Module["_emscripten_bind_ASS_Image_set_stride_1"] = Module["asm"]["Yc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Image_get_bitmap_0 = Module["_emscripten_bind_ASS_Image_get_bitmap_0"] = function () {
- return (_emscripten_bind_ASS_Image_get_bitmap_0 = Module["_emscripten_bind_ASS_Image_get_bitmap_0"] = Module["asm"]["Zc"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Image_set_bitmap_1 = Module["_emscripten_bind_ASS_Image_set_bitmap_1"] = function () {
- return (_emscripten_bind_ASS_Image_set_bitmap_1 = Module["_emscripten_bind_ASS_Image_set_bitmap_1"] = Module["asm"]["_c"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Image_get_color_0 = Module["_emscripten_bind_ASS_Image_get_color_0"] = function () {
- return (_emscripten_bind_ASS_Image_get_color_0 = Module["_emscripten_bind_ASS_Image_get_color_0"] = Module["asm"]["$c"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Image_set_color_1 = Module["_emscripten_bind_ASS_Image_set_color_1"] = function () {
- return (_emscripten_bind_ASS_Image_set_color_1 = Module["_emscripten_bind_ASS_Image_set_color_1"] = Module["asm"]["ad"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Image_get_dst_x_0 = Module["_emscripten_bind_ASS_Image_get_dst_x_0"] = function () {
- return (_emscripten_bind_ASS_Image_get_dst_x_0 = Module["_emscripten_bind_ASS_Image_get_dst_x_0"] = Module["asm"]["bd"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Image_set_dst_x_1 = Module["_emscripten_bind_ASS_Image_set_dst_x_1"] = function () {
- return (_emscripten_bind_ASS_Image_set_dst_x_1 = Module["_emscripten_bind_ASS_Image_set_dst_x_1"] = Module["asm"]["cd"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Image_get_dst_y_0 = Module["_emscripten_bind_ASS_Image_get_dst_y_0"] = function () {
- return (_emscripten_bind_ASS_Image_get_dst_y_0 = Module["_emscripten_bind_ASS_Image_get_dst_y_0"] = Module["asm"]["dd"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Image_set_dst_y_1 = Module["_emscripten_bind_ASS_Image_set_dst_y_1"] = function () {
- return (_emscripten_bind_ASS_Image_set_dst_y_1 = Module["_emscripten_bind_ASS_Image_set_dst_y_1"] = Module["asm"]["ed"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Image_get_next_0 = Module["_emscripten_bind_ASS_Image_get_next_0"] = function () {
- return (_emscripten_bind_ASS_Image_get_next_0 = Module["_emscripten_bind_ASS_Image_get_next_0"] = Module["asm"]["fd"]).apply(null, arguments)
-};
-var _emscripten_bind_ASS_Image_set_next_1 = Module["_emscripten_bind_ASS_Image_set_next_1"] = function () {
- return (_emscripten_bind_ASS_Image_set_next_1 = Module["_emscripten_bind_ASS_Image_set_next_1"] = Module["asm"]["gd"]).apply(null, arguments)
-};
-var _emscripten_bind_VoidPtr___destroy___0 = Module["_emscripten_bind_VoidPtr___destroy___0"] = function () {
- return (_emscripten_bind_VoidPtr___destroy___0 = Module["_emscripten_bind_VoidPtr___destroy___0"] = Module["asm"]["hd"]).apply(null, arguments)
-};
-var _emscripten_bind_RenderBlendPart_get_dest_x_0 = Module["_emscripten_bind_RenderBlendPart_get_dest_x_0"] = function () {
- return (_emscripten_bind_RenderBlendPart_get_dest_x_0 = Module["_emscripten_bind_RenderBlendPart_get_dest_x_0"] = Module["asm"]["id"]).apply(null, arguments)
-};
-var _emscripten_bind_RenderBlendPart_set_dest_x_1 = Module["_emscripten_bind_RenderBlendPart_set_dest_x_1"] = function () {
- return (_emscripten_bind_RenderBlendPart_set_dest_x_1 = Module["_emscripten_bind_RenderBlendPart_set_dest_x_1"] = Module["asm"]["jd"]).apply(null, arguments)
-};
-var _emscripten_bind_RenderBlendPart_get_dest_y_0 = Module["_emscripten_bind_RenderBlendPart_get_dest_y_0"] = function () {
- return (_emscripten_bind_RenderBlendPart_get_dest_y_0 = Module["_emscripten_bind_RenderBlendPart_get_dest_y_0"] = Module["asm"]["kd"]).apply(null, arguments)
-};
-var _emscripten_bind_RenderBlendPart_set_dest_y_1 = Module["_emscripten_bind_RenderBlendPart_set_dest_y_1"] = function () {
- return (_emscripten_bind_RenderBlendPart_set_dest_y_1 = Module["_emscripten_bind_RenderBlendPart_set_dest_y_1"] = Module["asm"]["ld"]).apply(null, arguments)
-};
-var _emscripten_bind_RenderBlendPart_get_dest_width_0 = Module["_emscripten_bind_RenderBlendPart_get_dest_width_0"] = function () {
- return (_emscripten_bind_RenderBlendPart_get_dest_width_0 = Module["_emscripten_bind_RenderBlendPart_get_dest_width_0"] = Module["asm"]["md"]).apply(null, arguments)
-};
-var _emscripten_bind_RenderBlendPart_set_dest_width_1 = Module["_emscripten_bind_RenderBlendPart_set_dest_width_1"] = function () {
- return (_emscripten_bind_RenderBlendPart_set_dest_width_1 = Module["_emscripten_bind_RenderBlendPart_set_dest_width_1"] = Module["asm"]["nd"]).apply(null, arguments)
-};
-var _emscripten_bind_RenderBlendPart_get_dest_height_0 = Module["_emscripten_bind_RenderBlendPart_get_dest_height_0"] = function () {
- return (_emscripten_bind_RenderBlendPart_get_dest_height_0 = Module["_emscripten_bind_RenderBlendPart_get_dest_height_0"] = Module["asm"]["od"]).apply(null, arguments)
-};
-var _emscripten_bind_RenderBlendPart_set_dest_height_1 = Module["_emscripten_bind_RenderBlendPart_set_dest_height_1"] = function () {
- return (_emscripten_bind_RenderBlendPart_set_dest_height_1 = Module["_emscripten_bind_RenderBlendPart_set_dest_height_1"] = Module["asm"]["pd"]).apply(null, arguments)
-};
-var _emscripten_bind_RenderBlendPart_get_image_0 = Module["_emscripten_bind_RenderBlendPart_get_image_0"] = function () {
- return (_emscripten_bind_RenderBlendPart_get_image_0 = Module["_emscripten_bind_RenderBlendPart_get_image_0"] = Module["asm"]["qd"]).apply(null, arguments)
-};
-var _emscripten_bind_RenderBlendPart_set_image_1 = Module["_emscripten_bind_RenderBlendPart_set_image_1"] = function () {
- return (_emscripten_bind_RenderBlendPart_set_image_1 = Module["_emscripten_bind_RenderBlendPart_set_image_1"] = Module["asm"]["rd"]).apply(null, arguments)
-};
-var _emscripten_bind_RenderBlendPart_get_next_0 = Module["_emscripten_bind_RenderBlendPart_get_next_0"] = function () {
- return (_emscripten_bind_RenderBlendPart_get_next_0 = Module["_emscripten_bind_RenderBlendPart_get_next_0"] = Module["asm"]["sd"]).apply(null, arguments)
-};
-var _emscripten_bind_RenderBlendPart_set_next_1 = Module["_emscripten_bind_RenderBlendPart_set_next_1"] = function () {
- return (_emscripten_bind_RenderBlendPart_set_next_1 = Module["_emscripten_bind_RenderBlendPart_set_next_1"] = Module["asm"]["td"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_libass_0 = Module["_emscripten_bind_libass_libass_0"] = function () {
- return (_emscripten_bind_libass_libass_0 = Module["_emscripten_bind_libass_libass_0"] = Module["asm"]["ud"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_oct_library_version_0 = Module["_emscripten_bind_libass_oct_library_version_0"] = function () {
- return (_emscripten_bind_libass_oct_library_version_0 = Module["_emscripten_bind_libass_oct_library_version_0"] = Module["asm"]["vd"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_oct_library_init_0 = Module["_emscripten_bind_libass_oct_library_init_0"] = function () {
- return (_emscripten_bind_libass_oct_library_init_0 = Module["_emscripten_bind_libass_oct_library_init_0"] = Module["asm"]["wd"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_oct_library_done_1 = Module["_emscripten_bind_libass_oct_library_done_1"] = function () {
- return (_emscripten_bind_libass_oct_library_done_1 = Module["_emscripten_bind_libass_oct_library_done_1"] = Module["asm"]["xd"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_oct_set_fonts_dir_2 = Module["_emscripten_bind_libass_oct_set_fonts_dir_2"] = function () {
- return (_emscripten_bind_libass_oct_set_fonts_dir_2 = Module["_emscripten_bind_libass_oct_set_fonts_dir_2"] = Module["asm"]["yd"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_oct_set_extract_fonts_2 = Module["_emscripten_bind_libass_oct_set_extract_fonts_2"] = function () {
- return (_emscripten_bind_libass_oct_set_extract_fonts_2 = Module["_emscripten_bind_libass_oct_set_extract_fonts_2"] = Module["asm"]["zd"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_oct_set_style_overrides_2 = Module["_emscripten_bind_libass_oct_set_style_overrides_2"] = function () {
- return (_emscripten_bind_libass_oct_set_style_overrides_2 = Module["_emscripten_bind_libass_oct_set_style_overrides_2"] = Module["asm"]["Ad"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_oct_process_force_style_1 = Module["_emscripten_bind_libass_oct_process_force_style_1"] = function () {
- return (_emscripten_bind_libass_oct_process_force_style_1 = Module["_emscripten_bind_libass_oct_process_force_style_1"] = Module["asm"]["Bd"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_oct_renderer_init_1 = Module["_emscripten_bind_libass_oct_renderer_init_1"] = function () {
- return (_emscripten_bind_libass_oct_renderer_init_1 = Module["_emscripten_bind_libass_oct_renderer_init_1"] = Module["asm"]["Cd"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_oct_renderer_done_1 = Module["_emscripten_bind_libass_oct_renderer_done_1"] = function () {
- return (_emscripten_bind_libass_oct_renderer_done_1 = Module["_emscripten_bind_libass_oct_renderer_done_1"] = Module["asm"]["Dd"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_oct_set_frame_size_3 = Module["_emscripten_bind_libass_oct_set_frame_size_3"] = function () {
- return (_emscripten_bind_libass_oct_set_frame_size_3 = Module["_emscripten_bind_libass_oct_set_frame_size_3"] = Module["asm"]["Ed"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_oct_set_storage_size_3 = Module["_emscripten_bind_libass_oct_set_storage_size_3"] = function () {
- return (_emscripten_bind_libass_oct_set_storage_size_3 = Module["_emscripten_bind_libass_oct_set_storage_size_3"] = Module["asm"]["Fd"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_oct_set_shaper_2 = Module["_emscripten_bind_libass_oct_set_shaper_2"] = function () {
- return (_emscripten_bind_libass_oct_set_shaper_2 = Module["_emscripten_bind_libass_oct_set_shaper_2"] = Module["asm"]["Gd"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_oct_set_margins_5 = Module["_emscripten_bind_libass_oct_set_margins_5"] = function () {
- return (_emscripten_bind_libass_oct_set_margins_5 = Module["_emscripten_bind_libass_oct_set_margins_5"] = Module["asm"]["Hd"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_oct_set_use_margins_2 = Module["_emscripten_bind_libass_oct_set_use_margins_2"] = function () {
- return (_emscripten_bind_libass_oct_set_use_margins_2 = Module["_emscripten_bind_libass_oct_set_use_margins_2"] = Module["asm"]["Id"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_oct_set_pixel_aspect_2 = Module["_emscripten_bind_libass_oct_set_pixel_aspect_2"] = function () {
- return (_emscripten_bind_libass_oct_set_pixel_aspect_2 = Module["_emscripten_bind_libass_oct_set_pixel_aspect_2"] = Module["asm"]["Jd"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_oct_set_aspect_ratio_3 = Module["_emscripten_bind_libass_oct_set_aspect_ratio_3"] = function () {
- return (_emscripten_bind_libass_oct_set_aspect_ratio_3 = Module["_emscripten_bind_libass_oct_set_aspect_ratio_3"] = Module["asm"]["Kd"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_oct_set_font_scale_2 = Module["_emscripten_bind_libass_oct_set_font_scale_2"] = function () {
- return (_emscripten_bind_libass_oct_set_font_scale_2 = Module["_emscripten_bind_libass_oct_set_font_scale_2"] = Module["asm"]["Ld"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_oct_set_hinting_2 = Module["_emscripten_bind_libass_oct_set_hinting_2"] = function () {
- return (_emscripten_bind_libass_oct_set_hinting_2 = Module["_emscripten_bind_libass_oct_set_hinting_2"] = Module["asm"]["Md"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_oct_set_line_spacing_2 = Module["_emscripten_bind_libass_oct_set_line_spacing_2"] = function () {
- return (_emscripten_bind_libass_oct_set_line_spacing_2 = Module["_emscripten_bind_libass_oct_set_line_spacing_2"] = Module["asm"]["Nd"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_oct_set_line_position_2 = Module["_emscripten_bind_libass_oct_set_line_position_2"] = function () {
- return (_emscripten_bind_libass_oct_set_line_position_2 = Module["_emscripten_bind_libass_oct_set_line_position_2"] = Module["asm"]["Od"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_oct_set_fonts_6 = Module["_emscripten_bind_libass_oct_set_fonts_6"] = function () {
- return (_emscripten_bind_libass_oct_set_fonts_6 = Module["_emscripten_bind_libass_oct_set_fonts_6"] = Module["asm"]["Pd"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_oct_set_selective_style_override_enabled_2 = Module["_emscripten_bind_libass_oct_set_selective_style_override_enabled_2"] = function () {
- return (_emscripten_bind_libass_oct_set_selective_style_override_enabled_2 = Module["_emscripten_bind_libass_oct_set_selective_style_override_enabled_2"] = Module["asm"]["Qd"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_oct_set_selective_style_override_2 = Module["_emscripten_bind_libass_oct_set_selective_style_override_2"] = function () {
- return (_emscripten_bind_libass_oct_set_selective_style_override_2 = Module["_emscripten_bind_libass_oct_set_selective_style_override_2"] = Module["asm"]["Rd"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_oct_set_cache_limits_3 = Module["_emscripten_bind_libass_oct_set_cache_limits_3"] = function () {
- return (_emscripten_bind_libass_oct_set_cache_limits_3 = Module["_emscripten_bind_libass_oct_set_cache_limits_3"] = Module["asm"]["Sd"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_oct_render_frame_4 = Module["_emscripten_bind_libass_oct_render_frame_4"] = function () {
- return (_emscripten_bind_libass_oct_render_frame_4 = Module["_emscripten_bind_libass_oct_render_frame_4"] = Module["asm"]["Td"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_oct_new_track_1 = Module["_emscripten_bind_libass_oct_new_track_1"] = function () {
- return (_emscripten_bind_libass_oct_new_track_1 = Module["_emscripten_bind_libass_oct_new_track_1"] = Module["asm"]["Ud"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_oct_free_track_1 = Module["_emscripten_bind_libass_oct_free_track_1"] = function () {
- return (_emscripten_bind_libass_oct_free_track_1 = Module["_emscripten_bind_libass_oct_free_track_1"] = Module["asm"]["Vd"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_oct_alloc_style_1 = Module["_emscripten_bind_libass_oct_alloc_style_1"] = function () {
- return (_emscripten_bind_libass_oct_alloc_style_1 = Module["_emscripten_bind_libass_oct_alloc_style_1"] = Module["asm"]["Wd"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_oct_alloc_event_1 = Module["_emscripten_bind_libass_oct_alloc_event_1"] = function () {
- return (_emscripten_bind_libass_oct_alloc_event_1 = Module["_emscripten_bind_libass_oct_alloc_event_1"] = Module["asm"]["Xd"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_oct_free_style_2 = Module["_emscripten_bind_libass_oct_free_style_2"] = function () {
- return (_emscripten_bind_libass_oct_free_style_2 = Module["_emscripten_bind_libass_oct_free_style_2"] = Module["asm"]["Yd"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_oct_free_event_2 = Module["_emscripten_bind_libass_oct_free_event_2"] = function () {
- return (_emscripten_bind_libass_oct_free_event_2 = Module["_emscripten_bind_libass_oct_free_event_2"] = Module["asm"]["Zd"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_oct_flush_events_1 = Module["_emscripten_bind_libass_oct_flush_events_1"] = function () {
- return (_emscripten_bind_libass_oct_flush_events_1 = Module["_emscripten_bind_libass_oct_flush_events_1"] = Module["asm"]["_d"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_oct_read_file_3 = Module["_emscripten_bind_libass_oct_read_file_3"] = function () {
- return (_emscripten_bind_libass_oct_read_file_3 = Module["_emscripten_bind_libass_oct_read_file_3"] = Module["asm"]["$d"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_oct_add_font_4 = Module["_emscripten_bind_libass_oct_add_font_4"] = function () {
- return (_emscripten_bind_libass_oct_add_font_4 = Module["_emscripten_bind_libass_oct_add_font_4"] = Module["asm"]["ae"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_oct_clear_fonts_1 = Module["_emscripten_bind_libass_oct_clear_fonts_1"] = function () {
- return (_emscripten_bind_libass_oct_clear_fonts_1 = Module["_emscripten_bind_libass_oct_clear_fonts_1"] = Module["asm"]["be"]).apply(null, arguments)
-};
-var _emscripten_bind_libass_oct_step_sub_3 = Module["_emscripten_bind_libass_oct_step_sub_3"] = function () {
- return (_emscripten_bind_libass_oct_step_sub_3 = Module["_emscripten_bind_libass_oct_step_sub_3"] = Module["asm"]["ce"]).apply(null, arguments)
-};
-var _emscripten_enum_ASS_Hinting_ASS_HINTING_NONE = Module["_emscripten_enum_ASS_Hinting_ASS_HINTING_NONE"] = function () {
- return (_emscripten_enum_ASS_Hinting_ASS_HINTING_NONE = Module["_emscripten_enum_ASS_Hinting_ASS_HINTING_NONE"] = Module["asm"]["de"]).apply(null, arguments)
-};
-var _emscripten_enum_ASS_Hinting_ASS_HINTING_LIGHT = Module["_emscripten_enum_ASS_Hinting_ASS_HINTING_LIGHT"] = function () {
- return (_emscripten_enum_ASS_Hinting_ASS_HINTING_LIGHT = Module["_emscripten_enum_ASS_Hinting_ASS_HINTING_LIGHT"] = Module["asm"]["ee"]).apply(null, arguments)
-};
-var _emscripten_enum_ASS_Hinting_ASS_HINTING_NORMAL = Module["_emscripten_enum_ASS_Hinting_ASS_HINTING_NORMAL"] = function () {
- return (_emscripten_enum_ASS_Hinting_ASS_HINTING_NORMAL = Module["_emscripten_enum_ASS_Hinting_ASS_HINTING_NORMAL"] = Module["asm"]["fe"]).apply(null, arguments)
-};
-var _emscripten_enum_ASS_Hinting_ASS_HINTING_NATIVE = Module["_emscripten_enum_ASS_Hinting_ASS_HINTING_NATIVE"] = function () {
- return (_emscripten_enum_ASS_Hinting_ASS_HINTING_NATIVE = Module["_emscripten_enum_ASS_Hinting_ASS_HINTING_NATIVE"] = Module["asm"]["ge"]).apply(null, arguments)
-};
-var _emscripten_enum_ASS_ShapingLevel_ASS_SHAPING_SIMPLE = Module["_emscripten_enum_ASS_ShapingLevel_ASS_SHAPING_SIMPLE"] = function () {
- return (_emscripten_enum_ASS_ShapingLevel_ASS_SHAPING_SIMPLE = Module["_emscripten_enum_ASS_ShapingLevel_ASS_SHAPING_SIMPLE"] = Module["asm"]["he"]).apply(null, arguments)
-};
-var _emscripten_enum_ASS_ShapingLevel_ASS_SHAPING_COMPLEX = Module["_emscripten_enum_ASS_ShapingLevel_ASS_SHAPING_COMPLEX"] = function () {
- return (_emscripten_enum_ASS_ShapingLevel_ASS_SHAPING_COMPLEX = Module["_emscripten_enum_ASS_ShapingLevel_ASS_SHAPING_COMPLEX"] = Module["asm"]["ie"]).apply(null, arguments)
-};
-var _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_DEFAULT = Module["_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_DEFAULT"] = function () {
- return (_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_DEFAULT = Module["_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_DEFAULT"] = Module["asm"]["je"]).apply(null, arguments)
-};
-var _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_STYLE = Module["_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_STYLE"] = function () {
- return (_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_STYLE = Module["_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_STYLE"] = Module["asm"]["ke"]).apply(null, arguments)
-};
-var _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_SELECTIVE_FONT_SCALE = Module["_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_SELECTIVE_FONT_SCALE"] = function () {
- return (_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_SELECTIVE_FONT_SCALE = Module["_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_SELECTIVE_FONT_SCALE"] = Module["asm"]["le"]).apply(null, arguments)
-};
-var _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_FONT_SIZE = Module["_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_FONT_SIZE"] = function () {
- return (_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_FONT_SIZE = Module["_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_FONT_SIZE"] = Module["asm"]["me"]).apply(null, arguments)
-};
-var _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_FONT_SIZE_FIELDS = Module["_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_FONT_SIZE_FIELDS"] = function () {
- return (_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_FONT_SIZE_FIELDS = Module["_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_FONT_SIZE_FIELDS"] = Module["asm"]["ne"]).apply(null, arguments)
-};
-var _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_FONT_NAME = Module["_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_FONT_NAME"] = function () {
- return (_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_FONT_NAME = Module["_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_FONT_NAME"] = Module["asm"]["oe"]).apply(null, arguments)
-};
-var _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_COLORS = Module["_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_COLORS"] = function () {
- return (_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_COLORS = Module["_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_COLORS"] = Module["asm"]["pe"]).apply(null, arguments)
-};
-var _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_ATTRIBUTES = Module["_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_ATTRIBUTES"] = function () {
- return (_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_ATTRIBUTES = Module["_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_ATTRIBUTES"] = Module["asm"]["qe"]).apply(null, arguments)
-};
-var _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_BORDER = Module["_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_BORDER"] = function () {
- return (_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_BORDER = Module["_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_BORDER"] = Module["asm"]["re"]).apply(null, arguments)
-};
-var _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_ALIGNMENT = Module["_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_ALIGNMENT"] = function () {
- return (_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_ALIGNMENT = Module["_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_ALIGNMENT"] = Module["asm"]["se"]).apply(null, arguments)
-};
-var _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_MARGINS = Module["_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_MARGINS"] = function () {
- return (_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_MARGINS = Module["_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_MARGINS"] = Module["asm"]["te"]).apply(null, arguments)
-};
-var _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_FULL_STYLE = Module["_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_FULL_STYLE"] = function () {
- return (_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_FULL_STYLE = Module["_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_FULL_STYLE"] = Module["asm"]["ue"]).apply(null, arguments)
-};
-var _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_JUSTIFY = Module["_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_JUSTIFY"] = function () {
- return (_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_JUSTIFY = Module["_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_JUSTIFY"] = Module["asm"]["ve"]).apply(null, arguments)
-};
-var _realloc = Module["_realloc"] = function () {
- return (_realloc = Module["_realloc"] = Module["asm"]["we"]).apply(null, arguments)
-};
-var ___errno_location = Module["___errno_location"] = function () {
- return (___errno_location = Module["___errno_location"] = Module["asm"]["xe"]).apply(null, arguments)
-};
-var _setThrew = Module["_setThrew"] = function () {
- return (_setThrew = Module["_setThrew"] = Module["asm"]["ye"]).apply(null, arguments)
-};
-var dynCall_v = Module["dynCall_v"] = function () {
- return (dynCall_v = Module["dynCall_v"] = Module["asm"]["ze"]).apply(null, arguments)
-};
-var dynCall_vii = Module["dynCall_vii"] = function () {
- return (dynCall_vii = Module["dynCall_vii"] = Module["asm"]["Ae"]).apply(null, arguments)
-};
-var dynCall_iii = Module["dynCall_iii"] = function () {
- return (dynCall_iii = Module["dynCall_iii"] = Module["asm"]["Be"]).apply(null, arguments)
-};
-var dynCall_iiii = Module["dynCall_iiii"] = function () {
- return (dynCall_iiii = Module["dynCall_iiii"] = Module["asm"]["Ce"]).apply(null, arguments)
-};
-var dynCall_iiiii = Module["dynCall_iiiii"] = function () {
- return (dynCall_iiiii = Module["dynCall_iiiii"] = Module["asm"]["De"]).apply(null, arguments)
-};
-var stackSave = Module["stackSave"] = function () {
- return (stackSave = Module["stackSave"] = Module["asm"]["Ee"]).apply(null, arguments)
-};
-var stackAlloc = Module["stackAlloc"] = function () {
- return (stackAlloc = Module["stackAlloc"] = Module["asm"]["Fe"]).apply(null, arguments)
-};
-var stackRestore = Module["stackRestore"] = function () {
- return (stackRestore = Module["stackRestore"] = Module["asm"]["Ge"]).apply(null, arguments)
-};
-var dynCall_vi = Module["dynCall_vi"] = function () {
- return (dynCall_vi = Module["dynCall_vi"] = Module["asm"]["He"]).apply(null, arguments)
-};
+ a: ___assert_fail,
+ G: ___clock_gettime,
+ S: ___map_file,
+ J: ___sys_access,
+ F: ___sys_chmod,
+ d: ___sys_fcntl64,
+ D: ___sys_fstat64,
+ M: ___sys_getcwd,
+ T: ___sys_getdents64,
+ j: ___sys_getpid,
+ R: ___sys_ioctl,
+ I: ___sys_link,
+ C: ___sys_lstat64,
+ E: ___sys_mkdir,
+ B: ___sys_mprotect,
+ A: ___sys_munmap,
+ k: ___sys_open,
+ K: ___sys_read,
+ H: ___sys_readlink,
+ P: ___sys_rename,
+ O: ___sys_rmdir,
+ p: ___sys_stat64,
+ N: ___sys_symlink,
+ L: ___sys_unlink,
+ m: _abort,
+ r: _emscripten_get_now,
+ h: _emscripten_longjmp,
+ v: _emscripten_memcpy_big,
+ w: _emscripten_resize_heap,
+ y: _environ_get,
+ z: _environ_sizes_get,
+ i: _exit,
+ g: _fd_close,
+ x: _fd_fdstat_get,
+ Q: _fd_read,
+ u: _fd_seek,
+ l: _fd_write,
+ e: _getTempRet0,
+ U: _gettimeofday,
+ t: invoke_iii,
+ q: invoke_iiii,
+ s: invoke_iiiii,
+ V: invoke_vii,
+ memory: wasmMemory,
+ b: _roundf,
+ o: _saveSetjmp,
+ c: _setTempRet0,
+ W: _sysconf,
+ table: wasmTable,
+ f: _testSetjmp,
+ n: _time
+}
+const asm = createWasm()
+Module.asm = asm
+var ___wasm_call_ctors = (Module.___wasm_call_ctors = function () {
+ return (___wasm_call_ctors = Module.___wasm_call_ctors = Module.asm.X).apply(
+ null,
+ arguments
+ )
+})
+var _main = (Module._main = function () {
+ return (_main = Module._main = Module.asm.Y).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Event_get_Start_0 = (Module._emscripten_bind_ASS_Event_get_Start_0 = function () {
+ return (_emscripten_bind_ASS_Event_get_Start_0 = Module._emscripten_bind_ASS_Event_get_Start_0 =
+ Module.asm.Z).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Event_set_Start_1 = (Module._emscripten_bind_ASS_Event_set_Start_1 = function () {
+ return (_emscripten_bind_ASS_Event_set_Start_1 = Module._emscripten_bind_ASS_Event_set_Start_1 =
+ Module.asm._).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Event_get_Duration_0 = (Module._emscripten_bind_ASS_Event_get_Duration_0 = function () {
+ return (_emscripten_bind_ASS_Event_get_Duration_0 = Module._emscripten_bind_ASS_Event_get_Duration_0 =
+ Module.asm.$).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Event_set_Duration_1 = (Module._emscripten_bind_ASS_Event_set_Duration_1 = function () {
+ return (_emscripten_bind_ASS_Event_set_Duration_1 = Module._emscripten_bind_ASS_Event_set_Duration_1 =
+ Module.asm.aa).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Event_get_ReadOrder_0 = (Module._emscripten_bind_ASS_Event_get_ReadOrder_0 = function () {
+ return (_emscripten_bind_ASS_Event_get_ReadOrder_0 = Module._emscripten_bind_ASS_Event_get_ReadOrder_0 =
+ Module.asm.ba).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Event_set_ReadOrder_1 = (Module._emscripten_bind_ASS_Event_set_ReadOrder_1 = function () {
+ return (_emscripten_bind_ASS_Event_set_ReadOrder_1 = Module._emscripten_bind_ASS_Event_set_ReadOrder_1 =
+ Module.asm.ca).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Event_get_Layer_0 = (Module._emscripten_bind_ASS_Event_get_Layer_0 = function () {
+ return (_emscripten_bind_ASS_Event_get_Layer_0 = Module._emscripten_bind_ASS_Event_get_Layer_0 =
+ Module.asm.da).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Event_set_Layer_1 = (Module._emscripten_bind_ASS_Event_set_Layer_1 = function () {
+ return (_emscripten_bind_ASS_Event_set_Layer_1 = Module._emscripten_bind_ASS_Event_set_Layer_1 =
+ Module.asm.ea).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Event_get_Style_0 = (Module._emscripten_bind_ASS_Event_get_Style_0 = function () {
+ return (_emscripten_bind_ASS_Event_get_Style_0 = Module._emscripten_bind_ASS_Event_get_Style_0 =
+ Module.asm.fa).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Event_set_Style_1 = (Module._emscripten_bind_ASS_Event_set_Style_1 = function () {
+ return (_emscripten_bind_ASS_Event_set_Style_1 = Module._emscripten_bind_ASS_Event_set_Style_1 =
+ Module.asm.ga).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Event_get_Name_0 = (Module._emscripten_bind_ASS_Event_get_Name_0 = function () {
+ return (_emscripten_bind_ASS_Event_get_Name_0 = Module._emscripten_bind_ASS_Event_get_Name_0 =
+ Module.asm.ha).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Event_set_Name_1 = (Module._emscripten_bind_ASS_Event_set_Name_1 = function () {
+ return (_emscripten_bind_ASS_Event_set_Name_1 = Module._emscripten_bind_ASS_Event_set_Name_1 =
+ Module.asm.ia).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Event_get_MarginL_0 = (Module._emscripten_bind_ASS_Event_get_MarginL_0 = function () {
+ return (_emscripten_bind_ASS_Event_get_MarginL_0 = Module._emscripten_bind_ASS_Event_get_MarginL_0 =
+ Module.asm.ja).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Event_set_MarginL_1 = (Module._emscripten_bind_ASS_Event_set_MarginL_1 = function () {
+ return (_emscripten_bind_ASS_Event_set_MarginL_1 = Module._emscripten_bind_ASS_Event_set_MarginL_1 =
+ Module.asm.ka).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Event_get_MarginR_0 = (Module._emscripten_bind_ASS_Event_get_MarginR_0 = function () {
+ return (_emscripten_bind_ASS_Event_get_MarginR_0 = Module._emscripten_bind_ASS_Event_get_MarginR_0 =
+ Module.asm.la).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Event_set_MarginR_1 = (Module._emscripten_bind_ASS_Event_set_MarginR_1 = function () {
+ return (_emscripten_bind_ASS_Event_set_MarginR_1 = Module._emscripten_bind_ASS_Event_set_MarginR_1 =
+ Module.asm.ma).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Event_get_MarginV_0 = (Module._emscripten_bind_ASS_Event_get_MarginV_0 = function () {
+ return (_emscripten_bind_ASS_Event_get_MarginV_0 = Module._emscripten_bind_ASS_Event_get_MarginV_0 =
+ Module.asm.na).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Event_set_MarginV_1 = (Module._emscripten_bind_ASS_Event_set_MarginV_1 = function () {
+ return (_emscripten_bind_ASS_Event_set_MarginV_1 = Module._emscripten_bind_ASS_Event_set_MarginV_1 =
+ Module.asm.oa).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Event_get_Effect_0 = (Module._emscripten_bind_ASS_Event_get_Effect_0 = function () {
+ return (_emscripten_bind_ASS_Event_get_Effect_0 = Module._emscripten_bind_ASS_Event_get_Effect_0 =
+ Module.asm.pa).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Event_set_Effect_1 = (Module._emscripten_bind_ASS_Event_set_Effect_1 = function () {
+ return (_emscripten_bind_ASS_Event_set_Effect_1 = Module._emscripten_bind_ASS_Event_set_Effect_1 =
+ Module.asm.qa).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Event_get_Text_0 = (Module._emscripten_bind_ASS_Event_get_Text_0 = function () {
+ return (_emscripten_bind_ASS_Event_get_Text_0 = Module._emscripten_bind_ASS_Event_get_Text_0 =
+ Module.asm.ra).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Event_set_Text_1 = (Module._emscripten_bind_ASS_Event_set_Text_1 = function () {
+ return (_emscripten_bind_ASS_Event_set_Text_1 = Module._emscripten_bind_ASS_Event_set_Text_1 =
+ Module.asm.sa).apply(null, arguments)
+})
+var _emscripten_bind_RenderBlendResult_get_changed_0 = (Module._emscripten_bind_RenderBlendResult_get_changed_0 = function () {
+ return (_emscripten_bind_RenderBlendResult_get_changed_0 = Module._emscripten_bind_RenderBlendResult_get_changed_0 =
+ Module.asm.ta).apply(null, arguments)
+})
+var _emscripten_bind_RenderBlendResult_set_changed_1 = (Module._emscripten_bind_RenderBlendResult_set_changed_1 = function () {
+ return (_emscripten_bind_RenderBlendResult_set_changed_1 = Module._emscripten_bind_RenderBlendResult_set_changed_1 =
+ Module.asm.ua).apply(null, arguments)
+})
+var _emscripten_bind_RenderBlendResult_get_blend_time_0 = (Module._emscripten_bind_RenderBlendResult_get_blend_time_0 = function () {
+ return (_emscripten_bind_RenderBlendResult_get_blend_time_0 = Module._emscripten_bind_RenderBlendResult_get_blend_time_0 =
+ Module.asm.va).apply(null, arguments)
+})
+var _emscripten_bind_RenderBlendResult_set_blend_time_1 = (Module._emscripten_bind_RenderBlendResult_set_blend_time_1 = function () {
+ return (_emscripten_bind_RenderBlendResult_set_blend_time_1 = Module._emscripten_bind_RenderBlendResult_set_blend_time_1 =
+ Module.asm.wa).apply(null, arguments)
+})
+var _emscripten_bind_RenderBlendResult_get_part_0 = (Module._emscripten_bind_RenderBlendResult_get_part_0 = function () {
+ return (_emscripten_bind_RenderBlendResult_get_part_0 = Module._emscripten_bind_RenderBlendResult_get_part_0 =
+ Module.asm.xa).apply(null, arguments)
+})
+var _emscripten_bind_RenderBlendResult_set_part_1 = (Module._emscripten_bind_RenderBlendResult_set_part_1 = function () {
+ return (_emscripten_bind_RenderBlendResult_set_part_1 = Module._emscripten_bind_RenderBlendResult_set_part_1 =
+ Module.asm.ya).apply(null, arguments)
+})
+var _emscripten_bind_SubtitleOctopus_SubtitleOctopus_0 = (Module._emscripten_bind_SubtitleOctopus_SubtitleOctopus_0 = function () {
+ return (_emscripten_bind_SubtitleOctopus_SubtitleOctopus_0 = Module._emscripten_bind_SubtitleOctopus_SubtitleOctopus_0 =
+ Module.asm.za).apply(null, arguments)
+})
+var _emscripten_bind_SubtitleOctopus_setLogLevel_1 = (Module._emscripten_bind_SubtitleOctopus_setLogLevel_1 = function () {
+ return (_emscripten_bind_SubtitleOctopus_setLogLevel_1 = Module._emscripten_bind_SubtitleOctopus_setLogLevel_1 =
+ Module.asm.Aa).apply(null, arguments)
+})
+var _emscripten_bind_SubtitleOctopus_setDropAnimations_1 = (Module._emscripten_bind_SubtitleOctopus_setDropAnimations_1 = function () {
+ return (_emscripten_bind_SubtitleOctopus_setDropAnimations_1 = Module._emscripten_bind_SubtitleOctopus_setDropAnimations_1 =
+ Module.asm.Ba).apply(null, arguments)
+})
+var _emscripten_bind_SubtitleOctopus_getDropAnimations_0 = (Module._emscripten_bind_SubtitleOctopus_getDropAnimations_0 = function () {
+ return (_emscripten_bind_SubtitleOctopus_getDropAnimations_0 = Module._emscripten_bind_SubtitleOctopus_getDropAnimations_0 =
+ Module.asm.Ca).apply(null, arguments)
+})
+var _emscripten_bind_SubtitleOctopus_initLibrary_2 = (Module._emscripten_bind_SubtitleOctopus_initLibrary_2 = function () {
+ return (_emscripten_bind_SubtitleOctopus_initLibrary_2 = Module._emscripten_bind_SubtitleOctopus_initLibrary_2 =
+ Module.asm.Da).apply(null, arguments)
+})
+var _free = (Module._free = function () {
+ return (_free = Module._free = Module.asm.Ea).apply(null, arguments)
+})
+var _emscripten_bind_SubtitleOctopus_createTrack_1 = (Module._emscripten_bind_SubtitleOctopus_createTrack_1 = function () {
+ return (_emscripten_bind_SubtitleOctopus_createTrack_1 = Module._emscripten_bind_SubtitleOctopus_createTrack_1 =
+ Module.asm.Fa).apply(null, arguments)
+})
+var _emscripten_bind_SubtitleOctopus_createTrackMem_2 = (Module._emscripten_bind_SubtitleOctopus_createTrackMem_2 = function () {
+ return (_emscripten_bind_SubtitleOctopus_createTrackMem_2 = Module._emscripten_bind_SubtitleOctopus_createTrackMem_2 =
+ Module.asm.Ga).apply(null, arguments)
+})
+var _emscripten_bind_SubtitleOctopus_removeTrack_0 = (Module._emscripten_bind_SubtitleOctopus_removeTrack_0 = function () {
+ return (_emscripten_bind_SubtitleOctopus_removeTrack_0 = Module._emscripten_bind_SubtitleOctopus_removeTrack_0 =
+ Module.asm.Ha).apply(null, arguments)
+})
+var _emscripten_bind_SubtitleOctopus_resizeCanvas_2 = (Module._emscripten_bind_SubtitleOctopus_resizeCanvas_2 = function () {
+ return (_emscripten_bind_SubtitleOctopus_resizeCanvas_2 = Module._emscripten_bind_SubtitleOctopus_resizeCanvas_2 =
+ Module.asm.Ia).apply(null, arguments)
+})
+var _emscripten_bind_SubtitleOctopus_renderImage_2 = (Module._emscripten_bind_SubtitleOctopus_renderImage_2 = function () {
+ return (_emscripten_bind_SubtitleOctopus_renderImage_2 = Module._emscripten_bind_SubtitleOctopus_renderImage_2 =
+ Module.asm.Ja).apply(null, arguments)
+})
+var _emscripten_bind_SubtitleOctopus_quitLibrary_0 = (Module._emscripten_bind_SubtitleOctopus_quitLibrary_0 = function () {
+ return (_emscripten_bind_SubtitleOctopus_quitLibrary_0 = Module._emscripten_bind_SubtitleOctopus_quitLibrary_0 =
+ Module.asm.Ka).apply(null, arguments)
+})
+var _emscripten_bind_SubtitleOctopus_reloadLibrary_0 = (Module._emscripten_bind_SubtitleOctopus_reloadLibrary_0 = function () {
+ return (_emscripten_bind_SubtitleOctopus_reloadLibrary_0 = Module._emscripten_bind_SubtitleOctopus_reloadLibrary_0 =
+ Module.asm.La).apply(null, arguments)
+})
+var _emscripten_bind_SubtitleOctopus_reloadFonts_0 = (Module._emscripten_bind_SubtitleOctopus_reloadFonts_0 = function () {
+ return (_emscripten_bind_SubtitleOctopus_reloadFonts_0 = Module._emscripten_bind_SubtitleOctopus_reloadFonts_0 =
+ Module.asm.Ma).apply(null, arguments)
+})
+var _emscripten_bind_SubtitleOctopus_setMargin_4 = (Module._emscripten_bind_SubtitleOctopus_setMargin_4 = function () {
+ return (_emscripten_bind_SubtitleOctopus_setMargin_4 = Module._emscripten_bind_SubtitleOctopus_setMargin_4 =
+ Module.asm.Na).apply(null, arguments)
+})
+var _emscripten_bind_SubtitleOctopus_getEventCount_0 = (Module._emscripten_bind_SubtitleOctopus_getEventCount_0 = function () {
+ return (_emscripten_bind_SubtitleOctopus_getEventCount_0 = Module._emscripten_bind_SubtitleOctopus_getEventCount_0 =
+ Module.asm.Oa).apply(null, arguments)
+})
+var _emscripten_bind_SubtitleOctopus_allocEvent_0 = (Module._emscripten_bind_SubtitleOctopus_allocEvent_0 = function () {
+ return (_emscripten_bind_SubtitleOctopus_allocEvent_0 = Module._emscripten_bind_SubtitleOctopus_allocEvent_0 =
+ Module.asm.Pa).apply(null, arguments)
+})
+var _emscripten_bind_SubtitleOctopus_allocStyle_0 = (Module._emscripten_bind_SubtitleOctopus_allocStyle_0 = function () {
+ return (_emscripten_bind_SubtitleOctopus_allocStyle_0 = Module._emscripten_bind_SubtitleOctopus_allocStyle_0 =
+ Module.asm.Qa).apply(null, arguments)
+})
+var _emscripten_bind_SubtitleOctopus_removeEvent_1 = (Module._emscripten_bind_SubtitleOctopus_removeEvent_1 = function () {
+ return (_emscripten_bind_SubtitleOctopus_removeEvent_1 = Module._emscripten_bind_SubtitleOctopus_removeEvent_1 =
+ Module.asm.Ra).apply(null, arguments)
+})
+var _emscripten_bind_SubtitleOctopus_getStyleCount_0 = (Module._emscripten_bind_SubtitleOctopus_getStyleCount_0 = function () {
+ return (_emscripten_bind_SubtitleOctopus_getStyleCount_0 = Module._emscripten_bind_SubtitleOctopus_getStyleCount_0 =
+ Module.asm.Sa).apply(null, arguments)
+})
+var _emscripten_bind_SubtitleOctopus_getStyleByName_1 = (Module._emscripten_bind_SubtitleOctopus_getStyleByName_1 = function () {
+ return (_emscripten_bind_SubtitleOctopus_getStyleByName_1 = Module._emscripten_bind_SubtitleOctopus_getStyleByName_1 =
+ Module.asm.Ta).apply(null, arguments)
+})
+var _emscripten_bind_SubtitleOctopus_removeStyle_1 = (Module._emscripten_bind_SubtitleOctopus_removeStyle_1 = function () {
+ return (_emscripten_bind_SubtitleOctopus_removeStyle_1 = Module._emscripten_bind_SubtitleOctopus_removeStyle_1 =
+ Module.asm.Ua).apply(null, arguments)
+})
+var _emscripten_bind_SubtitleOctopus_removeAllEvents_0 = (Module._emscripten_bind_SubtitleOctopus_removeAllEvents_0 = function () {
+ return (_emscripten_bind_SubtitleOctopus_removeAllEvents_0 = Module._emscripten_bind_SubtitleOctopus_removeAllEvents_0 =
+ Module.asm.Va).apply(null, arguments)
+})
+var _emscripten_bind_SubtitleOctopus_setMemoryLimits_2 = (Module._emscripten_bind_SubtitleOctopus_setMemoryLimits_2 = function () {
+ return (_emscripten_bind_SubtitleOctopus_setMemoryLimits_2 = Module._emscripten_bind_SubtitleOctopus_setMemoryLimits_2 =
+ Module.asm.Wa).apply(null, arguments)
+})
+var _emscripten_bind_SubtitleOctopus_renderBlend_2 = (Module._emscripten_bind_SubtitleOctopus_renderBlend_2 = function () {
+ return (_emscripten_bind_SubtitleOctopus_renderBlend_2 = Module._emscripten_bind_SubtitleOctopus_renderBlend_2 =
+ Module.asm.Xa).apply(null, arguments)
+})
+var _emscripten_bind_SubtitleOctopus_findNextEventStart_1 = (Module._emscripten_bind_SubtitleOctopus_findNextEventStart_1 = function () {
+ return (_emscripten_bind_SubtitleOctopus_findNextEventStart_1 = Module._emscripten_bind_SubtitleOctopus_findNextEventStart_1 =
+ Module.asm.Ya).apply(null, arguments)
+})
+var _emscripten_bind_SubtitleOctopus_findEventStopTimes_1 = (Module._emscripten_bind_SubtitleOctopus_findEventStopTimes_1 = function () {
+ return (_emscripten_bind_SubtitleOctopus_findEventStopTimes_1 = Module._emscripten_bind_SubtitleOctopus_findEventStopTimes_1 =
+ Module.asm.Za).apply(null, arguments)
+})
+var _emscripten_bind_SubtitleOctopus_rescanAllAnimations_0 = (Module._emscripten_bind_SubtitleOctopus_rescanAllAnimations_0 = function () {
+ return (_emscripten_bind_SubtitleOctopus_rescanAllAnimations_0 = Module._emscripten_bind_SubtitleOctopus_rescanAllAnimations_0 =
+ Module.asm._a).apply(null, arguments)
+})
+var _malloc = (Module._malloc = function () {
+ return (_malloc = Module._malloc = Module.asm.$a).apply(null, arguments)
+})
+var _emscripten_bind_SubtitleOctopus_get_track_0 = (Module._emscripten_bind_SubtitleOctopus_get_track_0 = function () {
+ return (_emscripten_bind_SubtitleOctopus_get_track_0 = Module._emscripten_bind_SubtitleOctopus_get_track_0 =
+ Module.asm.ab).apply(null, arguments)
+})
+var _emscripten_bind_SubtitleOctopus_set_track_1 = (Module._emscripten_bind_SubtitleOctopus_set_track_1 = function () {
+ return (_emscripten_bind_SubtitleOctopus_set_track_1 = Module._emscripten_bind_SubtitleOctopus_set_track_1 =
+ Module.asm.bb).apply(null, arguments)
+})
+var _emscripten_bind_SubtitleOctopus_get_ass_renderer_0 = (Module._emscripten_bind_SubtitleOctopus_get_ass_renderer_0 = function () {
+ return (_emscripten_bind_SubtitleOctopus_get_ass_renderer_0 = Module._emscripten_bind_SubtitleOctopus_get_ass_renderer_0 =
+ Module.asm.cb).apply(null, arguments)
+})
+var _emscripten_bind_SubtitleOctopus_set_ass_renderer_1 = (Module._emscripten_bind_SubtitleOctopus_set_ass_renderer_1 = function () {
+ return (_emscripten_bind_SubtitleOctopus_set_ass_renderer_1 = Module._emscripten_bind_SubtitleOctopus_set_ass_renderer_1 =
+ Module.asm.db).apply(null, arguments)
+})
+var _emscripten_bind_SubtitleOctopus_get_ass_library_0 = (Module._emscripten_bind_SubtitleOctopus_get_ass_library_0 = function () {
+ return (_emscripten_bind_SubtitleOctopus_get_ass_library_0 = Module._emscripten_bind_SubtitleOctopus_get_ass_library_0 =
+ Module.asm.eb).apply(null, arguments)
+})
+var _emscripten_bind_SubtitleOctopus_set_ass_library_1 = (Module._emscripten_bind_SubtitleOctopus_set_ass_library_1 = function () {
+ return (_emscripten_bind_SubtitleOctopus_set_ass_library_1 = Module._emscripten_bind_SubtitleOctopus_set_ass_library_1 =
+ Module.asm.fb).apply(null, arguments)
+})
+var _emscripten_bind_SubtitleOctopus___destroy___0 = (Module._emscripten_bind_SubtitleOctopus___destroy___0 = function () {
+ return (_emscripten_bind_SubtitleOctopus___destroy___0 = Module._emscripten_bind_SubtitleOctopus___destroy___0 =
+ Module.asm.gb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Track_get_n_styles_0 = (Module._emscripten_bind_ASS_Track_get_n_styles_0 = function () {
+ return (_emscripten_bind_ASS_Track_get_n_styles_0 = Module._emscripten_bind_ASS_Track_get_n_styles_0 =
+ Module.asm.hb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Track_set_n_styles_1 = (Module._emscripten_bind_ASS_Track_set_n_styles_1 = function () {
+ return (_emscripten_bind_ASS_Track_set_n_styles_1 = Module._emscripten_bind_ASS_Track_set_n_styles_1 =
+ Module.asm.ib).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Track_get_max_styles_0 = (Module._emscripten_bind_ASS_Track_get_max_styles_0 = function () {
+ return (_emscripten_bind_ASS_Track_get_max_styles_0 = Module._emscripten_bind_ASS_Track_get_max_styles_0 =
+ Module.asm.jb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Track_set_max_styles_1 = (Module._emscripten_bind_ASS_Track_set_max_styles_1 = function () {
+ return (_emscripten_bind_ASS_Track_set_max_styles_1 = Module._emscripten_bind_ASS_Track_set_max_styles_1 =
+ Module.asm.kb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Track_get_n_events_0 = (Module._emscripten_bind_ASS_Track_get_n_events_0 = function () {
+ return (_emscripten_bind_ASS_Track_get_n_events_0 = Module._emscripten_bind_ASS_Track_get_n_events_0 =
+ Module.asm.lb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Track_set_n_events_1 = (Module._emscripten_bind_ASS_Track_set_n_events_1 = function () {
+ return (_emscripten_bind_ASS_Track_set_n_events_1 = Module._emscripten_bind_ASS_Track_set_n_events_1 =
+ Module.asm.mb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Track_get_max_events_0 = (Module._emscripten_bind_ASS_Track_get_max_events_0 = function () {
+ return (_emscripten_bind_ASS_Track_get_max_events_0 = Module._emscripten_bind_ASS_Track_get_max_events_0 =
+ Module.asm.nb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Track_set_max_events_1 = (Module._emscripten_bind_ASS_Track_set_max_events_1 = function () {
+ return (_emscripten_bind_ASS_Track_set_max_events_1 = Module._emscripten_bind_ASS_Track_set_max_events_1 =
+ Module.asm.ob).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Track_get_styles_1 = (Module._emscripten_bind_ASS_Track_get_styles_1 = function () {
+ return (_emscripten_bind_ASS_Track_get_styles_1 = Module._emscripten_bind_ASS_Track_get_styles_1 =
+ Module.asm.pb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Track_set_styles_2 = (Module._emscripten_bind_ASS_Track_set_styles_2 = function () {
+ return (_emscripten_bind_ASS_Track_set_styles_2 = Module._emscripten_bind_ASS_Track_set_styles_2 =
+ Module.asm.qb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Track_get_events_1 = (Module._emscripten_bind_ASS_Track_get_events_1 = function () {
+ return (_emscripten_bind_ASS_Track_get_events_1 = Module._emscripten_bind_ASS_Track_get_events_1 =
+ Module.asm.rb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Track_set_events_2 = (Module._emscripten_bind_ASS_Track_set_events_2 = function () {
+ return (_emscripten_bind_ASS_Track_set_events_2 = Module._emscripten_bind_ASS_Track_set_events_2 =
+ Module.asm.sb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Track_get_style_format_0 = (Module._emscripten_bind_ASS_Track_get_style_format_0 = function () {
+ return (_emscripten_bind_ASS_Track_get_style_format_0 = Module._emscripten_bind_ASS_Track_get_style_format_0 =
+ Module.asm.tb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Track_set_style_format_1 = (Module._emscripten_bind_ASS_Track_set_style_format_1 = function () {
+ return (_emscripten_bind_ASS_Track_set_style_format_1 = Module._emscripten_bind_ASS_Track_set_style_format_1 =
+ Module.asm.ub).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Track_get_event_format_0 = (Module._emscripten_bind_ASS_Track_get_event_format_0 = function () {
+ return (_emscripten_bind_ASS_Track_get_event_format_0 = Module._emscripten_bind_ASS_Track_get_event_format_0 =
+ Module.asm.vb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Track_set_event_format_1 = (Module._emscripten_bind_ASS_Track_set_event_format_1 = function () {
+ return (_emscripten_bind_ASS_Track_set_event_format_1 = Module._emscripten_bind_ASS_Track_set_event_format_1 =
+ Module.asm.wb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Track_get_PlayResX_0 = (Module._emscripten_bind_ASS_Track_get_PlayResX_0 = function () {
+ return (_emscripten_bind_ASS_Track_get_PlayResX_0 = Module._emscripten_bind_ASS_Track_get_PlayResX_0 =
+ Module.asm.xb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Track_set_PlayResX_1 = (Module._emscripten_bind_ASS_Track_set_PlayResX_1 = function () {
+ return (_emscripten_bind_ASS_Track_set_PlayResX_1 = Module._emscripten_bind_ASS_Track_set_PlayResX_1 =
+ Module.asm.yb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Track_get_PlayResY_0 = (Module._emscripten_bind_ASS_Track_get_PlayResY_0 = function () {
+ return (_emscripten_bind_ASS_Track_get_PlayResY_0 = Module._emscripten_bind_ASS_Track_get_PlayResY_0 =
+ Module.asm.zb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Track_set_PlayResY_1 = (Module._emscripten_bind_ASS_Track_set_PlayResY_1 = function () {
+ return (_emscripten_bind_ASS_Track_set_PlayResY_1 = Module._emscripten_bind_ASS_Track_set_PlayResY_1 =
+ Module.asm.Ab).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Track_get_Timer_0 = (Module._emscripten_bind_ASS_Track_get_Timer_0 = function () {
+ return (_emscripten_bind_ASS_Track_get_Timer_0 = Module._emscripten_bind_ASS_Track_get_Timer_0 =
+ Module.asm.Bb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Track_set_Timer_1 = (Module._emscripten_bind_ASS_Track_set_Timer_1 = function () {
+ return (_emscripten_bind_ASS_Track_set_Timer_1 = Module._emscripten_bind_ASS_Track_set_Timer_1 =
+ Module.asm.Cb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Track_get_WrapStyle_0 = (Module._emscripten_bind_ASS_Track_get_WrapStyle_0 = function () {
+ return (_emscripten_bind_ASS_Track_get_WrapStyle_0 = Module._emscripten_bind_ASS_Track_get_WrapStyle_0 =
+ Module.asm.Db).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Track_set_WrapStyle_1 = (Module._emscripten_bind_ASS_Track_set_WrapStyle_1 = function () {
+ return (_emscripten_bind_ASS_Track_set_WrapStyle_1 = Module._emscripten_bind_ASS_Track_set_WrapStyle_1 =
+ Module.asm.Eb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Track_get_ScaledBorderAndShadow_0 = (Module._emscripten_bind_ASS_Track_get_ScaledBorderAndShadow_0 = function () {
+ return (_emscripten_bind_ASS_Track_get_ScaledBorderAndShadow_0 = Module._emscripten_bind_ASS_Track_get_ScaledBorderAndShadow_0 =
+ Module.asm.Fb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Track_set_ScaledBorderAndShadow_1 = (Module._emscripten_bind_ASS_Track_set_ScaledBorderAndShadow_1 = function () {
+ return (_emscripten_bind_ASS_Track_set_ScaledBorderAndShadow_1 = Module._emscripten_bind_ASS_Track_set_ScaledBorderAndShadow_1 =
+ Module.asm.Gb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Track_get_Kerning_0 = (Module._emscripten_bind_ASS_Track_get_Kerning_0 = function () {
+ return (_emscripten_bind_ASS_Track_get_Kerning_0 = Module._emscripten_bind_ASS_Track_get_Kerning_0 =
+ Module.asm.Hb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Track_set_Kerning_1 = (Module._emscripten_bind_ASS_Track_set_Kerning_1 = function () {
+ return (_emscripten_bind_ASS_Track_set_Kerning_1 = Module._emscripten_bind_ASS_Track_set_Kerning_1 =
+ Module.asm.Ib).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Track_get_Language_0 = (Module._emscripten_bind_ASS_Track_get_Language_0 = function () {
+ return (_emscripten_bind_ASS_Track_get_Language_0 = Module._emscripten_bind_ASS_Track_get_Language_0 =
+ Module.asm.Jb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Track_set_Language_1 = (Module._emscripten_bind_ASS_Track_set_Language_1 = function () {
+ return (_emscripten_bind_ASS_Track_set_Language_1 = Module._emscripten_bind_ASS_Track_set_Language_1 =
+ Module.asm.Kb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Track_get_default_style_0 = (Module._emscripten_bind_ASS_Track_get_default_style_0 = function () {
+ return (_emscripten_bind_ASS_Track_get_default_style_0 = Module._emscripten_bind_ASS_Track_get_default_style_0 =
+ Module.asm.Lb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Track_set_default_style_1 = (Module._emscripten_bind_ASS_Track_set_default_style_1 = function () {
+ return (_emscripten_bind_ASS_Track_set_default_style_1 = Module._emscripten_bind_ASS_Track_set_default_style_1 =
+ Module.asm.Mb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Track_get_name_0 = (Module._emscripten_bind_ASS_Track_get_name_0 = function () {
+ return (_emscripten_bind_ASS_Track_get_name_0 = Module._emscripten_bind_ASS_Track_get_name_0 =
+ Module.asm.Nb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Track_set_name_1 = (Module._emscripten_bind_ASS_Track_set_name_1 = function () {
+ return (_emscripten_bind_ASS_Track_set_name_1 = Module._emscripten_bind_ASS_Track_set_name_1 =
+ Module.asm.Ob).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_get_Name_0 = (Module._emscripten_bind_ASS_Style_get_Name_0 = function () {
+ return (_emscripten_bind_ASS_Style_get_Name_0 = Module._emscripten_bind_ASS_Style_get_Name_0 =
+ Module.asm.Pb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_set_Name_1 = (Module._emscripten_bind_ASS_Style_set_Name_1 = function () {
+ return (_emscripten_bind_ASS_Style_set_Name_1 = Module._emscripten_bind_ASS_Style_set_Name_1 =
+ Module.asm.Qb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_get_FontName_0 = (Module._emscripten_bind_ASS_Style_get_FontName_0 = function () {
+ return (_emscripten_bind_ASS_Style_get_FontName_0 = Module._emscripten_bind_ASS_Style_get_FontName_0 =
+ Module.asm.Rb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_set_FontName_1 = (Module._emscripten_bind_ASS_Style_set_FontName_1 = function () {
+ return (_emscripten_bind_ASS_Style_set_FontName_1 = Module._emscripten_bind_ASS_Style_set_FontName_1 =
+ Module.asm.Sb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_get_FontSize_0 = (Module._emscripten_bind_ASS_Style_get_FontSize_0 = function () {
+ return (_emscripten_bind_ASS_Style_get_FontSize_0 = Module._emscripten_bind_ASS_Style_get_FontSize_0 =
+ Module.asm.Tb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_set_FontSize_1 = (Module._emscripten_bind_ASS_Style_set_FontSize_1 = function () {
+ return (_emscripten_bind_ASS_Style_set_FontSize_1 = Module._emscripten_bind_ASS_Style_set_FontSize_1 =
+ Module.asm.Ub).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_get_PrimaryColour_0 = (Module._emscripten_bind_ASS_Style_get_PrimaryColour_0 = function () {
+ return (_emscripten_bind_ASS_Style_get_PrimaryColour_0 = Module._emscripten_bind_ASS_Style_get_PrimaryColour_0 =
+ Module.asm.Vb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_set_PrimaryColour_1 = (Module._emscripten_bind_ASS_Style_set_PrimaryColour_1 = function () {
+ return (_emscripten_bind_ASS_Style_set_PrimaryColour_1 = Module._emscripten_bind_ASS_Style_set_PrimaryColour_1 =
+ Module.asm.Wb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_get_SecondaryColour_0 = (Module._emscripten_bind_ASS_Style_get_SecondaryColour_0 = function () {
+ return (_emscripten_bind_ASS_Style_get_SecondaryColour_0 = Module._emscripten_bind_ASS_Style_get_SecondaryColour_0 =
+ Module.asm.Xb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_set_SecondaryColour_1 = (Module._emscripten_bind_ASS_Style_set_SecondaryColour_1 = function () {
+ return (_emscripten_bind_ASS_Style_set_SecondaryColour_1 = Module._emscripten_bind_ASS_Style_set_SecondaryColour_1 =
+ Module.asm.Yb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_get_OutlineColour_0 = (Module._emscripten_bind_ASS_Style_get_OutlineColour_0 = function () {
+ return (_emscripten_bind_ASS_Style_get_OutlineColour_0 = Module._emscripten_bind_ASS_Style_get_OutlineColour_0 =
+ Module.asm.Zb).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_set_OutlineColour_1 = (Module._emscripten_bind_ASS_Style_set_OutlineColour_1 = function () {
+ return (_emscripten_bind_ASS_Style_set_OutlineColour_1 = Module._emscripten_bind_ASS_Style_set_OutlineColour_1 =
+ Module.asm._b).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_get_BackColour_0 = (Module._emscripten_bind_ASS_Style_get_BackColour_0 = function () {
+ return (_emscripten_bind_ASS_Style_get_BackColour_0 = Module._emscripten_bind_ASS_Style_get_BackColour_0 =
+ Module.asm.$b).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_set_BackColour_1 = (Module._emscripten_bind_ASS_Style_set_BackColour_1 = function () {
+ return (_emscripten_bind_ASS_Style_set_BackColour_1 = Module._emscripten_bind_ASS_Style_set_BackColour_1 =
+ Module.asm.ac).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_get_Bold_0 = (Module._emscripten_bind_ASS_Style_get_Bold_0 = function () {
+ return (_emscripten_bind_ASS_Style_get_Bold_0 = Module._emscripten_bind_ASS_Style_get_Bold_0 =
+ Module.asm.bc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_set_Bold_1 = (Module._emscripten_bind_ASS_Style_set_Bold_1 = function () {
+ return (_emscripten_bind_ASS_Style_set_Bold_1 = Module._emscripten_bind_ASS_Style_set_Bold_1 =
+ Module.asm.cc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_get_Italic_0 = (Module._emscripten_bind_ASS_Style_get_Italic_0 = function () {
+ return (_emscripten_bind_ASS_Style_get_Italic_0 = Module._emscripten_bind_ASS_Style_get_Italic_0 =
+ Module.asm.dc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_set_Italic_1 = (Module._emscripten_bind_ASS_Style_set_Italic_1 = function () {
+ return (_emscripten_bind_ASS_Style_set_Italic_1 = Module._emscripten_bind_ASS_Style_set_Italic_1 =
+ Module.asm.ec).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_get_Underline_0 = (Module._emscripten_bind_ASS_Style_get_Underline_0 = function () {
+ return (_emscripten_bind_ASS_Style_get_Underline_0 = Module._emscripten_bind_ASS_Style_get_Underline_0 =
+ Module.asm.fc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_set_Underline_1 = (Module._emscripten_bind_ASS_Style_set_Underline_1 = function () {
+ return (_emscripten_bind_ASS_Style_set_Underline_1 = Module._emscripten_bind_ASS_Style_set_Underline_1 =
+ Module.asm.gc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_get_StrikeOut_0 = (Module._emscripten_bind_ASS_Style_get_StrikeOut_0 = function () {
+ return (_emscripten_bind_ASS_Style_get_StrikeOut_0 = Module._emscripten_bind_ASS_Style_get_StrikeOut_0 =
+ Module.asm.hc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_set_StrikeOut_1 = (Module._emscripten_bind_ASS_Style_set_StrikeOut_1 = function () {
+ return (_emscripten_bind_ASS_Style_set_StrikeOut_1 = Module._emscripten_bind_ASS_Style_set_StrikeOut_1 =
+ Module.asm.ic).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_get_ScaleX_0 = (Module._emscripten_bind_ASS_Style_get_ScaleX_0 = function () {
+ return (_emscripten_bind_ASS_Style_get_ScaleX_0 = Module._emscripten_bind_ASS_Style_get_ScaleX_0 =
+ Module.asm.jc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_set_ScaleX_1 = (Module._emscripten_bind_ASS_Style_set_ScaleX_1 = function () {
+ return (_emscripten_bind_ASS_Style_set_ScaleX_1 = Module._emscripten_bind_ASS_Style_set_ScaleX_1 =
+ Module.asm.kc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_get_ScaleY_0 = (Module._emscripten_bind_ASS_Style_get_ScaleY_0 = function () {
+ return (_emscripten_bind_ASS_Style_get_ScaleY_0 = Module._emscripten_bind_ASS_Style_get_ScaleY_0 =
+ Module.asm.lc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_set_ScaleY_1 = (Module._emscripten_bind_ASS_Style_set_ScaleY_1 = function () {
+ return (_emscripten_bind_ASS_Style_set_ScaleY_1 = Module._emscripten_bind_ASS_Style_set_ScaleY_1 =
+ Module.asm.mc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_get_Spacing_0 = (Module._emscripten_bind_ASS_Style_get_Spacing_0 = function () {
+ return (_emscripten_bind_ASS_Style_get_Spacing_0 = Module._emscripten_bind_ASS_Style_get_Spacing_0 =
+ Module.asm.nc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_set_Spacing_1 = (Module._emscripten_bind_ASS_Style_set_Spacing_1 = function () {
+ return (_emscripten_bind_ASS_Style_set_Spacing_1 = Module._emscripten_bind_ASS_Style_set_Spacing_1 =
+ Module.asm.oc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_get_Angle_0 = (Module._emscripten_bind_ASS_Style_get_Angle_0 = function () {
+ return (_emscripten_bind_ASS_Style_get_Angle_0 = Module._emscripten_bind_ASS_Style_get_Angle_0 =
+ Module.asm.pc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_set_Angle_1 = (Module._emscripten_bind_ASS_Style_set_Angle_1 = function () {
+ return (_emscripten_bind_ASS_Style_set_Angle_1 = Module._emscripten_bind_ASS_Style_set_Angle_1 =
+ Module.asm.qc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_get_BorderStyle_0 = (Module._emscripten_bind_ASS_Style_get_BorderStyle_0 = function () {
+ return (_emscripten_bind_ASS_Style_get_BorderStyle_0 = Module._emscripten_bind_ASS_Style_get_BorderStyle_0 =
+ Module.asm.rc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_set_BorderStyle_1 = (Module._emscripten_bind_ASS_Style_set_BorderStyle_1 = function () {
+ return (_emscripten_bind_ASS_Style_set_BorderStyle_1 = Module._emscripten_bind_ASS_Style_set_BorderStyle_1 =
+ Module.asm.sc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_get_Outline_0 = (Module._emscripten_bind_ASS_Style_get_Outline_0 = function () {
+ return (_emscripten_bind_ASS_Style_get_Outline_0 = Module._emscripten_bind_ASS_Style_get_Outline_0 =
+ Module.asm.tc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_set_Outline_1 = (Module._emscripten_bind_ASS_Style_set_Outline_1 = function () {
+ return (_emscripten_bind_ASS_Style_set_Outline_1 = Module._emscripten_bind_ASS_Style_set_Outline_1 =
+ Module.asm.uc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_get_Shadow_0 = (Module._emscripten_bind_ASS_Style_get_Shadow_0 = function () {
+ return (_emscripten_bind_ASS_Style_get_Shadow_0 = Module._emscripten_bind_ASS_Style_get_Shadow_0 =
+ Module.asm.vc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_set_Shadow_1 = (Module._emscripten_bind_ASS_Style_set_Shadow_1 = function () {
+ return (_emscripten_bind_ASS_Style_set_Shadow_1 = Module._emscripten_bind_ASS_Style_set_Shadow_1 =
+ Module.asm.wc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_get_Alignment_0 = (Module._emscripten_bind_ASS_Style_get_Alignment_0 = function () {
+ return (_emscripten_bind_ASS_Style_get_Alignment_0 = Module._emscripten_bind_ASS_Style_get_Alignment_0 =
+ Module.asm.xc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_set_Alignment_1 = (Module._emscripten_bind_ASS_Style_set_Alignment_1 = function () {
+ return (_emscripten_bind_ASS_Style_set_Alignment_1 = Module._emscripten_bind_ASS_Style_set_Alignment_1 =
+ Module.asm.yc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_get_MarginL_0 = (Module._emscripten_bind_ASS_Style_get_MarginL_0 = function () {
+ return (_emscripten_bind_ASS_Style_get_MarginL_0 = Module._emscripten_bind_ASS_Style_get_MarginL_0 =
+ Module.asm.zc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_set_MarginL_1 = (Module._emscripten_bind_ASS_Style_set_MarginL_1 = function () {
+ return (_emscripten_bind_ASS_Style_set_MarginL_1 = Module._emscripten_bind_ASS_Style_set_MarginL_1 =
+ Module.asm.Ac).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_get_MarginR_0 = (Module._emscripten_bind_ASS_Style_get_MarginR_0 = function () {
+ return (_emscripten_bind_ASS_Style_get_MarginR_0 = Module._emscripten_bind_ASS_Style_get_MarginR_0 =
+ Module.asm.Bc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_set_MarginR_1 = (Module._emscripten_bind_ASS_Style_set_MarginR_1 = function () {
+ return (_emscripten_bind_ASS_Style_set_MarginR_1 = Module._emscripten_bind_ASS_Style_set_MarginR_1 =
+ Module.asm.Cc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_get_MarginV_0 = (Module._emscripten_bind_ASS_Style_get_MarginV_0 = function () {
+ return (_emscripten_bind_ASS_Style_get_MarginV_0 = Module._emscripten_bind_ASS_Style_get_MarginV_0 =
+ Module.asm.Dc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_set_MarginV_1 = (Module._emscripten_bind_ASS_Style_set_MarginV_1 = function () {
+ return (_emscripten_bind_ASS_Style_set_MarginV_1 = Module._emscripten_bind_ASS_Style_set_MarginV_1 =
+ Module.asm.Ec).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_get_Encoding_0 = (Module._emscripten_bind_ASS_Style_get_Encoding_0 = function () {
+ return (_emscripten_bind_ASS_Style_get_Encoding_0 = Module._emscripten_bind_ASS_Style_get_Encoding_0 =
+ Module.asm.Fc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_set_Encoding_1 = (Module._emscripten_bind_ASS_Style_set_Encoding_1 = function () {
+ return (_emscripten_bind_ASS_Style_set_Encoding_1 = Module._emscripten_bind_ASS_Style_set_Encoding_1 =
+ Module.asm.Gc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_get_treat_fontname_as_pattern_0 = (Module._emscripten_bind_ASS_Style_get_treat_fontname_as_pattern_0 = function () {
+ return (_emscripten_bind_ASS_Style_get_treat_fontname_as_pattern_0 = Module._emscripten_bind_ASS_Style_get_treat_fontname_as_pattern_0 =
+ Module.asm.Hc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_set_treat_fontname_as_pattern_1 = (Module._emscripten_bind_ASS_Style_set_treat_fontname_as_pattern_1 = function () {
+ return (_emscripten_bind_ASS_Style_set_treat_fontname_as_pattern_1 = Module._emscripten_bind_ASS_Style_set_treat_fontname_as_pattern_1 =
+ Module.asm.Ic).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_get_Blur_0 = (Module._emscripten_bind_ASS_Style_get_Blur_0 = function () {
+ return (_emscripten_bind_ASS_Style_get_Blur_0 = Module._emscripten_bind_ASS_Style_get_Blur_0 =
+ Module.asm.Jc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_set_Blur_1 = (Module._emscripten_bind_ASS_Style_set_Blur_1 = function () {
+ return (_emscripten_bind_ASS_Style_set_Blur_1 = Module._emscripten_bind_ASS_Style_set_Blur_1 =
+ Module.asm.Kc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_get_Justify_0 = (Module._emscripten_bind_ASS_Style_get_Justify_0 = function () {
+ return (_emscripten_bind_ASS_Style_get_Justify_0 = Module._emscripten_bind_ASS_Style_get_Justify_0 =
+ Module.asm.Lc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Style_set_Justify_1 = (Module._emscripten_bind_ASS_Style_set_Justify_1 = function () {
+ return (_emscripten_bind_ASS_Style_set_Justify_1 = Module._emscripten_bind_ASS_Style_set_Justify_1 =
+ Module.asm.Mc).apply(null, arguments)
+})
+var _emscripten_bind_EventStopTimesResult_get_eventFinish_0 = (Module._emscripten_bind_EventStopTimesResult_get_eventFinish_0 = function () {
+ return (_emscripten_bind_EventStopTimesResult_get_eventFinish_0 = Module._emscripten_bind_EventStopTimesResult_get_eventFinish_0 =
+ Module.asm.Nc).apply(null, arguments)
+})
+var _emscripten_bind_EventStopTimesResult_set_eventFinish_1 = (Module._emscripten_bind_EventStopTimesResult_set_eventFinish_1 = function () {
+ return (_emscripten_bind_EventStopTimesResult_set_eventFinish_1 = Module._emscripten_bind_EventStopTimesResult_set_eventFinish_1 =
+ Module.asm.Oc).apply(null, arguments)
+})
+var _emscripten_bind_EventStopTimesResult_get_emptyFinish_0 = (Module._emscripten_bind_EventStopTimesResult_get_emptyFinish_0 = function () {
+ return (_emscripten_bind_EventStopTimesResult_get_emptyFinish_0 = Module._emscripten_bind_EventStopTimesResult_get_emptyFinish_0 =
+ Module.asm.Pc).apply(null, arguments)
+})
+var _emscripten_bind_EventStopTimesResult_set_emptyFinish_1 = (Module._emscripten_bind_EventStopTimesResult_set_emptyFinish_1 = function () {
+ return (_emscripten_bind_EventStopTimesResult_set_emptyFinish_1 = Module._emscripten_bind_EventStopTimesResult_set_emptyFinish_1 =
+ Module.asm.Qc).apply(null, arguments)
+})
+var _emscripten_bind_EventStopTimesResult_get_is_animated_0 = (Module._emscripten_bind_EventStopTimesResult_get_is_animated_0 = function () {
+ return (_emscripten_bind_EventStopTimesResult_get_is_animated_0 = Module._emscripten_bind_EventStopTimesResult_get_is_animated_0 =
+ Module.asm.Rc).apply(null, arguments)
+})
+var _emscripten_bind_EventStopTimesResult_set_is_animated_1 = (Module._emscripten_bind_EventStopTimesResult_set_is_animated_1 = function () {
+ return (_emscripten_bind_EventStopTimesResult_set_is_animated_1 = Module._emscripten_bind_EventStopTimesResult_set_is_animated_1 =
+ Module.asm.Sc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Image_get_w_0 = (Module._emscripten_bind_ASS_Image_get_w_0 = function () {
+ return (_emscripten_bind_ASS_Image_get_w_0 = Module._emscripten_bind_ASS_Image_get_w_0 =
+ Module.asm.Tc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Image_set_w_1 = (Module._emscripten_bind_ASS_Image_set_w_1 = function () {
+ return (_emscripten_bind_ASS_Image_set_w_1 = Module._emscripten_bind_ASS_Image_set_w_1 =
+ Module.asm.Uc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Image_get_h_0 = (Module._emscripten_bind_ASS_Image_get_h_0 = function () {
+ return (_emscripten_bind_ASS_Image_get_h_0 = Module._emscripten_bind_ASS_Image_get_h_0 =
+ Module.asm.Vc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Image_set_h_1 = (Module._emscripten_bind_ASS_Image_set_h_1 = function () {
+ return (_emscripten_bind_ASS_Image_set_h_1 = Module._emscripten_bind_ASS_Image_set_h_1 =
+ Module.asm.Wc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Image_get_stride_0 = (Module._emscripten_bind_ASS_Image_get_stride_0 = function () {
+ return (_emscripten_bind_ASS_Image_get_stride_0 = Module._emscripten_bind_ASS_Image_get_stride_0 =
+ Module.asm.Xc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Image_set_stride_1 = (Module._emscripten_bind_ASS_Image_set_stride_1 = function () {
+ return (_emscripten_bind_ASS_Image_set_stride_1 = Module._emscripten_bind_ASS_Image_set_stride_1 =
+ Module.asm.Yc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Image_get_bitmap_0 = (Module._emscripten_bind_ASS_Image_get_bitmap_0 = function () {
+ return (_emscripten_bind_ASS_Image_get_bitmap_0 = Module._emscripten_bind_ASS_Image_get_bitmap_0 =
+ Module.asm.Zc).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Image_set_bitmap_1 = (Module._emscripten_bind_ASS_Image_set_bitmap_1 = function () {
+ return (_emscripten_bind_ASS_Image_set_bitmap_1 = Module._emscripten_bind_ASS_Image_set_bitmap_1 =
+ Module.asm._c).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Image_get_color_0 = (Module._emscripten_bind_ASS_Image_get_color_0 = function () {
+ return (_emscripten_bind_ASS_Image_get_color_0 = Module._emscripten_bind_ASS_Image_get_color_0 =
+ Module.asm.$c).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Image_set_color_1 = (Module._emscripten_bind_ASS_Image_set_color_1 = function () {
+ return (_emscripten_bind_ASS_Image_set_color_1 = Module._emscripten_bind_ASS_Image_set_color_1 =
+ Module.asm.ad).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Image_get_dst_x_0 = (Module._emscripten_bind_ASS_Image_get_dst_x_0 = function () {
+ return (_emscripten_bind_ASS_Image_get_dst_x_0 = Module._emscripten_bind_ASS_Image_get_dst_x_0 =
+ Module.asm.bd).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Image_set_dst_x_1 = (Module._emscripten_bind_ASS_Image_set_dst_x_1 = function () {
+ return (_emscripten_bind_ASS_Image_set_dst_x_1 = Module._emscripten_bind_ASS_Image_set_dst_x_1 =
+ Module.asm.cd).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Image_get_dst_y_0 = (Module._emscripten_bind_ASS_Image_get_dst_y_0 = function () {
+ return (_emscripten_bind_ASS_Image_get_dst_y_0 = Module._emscripten_bind_ASS_Image_get_dst_y_0 =
+ Module.asm.dd).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Image_set_dst_y_1 = (Module._emscripten_bind_ASS_Image_set_dst_y_1 = function () {
+ return (_emscripten_bind_ASS_Image_set_dst_y_1 = Module._emscripten_bind_ASS_Image_set_dst_y_1 =
+ Module.asm.ed).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Image_get_next_0 = (Module._emscripten_bind_ASS_Image_get_next_0 = function () {
+ return (_emscripten_bind_ASS_Image_get_next_0 = Module._emscripten_bind_ASS_Image_get_next_0 =
+ Module.asm.fd).apply(null, arguments)
+})
+var _emscripten_bind_ASS_Image_set_next_1 = (Module._emscripten_bind_ASS_Image_set_next_1 = function () {
+ return (_emscripten_bind_ASS_Image_set_next_1 = Module._emscripten_bind_ASS_Image_set_next_1 =
+ Module.asm.gd).apply(null, arguments)
+})
+var _emscripten_bind_VoidPtr___destroy___0 = (Module._emscripten_bind_VoidPtr___destroy___0 = function () {
+ return (_emscripten_bind_VoidPtr___destroy___0 = Module._emscripten_bind_VoidPtr___destroy___0 =
+ Module.asm.hd).apply(null, arguments)
+})
+var _emscripten_bind_RenderBlendPart_get_dest_x_0 = (Module._emscripten_bind_RenderBlendPart_get_dest_x_0 = function () {
+ return (_emscripten_bind_RenderBlendPart_get_dest_x_0 = Module._emscripten_bind_RenderBlendPart_get_dest_x_0 =
+ Module.asm.id).apply(null, arguments)
+})
+var _emscripten_bind_RenderBlendPart_set_dest_x_1 = (Module._emscripten_bind_RenderBlendPart_set_dest_x_1 = function () {
+ return (_emscripten_bind_RenderBlendPart_set_dest_x_1 = Module._emscripten_bind_RenderBlendPart_set_dest_x_1 =
+ Module.asm.jd).apply(null, arguments)
+})
+var _emscripten_bind_RenderBlendPart_get_dest_y_0 = (Module._emscripten_bind_RenderBlendPart_get_dest_y_0 = function () {
+ return (_emscripten_bind_RenderBlendPart_get_dest_y_0 = Module._emscripten_bind_RenderBlendPart_get_dest_y_0 =
+ Module.asm.kd).apply(null, arguments)
+})
+var _emscripten_bind_RenderBlendPart_set_dest_y_1 = (Module._emscripten_bind_RenderBlendPart_set_dest_y_1 = function () {
+ return (_emscripten_bind_RenderBlendPart_set_dest_y_1 = Module._emscripten_bind_RenderBlendPart_set_dest_y_1 =
+ Module.asm.ld).apply(null, arguments)
+})
+var _emscripten_bind_RenderBlendPart_get_dest_width_0 = (Module._emscripten_bind_RenderBlendPart_get_dest_width_0 = function () {
+ return (_emscripten_bind_RenderBlendPart_get_dest_width_0 = Module._emscripten_bind_RenderBlendPart_get_dest_width_0 =
+ Module.asm.md).apply(null, arguments)
+})
+var _emscripten_bind_RenderBlendPart_set_dest_width_1 = (Module._emscripten_bind_RenderBlendPart_set_dest_width_1 = function () {
+ return (_emscripten_bind_RenderBlendPart_set_dest_width_1 = Module._emscripten_bind_RenderBlendPart_set_dest_width_1 =
+ Module.asm.nd).apply(null, arguments)
+})
+var _emscripten_bind_RenderBlendPart_get_dest_height_0 = (Module._emscripten_bind_RenderBlendPart_get_dest_height_0 = function () {
+ return (_emscripten_bind_RenderBlendPart_get_dest_height_0 = Module._emscripten_bind_RenderBlendPart_get_dest_height_0 =
+ Module.asm.od).apply(null, arguments)
+})
+var _emscripten_bind_RenderBlendPart_set_dest_height_1 = (Module._emscripten_bind_RenderBlendPart_set_dest_height_1 = function () {
+ return (_emscripten_bind_RenderBlendPart_set_dest_height_1 = Module._emscripten_bind_RenderBlendPart_set_dest_height_1 =
+ Module.asm.pd).apply(null, arguments)
+})
+var _emscripten_bind_RenderBlendPart_get_image_0 = (Module._emscripten_bind_RenderBlendPart_get_image_0 = function () {
+ return (_emscripten_bind_RenderBlendPart_get_image_0 = Module._emscripten_bind_RenderBlendPart_get_image_0 =
+ Module.asm.qd).apply(null, arguments)
+})
+var _emscripten_bind_RenderBlendPart_set_image_1 = (Module._emscripten_bind_RenderBlendPart_set_image_1 = function () {
+ return (_emscripten_bind_RenderBlendPart_set_image_1 = Module._emscripten_bind_RenderBlendPart_set_image_1 =
+ Module.asm.rd).apply(null, arguments)
+})
+var _emscripten_bind_RenderBlendPart_get_next_0 = (Module._emscripten_bind_RenderBlendPart_get_next_0 = function () {
+ return (_emscripten_bind_RenderBlendPart_get_next_0 = Module._emscripten_bind_RenderBlendPart_get_next_0 =
+ Module.asm.sd).apply(null, arguments)
+})
+var _emscripten_bind_RenderBlendPart_set_next_1 = (Module._emscripten_bind_RenderBlendPart_set_next_1 = function () {
+ return (_emscripten_bind_RenderBlendPart_set_next_1 = Module._emscripten_bind_RenderBlendPart_set_next_1 =
+ Module.asm.td).apply(null, arguments)
+})
+var _emscripten_bind_libass_libass_0 = (Module._emscripten_bind_libass_libass_0 = function () {
+ return (_emscripten_bind_libass_libass_0 = Module._emscripten_bind_libass_libass_0 =
+ Module.asm.ud).apply(null, arguments)
+})
+var _emscripten_bind_libass_oct_library_version_0 = (Module._emscripten_bind_libass_oct_library_version_0 = function () {
+ return (_emscripten_bind_libass_oct_library_version_0 = Module._emscripten_bind_libass_oct_library_version_0 =
+ Module.asm.vd).apply(null, arguments)
+})
+var _emscripten_bind_libass_oct_library_init_0 = (Module._emscripten_bind_libass_oct_library_init_0 = function () {
+ return (_emscripten_bind_libass_oct_library_init_0 = Module._emscripten_bind_libass_oct_library_init_0 =
+ Module.asm.wd).apply(null, arguments)
+})
+var _emscripten_bind_libass_oct_library_done_1 = (Module._emscripten_bind_libass_oct_library_done_1 = function () {
+ return (_emscripten_bind_libass_oct_library_done_1 = Module._emscripten_bind_libass_oct_library_done_1 =
+ Module.asm.xd).apply(null, arguments)
+})
+var _emscripten_bind_libass_oct_set_fonts_dir_2 = (Module._emscripten_bind_libass_oct_set_fonts_dir_2 = function () {
+ return (_emscripten_bind_libass_oct_set_fonts_dir_2 = Module._emscripten_bind_libass_oct_set_fonts_dir_2 =
+ Module.asm.yd).apply(null, arguments)
+})
+var _emscripten_bind_libass_oct_set_extract_fonts_2 = (Module._emscripten_bind_libass_oct_set_extract_fonts_2 = function () {
+ return (_emscripten_bind_libass_oct_set_extract_fonts_2 = Module._emscripten_bind_libass_oct_set_extract_fonts_2 =
+ Module.asm.zd).apply(null, arguments)
+})
+var _emscripten_bind_libass_oct_set_style_overrides_2 = (Module._emscripten_bind_libass_oct_set_style_overrides_2 = function () {
+ return (_emscripten_bind_libass_oct_set_style_overrides_2 = Module._emscripten_bind_libass_oct_set_style_overrides_2 =
+ Module.asm.Ad).apply(null, arguments)
+})
+var _emscripten_bind_libass_oct_process_force_style_1 = (Module._emscripten_bind_libass_oct_process_force_style_1 = function () {
+ return (_emscripten_bind_libass_oct_process_force_style_1 = Module._emscripten_bind_libass_oct_process_force_style_1 =
+ Module.asm.Bd).apply(null, arguments)
+})
+var _emscripten_bind_libass_oct_renderer_init_1 = (Module._emscripten_bind_libass_oct_renderer_init_1 = function () {
+ return (_emscripten_bind_libass_oct_renderer_init_1 = Module._emscripten_bind_libass_oct_renderer_init_1 =
+ Module.asm.Cd).apply(null, arguments)
+})
+var _emscripten_bind_libass_oct_renderer_done_1 = (Module._emscripten_bind_libass_oct_renderer_done_1 = function () {
+ return (_emscripten_bind_libass_oct_renderer_done_1 = Module._emscripten_bind_libass_oct_renderer_done_1 =
+ Module.asm.Dd).apply(null, arguments)
+})
+var _emscripten_bind_libass_oct_set_frame_size_3 = (Module._emscripten_bind_libass_oct_set_frame_size_3 = function () {
+ return (_emscripten_bind_libass_oct_set_frame_size_3 = Module._emscripten_bind_libass_oct_set_frame_size_3 =
+ Module.asm.Ed).apply(null, arguments)
+})
+var _emscripten_bind_libass_oct_set_storage_size_3 = (Module._emscripten_bind_libass_oct_set_storage_size_3 = function () {
+ return (_emscripten_bind_libass_oct_set_storage_size_3 = Module._emscripten_bind_libass_oct_set_storage_size_3 =
+ Module.asm.Fd).apply(null, arguments)
+})
+var _emscripten_bind_libass_oct_set_shaper_2 = (Module._emscripten_bind_libass_oct_set_shaper_2 = function () {
+ return (_emscripten_bind_libass_oct_set_shaper_2 = Module._emscripten_bind_libass_oct_set_shaper_2 =
+ Module.asm.Gd).apply(null, arguments)
+})
+var _emscripten_bind_libass_oct_set_margins_5 = (Module._emscripten_bind_libass_oct_set_margins_5 = function () {
+ return (_emscripten_bind_libass_oct_set_margins_5 = Module._emscripten_bind_libass_oct_set_margins_5 =
+ Module.asm.Hd).apply(null, arguments)
+})
+var _emscripten_bind_libass_oct_set_use_margins_2 = (Module._emscripten_bind_libass_oct_set_use_margins_2 = function () {
+ return (_emscripten_bind_libass_oct_set_use_margins_2 = Module._emscripten_bind_libass_oct_set_use_margins_2 =
+ Module.asm.Id).apply(null, arguments)
+})
+var _emscripten_bind_libass_oct_set_pixel_aspect_2 = (Module._emscripten_bind_libass_oct_set_pixel_aspect_2 = function () {
+ return (_emscripten_bind_libass_oct_set_pixel_aspect_2 = Module._emscripten_bind_libass_oct_set_pixel_aspect_2 =
+ Module.asm.Jd).apply(null, arguments)
+})
+var _emscripten_bind_libass_oct_set_aspect_ratio_3 = (Module._emscripten_bind_libass_oct_set_aspect_ratio_3 = function () {
+ return (_emscripten_bind_libass_oct_set_aspect_ratio_3 = Module._emscripten_bind_libass_oct_set_aspect_ratio_3 =
+ Module.asm.Kd).apply(null, arguments)
+})
+var _emscripten_bind_libass_oct_set_font_scale_2 = (Module._emscripten_bind_libass_oct_set_font_scale_2 = function () {
+ return (_emscripten_bind_libass_oct_set_font_scale_2 = Module._emscripten_bind_libass_oct_set_font_scale_2 =
+ Module.asm.Ld).apply(null, arguments)
+})
+var _emscripten_bind_libass_oct_set_hinting_2 = (Module._emscripten_bind_libass_oct_set_hinting_2 = function () {
+ return (_emscripten_bind_libass_oct_set_hinting_2 = Module._emscripten_bind_libass_oct_set_hinting_2 =
+ Module.asm.Md).apply(null, arguments)
+})
+var _emscripten_bind_libass_oct_set_line_spacing_2 = (Module._emscripten_bind_libass_oct_set_line_spacing_2 = function () {
+ return (_emscripten_bind_libass_oct_set_line_spacing_2 = Module._emscripten_bind_libass_oct_set_line_spacing_2 =
+ Module.asm.Nd).apply(null, arguments)
+})
+var _emscripten_bind_libass_oct_set_line_position_2 = (Module._emscripten_bind_libass_oct_set_line_position_2 = function () {
+ return (_emscripten_bind_libass_oct_set_line_position_2 = Module._emscripten_bind_libass_oct_set_line_position_2 =
+ Module.asm.Od).apply(null, arguments)
+})
+var _emscripten_bind_libass_oct_set_fonts_6 = (Module._emscripten_bind_libass_oct_set_fonts_6 = function () {
+ return (_emscripten_bind_libass_oct_set_fonts_6 = Module._emscripten_bind_libass_oct_set_fonts_6 =
+ Module.asm.Pd).apply(null, arguments)
+})
+var _emscripten_bind_libass_oct_set_selective_style_override_enabled_2 = (Module._emscripten_bind_libass_oct_set_selective_style_override_enabled_2 = function () {
+ return (_emscripten_bind_libass_oct_set_selective_style_override_enabled_2 = Module._emscripten_bind_libass_oct_set_selective_style_override_enabled_2 =
+ Module.asm.Qd).apply(null, arguments)
+})
+var _emscripten_bind_libass_oct_set_selective_style_override_2 = (Module._emscripten_bind_libass_oct_set_selective_style_override_2 = function () {
+ return (_emscripten_bind_libass_oct_set_selective_style_override_2 = Module._emscripten_bind_libass_oct_set_selective_style_override_2 =
+ Module.asm.Rd).apply(null, arguments)
+})
+var _emscripten_bind_libass_oct_set_cache_limits_3 = (Module._emscripten_bind_libass_oct_set_cache_limits_3 = function () {
+ return (_emscripten_bind_libass_oct_set_cache_limits_3 = Module._emscripten_bind_libass_oct_set_cache_limits_3 =
+ Module.asm.Sd).apply(null, arguments)
+})
+var _emscripten_bind_libass_oct_render_frame_4 = (Module._emscripten_bind_libass_oct_render_frame_4 = function () {
+ return (_emscripten_bind_libass_oct_render_frame_4 = Module._emscripten_bind_libass_oct_render_frame_4 =
+ Module.asm.Td).apply(null, arguments)
+})
+var _emscripten_bind_libass_oct_new_track_1 = (Module._emscripten_bind_libass_oct_new_track_1 = function () {
+ return (_emscripten_bind_libass_oct_new_track_1 = Module._emscripten_bind_libass_oct_new_track_1 =
+ Module.asm.Ud).apply(null, arguments)
+})
+var _emscripten_bind_libass_oct_free_track_1 = (Module._emscripten_bind_libass_oct_free_track_1 = function () {
+ return (_emscripten_bind_libass_oct_free_track_1 = Module._emscripten_bind_libass_oct_free_track_1 =
+ Module.asm.Vd).apply(null, arguments)
+})
+var _emscripten_bind_libass_oct_alloc_style_1 = (Module._emscripten_bind_libass_oct_alloc_style_1 = function () {
+ return (_emscripten_bind_libass_oct_alloc_style_1 = Module._emscripten_bind_libass_oct_alloc_style_1 =
+ Module.asm.Wd).apply(null, arguments)
+})
+var _emscripten_bind_libass_oct_alloc_event_1 = (Module._emscripten_bind_libass_oct_alloc_event_1 = function () {
+ return (_emscripten_bind_libass_oct_alloc_event_1 = Module._emscripten_bind_libass_oct_alloc_event_1 =
+ Module.asm.Xd).apply(null, arguments)
+})
+var _emscripten_bind_libass_oct_free_style_2 = (Module._emscripten_bind_libass_oct_free_style_2 = function () {
+ return (_emscripten_bind_libass_oct_free_style_2 = Module._emscripten_bind_libass_oct_free_style_2 =
+ Module.asm.Yd).apply(null, arguments)
+})
+var _emscripten_bind_libass_oct_free_event_2 = (Module._emscripten_bind_libass_oct_free_event_2 = function () {
+ return (_emscripten_bind_libass_oct_free_event_2 = Module._emscripten_bind_libass_oct_free_event_2 =
+ Module.asm.Zd).apply(null, arguments)
+})
+var _emscripten_bind_libass_oct_flush_events_1 = (Module._emscripten_bind_libass_oct_flush_events_1 = function () {
+ return (_emscripten_bind_libass_oct_flush_events_1 = Module._emscripten_bind_libass_oct_flush_events_1 =
+ Module.asm._d).apply(null, arguments)
+})
+var _emscripten_bind_libass_oct_read_file_3 = (Module._emscripten_bind_libass_oct_read_file_3 = function () {
+ return (_emscripten_bind_libass_oct_read_file_3 = Module._emscripten_bind_libass_oct_read_file_3 =
+ Module.asm.$d).apply(null, arguments)
+})
+var _emscripten_bind_libass_oct_add_font_4 = (Module._emscripten_bind_libass_oct_add_font_4 = function () {
+ return (_emscripten_bind_libass_oct_add_font_4 = Module._emscripten_bind_libass_oct_add_font_4 =
+ Module.asm.ae).apply(null, arguments)
+})
+var _emscripten_bind_libass_oct_clear_fonts_1 = (Module._emscripten_bind_libass_oct_clear_fonts_1 = function () {
+ return (_emscripten_bind_libass_oct_clear_fonts_1 = Module._emscripten_bind_libass_oct_clear_fonts_1 =
+ Module.asm.be).apply(null, arguments)
+})
+var _emscripten_bind_libass_oct_step_sub_3 = (Module._emscripten_bind_libass_oct_step_sub_3 = function () {
+ return (_emscripten_bind_libass_oct_step_sub_3 = Module._emscripten_bind_libass_oct_step_sub_3 =
+ Module.asm.ce).apply(null, arguments)
+})
+var _emscripten_enum_ASS_Hinting_ASS_HINTING_NONE = (Module._emscripten_enum_ASS_Hinting_ASS_HINTING_NONE = function () {
+ return (_emscripten_enum_ASS_Hinting_ASS_HINTING_NONE = Module._emscripten_enum_ASS_Hinting_ASS_HINTING_NONE =
+ Module.asm.de).apply(null, arguments)
+})
+var _emscripten_enum_ASS_Hinting_ASS_HINTING_LIGHT = (Module._emscripten_enum_ASS_Hinting_ASS_HINTING_LIGHT = function () {
+ return (_emscripten_enum_ASS_Hinting_ASS_HINTING_LIGHT = Module._emscripten_enum_ASS_Hinting_ASS_HINTING_LIGHT =
+ Module.asm.ee).apply(null, arguments)
+})
+var _emscripten_enum_ASS_Hinting_ASS_HINTING_NORMAL = (Module._emscripten_enum_ASS_Hinting_ASS_HINTING_NORMAL = function () {
+ return (_emscripten_enum_ASS_Hinting_ASS_HINTING_NORMAL = Module._emscripten_enum_ASS_Hinting_ASS_HINTING_NORMAL =
+ Module.asm.fe).apply(null, arguments)
+})
+var _emscripten_enum_ASS_Hinting_ASS_HINTING_NATIVE = (Module._emscripten_enum_ASS_Hinting_ASS_HINTING_NATIVE = function () {
+ return (_emscripten_enum_ASS_Hinting_ASS_HINTING_NATIVE = Module._emscripten_enum_ASS_Hinting_ASS_HINTING_NATIVE =
+ Module.asm.ge).apply(null, arguments)
+})
+var _emscripten_enum_ASS_ShapingLevel_ASS_SHAPING_SIMPLE = (Module._emscripten_enum_ASS_ShapingLevel_ASS_SHAPING_SIMPLE = function () {
+ return (_emscripten_enum_ASS_ShapingLevel_ASS_SHAPING_SIMPLE = Module._emscripten_enum_ASS_ShapingLevel_ASS_SHAPING_SIMPLE =
+ Module.asm.he).apply(null, arguments)
+})
+var _emscripten_enum_ASS_ShapingLevel_ASS_SHAPING_COMPLEX = (Module._emscripten_enum_ASS_ShapingLevel_ASS_SHAPING_COMPLEX = function () {
+ return (_emscripten_enum_ASS_ShapingLevel_ASS_SHAPING_COMPLEX = Module._emscripten_enum_ASS_ShapingLevel_ASS_SHAPING_COMPLEX =
+ Module.asm.ie).apply(null, arguments)
+})
+var _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_DEFAULT = (Module._emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_DEFAULT = function () {
+ return (_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_DEFAULT = Module._emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_DEFAULT =
+ Module.asm.je).apply(null, arguments)
+})
+var _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_STYLE = (Module._emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_STYLE = function () {
+ return (_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_STYLE = Module._emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_STYLE =
+ Module.asm.ke).apply(null, arguments)
+})
+var _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_SELECTIVE_FONT_SCALE = (Module._emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_SELECTIVE_FONT_SCALE = function () {
+ return (_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_SELECTIVE_FONT_SCALE = Module._emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_SELECTIVE_FONT_SCALE =
+ Module.asm.le).apply(null, arguments)
+})
+var _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_FONT_SIZE = (Module._emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_FONT_SIZE = function () {
+ return (_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_FONT_SIZE = Module._emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_FONT_SIZE =
+ Module.asm.me).apply(null, arguments)
+})
+var _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_FONT_SIZE_FIELDS = (Module._emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_FONT_SIZE_FIELDS = function () {
+ return (_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_FONT_SIZE_FIELDS = Module._emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_FONT_SIZE_FIELDS =
+ Module.asm.ne).apply(null, arguments)
+})
+var _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_FONT_NAME = (Module._emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_FONT_NAME = function () {
+ return (_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_FONT_NAME = Module._emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_FONT_NAME =
+ Module.asm.oe).apply(null, arguments)
+})
+var _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_COLORS = (Module._emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_COLORS = function () {
+ return (_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_COLORS = Module._emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_COLORS =
+ Module.asm.pe).apply(null, arguments)
+})
+var _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_ATTRIBUTES = (Module._emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_ATTRIBUTES = function () {
+ return (_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_ATTRIBUTES = Module._emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_ATTRIBUTES =
+ Module.asm.qe).apply(null, arguments)
+})
+var _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_BORDER = (Module._emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_BORDER = function () {
+ return (_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_BORDER = Module._emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_BORDER =
+ Module.asm.re).apply(null, arguments)
+})
+var _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_ALIGNMENT = (Module._emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_ALIGNMENT = function () {
+ return (_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_ALIGNMENT = Module._emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_ALIGNMENT =
+ Module.asm.se).apply(null, arguments)
+})
+var _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_MARGINS = (Module._emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_MARGINS = function () {
+ return (_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_MARGINS = Module._emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_MARGINS =
+ Module.asm.te).apply(null, arguments)
+})
+var _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_FULL_STYLE = (Module._emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_FULL_STYLE = function () {
+ return (_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_FULL_STYLE = Module._emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_FULL_STYLE =
+ Module.asm.ue).apply(null, arguments)
+})
+var _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_JUSTIFY = (Module._emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_JUSTIFY = function () {
+ return (_emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_JUSTIFY = Module._emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_JUSTIFY =
+ Module.asm.ve).apply(null, arguments)
+})
+var _realloc = (Module._realloc = function () {
+ return (_realloc = Module._realloc = Module.asm.we).apply(null, arguments)
+})
+var ___errno_location = (Module.___errno_location = function () {
+ return (___errno_location = Module.___errno_location = Module.asm.xe).apply(
+ null,
+ arguments
+ )
+})
+var _setThrew = (Module._setThrew = function () {
+ return (_setThrew = Module._setThrew = Module.asm.ye).apply(null, arguments)
+})
+var dynCall_v = (Module.dynCall_v = function () {
+ return (dynCall_v = Module.dynCall_v = Module.asm.ze).apply(null, arguments)
+})
+var dynCall_vii = (Module.dynCall_vii = function () {
+ return (dynCall_vii = Module.dynCall_vii = Module.asm.Ae).apply(
+ null,
+ arguments
+ )
+})
+var dynCall_iii = (Module.dynCall_iii = function () {
+ return (dynCall_iii = Module.dynCall_iii = Module.asm.Be).apply(
+ null,
+ arguments
+ )
+})
+var dynCall_iiii = (Module.dynCall_iiii = function () {
+ return (dynCall_iiii = Module.dynCall_iiii = Module.asm.Ce).apply(
+ null,
+ arguments
+ )
+})
+var dynCall_iiiii = (Module.dynCall_iiiii = function () {
+ return (dynCall_iiiii = Module.dynCall_iiiii = Module.asm.De).apply(
+ null,
+ arguments
+ )
+})
+var stackSave = (Module.stackSave = function () {
+ return (stackSave = Module.stackSave = Module.asm.Ee).apply(null, arguments)
+})
+var stackAlloc = (Module.stackAlloc = function () {
+ return (stackAlloc = Module.stackAlloc = Module.asm.Fe).apply(null, arguments)
+})
+var stackRestore = (Module.stackRestore = function () {
+ return (stackRestore = Module.stackRestore = Module.asm.Ge).apply(
+ null,
+ arguments
+ )
+})
+var dynCall_vi = (Module.dynCall_vi = function () {
+ return (dynCall_vi = Module.dynCall_vi = Module.asm.He).apply(null, arguments)
+})
-function invoke_iii(index, a1, a2) {
- var sp = stackSave();
+function invoke_iii (index, a1, a2) {
+ const sp = stackSave()
try {
return dynCall_iii(index, a1, a2)
} catch (e) {
- stackRestore(sp);
- if (e !== e + 0 && e !== "longjmp") throw e;
+ stackRestore(sp)
+ if (e !== e + 0 && e !== 'longjmp') throw e
_setThrew(1, 0)
}
}
-function invoke_iiiii(index, a1, a2, a3, a4) {
- var sp = stackSave();
+function invoke_iiiii (index, a1, a2, a3, a4) {
+ const sp = stackSave()
try {
return dynCall_iiiii(index, a1, a2, a3, a4)
} catch (e) {
- stackRestore(sp);
- if (e !== e + 0 && e !== "longjmp") throw e;
+ stackRestore(sp)
+ if (e !== e + 0 && e !== 'longjmp') throw e
_setThrew(1, 0)
}
}
-function invoke_iiii(index, a1, a2, a3) {
- var sp = stackSave();
+function invoke_iiii (index, a1, a2, a3) {
+ const sp = stackSave()
try {
return dynCall_iiii(index, a1, a2, a3)
} catch (e) {
- stackRestore(sp);
- if (e !== e + 0 && e !== "longjmp") throw e;
+ stackRestore(sp)
+ if (e !== e + 0 && e !== 'longjmp') throw e
_setThrew(1, 0)
}
}
-function invoke_vii(index, a1, a2) {
- var sp = stackSave();
+function invoke_vii (index, a1, a2) {
+ const sp = stackSave()
try {
dynCall_vii(index, a1, a2)
} catch (e) {
- stackRestore(sp);
- if (e !== e + 0 && e !== "longjmp") throw e;
+ stackRestore(sp)
+ if (e !== e + 0 && e !== 'longjmp') throw e
_setThrew(1, 0)
}
}
-Module["asm"] = asm;
-Module["ccall"] = ccall;
-Module["cwrap"] = cwrap;
-Module["getValue"] = getValue;
-Module["getMemory"] = getMemory;
-Module["addRunDependency"] = addRunDependency;
-Module["removeRunDependency"] = removeRunDependency;
-Module["FS_createFolder"] = FS.createFolder;
-Module["FS_createPath"] = FS.createPath;
-Module["FS_createDataFile"] = FS.createDataFile;
-Module["FS_createPreloadedFile"] = FS.createPreloadedFile;
-Module["FS_createLazyFile"] = FS.createLazyFile;
-Module["FS_createLink"] = FS.createLink;
-Module["FS_createDevice"] = FS.createDevice;
-Module["FS_unlink"] = FS.unlink;
-var calledRun;
+Module.asm = asm
+Module.ccall = ccall
+Module.cwrap = cwrap
+Module.getValue = getValue
+Module.getMemory = getMemory
+Module.addRunDependency = addRunDependency
+Module.removeRunDependency = removeRunDependency
+Module.FS_createFolder = FS.createFolder
+Module.FS_createPath = FS.createPath
+Module.FS_createDataFile = FS.createDataFile
+Module.FS_createPreloadedFile = FS.createPreloadedFile
+Module.FS_createLazyFile = FS.createLazyFile
+Module.FS_createLink = FS.createLink
+Module.FS_createDevice = FS.createDevice
+Module.FS_unlink = FS.unlink
+let calledRun
-function ExitStatus(status) {
- this.name = "ExitStatus";
- this.message = "Program terminated with exit(" + status + ")";
+function ExitStatus (status) {
+ this.name = 'ExitStatus'
+ this.message = 'Program terminated with exit(' + status + ')'
this.status = status
}
-var calledMain = false;
-dependenciesFulfilled = function runCaller() {
- if (!calledRun) run();
+let calledMain = false
+dependenciesFulfilled = function runCaller () {
+ if (!calledRun) run()
if (!calledRun) dependenciesFulfilled = runCaller
-};
+}
-function callMain(args) {
- var entryFunction = Module["_main"];
- args = args || [];
- var argc = args.length + 1;
- var argv = stackAlloc((argc + 1) * 4);
- HEAP32[argv >> 2] = allocateUTF8OnStack(thisProgram);
- for (var i = 1; i < argc; i++) {
+function callMain (args) {
+ const entryFunction = Module._main
+ args = args || []
+ const argc = args.length + 1
+ const argv = stackAlloc((argc + 1) * 4)
+ HEAP32[argv >> 2] = allocateUTF8OnStack(thisProgram)
+ for (let i = 1; i < argc; i++) {
HEAP32[(argv >> 2) + i] = allocateUTF8OnStack(args[i - 1])
}
- HEAP32[(argv >> 2) + argc] = 0;
+ HEAP32[(argv >> 2) + argc] = 0
try {
- var ret = entryFunction(argc, argv);
+ const ret = entryFunction(argc, argv)
exit(ret, true)
} catch (e) {
if (e instanceof ExitStatus) {
return
- } else if (e == "unwind") {
- noExitRuntime = true;
+ } else if (e == 'unwind') {
+ noExitRuntime = true
return
} else {
- var toLog = e;
- if (e && typeof e === "object" && e.stack) {
+ let toLog = e
+ if (e && typeof e === 'object' && e.stack) {
toLog = [e, e.stack]
}
- err("exception thrown: " + toLog);
+ err('exception thrown: ' + toLog)
quit_(1, e)
}
} finally {
@@ -7086,111 +10523,114 @@ function callMain(args) {
}
}
-function run(args) {
- args = args || arguments_;
+function run (args) {
+ args = args || arguments_
if (runDependencies > 0) {
return
}
- preRun();
- if (runDependencies > 0) return;
+ preRun()
+ if (runDependencies > 0) return
- function doRun() {
- if (calledRun) return;
- calledRun = true;
- Module["calledRun"] = true;
- if (ABORT) return;
- initRuntime();
- preMain();
- if (Module["onRuntimeInitialized"]) Module["onRuntimeInitialized"]();
- if (shouldRunNow) callMain(args);
+ function doRun () {
+ if (calledRun) return
+ calledRun = true
+ Module.calledRun = true
+ if (ABORT) return
+ initRuntime()
+ preMain()
+ if (Module.onRuntimeInitialized) Module.onRuntimeInitialized()
+ if (shouldRunNow) callMain(args)
postRun()
}
- if (Module["setStatus"]) {
- Module["setStatus"]("Running...");
+ if (Module.setStatus) {
+ Module.setStatus('Running...')
setTimeout(function () {
setTimeout(function () {
- Module["setStatus"]("")
- }, 1);
+ Module.setStatus('')
+ }, 1)
doRun()
}, 1)
} else {
doRun()
}
}
-Module["run"] = run;
+Module.run = run
-function exit(status, implicit) {
+function exit (status, implicit) {
if (implicit && noExitRuntime && status === 0) {
return
}
- if (noExitRuntime) {} else {
- ABORT = true;
- EXITSTATUS = status;
- exitRuntime();
- if (Module["onExit"]) Module["onExit"](status)
+ if (noExitRuntime) {
+ } else {
+ ABORT = true
+ EXITSTATUS = status
+ exitRuntime()
+ if (Module.onExit) Module.onExit(status)
}
quit_(status, new ExitStatus(status))
}
-if (Module["preInit"]) {
- if (typeof Module["preInit"] == "function") Module["preInit"] = [Module["preInit"]];
- while (Module["preInit"].length > 0) {
- Module["preInit"].pop()()
+if (Module.preInit) {
+ if (typeof Module.preInit === 'function') Module.preInit = [Module.preInit]
+ while (Module.preInit.length > 0) {
+ Module.preInit.pop()()
}
}
-var shouldRunNow = true;
-if (Module["noInitialRun"]) shouldRunNow = false;
-noExitRuntime = true;
-run();
+var shouldRunNow = true
+if (Module.noInitialRun) shouldRunNow = false
+noExitRuntime = true
+run()
-function WrapperObject() {}
-WrapperObject.prototype = Object.create(WrapperObject.prototype);
-WrapperObject.prototype.constructor = WrapperObject;
-WrapperObject.prototype.__class__ = WrapperObject;
-WrapperObject.__cache__ = {};
-Module["WrapperObject"] = WrapperObject;
+function WrapperObject () {}
+WrapperObject.prototype = Object.create(WrapperObject.prototype)
+WrapperObject.prototype.constructor = WrapperObject
+WrapperObject.prototype.__class__ = WrapperObject
+WrapperObject.__cache__ = {}
+Module.WrapperObject = WrapperObject
-function getCache(__class__) {
+function getCache (__class__) {
return (__class__ || WrapperObject).__cache__
}
-Module["getCache"] = getCache;
+Module.getCache = getCache
-function wrapPointer(ptr, __class__) {
- var cache = getCache(__class__);
- var ret = cache[ptr];
- if (ret) return ret;
- ret = Object.create((__class__ || WrapperObject).prototype);
- ret.ptr = ptr;
- return cache[ptr] = ret
+function wrapPointer (ptr, __class__) {
+ const cache = getCache(__class__)
+ let ret = cache[ptr]
+ if (ret) return ret
+ ret = Object.create((__class__ || WrapperObject).prototype)
+ ret.ptr = ptr
+ return (cache[ptr] = ret)
}
-Module["wrapPointer"] = wrapPointer;
+Module.wrapPointer = wrapPointer
-function castObject(obj, __class__) {
+function castObject (obj, __class__) {
return wrapPointer(obj.ptr, __class__)
}
-Module["castObject"] = castObject;
-Module["NULL"] = wrapPointer(0);
+Module.castObject = castObject
+Module.NULL = wrapPointer(0)
-function destroy(obj) {
- if (!obj["__destroy__"]) throw "Error: Cannot destroy object. (Did you create it yourself?)";
- obj["__destroy__"]();
+function destroy (obj) {
+ if (!obj.__destroy__) {
+ throw 'Error: Cannot destroy object. (Did you create it yourself?)'
+ }
+ obj.__destroy__()
delete getCache(obj.__class__)[obj.ptr]
}
-Module["destroy"] = destroy;
+Module.destroy = destroy
-function compare(obj1, obj2) {
+function compare (obj1, obj2) {
return obj1.ptr === obj2.ptr
}
-Module["compare"] = compare;
+Module.compare = compare
-function getPointer(obj) {
+function getPointer (obj) {
return obj.ptr
}
-Module["getPointer"] = getPointer;
+Module.getPointer = getPointer
-function getClass(obj) {
+function getClass (obj) {
return obj.__class__
}
-Module["getClass"] = getClass;
+Module.getClass = getClass
var ensureCache = {
buffer: 0,
size: 0,
@@ -7199,1766 +10639,2144 @@ var ensureCache = {
needed: 0,
prepare: function () {
if (ensureCache.needed) {
- for (var i = 0; i < ensureCache.temps.length; i++) {
- Module["_free"](ensureCache.temps[i])
+ for (let i = 0; i < ensureCache.temps.length; i++) {
+ Module._free(ensureCache.temps[i])
}
- ensureCache.temps.length = 0;
- Module["_free"](ensureCache.buffer);
- ensureCache.buffer = 0;
- ensureCache.size += ensureCache.needed;
+ ensureCache.temps.length = 0
+ Module._free(ensureCache.buffer)
+ ensureCache.buffer = 0
+ ensureCache.size += ensureCache.needed
ensureCache.needed = 0
}
if (!ensureCache.buffer) {
- ensureCache.size += 128;
- ensureCache.buffer = Module["_malloc"](ensureCache.size);
+ ensureCache.size += 128
+ ensureCache.buffer = Module._malloc(ensureCache.size)
assert(ensureCache.buffer)
}
ensureCache.pos = 0
},
alloc: function (array, view) {
- assert(ensureCache.buffer);
- var bytes = view.BYTES_PER_ELEMENT;
- var len = array.length * bytes;
- len = len + 7 & -8;
- var ret;
+ assert(ensureCache.buffer)
+ const bytes = view.BYTES_PER_ELEMENT
+ let len = array.length * bytes
+ len = (len + 7) & -8
+ let ret
if (ensureCache.pos + len >= ensureCache.size) {
- assert(len > 0);
- ensureCache.needed += len;
- ret = Module["_malloc"](len);
+ assert(len > 0)
+ ensureCache.needed += len
+ ret = Module._malloc(len)
ensureCache.temps.push(ret)
} else {
- ret = ensureCache.buffer + ensureCache.pos;
+ ret = ensureCache.buffer + ensureCache.pos
ensureCache.pos += len
}
return ret
},
copy: function (array, view, offset) {
- var offsetShifted = offset;
- var bytes = view.BYTES_PER_ELEMENT;
+ let offsetShifted = offset
+ const bytes = view.BYTES_PER_ELEMENT
switch (bytes) {
case 2:
- offsetShifted >>= 1;
- break;
+ offsetShifted >>= 1
+ break
case 4:
- offsetShifted >>= 2;
- break;
+ offsetShifted >>= 2
+ break
case 8:
- offsetShifted >>= 3;
+ offsetShifted >>= 3
break
}
- for (var i = 0; i < array.length; i++) {
+ for (let i = 0; i < array.length; i++) {
view[offsetShifted + i] = array[i]
}
}
-};
+}
-function ensureString(value) {
- if (typeof value === "string") {
- var intArray = intArrayFromString(value);
- var offset = ensureCache.alloc(intArray, HEAP8);
- ensureCache.copy(intArray, HEAP8, offset);
+function ensureString (value) {
+ if (typeof value === 'string') {
+ const intArray = intArrayFromString(value)
+ const offset = ensureCache.alloc(intArray, HEAP8)
+ ensureCache.copy(intArray, HEAP8, offset)
return offset
}
return value
}
-function ASS_ParserPriv() {
- throw "cannot construct a ASS_ParserPriv, no constructor in IDL"
+function ASS_ParserPriv () {
+ throw 'cannot construct a ASS_ParserPriv, no constructor in IDL'
}
-ASS_ParserPriv.prototype = Object.create(WrapperObject.prototype);
-ASS_ParserPriv.prototype.constructor = ASS_ParserPriv;
-ASS_ParserPriv.prototype.__class__ = ASS_ParserPriv;
-ASS_ParserPriv.__cache__ = {};
-Module["ASS_ParserPriv"] = ASS_ParserPriv;
+ASS_ParserPriv.prototype = Object.create(WrapperObject.prototype)
+ASS_ParserPriv.prototype.constructor = ASS_ParserPriv
+ASS_ParserPriv.prototype.__class__ = ASS_ParserPriv
+ASS_ParserPriv.__cache__ = {}
+Module.ASS_ParserPriv = ASS_ParserPriv
-function ASS_Event() {
- throw "cannot construct a ASS_Event, no constructor in IDL"
+function ASS_Event () {
+ throw 'cannot construct a ASS_Event, no constructor in IDL'
}
-ASS_Event.prototype = Object.create(WrapperObject.prototype);
-ASS_Event.prototype.constructor = ASS_Event;
-ASS_Event.prototype.__class__ = ASS_Event;
-ASS_Event.__cache__ = {};
-Module["ASS_Event"] = ASS_Event;
-ASS_Event.prototype["get_Start"] = ASS_Event.prototype.get_Start = function () {
- var self = this.ptr;
+ASS_Event.prototype = Object.create(WrapperObject.prototype)
+ASS_Event.prototype.constructor = ASS_Event
+ASS_Event.prototype.__class__ = ASS_Event
+ASS_Event.__cache__ = {}
+Module.ASS_Event = ASS_Event
+ASS_Event.prototype.get_Start = ASS_Event.prototype.get_Start = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Event_get_Start_0(self)
-};
-ASS_Event.prototype["set_Start"] = ASS_Event.prototype.set_Start = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Event.prototype.set_Start = ASS_Event.prototype.set_Start = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Event_set_Start_1(self, arg0)
-};
-Object.defineProperty(ASS_Event.prototype, "Start", {
+}
+Object.defineProperty(ASS_Event.prototype, 'Start', {
get: ASS_Event.prototype.get_Start,
set: ASS_Event.prototype.set_Start
-});
-ASS_Event.prototype["get_Duration"] = ASS_Event.prototype.get_Duration = function () {
- var self = this.ptr;
+})
+ASS_Event.prototype.get_Duration = ASS_Event.prototype.get_Duration = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Event_get_Duration_0(self)
-};
-ASS_Event.prototype["set_Duration"] = ASS_Event.prototype.set_Duration = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Event.prototype.set_Duration = ASS_Event.prototype.set_Duration = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Event_set_Duration_1(self, arg0)
-};
-Object.defineProperty(ASS_Event.prototype, "Duration", {
+}
+Object.defineProperty(ASS_Event.prototype, 'Duration', {
get: ASS_Event.prototype.get_Duration,
set: ASS_Event.prototype.set_Duration
-});
-ASS_Event.prototype["get_ReadOrder"] = ASS_Event.prototype.get_ReadOrder = function () {
- var self = this.ptr;
+})
+ASS_Event.prototype.get_ReadOrder = ASS_Event.prototype.get_ReadOrder = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Event_get_ReadOrder_0(self)
-};
-ASS_Event.prototype["set_ReadOrder"] = ASS_Event.prototype.set_ReadOrder = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Event.prototype.set_ReadOrder = ASS_Event.prototype.set_ReadOrder = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Event_set_ReadOrder_1(self, arg0)
-};
-Object.defineProperty(ASS_Event.prototype, "ReadOrder", {
+}
+Object.defineProperty(ASS_Event.prototype, 'ReadOrder', {
get: ASS_Event.prototype.get_ReadOrder,
set: ASS_Event.prototype.set_ReadOrder
-});
-ASS_Event.prototype["get_Layer"] = ASS_Event.prototype.get_Layer = function () {
- var self = this.ptr;
+})
+ASS_Event.prototype.get_Layer = ASS_Event.prototype.get_Layer = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Event_get_Layer_0(self)
-};
-ASS_Event.prototype["set_Layer"] = ASS_Event.prototype.set_Layer = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Event.prototype.set_Layer = ASS_Event.prototype.set_Layer = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Event_set_Layer_1(self, arg0)
-};
-Object.defineProperty(ASS_Event.prototype, "Layer", {
+}
+Object.defineProperty(ASS_Event.prototype, 'Layer', {
get: ASS_Event.prototype.get_Layer,
set: ASS_Event.prototype.set_Layer
-});
-ASS_Event.prototype["get_Style"] = ASS_Event.prototype.get_Style = function () {
- var self = this.ptr;
+})
+ASS_Event.prototype.get_Style = ASS_Event.prototype.get_Style = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Event_get_Style_0(self)
-};
-ASS_Event.prototype["set_Style"] = ASS_Event.prototype.set_Style = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Event.prototype.set_Style = ASS_Event.prototype.set_Style = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Event_set_Style_1(self, arg0)
-};
-Object.defineProperty(ASS_Event.prototype, "Style", {
+}
+Object.defineProperty(ASS_Event.prototype, 'Style', {
get: ASS_Event.prototype.get_Style,
set: ASS_Event.prototype.set_Style
-});
-ASS_Event.prototype["get_Name"] = ASS_Event.prototype.get_Name = function () {
- var self = this.ptr;
+})
+ASS_Event.prototype.get_Name = ASS_Event.prototype.get_Name = function () {
+ const self = this.ptr
return UTF8ToString(_emscripten_bind_ASS_Event_get_Name_0(self))
-};
-ASS_Event.prototype["set_Name"] = ASS_Event.prototype.set_Name = function (arg0) {
- var self = this.ptr;
- ensureCache.prepare();
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
- else arg0 = ensureString(arg0);
+}
+ASS_Event.prototype.set_Name = ASS_Event.prototype.set_Name = function (arg0) {
+ const self = this.ptr
+ ensureCache.prepare()
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
+ else arg0 = ensureString(arg0)
_emscripten_bind_ASS_Event_set_Name_1(self, arg0)
-};
-Object.defineProperty(ASS_Event.prototype, "Name", {
+}
+Object.defineProperty(ASS_Event.prototype, 'Name', {
get: ASS_Event.prototype.get_Name,
set: ASS_Event.prototype.set_Name
-});
-ASS_Event.prototype["get_MarginL"] = ASS_Event.prototype.get_MarginL = function () {
- var self = this.ptr;
+})
+ASS_Event.prototype.get_MarginL = ASS_Event.prototype.get_MarginL = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Event_get_MarginL_0(self)
-};
-ASS_Event.prototype["set_MarginL"] = ASS_Event.prototype.set_MarginL = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Event.prototype.set_MarginL = ASS_Event.prototype.set_MarginL = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Event_set_MarginL_1(self, arg0)
-};
-Object.defineProperty(ASS_Event.prototype, "MarginL", {
+}
+Object.defineProperty(ASS_Event.prototype, 'MarginL', {
get: ASS_Event.prototype.get_MarginL,
set: ASS_Event.prototype.set_MarginL
-});
-ASS_Event.prototype["get_MarginR"] = ASS_Event.prototype.get_MarginR = function () {
- var self = this.ptr;
+})
+ASS_Event.prototype.get_MarginR = ASS_Event.prototype.get_MarginR = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Event_get_MarginR_0(self)
-};
-ASS_Event.prototype["set_MarginR"] = ASS_Event.prototype.set_MarginR = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Event.prototype.set_MarginR = ASS_Event.prototype.set_MarginR = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Event_set_MarginR_1(self, arg0)
-};
-Object.defineProperty(ASS_Event.prototype, "MarginR", {
+}
+Object.defineProperty(ASS_Event.prototype, 'MarginR', {
get: ASS_Event.prototype.get_MarginR,
set: ASS_Event.prototype.set_MarginR
-});
-ASS_Event.prototype["get_MarginV"] = ASS_Event.prototype.get_MarginV = function () {
- var self = this.ptr;
+})
+ASS_Event.prototype.get_MarginV = ASS_Event.prototype.get_MarginV = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Event_get_MarginV_0(self)
-};
-ASS_Event.prototype["set_MarginV"] = ASS_Event.prototype.set_MarginV = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Event.prototype.set_MarginV = ASS_Event.prototype.set_MarginV = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Event_set_MarginV_1(self, arg0)
-};
-Object.defineProperty(ASS_Event.prototype, "MarginV", {
+}
+Object.defineProperty(ASS_Event.prototype, 'MarginV', {
get: ASS_Event.prototype.get_MarginV,
set: ASS_Event.prototype.set_MarginV
-});
-ASS_Event.prototype["get_Effect"] = ASS_Event.prototype.get_Effect = function () {
- var self = this.ptr;
+})
+ASS_Event.prototype.get_Effect = ASS_Event.prototype.get_Effect = function () {
+ const self = this.ptr
return UTF8ToString(_emscripten_bind_ASS_Event_get_Effect_0(self))
-};
-ASS_Event.prototype["set_Effect"] = ASS_Event.prototype.set_Effect = function (arg0) {
- var self = this.ptr;
- ensureCache.prepare();
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
- else arg0 = ensureString(arg0);
+}
+ASS_Event.prototype.set_Effect = ASS_Event.prototype.set_Effect = function (
+ arg0
+) {
+ const self = this.ptr
+ ensureCache.prepare()
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
+ else arg0 = ensureString(arg0)
_emscripten_bind_ASS_Event_set_Effect_1(self, arg0)
-};
-Object.defineProperty(ASS_Event.prototype, "Effect", {
+}
+Object.defineProperty(ASS_Event.prototype, 'Effect', {
get: ASS_Event.prototype.get_Effect,
set: ASS_Event.prototype.set_Effect
-});
-ASS_Event.prototype["get_Text"] = ASS_Event.prototype.get_Text = function () {
- var self = this.ptr;
+})
+ASS_Event.prototype.get_Text = ASS_Event.prototype.get_Text = function () {
+ const self = this.ptr
return UTF8ToString(_emscripten_bind_ASS_Event_get_Text_0(self))
-};
-ASS_Event.prototype["set_Text"] = ASS_Event.prototype.set_Text = function (arg0) {
- var self = this.ptr;
- ensureCache.prepare();
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
- else arg0 = ensureString(arg0);
+}
+ASS_Event.prototype.set_Text = ASS_Event.prototype.set_Text = function (arg0) {
+ const self = this.ptr
+ ensureCache.prepare()
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
+ else arg0 = ensureString(arg0)
_emscripten_bind_ASS_Event_set_Text_1(self, arg0)
-};
-Object.defineProperty(ASS_Event.prototype, "Text", {
+}
+Object.defineProperty(ASS_Event.prototype, 'Text', {
get: ASS_Event.prototype.get_Text,
set: ASS_Event.prototype.set_Text
-});
+})
-function ASS_Renderer() {
- throw "cannot construct a ASS_Renderer, no constructor in IDL"
+function ASS_Renderer () {
+ throw 'cannot construct a ASS_Renderer, no constructor in IDL'
}
-ASS_Renderer.prototype = Object.create(WrapperObject.prototype);
-ASS_Renderer.prototype.constructor = ASS_Renderer;
-ASS_Renderer.prototype.__class__ = ASS_Renderer;
-ASS_Renderer.__cache__ = {};
-Module["ASS_Renderer"] = ASS_Renderer;
+ASS_Renderer.prototype = Object.create(WrapperObject.prototype)
+ASS_Renderer.prototype.constructor = ASS_Renderer
+ASS_Renderer.prototype.__class__ = ASS_Renderer
+ASS_Renderer.__cache__ = {}
+Module.ASS_Renderer = ASS_Renderer
-function RenderBlendResult() {
- throw "cannot construct a RenderBlendResult, no constructor in IDL"
+function RenderBlendResult () {
+ throw 'cannot construct a RenderBlendResult, no constructor in IDL'
}
-RenderBlendResult.prototype = Object.create(WrapperObject.prototype);
-RenderBlendResult.prototype.constructor = RenderBlendResult;
-RenderBlendResult.prototype.__class__ = RenderBlendResult;
-RenderBlendResult.__cache__ = {};
-Module["RenderBlendResult"] = RenderBlendResult;
-RenderBlendResult.prototype["get_changed"] = RenderBlendResult.prototype.get_changed = function () {
- var self = this.ptr;
+RenderBlendResult.prototype = Object.create(WrapperObject.prototype)
+RenderBlendResult.prototype.constructor = RenderBlendResult
+RenderBlendResult.prototype.__class__ = RenderBlendResult
+RenderBlendResult.__cache__ = {}
+Module.RenderBlendResult = RenderBlendResult
+RenderBlendResult.prototype.get_changed = RenderBlendResult.prototype.get_changed = function () {
+ const self = this.ptr
return _emscripten_bind_RenderBlendResult_get_changed_0(self)
-};
-RenderBlendResult.prototype["set_changed"] = RenderBlendResult.prototype.set_changed = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+RenderBlendResult.prototype.set_changed = RenderBlendResult.prototype.set_changed = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_RenderBlendResult_set_changed_1(self, arg0)
-};
-Object.defineProperty(RenderBlendResult.prototype, "changed", {
+}
+Object.defineProperty(RenderBlendResult.prototype, 'changed', {
get: RenderBlendResult.prototype.get_changed,
set: RenderBlendResult.prototype.set_changed
-});
-RenderBlendResult.prototype["get_blend_time"] = RenderBlendResult.prototype.get_blend_time = function () {
- var self = this.ptr;
+})
+RenderBlendResult.prototype.get_blend_time = RenderBlendResult.prototype.get_blend_time = function () {
+ const self = this.ptr
return _emscripten_bind_RenderBlendResult_get_blend_time_0(self)
-};
-RenderBlendResult.prototype["set_blend_time"] = RenderBlendResult.prototype.set_blend_time = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+RenderBlendResult.prototype.set_blend_time = RenderBlendResult.prototype.set_blend_time = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_RenderBlendResult_set_blend_time_1(self, arg0)
-};
-Object.defineProperty(RenderBlendResult.prototype, "blend_time", {
+}
+Object.defineProperty(RenderBlendResult.prototype, 'blend_time', {
get: RenderBlendResult.prototype.get_blend_time,
set: RenderBlendResult.prototype.set_blend_time
-});
-RenderBlendResult.prototype["get_part"] = RenderBlendResult.prototype.get_part = function () {
- var self = this.ptr;
- return wrapPointer(_emscripten_bind_RenderBlendResult_get_part_0(self), RenderBlendPart)
-};
-RenderBlendResult.prototype["set_part"] = RenderBlendResult.prototype.set_part = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+})
+RenderBlendResult.prototype.get_part = RenderBlendResult.prototype.get_part = function () {
+ const self = this.ptr
+ return wrapPointer(
+ _emscripten_bind_RenderBlendResult_get_part_0(self),
+ RenderBlendPart
+ )
+}
+RenderBlendResult.prototype.set_part = RenderBlendResult.prototype.set_part = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_RenderBlendResult_set_part_1(self, arg0)
-};
-Object.defineProperty(RenderBlendResult.prototype, "part", {
+}
+Object.defineProperty(RenderBlendResult.prototype, 'part', {
get: RenderBlendResult.prototype.get_part,
set: RenderBlendResult.prototype.set_part
-});
+})
-function SubtitleOctopus() {
- this.ptr = _emscripten_bind_SubtitleOctopus_SubtitleOctopus_0();
+function SubtitleOctopus () {
+ this.ptr = _emscripten_bind_SubtitleOctopus_SubtitleOctopus_0()
getCache(SubtitleOctopus)[this.ptr] = this
}
-SubtitleOctopus.prototype = Object.create(WrapperObject.prototype);
-SubtitleOctopus.prototype.constructor = SubtitleOctopus;
-SubtitleOctopus.prototype.__class__ = SubtitleOctopus;
-SubtitleOctopus.__cache__ = {};
-Module["SubtitleOctopus"] = SubtitleOctopus;
-SubtitleOctopus.prototype["setLogLevel"] = SubtitleOctopus.prototype.setLogLevel = function (level) {
- var self = this.ptr;
- if (level && typeof level === "object") level = level.ptr;
+SubtitleOctopus.prototype = Object.create(WrapperObject.prototype)
+SubtitleOctopus.prototype.constructor = SubtitleOctopus
+SubtitleOctopus.prototype.__class__ = SubtitleOctopus
+SubtitleOctopus.__cache__ = {}
+Module.SubtitleOctopus = SubtitleOctopus
+SubtitleOctopus.prototype.setLogLevel = SubtitleOctopus.prototype.setLogLevel = function (
+ level
+) {
+ const self = this.ptr
+ if (level && typeof level === 'object') level = level.ptr
_emscripten_bind_SubtitleOctopus_setLogLevel_1(self, level)
-};
-SubtitleOctopus.prototype["setDropAnimations"] = SubtitleOctopus.prototype.setDropAnimations = function (value) {
- var self = this.ptr;
- if (value && typeof value === "object") value = value.ptr;
+}
+SubtitleOctopus.prototype.setDropAnimations = SubtitleOctopus.prototype.setDropAnimations = function (
+ value
+) {
+ const self = this.ptr
+ if (value && typeof value === 'object') value = value.ptr
_emscripten_bind_SubtitleOctopus_setDropAnimations_1(self, value)
-};
-SubtitleOctopus.prototype["getDropAnimations"] = SubtitleOctopus.prototype.getDropAnimations = function () {
- var self = this.ptr;
+}
+SubtitleOctopus.prototype.getDropAnimations = SubtitleOctopus.prototype.getDropAnimations = function () {
+ const self = this.ptr
return _emscripten_bind_SubtitleOctopus_getDropAnimations_0(self)
-};
-SubtitleOctopus.prototype["initLibrary"] = SubtitleOctopus.prototype.initLibrary = function (frame_w, frame_h) {
- var self = this.ptr;
- if (frame_w && typeof frame_w === "object") frame_w = frame_w.ptr;
- if (frame_h && typeof frame_h === "object") frame_h = frame_h.ptr;
+}
+SubtitleOctopus.prototype.initLibrary = SubtitleOctopus.prototype.initLibrary = function (
+ frame_w,
+ frame_h
+) {
+ const self = this.ptr
+ if (frame_w && typeof frame_w === 'object') frame_w = frame_w.ptr
+ if (frame_h && typeof frame_h === 'object') frame_h = frame_h.ptr
_emscripten_bind_SubtitleOctopus_initLibrary_2(self, frame_w, frame_h)
-};
-SubtitleOctopus.prototype["createTrack"] = SubtitleOctopus.prototype.createTrack = function (subfile) {
- var self = this.ptr;
- ensureCache.prepare();
- if (subfile && typeof subfile === "object") subfile = subfile.ptr;
- else subfile = ensureString(subfile);
+}
+SubtitleOctopus.prototype.createTrack = SubtitleOctopus.prototype.createTrack = function (
+ subfile
+) {
+ const self = this.ptr
+ ensureCache.prepare()
+ if (subfile && typeof subfile === 'object') subfile = subfile.ptr
+ else subfile = ensureString(subfile)
_emscripten_bind_SubtitleOctopus_createTrack_1(self, subfile)
-};
-SubtitleOctopus.prototype["createTrackMem"] = SubtitleOctopus.prototype.createTrackMem = function (buf, bufsize) {
- var self = this.ptr;
- ensureCache.prepare();
- if (buf && typeof buf === "object") buf = buf.ptr;
- else buf = ensureString(buf);
- if (bufsize && typeof bufsize === "object") bufsize = bufsize.ptr;
+}
+SubtitleOctopus.prototype.createTrackMem = SubtitleOctopus.prototype.createTrackMem = function (
+ buf,
+ bufsize
+) {
+ const self = this.ptr
+ ensureCache.prepare()
+ if (buf && typeof buf === 'object') buf = buf.ptr
+ else buf = ensureString(buf)
+ if (bufsize && typeof bufsize === 'object') bufsize = bufsize.ptr
_emscripten_bind_SubtitleOctopus_createTrackMem_2(self, buf, bufsize)
-};
-SubtitleOctopus.prototype["removeTrack"] = SubtitleOctopus.prototype.removeTrack = function () {
- var self = this.ptr;
+}
+SubtitleOctopus.prototype.removeTrack = SubtitleOctopus.prototype.removeTrack = function () {
+ const self = this.ptr
_emscripten_bind_SubtitleOctopus_removeTrack_0(self)
-};
-SubtitleOctopus.prototype["resizeCanvas"] = SubtitleOctopus.prototype.resizeCanvas = function (frame_w, frame_h) {
- var self = this.ptr;
- if (frame_w && typeof frame_w === "object") frame_w = frame_w.ptr;
- if (frame_h && typeof frame_h === "object") frame_h = frame_h.ptr;
+}
+SubtitleOctopus.prototype.resizeCanvas = SubtitleOctopus.prototype.resizeCanvas = function (
+ frame_w,
+ frame_h
+) {
+ const self = this.ptr
+ if (frame_w && typeof frame_w === 'object') frame_w = frame_w.ptr
+ if (frame_h && typeof frame_h === 'object') frame_h = frame_h.ptr
_emscripten_bind_SubtitleOctopus_resizeCanvas_2(self, frame_w, frame_h)
-};
-SubtitleOctopus.prototype["renderImage"] = SubtitleOctopus.prototype.renderImage = function (time, changed) {
- var self = this.ptr;
- if (time && typeof time === "object") time = time.ptr;
- if (changed && typeof changed === "object") changed = changed.ptr;
- return wrapPointer(_emscripten_bind_SubtitleOctopus_renderImage_2(self, time, changed), ASS_Image)
-};
-SubtitleOctopus.prototype["quitLibrary"] = SubtitleOctopus.prototype.quitLibrary = function () {
- var self = this.ptr;
+}
+SubtitleOctopus.prototype.renderImage = SubtitleOctopus.prototype.renderImage = function (
+ time,
+ changed
+) {
+ const self = this.ptr
+ if (time && typeof time === 'object') time = time.ptr
+ if (changed && typeof changed === 'object') changed = changed.ptr
+ return wrapPointer(
+ _emscripten_bind_SubtitleOctopus_renderImage_2(self, time, changed),
+ ASS_Image
+ )
+}
+SubtitleOctopus.prototype.quitLibrary = SubtitleOctopus.prototype.quitLibrary = function () {
+ const self = this.ptr
_emscripten_bind_SubtitleOctopus_quitLibrary_0(self)
-};
-SubtitleOctopus.prototype["reloadLibrary"] = SubtitleOctopus.prototype.reloadLibrary = function () {
- var self = this.ptr;
+}
+SubtitleOctopus.prototype.reloadLibrary = SubtitleOctopus.prototype.reloadLibrary = function () {
+ const self = this.ptr
_emscripten_bind_SubtitleOctopus_reloadLibrary_0(self)
-};
-SubtitleOctopus.prototype["reloadFonts"] = SubtitleOctopus.prototype.reloadFonts = function () {
- var self = this.ptr;
+}
+SubtitleOctopus.prototype.reloadFonts = SubtitleOctopus.prototype.reloadFonts = function () {
+ const self = this.ptr
_emscripten_bind_SubtitleOctopus_reloadFonts_0(self)
-};
-SubtitleOctopus.prototype["setMargin"] = SubtitleOctopus.prototype.setMargin = function (top, bottom, left, right) {
- var self = this.ptr;
- if (top && typeof top === "object") top = top.ptr;
- if (bottom && typeof bottom === "object") bottom = bottom.ptr;
- if (left && typeof left === "object") left = left.ptr;
- if (right && typeof right === "object") right = right.ptr;
+}
+SubtitleOctopus.prototype.setMargin = SubtitleOctopus.prototype.setMargin = function (
+ top,
+ bottom,
+ left,
+ right
+) {
+ const self = this.ptr
+ if (top && typeof top === 'object') top = top.ptr
+ if (bottom && typeof bottom === 'object') bottom = bottom.ptr
+ if (left && typeof left === 'object') left = left.ptr
+ if (right && typeof right === 'object') right = right.ptr
_emscripten_bind_SubtitleOctopus_setMargin_4(self, top, bottom, left, right)
-};
-SubtitleOctopus.prototype["getEventCount"] = SubtitleOctopus.prototype.getEventCount = function () {
- var self = this.ptr;
+}
+SubtitleOctopus.prototype.getEventCount = SubtitleOctopus.prototype.getEventCount = function () {
+ const self = this.ptr
return _emscripten_bind_SubtitleOctopus_getEventCount_0(self)
-};
-SubtitleOctopus.prototype["allocEvent"] = SubtitleOctopus.prototype.allocEvent = function () {
- var self = this.ptr;
+}
+SubtitleOctopus.prototype.allocEvent = SubtitleOctopus.prototype.allocEvent = function () {
+ const self = this.ptr
return _emscripten_bind_SubtitleOctopus_allocEvent_0(self)
-};
-SubtitleOctopus.prototype["allocStyle"] = SubtitleOctopus.prototype.allocStyle = function () {
- var self = this.ptr;
+}
+SubtitleOctopus.prototype.allocStyle = SubtitleOctopus.prototype.allocStyle = function () {
+ const self = this.ptr
return _emscripten_bind_SubtitleOctopus_allocStyle_0(self)
-};
-SubtitleOctopus.prototype["removeEvent"] = SubtitleOctopus.prototype.removeEvent = function (eid) {
- var self = this.ptr;
- if (eid && typeof eid === "object") eid = eid.ptr;
+}
+SubtitleOctopus.prototype.removeEvent = SubtitleOctopus.prototype.removeEvent = function (
+ eid
+) {
+ const self = this.ptr
+ if (eid && typeof eid === 'object') eid = eid.ptr
_emscripten_bind_SubtitleOctopus_removeEvent_1(self, eid)
-};
-SubtitleOctopus.prototype["getStyleCount"] = SubtitleOctopus.prototype.getStyleCount = function () {
- var self = this.ptr;
+}
+SubtitleOctopus.prototype.getStyleCount = SubtitleOctopus.prototype.getStyleCount = function () {
+ const self = this.ptr
return _emscripten_bind_SubtitleOctopus_getStyleCount_0(self)
-};
-SubtitleOctopus.prototype["getStyleByName"] = SubtitleOctopus.prototype.getStyleByName = function (name) {
- var self = this.ptr;
- ensureCache.prepare();
- if (name && typeof name === "object") name = name.ptr;
- else name = ensureString(name);
+}
+SubtitleOctopus.prototype.getStyleByName = SubtitleOctopus.prototype.getStyleByName = function (
+ name
+) {
+ const self = this.ptr
+ ensureCache.prepare()
+ if (name && typeof name === 'object') name = name.ptr
+ else name = ensureString(name)
return _emscripten_bind_SubtitleOctopus_getStyleByName_1(self, name)
-};
-SubtitleOctopus.prototype["removeStyle"] = SubtitleOctopus.prototype.removeStyle = function (eid) {
- var self = this.ptr;
- if (eid && typeof eid === "object") eid = eid.ptr;
+}
+SubtitleOctopus.prototype.removeStyle = SubtitleOctopus.prototype.removeStyle = function (
+ eid
+) {
+ const self = this.ptr
+ if (eid && typeof eid === 'object') eid = eid.ptr
_emscripten_bind_SubtitleOctopus_removeStyle_1(self, eid)
-};
-SubtitleOctopus.prototype["removeAllEvents"] = SubtitleOctopus.prototype.removeAllEvents = function () {
- var self = this.ptr;
+}
+SubtitleOctopus.prototype.removeAllEvents = SubtitleOctopus.prototype.removeAllEvents = function () {
+ const self = this.ptr
_emscripten_bind_SubtitleOctopus_removeAllEvents_0(self)
-};
-SubtitleOctopus.prototype["setMemoryLimits"] = SubtitleOctopus.prototype.setMemoryLimits = function (glyph_limit, bitmap_cache_limit) {
- var self = this.ptr;
- if (glyph_limit && typeof glyph_limit === "object") glyph_limit = glyph_limit.ptr;
- if (bitmap_cache_limit && typeof bitmap_cache_limit === "object") bitmap_cache_limit = bitmap_cache_limit.ptr;
- _emscripten_bind_SubtitleOctopus_setMemoryLimits_2(self, glyph_limit, bitmap_cache_limit)
-};
-SubtitleOctopus.prototype["renderBlend"] = SubtitleOctopus.prototype.renderBlend = function (tm, force) {
- var self = this.ptr;
- if (tm && typeof tm === "object") tm = tm.ptr;
- if (force && typeof force === "object") force = force.ptr;
- return wrapPointer(_emscripten_bind_SubtitleOctopus_renderBlend_2(self, tm, force), RenderBlendResult)
-};
-SubtitleOctopus.prototype["findNextEventStart"] = SubtitleOctopus.prototype.findNextEventStart = function (tm) {
- var self = this.ptr;
- if (tm && typeof tm === "object") tm = tm.ptr;
+}
+SubtitleOctopus.prototype.setMemoryLimits = SubtitleOctopus.prototype.setMemoryLimits = function (
+ glyph_limit,
+ bitmap_cache_limit
+) {
+ const self = this.ptr
+ if (glyph_limit && typeof glyph_limit === 'object') {
+ glyph_limit = glyph_limit.ptr
+ }
+ if (bitmap_cache_limit && typeof bitmap_cache_limit === 'object') {
+ bitmap_cache_limit = bitmap_cache_limit.ptr
+ }
+ _emscripten_bind_SubtitleOctopus_setMemoryLimits_2(
+ self,
+ glyph_limit,
+ bitmap_cache_limit
+ )
+}
+SubtitleOctopus.prototype.renderBlend = SubtitleOctopus.prototype.renderBlend = function (
+ tm,
+ force
+) {
+ const self = this.ptr
+ if (tm && typeof tm === 'object') tm = tm.ptr
+ if (force && typeof force === 'object') force = force.ptr
+ return wrapPointer(
+ _emscripten_bind_SubtitleOctopus_renderBlend_2(self, tm, force),
+ RenderBlendResult
+ )
+}
+SubtitleOctopus.prototype.findNextEventStart = SubtitleOctopus.prototype.findNextEventStart = function (
+ tm
+) {
+ const self = this.ptr
+ if (tm && typeof tm === 'object') tm = tm.ptr
return _emscripten_bind_SubtitleOctopus_findNextEventStart_1(self, tm)
-};
-SubtitleOctopus.prototype["findEventStopTimes"] = SubtitleOctopus.prototype.findEventStopTimes = function (tm) {
- var self = this.ptr;
- if (tm && typeof tm === "object") tm = tm.ptr;
- return wrapPointer(_emscripten_bind_SubtitleOctopus_findEventStopTimes_1(self, tm), EventStopTimesResult)
-};
-SubtitleOctopus.prototype["rescanAllAnimations"] = SubtitleOctopus.prototype.rescanAllAnimations = function () {
- var self = this.ptr;
+}
+SubtitleOctopus.prototype.findEventStopTimes = SubtitleOctopus.prototype.findEventStopTimes = function (
+ tm
+) {
+ const self = this.ptr
+ if (tm && typeof tm === 'object') tm = tm.ptr
+ return wrapPointer(
+ _emscripten_bind_SubtitleOctopus_findEventStopTimes_1(self, tm),
+ EventStopTimesResult
+ )
+}
+SubtitleOctopus.prototype.rescanAllAnimations = SubtitleOctopus.prototype.rescanAllAnimations = function () {
+ const self = this.ptr
_emscripten_bind_SubtitleOctopus_rescanAllAnimations_0(self)
-};
-SubtitleOctopus.prototype["get_track"] = SubtitleOctopus.prototype.get_track = function () {
- var self = this.ptr;
- return wrapPointer(_emscripten_bind_SubtitleOctopus_get_track_0(self), ASS_Track)
-};
-SubtitleOctopus.prototype["set_track"] = SubtitleOctopus.prototype.set_track = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+SubtitleOctopus.prototype.get_track = SubtitleOctopus.prototype.get_track = function () {
+ const self = this.ptr
+ return wrapPointer(
+ _emscripten_bind_SubtitleOctopus_get_track_0(self),
+ ASS_Track
+ )
+}
+SubtitleOctopus.prototype.set_track = SubtitleOctopus.prototype.set_track = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_SubtitleOctopus_set_track_1(self, arg0)
-};
-Object.defineProperty(SubtitleOctopus.prototype, "track", {
+}
+Object.defineProperty(SubtitleOctopus.prototype, 'track', {
get: SubtitleOctopus.prototype.get_track,
set: SubtitleOctopus.prototype.set_track
-});
-SubtitleOctopus.prototype["get_ass_renderer"] = SubtitleOctopus.prototype.get_ass_renderer = function () {
- var self = this.ptr;
- return wrapPointer(_emscripten_bind_SubtitleOctopus_get_ass_renderer_0(self), ASS_Renderer)
-};
-SubtitleOctopus.prototype["set_ass_renderer"] = SubtitleOctopus.prototype.set_ass_renderer = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+})
+SubtitleOctopus.prototype.get_ass_renderer = SubtitleOctopus.prototype.get_ass_renderer = function () {
+ const self = this.ptr
+ return wrapPointer(
+ _emscripten_bind_SubtitleOctopus_get_ass_renderer_0(self),
+ ASS_Renderer
+ )
+}
+SubtitleOctopus.prototype.set_ass_renderer = SubtitleOctopus.prototype.set_ass_renderer = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_SubtitleOctopus_set_ass_renderer_1(self, arg0)
-};
-Object.defineProperty(SubtitleOctopus.prototype, "ass_renderer", {
+}
+Object.defineProperty(SubtitleOctopus.prototype, 'ass_renderer', {
get: SubtitleOctopus.prototype.get_ass_renderer,
set: SubtitleOctopus.prototype.set_ass_renderer
-});
-SubtitleOctopus.prototype["get_ass_library"] = SubtitleOctopus.prototype.get_ass_library = function () {
- var self = this.ptr;
- return wrapPointer(_emscripten_bind_SubtitleOctopus_get_ass_library_0(self), ASS_Library)
-};
-SubtitleOctopus.prototype["set_ass_library"] = SubtitleOctopus.prototype.set_ass_library = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+})
+SubtitleOctopus.prototype.get_ass_library = SubtitleOctopus.prototype.get_ass_library = function () {
+ const self = this.ptr
+ return wrapPointer(
+ _emscripten_bind_SubtitleOctopus_get_ass_library_0(self),
+ ASS_Library
+ )
+}
+SubtitleOctopus.prototype.set_ass_library = SubtitleOctopus.prototype.set_ass_library = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_SubtitleOctopus_set_ass_library_1(self, arg0)
-};
-Object.defineProperty(SubtitleOctopus.prototype, "ass_library", {
+}
+Object.defineProperty(SubtitleOctopus.prototype, 'ass_library', {
get: SubtitleOctopus.prototype.get_ass_library,
set: SubtitleOctopus.prototype.set_ass_library
-});
-SubtitleOctopus.prototype["__destroy__"] = SubtitleOctopus.prototype.__destroy__ = function () {
- var self = this.ptr;
+})
+SubtitleOctopus.prototype.__destroy__ = SubtitleOctopus.prototype.__destroy__ = function () {
+ const self = this.ptr
_emscripten_bind_SubtitleOctopus___destroy___0(self)
-};
-
-function ASS_Track() {
- throw "cannot construct a ASS_Track, no constructor in IDL"
}
-ASS_Track.prototype = Object.create(WrapperObject.prototype);
-ASS_Track.prototype.constructor = ASS_Track;
-ASS_Track.prototype.__class__ = ASS_Track;
-ASS_Track.__cache__ = {};
-Module["ASS_Track"] = ASS_Track;
-ASS_Track.prototype["get_n_styles"] = ASS_Track.prototype.get_n_styles = function () {
- var self = this.ptr;
+
+function ASS_Track () {
+ throw 'cannot construct a ASS_Track, no constructor in IDL'
+}
+ASS_Track.prototype = Object.create(WrapperObject.prototype)
+ASS_Track.prototype.constructor = ASS_Track
+ASS_Track.prototype.__class__ = ASS_Track
+ASS_Track.__cache__ = {}
+Module.ASS_Track = ASS_Track
+ASS_Track.prototype.get_n_styles = ASS_Track.prototype.get_n_styles = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Track_get_n_styles_0(self)
-};
-ASS_Track.prototype["set_n_styles"] = ASS_Track.prototype.set_n_styles = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Track.prototype.set_n_styles = ASS_Track.prototype.set_n_styles = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Track_set_n_styles_1(self, arg0)
-};
-Object.defineProperty(ASS_Track.prototype, "n_styles", {
+}
+Object.defineProperty(ASS_Track.prototype, 'n_styles', {
get: ASS_Track.prototype.get_n_styles,
set: ASS_Track.prototype.set_n_styles
-});
-ASS_Track.prototype["get_max_styles"] = ASS_Track.prototype.get_max_styles = function () {
- var self = this.ptr;
+})
+ASS_Track.prototype.get_max_styles = ASS_Track.prototype.get_max_styles = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Track_get_max_styles_0(self)
-};
-ASS_Track.prototype["set_max_styles"] = ASS_Track.prototype.set_max_styles = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Track.prototype.set_max_styles = ASS_Track.prototype.set_max_styles = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Track_set_max_styles_1(self, arg0)
-};
-Object.defineProperty(ASS_Track.prototype, "max_styles", {
+}
+Object.defineProperty(ASS_Track.prototype, 'max_styles', {
get: ASS_Track.prototype.get_max_styles,
set: ASS_Track.prototype.set_max_styles
-});
-ASS_Track.prototype["get_n_events"] = ASS_Track.prototype.get_n_events = function () {
- var self = this.ptr;
+})
+ASS_Track.prototype.get_n_events = ASS_Track.prototype.get_n_events = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Track_get_n_events_0(self)
-};
-ASS_Track.prototype["set_n_events"] = ASS_Track.prototype.set_n_events = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Track.prototype.set_n_events = ASS_Track.prototype.set_n_events = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Track_set_n_events_1(self, arg0)
-};
-Object.defineProperty(ASS_Track.prototype, "n_events", {
+}
+Object.defineProperty(ASS_Track.prototype, 'n_events', {
get: ASS_Track.prototype.get_n_events,
set: ASS_Track.prototype.set_n_events
-});
-ASS_Track.prototype["get_max_events"] = ASS_Track.prototype.get_max_events = function () {
- var self = this.ptr;
+})
+ASS_Track.prototype.get_max_events = ASS_Track.prototype.get_max_events = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Track_get_max_events_0(self)
-};
-ASS_Track.prototype["set_max_events"] = ASS_Track.prototype.set_max_events = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Track.prototype.set_max_events = ASS_Track.prototype.set_max_events = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Track_set_max_events_1(self, arg0)
-};
-Object.defineProperty(ASS_Track.prototype, "max_events", {
+}
+Object.defineProperty(ASS_Track.prototype, 'max_events', {
get: ASS_Track.prototype.get_max_events,
set: ASS_Track.prototype.set_max_events
-});
-ASS_Track.prototype["get_styles"] = ASS_Track.prototype.get_styles = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
- return wrapPointer(_emscripten_bind_ASS_Track_get_styles_1(self, arg0), ASS_Style)
-};
-ASS_Track.prototype["set_styles"] = ASS_Track.prototype.set_styles = function (arg0, arg1) {
- var self = this.ptr;
- ensureCache.prepare();
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
- if (arg1 && typeof arg1 === "object") arg1 = arg1.ptr;
+})
+ASS_Track.prototype.get_styles = ASS_Track.prototype.get_styles = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
+ return wrapPointer(
+ _emscripten_bind_ASS_Track_get_styles_1(self, arg0),
+ ASS_Style
+ )
+}
+ASS_Track.prototype.set_styles = ASS_Track.prototype.set_styles = function (
+ arg0,
+ arg1
+) {
+ const self = this.ptr
+ ensureCache.prepare()
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
+ if (arg1 && typeof arg1 === 'object') arg1 = arg1.ptr
_emscripten_bind_ASS_Track_set_styles_2(self, arg0, arg1)
-};
-Object.defineProperty(ASS_Track.prototype, "styles", {
+}
+Object.defineProperty(ASS_Track.prototype, 'styles', {
get: ASS_Track.prototype.get_styles,
set: ASS_Track.prototype.set_styles
-});
-ASS_Track.prototype["get_events"] = ASS_Track.prototype.get_events = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
- return wrapPointer(_emscripten_bind_ASS_Track_get_events_1(self, arg0), ASS_Event)
-};
-ASS_Track.prototype["set_events"] = ASS_Track.prototype.set_events = function (arg0, arg1) {
- var self = this.ptr;
- ensureCache.prepare();
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
- if (arg1 && typeof arg1 === "object") arg1 = arg1.ptr;
+})
+ASS_Track.prototype.get_events = ASS_Track.prototype.get_events = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
+ return wrapPointer(
+ _emscripten_bind_ASS_Track_get_events_1(self, arg0),
+ ASS_Event
+ )
+}
+ASS_Track.prototype.set_events = ASS_Track.prototype.set_events = function (
+ arg0,
+ arg1
+) {
+ const self = this.ptr
+ ensureCache.prepare()
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
+ if (arg1 && typeof arg1 === 'object') arg1 = arg1.ptr
_emscripten_bind_ASS_Track_set_events_2(self, arg0, arg1)
-};
-Object.defineProperty(ASS_Track.prototype, "events", {
+}
+Object.defineProperty(ASS_Track.prototype, 'events', {
get: ASS_Track.prototype.get_events,
set: ASS_Track.prototype.set_events
-});
-ASS_Track.prototype["get_style_format"] = ASS_Track.prototype.get_style_format = function () {
- var self = this.ptr;
+})
+ASS_Track.prototype.get_style_format = ASS_Track.prototype.get_style_format = function () {
+ const self = this.ptr
return UTF8ToString(_emscripten_bind_ASS_Track_get_style_format_0(self))
-};
-ASS_Track.prototype["set_style_format"] = ASS_Track.prototype.set_style_format = function (arg0) {
- var self = this.ptr;
- ensureCache.prepare();
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
- else arg0 = ensureString(arg0);
+}
+ASS_Track.prototype.set_style_format = ASS_Track.prototype.set_style_format = function (
+ arg0
+) {
+ const self = this.ptr
+ ensureCache.prepare()
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
+ else arg0 = ensureString(arg0)
_emscripten_bind_ASS_Track_set_style_format_1(self, arg0)
-};
-Object.defineProperty(ASS_Track.prototype, "style_format", {
+}
+Object.defineProperty(ASS_Track.prototype, 'style_format', {
get: ASS_Track.prototype.get_style_format,
set: ASS_Track.prototype.set_style_format
-});
-ASS_Track.prototype["get_event_format"] = ASS_Track.prototype.get_event_format = function () {
- var self = this.ptr;
+})
+ASS_Track.prototype.get_event_format = ASS_Track.prototype.get_event_format = function () {
+ const self = this.ptr
return UTF8ToString(_emscripten_bind_ASS_Track_get_event_format_0(self))
-};
-ASS_Track.prototype["set_event_format"] = ASS_Track.prototype.set_event_format = function (arg0) {
- var self = this.ptr;
- ensureCache.prepare();
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
- else arg0 = ensureString(arg0);
+}
+ASS_Track.prototype.set_event_format = ASS_Track.prototype.set_event_format = function (
+ arg0
+) {
+ const self = this.ptr
+ ensureCache.prepare()
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
+ else arg0 = ensureString(arg0)
_emscripten_bind_ASS_Track_set_event_format_1(self, arg0)
-};
-Object.defineProperty(ASS_Track.prototype, "event_format", {
+}
+Object.defineProperty(ASS_Track.prototype, 'event_format', {
get: ASS_Track.prototype.get_event_format,
set: ASS_Track.prototype.set_event_format
-});
-ASS_Track.prototype["get_PlayResX"] = ASS_Track.prototype.get_PlayResX = function () {
- var self = this.ptr;
+})
+ASS_Track.prototype.get_PlayResX = ASS_Track.prototype.get_PlayResX = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Track_get_PlayResX_0(self)
-};
-ASS_Track.prototype["set_PlayResX"] = ASS_Track.prototype.set_PlayResX = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Track.prototype.set_PlayResX = ASS_Track.prototype.set_PlayResX = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Track_set_PlayResX_1(self, arg0)
-};
-Object.defineProperty(ASS_Track.prototype, "PlayResX", {
+}
+Object.defineProperty(ASS_Track.prototype, 'PlayResX', {
get: ASS_Track.prototype.get_PlayResX,
set: ASS_Track.prototype.set_PlayResX
-});
-ASS_Track.prototype["get_PlayResY"] = ASS_Track.prototype.get_PlayResY = function () {
- var self = this.ptr;
+})
+ASS_Track.prototype.get_PlayResY = ASS_Track.prototype.get_PlayResY = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Track_get_PlayResY_0(self)
-};
-ASS_Track.prototype["set_PlayResY"] = ASS_Track.prototype.set_PlayResY = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Track.prototype.set_PlayResY = ASS_Track.prototype.set_PlayResY = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Track_set_PlayResY_1(self, arg0)
-};
-Object.defineProperty(ASS_Track.prototype, "PlayResY", {
+}
+Object.defineProperty(ASS_Track.prototype, 'PlayResY', {
get: ASS_Track.prototype.get_PlayResY,
set: ASS_Track.prototype.set_PlayResY
-});
-ASS_Track.prototype["get_Timer"] = ASS_Track.prototype.get_Timer = function () {
- var self = this.ptr;
+})
+ASS_Track.prototype.get_Timer = ASS_Track.prototype.get_Timer = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Track_get_Timer_0(self)
-};
-ASS_Track.prototype["set_Timer"] = ASS_Track.prototype.set_Timer = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Track.prototype.set_Timer = ASS_Track.prototype.set_Timer = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Track_set_Timer_1(self, arg0)
-};
-Object.defineProperty(ASS_Track.prototype, "Timer", {
+}
+Object.defineProperty(ASS_Track.prototype, 'Timer', {
get: ASS_Track.prototype.get_Timer,
set: ASS_Track.prototype.set_Timer
-});
-ASS_Track.prototype["get_WrapStyle"] = ASS_Track.prototype.get_WrapStyle = function () {
- var self = this.ptr;
+})
+ASS_Track.prototype.get_WrapStyle = ASS_Track.prototype.get_WrapStyle = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Track_get_WrapStyle_0(self)
-};
-ASS_Track.prototype["set_WrapStyle"] = ASS_Track.prototype.set_WrapStyle = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Track.prototype.set_WrapStyle = ASS_Track.prototype.set_WrapStyle = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Track_set_WrapStyle_1(self, arg0)
-};
-Object.defineProperty(ASS_Track.prototype, "WrapStyle", {
+}
+Object.defineProperty(ASS_Track.prototype, 'WrapStyle', {
get: ASS_Track.prototype.get_WrapStyle,
set: ASS_Track.prototype.set_WrapStyle
-});
-ASS_Track.prototype["get_ScaledBorderAndShadow"] = ASS_Track.prototype.get_ScaledBorderAndShadow = function () {
- var self = this.ptr;
+})
+ASS_Track.prototype.get_ScaledBorderAndShadow = ASS_Track.prototype.get_ScaledBorderAndShadow = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Track_get_ScaledBorderAndShadow_0(self)
-};
-ASS_Track.prototype["set_ScaledBorderAndShadow"] = ASS_Track.prototype.set_ScaledBorderAndShadow = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Track.prototype.set_ScaledBorderAndShadow = ASS_Track.prototype.set_ScaledBorderAndShadow = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Track_set_ScaledBorderAndShadow_1(self, arg0)
-};
-Object.defineProperty(ASS_Track.prototype, "ScaledBorderAndShadow", {
+}
+Object.defineProperty(ASS_Track.prototype, 'ScaledBorderAndShadow', {
get: ASS_Track.prototype.get_ScaledBorderAndShadow,
set: ASS_Track.prototype.set_ScaledBorderAndShadow
-});
-ASS_Track.prototype["get_Kerning"] = ASS_Track.prototype.get_Kerning = function () {
- var self = this.ptr;
+})
+ASS_Track.prototype.get_Kerning = ASS_Track.prototype.get_Kerning = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Track_get_Kerning_0(self)
-};
-ASS_Track.prototype["set_Kerning"] = ASS_Track.prototype.set_Kerning = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Track.prototype.set_Kerning = ASS_Track.prototype.set_Kerning = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Track_set_Kerning_1(self, arg0)
-};
-Object.defineProperty(ASS_Track.prototype, "Kerning", {
+}
+Object.defineProperty(ASS_Track.prototype, 'Kerning', {
get: ASS_Track.prototype.get_Kerning,
set: ASS_Track.prototype.set_Kerning
-});
-ASS_Track.prototype["get_Language"] = ASS_Track.prototype.get_Language = function () {
- var self = this.ptr;
+})
+ASS_Track.prototype.get_Language = ASS_Track.prototype.get_Language = function () {
+ const self = this.ptr
return UTF8ToString(_emscripten_bind_ASS_Track_get_Language_0(self))
-};
-ASS_Track.prototype["set_Language"] = ASS_Track.prototype.set_Language = function (arg0) {
- var self = this.ptr;
- ensureCache.prepare();
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
- else arg0 = ensureString(arg0);
+}
+ASS_Track.prototype.set_Language = ASS_Track.prototype.set_Language = function (
+ arg0
+) {
+ const self = this.ptr
+ ensureCache.prepare()
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
+ else arg0 = ensureString(arg0)
_emscripten_bind_ASS_Track_set_Language_1(self, arg0)
-};
-Object.defineProperty(ASS_Track.prototype, "Language", {
+}
+Object.defineProperty(ASS_Track.prototype, 'Language', {
get: ASS_Track.prototype.get_Language,
set: ASS_Track.prototype.set_Language
-});
-ASS_Track.prototype["get_default_style"] = ASS_Track.prototype.get_default_style = function () {
- var self = this.ptr;
+})
+ASS_Track.prototype.get_default_style = ASS_Track.prototype.get_default_style = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Track_get_default_style_0(self)
-};
-ASS_Track.prototype["set_default_style"] = ASS_Track.prototype.set_default_style = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Track.prototype.set_default_style = ASS_Track.prototype.set_default_style = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Track_set_default_style_1(self, arg0)
-};
-Object.defineProperty(ASS_Track.prototype, "default_style", {
+}
+Object.defineProperty(ASS_Track.prototype, 'default_style', {
get: ASS_Track.prototype.get_default_style,
set: ASS_Track.prototype.set_default_style
-});
-ASS_Track.prototype["get_name"] = ASS_Track.prototype.get_name = function () {
- var self = this.ptr;
+})
+ASS_Track.prototype.get_name = ASS_Track.prototype.get_name = function () {
+ const self = this.ptr
return UTF8ToString(_emscripten_bind_ASS_Track_get_name_0(self))
-};
-ASS_Track.prototype["set_name"] = ASS_Track.prototype.set_name = function (arg0) {
- var self = this.ptr;
- ensureCache.prepare();
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
- else arg0 = ensureString(arg0);
+}
+ASS_Track.prototype.set_name = ASS_Track.prototype.set_name = function (arg0) {
+ const self = this.ptr
+ ensureCache.prepare()
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
+ else arg0 = ensureString(arg0)
_emscripten_bind_ASS_Track_set_name_1(self, arg0)
-};
-Object.defineProperty(ASS_Track.prototype, "name", {
+}
+Object.defineProperty(ASS_Track.prototype, 'name', {
get: ASS_Track.prototype.get_name,
set: ASS_Track.prototype.set_name
-});
+})
-function ASS_RenderPriv() {
- throw "cannot construct a ASS_RenderPriv, no constructor in IDL"
+function ASS_RenderPriv () {
+ throw 'cannot construct a ASS_RenderPriv, no constructor in IDL'
}
-ASS_RenderPriv.prototype = Object.create(WrapperObject.prototype);
-ASS_RenderPriv.prototype.constructor = ASS_RenderPriv;
-ASS_RenderPriv.prototype.__class__ = ASS_RenderPriv;
-ASS_RenderPriv.__cache__ = {};
-Module["ASS_RenderPriv"] = ASS_RenderPriv;
+ASS_RenderPriv.prototype = Object.create(WrapperObject.prototype)
+ASS_RenderPriv.prototype.constructor = ASS_RenderPriv
+ASS_RenderPriv.prototype.__class__ = ASS_RenderPriv
+ASS_RenderPriv.__cache__ = {}
+Module.ASS_RenderPriv = ASS_RenderPriv
-function ASS_Style() {
- throw "cannot construct a ASS_Style, no constructor in IDL"
+function ASS_Style () {
+ throw 'cannot construct a ASS_Style, no constructor in IDL'
}
-ASS_Style.prototype = Object.create(WrapperObject.prototype);
-ASS_Style.prototype.constructor = ASS_Style;
-ASS_Style.prototype.__class__ = ASS_Style;
-ASS_Style.__cache__ = {};
-Module["ASS_Style"] = ASS_Style;
-ASS_Style.prototype["get_Name"] = ASS_Style.prototype.get_Name = function () {
- var self = this.ptr;
+ASS_Style.prototype = Object.create(WrapperObject.prototype)
+ASS_Style.prototype.constructor = ASS_Style
+ASS_Style.prototype.__class__ = ASS_Style
+ASS_Style.__cache__ = {}
+Module.ASS_Style = ASS_Style
+ASS_Style.prototype.get_Name = ASS_Style.prototype.get_Name = function () {
+ const self = this.ptr
return UTF8ToString(_emscripten_bind_ASS_Style_get_Name_0(self))
-};
-ASS_Style.prototype["set_Name"] = ASS_Style.prototype.set_Name = function (arg0) {
- var self = this.ptr;
- ensureCache.prepare();
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
- else arg0 = ensureString(arg0);
+}
+ASS_Style.prototype.set_Name = ASS_Style.prototype.set_Name = function (arg0) {
+ const self = this.ptr
+ ensureCache.prepare()
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
+ else arg0 = ensureString(arg0)
_emscripten_bind_ASS_Style_set_Name_1(self, arg0)
-};
-Object.defineProperty(ASS_Style.prototype, "Name", {
+}
+Object.defineProperty(ASS_Style.prototype, 'Name', {
get: ASS_Style.prototype.get_Name,
set: ASS_Style.prototype.set_Name
-});
-ASS_Style.prototype["get_FontName"] = ASS_Style.prototype.get_FontName = function () {
- var self = this.ptr;
+})
+ASS_Style.prototype.get_FontName = ASS_Style.prototype.get_FontName = function () {
+ const self = this.ptr
return UTF8ToString(_emscripten_bind_ASS_Style_get_FontName_0(self))
-};
-ASS_Style.prototype["set_FontName"] = ASS_Style.prototype.set_FontName = function (arg0) {
- var self = this.ptr;
- ensureCache.prepare();
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
- else arg0 = ensureString(arg0);
+}
+ASS_Style.prototype.set_FontName = ASS_Style.prototype.set_FontName = function (
+ arg0
+) {
+ const self = this.ptr
+ ensureCache.prepare()
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
+ else arg0 = ensureString(arg0)
_emscripten_bind_ASS_Style_set_FontName_1(self, arg0)
-};
-Object.defineProperty(ASS_Style.prototype, "FontName", {
+}
+Object.defineProperty(ASS_Style.prototype, 'FontName', {
get: ASS_Style.prototype.get_FontName,
set: ASS_Style.prototype.set_FontName
-});
-ASS_Style.prototype["get_FontSize"] = ASS_Style.prototype.get_FontSize = function () {
- var self = this.ptr;
+})
+ASS_Style.prototype.get_FontSize = ASS_Style.prototype.get_FontSize = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Style_get_FontSize_0(self)
-};
-ASS_Style.prototype["set_FontSize"] = ASS_Style.prototype.set_FontSize = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Style.prototype.set_FontSize = ASS_Style.prototype.set_FontSize = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Style_set_FontSize_1(self, arg0)
-};
-Object.defineProperty(ASS_Style.prototype, "FontSize", {
+}
+Object.defineProperty(ASS_Style.prototype, 'FontSize', {
get: ASS_Style.prototype.get_FontSize,
set: ASS_Style.prototype.set_FontSize
-});
-ASS_Style.prototype["get_PrimaryColour"] = ASS_Style.prototype.get_PrimaryColour = function () {
- var self = this.ptr;
+})
+ASS_Style.prototype.get_PrimaryColour = ASS_Style.prototype.get_PrimaryColour = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Style_get_PrimaryColour_0(self)
-};
-ASS_Style.prototype["set_PrimaryColour"] = ASS_Style.prototype.set_PrimaryColour = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Style.prototype.set_PrimaryColour = ASS_Style.prototype.set_PrimaryColour = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Style_set_PrimaryColour_1(self, arg0)
-};
-Object.defineProperty(ASS_Style.prototype, "PrimaryColour", {
+}
+Object.defineProperty(ASS_Style.prototype, 'PrimaryColour', {
get: ASS_Style.prototype.get_PrimaryColour,
set: ASS_Style.prototype.set_PrimaryColour
-});
-ASS_Style.prototype["get_SecondaryColour"] = ASS_Style.prototype.get_SecondaryColour = function () {
- var self = this.ptr;
+})
+ASS_Style.prototype.get_SecondaryColour = ASS_Style.prototype.get_SecondaryColour = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Style_get_SecondaryColour_0(self)
-};
-ASS_Style.prototype["set_SecondaryColour"] = ASS_Style.prototype.set_SecondaryColour = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Style.prototype.set_SecondaryColour = ASS_Style.prototype.set_SecondaryColour = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Style_set_SecondaryColour_1(self, arg0)
-};
-Object.defineProperty(ASS_Style.prototype, "SecondaryColour", {
+}
+Object.defineProperty(ASS_Style.prototype, 'SecondaryColour', {
get: ASS_Style.prototype.get_SecondaryColour,
set: ASS_Style.prototype.set_SecondaryColour
-});
-ASS_Style.prototype["get_OutlineColour"] = ASS_Style.prototype.get_OutlineColour = function () {
- var self = this.ptr;
+})
+ASS_Style.prototype.get_OutlineColour = ASS_Style.prototype.get_OutlineColour = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Style_get_OutlineColour_0(self)
-};
-ASS_Style.prototype["set_OutlineColour"] = ASS_Style.prototype.set_OutlineColour = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Style.prototype.set_OutlineColour = ASS_Style.prototype.set_OutlineColour = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Style_set_OutlineColour_1(self, arg0)
-};
-Object.defineProperty(ASS_Style.prototype, "OutlineColour", {
+}
+Object.defineProperty(ASS_Style.prototype, 'OutlineColour', {
get: ASS_Style.prototype.get_OutlineColour,
set: ASS_Style.prototype.set_OutlineColour
-});
-ASS_Style.prototype["get_BackColour"] = ASS_Style.prototype.get_BackColour = function () {
- var self = this.ptr;
+})
+ASS_Style.prototype.get_BackColour = ASS_Style.prototype.get_BackColour = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Style_get_BackColour_0(self)
-};
-ASS_Style.prototype["set_BackColour"] = ASS_Style.prototype.set_BackColour = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Style.prototype.set_BackColour = ASS_Style.prototype.set_BackColour = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Style_set_BackColour_1(self, arg0)
-};
-Object.defineProperty(ASS_Style.prototype, "BackColour", {
+}
+Object.defineProperty(ASS_Style.prototype, 'BackColour', {
get: ASS_Style.prototype.get_BackColour,
set: ASS_Style.prototype.set_BackColour
-});
-ASS_Style.prototype["get_Bold"] = ASS_Style.prototype.get_Bold = function () {
- var self = this.ptr;
+})
+ASS_Style.prototype.get_Bold = ASS_Style.prototype.get_Bold = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Style_get_Bold_0(self)
-};
-ASS_Style.prototype["set_Bold"] = ASS_Style.prototype.set_Bold = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Style.prototype.set_Bold = ASS_Style.prototype.set_Bold = function (arg0) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Style_set_Bold_1(self, arg0)
-};
-Object.defineProperty(ASS_Style.prototype, "Bold", {
+}
+Object.defineProperty(ASS_Style.prototype, 'Bold', {
get: ASS_Style.prototype.get_Bold,
set: ASS_Style.prototype.set_Bold
-});
-ASS_Style.prototype["get_Italic"] = ASS_Style.prototype.get_Italic = function () {
- var self = this.ptr;
+})
+ASS_Style.prototype.get_Italic = ASS_Style.prototype.get_Italic = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Style_get_Italic_0(self)
-};
-ASS_Style.prototype["set_Italic"] = ASS_Style.prototype.set_Italic = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Style.prototype.set_Italic = ASS_Style.prototype.set_Italic = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Style_set_Italic_1(self, arg0)
-};
-Object.defineProperty(ASS_Style.prototype, "Italic", {
+}
+Object.defineProperty(ASS_Style.prototype, 'Italic', {
get: ASS_Style.prototype.get_Italic,
set: ASS_Style.prototype.set_Italic
-});
-ASS_Style.prototype["get_Underline"] = ASS_Style.prototype.get_Underline = function () {
- var self = this.ptr;
+})
+ASS_Style.prototype.get_Underline = ASS_Style.prototype.get_Underline = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Style_get_Underline_0(self)
-};
-ASS_Style.prototype["set_Underline"] = ASS_Style.prototype.set_Underline = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Style.prototype.set_Underline = ASS_Style.prototype.set_Underline = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Style_set_Underline_1(self, arg0)
-};
-Object.defineProperty(ASS_Style.prototype, "Underline", {
+}
+Object.defineProperty(ASS_Style.prototype, 'Underline', {
get: ASS_Style.prototype.get_Underline,
set: ASS_Style.prototype.set_Underline
-});
-ASS_Style.prototype["get_StrikeOut"] = ASS_Style.prototype.get_StrikeOut = function () {
- var self = this.ptr;
+})
+ASS_Style.prototype.get_StrikeOut = ASS_Style.prototype.get_StrikeOut = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Style_get_StrikeOut_0(self)
-};
-ASS_Style.prototype["set_StrikeOut"] = ASS_Style.prototype.set_StrikeOut = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Style.prototype.set_StrikeOut = ASS_Style.prototype.set_StrikeOut = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Style_set_StrikeOut_1(self, arg0)
-};
-Object.defineProperty(ASS_Style.prototype, "StrikeOut", {
+}
+Object.defineProperty(ASS_Style.prototype, 'StrikeOut', {
get: ASS_Style.prototype.get_StrikeOut,
set: ASS_Style.prototype.set_StrikeOut
-});
-ASS_Style.prototype["get_ScaleX"] = ASS_Style.prototype.get_ScaleX = function () {
- var self = this.ptr;
+})
+ASS_Style.prototype.get_ScaleX = ASS_Style.prototype.get_ScaleX = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Style_get_ScaleX_0(self)
-};
-ASS_Style.prototype["set_ScaleX"] = ASS_Style.prototype.set_ScaleX = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Style.prototype.set_ScaleX = ASS_Style.prototype.set_ScaleX = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Style_set_ScaleX_1(self, arg0)
-};
-Object.defineProperty(ASS_Style.prototype, "ScaleX", {
+}
+Object.defineProperty(ASS_Style.prototype, 'ScaleX', {
get: ASS_Style.prototype.get_ScaleX,
set: ASS_Style.prototype.set_ScaleX
-});
-ASS_Style.prototype["get_ScaleY"] = ASS_Style.prototype.get_ScaleY = function () {
- var self = this.ptr;
+})
+ASS_Style.prototype.get_ScaleY = ASS_Style.prototype.get_ScaleY = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Style_get_ScaleY_0(self)
-};
-ASS_Style.prototype["set_ScaleY"] = ASS_Style.prototype.set_ScaleY = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Style.prototype.set_ScaleY = ASS_Style.prototype.set_ScaleY = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Style_set_ScaleY_1(self, arg0)
-};
-Object.defineProperty(ASS_Style.prototype, "ScaleY", {
+}
+Object.defineProperty(ASS_Style.prototype, 'ScaleY', {
get: ASS_Style.prototype.get_ScaleY,
set: ASS_Style.prototype.set_ScaleY
-});
-ASS_Style.prototype["get_Spacing"] = ASS_Style.prototype.get_Spacing = function () {
- var self = this.ptr;
+})
+ASS_Style.prototype.get_Spacing = ASS_Style.prototype.get_Spacing = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Style_get_Spacing_0(self)
-};
-ASS_Style.prototype["set_Spacing"] = ASS_Style.prototype.set_Spacing = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Style.prototype.set_Spacing = ASS_Style.prototype.set_Spacing = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Style_set_Spacing_1(self, arg0)
-};
-Object.defineProperty(ASS_Style.prototype, "Spacing", {
+}
+Object.defineProperty(ASS_Style.prototype, 'Spacing', {
get: ASS_Style.prototype.get_Spacing,
set: ASS_Style.prototype.set_Spacing
-});
-ASS_Style.prototype["get_Angle"] = ASS_Style.prototype.get_Angle = function () {
- var self = this.ptr;
+})
+ASS_Style.prototype.get_Angle = ASS_Style.prototype.get_Angle = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Style_get_Angle_0(self)
-};
-ASS_Style.prototype["set_Angle"] = ASS_Style.prototype.set_Angle = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Style.prototype.set_Angle = ASS_Style.prototype.set_Angle = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Style_set_Angle_1(self, arg0)
-};
-Object.defineProperty(ASS_Style.prototype, "Angle", {
+}
+Object.defineProperty(ASS_Style.prototype, 'Angle', {
get: ASS_Style.prototype.get_Angle,
set: ASS_Style.prototype.set_Angle
-});
-ASS_Style.prototype["get_BorderStyle"] = ASS_Style.prototype.get_BorderStyle = function () {
- var self = this.ptr;
+})
+ASS_Style.prototype.get_BorderStyle = ASS_Style.prototype.get_BorderStyle = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Style_get_BorderStyle_0(self)
-};
-ASS_Style.prototype["set_BorderStyle"] = ASS_Style.prototype.set_BorderStyle = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Style.prototype.set_BorderStyle = ASS_Style.prototype.set_BorderStyle = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Style_set_BorderStyle_1(self, arg0)
-};
-Object.defineProperty(ASS_Style.prototype, "BorderStyle", {
+}
+Object.defineProperty(ASS_Style.prototype, 'BorderStyle', {
get: ASS_Style.prototype.get_BorderStyle,
set: ASS_Style.prototype.set_BorderStyle
-});
-ASS_Style.prototype["get_Outline"] = ASS_Style.prototype.get_Outline = function () {
- var self = this.ptr;
+})
+ASS_Style.prototype.get_Outline = ASS_Style.prototype.get_Outline = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Style_get_Outline_0(self)
-};
-ASS_Style.prototype["set_Outline"] = ASS_Style.prototype.set_Outline = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Style.prototype.set_Outline = ASS_Style.prototype.set_Outline = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Style_set_Outline_1(self, arg0)
-};
-Object.defineProperty(ASS_Style.prototype, "Outline", {
+}
+Object.defineProperty(ASS_Style.prototype, 'Outline', {
get: ASS_Style.prototype.get_Outline,
set: ASS_Style.prototype.set_Outline
-});
-ASS_Style.prototype["get_Shadow"] = ASS_Style.prototype.get_Shadow = function () {
- var self = this.ptr;
+})
+ASS_Style.prototype.get_Shadow = ASS_Style.prototype.get_Shadow = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Style_get_Shadow_0(self)
-};
-ASS_Style.prototype["set_Shadow"] = ASS_Style.prototype.set_Shadow = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Style.prototype.set_Shadow = ASS_Style.prototype.set_Shadow = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Style_set_Shadow_1(self, arg0)
-};
-Object.defineProperty(ASS_Style.prototype, "Shadow", {
+}
+Object.defineProperty(ASS_Style.prototype, 'Shadow', {
get: ASS_Style.prototype.get_Shadow,
set: ASS_Style.prototype.set_Shadow
-});
-ASS_Style.prototype["get_Alignment"] = ASS_Style.prototype.get_Alignment = function () {
- var self = this.ptr;
+})
+ASS_Style.prototype.get_Alignment = ASS_Style.prototype.get_Alignment = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Style_get_Alignment_0(self)
-};
-ASS_Style.prototype["set_Alignment"] = ASS_Style.prototype.set_Alignment = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Style.prototype.set_Alignment = ASS_Style.prototype.set_Alignment = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Style_set_Alignment_1(self, arg0)
-};
-Object.defineProperty(ASS_Style.prototype, "Alignment", {
+}
+Object.defineProperty(ASS_Style.prototype, 'Alignment', {
get: ASS_Style.prototype.get_Alignment,
set: ASS_Style.prototype.set_Alignment
-});
-ASS_Style.prototype["get_MarginL"] = ASS_Style.prototype.get_MarginL = function () {
- var self = this.ptr;
+})
+ASS_Style.prototype.get_MarginL = ASS_Style.prototype.get_MarginL = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Style_get_MarginL_0(self)
-};
-ASS_Style.prototype["set_MarginL"] = ASS_Style.prototype.set_MarginL = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Style.prototype.set_MarginL = ASS_Style.prototype.set_MarginL = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Style_set_MarginL_1(self, arg0)
-};
-Object.defineProperty(ASS_Style.prototype, "MarginL", {
+}
+Object.defineProperty(ASS_Style.prototype, 'MarginL', {
get: ASS_Style.prototype.get_MarginL,
set: ASS_Style.prototype.set_MarginL
-});
-ASS_Style.prototype["get_MarginR"] = ASS_Style.prototype.get_MarginR = function () {
- var self = this.ptr;
+})
+ASS_Style.prototype.get_MarginR = ASS_Style.prototype.get_MarginR = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Style_get_MarginR_0(self)
-};
-ASS_Style.prototype["set_MarginR"] = ASS_Style.prototype.set_MarginR = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Style.prototype.set_MarginR = ASS_Style.prototype.set_MarginR = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Style_set_MarginR_1(self, arg0)
-};
-Object.defineProperty(ASS_Style.prototype, "MarginR", {
+}
+Object.defineProperty(ASS_Style.prototype, 'MarginR', {
get: ASS_Style.prototype.get_MarginR,
set: ASS_Style.prototype.set_MarginR
-});
-ASS_Style.prototype["get_MarginV"] = ASS_Style.prototype.get_MarginV = function () {
- var self = this.ptr;
+})
+ASS_Style.prototype.get_MarginV = ASS_Style.prototype.get_MarginV = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Style_get_MarginV_0(self)
-};
-ASS_Style.prototype["set_MarginV"] = ASS_Style.prototype.set_MarginV = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Style.prototype.set_MarginV = ASS_Style.prototype.set_MarginV = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Style_set_MarginV_1(self, arg0)
-};
-Object.defineProperty(ASS_Style.prototype, "MarginV", {
+}
+Object.defineProperty(ASS_Style.prototype, 'MarginV', {
get: ASS_Style.prototype.get_MarginV,
set: ASS_Style.prototype.set_MarginV
-});
-ASS_Style.prototype["get_Encoding"] = ASS_Style.prototype.get_Encoding = function () {
- var self = this.ptr;
+})
+ASS_Style.prototype.get_Encoding = ASS_Style.prototype.get_Encoding = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Style_get_Encoding_0(self)
-};
-ASS_Style.prototype["set_Encoding"] = ASS_Style.prototype.set_Encoding = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Style.prototype.set_Encoding = ASS_Style.prototype.set_Encoding = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Style_set_Encoding_1(self, arg0)
-};
-Object.defineProperty(ASS_Style.prototype, "Encoding", {
+}
+Object.defineProperty(ASS_Style.prototype, 'Encoding', {
get: ASS_Style.prototype.get_Encoding,
set: ASS_Style.prototype.set_Encoding
-});
-ASS_Style.prototype["get_treat_fontname_as_pattern"] = ASS_Style.prototype.get_treat_fontname_as_pattern = function () {
- var self = this.ptr;
+})
+ASS_Style.prototype.get_treat_fontname_as_pattern = ASS_Style.prototype.get_treat_fontname_as_pattern = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Style_get_treat_fontname_as_pattern_0(self)
-};
-ASS_Style.prototype["set_treat_fontname_as_pattern"] = ASS_Style.prototype.set_treat_fontname_as_pattern = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Style.prototype.set_treat_fontname_as_pattern = ASS_Style.prototype.set_treat_fontname_as_pattern = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Style_set_treat_fontname_as_pattern_1(self, arg0)
-};
-Object.defineProperty(ASS_Style.prototype, "treat_fontname_as_pattern", {
+}
+Object.defineProperty(ASS_Style.prototype, 'treat_fontname_as_pattern', {
get: ASS_Style.prototype.get_treat_fontname_as_pattern,
set: ASS_Style.prototype.set_treat_fontname_as_pattern
-});
-ASS_Style.prototype["get_Blur"] = ASS_Style.prototype.get_Blur = function () {
- var self = this.ptr;
+})
+ASS_Style.prototype.get_Blur = ASS_Style.prototype.get_Blur = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Style_get_Blur_0(self)
-};
-ASS_Style.prototype["set_Blur"] = ASS_Style.prototype.set_Blur = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Style.prototype.set_Blur = ASS_Style.prototype.set_Blur = function (arg0) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Style_set_Blur_1(self, arg0)
-};
-Object.defineProperty(ASS_Style.prototype, "Blur", {
+}
+Object.defineProperty(ASS_Style.prototype, 'Blur', {
get: ASS_Style.prototype.get_Blur,
set: ASS_Style.prototype.set_Blur
-});
-ASS_Style.prototype["get_Justify"] = ASS_Style.prototype.get_Justify = function () {
- var self = this.ptr;
+})
+ASS_Style.prototype.get_Justify = ASS_Style.prototype.get_Justify = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Style_get_Justify_0(self)
-};
-ASS_Style.prototype["set_Justify"] = ASS_Style.prototype.set_Justify = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Style.prototype.set_Justify = ASS_Style.prototype.set_Justify = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Style_set_Justify_1(self, arg0)
-};
-Object.defineProperty(ASS_Style.prototype, "Justify", {
+}
+Object.defineProperty(ASS_Style.prototype, 'Justify', {
get: ASS_Style.prototype.get_Justify,
set: ASS_Style.prototype.set_Justify
-});
+})
-function EventStopTimesResult() {
- throw "cannot construct a EventStopTimesResult, no constructor in IDL"
+function EventStopTimesResult () {
+ throw 'cannot construct a EventStopTimesResult, no constructor in IDL'
}
-EventStopTimesResult.prototype = Object.create(WrapperObject.prototype);
-EventStopTimesResult.prototype.constructor = EventStopTimesResult;
-EventStopTimesResult.prototype.__class__ = EventStopTimesResult;
-EventStopTimesResult.__cache__ = {};
-Module["EventStopTimesResult"] = EventStopTimesResult;
-EventStopTimesResult.prototype["get_eventFinish"] = EventStopTimesResult.prototype.get_eventFinish = function () {
- var self = this.ptr;
+EventStopTimesResult.prototype = Object.create(WrapperObject.prototype)
+EventStopTimesResult.prototype.constructor = EventStopTimesResult
+EventStopTimesResult.prototype.__class__ = EventStopTimesResult
+EventStopTimesResult.__cache__ = {}
+Module.EventStopTimesResult = EventStopTimesResult
+EventStopTimesResult.prototype.get_eventFinish = EventStopTimesResult.prototype.get_eventFinish = function () {
+ const self = this.ptr
return _emscripten_bind_EventStopTimesResult_get_eventFinish_0(self)
-};
-EventStopTimesResult.prototype["set_eventFinish"] = EventStopTimesResult.prototype.set_eventFinish = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+EventStopTimesResult.prototype.set_eventFinish = EventStopTimesResult.prototype.set_eventFinish = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_EventStopTimesResult_set_eventFinish_1(self, arg0)
-};
-Object.defineProperty(EventStopTimesResult.prototype, "eventFinish", {
+}
+Object.defineProperty(EventStopTimesResult.prototype, 'eventFinish', {
get: EventStopTimesResult.prototype.get_eventFinish,
set: EventStopTimesResult.prototype.set_eventFinish
-});
-EventStopTimesResult.prototype["get_emptyFinish"] = EventStopTimesResult.prototype.get_emptyFinish = function () {
- var self = this.ptr;
+})
+EventStopTimesResult.prototype.get_emptyFinish = EventStopTimesResult.prototype.get_emptyFinish = function () {
+ const self = this.ptr
return _emscripten_bind_EventStopTimesResult_get_emptyFinish_0(self)
-};
-EventStopTimesResult.prototype["set_emptyFinish"] = EventStopTimesResult.prototype.set_emptyFinish = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+EventStopTimesResult.prototype.set_emptyFinish = EventStopTimesResult.prototype.set_emptyFinish = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_EventStopTimesResult_set_emptyFinish_1(self, arg0)
-};
-Object.defineProperty(EventStopTimesResult.prototype, "emptyFinish", {
+}
+Object.defineProperty(EventStopTimesResult.prototype, 'emptyFinish', {
get: EventStopTimesResult.prototype.get_emptyFinish,
set: EventStopTimesResult.prototype.set_emptyFinish
-});
-EventStopTimesResult.prototype["get_is_animated"] = EventStopTimesResult.prototype.get_is_animated = function () {
- var self = this.ptr;
+})
+EventStopTimesResult.prototype.get_is_animated = EventStopTimesResult.prototype.get_is_animated = function () {
+ const self = this.ptr
return _emscripten_bind_EventStopTimesResult_get_is_animated_0(self)
-};
-EventStopTimesResult.prototype["set_is_animated"] = EventStopTimesResult.prototype.set_is_animated = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+EventStopTimesResult.prototype.set_is_animated = EventStopTimesResult.prototype.set_is_animated = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_EventStopTimesResult_set_is_animated_1(self, arg0)
-};
-Object.defineProperty(EventStopTimesResult.prototype, "is_animated", {
+}
+Object.defineProperty(EventStopTimesResult.prototype, 'is_animated', {
get: EventStopTimesResult.prototype.get_is_animated,
set: EventStopTimesResult.prototype.set_is_animated
-});
+})
-function ASS_Image() {
- throw "cannot construct a ASS_Image, no constructor in IDL"
+function ASS_Image () {
+ throw 'cannot construct a ASS_Image, no constructor in IDL'
}
-ASS_Image.prototype = Object.create(WrapperObject.prototype);
-ASS_Image.prototype.constructor = ASS_Image;
-ASS_Image.prototype.__class__ = ASS_Image;
-ASS_Image.__cache__ = {};
-Module["ASS_Image"] = ASS_Image;
-ASS_Image.prototype["get_w"] = ASS_Image.prototype.get_w = function () {
- var self = this.ptr;
+ASS_Image.prototype = Object.create(WrapperObject.prototype)
+ASS_Image.prototype.constructor = ASS_Image
+ASS_Image.prototype.__class__ = ASS_Image
+ASS_Image.__cache__ = {}
+Module.ASS_Image = ASS_Image
+ASS_Image.prototype.get_w = ASS_Image.prototype.get_w = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Image_get_w_0(self)
-};
-ASS_Image.prototype["set_w"] = ASS_Image.prototype.set_w = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Image.prototype.set_w = ASS_Image.prototype.set_w = function (arg0) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Image_set_w_1(self, arg0)
-};
-Object.defineProperty(ASS_Image.prototype, "w", {
+}
+Object.defineProperty(ASS_Image.prototype, 'w', {
get: ASS_Image.prototype.get_w,
set: ASS_Image.prototype.set_w
-});
-ASS_Image.prototype["get_h"] = ASS_Image.prototype.get_h = function () {
- var self = this.ptr;
+})
+ASS_Image.prototype.get_h = ASS_Image.prototype.get_h = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Image_get_h_0(self)
-};
-ASS_Image.prototype["set_h"] = ASS_Image.prototype.set_h = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Image.prototype.set_h = ASS_Image.prototype.set_h = function (arg0) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Image_set_h_1(self, arg0)
-};
-Object.defineProperty(ASS_Image.prototype, "h", {
+}
+Object.defineProperty(ASS_Image.prototype, 'h', {
get: ASS_Image.prototype.get_h,
set: ASS_Image.prototype.set_h
-});
-ASS_Image.prototype["get_stride"] = ASS_Image.prototype.get_stride = function () {
- var self = this.ptr;
+})
+ASS_Image.prototype.get_stride = ASS_Image.prototype.get_stride = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Image_get_stride_0(self)
-};
-ASS_Image.prototype["set_stride"] = ASS_Image.prototype.set_stride = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Image.prototype.set_stride = ASS_Image.prototype.set_stride = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Image_set_stride_1(self, arg0)
-};
-Object.defineProperty(ASS_Image.prototype, "stride", {
+}
+Object.defineProperty(ASS_Image.prototype, 'stride', {
get: ASS_Image.prototype.get_stride,
set: ASS_Image.prototype.set_stride
-});
-ASS_Image.prototype["get_bitmap"] = ASS_Image.prototype.get_bitmap = function () {
- var self = this.ptr;
+})
+ASS_Image.prototype.get_bitmap = ASS_Image.prototype.get_bitmap = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Image_get_bitmap_0(self)
-};
-ASS_Image.prototype["set_bitmap"] = ASS_Image.prototype.set_bitmap = function (arg0) {
- var self = this.ptr;
- ensureCache.prepare();
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
- else arg0 = ensureString(arg0);
+}
+ASS_Image.prototype.set_bitmap = ASS_Image.prototype.set_bitmap = function (
+ arg0
+) {
+ const self = this.ptr
+ ensureCache.prepare()
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
+ else arg0 = ensureString(arg0)
_emscripten_bind_ASS_Image_set_bitmap_1(self, arg0)
-};
-Object.defineProperty(ASS_Image.prototype, "bitmap", {
+}
+Object.defineProperty(ASS_Image.prototype, 'bitmap', {
get: ASS_Image.prototype.get_bitmap,
set: ASS_Image.prototype.set_bitmap
-});
-ASS_Image.prototype["get_color"] = ASS_Image.prototype.get_color = function () {
- var self = this.ptr;
+})
+ASS_Image.prototype.get_color = ASS_Image.prototype.get_color = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Image_get_color_0(self)
-};
-ASS_Image.prototype["set_color"] = ASS_Image.prototype.set_color = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Image.prototype.set_color = ASS_Image.prototype.set_color = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Image_set_color_1(self, arg0)
-};
-Object.defineProperty(ASS_Image.prototype, "color", {
+}
+Object.defineProperty(ASS_Image.prototype, 'color', {
get: ASS_Image.prototype.get_color,
set: ASS_Image.prototype.set_color
-});
-ASS_Image.prototype["get_dst_x"] = ASS_Image.prototype.get_dst_x = function () {
- var self = this.ptr;
+})
+ASS_Image.prototype.get_dst_x = ASS_Image.prototype.get_dst_x = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Image_get_dst_x_0(self)
-};
-ASS_Image.prototype["set_dst_x"] = ASS_Image.prototype.set_dst_x = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Image.prototype.set_dst_x = ASS_Image.prototype.set_dst_x = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Image_set_dst_x_1(self, arg0)
-};
-Object.defineProperty(ASS_Image.prototype, "dst_x", {
+}
+Object.defineProperty(ASS_Image.prototype, 'dst_x', {
get: ASS_Image.prototype.get_dst_x,
set: ASS_Image.prototype.set_dst_x
-});
-ASS_Image.prototype["get_dst_y"] = ASS_Image.prototype.get_dst_y = function () {
- var self = this.ptr;
+})
+ASS_Image.prototype.get_dst_y = ASS_Image.prototype.get_dst_y = function () {
+ const self = this.ptr
return _emscripten_bind_ASS_Image_get_dst_y_0(self)
-};
-ASS_Image.prototype["set_dst_y"] = ASS_Image.prototype.set_dst_y = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Image.prototype.set_dst_y = ASS_Image.prototype.set_dst_y = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Image_set_dst_y_1(self, arg0)
-};
-Object.defineProperty(ASS_Image.prototype, "dst_y", {
+}
+Object.defineProperty(ASS_Image.prototype, 'dst_y', {
get: ASS_Image.prototype.get_dst_y,
set: ASS_Image.prototype.set_dst_y
-});
-ASS_Image.prototype["get_next"] = ASS_Image.prototype.get_next = function () {
- var self = this.ptr;
+})
+ASS_Image.prototype.get_next = ASS_Image.prototype.get_next = function () {
+ const self = this.ptr
return wrapPointer(_emscripten_bind_ASS_Image_get_next_0(self), ASS_Image)
-};
-ASS_Image.prototype["set_next"] = ASS_Image.prototype.set_next = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+ASS_Image.prototype.set_next = ASS_Image.prototype.set_next = function (arg0) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_ASS_Image_set_next_1(self, arg0)
-};
-Object.defineProperty(ASS_Image.prototype, "next", {
+}
+Object.defineProperty(ASS_Image.prototype, 'next', {
get: ASS_Image.prototype.get_next,
set: ASS_Image.prototype.set_next
-});
+})
-function VoidPtr() {
- throw "cannot construct a VoidPtr, no constructor in IDL"
+function VoidPtr () {
+ throw 'cannot construct a VoidPtr, no constructor in IDL'
}
-VoidPtr.prototype = Object.create(WrapperObject.prototype);
-VoidPtr.prototype.constructor = VoidPtr;
-VoidPtr.prototype.__class__ = VoidPtr;
-VoidPtr.__cache__ = {};
-Module["VoidPtr"] = VoidPtr;
-VoidPtr.prototype["__destroy__"] = VoidPtr.prototype.__destroy__ = function () {
- var self = this.ptr;
+VoidPtr.prototype = Object.create(WrapperObject.prototype)
+VoidPtr.prototype.constructor = VoidPtr
+VoidPtr.prototype.__class__ = VoidPtr
+VoidPtr.__cache__ = {}
+Module.VoidPtr = VoidPtr
+VoidPtr.prototype.__destroy__ = VoidPtr.prototype.__destroy__ = function () {
+ const self = this.ptr
_emscripten_bind_VoidPtr___destroy___0(self)
-};
-
-function ASS_Library() {
- throw "cannot construct a ASS_Library, no constructor in IDL"
}
-ASS_Library.prototype = Object.create(WrapperObject.prototype);
-ASS_Library.prototype.constructor = ASS_Library;
-ASS_Library.prototype.__class__ = ASS_Library;
-ASS_Library.__cache__ = {};
-Module["ASS_Library"] = ASS_Library;
-function RenderBlendPart() {
- throw "cannot construct a RenderBlendPart, no constructor in IDL"
+function ASS_Library () {
+ throw 'cannot construct a ASS_Library, no constructor in IDL'
}
-RenderBlendPart.prototype = Object.create(WrapperObject.prototype);
-RenderBlendPart.prototype.constructor = RenderBlendPart;
-RenderBlendPart.prototype.__class__ = RenderBlendPart;
-RenderBlendPart.__cache__ = {};
-Module["RenderBlendPart"] = RenderBlendPart;
-RenderBlendPart.prototype["get_dest_x"] = RenderBlendPart.prototype.get_dest_x = function () {
- var self = this.ptr;
+ASS_Library.prototype = Object.create(WrapperObject.prototype)
+ASS_Library.prototype.constructor = ASS_Library
+ASS_Library.prototype.__class__ = ASS_Library
+ASS_Library.__cache__ = {}
+Module.ASS_Library = ASS_Library
+
+function RenderBlendPart () {
+ throw 'cannot construct a RenderBlendPart, no constructor in IDL'
+}
+RenderBlendPart.prototype = Object.create(WrapperObject.prototype)
+RenderBlendPart.prototype.constructor = RenderBlendPart
+RenderBlendPart.prototype.__class__ = RenderBlendPart
+RenderBlendPart.__cache__ = {}
+Module.RenderBlendPart = RenderBlendPart
+RenderBlendPart.prototype.get_dest_x = RenderBlendPart.prototype.get_dest_x = function () {
+ const self = this.ptr
return _emscripten_bind_RenderBlendPart_get_dest_x_0(self)
-};
-RenderBlendPart.prototype["set_dest_x"] = RenderBlendPart.prototype.set_dest_x = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+RenderBlendPart.prototype.set_dest_x = RenderBlendPart.prototype.set_dest_x = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_RenderBlendPart_set_dest_x_1(self, arg0)
-};
-Object.defineProperty(RenderBlendPart.prototype, "dest_x", {
+}
+Object.defineProperty(RenderBlendPart.prototype, 'dest_x', {
get: RenderBlendPart.prototype.get_dest_x,
set: RenderBlendPart.prototype.set_dest_x
-});
-RenderBlendPart.prototype["get_dest_y"] = RenderBlendPart.prototype.get_dest_y = function () {
- var self = this.ptr;
+})
+RenderBlendPart.prototype.get_dest_y = RenderBlendPart.prototype.get_dest_y = function () {
+ const self = this.ptr
return _emscripten_bind_RenderBlendPart_get_dest_y_0(self)
-};
-RenderBlendPart.prototype["set_dest_y"] = RenderBlendPart.prototype.set_dest_y = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+RenderBlendPart.prototype.set_dest_y = RenderBlendPart.prototype.set_dest_y = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_RenderBlendPart_set_dest_y_1(self, arg0)
-};
-Object.defineProperty(RenderBlendPart.prototype, "dest_y", {
+}
+Object.defineProperty(RenderBlendPart.prototype, 'dest_y', {
get: RenderBlendPart.prototype.get_dest_y,
set: RenderBlendPart.prototype.set_dest_y
-});
-RenderBlendPart.prototype["get_dest_width"] = RenderBlendPart.prototype.get_dest_width = function () {
- var self = this.ptr;
+})
+RenderBlendPart.prototype.get_dest_width = RenderBlendPart.prototype.get_dest_width = function () {
+ const self = this.ptr
return _emscripten_bind_RenderBlendPart_get_dest_width_0(self)
-};
-RenderBlendPart.prototype["set_dest_width"] = RenderBlendPart.prototype.set_dest_width = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+RenderBlendPart.prototype.set_dest_width = RenderBlendPart.prototype.set_dest_width = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_RenderBlendPart_set_dest_width_1(self, arg0)
-};
-Object.defineProperty(RenderBlendPart.prototype, "dest_width", {
+}
+Object.defineProperty(RenderBlendPart.prototype, 'dest_width', {
get: RenderBlendPart.prototype.get_dest_width,
set: RenderBlendPart.prototype.set_dest_width
-});
-RenderBlendPart.prototype["get_dest_height"] = RenderBlendPart.prototype.get_dest_height = function () {
- var self = this.ptr;
+})
+RenderBlendPart.prototype.get_dest_height = RenderBlendPart.prototype.get_dest_height = function () {
+ const self = this.ptr
return _emscripten_bind_RenderBlendPart_get_dest_height_0(self)
-};
-RenderBlendPart.prototype["set_dest_height"] = RenderBlendPart.prototype.set_dest_height = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+}
+RenderBlendPart.prototype.set_dest_height = RenderBlendPart.prototype.set_dest_height = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_RenderBlendPart_set_dest_height_1(self, arg0)
-};
-Object.defineProperty(RenderBlendPart.prototype, "dest_height", {
+}
+Object.defineProperty(RenderBlendPart.prototype, 'dest_height', {
get: RenderBlendPart.prototype.get_dest_height,
set: RenderBlendPart.prototype.set_dest_height
-});
-RenderBlendPart.prototype["get_image"] = RenderBlendPart.prototype.get_image = function () {
- var self = this.ptr;
+})
+RenderBlendPart.prototype.get_image = RenderBlendPart.prototype.get_image = function () {
+ const self = this.ptr
return _emscripten_bind_RenderBlendPart_get_image_0(self)
-};
-RenderBlendPart.prototype["set_image"] = RenderBlendPart.prototype.set_image = function (arg0) {
- var self = this.ptr;
- ensureCache.prepare();
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
- else arg0 = ensureString(arg0);
+}
+RenderBlendPart.prototype.set_image = RenderBlendPart.prototype.set_image = function (
+ arg0
+) {
+ const self = this.ptr
+ ensureCache.prepare()
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
+ else arg0 = ensureString(arg0)
_emscripten_bind_RenderBlendPart_set_image_1(self, arg0)
-};
-Object.defineProperty(RenderBlendPart.prototype, "image", {
+}
+Object.defineProperty(RenderBlendPart.prototype, 'image', {
get: RenderBlendPart.prototype.get_image,
set: RenderBlendPart.prototype.set_image
-});
-RenderBlendPart.prototype["get_next"] = RenderBlendPart.prototype.get_next = function () {
- var self = this.ptr;
- return wrapPointer(_emscripten_bind_RenderBlendPart_get_next_0(self), RenderBlendPart)
-};
-RenderBlendPart.prototype["set_next"] = RenderBlendPart.prototype.set_next = function (arg0) {
- var self = this.ptr;
- if (arg0 && typeof arg0 === "object") arg0 = arg0.ptr;
+})
+RenderBlendPart.prototype.get_next = RenderBlendPart.prototype.get_next = function () {
+ const self = this.ptr
+ return wrapPointer(
+ _emscripten_bind_RenderBlendPart_get_next_0(self),
+ RenderBlendPart
+ )
+}
+RenderBlendPart.prototype.set_next = RenderBlendPart.prototype.set_next = function (
+ arg0
+) {
+ const self = this.ptr
+ if (arg0 && typeof arg0 === 'object') arg0 = arg0.ptr
_emscripten_bind_RenderBlendPart_set_next_1(self, arg0)
-};
-Object.defineProperty(RenderBlendPart.prototype, "next", {
+}
+Object.defineProperty(RenderBlendPart.prototype, 'next', {
get: RenderBlendPart.prototype.get_next,
set: RenderBlendPart.prototype.set_next
-});
+})
-function libass() {
- this.ptr = _emscripten_bind_libass_libass_0();
+function libass () {
+ this.ptr = _emscripten_bind_libass_libass_0()
getCache(libass)[this.ptr] = this
}
-libass.prototype = Object.create(WrapperObject.prototype);
-libass.prototype.constructor = libass;
-libass.prototype.__class__ = libass;
-libass.__cache__ = {};
-Module["libass"] = libass;
-libass.prototype["oct_library_version"] = libass.prototype.oct_library_version = function () {
- var self = this.ptr;
+libass.prototype = Object.create(WrapperObject.prototype)
+libass.prototype.constructor = libass
+libass.prototype.__class__ = libass
+libass.__cache__ = {}
+Module.libass = libass
+libass.prototype.oct_library_version = libass.prototype.oct_library_version = function () {
+ const self = this.ptr
return _emscripten_bind_libass_oct_library_version_0(self)
-};
-libass.prototype["oct_library_init"] = libass.prototype.oct_library_init = function () {
- var self = this.ptr;
- return wrapPointer(_emscripten_bind_libass_oct_library_init_0(self), ASS_Library)
-};
-libass.prototype["oct_library_done"] = libass.prototype.oct_library_done = function (priv) {
- var self = this.ptr;
- if (priv && typeof priv === "object") priv = priv.ptr;
+}
+libass.prototype.oct_library_init = libass.prototype.oct_library_init = function () {
+ const self = this.ptr
+ return wrapPointer(
+ _emscripten_bind_libass_oct_library_init_0(self),
+ ASS_Library
+ )
+}
+libass.prototype.oct_library_done = libass.prototype.oct_library_done = function (
+ priv
+) {
+ const self = this.ptr
+ if (priv && typeof priv === 'object') priv = priv.ptr
_emscripten_bind_libass_oct_library_done_1(self, priv)
-};
-libass.prototype["oct_set_fonts_dir"] = libass.prototype.oct_set_fonts_dir = function (priv, fonts_dir) {
- var self = this.ptr;
- ensureCache.prepare();
- if (priv && typeof priv === "object") priv = priv.ptr;
- if (fonts_dir && typeof fonts_dir === "object") fonts_dir = fonts_dir.ptr;
- else fonts_dir = ensureString(fonts_dir);
+}
+libass.prototype.oct_set_fonts_dir = libass.prototype.oct_set_fonts_dir = function (
+ priv,
+ fonts_dir
+) {
+ const self = this.ptr
+ ensureCache.prepare()
+ if (priv && typeof priv === 'object') priv = priv.ptr
+ if (fonts_dir && typeof fonts_dir === 'object') fonts_dir = fonts_dir.ptr
+ else fonts_dir = ensureString(fonts_dir)
_emscripten_bind_libass_oct_set_fonts_dir_2(self, priv, fonts_dir)
-};
-libass.prototype["oct_set_extract_fonts"] = libass.prototype.oct_set_extract_fonts = function (priv, extract) {
- var self = this.ptr;
- if (priv && typeof priv === "object") priv = priv.ptr;
- if (extract && typeof extract === "object") extract = extract.ptr;
+}
+libass.prototype.oct_set_extract_fonts = libass.prototype.oct_set_extract_fonts = function (
+ priv,
+ extract
+) {
+ const self = this.ptr
+ if (priv && typeof priv === 'object') priv = priv.ptr
+ if (extract && typeof extract === 'object') extract = extract.ptr
_emscripten_bind_libass_oct_set_extract_fonts_2(self, priv, extract)
-};
-libass.prototype["oct_set_style_overrides"] = libass.prototype.oct_set_style_overrides = function (priv, list) {
- var self = this.ptr;
- ensureCache.prepare();
- if (priv && typeof priv === "object") priv = priv.ptr;
+}
+libass.prototype.oct_set_style_overrides = libass.prototype.oct_set_style_overrides = function (
+ priv,
+ list
+) {
+ const self = this.ptr
+ ensureCache.prepare()
+ if (priv && typeof priv === 'object') priv = priv.ptr
_emscripten_bind_libass_oct_set_style_overrides_2(self, priv, list)
-};
-libass.prototype["oct_process_force_style"] = libass.prototype.oct_process_force_style = function (track) {
- var self = this.ptr;
- if (track && typeof track === "object") track = track.ptr;
+}
+libass.prototype.oct_process_force_style = libass.prototype.oct_process_force_style = function (
+ track
+) {
+ const self = this.ptr
+ if (track && typeof track === 'object') track = track.ptr
_emscripten_bind_libass_oct_process_force_style_1(self, track)
-};
-libass.prototype["oct_renderer_init"] = libass.prototype.oct_renderer_init = function (priv) {
- var self = this.ptr;
- if (priv && typeof priv === "object") priv = priv.ptr;
- return wrapPointer(_emscripten_bind_libass_oct_renderer_init_1(self, priv), ASS_Renderer)
-};
-libass.prototype["oct_renderer_done"] = libass.prototype.oct_renderer_done = function (priv) {
- var self = this.ptr;
- if (priv && typeof priv === "object") priv = priv.ptr;
+}
+libass.prototype.oct_renderer_init = libass.prototype.oct_renderer_init = function (
+ priv
+) {
+ const self = this.ptr
+ if (priv && typeof priv === 'object') priv = priv.ptr
+ return wrapPointer(
+ _emscripten_bind_libass_oct_renderer_init_1(self, priv),
+ ASS_Renderer
+ )
+}
+libass.prototype.oct_renderer_done = libass.prototype.oct_renderer_done = function (
+ priv
+) {
+ const self = this.ptr
+ if (priv && typeof priv === 'object') priv = priv.ptr
_emscripten_bind_libass_oct_renderer_done_1(self, priv)
-};
-libass.prototype["oct_set_frame_size"] = libass.prototype.oct_set_frame_size = function (priv, w, h) {
- var self = this.ptr;
- if (priv && typeof priv === "object") priv = priv.ptr;
- if (w && typeof w === "object") w = w.ptr;
- if (h && typeof h === "object") h = h.ptr;
+}
+libass.prototype.oct_set_frame_size = libass.prototype.oct_set_frame_size = function (
+ priv,
+ w,
+ h
+) {
+ const self = this.ptr
+ if (priv && typeof priv === 'object') priv = priv.ptr
+ if (w && typeof w === 'object') w = w.ptr
+ if (h && typeof h === 'object') h = h.ptr
_emscripten_bind_libass_oct_set_frame_size_3(self, priv, w, h)
-};
-libass.prototype["oct_set_storage_size"] = libass.prototype.oct_set_storage_size = function (priv, w, h) {
- var self = this.ptr;
- if (priv && typeof priv === "object") priv = priv.ptr;
- if (w && typeof w === "object") w = w.ptr;
- if (h && typeof h === "object") h = h.ptr;
+}
+libass.prototype.oct_set_storage_size = libass.prototype.oct_set_storage_size = function (
+ priv,
+ w,
+ h
+) {
+ const self = this.ptr
+ if (priv && typeof priv === 'object') priv = priv.ptr
+ if (w && typeof w === 'object') w = w.ptr
+ if (h && typeof h === 'object') h = h.ptr
_emscripten_bind_libass_oct_set_storage_size_3(self, priv, w, h)
-};
-libass.prototype["oct_set_shaper"] = libass.prototype.oct_set_shaper = function (priv, level) {
- var self = this.ptr;
- if (priv && typeof priv === "object") priv = priv.ptr;
- if (level && typeof level === "object") level = level.ptr;
+}
+libass.prototype.oct_set_shaper = libass.prototype.oct_set_shaper = function (
+ priv,
+ level
+) {
+ const self = this.ptr
+ if (priv && typeof priv === 'object') priv = priv.ptr
+ if (level && typeof level === 'object') level = level.ptr
_emscripten_bind_libass_oct_set_shaper_2(self, priv, level)
-};
-libass.prototype["oct_set_margins"] = libass.prototype.oct_set_margins = function (priv, t, b, l, r) {
- var self = this.ptr;
- if (priv && typeof priv === "object") priv = priv.ptr;
- if (t && typeof t === "object") t = t.ptr;
- if (b && typeof b === "object") b = b.ptr;
- if (l && typeof l === "object") l = l.ptr;
- if (r && typeof r === "object") r = r.ptr;
+}
+libass.prototype.oct_set_margins = libass.prototype.oct_set_margins = function (
+ priv,
+ t,
+ b,
+ l,
+ r
+) {
+ const self = this.ptr
+ if (priv && typeof priv === 'object') priv = priv.ptr
+ if (t && typeof t === 'object') t = t.ptr
+ if (b && typeof b === 'object') b = b.ptr
+ if (l && typeof l === 'object') l = l.ptr
+ if (r && typeof r === 'object') r = r.ptr
_emscripten_bind_libass_oct_set_margins_5(self, priv, t, b, l, r)
-};
-libass.prototype["oct_set_use_margins"] = libass.prototype.oct_set_use_margins = function (priv, use) {
- var self = this.ptr;
- if (priv && typeof priv === "object") priv = priv.ptr;
- if (use && typeof use === "object") use = use.ptr;
+}
+libass.prototype.oct_set_use_margins = libass.prototype.oct_set_use_margins = function (
+ priv,
+ use
+) {
+ const self = this.ptr
+ if (priv && typeof priv === 'object') priv = priv.ptr
+ if (use && typeof use === 'object') use = use.ptr
_emscripten_bind_libass_oct_set_use_margins_2(self, priv, use)
-};
-libass.prototype["oct_set_pixel_aspect"] = libass.prototype.oct_set_pixel_aspect = function (priv, par) {
- var self = this.ptr;
- if (priv && typeof priv === "object") priv = priv.ptr;
- if (par && typeof par === "object") par = par.ptr;
+}
+libass.prototype.oct_set_pixel_aspect = libass.prototype.oct_set_pixel_aspect = function (
+ priv,
+ par
+) {
+ const self = this.ptr
+ if (priv && typeof priv === 'object') priv = priv.ptr
+ if (par && typeof par === 'object') par = par.ptr
_emscripten_bind_libass_oct_set_pixel_aspect_2(self, priv, par)
-};
-libass.prototype["oct_set_aspect_ratio"] = libass.prototype.oct_set_aspect_ratio = function (priv, dar, sar) {
- var self = this.ptr;
- if (priv && typeof priv === "object") priv = priv.ptr;
- if (dar && typeof dar === "object") dar = dar.ptr;
- if (sar && typeof sar === "object") sar = sar.ptr;
+}
+libass.prototype.oct_set_aspect_ratio = libass.prototype.oct_set_aspect_ratio = function (
+ priv,
+ dar,
+ sar
+) {
+ const self = this.ptr
+ if (priv && typeof priv === 'object') priv = priv.ptr
+ if (dar && typeof dar === 'object') dar = dar.ptr
+ if (sar && typeof sar === 'object') sar = sar.ptr
_emscripten_bind_libass_oct_set_aspect_ratio_3(self, priv, dar, sar)
-};
-libass.prototype["oct_set_font_scale"] = libass.prototype.oct_set_font_scale = function (priv, font_scale) {
- var self = this.ptr;
- if (priv && typeof priv === "object") priv = priv.ptr;
- if (font_scale && typeof font_scale === "object") font_scale = font_scale.ptr;
+}
+libass.prototype.oct_set_font_scale = libass.prototype.oct_set_font_scale = function (
+ priv,
+ font_scale
+) {
+ const self = this.ptr
+ if (priv && typeof priv === 'object') priv = priv.ptr
+ if (font_scale && typeof font_scale === 'object') font_scale = font_scale.ptr
_emscripten_bind_libass_oct_set_font_scale_2(self, priv, font_scale)
-};
-libass.prototype["oct_set_hinting"] = libass.prototype.oct_set_hinting = function (priv, ht) {
- var self = this.ptr;
- if (priv && typeof priv === "object") priv = priv.ptr;
- if (ht && typeof ht === "object") ht = ht.ptr;
+}
+libass.prototype.oct_set_hinting = libass.prototype.oct_set_hinting = function (
+ priv,
+ ht
+) {
+ const self = this.ptr
+ if (priv && typeof priv === 'object') priv = priv.ptr
+ if (ht && typeof ht === 'object') ht = ht.ptr
_emscripten_bind_libass_oct_set_hinting_2(self, priv, ht)
-};
-libass.prototype["oct_set_line_spacing"] = libass.prototype.oct_set_line_spacing = function (priv, line_spacing) {
- var self = this.ptr;
- if (priv && typeof priv === "object") priv = priv.ptr;
- if (line_spacing && typeof line_spacing === "object") line_spacing = line_spacing.ptr;
+}
+libass.prototype.oct_set_line_spacing = libass.prototype.oct_set_line_spacing = function (
+ priv,
+ line_spacing
+) {
+ const self = this.ptr
+ if (priv && typeof priv === 'object') priv = priv.ptr
+ if (line_spacing && typeof line_spacing === 'object') {
+ line_spacing = line_spacing.ptr
+ }
_emscripten_bind_libass_oct_set_line_spacing_2(self, priv, line_spacing)
-};
-libass.prototype["oct_set_line_position"] = libass.prototype.oct_set_line_position = function (priv, line_position) {
- var self = this.ptr;
- if (priv && typeof priv === "object") priv = priv.ptr;
- if (line_position && typeof line_position === "object") line_position = line_position.ptr;
+}
+libass.prototype.oct_set_line_position = libass.prototype.oct_set_line_position = function (
+ priv,
+ line_position
+) {
+ const self = this.ptr
+ if (priv && typeof priv === 'object') priv = priv.ptr
+ if (line_position && typeof line_position === 'object') {
+ line_position = line_position.ptr
+ }
_emscripten_bind_libass_oct_set_line_position_2(self, priv, line_position)
-};
-libass.prototype["oct_set_fonts"] = libass.prototype.oct_set_fonts = function (priv, default_font, default_family, dfp, config, update) {
- var self = this.ptr;
- ensureCache.prepare();
- if (priv && typeof priv === "object") priv = priv.ptr;
- if (default_font && typeof default_font === "object") default_font = default_font.ptr;
- else default_font = ensureString(default_font);
- if (default_family && typeof default_family === "object") default_family = default_family.ptr;
- else default_family = ensureString(default_family);
- if (dfp && typeof dfp === "object") dfp = dfp.ptr;
- if (config && typeof config === "object") config = config.ptr;
- else config = ensureString(config);
- if (update && typeof update === "object") update = update.ptr;
- _emscripten_bind_libass_oct_set_fonts_6(self, priv, default_font, default_family, dfp, config, update)
-};
-libass.prototype["oct_set_selective_style_override_enabled"] = libass.prototype.oct_set_selective_style_override_enabled = function (priv, bits) {
- var self = this.ptr;
- if (priv && typeof priv === "object") priv = priv.ptr;
- if (bits && typeof bits === "object") bits = bits.ptr;
- _emscripten_bind_libass_oct_set_selective_style_override_enabled_2(self, priv, bits)
-};
-libass.prototype["oct_set_selective_style_override"] = libass.prototype.oct_set_selective_style_override = function (priv, style) {
- var self = this.ptr;
- if (priv && typeof priv === "object") priv = priv.ptr;
- if (style && typeof style === "object") style = style.ptr;
+}
+libass.prototype.oct_set_fonts = libass.prototype.oct_set_fonts = function (
+ priv,
+ default_font,
+ default_family,
+ dfp,
+ config,
+ update
+) {
+ const self = this.ptr
+ ensureCache.prepare()
+ if (priv && typeof priv === 'object') priv = priv.ptr
+ if (default_font && typeof default_font === 'object') {
+ default_font = default_font.ptr
+ } else default_font = ensureString(default_font)
+ if (default_family && typeof default_family === 'object') {
+ default_family = default_family.ptr
+ } else default_family = ensureString(default_family)
+ if (dfp && typeof dfp === 'object') dfp = dfp.ptr
+ if (config && typeof config === 'object') config = config.ptr
+ else config = ensureString(config)
+ if (update && typeof update === 'object') update = update.ptr
+ _emscripten_bind_libass_oct_set_fonts_6(
+ self,
+ priv,
+ default_font,
+ default_family,
+ dfp,
+ config,
+ update
+ )
+}
+libass.prototype.oct_set_selective_style_override_enabled = libass.prototype.oct_set_selective_style_override_enabled = function (
+ priv,
+ bits
+) {
+ const self = this.ptr
+ if (priv && typeof priv === 'object') priv = priv.ptr
+ if (bits && typeof bits === 'object') bits = bits.ptr
+ _emscripten_bind_libass_oct_set_selective_style_override_enabled_2(
+ self,
+ priv,
+ bits
+ )
+}
+libass.prototype.oct_set_selective_style_override = libass.prototype.oct_set_selective_style_override = function (
+ priv,
+ style
+) {
+ const self = this.ptr
+ if (priv && typeof priv === 'object') priv = priv.ptr
+ if (style && typeof style === 'object') style = style.ptr
_emscripten_bind_libass_oct_set_selective_style_override_2(self, priv, style)
-};
-libass.prototype["oct_set_cache_limits"] = libass.prototype.oct_set_cache_limits = function (priv, glyph_max, bitmap_max_size) {
- var self = this.ptr;
- if (priv && typeof priv === "object") priv = priv.ptr;
- if (glyph_max && typeof glyph_max === "object") glyph_max = glyph_max.ptr;
- if (bitmap_max_size && typeof bitmap_max_size === "object") bitmap_max_size = bitmap_max_size.ptr;
- _emscripten_bind_libass_oct_set_cache_limits_3(self, priv, glyph_max, bitmap_max_size)
-};
-libass.prototype["oct_render_frame"] = libass.prototype.oct_render_frame = function (priv, track, now, detect_change) {
- var self = this.ptr;
- if (priv && typeof priv === "object") priv = priv.ptr;
- if (track && typeof track === "object") track = track.ptr;
- if (now && typeof now === "object") now = now.ptr;
- if (detect_change && typeof detect_change === "object") detect_change = detect_change.ptr;
- return wrapPointer(_emscripten_bind_libass_oct_render_frame_4(self, priv, track, now, detect_change), ASS_Image)
-};
-libass.prototype["oct_new_track"] = libass.prototype.oct_new_track = function (priv) {
- var self = this.ptr;
- if (priv && typeof priv === "object") priv = priv.ptr;
- return wrapPointer(_emscripten_bind_libass_oct_new_track_1(self, priv), ASS_Track)
-};
-libass.prototype["oct_free_track"] = libass.prototype.oct_free_track = function (track) {
- var self = this.ptr;
- if (track && typeof track === "object") track = track.ptr;
+}
+libass.prototype.oct_set_cache_limits = libass.prototype.oct_set_cache_limits = function (
+ priv,
+ glyph_max,
+ bitmap_max_size
+) {
+ const self = this.ptr
+ if (priv && typeof priv === 'object') priv = priv.ptr
+ if (glyph_max && typeof glyph_max === 'object') glyph_max = glyph_max.ptr
+ if (bitmap_max_size && typeof bitmap_max_size === 'object') {
+ bitmap_max_size = bitmap_max_size.ptr
+ }
+ _emscripten_bind_libass_oct_set_cache_limits_3(
+ self,
+ priv,
+ glyph_max,
+ bitmap_max_size
+ )
+}
+libass.prototype.oct_render_frame = libass.prototype.oct_render_frame = function (
+ priv,
+ track,
+ now,
+ detect_change
+) {
+ const self = this.ptr
+ if (priv && typeof priv === 'object') priv = priv.ptr
+ if (track && typeof track === 'object') track = track.ptr
+ if (now && typeof now === 'object') now = now.ptr
+ if (detect_change && typeof detect_change === 'object') {
+ detect_change = detect_change.ptr
+ }
+ return wrapPointer(
+ _emscripten_bind_libass_oct_render_frame_4(
+ self,
+ priv,
+ track,
+ now,
+ detect_change
+ ),
+ ASS_Image
+ )
+}
+libass.prototype.oct_new_track = libass.prototype.oct_new_track = function (
+ priv
+) {
+ const self = this.ptr
+ if (priv && typeof priv === 'object') priv = priv.ptr
+ return wrapPointer(
+ _emscripten_bind_libass_oct_new_track_1(self, priv),
+ ASS_Track
+ )
+}
+libass.prototype.oct_free_track = libass.prototype.oct_free_track = function (
+ track
+) {
+ const self = this.ptr
+ if (track && typeof track === 'object') track = track.ptr
_emscripten_bind_libass_oct_free_track_1(self, track)
-};
-libass.prototype["oct_alloc_style"] = libass.prototype.oct_alloc_style = function (track) {
- var self = this.ptr;
- if (track && typeof track === "object") track = track.ptr;
+}
+libass.prototype.oct_alloc_style = libass.prototype.oct_alloc_style = function (
+ track
+) {
+ const self = this.ptr
+ if (track && typeof track === 'object') track = track.ptr
return _emscripten_bind_libass_oct_alloc_style_1(self, track)
-};
-libass.prototype["oct_alloc_event"] = libass.prototype.oct_alloc_event = function (track) {
- var self = this.ptr;
- if (track && typeof track === "object") track = track.ptr;
+}
+libass.prototype.oct_alloc_event = libass.prototype.oct_alloc_event = function (
+ track
+) {
+ const self = this.ptr
+ if (track && typeof track === 'object') track = track.ptr
return _emscripten_bind_libass_oct_alloc_event_1(self, track)
-};
-libass.prototype["oct_free_style"] = libass.prototype.oct_free_style = function (track, sid) {
- var self = this.ptr;
- if (track && typeof track === "object") track = track.ptr;
- if (sid && typeof sid === "object") sid = sid.ptr;
+}
+libass.prototype.oct_free_style = libass.prototype.oct_free_style = function (
+ track,
+ sid
+) {
+ const self = this.ptr
+ if (track && typeof track === 'object') track = track.ptr
+ if (sid && typeof sid === 'object') sid = sid.ptr
_emscripten_bind_libass_oct_free_style_2(self, track, sid)
-};
-libass.prototype["oct_free_event"] = libass.prototype.oct_free_event = function (track, eid) {
- var self = this.ptr;
- if (track && typeof track === "object") track = track.ptr;
- if (eid && typeof eid === "object") eid = eid.ptr;
+}
+libass.prototype.oct_free_event = libass.prototype.oct_free_event = function (
+ track,
+ eid
+) {
+ const self = this.ptr
+ if (track && typeof track === 'object') track = track.ptr
+ if (eid && typeof eid === 'object') eid = eid.ptr
_emscripten_bind_libass_oct_free_event_2(self, track, eid)
-};
-libass.prototype["oct_flush_events"] = libass.prototype.oct_flush_events = function (track) {
- var self = this.ptr;
- if (track && typeof track === "object") track = track.ptr;
+}
+libass.prototype.oct_flush_events = libass.prototype.oct_flush_events = function (
+ track
+) {
+ const self = this.ptr
+ if (track && typeof track === 'object') track = track.ptr
_emscripten_bind_libass_oct_flush_events_1(self, track)
-};
-libass.prototype["oct_read_file"] = libass.prototype.oct_read_file = function (library, fname, codepage) {
- var self = this.ptr;
- ensureCache.prepare();
- if (library && typeof library === "object") library = library.ptr;
- if (fname && typeof fname === "object") fname = fname.ptr;
- else fname = ensureString(fname);
- if (codepage && typeof codepage === "object") codepage = codepage.ptr;
- else codepage = ensureString(codepage);
- return wrapPointer(_emscripten_bind_libass_oct_read_file_3(self, library, fname, codepage), ASS_Track)
-};
-libass.prototype["oct_add_font"] = libass.prototype.oct_add_font = function (library, name, data, data_size) {
- var self = this.ptr;
- ensureCache.prepare();
- if (library && typeof library === "object") library = library.ptr;
- if (name && typeof name === "object") name = name.ptr;
- else name = ensureString(name);
- if (data && typeof data === "object") data = data.ptr;
- else data = ensureString(data);
- if (data_size && typeof data_size === "object") data_size = data_size.ptr;
+}
+libass.prototype.oct_read_file = libass.prototype.oct_read_file = function (
+ library,
+ fname,
+ codepage
+) {
+ const self = this.ptr
+ ensureCache.prepare()
+ if (library && typeof library === 'object') library = library.ptr
+ if (fname && typeof fname === 'object') fname = fname.ptr
+ else fname = ensureString(fname)
+ if (codepage && typeof codepage === 'object') codepage = codepage.ptr
+ else codepage = ensureString(codepage)
+ return wrapPointer(
+ _emscripten_bind_libass_oct_read_file_3(self, library, fname, codepage),
+ ASS_Track
+ )
+}
+libass.prototype.oct_add_font = libass.prototype.oct_add_font = function (
+ library,
+ name,
+ data,
+ data_size
+) {
+ const self = this.ptr
+ ensureCache.prepare()
+ if (library && typeof library === 'object') library = library.ptr
+ if (name && typeof name === 'object') name = name.ptr
+ else name = ensureString(name)
+ if (data && typeof data === 'object') data = data.ptr
+ else data = ensureString(data)
+ if (data_size && typeof data_size === 'object') data_size = data_size.ptr
_emscripten_bind_libass_oct_add_font_4(self, library, name, data, data_size)
-};
-libass.prototype["oct_clear_fonts"] = libass.prototype.oct_clear_fonts = function (library) {
- var self = this.ptr;
- if (library && typeof library === "object") library = library.ptr;
+}
+libass.prototype.oct_clear_fonts = libass.prototype.oct_clear_fonts = function (
+ library
+) {
+ const self = this.ptr
+ if (library && typeof library === 'object') library = library.ptr
_emscripten_bind_libass_oct_clear_fonts_1(self, library)
-};
-libass.prototype["oct_step_sub"] = libass.prototype.oct_step_sub = function (track, now, movement) {
- var self = this.ptr;
- if (track && typeof track === "object") track = track.ptr;
- if (now && typeof now === "object") now = now.ptr;
- if (movement && typeof movement === "object") movement = movement.ptr;
+}
+libass.prototype.oct_step_sub = libass.prototype.oct_step_sub = function (
+ track,
+ now,
+ movement
+) {
+ const self = this.ptr
+ if (track && typeof track === 'object') track = track.ptr
+ if (now && typeof now === 'object') now = now.ptr
+ if (movement && typeof movement === 'object') movement = movement.ptr
return _emscripten_bind_libass_oct_step_sub_3(self, track, now, movement)
-};
-(function () {
- function setupEnums() {
- Module["ASS_HINTING_NONE"] = _emscripten_enum_ASS_Hinting_ASS_HINTING_NONE();
- Module["ASS_HINTING_LIGHT"] = _emscripten_enum_ASS_Hinting_ASS_HINTING_LIGHT();
- Module["ASS_HINTING_NORMAL"] = _emscripten_enum_ASS_Hinting_ASS_HINTING_NORMAL();
- Module["ASS_HINTING_NATIVE"] = _emscripten_enum_ASS_Hinting_ASS_HINTING_NATIVE();
- Module["ASS_SHAPING_SIMPLE"] = _emscripten_enum_ASS_ShapingLevel_ASS_SHAPING_SIMPLE();
- Module["ASS_SHAPING_COMPLEX"] = _emscripten_enum_ASS_ShapingLevel_ASS_SHAPING_COMPLEX();
- Module["ASS_OVERRIDE_DEFAULT"] = _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_DEFAULT();
- Module["ASS_OVERRIDE_BIT_STYLE"] = _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_STYLE();
- Module["ASS_OVERRIDE_BIT_SELECTIVE_FONT_SCALE"] = _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_SELECTIVE_FONT_SCALE();
- Module["ASS_OVERRIDE_BIT_FONT_SIZE"] = _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_FONT_SIZE();
- Module["ASS_OVERRIDE_BIT_FONT_SIZE_FIELDS"] = _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_FONT_SIZE_FIELDS();
- Module["ASS_OVERRIDE_BIT_FONT_NAME"] = _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_FONT_NAME();
- Module["ASS_OVERRIDE_BIT_COLORS"] = _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_COLORS();
- Module["ASS_OVERRIDE_BIT_ATTRIBUTES"] = _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_ATTRIBUTES();
- Module["ASS_OVERRIDE_BIT_BORDER"] = _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_BORDER();
- Module["ASS_OVERRIDE_BIT_ALIGNMENT"] = _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_ALIGNMENT();
- Module["ASS_OVERRIDE_BIT_MARGINS"] = _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_MARGINS();
- Module["ASS_OVERRIDE_FULL_STYLE"] = _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_FULL_STYLE();
- Module["ASS_OVERRIDE_BIT_JUSTIFY"] = _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_JUSTIFY()
+}
+;(function () {
+ function setupEnums () {
+ Module.ASS_HINTING_NONE = _emscripten_enum_ASS_Hinting_ASS_HINTING_NONE()
+ Module.ASS_HINTING_LIGHT = _emscripten_enum_ASS_Hinting_ASS_HINTING_LIGHT()
+ Module.ASS_HINTING_NORMAL = _emscripten_enum_ASS_Hinting_ASS_HINTING_NORMAL()
+ Module.ASS_HINTING_NATIVE = _emscripten_enum_ASS_Hinting_ASS_HINTING_NATIVE()
+ Module.ASS_SHAPING_SIMPLE = _emscripten_enum_ASS_ShapingLevel_ASS_SHAPING_SIMPLE()
+ Module.ASS_SHAPING_COMPLEX = _emscripten_enum_ASS_ShapingLevel_ASS_SHAPING_COMPLEX()
+ Module.ASS_OVERRIDE_DEFAULT = _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_DEFAULT()
+ Module.ASS_OVERRIDE_BIT_STYLE = _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_STYLE()
+ Module.ASS_OVERRIDE_BIT_SELECTIVE_FONT_SCALE = _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_SELECTIVE_FONT_SCALE()
+ Module.ASS_OVERRIDE_BIT_FONT_SIZE = _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_FONT_SIZE()
+ Module.ASS_OVERRIDE_BIT_FONT_SIZE_FIELDS = _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_FONT_SIZE_FIELDS()
+ Module.ASS_OVERRIDE_BIT_FONT_NAME = _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_FONT_NAME()
+ Module.ASS_OVERRIDE_BIT_COLORS = _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_COLORS()
+ Module.ASS_OVERRIDE_BIT_ATTRIBUTES = _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_ATTRIBUTES()
+ Module.ASS_OVERRIDE_BIT_BORDER = _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_BORDER()
+ Module.ASS_OVERRIDE_BIT_ALIGNMENT = _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_ALIGNMENT()
+ Module.ASS_OVERRIDE_BIT_MARGINS = _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_MARGINS()
+ Module.ASS_OVERRIDE_FULL_STYLE = _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_FULL_STYLE()
+ Module.ASS_OVERRIDE_BIT_JUSTIFY = _emscripten_enum_ASS_OverrideBits_ASS_OVERRIDE_BIT_JUSTIFY()
}
- if (runtimeInitialized) setupEnums();
+ if (runtimeInitialized) setupEnums()
else addOnPreMain(setupEnums)
-})();
-Module["FS"] = FS;
-self.delay = 0;
-self.lastCurrentTime = 0;
-self.rate = 1;
-self.rafId = null;
-self.nextIsRaf = false;
-self.lastCurrentTimeReceivedAt = Date.now();
-self.targetFps = 30;
-self.libassMemoryLimit = 0;
-self.renderOnDemand = false;
-self.dropAllAnimations = false;
-self.width = 0;
-self.height = 0;
-self.fontMap_ = {};
-self.fontId = 0;
+})()
+Module.FS = FS
+self.delay = 0
+self.lastCurrentTime = 0
+self.rate = 1
+self.rafId = null
+self.nextIsRaf = false
+self.lastCurrentTimeReceivedAt = Date.now()
+self.targetFps = 30
+self.libassMemoryLimit = 0
+self.renderOnDemand = false
+self.dropAllAnimations = false
+self.width = 0
+self.height = 0
+self.fontMap_ = {}
+self.fontId = 0
self.readDataUri = function (dataURI) {
- if (typeof dataURI !== "string") {
- throw new Error("Invalid argument: dataURI must be a string")
+ if (typeof dataURI !== 'string') {
+ throw new Error('Invalid argument: dataURI must be a string')
}
- dataURI = dataURI.split(",");
- var type = dataURI[0].split(":")[1].split(";")[0],
- byteString = atob(dataURI[1]),
- byteStringLength = byteString.length,
- arrayBuffer = new ArrayBuffer(byteStringLength),
- intArray = new Uint8Array(arrayBuffer);
- for (var i = 0; i < byteStringLength; i++) {
+ dataURI = dataURI.split(',')
+ const type = dataURI[0].split(':')[1].split(';')[0]
+ const byteString = atob(dataURI[1])
+ const byteStringLength = byteString.length
+ const arrayBuffer = new ArrayBuffer(byteStringLength)
+ const intArray = new Uint8Array(arrayBuffer)
+ for (let i = 0; i < byteStringLength; i++) {
intArray[i] = byteString.charCodeAt(i)
}
return intArray
-};
+}
self.decodeASSFontEncoding = function (input) {
- let output = new Uint8Array(input.length);
- let grouping = new Uint8Array(4);
- let offset = 0;
- let arrayOffset = 0;
- let writeOffset = 0;
- let charCode;
+ const output = new Uint8Array(input.length)
+ const grouping = new Uint8Array(4)
+ let offset = 0
+ let arrayOffset = 0
+ let writeOffset = 0
+ let charCode
while (offset < input.length) {
- charCode = input.charCodeAt(offset++);
+ charCode = input.charCodeAt(offset++)
if (charCode >= 33 && charCode <= 96) {
- grouping[arrayOffset++] = charCode - 33;
+ grouping[arrayOffset++] = charCode - 33
if (arrayOffset === 4) {
- output[writeOffset++] = grouping[0] << 2 | grouping[1] >> 4;
- output[writeOffset++] = (grouping[1] & 15) << 4 | grouping[2] >> 2;
- output[writeOffset++] = (grouping[2] & 3) << 6 | grouping[3];
+ output[writeOffset++] = (grouping[0] << 2) | (grouping[1] >> 4)
+ output[writeOffset++] = ((grouping[1] & 15) << 4) | (grouping[2] >> 2)
+ output[writeOffset++] = ((grouping[2] & 3) << 6) | grouping[3]
arrayOffset = 0
}
}
}
if (arrayOffset > 0) {
if (arrayOffset === 2) {
- output[writeOffset++] = (grouping[0] << 6 | grouping[1]) >> 4
+ output[writeOffset++] = ((grouping[0] << 6) | grouping[1]) >> 4
} else if (arrayOffset === 3) {
- let ix = (grouping[0] << 12 | grouping[1] << 6 | grouping[2]) >> 2;
- output[writeOffset++] = ix >> 8;
+ const ix = ((grouping[0] << 12) | (grouping[1] << 6) | grouping[2]) >> 2
+ output[writeOffset++] = ix >> 8
output[writeOffset++] = ix & 255
}
}
return output.slice(0, writeOffset)
-};
+}
self.writeFontToFS = function (font) {
- font = font.trim().toLowerCase();
- if (font.startsWith("@")) {
+ font = font.trim().toLowerCase()
+ if (font.startsWith('@')) {
font = font.substr(1)
}
- if (self.fontMap_.hasOwnProperty(font)) return;
- self.fontMap_[font] = true;
- var content;
- var name;
+ if (self.fontMap_.hasOwnProperty(font)) return
+ self.fontMap_[font] = true
+ let content
+ let name
if (self.availableFonts.hasOwnProperty(font)) {
- content = readBinary(self.availableFonts[font]);
- name = self.availableFonts[font].split("/").pop()
+ content = readBinary(self.availableFonts[font])
+ name = self.availableFonts[font].split('/').pop()
} else {
return
}
- Module["FS"].writeFile("/fonts/font" + self.fontId++ + "-" + name, content, {
- encoding: "binary"
+ Module.FS.writeFile('/fonts/font' + self.fontId++ + '-' + name, content, {
+ encoding: 'binary'
})
-};
+}
self.writeAvailableFontsToFS = function (content) {
- if (!self.availableFonts) return;
- var sections = parseAss(content);
- for (var i = 0; i < sections.length; i++) {
- for (var j = 0; j < sections[i].body.length; j++) {
- if (sections[i].body[j].key === "Style") {
- self.writeFontToFS(sections[i].body[j].value["Fontname"])
+ if (!self.availableFonts) return
+ const sections = parseAss(content)
+ for (let i = 0; i < sections.length; i++) {
+ for (let j = 0; j < sections[i].body.length; j++) {
+ if (sections[i].body[j].key === 'Style') {
+ self.writeFontToFS(sections[i].body[j].value.Fontname)
}
}
}
- var regex = /\\fn([^\\}]*?)[\\}]/g;
- var matches;
- while (matches = regex.exec(self.subContent)) {
+ const regex = /\\fn([^\\}]*?)[\\}]/g
+ let matches
+ while ((matches = regex.exec(self.subContent))) {
self.writeFontToFS(matches[1])
}
-};
+}
self.getRenderMethod = function () {
return offscreenRender
}
self.setTrack = function (content) {
- self.writeAvailableFontsToFS(content);
- Module["FS"].writeFile("/sub.ass", content);
- self.octObj.createTrack("/sub.ass");
- self.ass_track = self.octObj.track;
+ self.writeAvailableFontsToFS(content)
+ Module.FS.writeFile('/sub.ass', content)
+ self.octObj.createTrack('/sub.ass')
+ self.ass_track = self.octObj.track
if (!self.renderOnDemand) {
self.getRenderMethod()()
}
-};
+}
self.freeTrack = function () {
- self.octObj.removeTrack();
+ self.octObj.removeTrack()
if (!self.renderOnDemand) {
self.getRenderMethod()()
}
-};
+}
self.setTrackByUrl = function (url) {
- var content = "";
- if (url.endsWith(".br")) {
- content = Module["BrotliDecode"](readBinary(url))
+ let content = ''
+ if (url.endsWith('.br')) {
+ content = Module.BrotliDecode(readBinary(url))
} else {
content = read_(url)
}
self.setTrack(content)
-};
+}
self.resize = function (width, height) {
- self.width = width;
- self.height = height;
+ self.width = width
+ self.height = height
self.octObj.resizeCanvas(width, height)
-};
+}
self.getCurrentTime = function () {
- var diff = (Date.now() - self.lastCurrentTimeReceivedAt) / 1e3;
+ const diff = (Date.now() - self.lastCurrentTimeReceivedAt) / 1e3
if (self._isPaused) {
return self.lastCurrentTime
} else {
if (diff > 5) {
- console.error("Didn't received currentTime > 5 seconds. Assuming video was paused.");
+ console.error(
+ "Didn't received currentTime > 5 seconds. Assuming video was paused."
+ )
self.setIsPaused(true)
}
return self.lastCurrentTime + diff * self.rate
}
-};
+}
self.setCurrentTime = function (currentTime) {
- self.lastCurrentTime = currentTime;
- self.lastCurrentTimeReceivedAt = Date.now();
+ self.lastCurrentTime = currentTime
+ self.lastCurrentTimeReceivedAt = Date.now()
if (!self.rafId) {
if (self.nextIsRaf) {
if (!self.renderOnDemand) {
@@ -8973,21 +12791,21 @@ self.setCurrentTime = function (currentTime) {
}, 20)
}
}
-};
-self._isPaused = true;
+}
+self._isPaused = true
self.getIsPaused = function () {
return self._isPaused
-};
+}
self.setIsPaused = function (isPaused) {
if (isPaused != self._isPaused) {
- self._isPaused = isPaused;
+ self._isPaused = isPaused
if (isPaused) {
if (self.rafId) {
- clearTimeout(self.rafId);
+ clearTimeout(self.rafId)
self.rafId = null
}
} else {
- self.lastCurrentTimeReceivedAt = Date.now();
+ self.lastCurrentTimeReceivedAt = Date.now()
if (!self.renderOnDemand) {
self.rafId = self.requestAnimationFrame(self.getRenderMethod())
}
@@ -8998,27 +12816,48 @@ self.setIsPaused = function (isPaused) {
self.offscreenRender = function (force) {
self.rafId = 0
self.renderPending = false
- let startTime = performance.now();
- const result = self.octObj.renderImage(self.getCurrentTime() + self.delay, self.changed)
+ const startTime = performance.now()
+ const result = self.octObj.renderImage(
+ self.getCurrentTime() + self.delay,
+ self.changed
+ )
const changed = Module.getValue(self.changed, 'i32')
if ((Number(changed) !== 0 || force) && self.offscreenCanvas) {
const images = self.buildResultImage(result)
- let newTime = performance.now(),
- libassTime = newTime - startTime;
+ const newTime = performance.now()
+ const libassTime = newTime - startTime
const promises = []
for (let i = 0; i < images.length; i++) {
promises[i] = createImageBitmap(images[i].image)
}
Promise.all(promises).then(function (bitmaps) {
- let decodeTime = performance.now() - newTime;
- function renderFastFrames() {
- let beforeDrawTime = performance.now();
- self.offscreenCanvasCtx.clearRect(0, 0, self.offscreenCanvas.width, self.offscreenCanvas.height)
+ const decodeTime = performance.now() - newTime
+ function renderFastFrames () {
+ const beforeDrawTime = performance.now()
+ self.offscreenCanvasCtx.clearRect(
+ 0,
+ 0,
+ self.offscreenCanvas.width,
+ self.offscreenCanvas.height
+ )
for (let i = 0; i < bitmaps.length; i++) {
- self.offscreenCanvasCtx.drawImage(bitmaps[i], images[i].x, images[i].y)
+ self.offscreenCanvasCtx.drawImage(
+ bitmaps[i],
+ images[i].x,
+ images[i].y
+ )
}
- let drawTime = performance.now() - beforeDrawTime;
- console.log(bitmaps.length + ' bitmaps, libass: ' + libassTime + 'ms, decode: ' + decodeTime + 'ms, draw: ' + drawTime + 'ms');
+ const drawTime = performance.now() - beforeDrawTime
+ console.log(
+ bitmaps.length +
+ ' bitmaps, libass: ' +
+ libassTime +
+ 'ms, decode: ' +
+ decodeTime +
+ 'ms, draw: ' +
+ drawTime +
+ 'ms'
+ )
}
self.requestAnimationFrame(renderFastFrames)
})
@@ -9053,7 +12892,8 @@ self.buildResultImageItem = function (ptr) {
if (a === 0) {
return null
}
- const c = (color << 8 & 0xFF0000) | (color >> 8 & 0xFF00) | (color >> 24 & 0xFF) // black magic
+ const c =
+ ((color << 8) & 0xff0000) | ((color >> 8) & 0xff00) | ((color >> 24) & 0xff) // black magic
const buf = new ArrayBuffer(w * h * 4)
const buf8 = new Uint8ClampedArray(buf)
const data = new Uint32Array(buf) // operate on a single position, instead of 4 positions at once
@@ -9064,7 +12904,7 @@ self.buildResultImageItem = function (ptr) {
for (let x = 0, z = w; z--; ++x, resultPosition++) {
const k = Module.HEAPU8[offset + x]
if (k !== 0) {
- data[resultPosition] = a * k << 24 | c // more black magic
+ data[resultPosition] = ((a * k) << 24) | c // more black magic
}
}
}
@@ -9084,7 +12924,7 @@ if (typeof SDL !== 'undefined') {
SDL.defaults.opaqueFrontBuffer = false
}
-function FPSTracker(text) {
+function FPSTracker (text) {
let last = 0
let mean = 0
let counter = 0
@@ -9106,7 +12946,7 @@ function FPSTracker(text) {
* Parse the content of an .ass file.
* @param {!string} content the content of the file
*/
-function parseAss(content) {
+function parseAss (content) {
let m, format, lastPart, parts, key, value, tmp, i, j, body
const sections = []
const lines = content.split(/[\r\n]+/g)
@@ -9130,7 +12970,10 @@ function parseAss(content) {
} else {
parts = lines[i].split(':')
key = parts[0]
- value = parts.slice(1).join(':').trim()
+ value = parts
+ .slice(1)
+ .join(':')
+ .trim()
if (format || key === 'Format') {
value = value.split(',')
if (format && value.length > format.length) {
@@ -9161,7 +13004,7 @@ function parseAss(content) {
}
return sections
-};
+}
self.requestAnimationFrame = (function () {
// similar to Browser.requestAnimationFrame
@@ -9172,7 +13015,8 @@ self.requestAnimationFrame = (function () {
if (nextRAF === 0) {
nextRAF = now + 1000 / self.targetFps
} else {
- while (now + 2 >= nextRAF) { // fudge a little, to avoid timer jitter causing us to do lots of delay:0
+ while (now + 2 >= nextRAF) {
+ // fudge a little, to avoid timer jitter causing us to do lots of delay:0
nextRAF += 1000 / self.targetFps
}
}
@@ -9187,14 +13031,14 @@ const screen = {
height: 0
}
-Module.print = function Module_print(x) {
+Module.print = function Module_print (x) {
// dump('OUT: ' + x + '\n');
postMessage({
target: 'stdout',
content: x
})
}
-Module.printErr = function Module_printErr(x) {
+Module.printErr = function Module_printErr (x) {
// dump('ERR: ' + x + '\n');
postMessage({
target: 'stderr',
@@ -9228,7 +13072,7 @@ addRunDependency('worker-init')
let messageBuffer = null
let messageResenderTimeout = null
-function messageResender() {
+function messageResender () {
if (calledMain) {
assert(messageBuffer && messageBuffer.length > 0)
messageResenderTimeout = null
@@ -9241,7 +13085,7 @@ function messageResender() {
}
}
-function _applyKeys(input, output) {
+function _applyKeys (input, output) {
const vargs = Object.keys(input)
for (let i = 0; i < vargs.length; i++) {
@@ -9249,7 +13093,7 @@ function _applyKeys(input, output) {
}
}
-function onMessageFromMainEmscriptenThread(message) {
+function onMessageFromMainEmscriptenThread (message) {
if (!calledMain && !message.data.preMain) {
if (!messageBuffer) {
messageBuffer = []
@@ -9319,7 +13163,8 @@ function onMessageFromMainEmscriptenThread(message) {
}
}
self.targetFps = message.data.targetFps || self.targetFps
- self.libassMemoryLimit = message.data.libassMemoryLimit || self.libassMemoryLimit
+ self.libassMemoryLimit =
+ message.data.libassMemoryLimit || self.libassMemoryLimit
self.libassGlyphLimit = message.data.libassGlyphLimit || 0
self.renderOnDemand = message.data.renderOnDemand || false
self.dropAllAnimations = message.data.dropAllAnimations || false
@@ -9327,9 +13172,11 @@ function onMessageFromMainEmscriptenThread(message) {
break
}
case 'oneshot-render':
- self.oneshotRender(message.data.lastRendered,
+ self.oneshotRender(
+ message.data.lastRendered,
message.data.renderNow || false,
- message.data.iteration)
+ message.data.iteration
+ )
break
case 'destroy':
self.octObj.quitLibrary()
@@ -9463,7 +13310,9 @@ function onMessageFromMainEmscriptenThread(message) {
if (Module.onCustomMessage) {
Module.onCustomMessage(message)
} else {
- console.error('Custom message received but worker Module.onCustomMessage not implemented.')
+ console.error(
+ 'Custom message received but worker Module.onCustomMessage not implemented.'
+ )
}
break
}
@@ -9474,11 +13323,11 @@ function onMessageFromMainEmscriptenThread(message) {
default:
throw new Error('wha? ' + message.data.target)
}
-};
+}
onmessage = onMessageFromMainEmscriptenThread
-function postCustomMessage(data) {
+function postCustomMessage (data) {
postMessage({
target: 'custom',
userData: data
@@ -9516,10 +13365,18 @@ self.runBenchmark = function (seconds, pos, async) {
return true
}
} else {
- console.log('Performance fps: ' + Math.round(1000 / (totalTime / count)) + '')
+ console.log(
+ 'Performance fps: ' + Math.round(1000 / (totalTime / count)) + ''
+ )
console.log('Real fps: ' + Math.round(1000 / ((t1 - start) / count)) + '')
console.log('Total time: ' + totalTime)
- console.log('Longest frame: ' + Math.ceil(longestFrame) + 'ms (' + Math.floor(1000 / longestFrame) + ' fps)')
+ console.log(
+ 'Longest frame: ' +
+ Math.ceil(longestFrame) +
+ 'ms (' +
+ Math.floor(1000 / longestFrame) +
+ ' fps)'
+ )
return false
}
@@ -9530,4 +13387,4 @@ self.runBenchmark = function (seconds, pos, async) {
break
}
}
-}
\ No newline at end of file
+}
diff --git a/request/index.php b/request/index.php
deleted file mode 100644
index 7963f38..0000000
--- a/request/index.php
+++ /dev/null
@@ -1,64 +0,0 @@
- (time() - 60 * 1)))
- {
- // Cache file is less than five minutes old.
- // Don't bother refreshing, just use the file as-is.
- $file = file_get_contents($cache_file);
- header('Content-Type: text/xml');
- //echo 'case fucking 1';
- echo $file;
- }
- else
- {
- // Our cache is out-of-date, so load the data from our remote server,
- // and also save it over our cache for next time.
- $file = file_get_contents(str_replace(" ", "+", $url));
- file_put_contents($cache_file, $file, LOCK_EX);
- header('Content-Type: text/xml');
- // echo 'case fucking 2';
- echo $file;
- }
- }
- }
- }
- elseif (substr($url, 0, 31) === "https://www.erai-raws.info/rss-") {
- $query = explode("https://www.erai-raws.info/rss-", $url) [1];
- $query_check = basename(realpath($query));
- if ($query_check === "") {
- if (strpos($query, '/') === false) {
- $cache_file = './cache_erai/' . $query;
- // echo $url.'\n';
- // echo $cache_file.'\n';
- if (file_exists($cache_file) && (filemtime($cache_file) > (time() - 60 * 1))) {
- // Cache file is less than five minutes old.
- // Don't bother refreshing, just use the file as-is.
- $file = file_get_contents($cache_file);
- header('Content-Type: text/xml');
- //echo 'case fucking 1';
- echo $file;
- }
- else {
- // Our cache is out-of-date, so load the data from our remote server,
- // and also save it over our cache for next time.
- $file = file_get_contents(str_replace(" ", "+", $url));
- file_put_contents($cache_file, $file, LOCK_EX);
- header('Content-Type: text/xml');
- // echo 'case fucking 2';
- echo $file;
- }
- }
- }
- }
-?>