1
0
Fork 0
Commit Graph

310 Commits (cf99aa88e86245737a7e22de81d964ce58721bfb)

Author SHA1 Message Date
Mike Gerwitz 3ffb150207 Tests for util.defineSecureProp() (had accidently omitted from previous commit) 2010-12-20 19:13:27 -05:00
Mike Gerwitz 600e389b40 Refactored abstract method logic out of util.propCopy() into class extend() 2010-12-19 00:11:39 -05:00
Mike Gerwitz 2c49e9719f util.propParse() now ignores instance prototype properties 2010-12-18 07:07:27 -05:00
Mike Gerwitz 53a62742c5 Added another subtype to test case to ensure parent property intialization of class instances is recursive 2010-12-17 00:01:22 -05:00
Mike Gerwitz ec27eb2286 Added index to propCopy() performDefault test message 2010-12-16 23:57:41 -05:00
Mike Gerwitz a06d9a7204 Ensured __initProps() is treated as a reserved method and cannot be declared within Classes 2010-12-16 23:55:56 -05:00
Mike Gerwitz 6b6ffe0134 propCopy() parser function overrides can now invoke default functionality 2010-12-16 23:49:52 -05:00
Mike Gerwitz 591434b82f [*] Previous commit (property cloning per instance) now applied to subtypes as well 2010-12-16 23:37:18 -05:00
Mike Gerwitz fe853b505b [*] Properties are no longer shared between class instances
- Properties were previously shared on the prototype level, acting as though they were static class properties, which can cause some nasty bugs
2010-12-16 23:18:30 -05:00
Mike Gerwitz 6efaba7fc5 Added util.clone(); does not yet support deep cloning 2010-12-16 23:15:42 -05:00
Mike Gerwitz a2c894b6bb Added ability to override propCopy() parser functions 2010-12-16 21:11:07 -05:00
Mike Gerwitz 5126c71a2d Using TypeError instead of Error for property type inconsistiencies 2010-12-10 00:00:47 -05:00
Mike Gerwitz 25dc7e031e Ensured properties cannot be overridden with methods 2010-12-07 20:24:51 -05:00
Mike Gerwitz eced0a7e91 Both concrete and abstract methods now use the same callback in propParse()
- Now uses an is_abstract parameter
- Intended to reduce clutter and duplicate code
2010-12-07 00:46:50 -05:00
Mike Gerwitz 994b8e16fa [1 failing test] Added support for 'each' in propParse() 2010-12-07 00:39:25 -05:00
Mike Gerwitz fd2b3ccc6d Added support for getters/setters in propParse() 2010-12-05 20:50:13 -05:00
Mike Gerwitz 20b78ba73a Minor formatting change in propParse test 2010-12-04 14:05:56 -05:00
Mike Gerwitz 6fd31a8e76 Added abstract method support to propParse() 2010-12-04 14:03:26 -05:00
Mike Gerwitz 4037cc1343 Began adding util.propParse() to simplify design (supports scalar, arr and obj props and concrete methods) 2010-12-04 13:59:06 -05:00
Mike Gerwitz 60025bd048 Added extend method to Interface 2010-12-01 23:27:31 -05:00
Mike Gerwitz 611ee9ab35 Added tests to assure that intefaces can be extended from other interfaces 2010-12-01 23:13:21 -05:00
Mike Gerwitz 0d45716a43 Added missing space to error string 2010-12-01 23:04:22 -05:00
Mike Gerwitz 84dcca35d2 Interface prototype contains defined methods 2010-12-01 23:01:20 -05:00
Mike Gerwitz 789c7f9b5e Moved extend-related tests to their own file for interfaces in preparation for additional extend tests 2010-12-01 21:54:02 -05:00
Mike Gerwitz 3ebe82c0a5 Interface does not depend on Class 2010-12-01 21:46:36 -05:00
Mike Gerwitz c910dafb76 Interfaces permit only abstract methods 2010-12-01 21:39:41 -05:00
Mike Gerwitz 2e930482d2 Abstract methods of subtypes overriding abstract methods must be compatiable with the previous definition 2010-12-01 21:34:57 -05:00
Mike Gerwitz 2e8097e21e Altered abstract method declaration (using strings to represent arguments rather than a function) 2010-12-01 21:13:51 -05:00
Mike Gerwitz 837422c46f Added util.isAbstractMethod 2010-12-01 21:00:15 -05:00
Mike Gerwitz 2edcb8a75e Only methods are permitted within interface declarations 2010-12-01 19:38:30 -05:00
Mike Gerwitz b294f84481 Began Interface development 2010-12-01 19:27:40 -05:00
Mike Gerwitz 1e2e73c9f0 Began moving utility methods into their own module 2010-11-15 23:44:15 -05:00
Mike Gerwitz 0e232b4a2c Freezing class object after creation 2010-11-15 23:22:24 -05:00
Mike Gerwitz 0b4ec19911 Case of poor copy-and-paste 2010-11-15 18:31:10 -05:00
Mike Gerwitz d4593725a4 If a definition is provided for an abstract method, the concrete implementation must be compatiable (proper number of arguments) 2010-11-14 21:33:13 -05:00
Mike Gerwitz bb631eb706 Added test to ensure constructor of abstract supertypes can be called 2010-11-14 21:09:24 -05:00
Mike Gerwitz 0d1ba74415 Ensured abstract classes cannot be instantiated and permitted their instantiation during extending so that it may be used in the subclass's prototype 2010-11-14 20:48:39 -05:00
Mike Gerwitz 113e3b974f Properly implemented abstract methods list 2010-11-14 20:30:33 -05:00
Mike Gerwitz d3ba8a9dfe Corrected abstract class tests (.equals() = .equal()) 2010-11-14 01:11:24 -05:00
Mike Gerwitz a083313538 Began implementing abstract methods 2010-11-14 00:47:27 -05:00
Mike Gerwitz 88b1a72255 Added some beginning test cases for abstract classes (will currently fail) 2010-11-14 00:41:18 -05:00
Mike Gerwitz 97f3c5ed5d Added tests to ensure it is possible to extend classes that were not previously created using Class.extend() 2010-11-11 21:02:09 -05:00
Mike Gerwitz e56ecce61f Added index.js 2010-11-11 08:50:05 -05:00
Mike Gerwitz 16a91b728e Methods can no longer be overridden with non-methods (anything other than a Function) 2010-11-10 23:42:26 -05:00
Mike Gerwitz 61985eea47 Added checks for ES5 features 2010-11-10 23:28:20 -05:00
Mike Gerwitz 8422bea1d6 Added getter/setter override support 2010-11-10 23:19:46 -05:00
Mike Gerwitz 0c963d1d00 Added access to parent prototype via parent property 2010-11-10 22:54:24 -05:00
Mike Gerwitz 607bbf7f4c Added support for _super method
- Motivation from John Reisg's "Simple Javascript Inheritance": http://ejohn.org/blog/simple-javascript-inheritance/
2010-11-10 22:49:27 -05:00
Mike Gerwitz 6ea6fd0bb7 Began adding parent tests (parent method call currently fails) 2010-11-10 22:19:50 -05:00
Mike Gerwitz 26b70bcd93 Changed license to LGPL
My reason for doing so is more practical - for the same reasons that GNU released glib and
other libraries under the LGPL. The reason is that there are so many other alternatives out
there that are released under more permissive licenses. This isn't anything special. Therefore,
to encourage its adoption, I've released it under the LGPL.

