Commit Graph

149 Commits

Author SHA1 Message Date
Alexey Andreev
02b3c92912 JS: use native string to represent internals of java.lang.String 2023-10-21 19:30:16 +02:00
Alexey Andreev
772dd9eded JS: fix returning JSO objects from Async methods
Fix #805
2023-10-12 21:13:09 +02:00
Alexey Andreev
eed44998f0 jso: trying to improve optimization of JSWrapper 2023-09-27 13:50:30 +02:00
Alexey Andreev
b9f5e9be1c JS: optimize case when JS method returns java.lang.Object and then treated as JS object 2023-08-04 20:40:57 +02:00
Alexey Andreev
35f1284ac5 js: fix issue in obfuscated mode 2023-08-04 10:27:44 +02:00
Alexey Andreev
f30a050bfd JS: relax several JSO declarations to accept Object instead of JSObject 2023-08-03 20:50:22 +02:00
Alexey Andreev
334e2829b3 JS: supports module imports in JSBody 2023-08-03 15:42:15 +02:00
Alexey Andreev
a1ed797d73 JS: allow passing Object to JS methods 2023-07-31 20:42:09 +02:00
Alexey Andreev
4cfbca96b8 JS: fix visibility modifier for consistency 2023-07-31 13:13:35 +02:00
Alexey Andreev
c4c6b029e3 JS: add support for exporting Java methods as JS properties 2023-07-30 20:48:43 +02:00
Alexey Andreev
948244cbf4 JS: marshall JS object to Java in a wrapper 2023-07-29 18:54:23 +02:00
Alexey Andreev
8014c038c0 Migrate to gradle 2023-01-23 17:16:07 +01:00
Alexey Andreev
64ae44ee01 JS: store global object in a variable to avoid name clashes between generated declarations (in minified mode) and global declarations 2022-11-17 12:02:46 +01:00
Alexey Andreev
81bfe3f6e2 Improve pom.xml configuration 2021-03-18 11:16:41 +03:00
Alexey Andreev
195f4c8426 Fix checkstyle error 2021-03-18 00:12:42 +03:00
Alexey Andreev
4c0c7872a1 JS: add support for CCE in strict mode 2021-03-17 21:11:18 +03:00
Alexey Andreev
d76eeb9be3 Improve <clinit> elimination. Improve inlining in ADVANCED optimization mode 2020-02-14 12:46:57 +03:00
Alexey Andreev
fb78377db8 Fix various issues reported by PVS Studio and LGTM 2019-10-31 14:36:37 +03:00
Alexey Andreev
f0b6cc2f30 Update version to 0.7.0 2019-09-24 16:26:14 +03:00
Alexey Andreev
62b3c68a5b Don't report compile-0time error when there's possible way to reach suspension point. Generate runtime error instead. 2019-06-22 23:30:05 +03:00
Alexey Andreev
ca50f72fe9 Fix displaying diagnostics in out-of-process mode 2019-05-14 14:46:44 +03:00
Alexey Andreev
f33c90f778 Improve <clinit> elimination:
* Generate clinit instruction instead of calling <clinit>
  directly
