Mike Gerwitz
635395b303
Merge branch 'master' into visibility/master
2011-03-05 03:23:11 -05:00
Mike Gerwitz
2c2701f4ab
Implemented staging-style named class definition when implementing interfaces
2011-03-05 03:22:45 -05:00
Mike Gerwitz
0f9454b79b
interface() no longer returns a usable class
...
- Number of reasons. First and foremost, it doesn't make sense to return a usable class with no body/definition
- Secondly, to make the following commit(s) possible and consistent
2011-03-05 02:59:21 -05:00
Mike Gerwitz
ace9f4c1ea
Began implementing class name staging (implement() does not yet work with it)
2011-03-05 00:33:47 -05:00
Mike Gerwitz
0ccdf07145
Implemented strict argument check for interface creation
2011-03-04 23:43:30 -05:00
Mike Gerwitz
b158e542d5
Declaring named class will throw error for extreaneous arguments
2011-03-04 16:36:15 -05:00
Mike Gerwitz
dca7653adf
Merge branch 'master' into visibility/master
2011-03-04 00:26:02 -05:00
Mike Gerwitz
009c4a93e9
Interfaces now have sane/useful values when converted to strings
2011-03-04 00:19:02 -05:00
Mike Gerwitz
85e687e29c
Added Interface.isInterface()
2011-03-03 23:59:37 -05:00
Mike Gerwitz
4148f8742d
Merge branch 'master' into visibility/master
...
Conflicts:
test/test-class-extend.js
2011-03-03 23:29:20 -05:00
Mike Gerwitz
81d03cb984
Altered class toString() representations to be more consistent with JS
2011-03-03 23:00:59 -05:00
Mike Gerwitz
e2cba458d8
Class instances now have different default toString() implementations than uninstantiated classes
...
- Instance id is not yet included, as that is currently in a different branch
2011-03-03 22:53:20 -05:00
Mike Gerwitz
840a495017
Began implementing named classes
...
- toString() implementation
2011-03-03 22:33:18 -05:00
Mike Gerwitz
d23ae6210c
Initial implementation of natural class definition by invoking class module
2011-03-03 19:43:20 -05:00
Mike Gerwitz
3f915d3644
The interface module may now be invoked, providing a more natural looking means of declaring interfaces
2011-03-03 19:08:24 -05:00
Mike Gerwitz
bc9e2bb7b2
Fix setting public properties
...
- This currently only works with ES5 engines
- Fallback to follow so this will work with pre-ES5 engines
- As such, I do not recommend using this commit outside of ES5-compliant engines that work properly with getters/setters
- This does NOT include IE8, as IE8 only works with getters/setters on DOM elements
2011-03-02 23:21:10 -05:00
Mike Gerwitz
74c2fc57c1
Initial implementation of protected members
...
- This was quite the pain in the ass
- There are additional considerations. I DO NOT recommend using this commit. Check out a later commit.
2011-03-02 20:43:24 -05:00
Mike Gerwitz
2af7bcf45d
Merge branch 'master' into visibility/master
2011-03-02 07:54:52 -05:00
Mike Gerwitz
d74c01b562
Removed visibility dependency from test-class-abstract
2011-03-02 07:53:58 -05:00
Mike Gerwitz
40228361a1
test-class-parent no longer relies on member visibility to succeed
...
- This is important for pending changes
2011-03-02 07:51:18 -05:00
Mike Gerwitz
e239352fc0
Resolved bug that was causing the system to think that Object prototype members were part of the abstract member list when attempting to define a method with the same name
2011-03-01 12:11:36 -05:00
Mike Gerwitz
02d0c07f98
Extended existing visibility tests to include methods
2011-01-27 22:39:52 -05:00
Mike Gerwitz
38c16048cb
Began adding protected/private member support
...
- No longer adding ANY properties to prototype
- protected/private members no longer part of the public access level
2011-01-27 22:35:40 -05:00
Mike Gerwitz
881edc0cc6
Preparing to remove abstractMethods from public prototype; now uses hash for performance since it no longer needs to be referenced cleanly externally
...
- It will be later referenced via reflection
2011-01-25 00:13:47 -05:00
Mike Gerwitz
188ad2f4eb
Getters/setters are not supported within interface definitions
2011-01-24 23:56:54 -05:00
Mike Gerwitz
c7b262b271
Concrete methods cannot be overridden by abstract methods
2011-01-24 23:52:06 -05:00
Mike Gerwitz
37e5b1d94d
util.propCopy() no longer needed
2011-01-24 23:38:27 -05:00
Mike Gerwitz
2a54662716
Added getter/setter keywords to propParse
2011-01-24 23:27:55 -05:00
Mike Gerwitz
96d2f74dae
Method builder wraps overrides in an override function
2011-01-21 23:16:20 -05:00
Mike Gerwitz
e03d5861bb
Overridden methods must have >= length parameter lists
2011-01-21 22:19:22 -05:00
Mike Gerwitz
b8a6aa2af6
Method builder does not permit overriding properties with methods
2011-01-21 21:53:31 -05:00
Mike Gerwitz
12e5b48a7d
Cannot override method with property
2011-01-21 21:43:18 -05:00
Mike Gerwitz
dea6972416
Began adding basic method builder (currently operates the same as property builder)
...
- They are essentially the same, but the method builder will have additional logic (e.g. method overriding) and support different keywords
2011-01-21 20:54:55 -05:00
Mike Gerwitz
906e468cdf
Refactored test logic that will be shared between multiple members into inc-member_builder-common.js to reduce code duplication
2011-01-21 20:46:24 -05:00
Mike Gerwitz
2205af8c07
Can initialize member object with existing objects for each level of visibility
2011-01-20 23:56:39 -05:00
Mike Gerwitz
96cee9660b
Began adding member_builder.initMembers()
2011-01-20 23:53:00 -05:00
Mike Gerwitz
3c45912f25
Added getter/setter to member builder
2011-01-20 23:50:53 -05:00
Mike Gerwitz
b34e0b45f6
Property member builder tests now use object and deepEqual() to ensure that property is copied as intended
2011-01-20 22:22:12 -05:00
Mike Gerwitz
f25ae7cb43
Made property member builder tests more specific to ensure that properties are not copied to multiple prototypes
2011-01-20 22:19:06 -05:00
Mike Gerwitz
a58b7989ee
Throws TypeError if multiple visibility keywords are given to member builder
2011-01-20 22:11:36 -05:00
Mike Gerwitz
9a5fe96c3e
Result of buildProp() in tests unneeded
2011-01-20 21:53:18 -05:00
Mike Gerwitz
7f92a76e1f
Member builder uses public prototype by default
2011-01-20 21:50:52 -05:00
Mike Gerwitz
f27b0b01ab
Member builder recognizes private members
2011-01-20 21:48:09 -05:00
Mike Gerwitz
0ba3122db5
Member builder recognizes protected members
2011-01-20 21:46:49 -05:00
Mike Gerwitz
23a7d9d540
Began adding member_builder
2011-01-18 23:47:58 -05:00
Mike Gerwitz
96f5b8ff58
Multiple spaces now properly handled in keyword parser
2011-01-18 19:33:33 -05:00
Mike Gerwitz
7dab5c7b20
Keywords are now returned by propParse
2011-01-17 22:24:02 -05:00
Mike Gerwitz
1f661bebcd
Altered property keyword parser tests to be more easily recognizable
2011-01-17 20:41:04 -05:00
Mike Gerwitz
afc5d4668d
Abstract classes also have a more intuitive string representation
2011-01-17 20:22:30 -05:00
Mike Gerwitz
d19638be4f
Classes now return a more intuitive string representation
2011-01-17 20:20:39 -05:00