1
0
Fork 0
Commit Graph

182 Commits (635395b30358e8c7a33c11c97e62406e285cfb45)

Author SHA1 Message Date
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
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 94d6fb1655 Added params to member_builder.initMembers() docblock 2011-01-21 00:09:26 -05:00
Mike Gerwitz f55def4f06 Preparing class to use member_builder 2011-01-21 00:03:41 -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