1
0
Fork 0
Commit Graph

290 Commits (24e9dd25490169a194a7a055908ec748c250b761)

Author SHA1 Message Date
Mike Gerwitz 3185cb13d5 Added tests to ensure protected static getters/setters operate as intended 2011-05-14 11:07:51 -04:00
Mike Gerwitz d59bac0978 Added test to ensure users can't be tricky and try to break static property encapsulation 2011-05-13 21:27:53 -04:00
Mike Gerwitz 775438c1b6 Implemented private static properties 2011-05-13 00:55:09 -04:00
Mike Gerwitz 9b20cdff48 Initial concept for protected static property access 2011-05-12 00:25:34 -04:00
Mike Gerwitz 9067bbf0cf Static property accessor method is no longer enumerable 2011-05-11 20:53:43 -04:00
Mike Gerwitz fa8d1bebe1 Implemented private static methods 2011-05-11 20:10:10 -04:00
Mike Gerwitz a303adddea Added tests to ensure that static method overrides are supported 2011-05-11 18:36:49 -04:00
Mike Gerwitz 9822894eae Protected static methods are now inherited by subtypes 2011-05-11 17:56:48 -04:00
Mike Gerwitz 91a47e4dcd [Bug Fix] Concrete class constructor is no longer invoked on extend
- The ctor must be instantiated for use in the prototype chain
- This was working in the past, but apparently no test existed for it and
  refactoring broke it
