Claims
- 1. A method for implementing type inheritance in ECMAScript consisting of type proxies which are instances of types other than Function where said type proxies are used to represent types rather than instances of Function and respond to an instance creation function rather than the “new” keyword for instance creation.
- 2. In addition to claim 1, the use of data structures maintained on behalf of said type proxies for the purpose of storing accurate reflection data regarding subtype and supertype relationships.
- 3. In addition to claim 1, the use of unique object identifiers assigned to each instance created by said type proxy such that each instance can later be identified and acquired directly via its unique identifier
- 4. In addition to claims 1 and 3, the use of data structures managed on behalf of said type proxies such that all instances of a particular type can be acquired by accessing said data structures either in whole or via unique object identifier.
- 5. In addition to claim 1 the use of data structures to manage guardian objects which are queried in response to method-not-found scenarios to provide multiple inheritance, particularly where such guardians are not required to be type objects or type proxies.
- 6. In addition to claim 1 the use of instance-specific or “local” programming consisting of copying state and behavior from multiple additional types to effect multiple inheritance for types or instances of the type.
- 7. The use of instance-specific “local” programming to migrate behavior and state from ancestors directly onto a target instance to optimize lookup efficiency.
- 8. In addition to claim 6 and 7 the use of dependency registration and state-change event notification to automatically update state and/or behavior copied from antecedent types when those antecedent types are altered.
- 9. In addition to claim 1, the use of a function to locate and invoke the next method of the currently enclosing methods'name within the method lookup hierarchy such that the receiving object is properly bound to any “this” references within the next method found.
- 10. A method for controlling property creation and access in ECMAScript consisting of a function or functions known as a property-definition functions whose operation includes invocation of a method on incoming properties and assignment of the return value of said method as the property value.
- 11. In addition to claim 10, a function or functions invoked by said property-definition function whose operation includes dynamic generation of functions which access the property being defined.
- 12. In addition to claim 10, the use or generation of functions whose operation includes pre-processing prior to invoking a nested function, invoking a second function whose return value is captured, post-processing upon return from said function invocation, and returning the return value of the nested function to the caller.
- 13. In addition to claim 10, the use or generation of functions whose operation includes storing a reference to the object through which the function was invoked on a stack or similar data structure, invoking a second function whose return value is captured, removing the previously stored object reference from the stack or other data structure, and returning the return value of the nested function to the caller.
- 14. In addition to claim 10, the use or generation of functions whose operation includes storing a reference to the function being invoked on a stack or similar data structure, invoking said function whose return value is captured, removing the previously stored function reference from the stack or other data structure, and returning the return value of said function.
- 15. In addition to claim 10, use of dynamically generated functions whose operation includes writing a timestamped log entry upon invocation, accessing the wrapped property, and writing a second timestamp for purposes of tracking property access times.
- 16. In addition to claim 10, dynamically generated functions whose operation includes logging the name and parameters of the function being called, executing said function with said parameters, and logging the return value of said function prior to returning the return value.
- 17. In addition to claim 10, the use of functions whose operation includes checking the calling context to determine whether it matches visibility criteria such as public, private, or protected and which only access the wrapped property when the visibility constraints have been met.
- 18. The use of a function whose operation consists of dynamically generating a function which through creation of a closure binds a function to an object for purposes of ensuring internal “this” references on the function so bound reference said object regardless of the eventual calling context.
- 19. The use of a function to add function properties to a target object where said function's operation includes placing a function or other placeholder at the root of the method lookup chain to trap attempted invocation of the original function from types which do not implement it.
- 20. A method for inferring message solutions based on reflection data where such method includes determining a set of possible type conversions which result in conversion of the original message receiver into a type which can respond properly to the original method.
- 21. In addition to claim 20, dynamic generation of a method or function to perform a type conversion and method invocation for the purpose of resolving said message.
- 22. In addition to claim 21, updating of appropriate inheritance or local method lookup structures such that each inferred method is only generated once for any particular receiver.
- 23. In addition to claim 22, automatic storage of generated method source code to a persistent store such that future invocations of the application software do not trigger the initial inferencing process but instead invoke the generated and preserved method.
- 24. A method for capturing reflection data in ECMAScript consisting of functions part of whose operation includes capturing ownership of each attribute, method, constant or other property where ownership is defined by a unique object identifier.
Parent Case Info
[0001] The applicant claims priority of Provisional patent application Ser. No. 60/288,305, filed May 3, 2001, entitled “A METHOD SUPPORTING ADVANCED OBJECT-ORIENTED PROGRAMMING IN JAVASCRIPT”, inventors, Scott Shattuck, et al.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60288385 |
May 2001 |
US |