1
0
This repository has been archived on 2025-03-06. You can view files and clone it, but cannot push or open issues or pull requests.
on-restart-benchmarks/software/minizinc/cmake/support/emscripten_file_packager_patch.js

45 lines
1.8 KiB
JavaScript

function filePackagerPatch_getPreloadedPackageNode(filename) {
var fs = require('fs');
var path = require('path');
filename = path.normalize(path.resolve(__dirname, filename));
const buf = fs.readFileSync(filename);
// convert to ArrayBuffer
return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);
}
function filePackagerPatch_isNodeOrShell() {
var ENVIRONMENT_IS_WEB = typeof window === 'object';
var ENVIRONMENT_IS_WORKER = typeof importScripts === 'function';
var ENVIRONMENT_IS_NODE = typeof process === 'object' && typeof require === 'function' && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER;
var ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER;
return ENVIRONMENT_IS_NODE || ENVIRONMENT_IS_SHELL;
}
if (typeof location === 'undefined') {
// create a fake location to overrule the file_packager
var location = {
pathname: '/'
};
}
if (filePackagerPatch_isNodeOrShell()) {
Module.getPreloadedPackage = Module.getPreloadedPackage || filePackagerPatch_getPreloadedPackageNode;
} else {
// need a hack to locate relative file in browser settings for the file packager
var wrappee = Module.locateFile || function (path, prefix) {return prefix + path};
Module.locateFile = function (path, prefix) {
if (prefix || !path.endsWith('.data')) {
return wrappee(path, prefix);
}
// file packager is called before a proper script location decection
var base = _scriptDir ? _scriptDir : (typeof importScripts === 'function' ? self.location.href : (typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : ''));
if (base.indexOf('blob:') !== 0) {
base = base.substr(0, base.lastIndexOf('/') + 1);
} else {
base = '';
}
return wrappee(path, base);
};
}