laknoll
aaea2a9a96
Proper NaN boxing for Value
...
All JS types are now encoded in a 8 byte data
structure. We use the 52 bits that are unused
when a double is a NaN to encode all other types
that can be stored inside a double.
This is being done by using a few bits to determine
the type, and up to 48 bits for data. This works
even on x64, as addresses (ie. pointers) are limited
to 48 bits on these platforms.
For most other types (except doubles), we store the
data in the lower 32 bits of the double.
2012-09-19 23:28:50 +02:00
Roberto Raggi
a1eb099a4a
Initial work on `eval'.
2012-06-26 15:36:03 +02:00
Roberto Raggi
48a0b3c96b
Do not try to optimize the `global object'.
...
This should simplify the implementation of `eval' and `with'.
2012-06-26 15:17:31 +02:00
Roberto Raggi
93e43fb328
Add support for global, eval and function code.
2012-06-13 11:16:35 +02:00
Aaron Kennedy
6ce83a38c9
Begin to implement moth vm
2012-06-12 18:14:13 +01:00
Roberto Raggi
f3933836fb
Fix possible crash when executing invalid code.
2012-06-12 12:10:33 +02:00
Aaron Kennedy
b759b5f984
Add skeleton moth vme
2012-06-11 17:59:36 +01:00
Aaron Kennedy
ac7f4805c1
Add moth skeleton
2012-06-11 12:27:29 +01:00
Roberto Raggi
427114d740
Increase the size of the code cache.
...
This is just a temporary hack, we can't continue to use
a contiguous region of memory to store the code.
2012-06-11 09:32:00 +02:00
Aaron Kennedy
6b79f27580
Remove dead code
2012-06-08 11:35:16 +01:00
Roberto Raggi
60006079bb
Resolve the library name
2012-06-06 18:02:34 +02:00
Roberto Raggi
ff76b6afa1
Use O2-level inlining
2012-06-06 11:06:00 +02:00
Roberto Raggi
0288e49e8c
Fix the targets
2012-06-06 10:36:59 +02:00
Roberto Raggi
b353942bfa
More work on the AOT.
2012-06-05 18:32:52 +02:00
Roberto Raggi
9551c6527a
Some more work on the LLVM-based AOT compiler.
2012-06-05 12:28:58 +02:00
Roberto Raggi
bf46892ccd
Move the defnition of the QML/JS Context to qmljs_runtime.h
2012-06-05 10:47:04 +02:00
Roberto Raggi
4cd31221ec
Initial work on the LLVM-based AOT compiler.
2012-05-31 19:02:05 +02:00
Roberto Raggi
d65f9ddff1
Generalized instruction selection.
...
This will simplify the instruction selection pass for
different architectures.
2012-05-31 17:32:49 +02:00
Roberto Raggi
538ed5c57c
Generate cx-instructions for releational expressionsa.
2012-05-30 12:42:27 +02:00
Roberto Raggi
7e7df11464
Fix the initialization of the ECMA library.
2012-05-25 17:45:15 +02:00
Roberto Raggi
fc6f96166f
Refactored Object
2012-05-25 13:43:30 +02:00
Roberto Raggi
a5229e821d
Propagate exceptions
2012-05-25 11:55:50 +02:00
Roberto Raggi
86183598a3
Throw exceptions
2012-05-23 18:50:24 +02:00
Roberto Raggi
84467cf606
Fix constructor calls
2012-05-21 10:26:13 +02:00
Roberto Raggi
860bd23e4d
Improve [[DefaultValue]]
2012-05-18 15:28:59 +02:00
Roberto Raggi
086e775da6
Some refactoring and some initial work on the Date object.
2012-05-18 10:10:36 +02:00
Roberto Raggi
a34f11737f
Simplified the compiler.
2012-05-16 19:00:31 +02:00
Roberto Raggi
6ffb058b18
Cleanup function prototypes.
2012-05-15 10:53:33 +02:00
Roberto Raggi
d9c263385c
Add methods to allocate JS entities.
2012-05-15 10:35:19 +02:00
Roberto Raggi
4d77fb3a9b
Introduce the ExecutionEngine.
2012-05-14 17:12:25 +02:00
Roberto Raggi
b8d6b82bcc
Initial work on the Number object.
2012-05-14 16:35:04 +02:00
Roberto Raggi
3a7f8a31ed
Initial work on the String object.
2012-05-14 16:03:10 +02:00
Roberto Raggi
a97bc91c7f
Fix nested functions
2012-05-14 10:43:36 +02:00
Roberto Raggi
14ce5bb389
Fix constructors and some work on the String prototype.
2012-05-10 12:14:20 +02:00
Roberto Raggi
c75421ee43
Add the String object constructor.
2012-05-10 10:56:02 +02:00
Roberto Raggi
908cc65547
Add callValue.
2012-05-09 15:47:55 +02:00
Roberto Raggi
5282ff06df
Initial support for object literals
2012-05-09 11:05:51 +02:00
Roberto Raggi
6f3022a3d4
Added a simple syntax checker.
2012-05-08 13:24:48 +02:00
Roberto Raggi
08c29dabd8
Improve frame instantiations.
2012-05-08 11:13:02 +02:00
Roberto Raggi
dc716f8d37
Add naive support for function calls.
2012-05-07 17:38:17 +02:00
Roberto Raggi
0103f7bd2d
Move the instruction selection pass.
2012-05-07 14:46:37 +02:00
Roberto Raggi
1318bda1b2
Remove boehm GC
2012-05-04 15:23:18 +02:00
Roberto Raggi
47062ff244
Initial import
2012-05-03 17:08:41 +02:00