1
0
Fork 0
Commit Graph

124 Commits (5a3b4016473c3806fa364edb446cdd5613d9010f)

Author SHA1 Message Date
Mike Gerwitz 96d2f74dae Method builder wraps overrides in an override function 2011-01-21 23:16:20 -05:00
Mike Gerwitz e03d5861bb Overridden methods must have >= length parameter lists 2011-01-21 22:19:22 -05:00
Mike Gerwitz b8a6aa2af6 Method builder does not permit overriding properties with methods 2011-01-21 21:53:31 -05:00
Mike Gerwitz 12e5b48a7d Cannot override method with property 2011-01-21 21:43:18 -05:00
Mike Gerwitz dea6972416 Began adding basic method builder (currently operates the same as property builder)
- They are essentially the same, but the method builder will have additional logic (e.g. method overriding) and support different keywords
2011-01-21 20:54:55 -05:00
Mike Gerwitz 906e468cdf Refactored test logic that will be shared between multiple members into inc-member_builder-common.js to reduce code duplication 2011-01-21 20:46:24 -05:00
Mike Gerwitz 2205af8c07 Can initialize member object with existing objects for each level of visibility 2011-01-20 23:56:39 -05:00
Mike Gerwitz 96cee9660b Began adding member_builder.initMembers() 2011-01-20 23:53:00 -05:00
Mike Gerwitz 3c45912f25 Added getter/setter to member builder 2011-01-20 23:50:53 -05:00
Mike Gerwitz b34e0b45f6 Property member builder tests now use object and deepEqual() to ensure that property is copied as intended 2011-01-20 22:22:12 -05:00
Mike Gerwitz f25ae7cb43 Made property member builder tests more specific to ensure that properties are not copied to multiple prototypes 2011-01-20 22:19:06 -05:00
Mike Gerwitz a58b7989ee Throws TypeError if multiple visibility keywords are given to member builder 2011-01-20 22:11:36 -05:00
Mike Gerwitz 9a5fe96c3e Result of buildProp() in tests unneeded 2011-01-20 21:53:18 -05:00
Mike Gerwitz 7f92a76e1f Member builder uses public prototype by default 2011-01-20 21:50:52 -05:00
Mike Gerwitz f27b0b01ab Member builder recognizes private members 2011-01-20 21:48:09 -05:00
Mike Gerwitz 0ba3122db5 Member builder recognizes protected members 2011-01-20 21:46:49 -05:00
Mike Gerwitz 23a7d9d540 Began adding member_builder 2011-01-18 23:47:58 -05:00
Mike Gerwitz 96f5b8ff58 Multiple spaces now properly handled in keyword parser 2011-01-18 19:33:33 -05:00
Mike Gerwitz 7dab5c7b20 Keywords are now returned by propParse 2011-01-17 22:24:02 -05:00
Mike Gerwitz 1f661bebcd Altered property keyword parser tests to be more easily recognizable 2011-01-17 20:41:04 -05:00
Mike Gerwitz afc5d4668d Abstract classes also have a more intuitive string representation 2011-01-17 20:22:30 -05:00
Mike Gerwitz d19638be4f Classes now return a more intuitive string representation 2011-01-17 20:20:39 -05:00
Mike Gerwitz 1b40451aad Put class-implement tests into self-executing functions in testdox format to make them more easily recognized
- Eventually, I'd like for all the tests to be in this format
2011-01-11 19:03:30 -05:00
Mike Gerwitz 7fb0f6a820 Classes now contain implement() method 2011-01-10 19:56:09 -05:00
Mike Gerwitz e822bc8840 Combined test now testing for Interface export 2011-01-09 02:00:36 -05:00
Mike Gerwitz aa1d38b007 Added deep cloning for objects 2011-01-09 01:46:46 -05:00
Mike Gerwitz 0f905481bf Added deep cloning for arrays 2011-01-09 01:38:40 -05:00
Mike Gerwitz 56c13b757b isInstanceOf() now works with interfaces 2011-01-04 00:37:54 -05:00
Mike Gerwitz c3b00ab9b7 Encapsulating implemented list (can use isInstanceOf() or a future reflection API) 2011-01-03 23:41:45 -05:00
Mike Gerwitz 0b112dac51 Abstract method list is now updated for classes that implement interfaces 2011-01-03 23:25:27 -05:00
Mike Gerwitz c12ac412cb Class.{implements => implement} - like Class.extend(), we're looking for a verb 2010-12-30 09:54:53 -05:00
Mike Gerwitz 5b3ecf853b Exposed Interface 2010-12-30 09:24:52 -05:00
Mike Gerwitz d5d6082bfb Interface methods are now copied to the class prototype (basic implementation - no deep copy for interface subtypes yet) 2010-12-29 23:34:12 -05:00
Mike Gerwitz 459d5e967b Classes now store implemented interfaces in a list (does not yet import methods) 2010-12-29 23:33:30 -05:00
Mike Gerwitz 80b0732be1 Interfaces cannot be instantiated 2010-12-29 22:40:23 -05:00
Mike Gerwitz b357293890 Classes now tested using isInstanceOf() 2010-12-29 21:45:33 -05:00
Mike Gerwitz 76969201fb Added isA() as an alias for isInstanceOf() 2010-12-29 21:37:11 -05:00
Mike Gerwitz 6a24f2ad13 Added isInstanceOf() partially applied function to class instances 2010-12-29 21:32:16 -05:00
Mike Gerwitz 83cecb5fdc Instantiating test object only once 2010-12-29 21:18:03 -05:00
Mike Gerwitz 96909732db Began adding isInstanceOf, starting with prototype chain checks 2010-12-29 21:13:21 -05:00
Mike Gerwitz 004ccfa05b Interfaces cannot inherit from Classes 2010-12-28 21:56:55 -05:00
Mike Gerwitz c9d0e027fa Added isClass() and isClassInstance() methods 2010-12-28 20:58:42 -05:00
Mike Gerwitz 928a0ea297 Removed Interface.abstractMethod() in favor of 'abstract' keyword 2010-12-28 20:13:50 -05:00
Mike Gerwitz 44186068b4 Class constructors are now self-invoking
- Permits omitting 'new' keyword, which is a style preferred by some (such as Crockford)
- It's very difficult to use apply() with the 'new' keyword - this method permits a simple way of passing an argument list to the constructor
2010-12-28 19:05:53 -05:00
Mike Gerwitz 1fc791fa31 Altered secure property test to work properly in IE8, which falls back due to its incomplete implementation of Object.defineProperty() 2010-12-28 13:45:33 -05:00
Mike Gerwitz c29d3a15d7 Corrected line over 80 character mark 2010-12-28 13:21:48 -05:00
Mike Gerwitz dce46bb555 Tests will not attempt to use Object.isFrozen() unless defined 2010-12-28 09:14:54 -05:00
Mike Gerwitz 665b11e116 Removed forEach from tests to support engines that have not yet implemented that method (new in ES5) 2010-12-28 09:14:35 -05:00
Mike Gerwitz ac6fb40c21 IE does not like 'item' as a var name 2010-12-28 09:04:27 -05:00
Mike Gerwitz 2325bd9a8f Resolved getter/setter test issues for browsers that do not support the functionality
- __define{Getter,Setter}__ had to be used rather than object notation due to syntax errors in older browsers
2010-12-28 09:02:23 -05:00