Releases: iskitz/ajile
Releases · iskitz/ajile
Stability++
- Improved:
cloak
: Only cloakscom.ajile.*
DOM script elements whendebug
is disabled. - Improved:
cloak
: Only cloaks JS objects whencloak
is off ordebug
is disabled. - Improved:
debug
: More detailed import and notification logging. - Improved:
debug
: More legible log output via reformatted single-line entries. - Improved:
override
: Correctly appliesoverride
launch option during initialization. - Improved: Support: MSIE 4.01: Using synchronous calls since
setTimeout()
doesn't support function references. - Improved: Internal:
AddImportListener()
: Generic listener protected against spoofing. - Improved: Internal:
AddImportListener()
: Generic listener no longer creates an unnecessaryImportThread
. - Improved: Internal:
handleImported()
: No longer sends notifications for internal and undefined aliases. - Improved: Internal:
ImportThread
: Avoids redundant listening by stopping existing threads before starting new ones. - Improved: Internal:
ImportThread
: Requests CPU time less frequently. - Improved: Internal: Fixed unintended exposure of
cloakObjectToggler()
to the global scope. - Improved: Internal:
log()
no longer requires the caller parameter. - Improved: Internal: Renamed
completeImports()
tohandleImports()
and moved closer to otherhandleImport*()
functions. - Improved: Internal: Renamed
notifyImportListeners()
tonotifyAll()
. - Improved: Internal: Renamed
notifyImportListener()
tonotifyOne()
. - Improved: Internal: Renamed
notifyImporter()
tonotifyOne()
. - Improved: Internal: Updated whitespace & other formatting in
AddImportListener()
,handleImport*()
, andlog*()
.
Reliability++
- Improved:
Ajile.AddImportListener()
: Fixed bug that caused notifications for modules, namespaces and global properties that were removed without usingAjile.Unload()
. - Improved: Tests:
Ajile.RemoveImportListener()
: Fixed bug where modules not removed after their tests completed, were polluting subsequent tests and causing intermittent failures.
ajile loves IE too ;-)
- Improved: Compatibility: MSIE: Fixed bug caused by IE's disallowing deletion of global members.
- Improved: Compatibility: MSIE 5.01: Replaced all non-
for-in
in
statements. - Improved:
Ajile.RemoveImportListener()
: Fixed bug that caused listeners to not be removed. - Improved:
Ajile.RemoveImportListener()
: Fixed bug that caused listeners to be notified despite being removed. - Improved: Cloaked objects'
toString()
returns "cloaked". - Improved: Play: API Examples: Fixed bug in "Using a Wildcard Import" example.
- Improved: Tests: Compatibility: MSIE:
Ajile.RemoveImportListener()
correctly handles single-level namespaces. - Improved: Tests: Compatibility: MSIE:
Ajile.Unload()
correctly handles single-level namespaces. - Improved: Tests: Compatibility: MSIE:
Ajile.Unload()
correctly handlesAjile
namespace. - Improved: Tests: Compatibility: MSIE:
Import()
correctly handles single-level namespaces. - Improved: Tests: Compatibility: MSIE:
Namespace()
correctly handles single-level namespaces.
Rock-solid, super-tested listeners!
- New:
Ajile.AddImportListener()
: Notifications provide an object that contains references to the imported module's name, value and [internal] callback plus an error field [not yet supported] for any errors that occurred. For backwards compatibility, the notification object evaluates to the imported item's name when treated as a string. - New: Tests: Upgraded to jasmine 1.3.1.
- New: Tests:
Ajile.RemoveImportListener()
: Added tests for all listener types (global property,Import
,ImportAs
,Include
, and multi-item). - New: Tests:
Ajile.RemoveImportListener()
: Moved to its own test suite module and added tests for all listener types (global property,Import
,ImportAs
,Include
, and multi-item). - New: Tests:
Ajile.Unload()
: Added single-level namespaced module test. - Improved:
Ajile.AddImportListener()
: Fixed bug that added generic listeners as internal listeners when used as(alias = Ajile.AddImportListener)(...)
. - Improved:
Ajile.AddImportListener()
: Stops listening for an imported item immediately after it's successfully imported instead of waiting for the listener to timeout. - Improved: Compatibility: WebKit 125.4:
Ajile.AddImportListener()
: Refactored to support callback function names by not using function expressions. - Improved:
Ajile.Unload()
: Fixed bug with unloading single-level namespaces. - Improved:
ImportAs()
: Fixed bug with not detecting a module/namespace assigned to a falsey value. - Improved:
ImportAs()
: Fixed bug with not sending notifications when importing something that was previously imported. - Improved:
Ajile.RemoveImportListener()
: Fixed bug with not being able to remove multi-item listeners due to a mismatch between the external callback supplied and internal callback actually used. - Improved:
Ajile.RemoveImportListener()
: Handles new notification object sent to listeners during notification. - Improved:
Ajile.RemoveImportListener()
: Ensures cancellation of pending notifications by using notification thread ids stored viaAjile.AddImportListener()
. - Improved: Fixed bug with detecting DOM Level 1 & 2 support.
- Improved: Minor code cleanup: API compatibility comments, cloaking, generic listeners, version setting logic, importing, and notifications.
- Improved: Docs: Ajile-Help.htm: Added GitHub Issues link and set Yahoo! Group as "(archive)".
- Improved: Docs: Ajile-Overview.htm: Added link to license.
- Improved: Docs: Ajile-Overview.htm: Rewrote Description and updated Features and Supported Versions section.
- Improved: Docs: Ajile-License.htm: Added links to MPL and ajile.net.
- Improved: Tests: Refactored test suite to use multi-item listener and new listener notification object.
- Improved: Tests: Fixed bug that caused an error when trying to auto-switch from error to full results.
- Improved: Tests:
Ajile
,Import
,ImportAs
,Include
,Namespace
: Updated messages to be simple and user-friendly; BDD-style. - Improved: Tests:
Ajile
,Import
,ImportAs
,Include
,Namespace
: Updated "is a method" tests to test forFunction
type. - Improved: Tests:
Ajile.AddImportListener()
: Rewrote tests to be more robust and jasmine-compliant. - Improved: Tests: Minor code cleanup.
Faster startup & incompatibility detection!
- Improved: Initialization: Faster and simplified incompatibility detection.
- Improved: Initialization: Simplified re-initialization detection.
- Improved: Initialization: Removed unnecessary attempt to cloak ajile's instance object.
- Improved: Minor code cleanup.
Multi-property listeners & Asynchronous notifications
- Improved: Compatibility: WebKit 125.4: Commented-out un-parsable callback function names.
- Improved: Minor refactoring and cleanup of import listener removal and notification logic.
Listeners, listeners, listeners!
- New: Supports
Ajile.AddImportListener (["Module","globalProperty","namespaced.Module"], function(){});
. - New: Tests:
Ajile.AddImportListener (["Module","globalProperty","namespaced.Module"], function(){});
. - Improved:
Ajile.AddImportListener()
: All listeners now added before dispatching instant notifications. - Improved:
Ajile.AddImportListener()
: All notifications now sent asynchronously and tracked for canceling. - Improved:
Ajile.RemoveImportListener()
: Cancels all pending dispatched notifications. - Improved: Tests:
Ajile.AddImportListener()
: All tests moved out of net...Ajile suite into new net...Ajile.AddImportListener test suite module. - Improved: Tests: Fixed
Ajile.AddImportListener ("something.existing", function...); Import ("something.existing");
test. - Improved: Build: build/stage: Created to store staging resources.
- Improved: Build: build.sh: Updated to use resources in /build/stage plus minor cleanup.
- Improved: Build: Removed unused build tools (crunchinator, packer, and custom_rhino.jar).
- Improved: Default module path set to /use/ for environments unable to auto-detect ajile's path.
- Improved: Added internal
isArray()
to help with Array detection, falls back toArray.isArray()
where available.
Tests: 10, Regressions: 0!
- New: Tests: Added
Ajile.Unload()
test case to verify fix for ajile 1.4.5's regression. - Improved: Fixed
Ajile.Unload()
regression caused by ajile 1.4.5's newglobal
reference. - Improved: Tests: Major code cleanup; clarified messages and reordered
Ajile.AddImportListener()
tests. - Improved: Minor cloaking code cleanup.
Cloaks up!
- Improved: Refactored cloaking to correctly decide when modules can and should be cloaked.
- Improved: Enables automatic cloaking during ajile's creation.
- Improved: Disables automatic cloaking when ajile is unloaded.
Cloaks "R" Us
- Improved: Fixed bug where aggressive cloaking stopped modules from being evaluated.
- Improved: Fixed bug that caused cloaking of JavaScript's core Object and Function types.
- Improved: Fixed bug in detecting a namespace's load-time options.