To acquire AspectJS, click on the link below to download the code as a Zip file. Alternatively, the code that defines
the AJS and AJS_HP objects can be copied and pasted from the
Copy & Paste AJS
and
Copy & Paste AJS_HP pages respectively. See the end of this page, the
reference listings in the zip file, or the Copy & Paste pages for the licence terms.
Zip-File Contents:
AspectJS.js 17 k General-purpose - minified
AspectJS_HP.js 11 k High-performance - minified
AspectJS_Reference.js 27 k General-purpose - structured layout
AspectJS_HP_Reference.js 21 k High-performance - structured layout
Note that the size figures for the reference versions of the product include the extent of all comments.
Obfuscation and Compression
Note that, while the product is available here in 'minified' form (ie. without redundant white-space) it is not provided
in obfuscated (or 'scrunched') form, where all objects and functions that do not form part of the documented API are renamed
using (ideally) single alphabetic-characters. Nor is it available in 'gzipped' form (modern browsers will accept scripts as .gz
files).
Scrunching 'script-oriented' code expedites download to the client, and the parsing process thereon. Moreover,
applying gzip to a scrunched listing improves the first factor still further. However, and by definition, scrunching also
makes the code extremely difficult to understand, and gzip renders it unreadable. Given this, it would be possible for a
malign version of AspectJS to originate here and find its way ultimately onto users' machines (thus contradicting the third
term in the licence under which the product is made available).
Given this, and if you are seeking minimal overhead in the deployment of your applications (and good on you for that), you
alone are responsible for any obfuscation/compression that you apply before deploying AspectJS as part of a bigger application.
The upside, however, is that experiments with various scrunchers on the code for the AJS object indicate an average reduction in size
of around 55%. Moreover, gzipping a scrunched version yields a total size-reduction of around 90%, and similar reduction ratios
can be expected with the code for the AJS_HP object. These figures are impressive and make the trouble of a
scrunching/compression deployment-phase worth considering. Do note, however, that obfuscators/scrunchers can introduce bugs
into a given script.
Release History
| Ver | Release Date | Notes |
| 0.0 | 07 February 2007 | Initial Beta-Release |
| 0.1 | 24 February 2007 | Modified SetSymmetricWrapper signature
Changed 'NodePair' type-name to 'Intercept'
Changed 'Node' type-name to 'Affix'
Changed type strings returned by GetType
Changed 'AspectJS' object-name to 'AJS'
Changed 'AspectJS_HP' object-name to 'AJS_HP'
Removed prefix/suffix 'Context' parameter from SetXXX etc signatures
Fixed 'this' bug in Interceptee calls
Fixed SetSuffix bug
Fixed execution-limit bug
Fixed multiple-SetXXX exception bug (IE specific) |
| 0.2 | 12 March 2007 | Fixed execution-limit bugs in AJS_HP
Changed SetXXX method names to AddXXX
Changed InsertXXX method names to AddXXX
Changed object-type returned from AddPrefix and AddSuffix
Relaxed restriction on multiple calls to AddXXX for a given interceptee
Removed visibility of sentinel affixes
Dropped GetType method from the Affix type
Added Promote/Demote methods to Affix type |
| 0.3 | 18 March 2007 | Fixed 'this' return bug in certain AJS_HP methods
Fixed 'this' bug in suffix calls in AJS_HP.AddSuffix, AJS_HP.AddWrapper and AJS_HP.AddSymmetricWrapper
Fixed intercept detection bug
Added Promote, Demote, Remove and SetExecMax methods to Wrapper type |
| 1.0 | 28 July 2007 | No changes to v0.3 |
Licence Terms
Permission is granted hereby and free of charge to any person obtaining a copy
of this software and associated applications-programming-interface (API) documentation
(the 'Software') to deal in the Software without restriction including, and without
limitation, the rights to use, copy, modify, merge, publish, distribute, sub-licence,
and/or sell copies of the Software, and to permit persons to whom the Software is
furnished to do the same, subject to the following three conditions:
-
The Software is provided 'as is', without warranty of any kind, express or
implied, and including, but not limited to, the warranties of merchantability,
fitness for a particular purpose, and non-infringement. In no event shall the
authors or copyright holders be liable for any claim, damages or other
liability; whether in an action of contract, tort or otherwise, arising from,
out of, or in connection with the Software, its use, or any other dealings in
the Software.
-
This licence does not extend to any tutorial documentation provided by Dodeca
Technologies Ltd, and the sole copyright to such documentation resides with
that company.
-
The Software will not be used with malicious intent.
These licensing conditions are repeated as headers in AspectJS_Reference.js and AspectJS_HP_Reference.js.