All my larger projects/libraries that have few/no alternatives will be released under the
GPL/AGPL.
2010-11-10 22:07:03 -05:00
Mike Gerwitz fdf389ba2e Added inheritance instanceof assertions 2010-11-10 21:39:09 -05:00
Mike Gerwitz 909542d19b Added support for extending classes via convenience method and tests for property inheritance 2010-11-10 21:10:31 -05:00
Mike Gerwitz 0d5afa8d71 Moved object extend() assertion to its own file to prepare for extending subtypes 2010-11-10 20:48:35 -05:00
Mike Gerwitz 6a14b86777 Minor documentation changes 2010-11-10 20:45:33 -05:00
Mike Gerwitz 9071a158a2 Added tests for constructor arguments 2010-11-10 19:29:56 -05:00
Mike Gerwitz bebaee7b46 Moved constructor tests into their own file 2010-11-10 19:21:53 -05:00
Mike Gerwitz 94835d290a Implemented constructor 2010-11-10 19:19:02 -05:00
Mike Gerwitz 1ee270883e Began implementing constructor (not yet operable - test will fail) 2010-11-10 19:02:52 -05:00
Mike Gerwitz 8d6c2645bc Began adding Class.extend() 2010-11-10 18:40:36 -05:00
Mike Gerwitz 979331cda3 Initial commit beginning to outline concept 2010-11-10 17:41:12 -05:00