2011-05-10 23:32:13 -04:00
Mike Gerwitz 3c774a7b16 Implemented protected static members within static methods
- Still not inheritence
2011-05-10 19:54:23 -04:00
Mike Gerwitz a246dd67e0 Began adding protected static members (supported for instance methods)
- No inheritance support yet
2011-05-09 23:09:32 -04:00
Mike Gerwitz 26cf32abe5 Enhanced static property setter to support setting to both undefined and null values 2011-04-13 23:53:03 -04:00
Mike Gerwitz 462671cfba Can no longer set values of undeclared static properties 2011-04-13 23:45:26 -04:00
Mike Gerwitz 7e53df0e84 Static property setter now returns calling class 2011-04-13 23:35:54 -04:00
Mike Gerwitz e3c526b89d Writes to public static properties now work properly 2011-04-13 23:06:24 -04:00
Mike Gerwitz 44cd8db82d Began implementing static property method (getter) 2011-04-13 22:38:05 -04:00
Mike Gerwitz 63a4f95f65 Fix for overriding protected with protected
- A better solution may be explored
2011-04-13 14:48:20 -04:00
Mike Gerwitz 4a90b7b809 Public static properties references are now shared with subtypes 2011-04-10 22:32:46 -04:00
Mike Gerwitz aead20290c Inherited static members are no longer copied by reference
- Sharing values with supertype = bad
2011-04-05 23:47:44 -04:00
Mike Gerwitz 604e03fa55 util.clone() no longer falsely attempts to clone functions 2011-04-05 23:47:08 -04:00
Mike Gerwitz 4a0537223b Added deep copy to util.copyTo() 2011-04-05 23:38:13 -04:00
Mike Gerwitz fad503422e Subtypes now inherit public static members from their supertype 2011-04-05 23:11:25 -04:00
Mike Gerwitz 7560d57619 Implemented __self for static access 2011-04-05 22:07:13 -04:00
Mike Gerwitz ea0d18d8eb Added regression test to ensure 'this' is bound to the class definition rather than instance within static methods 2011-04-05 19:52:49 -04:00
Mike Gerwitz af53fe81b4 Added support for public static getters/setters 2011-04-05 00:08:39 -04:00
Mike Gerwitz 4d0724b85d Added util.copyTo() 2011-04-05 00:05:18 -04:00
Mike Gerwitz e93a4db3e4 Began implementing public static members 2011-04-04 23:07:01 -04:00
Mike Gerwitz dddd26761c Current __self -> __inst; __self will be used in a different manner in following commits 2011-04-03 11:57:15 -04:00
Mike Gerwitz 1abf127ccc Protected property values, when set by the parent, are now available to subtypes 2011-04-02 10:58:26 -04:00
Mike Gerwitz 61f2f7e22d Methods can now be properly overridden when visibility is escalated 2011-04-01 06:28:45 -04:00
Mike Gerwitz 6ade1c021f Implemented GH#15 Access to public interface from within class instance 2011-03-30 00:55:27 -04:00
Mike Gerwitz 9d47e64ac3 Properties can no longer be declared as abstract 2011-03-29 23:48:17 -04:00
Mike Gerwitz 8a3010c964 Implemented GH#3 Abstract keyword cannot be used with private members 2011-03-29 23:39:49 -04:00
Mike Gerwitz b8e512c69e Formatted prop_parser tests 2011-03-29 23:28:45 -04:00
Mike Gerwitz 5cb0b8355f __super() method is now properly set on context 2011-03-29 22:02:42 -04:00
Mike Gerwitz bc8ec4e0be Added tests for forced-public methods 2011-03-28 19:17:38 -04:00
Mike Gerwitz 2555a0db47 Added tests for reserved members 2011-03-28 18:58:23 -04:00
Mike Gerwitz 30d10ff9d7 Constructor must now be public 2011-03-23 21:35:25 -04:00
Mike Gerwitz fba584171c Placed test targets in their own Makefile to faciliate using tests as prerequisites for ease-full.js, ensuring it'll be rebuilt on test modification 2011-03-20 02:28:40 -04:00
Mike Gerwitz 4d2852627e All interface members must now be public 2011-03-19 00:58:42 -04:00
Mike Gerwitz 5af833ab05 Disallowing member redeclaration in same class definition 2011-03-19 00:48:02 -04:00
Mike Gerwitz 7070e55254 Added test to ensure same visibility de-escalation rules apply to concrete implementations of Interface methods 2011-03-18 23:55:56 -04:00
Mike Gerwitz 10ef0b2139 Added test to ensure __super() works properly with protected method overrides 2011-03-18 23:49:28 -04:00
Mike Gerwitz ce736bea55 Visibility de-escalation no longer permitted 2011-03-18 23:42:07 -04:00
Mike Gerwitz 36ae6bcd81 Now throwing expection if more than two arguments are passed to extend() when implementing 2011-03-16 19:50:47 -04:00
Mike Gerwitz 14cac6b461 Can now specify parent class in extend() when implementing atop an empty base 2011-03-16 19:24:02 -04:00
Mike Gerwitz 80f3ec6b68 Preventing base specification via extend() when implementing off of an existing base class 2011-03-16 19:06:16 -04:00
Mike Gerwitz 58cb196213 Extending class while using temporary name object is now permitted 2011-03-16 18:18:33 -04:00
Mike Gerwitz 66758500e6 Class metadata is now stored in class object (first step in working with GC) 2011-03-14 23:43:56 -04:00
Mike Gerwitz 7b766c1b14 Altered toString() defaults to be more consistent with v8 2011-03-14 18:16:53 -04:00
Mike Gerwitz 9a135a064c Added pre-ES5 test to ensure we can catch fallback bugs quickly between browser tests (preferably, before even committing) 2011-03-13 22:08:08 -04:00
Mike Gerwitz d05652f880 Fixed visibility issues in IE6
- Wasn't properly falling back
2011-03-13 21:47:40 -04:00
Mike Gerwitz e1bb48a8d9 Added visibility test to ensure supertypes do not have access to private members of subtypes when invoked 2011-03-13 15:39:14 -04:00
Mike Gerwitz e03c081cfd Fixed bug that made private members of a supertype inaccessible to methods that have not been overridden by a subtype
- In doing so, abandoned the super identifier (sid) for a more elegant solution with class ids (cid's)
- This permits fast and easy private member swapping via getMethodInstance() in class.js
2011-03-13 04:51:00 -04:00
Mike Gerwitz 6b374902ae Separated private members into a separate object (propobj) to prepare for future modifications
- This incurs a performance hit for accessing protected members, and even further for public, internally
  - But speeds up access to private members, likely due to there being less members
2011-03-12 23:48:38 -05:00
Mike Gerwitz 05e249def4 Added result explanations to method invocation performance tests 2011-03-11 19:27:07 -05:00
Mike Gerwitz 5a420fae4e Added perf tests for invoking class methods 2011-03-11 19:20:05 -05:00
Mike Gerwitz d2aa24ef66 Added performance tests for setting properties, internally and externally 2011-03-11 19:16:52 -05:00
Mike Gerwitz 311e39d67c Added performance test for reading properties, internal and external 2011-03-11 19:14:10 -05:00
Mike Gerwitz a8767a1da0 Added property/method class definition performance tests 2011-03-10 23:32:33 -05:00
Mike Gerwitz cdc88bea4c Added count to perf output to calculate individual cost 2011-03-10 23:07:52 -05:00
Mike Gerwitz 37bf2fa353 Began adding performance tests 2011-03-10 22:43:36 -05:00
Mike Gerwitz e0fb37daa0 Overridden methods now property return instance when returning 'this'
- There may be a cleaner way to do this. This is a quick fix.
2011-03-10 12:40:55 -05:00
Mike Gerwitz 84363aca45 Added test to ensure correct instance is returned when returning 'this' from a parent method 2011-03-10 12:24:59 -05:00
Mike Gerwitz 7427958ec0 Returning 'this' from a method will now return the object instance, not the internal property object 2011-03-10 12:19:39 -05:00
Mike Gerwitz 354061cd5f Continuing to use BASH for now for rmtrail test 2011-03-07 23:16:14 -05:00
Mike Gerwitz 960be880ab Merge branch 'master' into visibility/master 2011-03-07 23:09:02 -05:00
Mike Gerwitz ab8faad53f /bin/{bash => sh} to support system with only sh installed
- e.g. FreeBSD
- Nothing in the scripts actually needs BASH anyway
2011-03-07 22:54:59 -05:00
Mike Gerwitz 841b5ac5a5 Replaed all __{define,lookup}[GS]etter__'s with defineProperty/getOwnPropertyDescriptor 2011-03-07 22:44:47 -05:00
Mike Gerwitz 00378da630 Merge branch 'master' into visibility/master 2011-03-07 09:03:34 -05:00
Mike Gerwitz fbc58384b4 Provided a more accurate mechanism for detecting Object.defineProperty (tests in IE8 fixed) 2011-03-07 09:03:03 -05:00
Mike Gerwitz 4e2f174667 Added test for good measure to ensure class instances do not share protected member values 2011-03-07 00:19:56 -05:00
Mike Gerwitz e05a65d5fa Initial concept of inheriting protected/private members 2011-03-07 00:14:43 -05:00
Mike Gerwitz 30bfde50cd Tada! Private members. 2011-03-06 23:03:39 -05:00
Mike Gerwitz c1765cd720 Using visibility fallback for browsers that do not support getters/setters 2011-03-06 22:43:14 -05:00
Mike Gerwitz 5d8fdc5204 Merge branch 'master' into visibility/master
Conflicts:
	lib/class.js
2011-03-06 12:39:26 -05:00
Mike Gerwitz 517b2be464 Fix toString() override for IE
- All tests once again pass on IE6
2011-03-06 12:38:31 -05:00
Mike Gerwitz a1c1ddff74 IE6 was blowing up on getter/setter test 2011-03-06 10:56:31 -05:00
Mike Gerwitz 4eda438f14 Outputting current test for browser
- Output is hidden on success, but useful on failure
2011-03-06 10:55:13 -05:00
Mike Gerwitz 6b79999adb IE6 Error.prototype.toString() !== Error.message 2011-03-06 10:37:20 -05:00
Mike Gerwitz 0ccab4f8d9 Corrected test combine process; was not including tests in ease-full.js 2011-03-06 10:15:32 -05:00
Mike Gerwitz c0f351d173 Merge branch 'master' into visibility/master 2011-03-05 23:12:55 -05:00
Mike Gerwitz d6cca75093 Can now override toString() method of a class 2011-03-05 23:11:13 -05:00
Mike Gerwitz b321610cc7 Interface name included in instantiation error, if available 2011-03-05 21:46:44 -05:00
Mike Gerwitz 6f7dabe35e Interface name is included in declaration errors, if available 2011-03-05 17:27:02 -05:00
Mike Gerwitz 2967cc7a9a Class name is now provided in all errors where name is available, within class module 2011-03-05 13:13:53 -05:00
Mike Gerwitz da8be9affa Interface definition errors now contain class name when available 2011-03-05 12:57:21 -05:00
Mike Gerwitz 5f739e604b Class name is included in definition errors when available 2011-03-05 12:56:14 -05:00
Mike Gerwitz 635395b303 Merge branch 'master' into visibility/master 2011-03-05 03:23:11 -05:00
Mike Gerwitz 2c2701f4ab Implemented staging-style named class definition when implementing interfaces 2011-03-05 03:22:45 -05:00
Mike Gerwitz 0f9454b79b interface() no longer returns a usable class
- Number of reasons. First and foremost, it doesn't make sense to return a usable class with no body/definition
- Secondly, to make the following commit(s) possible and consistent
2011-03-05 02:59:21 -05:00
Mike Gerwitz ace9f4c1ea Began implementing class name staging (implement() does not yet work with it) 2011-03-05 00:33:47 -05:00
Mike Gerwitz 0ccdf07145 Implemented strict argument check for interface creation 2011-03-04 23:43:30 -05:00
Mike Gerwitz b158e542d5 Declaring named class will throw error for extreaneous arguments 2011-03-04 16:36:15 -05:00
Mike Gerwitz dca7653adf Merge branch 'master' into visibility/master 2011-03-04 00:26:02 -05:00
Mike Gerwitz 009c4a93e9 Interfaces now have sane/useful values when converted to strings 2011-03-04 00:19:02 -05:00
Mike Gerwitz 85e687e29c Added Interface.isInterface() 2011-03-03 23:59:37 -05:00
Mike Gerwitz 4148f8742d Merge branch 'master' into visibility/master
Conflicts:
	test/test-class-extend.js
2011-03-03 23:29:20 -05:00
Mike Gerwitz 81d03cb984 Altered class toString() representations to be more consistent with JS 2011-03-03 23:00:59 -05:00
Mike Gerwitz e2cba458d8 Class instances now have different default toString() implementations than uninstantiated classes
- Instance id is not yet included, as that is currently in a different branch
2011-03-03 22:53:20 -05:00