1
0
Fork 0
Commit Graph

1065 Commits (protolib)

Author SHA1 Message Date
Mike Gerwitz 3ebe82c0a5 Interface does not depend on Class 2010-12-01 21:46:36 -05:00
Mike Gerwitz 287320c09a README.md now reflects abstract method definition change 2010-12-01 21:41:32 -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 54432c78fa abstractMethod() moved to util.defineAbstractMethod 2010-12-01 20:45:27 -05:00
Mike Gerwitz b3c4b757e7 util.canFreeze removed, replaced with util.freeze() 2010-12-01 20:41:54 -05:00
Mike Gerwitz c29bd010b0 define_secure_prop moved to util.defineSecureProp 2010-12-01 20:38:50 -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 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