1
0
Fork 0
Commit Graph

85 Commits (15ac62d063c77d5b259323ab9479aa69ff85a113)

Author SHA1 Message Date
Mike Gerwitz e239352fc0 Resolved bug that was causing the system to think that Object prototype members were part of the abstract member list when attempting to define a method with the same name 2011-03-01 12:11:36 -05:00
Mike Gerwitz 8c7ad787c8 Abstract methods list is no longer public 2011-01-25 00:24:50 -05:00
Mike Gerwitz fb5d541ea3 Removed old console.log 2011-01-25 00:23:56 -05:00
Mike Gerwitz fa8cddea07 Meta now uses deep cloning 2011-01-25 00:19:48 -05:00
Mike Gerwitz 881edc0cc6 Preparing to remove abstractMethods from public prototype; now uses hash for performance since it no longer needs to be referenced cleanly externally
- It will be later referenced via reflection
2011-01-25 00:13:47 -05:00
Mike Gerwitz 37e5b1d94d util.propCopy() no longer needed 2011-01-24 23:38:27 -05:00
Mike Gerwitz eba32ed4cb Beginning to move Class over to use member builders 2011-01-24 23:28:48 -05:00
Mike Gerwitz 5a3b401647 Began moving abstract logic out of propCopy 2011-01-24 20:58:58 -05:00
Mike Gerwitz f55def4f06 Preparing class to use member_builder 2011-01-21 00:03:41 -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 7fb0f6a820 Classes now contain implement() method 2011-01-10 19:56:09 -05:00
Mike Gerwitz ec9f24a926 Moved implement() into its own method, accepting destination object as the first parameter 2011-01-10 19:00:26 -05:00
Mike Gerwitz 3e8dba2fdc Added missing comma to variable list 2011-01-09 00:40:35 -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 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 ca71fc6296 Remove accidental attach of isInstanceOf() to Class 2010-12-29 22:45:47 -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 96909732db Began adding isInstanceOf, starting with prototype chain checks 2010-12-29 21:13:21 -05:00
Mike Gerwitz 0103df3e71 Fixed self-invoking constructor issue in IE 2010-12-29 09:43:00 -05:00
Mike Gerwitz 38a6a4ee6a Added missing semi-colons that would otherwise be inserted via semicolon insertion 2010-12-28 22:10:12 -05:00
Mike Gerwitz 789f2390af All functions are now camelCase 2010-12-28 22:08:30 -05:00
Mike Gerwitz c9d0e027fa Added isClass() and isClassInstance() methods 2010-12-28 20:58:42 -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 e789e58000 Removed Class.abstractMethod in favor of property keyword 2010-12-27 22:11:37 -05:00
Mike Gerwitz f58586fc94 Added tests to ensure constructor is properly applied to subtypes 2010-12-23 15:57:45 -05:00
Mike Gerwitz cd9ef1ea71 Finished refactoring to remove result_data object in class extend() function 2010-12-19 13:54:31 -05:00
Mike Gerwitz 1ff9408885 Rearranged util.overrideMethod() arguments to match methodOverride propCopy() action (to avoid unnecessary mistakes and confusion) 2010-12-19 00:12:41 -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 3a2ddbb29b class.js 'extending' var is an argument and shouldn't be declared with var keyword 2010-12-18 08:24:15 -05:00
Mike Gerwitz f2baf82100 Removed unneeded var 2010-12-18 06:59:35 -05:00
Mike Gerwitz 755b79725f Corrected attach_prop_init() documentation (__propInit => __initProps) 2010-12-16 23:56:35 -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 a60fe9c2de Class extend() now implements propCopy's performDefault (see previous commit) 2010-12-16 23:51:22 -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 729b977088 Fix of unintended global var 2010-12-03 07:19:16 -05:00
Mike Gerwitz 78e1913eb9 Comment spelling correction 2010-12-01 23:19:59 -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 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 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