1
0
mirror of https://github.com/quinton-ashley/java2js synced 2024-12-29 10:11:54 +01:00
This commit is contained in:
Quinton Ashley 2022-04-29 11:48:49 -05:00
parent d1dbf3b6f2
commit bafdc47b1d
3 changed files with 19460 additions and 44 deletions

32
jdk.js
View File

@ -221,8 +221,24 @@
let packageName = (file.match(/package\s+([^;]+)/gm) || [])[1] || 'default'; let packageName = (file.match(/package\s+([^;]+)/gm) || [])[1] || 'default';
let trans = await java_to_javascript(file); let trans;
let workerPath = this.root.split('/').slice(0, -1).join('/') + '/transpile_worker.js';
try {
let worker = new Worker(workerPath);
worker.postMessage(file);
await new Promise((resolve, reject) => {
worker.onmessage = (e) => {
trans = e.data;
resolve();
};
});
} catch (ror) {
console.warn(
'Due to a likely CORS error, java2js was unable to transpile with multithreaded worker: ' + workerPath
);
trans = java_to_javascript(file);
}
// log(trans); // log(trans);
// TODO fix this by adding real support for lambda // TODO fix this by adding real support for lambda
@ -19572,9 +19588,8 @@
* @return {string} - Converted JavaScript * @return {string} - Converted JavaScript
*/ */
const javaToJavascript = (javaString, options = {}, progress) => { const javaToJavascript = (javaString, options = {}, progress) => {
return new Promise((resolve, reject) => {
if (typeof javaString !== 'string') { if (typeof javaString !== 'string') {
reject('java-to-javascript: First argument must be a string'); throw 'java-to-javascript: First argument must be a string';
} }
// Reset opts parameters // Reset opts parameters
@ -19597,8 +19612,8 @@
javaAST$$1 = javaAST.parse(javaString); javaAST$$1 = javaAST.parse(javaString);
} catch (e) { } catch (e) {
let line = e.location.start.line; let line = e.location.start.line;
if (e.location) reject(`on line ${line}: \n\n${javaString.split('\n')[line - 1].trim()}\n\n${e.stack}`); if (e.location) throw `on line ${line}: \n\n${javaString.split('\n')[line - 1].trim()}\n\n${e.stack}`;
else reject(e); else throw e;
} }
if (progress) progress(0.5, 'Converting to JavaScript'); if (progress) progress(0.5, 'Converting to JavaScript');
@ -19607,9 +19622,7 @@
if (options.p5) { if (options.p5) {
jsString = globalsToJs(parseClass(javaAST$$1.types[0], true)); jsString = globalsToJs(parseClass(javaAST$$1.types[0], true));
} else { } else {
jsString = javaAST$$1.types jsString = javaAST$$1.types.map((globalClass) => classToJs(parseClass(globalClass))).join(opts.separator);
.map((globalClass) => classToJs(parseClass(globalClass)))
.join(opts.separator);
} }
if (progress) progress(0.75, 'Beautifying'); if (progress) progress(0.75, 'Beautifying');
@ -19623,8 +19636,7 @@
if (progress) progress(1.0, 'Success'); if (progress) progress(1.0, 'Success');
resolve(jsString); return jsString;
});
}; };
var lib = javaToJavascript; var lib = javaToJavascript;

View File

@ -1,6 +1,6 @@
{ {
"name": "java2js", "name": "java2js",
"version": "1.2.8", "version": "1.2.9",
"description": "Converts Java to JavaScript and runs it with a JS JDK", "description": "Converts Java to JavaScript and runs it with a JS JDK",
"main": "jdk.js", "main": "jdk.js",
"scripts": { "scripts": {

19404
transpile_worker.js Normal file

File diff suppressed because it is too large Load Diff