* Rename annotation that indicates absence of side effects
* Don't apply this annotation automatically to all JSBody methods
2019-03-24 12:54:06 +03:00
Alexey Andreev
de84105241 Call <clinit> methods before main method when possible, eliminate
lazy class initialization for these <clinit> methods.
2019-03-22 19:40:56 +03:00
Alexey Andreev
ac627580c6 JS: Support JSByRef annotation on method return types 2019-03-21 18:09:38 +03:00
Alexey Andreev
68522811f2 Fix issue with incremental compilation and JSBody annotation 2019-01-23 19:24:42 +03:00
Alexey Andreev
9305a532bb Replace ArrayList with array to store arguments of InvokeInstruction 2019-01-09 12:51:52 +03:00
Alexey Andreev
f589b0035a Decrease memory consumption 2018-12-29 19:02:03 +03:00
Alexey Andreev
d74bcbe2b9 Fast dependency analyzer, fix bugs in incremental compiler 2018-12-07 17:41:21 +03:00
Alexey Andreev
a3dfc0c486 Add API to catch native JS exceptions 2018-11-23 19:54:37 +03:00
Alexey Andreev
753755918d Update build config to avoid jar hell 2018-11-22 14:49:30 +03:00
Alexey Andreev
fc799afcda Add Maven option to run TeaVM in a separate process 2018-11-20 14:22:35 +03:00
Alexey Andreev
e5c85dd3bd Prevent inlining of JSBody code in some complex cases 2018-11-16 19:04:15 +03:00
Alexey Andreev
4d2c075c07 Always embed runtime into generated file. Remove 'runtime' build property 2018-10-28 00:15:36 +03:00
Alexey Andreev
6551f3eb68 Make JS function out of JS object when casting to JSFunctor interface 2018-10-24 14:30:26 +03:00
Alexey Andreev
b66053f5ce Don't generate virtual wrappers for methods that aren't ever called virtually 2018-10-04 11:55:34 +03:00
Alexey Andreev
4b77a5d15f Fix String.contains. Fix crashing in rare cases or improper use of JSO 2018-09-19 12:47:32 +03:00
Alexey Andreev konsoletyper@gmail.com
fe47fe19ce Fix build under JDK9+ 2018-03-28 22:54:55 +03:00
Alexey Andreev
8dea7e9035 Fix reporting error on calling async method from native method 2018-01-08 19:56:47 +03:00
Steve Hannah
b1b602f048 Fixed NPE when padding null arrays to JSO methods that accept arrays. 2017-12-01 19:19:04 +03:00
Alexey Andreev
cc0f7583b0 Minor performance improvement 2017-11-26 14:53:56 +03:00
Alexey Andreev
ff19dc15c9 Further bootstrapping 2017-11-26 13:14:02 +03:00
Alexey Andreev
25011ee7a6 Remove outdated hack when Class.parent could be non-null for root classes 2017-10-29 21:41:49 +03:00
Alexey Andreev
2aa9d5b24a Fix unwrapping null JS functions in JSO 2017-07-17 22:16:30 +03:00
Alexey Andreev
cdec4560ba Remove dumb comments containing only @author annotation 2017-07-01 13:13:52 +03:00
Alexey Andreev
59e5c16b31 Update version to 0.6.0-SNAPSHOT 2017-06-19 20:50:19 +03:00
Alexey Andreev
2992c6e406 Wrap function by an object if returning value of native method is
a JSFunctor interface.

See #280
2017-06-11 00:15:41 +03:00
Alexey Andreev
45ba247265 When Java class gets exported to JS, generate bridges for its
methods so that these bridges perform type conversion
between Java and JS
2017-06-09 00:02:28 +03:00
Alexey Andreev
933a5c3efc Code style fixes 2017-05-30 22:49:40 +03:00
marciodel
5ecfb3620c Support for default and static methods in Functors 2017-05-30 22:45:14 +03:00
Alexey Andreev
3791b806b9 Weaken rules for names of JSProperty methods
First, accept first character if it's a non-letter character.
Second, don't validate name of method when JSProperty specifies
name of the JS property explicitly.

