Mike Gerwitz
0b4ec19911
Case of poor copy-and-paste
2010-11-15 18:31:10 -05:00
Mike Gerwitz
ce038a871b
Corrected documentation for abstractMethod
2010-11-15 13:28:36 -05:00
Mike Gerwitz
d8533d6974
Updated README.md with some of the new changes
2010-11-15 12:11:11 -05:00
Mike Gerwitz
f632b93d64
Refactored constructor creation logic for new classes into its own method and placed both functions (and their shared var) into a closure to remove the 'extending' var from the module's scope
2010-11-15 07:07:49 -05:00
Mike Gerwitz
095683ba42
Simply moved extend() function higher up in the source file, since it will be one of the most commonly referenced functions
2010-11-15 06:54:37 -05:00
Mike Gerwitz
f9d7dca4b3
Removed old code from attach_extend()
2010-11-14 22:07:04 -05:00
Mike Gerwitz
e26d7971ce
Refactored abstract method logic
2010-11-14 22:03:55 -05:00
Mike Gerwitz
52944c4207
Grammar
2010-11-14 21:52:02 -05:00
Mike Gerwitz
3f169d87ea
Refactored method override logic into its own function
2010-11-14 21:50:56 -05:00
Mike Gerwitz
1a9cc40c31
Refactored abstract method regeneration logic into a array_shrink() function
2010-11-14 21:39:46 -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
e0657e1c44
abstractFlag now defined using define_secure_prop()
2010-11-14 21:18:40 -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
746a9ee53d
Class.isAbstract() now defined using define_secure_prop
2010-11-14 20:31:23 -05:00
Mike Gerwitz
113e3b974f
Properly implemented abstract methods list
2010-11-14 20:30:33 -05:00
Mike Gerwitz
ad4b317955
Refactored defineProperty() code into define_secure_prop() function to reduce duplicate code
2010-11-14 01:37:12 -05:00
Mike Gerwitz
d5b4477109
Abstract methods are now passed to subtypes
2010-11-14 01:18:49 -05:00
Mike Gerwitz
d3ba8a9dfe
Corrected abstract class tests (.equals() = .equal())
2010-11-14 01:11:24 -05:00
Mike Gerwitz
de979d07f0
Added isAbstract() method to class
2010-11-14 01:10:55 -05:00
Mike Gerwitz
716db6d086
prop_copy() will now keep track of abstract methods
2010-11-14 01:02:57 -05:00
Mike Gerwitz
e783713ca7
Added a result_data argment to prop_copy()
2010-11-14 00:56:54 -05:00
Mike Gerwitz
9dc025e6b1
Added setup_props function to prepare for adding multiple properties to generated classes
2010-11-14 00:49:52 -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
72189eeda1
Initial commit of README.md
2010-11-11 00:12:59 -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
c34f40db19
Converted vars to conventional function delcarations (no difference; just preference)
2010-11-10 23:35:57 -05:00
Mike Gerwitz
4e38898c93
Added additional documentation to prop_copy()
2010-11-10 23:31:58 -05:00
Mike Gerwitz
60bf9deaf5
Moved class extend() export to the top of the module to make it more noticable in the mess of functions
2010-11-10 23:30:30 -05:00
Mike Gerwitz
86bbef6f77
Added documentation for attach_extend()
2010-11-10 23:29:28 -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
c42598c47b
Class.extend() should not be part of the prototype (we're extending the class, not an object instance)
2010-11-10 21:05:52 -05:00
Mike Gerwitz
7475fa11c6
Corrected makefile to run all tests
2010-11-10 21:00:38 -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
e870310341
Added Makefile for testing
2010-11-10 19:38:06 -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