Roberto Raggi [Tue, 5 Jun 2012 13:26:21 +0000 (15:26 +0200)]
Start generating LLVM code for IR::Call nodes.
Roberto Raggi [Tue, 5 Jun 2012 13:03:49 +0000 (15:03 +0200)]
LLVM code for unary expressions
Roberto Raggi [Tue, 5 Jun 2012 12:30:04 +0000 (14:30 +0200)]
Generate LLVM code for the binary expressions
Roberto Raggi [Tue, 5 Jun 2012 11:15:03 +0000 (13:15 +0200)]
Generate LLVM code for the conditional jumps.
Roberto Raggi [Tue, 5 Jun 2012 10:15:41 +0000 (12:15 +0200)]
Some more work on the LLVM-based AOT compiler.
Roberto Raggi [Tue, 5 Jun 2012 08:47:04 +0000 (10:47 +0200)]
Move the defnition of the QML/JS Context to qmljs_runtime.h
Roberto Raggi [Mon, 4 Jun 2012 14:57:08 +0000 (16:57 +0200)]
Initial work on Object.prototype.getOwnPropertyNames.
At the moment getOwnPropertyNames is not compliant, e.g.
we need to add support for property accessors.
Roberto Raggi [Mon, 4 Jun 2012 14:45:34 +0000 (16:45 +0200)]
Implemented Object.prototype.isPrototypeOf
Roberto Raggi [Mon, 4 Jun 2012 14:36:00 +0000 (16:36 +0200)]
Naive implementation of the Arguments object.
Roberto Raggi [Mon, 4 Jun 2012 14:04:46 +0000 (16:04 +0200)]
Implemented Object.prototype.hasOwnProperty.
Note that the current implementation of Object::hasOwnProperty()
in the object model is not ECMA compliant (yet).
Roberto Raggi [Mon, 4 Jun 2012 13:57:39 +0000 (15:57 +0200)]
Implemented Object.getPrototypeOf and Object.prototype.valueOf
Roberto Raggi [Mon, 4 Jun 2012 13:40:35 +0000 (15:40 +0200)]
Add special property length of the Object constructor.
Roberto Raggi [Mon, 4 Jun 2012 13:34:50 +0000 (15:34 +0200)]
Initial work on the RegExp object
Roberto Raggi [Mon, 4 Jun 2012 12:02:40 +0000 (14:02 +0200)]
Initial work on the Object prototype
Roberto Raggi [Mon, 4 Jun 2012 11:44:37 +0000 (13:44 +0200)]
Initial work on [[HasProperty]]
Roberto Raggi [Mon, 4 Jun 2012 10:54:24 +0000 (12:54 +0200)]
Reimplemented Array using std::deque as container.
Roberto Raggi [Mon, 4 Jun 2012 06:32:06 +0000 (08:32 +0200)]
Fix default size for the bucket tables
Roberto Raggi [Sun, 3 Jun 2012 15:11:04 +0000 (17:11 +0200)]
Inline comparisons
Roberto Raggi [Fri, 1 Jun 2012 12:18:24 +0000 (14:18 +0200)]
Fix the pro file
Roberto Raggi [Thu, 31 May 2012 17:02:05 +0000 (19:02 +0200)]
Initial work on the LLVM-based AOT compiler.
Roberto Raggi [Thu, 31 May 2012 15:32:49 +0000 (17:32 +0200)]
Generalized instruction selection.
This will simplify the instruction selection pass for
different architectures.
Roberto Raggi [Wed, 30 May 2012 10:52:58 +0000 (12:52 +0200)]
Use `assert' instead of Q_ASSERT.
Roberto Raggi [Wed, 30 May 2012 10:42:27 +0000 (12:42 +0200)]
Generate cx-instructions for releational expressionsa.
Roberto Raggi [Tue, 29 May 2012 08:20:28 +0000 (10:20 +0200)]
Tests
Roberto Raggi [Mon, 28 May 2012 20:37:29 +0000 (22:37 +0200)]
Fix Array.prototype.concat
Roberto Raggi [Mon, 28 May 2012 19:49:20 +0000 (21:49 +0200)]
Fix [[construct] and Object.prototype.toString
Roberto Raggi [Mon, 28 May 2012 18:17:13 +0000 (20:17 +0200)]
Implement instanceof
Roberto Raggi [Mon, 28 May 2012 15:04:16 +0000 (17:04 +0200)]
Naive support for switch statements
Roberto Raggi [Fri, 25 May 2012 15:46:29 +0000 (17:46 +0200)]
Oops
Roberto Raggi [Fri, 25 May 2012 15:45:15 +0000 (17:45 +0200)]
Fix the initialization of the ECMA library.
Roberto Raggi [Fri, 25 May 2012 10:54:36 +0000 (12:54 +0200)]
Refactored Object
Roberto Raggi [Fri, 25 May 2012 09:55:50 +0000 (11:55 +0200)]
Propagate exceptions
Roberto Raggi [Thu, 24 May 2012 08:01:17 +0000 (10:01 +0200)]
Throw exceptions in the ecma library
Roberto Raggi [Wed, 23 May 2012 16:48:48 +0000 (18:48 +0200)]
Throw exceptions
Roberto Raggi [Mon, 21 May 2012 16:44:36 +0000 (18:44 +0200)]
Initialize functionPrototype.
Roberto Raggi [Mon, 21 May 2012 16:34:26 +0000 (18:34 +0200)]
Implemented Array.prototype.reduceRight
Roberto Raggi [Mon, 21 May 2012 16:19:51 +0000 (18:19 +0200)]
Implemented Array.prototype.reduce
Roberto Raggi [Mon, 21 May 2012 16:08:51 +0000 (18:08 +0200)]
Implemented Array.prototype.filter
Roberto Raggi [Mon, 21 May 2012 15:59:54 +0000 (17:59 +0200)]
Implement Array.prototype.map
Roberto Raggi [Mon, 21 May 2012 15:51:12 +0000 (17:51 +0200)]
Add non generatic implementation of Array.prototype.some
Roberto Raggi [Mon, 21 May 2012 15:48:39 +0000 (17:48 +0200)]
Add non generic version of Array.prototype.every
Roberto Raggi [Mon, 21 May 2012 13:40:08 +0000 (15:40 +0200)]
Initial work on Array.prototype.forEach.
Roberto Raggi [Mon, 21 May 2012 13:22:22 +0000 (15:22 +0200)]
More work on the Array prototype.
Roberto Raggi [Mon, 21 May 2012 13:16:19 +0000 (15:16 +0200)]
Set the prototype of script and native functions.
Roberto Raggi [Mon, 21 May 2012 13:08:35 +0000 (15:08 +0200)]
Test the Function.prototype.call
Roberto Raggi [Mon, 21 May 2012 12:57:02 +0000 (14:57 +0200)]
Initial work on the Function prototype.
Roberto Raggi [Mon, 21 May 2012 12:27:13 +0000 (14:27 +0200)]
Implement Array.prototype.slice
Roberto Raggi [Mon, 21 May 2012 12:21:57 +0000 (14:21 +0200)]
Implement Array.prototype.splice
Roberto Raggi [Mon, 21 May 2012 12:11:12 +0000 (14:11 +0200)]
Implement Array.prototype.sort
Roberto Raggi [Mon, 21 May 2012 11:24:03 +0000 (13:24 +0200)]
Made the ArrayPrototype an ArrayObject.
Roberto Raggi [Mon, 21 May 2012 11:22:52 +0000 (13:22 +0200)]
Remove debug
Roberto Raggi [Mon, 21 May 2012 11:21:35 +0000 (13:21 +0200)]
Improve the Array prototype
Roberto Raggi [Mon, 21 May 2012 08:26:13 +0000 (10:26 +0200)]
Fix constructor calls
Roberto Raggi [Mon, 21 May 2012 08:10:37 +0000 (10:10 +0200)]
Simple test app for the Array object.
Roberto Raggi [Mon, 21 May 2012 08:09:41 +0000 (10:09 +0200)]
Fix prototypes and implemented isel for constructValue.
Roberto Raggi [Sun, 20 May 2012 17:59:47 +0000 (19:59 +0200)]
Initial support for Array objects.
Roberto Raggi [Fri, 18 May 2012 20:04:26 +0000 (22:04 +0200)]
Initial support for inplace assignments.
Roberto Raggi [Fri, 18 May 2012 15:37:23 +0000 (17:37 +0200)]
Import Array from QtScript classic.
Roberto Raggi [Fri, 18 May 2012 14:31:57 +0000 (16:31 +0200)]
Inline common cases.
Roberto Raggi [Fri, 18 May 2012 13:28:59 +0000 (15:28 +0200)]
Improve [[DefaultValue]]
Roberto Raggi [Fri, 18 May 2012 12:32:11 +0000 (14:32 +0200)]
Improve the Number prototype.
Roberto Raggi [Fri, 18 May 2012 12:27:55 +0000 (14:27 +0200)]
Improve the Boolean prototype.
Roberto Raggi [Fri, 18 May 2012 12:22:37 +0000 (14:22 +0200)]
Improve the Number prototype.
Roberto Raggi [Fri, 18 May 2012 12:10:02 +0000 (14:10 +0200)]
Implemented the ecma Date object.
Roberto Raggi [Fri, 18 May 2012 08:10:36 +0000 (10:10 +0200)]
Some refactoring and some initial work on the Date object.
Roberto Raggi [Wed, 16 May 2012 17:00:31 +0000 (19:00 +0200)]
Simplified the compiler.
Roberto Raggi [Wed, 16 May 2012 14:31:59 +0000 (16:31 +0200)]
Store the locals in %r15.
Roberto Raggi [Wed, 16 May 2012 14:19:55 +0000 (16:19 +0200)]
Refactored the stack frames.
The new layout should simplify the use of static context
environments while compiling the code.
Roberto Raggi [Wed, 16 May 2012 09:58:07 +0000 (11:58 +0200)]
checkpoint
Roberto Raggi [Tue, 15 May 2012 09:19:10 +0000 (11:19 +0200)]
Add the Boolean Object.
Roberto Raggi [Tue, 15 May 2012 08:58:22 +0000 (10:58 +0200)]
Remove String::get()
Roberto Raggi [Tue, 15 May 2012 08:53:20 +0000 (10:53 +0200)]
Cleanup function prototypes.
Roberto Raggi [Tue, 15 May 2012 08:35:19 +0000 (10:35 +0200)]
Add methods to allocate JS entities.
Roberto Raggi [Tue, 15 May 2012 08:02:21 +0000 (10:02 +0200)]
Create the activation only when needed.
Roberto Raggi [Tue, 15 May 2012 07:05:03 +0000 (09:05 +0200)]
Use %rbp to index the local variables.
Roberto Raggi [Mon, 14 May 2012 15:58:33 +0000 (17:58 +0200)]
Skip TEMPs with negative index.
That is, TEMP nodes with negative index are a bit special, we
use them to optimize the argument passing.
Roberto Raggi [Mon, 14 May 2012 15:42:47 +0000 (17:42 +0200)]
Fix the activation.
Roberto Raggi [Mon, 14 May 2012 15:38:53 +0000 (17:38 +0200)]
Initial implementation of the Math Object.
Roberto Raggi [Mon, 14 May 2012 15:12:25 +0000 (17:12 +0200)]
Introduce the ExecutionEngine.
Roberto Raggi [Mon, 14 May 2012 14:37:28 +0000 (16:37 +0200)]
Fix typo
Roberto Raggi [Mon, 14 May 2012 14:35:04 +0000 (16:35 +0200)]
Initial work on the Number object.
Roberto Raggi [Mon, 14 May 2012 14:03:10 +0000 (16:03 +0200)]
Initial work on the String object.
Roberto Raggi [Mon, 14 May 2012 12:34:36 +0000 (14:34 +0200)]
Store the actual arguments in TEMPs with negative indices.
This should make it possible to optimize function calls.
Roberto Raggi [Mon, 14 May 2012 08:50:13 +0000 (10:50 +0200)]
Do a quick scan of the global code.
Roberto Raggi [Sun, 13 May 2012 11:50:55 +0000 (13:50 +0200)]
Fix nested functions
Roberto Raggi [Thu, 10 May 2012 10:14:20 +0000 (12:14 +0200)]
Fix constructors and some work on the String prototype.
Roberto Raggi [Thu, 10 May 2012 08:56:02 +0000 (10:56 +0200)]
Add the String object constructor.
Roberto Raggi [Wed, 9 May 2012 15:28:55 +0000 (17:28 +0200)]
Initialize baseObject.
Roberto Raggi [Wed, 9 May 2012 15:04:25 +0000 (17:04 +0200)]
Fix function calls
Roberto Raggi [Wed, 9 May 2012 13:47:55 +0000 (15:47 +0200)]
Add callValue.
Roberto Raggi [Wed, 9 May 2012 13:06:30 +0000 (15:06 +0200)]
Set the prototype delegator.
Roberto Raggi [Wed, 9 May 2012 12:34:36 +0000 (14:34 +0200)]
Rename simple2.js
Roberto Raggi [Wed, 9 May 2012 12:30:59 +0000 (14:30 +0200)]
Inline __qmljs_copy.
Roberto Raggi [Wed, 9 May 2012 11:51:44 +0000 (13:51 +0200)]
Fix instruction selections for closures.
Roberto Raggi [Wed, 9 May 2012 11:30:22 +0000 (13:30 +0200)]
Some more progress on function calls
Roberto Raggi [Wed, 9 May 2012 10:00:30 +0000 (12:00 +0200)]
Bind the `this' object.
Roberto Raggi [Wed, 9 May 2012 09:28:57 +0000 (11:28 +0200)]
Some progress on closures.
Roberto Raggi [Wed, 9 May 2012 09:04:57 +0000 (11:04 +0200)]
Initial support for object literals
Roberto Raggi [Tue, 8 May 2012 16:43:02 +0000 (18:43 +0200)]
Generate inline code instead of calls to __qmljs_to_boolean.
Roberto Raggi [Tue, 8 May 2012 15:31:16 +0000 (17:31 +0200)]
Fix typo