Mike Gerwitz
e463d2c411
Began factoring property instance object out of class module
2011-03-06 18:19:19 -05:00
Mike Gerwitz
5d8fdc5204
Merge branch 'master' into visibility/master
...
Conflicts:
lib/class.js
2011-03-06 12:39:26 -05:00
Mike Gerwitz
517b2be464
Fix toString() override for IE
...
- All tests once again pass on IE6
2011-03-06 12:38:31 -05:00
Mike Gerwitz
c0f351d173
Merge branch 'master' into visibility/master
2011-03-05 23:12:55 -05:00
Mike Gerwitz
d6cca75093
Can now override toString() method of a class
2011-03-05 23:11:13 -05:00
Mike Gerwitz
b321610cc7
Interface name included in instantiation error, if available
2011-03-05 21:46:44 -05:00
Mike Gerwitz
6f7dabe35e
Interface name is included in declaration errors, if available
2011-03-05 17:27:02 -05:00
Mike Gerwitz
2967cc7a9a
Class name is now provided in all errors where name is available, within class module
2011-03-05 13:13:53 -05:00
Mike Gerwitz
da8be9affa
Interface definition errors now contain class name when available
2011-03-05 12:57:21 -05:00
Mike Gerwitz
5f739e604b
Class name is included in definition errors when available
2011-03-05 12:56:14 -05:00
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
8749228764
interface() calls now push/pop rather than shift/unshift (performance)
2011-03-05 03:03:50 -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
bedc3c95af
Moved named class argument check error to a more sensible location and amended error message
2011-03-04 23:44:19 -05:00
Mike Gerwitz
0ccdf07145
Implemented strict argument check for interface creation
2011-03-04 23:43:30 -05:00
Mike Gerwitz
649356ef23
Refactored interface module invocation into separate functions for named and anonymous
2011-03-04 23:35:28 -05:00
Mike Gerwitz
e3075b0479
Refactored class module invocation method into separate functions
...
- The class module is getting too big. Something will have to be done soon.
2011-03-04 19:49:15 -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
7bb87e370f
No need to recheck the type each time
2011-03-04 00:24:42 -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
ec7b4e2b6b
Updated class module docblock
2011-03-04 00:17:25 -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
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
e3561a492f
Modified interface property message to be a bit more helpful in a likely common scenerio
2011-03-01 09:17:24 -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
8c7ad787c8
Abstract methods list is no longer public
2011-01-25 00:24:50 -05:00
Mike Gerwitz
fb5d541ea3
Removed old console.log
2011-01-25 00:23:56 -05:00
Mike Gerwitz
fa8cddea07
Meta now uses deep cloning
2011-01-25 00:19:48 -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
194aa02402
{new,} TypeError
2011-01-24 23:57:19 -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
70f5d09c34
Interface now uses propParse and member builders
2011-01-24 23:35:45 -05:00
Mike Gerwitz
cd7b2563e5
Combined shared conditions in separate if statements
2011-01-24 23:30:32 -05:00
Mike Gerwitz
eba32ed4cb
Beginning to move Class over to use member builders
2011-01-24 23:28:48 -05:00
Mike Gerwitz
2a54662716
Added getter/setter keywords to propParse
2011-01-24 23:27:55 -05:00
Mike Gerwitz
5a3b401647
Began moving abstract logic out of propCopy
2011-01-24 20:58:58 -05:00