Mike Gerwitz
445fc936a2
Added basic test for combined file (does not yet test functionality)
2010-12-20 22:49:52 -05:00
Mike Gerwitz
8b8c7e8533
separated rmtrail function into its own tool and added test
2010-12-20 22:19:18 -05:00
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