Martin Carlberg
b132a66707
Fixed: Compiler option 'IncludeTypeSignatures' is default turn on for all type of builds. It can optionally be turned off.
2015-11-20 12:33:00 +01:00
Martin Carlberg
101261ca63
Fixed: Optionally inline objj_msgSend function. Generate faster code for Array and Dictionary Literals.
2015-10-06 13:30:09 +02:00
Alexandre Wilhelm
d358f0d27b
Fixed: xml format now has the key sourcePath instead of path for the command objj and objj2objcskeleton
2015-06-08 10:30:54 -07:00
Alexandre Wilhelm
0e41365020
Fixed: some objj errors were not print in xml when necessary
2015-06-01 13:53:41 -07:00
Alexandre Wilhelm
3102c545ce
Fixed: used url path (/Users/..) instead of absoluth path (file://Users/..) in the xml output format of objj
2015-05-25 13:26:37 -07:00
Alexandre Wilhelm
204ed1f257
New: added the option --xml-output-format for the command objj
...
Previously, it was not possible to specify the desired output format of the command objj.
Now we can have either the default format or a xml format if --xml-output-format is added.
2015-05-25 11:20:55 -07:00
Martin Carlberg
a924fd0e7e
Fixed: Generate compiler error when ivar is already declared in superclass
2015-03-03 11:32:18 +01:00
Martin Carlberg
ee13978115
Fixed: @ref did not generate self.x for an ivar x
2014-12-02 13:54:02 +01:00
Antoine Mercadal
31afae71d1
Typos
2014-11-26 11:52:25 -08:00
Antoine Mercadal
37b9895878
Add check to ensure a @class declaration is not already defined as a type
2014-11-20 11:44:32 -08:00
Antoine Mercadal
9e66c699e1
FIXED: prevent to declare a type that is already declared as a class and vice-versa
2014-11-19 14:35:33 -08:00
Antoine Mercadal
8ee443a43c
NEW: @typedef and ivar type warning
...
Previously, ObjJ was ignoring unknow ivar type. This patch adds some check to ensure the type is either a known class, the current class
itself, a global, a basic JS type or a declared custom type.
In order to declare custom types, this patch introduces the @typedef keyword.
For instance, this will throw a warning:
```objj
@import <Foundation/Foundation.j>
@implementation MyClass: CPObject
{
NUSuppaType mode;
}
@end
```
This will not:
```objj
@import <Foundation/Foundation.j>
@typedef NUSuppaType
@implementation NUMyClass: CPObject
{
NUSuppaType mode;
}
@end
```
Declared types are shared accross all application, one type can only be declared once.
2014-11-06 10:10:05 -08:00
Antoine Mercadal
73a2823d0b
Merge pull request #2213 from mrcarlberg/error_cannot_find_protocol_declaration
...
Fixed: When the compiler can't find a protocol in a class declaration
2014-09-30 16:56:36 -07:00
Martin Carlberg
2f7681f881
Fixed: No line information was provided for compiler errors on the first line of a file
2014-09-26 13:28:44 +02:00
Martin Carlberg
13fe318110
Fixed: When the compiler can't find a protocol in a class declaration it now gives an understandable error.
...
This fixes #2212
2014-09-16 20:13:42 +02:00
Antoine Mercadal
371b660b33
Merge pull request #2072 from mrcarlberg/fix_accessors_in_categories_fails
...
Fixed: Ivars with accessors in a Category failed with duplicate ivar error
2014-09-04 14:02:53 -07:00
Martin Carlberg
e8e10d4224
Fixed: If receiver in the function objj_msgSend is a class we don't need to check if it is nil as a class can never be nil without the load has already failed.
2014-04-15 13:52:41 +02:00
Martin Carlberg
81e4b6b37b
Fixed: If the function 'eval' is called it might have altered 'self' and from here on we check if 'self' is null before 'objj_msgSend' is called with 'self' as receiver
2014-04-14 16:37:21 +02:00
Martin Carlberg
b1507952df
Fixed: Checks if 'self' is nil only if self has a chance to be changed when sending messages
2014-04-11 15:41:32 +02:00
Martin Carlberg
c23292db8a
Fixed: Optimized msgSend code when receiver is an identifier.
...
If the receiver is an identifier and not an ivar that needs 'self.' infront there is no need to assign it to a temporary variable. Also if the identifier is 'self' there we assume it is not nil.
2014-04-10 18:27:19 +02:00
Martin Carlberg
2411edd461
Fixed: Faster objj_msgSend
...
Conflicts:
Objective-J/Runtime.js
2014-04-08 20:51:18 +02:00
Martin Carlberg
ee668df440
Fixed: Ivars with accessors in a Category failed with duplicate ivar error
2014-02-21 12:27:52 +01:00
Alexander Ljungberg
c1f538ece5
Formatting: whitespace.
...
Refs #1974 .
2013-11-28 18:39:01 +00:00
Martin Carlberg
8419001810
Merge branch 'master' of https://github.com/cappuccino/cappuccino into protocol
2013-11-22 14:23:52 +01:00
Martin Carlberg
f0e2daf6c7
Fixed: Add get and set instance methods to class definition when ivar has accessors.
...
This caused 'Method is not implemented' warnings when a class implemented protocol declared set and get methods as 'accessors' on an ivar.
2013-09-12 21:54:57 +02:00
Martin Carlberg
9f0d8c54e4
Fixed: Uses current protocolDefs when compiling accessors
...
This caused 'null is not an object' type error when class declaration with 'accessors' declared ivars was in the same file as the protocol it was conforming to.
2013-09-12 21:47:15 +02:00
Martin Carlberg
23fb618596
Fixed: Compiler now generates correct empty statement after 'if (a);'
...
Earlier the compiler generated the 'if' without the last ';' when a empty statement is used, with sometimes devastating result. The same if an empty statement was after the 'else'.
I have also added a test case for some different empty statement senarios.
2013-09-09 16:38:38 +02:00
Martin Carlberg
ba0604320e
Fixed: Should be 'objj_allocateProtocol' and 'objj_registerProtocol' not 'objc_allocateProtocol' and 'objc_registerProtocol'
2013-08-31 15:33:32 +02:00
Martin Carlberg
c979a69e6b
Fixed: Compiler can now handle only @action/IBAction declared return type when checking for 'Conflicting return type' method declaration.
...
Also made the warning message point to correct return type token when type is not declared.
2013-08-28 11:23:55 +02:00
Martin Carlberg
9eebb0a64b
Fixed: Pass correct node to error message when finding duplicated protocol
2013-08-22 16:53:22 +02:00
Martin Carlberg
cfc682c165
Fixed: Protocol methods is now registered in the correct place
2013-08-22 12:36:29 +02:00
Martin Carlberg
c326168e83
Fixed: Protocol definition in compiler was not created correct from protocol definition in the runtime
2013-08-22 12:35:16 +02:00
Martin Carlberg
b8b96a17d7
Fixed: Check if global function exists in correct way
2013-08-22 12:34:14 +02:00
Martin Carlberg
672ed6ed0c
Fixed: Handle protocol declaration with no method declarations
2013-08-12 22:41:36 +02:00
Martin Carlberg
f74312dc42
Fixed: Allow type on return or parameter type to be a class if superclass or protocol declared it as 'id'
2013-08-12 16:55:35 +02:00
Martin Carlberg
2e216d7e9a
Fixed: Make default return type to 'void' for '@action' or 'IBAction' marked method.
2013-08-12 16:53:19 +02:00
Martin Carlberg
29d7833fcb
Fixed: Renamed local variable that used reserved variable name ('arguments')
2013-08-12 16:52:07 +02:00
Martin Carlberg
d38125db13
New: Added Objective-J protocol support
...
The Objective-J parser and compiler now handles protocol syntax. The Objective-J runtime has new functions to handle protocols. The method 'conformsToProtocol:' has been added to CPObject as an instance and a class method.
2013-08-09 19:02:45 +02:00
Martin Carlberg
595736b8c6
Fixed: When selector is only a ':' in a send message statement the new compiler crashed.
...
The program below crashed on the last line with a 'null is not an object' error message. Also added a test case.
@implementation MyObject {
- (int):(int)a {
return a;
}
@end
var a = [[MyObject alloc] init];
var b = [a:3];
2013-05-30 14:39:58 +02:00
Martin Carlberg
ee4112b7f1
Fixed: Removed double spaces before '@ref' and '@selector' generated output from compiler.
...
'@ref' is generated to ' function(__input…' with the starting space if, for example, the code is 'return(@ref(a))'. This will create a space between 'return' and 'function(__input…'. When the compiler is generate the code this is not necessary.
2013-05-22 10:34:46 +02:00
Martin Carlberg
1d896c6ac9
Fixed: Code generator didn't generate ';' for empty loops
...
The line 'while (count--);' was generated to 'while (count--)'. The same with 'for(;;);' and 'for (a in []);'
2013-05-22 10:27:01 +02:00
Aparajita Fishman
6bac934d0c
Fixed: changed indentation of generated code to Cappuccino standard of 4 spaces.
2013-05-18 18:42:26 -04:00
Martin Carlberg
8145df9613
Fixed: Removed all uses of preprocess macros in the compiler
2013-05-13 16:23:12 +02:00
Martin Carlberg
e9ca7c7395
Fixed: IE8 Browser support.
...
The compiler can now run in IE8. Also found the use of the function .indexOf on Arrays in CPView.j.
It is not supported in IE8.
Added a new file (OldBrowserCompatibility.js) in the Objective-J framework that will add functions if they are not supported in the javascript runtime.
2013-05-06 16:17:09 +02:00
Martin Carlberg
b6fd6a15f0
Fixed: Removed extra spaces in code generation between 'else' and 'if' in 'else if' statements
2013-04-23 17:07:26 +02:00
Martin Carlberg
e35bfaf96c
Fixed: Better looking code generation with correct indentation for 'if' - 'else if' statements
2013-04-23 15:48:25 +02:00
Martin Carlberg
8707247008
New: Always generate code when compiling
2013-03-27 14:45:25 +01:00
Martin Carlberg
89457845f9
Fixed: Made some smaller code generation changes to get better formatted compiled code
2013-03-21 14:32:21 +01:00
Martin Carlberg
1842d7127a
New: The generated code will now have correct indentation.
2013-03-21 11:33:13 +01:00
Martin Carlberg
fa18095538
Fixed: Does not add extra parentheses for expression operators with the same precedence
2013-03-20 20:47:27 +01:00