See #277
2017-05-29 23:54:43 +03:00
Alexey Andreev
058566e731 Fix bug in JSO 2017-04-22 14:11:24 +03:00
Alexey Andreev
55453c9311 Set version to 0.5.0-SNAPSHOT. Add configuration to deploy to bintray. Update version number during Travis build. 2017-02-16 21:48:13 +03:00
Alexey Andreev
c7829a77cf Fix diagnostics tests 2017-01-24 23:42:41 +03:00
Alexey Andreev
c1cddc5a71 Add JSByRef annotation to specify which parameters to pass to JS by reference 2017-01-23 23:10:35 +03:00
Alexey Andreev
727c831467 Use new null checker in optimizer. Fix multiple bugs in optimizer and IR 2017-01-03 23:39:43 +03:00
Alexey Andreev
ae5e1e4962 Store instructions as double-linked list instead of ArrayList 2016-12-20 00:03:14 +03:00
Alexey Andreev
af10879a81 Remove unnecessary IDEA project files 2016-10-27 12:55:28 +03:00
Alexey Andreev
b3b1b54582 Remove unnecessary dependencies 2016-10-26 15:02:41 +03:00
Alexey Andreev
ed7e8ff7f4 javascript: refactor renderer 2016-09-17 09:21:26 +03:00
Alexey Andreev
1c1b0c69fa Propagating variable name via compiler's pipeline 2016-09-17 09:11:59 +03:00
Alexey Andreev
4fd20794c1 Refactoring. Fix checkstyle errors 2016-09-17 09:11:07 +03:00
Alexey Andreev
9fb97fd53f Refactoring 2016-09-17 09:00:40 +03:00
Alexey Andreev
1be9ffb19e Rename InstructionLocation to TextLocation. Replace NodeLocation by TextLocation 2016-09-17 08:59:03 +03:00
Alexey Andreev
a1fe87ff70 Move several annotations 2016-09-17 08:59:01 +03:00
Alexey Andreev
47997cde87 Rename target package to backend to avoid gitignore 2016-09-17 08:59:00 +03:00
Alexey Andreev
89c16b9807 Fixing bugs in WASM emitter 2016-09-17 08:58:56 +03:00
Alexey Andreev
789119e6ea Move ast package off javascript 2016-09-17 08:55:58 +03:00
Alexey Andreev
52ace0c252 Refactor TeaVM to support pluggable targets like JavaScript, WebAssembly, LLVM, etc (with only JavaScript target for now) 2016-09-17 08:55:44 +03:00
Alexey Andreev
d196eb9864 Further work on incremental phi updater 2016-06-05 20:58:23 +03:00
Alexey Andreev
3c93b78902 Implementing loop inversion 2016-05-09 18:13:00 +03:00
Alexey Andreev
0d3d6e883d Improving build diagnostics in IDEA. Fix minor problems in JSO 2016-04-21 22:29:40 +03:00
Alexey Andreev
92dbed2593 Start porting metaprogramming API implementation 2016-02-22 23:59:54 +03:00
Alexey Andreev
8db424809a Update IDEA configuration. Add metaprogramming API 2016-02-21 23:35:17 +03:00
Alexey Andreev
7d7808bb13 Fix maven build 2016-02-21 22:36:45 +03:00
Alexey Andreev
5706012d0e Ignore IDEA files 2016-02-19 22:17:57 +03:00
Alexey Andreev
863a4b76ff Struggiling with JAR hell in JPS plugin 2016-02-16 23:51:50 +03:00
Alexey Andreev
78d6917a23 Temporary 2016-02-07 21:22:21 +03:00
Alexey Andreev
5dad013cc7 Migration to IDEA 2016-02-07 14:28:51 +03:00
Alexey Andreev
33d61412fb Reduce amount of generated JSO aliases 2015-12-25 22:39:25 +03:00
Alexey Andreev
03538071c4 Prevent JSBody from inlining if its argumet get used more than once 2015-12-25 21:48:32 +03:00
Alexey Andreev
0369d100c6 Make JSBody report about wrong parameter/returning type/instance type to
avoid confusion like this:
https://github.com/konsoletyper/teavm/issues/164
2015-12-25 19:04:54 +03:00
Alexey Andreev
4c4d236653 Switch all versions to 1.0.0-SNAPSHOT. Prototyping version switch script 2015-12-24 21:26:29 +03:00
Alexey Andreev
7b33bb643e Raise version to 0.4.1 2015-11-30 20:27:01 +03:00
Alexey Andreev
e4a83b7d79 Raise version to 0.4.1-SNAPSHOT 2015-10-25 19:27:30 +03:00
Alexey Andreev
f25b2d46e8 Change version to 0.4.0 2015-10-22 08:25:53 +03:00
Alexey Andreev
fb3412b4c0 Fix generation of JS aliases for Java objects 2015-10-21 21:56:08 +03:00
Alexey Andreev
8702f7ee33 Repair incremental builder 2015-10-21 20:51:43 +03:00
Alexey Andreev
ce83560279 Fix failed tests 2015-10-21 16:35:33 +03:00
Alexey Andreev
2640234391 Rename achieved -> reached. Fix - operator generation in minified mode 2015-10-21 12:08:30 +03:00
Alexey Andreev
891ec3e6fd Improve async code example. Don't generate JSO aliases for static
methods
2015-10-20 23:05:55 +03:00
Alexey Andreev
385b696de9 Add mocks for WebSockets in html4j 2015-10-20 22:21:06 +03:00
Alexey Andreev
64e39be307 Trying to fix JSONP calls in Html4j tests 2015-10-20 18:20:32 +03:00
Alexey Andreev
24952e5b86 Fix bug in JSO implementation 2015-10-12 21:26:05 +03:00
Alexey Andreev
f5b21f9455 Fix constructor publishing in JSO 2015-10-11 19:03:15 +03:00
Alexey Andreev
7c4b4ebe77 Fix bug. Integrate precedence API into JSO 2015-10-11 18:03:46 +03:00
Alexey Andreev
6d23626867 Refactor precedence support 2015-10-11 17:30:28 +03:00
Alexey Andreev
5522f55c68 Deep refactoring of tooling libraries 2015-10-09 17:56:38 +03:00
Alexey Andreev
219fab22ef Move JSO wrappers to separate project 2015-10-04 12:14:36 +03:00
Alexey Andreev
3341df3668 Change directory structure 2015-10-04 11:49:20 +03:00