Граф коммитов

192 Коммитов

Автор SHA1 Сообщение Дата
Andreas Gal 2f4d32f420 implement threading better 2014-07-27 23:39:41 -07:00
Andreas Gal 903f06b04d fix wide opcode handling 2014-07-27 21:51:08 -07:00
Andreas Gal cf318d6da1 add support for Mauve-style testlets, and fix interface cast check and assigning null to an array 2014-07-26 14:18:44 -07:00
Andreas Gal d394243a8a better locking for class intialization 2014-07-26 11:42:02 -07:00
Andreas Gal e7334a29e2 add debug code and move all but actual clinit call into ClassInfo constructor 2014-07-25 20:14:19 -07:00
Andreas Gal 600324794d assorted fixes to make TestThread work 2014-07-25 17:54:34 -07:00
Andreas Gal c761251cbc make all tests pass again 2014-07-25 15:06:21 -07:00
Andreas Gal 2b48b809b0 pop this in Runtime native methods 2014-07-25 13:42:44 -07:00
Andreas Gal a976bfe339 fix synthetic method code 2014-07-25 13:23:10 -07:00
Andreas Gal 72f91a6a1a big refactoring to eliminate nested interpreter loops 2014-07-25 13:06:48 -07:00
Andreas Gal 5f1e87b04a remove callback pattern 2014-07-24 00:21:59 -07:00
Andreas Gal 3ea4822dc0 properly chain all initClass calls from vm 2014-07-22 15:06:56 -07:00
Andreas Gal 44b74a7462 start properly chaning initClass 2014-07-22 15:04:46 -07:00
Andreas Gal f0205086a5 don't do context switches until we properly chain invocations 2014-07-22 14:38:36 -07:00
Andreas Gal 697d6f14d3 move initClass to frame 2014-07-21 02:04:14 -07:00
Andreas Gal 3ffc368260 move newException onto frame 2014-07-21 02:01:06 -07:00
Andreas Gal f4c46b933d move invokeConstructor and newString onto frame 2014-07-21 01:50:36 -07:00
Andreas Gal a80ad600fd use bind instead of a closure 2014-07-21 00:28:37 -07:00
Andreas Gal 5646fdba9c fix monitor enter/leave 2014-07-21 00:27:22 -07:00
Andreas Gal 91428be4e3 implement synchronized methods 2014-07-20 23:14:21 -07:00
Andreas Gal 056979813e implement monitorenter/leave 2014-07-20 22:46:25 -07:00
Andreas Gal 2e38af5114 eliminate thread variable in dispatch loop 2014-07-20 22:26:29 -07:00
Andreas Gal db8f263702 support for actual multithreading 2014-07-20 22:24:07 -07:00
Andreas Gal 409685d5cb cut the stack when delivering an exception 2014-07-20 21:59:43 -07:00
Andreas Gal 517bca78d8 newObject takes a classInfo object and no longer implicitly inits the class 2014-07-20 21:57:00 -07:00
Andreas Gal d371434057 cleanup native method dispatch 2014-07-20 21:32:47 -07:00
Andreas Gal 1b3d71607d flag whether class still needs initialization so we can bypass the initClass call 2014-07-20 21:17:08 -07:00
Andreas Gal 6109859fc7 implement rescheduling requests from within natives 2014-07-20 16:41:30 -07:00
Andreas Gal 1cce1794e6 factor out invokeConstructorWithString 2014-07-20 15:49:57 -07:00
Andreas Gal 2b24ecf72c create exceptions on the current thread, not the main thread 2014-07-20 15:46:22 -07:00
Andreas Gal c53c68007a note current thread in frame in invoke path 2014-07-20 15:42:23 -07:00
Andreas Gal 8008918b51 move newException to classes from vm 2014-07-20 15:35:48 -07:00
Andreas Gal e24bf99d08 changed my mind, move bootstrap code into classes 2014-07-20 15:16:02 -07:00
Andreas Gal 555f5df045 work on bootstrap code 2014-07-20 15:12:58 -07:00
Andreas Gal 25f81daf97 move bootstrap code into VM 2014-07-20 15:09:58 -07:00
Andreas Gal 2f64d56d27 inline get/setStaticField into vm 2014-07-20 09:56:34 -07:00
Andreas Gal 99e91f47e9 explicitly call initClass in invokeX 2014-07-20 09:50:21 -07:00
Andreas Gal 5f7b47bcd4 use fround to truncate to floats 2014-07-19 19:10:15 -07:00
Andreas Gal d97033bf60 add the ability to yield to the event loop from the first level interpreter 2014-07-19 17:52:18 -07:00
Andreas Gal c897a21b3d fix access to inherited fields 2014-07-19 15:53:58 -07:00
Andreas Gal 637194834d fix a bug in conditional ops 2014-07-19 13:20:55 -07:00
Andreas Gal e1c685dba4 fix a bunch of corner cases around array type checking 2014-07-19 13:18:45 -07:00
Andreas Gal 76801f1c66 throw proper internal exception when class can't be loaded and use native character conversion instead of CLDC's 2014-07-19 11:53:27 -07:00
Andreas Gal 1dfef4cba4 more work on strings and charsets 2014-07-19 11:20:46 -07:00
Andreas Gal de7bc07375 fix lsub 2014-07-19 00:02:20 -07:00
Andreas Gal 705badbf1a fix ifnull, getstatic of uninitialized fields 2014-07-18 23:44:03 -07:00
Andreas Gal f90bca8af5 add a way to print backtraces and fix ifnull/ifnonnull 2014-07-18 23:24:26 -07:00
Andreas Gal 805adcfeef call the constructor from newInstance 2014-07-18 21:56:30 -07:00
Andreas Gal 0ee8b5535f known fail 2 tests 2014-07-18 21:01:36 -07:00
Andreas Gal 53acba74be still trying to fix unicode handling 2014-07-18 19:20:21 -07:00
Andreas Gal 3645ff7328 more narrowly fix ISO-8859-1 issue 2014-07-18 18:49:15 -07:00
Andreas Gal f59bebf2b3 fix dconst_0/1 2014-07-18 18:23:49 -07:00
Andreas Gal 671a6bfce9 fix a bunch of cases for TestDataInputStream 2014-07-18 18:09:55 -07:00
Andreas Gal e2077ec3fe add missing null pointer check in athrow 2014-07-18 14:50:26 -07:00
Andreas Gal 22bdd1bb5c fix arraylength 2014-07-18 14:44:50 -07:00
Andreas Gal 8a313d5112 fix instanceof 2014-07-18 14:23:42 -07:00
Andreas Gal 3aaf2f87a2 implement checkcast and partial assignment testing (no interfaces yet) 2014-07-18 11:31:05 -07:00
Andreas Gal a972b0b4ac fix native calls that return a long value 2014-07-18 11:00:19 -07:00
Andreas Gal 0d47258201 fix anewarray, convert tests to harness 2014-07-18 08:59:29 -07:00
Andreas Gal 628313294d more fixes for arrays 2014-07-18 02:00:10 -07:00
Andreas Gal 4835f3b2c7 fix a couple array handling bugs 2014-07-18 01:20:06 -07:00
Andreas Gal fca3341fcf fix multi dimensional array access 2014-07-17 23:51:11 -07:00
Andreas Gal 479b230700 fix invokeinterface 2014-07-17 23:36:43 -07:00
Andreas Gal b6a04472c8 fixup exception handling 2014-07-17 23:02:28 -07:00
Andreas Gal bae132fb3d fixes to exception handling 2014-07-17 22:00:32 -07:00
Andreas Gal c0d9e4bc44 no return value for popFrame 2014-07-17 21:08:40 -07:00
Andreas Gal b559ad44b4 move exception handling into the interpreter 2014-07-17 18:51:01 -07:00
Andreas Gal e08fc51bc3 move raiseException into interpreter 2014-07-17 18:46:46 -07:00
Andreas Gal a204469c1d move checkArrayAccess into interpreter 2014-07-17 18:44:49 -07:00
Andreas Gal af6e510174 catch Java exceptions in native code in the interpreter 2014-07-17 18:42:11 -07:00
Andreas Gal d5aba63cc5 add a way to track execution levels 2014-07-17 18:33:30 -07:00
Andreas Gal 6e573e428d add a completion callback to invoke 2014-07-17 18:31:21 -07:00
Andreas Gal 1a1ef52405 add scheduling code 2014-07-17 17:58:07 -07:00
Andreas Gal e0faaaff35 eliminate execute 2014-07-17 17:44:00 -07:00
Andreas Gal de61a90322 cleanup invoke and move to VM 2014-07-17 17:39:25 -07:00
Andreas Gal 1f15d34660 factor out popFrame 2014-07-17 17:13:44 -07:00
Andreas Gal 41e07c5473 factor out pushFrame 2014-07-17 17:09:57 -07:00
Andreas Gal 26424b8c65 remain in the interpreter loop across method calls 2014-07-17 16:10:37 -07:00
Andreas Gal 6256dd31ff use separate stack to invoke static initializers 2014-07-17 14:34:22 -07:00
Andreas Gal be432d3fe4 inline invoke into the vm 2014-07-17 11:13:16 -07:00
Andreas Gal 391f2d314a make class initialization more precise 2014-07-17 01:37:35 -07:00
Andreas Gal d8b4d71369 fix long constants 2014-07-17 00:42:20 -07:00
Andreas Gal 8e92ca2f70 cleanup operand order 2014-07-16 23:05:38 -07:00
Andreas Gal e029da987e more fixes 2014-07-16 22:51:30 -07:00
Andreas Gal 399cc8bdac more fixes for longs 2014-07-16 22:48:34 -07:00
Andreas Gal 3fff7d5d31 more fixes for longs 2014-07-16 22:47:50 -07:00
Andreas Gal a9d7d8999d a bunch of fixes for longs 2014-07-16 22:45:10 -07:00
Andreas Gal 442ae365d0 add more tests 2014-07-16 21:56:55 -07:00
Andreas Gal 25ef4e1b64 more tests 2014-07-16 20:53:54 -07:00
Andreas Gal 33289bfed0 fix ldc for integers 2014-07-16 20:40:36 -07:00
Andreas Gal 45b9e7a96a rename gLong to long.js/Long 2014-07-16 14:13:18 -07:00
Andreas Gal d30138f9d8 move interpreter into vm.js 2014-07-16 12:15:48 -07:00