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
fba94f2e0b
Added todo to profile propParse's use of fvoid vs if statements
2011-01-09 19:44:09 -05:00
Mike Gerwitz
7301ddbac2
[minor] formatting fix
2011-01-09 19:41:47 -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
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
9ef73195c5
[minor] formatting fix
2010-12-29 22:51:29 -05:00
Mike Gerwitz
ca71fc6296
Remove accidental attach of isInstanceOf() to Class
2010-12-29 22:45:47 -05:00
Mike Gerwitz
80b0732be1
Interfaces cannot be instantiated
2010-12-29 22:40:23 -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
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
828a366f29
Renamed prop_parse.{parse => parseKeywords}
2010-12-27 23:12:37 -05:00
Mike Gerwitz
87e293e33f
Property keyword parser now simply checks for spaces (to be flexible enough to support any keywords in the future)
2010-12-27 23:04:50 -05:00
Mike Gerwitz
3277a30d54
Removed now unnecessary abstract keyword check from util.propParse()
2010-12-27 22:32:30 -05:00
Mike Gerwitz
1364d5967f
Abstract methods must contain a parameter list as an array
2010-12-27 22:30:28 -05:00
Mike Gerwitz
69391f9b48
Finished correcting assertion tests with new implementation
2010-12-27 22:20:29 -05:00
Mike Gerwitz
e789e58000
Removed Class.abstractMethod in favor of property keyword
2010-12-27 22:11:37 -05:00
Mike Gerwitz
f705f38640
Began adding prop_parser module and moved existing property keyword parser function into it
2010-12-27 20:56:36 -05:00
Mike Gerwitz
9666a5f80f
Began adding property keyword parsing (concept)
2010-12-27 20:49:59 -05:00
Mike Gerwitz
3ef2a28e24
Merge branch 'master' of github.com:mikegerwitz/easejs
2010-12-23 15:59:57 -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
a93ff61bde
If setting a secure property fails, it will force a fallback to prevent performance degredation due to exceptions
2010-12-22 22:17:07 -05:00
Mike Gerwitz
7e7080ccbf
util.defineSecureProp() no longer performs fallback check on each invocation
2010-12-21 22:41:50 -05:00
Mike Gerwitz
d5f37f294e
IE8 does not support Object.defineProperty on non-DOM objects
...
(see http://stackoverflow.com/questions/3830800/object-defineproperty-in-es5 )
2010-12-21 14:37:34 -05:00
Mike Gerwitz
e1d7b80d46
Calling hasOwnProperty via Object prototype in case it has been overridden
2010-12-21 10:09:18 -05:00
Mike Gerwitz
3a0972c79d
Removed unneeded 'continue' statement
2010-12-20 13:51:44 -05:00
Mike Gerwitz
1f40665e57
Added tests for util.defineSecureProp()
2010-12-20 13:43:12 -05:00
Mike Gerwitz
0d84cd829a
util.defineSecureProp was failing in browsers that do not support Object.defineProperty()
...
- This is untested! Test needed.
2010-12-20 10:04:11 -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
2789e5fcf9
Abstract map no longer passed to method_override() - it's only used in that method
2010-12-18 10:57:00 -05:00
Mike Gerwitz
e39cfea741
Now exporting util's array_shrink() as util.arrayShrink()
2010-12-18 09:38:58 -05:00