The UIZE JavaScript Framework is constantly evolving and improving. This document provides a summary of some of the latest developments.
-
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.
-
The Uize base module has been improved with the addition of the new Uize.forEach and Uize.map static methods.
-
The Uize base module has been given a boost with the addition of a slew of convenient utility belt features.
-
The new Uize.Array.Util module provides a home for miscellaneous array utility methods that are not yet deemed ready for promototion to the Uize.Array or Uize modules.
-
The Uize.Template.encoders and Uize.Template.decoders static properties of the Uize.Template module, that were deprecated back in April of 2010, have finally been killed.
-
Various JavaScript examples on the UIZE Web site that had become victims to bit rot have been restored to their former glory.
-
An issue that was causing button widgets to not have the correct mouse cursor when mousing over them in IE9 has been fixed.
-
An issue that was breaking the drag-and-drop functionality of the Uize.Widget.Drag class in IE9 has been fixed.
-
An issue that was breaking pages of the UIZE Web site in IE9 has been fixed.
-
A minor issue that was discovered in Safari with the Uize.clone method when cloning regular expressions (ie. instances of the RegExp object) has been fixed.
-
A problem that was causing the UIZE Unit Tests page to fail to run the test suite for UIZE has been fixed.
-
A problem that was discovered with the state properties mechanism and its support for ad hoc registration of properties has been fixed.
-
An issue was discovered with the way that Microsoft's JScript interpreter, which is used in Internet Explorer and Windows Script Host, iterates through arrays in for...in loops.
-
Thorough unit tests have been created for the state properties feature implemented in the Uize base class.
-
The Uize.set static method and the set instance method, implemented in the Uize base class, have been improved to support an arbitrary number of arguments, allowing the values for multiple state properties to be specified as name-value pair arguments.
-
To help ensure the robustness and stability of the UIZE JavaScript Framework over time, more unit tests have been created for the Uize base class.
-
The Uize.pairUp method, implemented in the Uize base class, has been improved with support for two new variations.
-
The Uize.Json module has been improved with the addition of two convenient presets for serializing JavaScript objects to strict JSON format, according to the specification at json.org.
-
The declarative syntax for widget properties has been improved to cover more cases.
-
The SimpleDoc format, a Wikitext like document format for easily writing structured documents, has added support for section title aliases.
-
The new Uize.String.split method, implemented in the Uize.String module, splits a string into an array of elements using the specified splitter string or regular expression, in strict accordance with the ECMA-262 language's specified behavior for the String object's split instance method.
-
The new Uize.Color.xCmyk module extends the Uize.Color object by adding a profile for the CMYK color space, and by providing encodings for this color space.