From 8b882e6abb3281639eea6cb3850054af2550f6ce Mon Sep 17 00:00:00 2001 From: Alan Knowles Date: Fri, 30 Apr 2010 06:59:07 +0800 Subject: [PATCH] Add Javascript Compressor, and new XObject base util class (will replace Object.js) pack.js - pack and rewrite JS files - similar to YUI Compressor XObject.js - replacement for Object.js - more generic, no overwriting built in types etc. ScopeParser.js - full scope parser --- File.js | 48 ++- JSDOC/CompressWhite.js | 284 ++++++++++++++ JSDOC/Identifier.js | 25 ++ JSDOC/Packer.js | 449 +++++++++++++++++++++ JSDOC/Scope.js | 316 +++++++++++++++ JSDOC/ScopeParser.js | 859 +++++++++++++++++++++++++++++++++++++++++ JSDOC/Token.js | 29 +- JSDOC/TokenReader.js | 65 +++- JSDOC/TokenStream.js | 38 +- XObject.js | 439 +++++++++++++++++++++ docs.js | 17 +- docs/class.html | 8 +- docs/index.html | 18 +- pack.js | 83 ++++ 14 files changed, 2630 insertions(+), 48 deletions(-) create mode 100644 JSDOC/CompressWhite.js create mode 100644 JSDOC/Identifier.js create mode 100644 JSDOC/Packer.js create mode 100644 JSDOC/Scope.js create mode 100644 JSDOC/ScopeParser.js create mode 100644 XObject.js create mode 100755 pack.js diff --git a/File.js b/File.js index f0da9ff..e788e59 100755 --- a/File.js +++ b/File.js @@ -4,6 +4,20 @@ Gio = imports.gi.Gio; imports['String.js'].load(String); +/** +* @namespace File +* +* Library to wrap GLib and Gio basic File related methods +* +* usage: +* +* File = import.File.File; +* +* var contents = File.read("/tmp/test.txt"); +* +* +* +*/ var File = { SEPARATOR : '/', @@ -74,14 +88,44 @@ var File = { var can = f.resolve_relative_path(''); return can.get_path(); }, - + /** + * write + * @arg path {String} File to write to + * @arg string {String} Contents of file. + * + */ write : function (path, string) { var f = Gio.file_new_for_path(String(path)); var data_out = new Gio.DataOutputStream({base_stream:f.replace(null, false, Gio.FileCreateFlags.NONE, null)}); data_out.put_string(string, null); data_out.close(null); }, - + /** + * append + * @arg path {String} File to write to + * @arg string {String} string to append to file. + * + */ + append : function (path, string) { + var f = Gio.file_new_for_path(String(path)); + var data_out = new Gio.DataOutputStream({ + base_stream:f.append_to(Gio.FileCreateFlags.NONE, null) + }); + data_out.put_string(string, null); + data_out.close(null); + }, + /** + * remove + * Delete a file. + * @arg path {String} File to remove + * + * + */ + remove : function (path) + { + var f = Gio.file_new_for_path(String(path)); + return f['delete'](); + }, // copy files recursively from fromDir, silently ignore them if they already exist in toDir silentRecursiveCopy : function (fromDir, toDir) { var filesToCopy = File.recursiveListing(fromDir); diff --git a/JSDOC/CompressWhite.js b/JSDOC/CompressWhite.js new file mode 100644 index 0000000..6b08e16 --- /dev/null +++ b/JSDOC/CompressWhite.js @@ -0,0 +1,284 @@ + //