chore: update node_modules with new binary files and dependencies
- Add new binary files for nodemon, onnxruntime-web, and xenova/transformers - Update various JavaScript and TypeScript files in node_modules - Remove unused files and dependencies - Add new test fixtures and documentation files
This commit is contained in:
57
node_modules/onnxruntime-web/lib/onnxjs/backends/webgl/glsl-function-inliner.js
generated
vendored
Normal file
57
node_modules/onnxruntime-web/lib/onnxjs/backends/webgl/glsl-function-inliner.js
generated
vendored
Normal file
@@ -0,0 +1,57 @@
|
||||
"use strict";
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// Licensed under the MIT License.
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.replaceInlines = void 0;
|
||||
const INLINE_FUNC_DEF_REGEX = /@inline[\s\n\r]+(\w+)[\s\n\r]+([0-9a-zA-Z_]+)\s*\(([^)]*)\)\s*{(([^}]|[\n\r])*)}/gm;
|
||||
const FUNC_CALL_REGEX = '(\\w+)?\\s+([_0-9a-zA-Z]+)\\s+=\\s+__FUNC__\\((.*)\\)\\s*;';
|
||||
/**
|
||||
* GLSL preprocessor responsible for resolving @inline directives
|
||||
*/
|
||||
function replaceInlines(script) {
|
||||
const inlineDefs = {};
|
||||
let match;
|
||||
while ((match = INLINE_FUNC_DEF_REGEX.exec(script)) !== null) {
|
||||
const params = match[3]
|
||||
.split(',')
|
||||
.map(s => {
|
||||
const tokens = s.trim().split(' ');
|
||||
if (tokens && tokens.length === 2) {
|
||||
return { type: tokens[0], name: tokens[1] };
|
||||
}
|
||||
return null;
|
||||
})
|
||||
.filter(v => v !== null);
|
||||
inlineDefs[match[2]] = { params, body: match[4] };
|
||||
}
|
||||
for (const name in inlineDefs) {
|
||||
const regexString = FUNC_CALL_REGEX.replace('__FUNC__', name);
|
||||
const regex = new RegExp(regexString, 'gm');
|
||||
while ((match = regex.exec(script)) !== null) {
|
||||
const type = match[1];
|
||||
const variable = match[2];
|
||||
const params = match[3].split(',');
|
||||
const declLine = (type) ? `${type} ${variable};` : '';
|
||||
let newBody = inlineDefs[name].body;
|
||||
let paramRedecLine = '';
|
||||
inlineDefs[name].params.forEach((v, i) => {
|
||||
if (v) {
|
||||
paramRedecLine += `${v.type} ${v.name} = ${params[i]};\n`;
|
||||
}
|
||||
});
|
||||
newBody = `${paramRedecLine}\n ${newBody}`;
|
||||
newBody = newBody.replace('return', `${variable} = `);
|
||||
const replacement = `
|
||||
${declLine}
|
||||
{
|
||||
${newBody}
|
||||
}
|
||||
`;
|
||||
script = script.replace(match[0], replacement);
|
||||
}
|
||||
}
|
||||
script = script.replace(INLINE_FUNC_DEF_REGEX, '');
|
||||
return script;
|
||||
}
|
||||
exports.replaceInlines = replaceInlines;
|
||||
//# sourceMappingURL=glsl-function-inliner.js.map
|
||||
Reference in New Issue
Block a user