1
0
Fork 0
Commit Graph

133 Commits (25d8a9476b86a1d39ef125f110d6f009ca632414)

Author SHA1 Message Date
Mike Gerwitz 5af833ab05 Disallowing member redeclaration in same class definition 2011-03-19 00:48:02 -04:00
Mike Gerwitz ce736bea55 Visibility de-escalation no longer permitted 2011-03-18 23:42:07 -04:00
Mike Gerwitz 9b9bcfd150 Apparently methodOverride callback isn't used anymore in this context. Forgot to remove. 2011-03-16 23:32:48 -04:00
Mike Gerwitz 36ae6bcd81 Now throwing expection if more than two arguments are passed to extend() when implementing 2011-03-16 19:50:47 -04:00
Mike Gerwitz 14cac6b461 Can now specify parent class in extend() when implementing atop an empty base 2011-03-16 19:24:02 -04:00
Mike Gerwitz 80f3ec6b68 Preventing base specification via extend() when implementing off of an existing base class 2011-03-16 19:06:16 -04:00
Mike Gerwitz 58cb196213 Extending class while using temporary name object is now permitted 2011-03-16 18:18:33 -04:00
Mike Gerwitz dde4fb99d3 Corrected error language for invoking class module 2011-03-16 17:50:11 -04:00
Mike Gerwitz 5fe08a18ac Corrected argument documentation 2011-03-15 00:17:02 -04:00
Mike Gerwitz b2161d1822 Now storing visibility data in class instance (so GC can clear it) 2011-03-14 23:49:11 -04:00
Mike Gerwitz 66758500e6 Class metadata is now stored in class object (first step in working with GC) 2011-03-14 23:43:56 -04:00
Mike Gerwitz 7b766c1b14 Altered toString() defaults to be more consistent with v8 2011-03-14 18:16:53 -04:00
Mike Gerwitz 984a14b087 Added more detailed documentation regarding the class_instance object 2011-03-13 14:51:40 -04:00
Mike Gerwitz e03c081cfd Fixed bug that made private members of a supertype inaccessible to methods that have not been overridden by a subtype
- In doing so, abandoned the super identifier (sid) for a more elegant solution with class ids (cid's)
- This permits fast and easy private member swapping via getMethodInstance() in class.js
2011-03-13 04:51:00 -04:00
Mike Gerwitz e4e8900a9f Storing each supertype's private members in a separate object to prepare for future change
- sid = super identifier
2011-03-13 03:55:43 -04:00
Mike Gerwitz 6b374902ae Separated private members into a separate object (propobj) to prepare for future modifications
- This incurs a performance hit for accessing protected members, and even further for public, internally
  - But speeds up access to private members, likely due to there being less members
2011-03-12 23:48:38 -05:00
Mike Gerwitz e05a65d5fa Initial concept of inheriting protected/private members 2011-03-07 00:14:43 -05:00
Mike Gerwitz f692ebcdfd Once again refactored propobj.setup(), removing unnecessary argument and separating into inheritance and non-inheritance methods 2011-03-07 00:10:12 -05:00
Mike Gerwitz d1be2d5351 Refactored propbj.setup() to be a bit more managable 2011-03-06 23:56:19 -05:00
Mike Gerwitz c1765cd720 Using visibility fallback for browsers that do not support getters/setters 2011-03-06 22:43:14 -05:00
Mike Gerwitz 3651e31d20 Refactored property proxying into its own method 2011-03-06 21:48:18 -05:00
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 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 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 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 ec7b4e2b6b Updated class module docblock 2011-03-04 00:17:25 -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 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 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