> Ok, then not to worry, we can even tests this sooner than later to see > exactly what the closure compiler does with our namespaces.
Taking the example AS -> JS we worked with last week, let me show you: //============================**==============================**======= AS CODE package com.example.components { import flash.display.Sprite; public class MyTextButton extends Sprite { public function MyTextButton() { super(); } private var _privateVar:String = "do "; public var publicProperty:Number = 100; public function myFunction(value: String): String { return "Don't " + _privateVar + value; } } } //============================**==============================**======= JS CODE (intended, maybe even current, output of FalconJx) /** * CROSS-COMPILED BY MXMLJSC (329449.1) ON 2012-12-07 08:11:27 */ goog.provide("com.example.components.MyTextButton"); goog.require("flash.display.Sprite"); /** * @constructor * @extends flash.display.Sprite */ com.example.components.MyTextButton = function() { goog.base(this); /** * @private * @type {string} */ this._privateVar = "do "; } goog.inherits(com.example.components.MyTextButton, flash.display.Sprite); /** * @type {number} */ com.example.components.MyTextButton.prototype.publicProperty = 100; /** * @this {com.example.components.MyTextButton} * @param {string} value * @return {string} */ com.example.components.MyTextButton.prototype.myFunction = function(value) { return (("Don't " + this._privateVar) + value); } // Ensures the symbol will be visible after compiler renaming (needed only for "application" level class) goog.exportSymbol('com.example.components.MyTextButton', com.example.components.MyTextButton); //============================**==============================**======= JS CODE (run through the Closure Builder) function a(){this.a="do "}function b(){}function c(){}c.prototype=b.prototype;a.b=b.prototype;a.prototype=new c;var d=["com","example","components","MyTextButton"],e=this;!(d[0]in e)&&e.execScript&&e.execScript("var "+d[0]);for(var f;d.length&&(f=d.shift());)!d.length&&void 0!==a?e[f]=a:e=e[f]?e[f]:e[f]={}; Now, although we use stuff from the "goog" library ('provides', 'requires', 'base' and 'inherits'), the Closure Builder output is ALL THAT'S NEEDED for our JS to run in the browser. This means that all dependencies have been resolved and the code is compiled such that doesn't need the "goog" library to run... Pretty efficient and highly optimised, I'd say ;-) EdB -- Ix Multimedia Software Jan Luykenstraat 27 3521 VB Utrecht T. 06-51952295 I. www.ixsoftware.nl