The UIZE JavaScript Framework is constantly evolving and improving. This document provides a summary of some of the latest developments.
-
The new Uize.Class.doMy static method, implemented in the Uize.Class base class and inherited by all subclasses, provides a convenient and semantically more elegant way to call an instance method of a class on a specified instance.
-
The new Uize.copyList method, implemented in the Uize base module, lets you conveniently copy the elements of a list object into a fresh array.
-
The new Uize.push static method, implemented in the Uize base module, lets you conveniently push / append the elements from a source list onto the end of a target list.
-
The @required directive, that is part of the JST template system implemented in the Uize.Template module, has been improved to allow the required modules to be specified in an arbitrarily long list of string arguments.
-
The new Uize.Url.toRelative static method, implemented in the Uize.Url module, lets you create a relative URL from a base URL to a destination URL.
-
The new Uize.merge method, implemented in the Uize base module, lets you merge the contents of multiple source objects together into a fresh object.
-
The new Uize.copy method, implemented in the Uize base module, lets you copy the properties from one or more source objects into a freshly created object.
-
The Uize.Wsh module, that is used for the few build scripts that can only be run in Windows Scripting Host, has been migrated to under the Uize.Build namespace as Uize.Build.Wsh.
-
The new isMet instance method, implemented in the Uize.Class base class module, returns a boolean, indicating whether or not the specified condition is met.
-
The new Uize.global static method, implemented in the Uize base module, lets you get a reference to the global object.
-
The Uize module now provides static methods to facilitate the quarantined execution of JavaScript code.
-
The UIZE JavaScript Framework has been updated to use and be compliant with JavaScript strict mode.
-
The Uize.Fx.xTextShadow extension module, that was deprecated back in April of 2010, has finally been killed.
-
The Uize.Class.subclass static method, implemented in the Uize.Class base class, has been improved with the addition of a new variation that lets you conveniently declare one or more features of various different feature types.
-
The new Uize.Class.declare static method, implemented in the Uize.Class base class and inherited by all subclasses, lets you conveniently declare one or more features of one or more different feature types for the class.
-
The Uize.Class.registerProperties static method has been deprecated in favor of the newly added Uize.Class.stateProperties static method.
-
Various static methods of the Uize.Data module that were migrated out of this module back in November of 2011, and that were therefore deprecated, have now finally been killed.
-
The Uize.Class base class has been improved with the addition of several new feature declaration methods that let you declare instance and/or static features for a class.
-
The new Uize.Util.Needs module, implements a mechanism for expressing needs/provides relationships in a semantically elegant way.
-
Support for ad hoc state properties for classes, as implemented in the Uize.Class base class module, has been improved so that an ad hoc property created on an instance of a class no longer affects the underlying class.
-
The new Uize.Build.ModuleInfo module provides various methods for obtaining information about JavaScript modules.
-
The UizeDotCom namespace has been renamed to simply UizeSite in order to make it TLD (Top Level Domain) agnostic.
-
Support for conditions in UIZE has been improved with the addition of support for compound conditions in the once instance method of the Uize.Class module.
-
The module mechanism of the UIZE JavaScript Framework has been improved with the addition of support for parallel ascynchronous loading of required modules and the new Uize.require static method.
-
Set-get properties, a core system of the UIZE JavaScript Framework, has been renamed to "state properties".
-
The new met and unmet instance methods provide a semantically elegant way to use state properties to represent conditions and to set conditions as having been met or being unmet.
-
The once instance method, implemented in the Uize.Class base class module, has been improved with support for optional condition inversion.
-
The new is instance method, implemented in the Uize.Class base class module, provides a semantically elegant way to test if the value of an instance's state property is truthy.
-
Setting of state properties has been improved with convenient new variations for the set instance method and the Uize.Class.set static method, implemented in the Uize.Class base class module.
-
The Uize.Class module, that implements the class mechanism for the UIZE JavaScript Framework, has been improved with the addition of a once instance method for state properties.
-
Various build scripts used for building the UIZE project and the UIZE Web site have been migrated.
-
With a recent improvement in the auto scruncher (implemented in the Uize.Build.AutoScruncher module), it is no longer necessary to specify unique mappings for scrunched identifier names in a ScruncherSettings comment in source files.
-
The new Uize.resolveMatcher static method, implemented in the Uize base module, resolves the specified matcher (of any type) to a matcher function.
-
The new Uize.resolveTransformer static method, implemented in the Uize base module, resolves the specified transformer (of any type) to a transformer function.
-
The new Uize.isRegExp static method, implemented in the Uize base module, returns a boolean, indicating whether or not the specified value is a regular expression (ie. an instance of JavaScript's built-in RegExp object).
-
UIZE has added support for singletons in the form of the new Uize.Class.singleton static method implemented in the Uize.Class base class and inherited by all Uize.Class subclasses.
-
The new Uize.canExtend static method, implemented in the Uize base module, returns a boolean, indicating whether or not the specified value can be extended with custom properties.
-
The new Uize.Data.Combinations module provides methods for generating object or array combinations from a combination specifier, with support for an optional combination transformer and combination matcher.
-
The new Uize.now static method, implemented in the Uize base module, returns the current time in milliseconds since 1970 (POSIX time).
-
The new Uize.mergeInto static method, implemented in the Uize base module, merges the contents of one or more source objects into the specified target object, and returns the target object as the result.
-
The new Uize.getClass static method, implemented in the Uize base module, gets the class of which a specified value is an instance, or returns the value if it is a class or function.
-
The new Uize.toNumber static method, implemented in the Uize base module, lets you coerce a value to a number, with defaulting if it cannot be coerced successfully.
-
The new Uize.isSameAs static method tests if two values are the same in a strict equality test, with support for NaN values.
-
The new Uize.isNaN static method, implemented in the Uize base module, returns a boolean value, indicating whether or not the specified value is the JavaScript special value NaN.
-
The class mechanism that was implemented in the Uize module has been moved out of that module and into the new Uize.Class module.
-
The new Uize.isList static method returns a boolean, indicating whether or not the specified value is considered a list.
-
A handful of dummy functions have been added to the Uize base module, that can be used in certain situations where you need to supply a dummy function as a handler, callback, or iterator function.
-
The JavaScript new operator is now optional when creating instances of Uize subclasses, and you can make the new operator optional for your own object constructors using the newly added Uize.noNew static method.
-
The Uize.lookup and Uize.reverseLookup static methods have been improved with the added ability to specify a target object for adding entries.
-
Comprehensive unit tests have been created for the Uize.Data.NameValueRecords module.