JSRoyaleDocEmitter: internal-to-package members use at-package JSDoc annotation, since that's the purpose of this annotation
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/codegen/js/goog/IJSGoogDocEmitter.java b/compiler-jx/src/main/java/org/apache/royale/compiler/codegen/js/goog/IJSGoogDocEmitter.java
index 6c99459..33b2afa 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/codegen/js/goog/IJSGoogDocEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/royale/compiler/codegen/js/goog/IJSGoogDocEmitter.java
@@ -130,6 +130,8 @@
 
     void emitProtected(IASNode node);
 
+    void emitInternal(IASNode node);
+
     void emitReturn(IFunctionNode node, String packageName);
 
     void emitThis(ITypeDefinition node, String packageName);
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/goog/JSGoogDocEmitter.java b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/goog/JSGoogDocEmitter.java
index 40d28a0..f5620b5 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/goog/JSGoogDocEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/goog/JSGoogDocEmitter.java
@@ -122,6 +122,10 @@
         {
             emitProtected(node);
         }
+        else if (ns == IASKeywordConstants.INTERNAL)
+        {
+            emitInternal(node);
+        }
 
         if (node.isConst())
             emitConst(node);
@@ -339,6 +343,12 @@
     }
 
     @Override
+    public void emitInternal(IASNode node)
+    {
+        emitJSDocLine(JSGoogDocEmitterTokens.PACKAGE);
+    }
+
+    @Override
     public void emitPublic(IASNode node)
     {
         emitJSDocLine(JSGoogDocEmitterTokens.EXPORT);
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/goog/JSGoogDocEmitterTokens.java b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/goog/JSGoogDocEmitterTokens.java
index 623f131..4a777aa 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/goog/JSGoogDocEmitterTokens.java
+++ b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/goog/JSGoogDocEmitterTokens.java
@@ -22,7 +22,7 @@
 
 public enum JSGoogDocEmitterTokens implements IEmitterTokens
 {
-    PARAM("param"), STAR("*"), TYPE("type"), EXPOSE("expose"), EXPORT("export"), NOCOLLAPSE("nocollapse");
+    PARAM("param"), STAR("*"), TYPE("type"), EXPOSE("expose"), EXPORT("export"), NOCOLLAPSE("nocollapse"), PACKAGE("package");
 
     private String token;
 
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/royale/JSRoyaleDocEmitter.java b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/royale/JSRoyaleDocEmitter.java
index 7d9aa22..f65833e 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/royale/JSRoyaleDocEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/royale/JSRoyaleDocEmitter.java
@@ -547,6 +547,10 @@
         {
             emitProtected(node);
         }
+        else if (ns == IASKeywordConstants.INTERNAL)
+        {
+            emitInternal(node);
+        }
         else // public or custom namespace
         {
             emitPublic(node);
@@ -624,6 +628,10 @@
                 emitNoCollapse(node);
             }
         }
+        else if (ns == IASKeywordConstants.INTERNAL)
+        {
+            emitInternal(node);
+        }
         else
         {
             boolean warnPublicVars = fjp.config != null && fjp.config.getWarnPublicVars() && !fjp.config.getPreventRenamePublicSymbols();
diff --git a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/goog/TestGoogClass.java b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/goog/TestGoogClass.java
index 67c4caa..961d4fe 100644
--- a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/goog/TestGoogClass.java
+++ b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/goog/TestGoogClass.java
@@ -188,7 +188,7 @@
         IClassNode node = getClassNode("public class A {public var a:Object;protected var b:String; "
                 + "private var c:int; internal var d:uint; var e:Number}");
         asBlockWalker.visitClass(node);
-        assertOut("/**\n * @constructor\n */\norg.apache.royale.A = function() {\n};\n\n/**\n * @type {Object}\n */\norg.apache.royale.A.prototype.a;\n\n/**\n * @protected\n * @type {string}\n */\norg.apache.royale.A.prototype.b;\n\n/**\n * @private\n * @type {number}\n */\norg.apache.royale.A.prototype.c;\n\n/**\n * @type {number}\n */\norg.apache.royale.A.prototype.d;\n\n/**\n * @type {number}\n */\norg.apache.royale.A.prototype.e;");
+        assertOut("/**\n * @constructor\n */\norg.apache.royale.A = function() {\n};\n\n/**\n * @type {Object}\n */\norg.apache.royale.A.prototype.a;\n\n/**\n * @protected\n * @type {string}\n */\norg.apache.royale.A.prototype.b;\n\n/**\n * @private\n * @type {number}\n */\norg.apache.royale.A.prototype.c;\n\n/**\n * @package\n * @type {number}\n */\norg.apache.royale.A.prototype.d;\n\n/**\n * @package\n * @type {number}\n */\norg.apache.royale.A.prototype.e;");
     }
 
     @Override
@@ -220,7 +220,7 @@
                 + "foo_bar function get foo6():Object{return null;}"
                 + "foo_bar function set foo6(value:Object):void{}" + "}");
         asBlockWalker.visitClass(node);
-        assertOut("/**\n * @constructor\n */\norg.apache.royale.A = function() {\n};\n\n/**\n * @type {Object}\n */\norg.apache.royale.A.prototype.foo1;\n\nObject.defineProperty(\n\torg.apache.royale.A.prototype, \n\t'foo1', \n\t{get:function() {\n\t\tvar self = this;\n\t\treturn null;\n\t}, configurable:true}\n);\n\nObject.defineProperty(\n\torg.apache.royale.A.prototype, \n\t'foo1', \n\t{set:function(value) {\n\t}, configurable:true}\n);\n\n/**\n * @protected\n * @type {Object}\n */\norg.apache.royale.A.prototype.foo2;\n\nObject.defineProperty(\n\torg.apache.royale.A.prototype, \n\t'foo2', \n\t{get:function() {\n\t\tvar self = this;\n\t\treturn null;\n\t}, configurable:true}\n);\n\nObject.defineProperty(\n\torg.apache.royale.A.prototype, \n\t'foo2', \n\t{set:function(value) {\n\t}, configurable:true}\n);\n\n/**\n * @private\n * @type {Object}\n */\norg.apache.royale.A.prototype.foo3;\n\nObject.defineProperty(\n\torg.apache.royale.A.prototype, \n\t'foo3', \n\t{get:function() {\n\t\tvar self = this;\n\t\treturn null;\n\t}, configurable:true}\n);\n\nObject.defineProperty(\n\torg.apache.royale.A.prototype, \n\t'foo3', \n\t{set:function(value) {\n\t}, configurable:true}\n);\n\n/**\n * @type {Object}\n */\norg.apache.royale.A.prototype.foo5;\n\nObject.defineProperty(\n\torg.apache.royale.A.prototype, \n\t'foo5', \n\t{get:function() {\n\t\tvar self = this;\n\t\treturn null;\n\t}, configurable:true}\n);\n\nObject.defineProperty(\n\torg.apache.royale.A.prototype, \n\t'foo5', \n\t{set:function(value) {\n\t}, configurable:true}\n);\n\n/**\n * @type {Object}\n */\norg.apache.royale.A.prototype.foo6;\n\nObject.defineProperty(\n\torg.apache.royale.A.prototype, \n\t'foo6', \n\t{get:function() {\n\t\tvar self = this;\n\t\treturn null;\n\t}, configurable:true}\n);\n\nObject.defineProperty(\n\torg.apache.royale.A.prototype, \n\t'foo6', \n\t{set:function(value) {\n\t}, configurable:true}\n);");
+        assertOut("/**\n * @constructor\n */\norg.apache.royale.A = function() {\n};\n\n/**\n * @type {Object}\n */\norg.apache.royale.A.prototype.foo1;\n\nObject.defineProperty(\n\torg.apache.royale.A.prototype, \n\t'foo1', \n\t{get:function() {\n\t\tvar self = this;\n\t\treturn null;\n\t}, configurable:true}\n);\n\nObject.defineProperty(\n\torg.apache.royale.A.prototype, \n\t'foo1', \n\t{set:function(value) {\n\t}, configurable:true}\n);\n\n/**\n * @protected\n * @type {Object}\n */\norg.apache.royale.A.prototype.foo2;\n\nObject.defineProperty(\n\torg.apache.royale.A.prototype, \n\t'foo2', \n\t{get:function() {\n\t\tvar self = this;\n\t\treturn null;\n\t}, configurable:true}\n);\n\nObject.defineProperty(\n\torg.apache.royale.A.prototype, \n\t'foo2', \n\t{set:function(value) {\n\t}, configurable:true}\n);\n\n/**\n * @private\n * @type {Object}\n */\norg.apache.royale.A.prototype.foo3;\n\nObject.defineProperty(\n\torg.apache.royale.A.prototype, \n\t'foo3', \n\t{get:function() {\n\t\tvar self = this;\n\t\treturn null;\n\t}, configurable:true}\n);\n\nObject.defineProperty(\n\torg.apache.royale.A.prototype, \n\t'foo3', \n\t{set:function(value) {\n\t}, configurable:true}\n);\n\n/**\n * @package\n * @type {Object}\n */\norg.apache.royale.A.prototype.foo5;\n\nObject.defineProperty(\n\torg.apache.royale.A.prototype, \n\t'foo5', \n\t{get:function() {\n\t\tvar self = this;\n\t\treturn null;\n\t}, configurable:true}\n);\n\nObject.defineProperty(\n\torg.apache.royale.A.prototype, \n\t'foo5', \n\t{set:function(value) {\n\t}, configurable:true}\n);\n\n/**\n * @type {Object}\n */\norg.apache.royale.A.prototype.foo6;\n\nObject.defineProperty(\n\torg.apache.royale.A.prototype, \n\t'foo6', \n\t{get:function() {\n\t\tvar self = this;\n\t\treturn null;\n\t}, configurable:true}\n);\n\nObject.defineProperty(\n\torg.apache.royale.A.prototype, \n\t'foo6', \n\t{set:function(value) {\n\t}, configurable:true}\n);");
     }
 
     @Override
diff --git a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/goog/TestGoogFieldMembers.java b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/goog/TestGoogFieldMembers.java
index a1318d4..e410ab3 100644
--- a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/goog/TestGoogFieldMembers.java
+++ b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/goog/TestGoogFieldMembers.java
@@ -43,7 +43,7 @@
     {
         IVariableNode node = getField("var foo;");
         asBlockWalker.visitVariable(node);
-        assertOut("/**\n * @type {*}\n */\nRoyaleTest_A.prototype.foo");
+        assertOut("/**\n * @package\n * @type {*}\n */\nRoyaleTest_A.prototype.foo");
     }
 
     @Override
@@ -52,7 +52,7 @@
     {
         IVariableNode node = getField("var foo:int;");
         asBlockWalker.visitVariable(node);
-        assertOut("/**\n * @type {number}\n */\nRoyaleTest_A.prototype.foo");
+        assertOut("/**\n * @package\n * @type {number}\n */\nRoyaleTest_A.prototype.foo");
     }
 
     @Override
@@ -61,7 +61,7 @@
     {
         IVariableNode node = getField("var foo:int = 420;");
         asBlockWalker.visitVariable(node);
-        assertOut("/**\n * @type {number}\n */\nRoyaleTest_A.prototype.foo = 420");
+        assertOut("/**\n * @package\n * @type {number}\n */\nRoyaleTest_A.prototype.foo = 420");
     }
 
     @Test
@@ -69,7 +69,7 @@
     {
         IVariableNode node = getField("var foo:int = -420;");
         asBlockWalker.visitVariable(node);
-        assertOut("/**\n * @type {number}\n */\nRoyaleTest_A.prototype.foo = -420");
+        assertOut("/**\n * @package\n * @type {number}\n */\nRoyaleTest_A.prototype.foo = -420");
     }
 
     @Override
@@ -137,7 +137,7 @@
     {
         IVariableNode node = getField("static const foo;");
         asBlockWalker.visitVariable(node);
-        assertOut("/**\n * @const\n * @type {*}\n */\nRoyaleTest_A.foo");
+        assertOut("/**\n * @package\n * @const\n * @type {*}\n */\nRoyaleTest_A.foo");
     }
 
     @Test
@@ -145,7 +145,7 @@
     {
         IVariableNode node = getField("const foo;");
         asBlockWalker.visitVariable(node);
-        assertOut("/**\n * @const\n * @type {*}\n */\nRoyaleTest_A.prototype.foo");
+        assertOut("/**\n * @package\n * @const\n * @type {*}\n */\nRoyaleTest_A.prototype.foo");
     }
 
     @Override
@@ -154,7 +154,7 @@
     {
         IVariableNode node = getField("static const foo:int;");
         asBlockWalker.visitVariable(node);
-        assertOut("/**\n * @const\n * @type {number}\n */\nRoyaleTest_A.foo");
+        assertOut("/**\n * @package\n * @const\n * @type {number}\n */\nRoyaleTest_A.foo");
     }
 
     @Test
@@ -162,7 +162,7 @@
     {
         IVariableNode node = getField("const foo:int;");
         asBlockWalker.visitVariable(node);
-        assertOut("/**\n * @const\n * @type {number}\n */\nRoyaleTest_A.prototype.foo");
+        assertOut("/**\n * @package\n * @const\n * @type {number}\n */\nRoyaleTest_A.prototype.foo");
     }
 
     @Override
@@ -171,7 +171,7 @@
     {
         IVariableNode node = getField("static const foo:int = 420;");
         asBlockWalker.visitVariable(node);
-        assertOut("/**\n * @const\n * @type {number}\n */\nRoyaleTest_A.foo = 420");
+        assertOut("/**\n * @package\n * @const\n * @type {number}\n */\nRoyaleTest_A.foo = 420");
     }
 
     @Test
@@ -179,7 +179,7 @@
     {
         IVariableNode node = getField("const foo:int = 420;");
         asBlockWalker.visitVariable(node);
-        assertOut("/**\n * @const\n * @type {number}\n */\nRoyaleTest_A.prototype.foo = 420");
+        assertOut("/**\n * @package\n * @const\n * @type {number}\n */\nRoyaleTest_A.prototype.foo = 420");
     }
 
     @Override
diff --git a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/goog/TestGoogGlobalConstants.java b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/goog/TestGoogGlobalConstants.java
index 985df6d..a3706c7 100644
--- a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/goog/TestGoogGlobalConstants.java
+++ b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/goog/TestGoogGlobalConstants.java
@@ -34,7 +34,7 @@
     @Test
     public void testInfinity()
     {
-        IVariableNode node = getField("var a:Number = Infinity;");
+        IVariableNode node = getField("public var a:Number = Infinity;");
         asBlockWalker.visitVariable(node);
         assertOut("/**\n * @type {number}\n */\nRoyaleTest_A.prototype.a = Infinity");
     }
@@ -43,7 +43,7 @@
     @Test
     public void testNegativeInfinity()
     {
-        IVariableNode node = getField("var a:Number = -Infinity;");
+        IVariableNode node = getField("public var a:Number = -Infinity;");
         asBlockWalker.visitVariable(node);
         assertOut("/**\n * @type {number}\n */\nRoyaleTest_A.prototype.a = -Infinity");
     }
@@ -52,7 +52,7 @@
     @Test
     public void testNaN()
     {
-        IVariableNode node = getField("var a:Number = NaN;");
+        IVariableNode node = getField("public var a:Number = NaN;");
         asBlockWalker.visitVariable(node);
         assertOut("/**\n * @type {number}\n */\nRoyaleTest_A.prototype.a = NaN");
     }
@@ -61,7 +61,7 @@
     @Test
     public void testUndefined()
     {
-        IVariableNode node = getField("var a:* = undefined;");
+        IVariableNode node = getField("public var a:* = undefined;");
         asBlockWalker.visitVariable(node);
         assertOut("/**\n * @type {*}\n */\nRoyaleTest_A.prototype.a = undefined");
     }
diff --git a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleClass.java b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleClass.java
index 39f85dd..cf750eb 100644
--- a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleClass.java
+++ b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleClass.java
@@ -390,7 +390,7 @@
         IClassNode node = getClassNode("public class A {public var a:Object;protected var b:String; "
                 + "private var c:int; internal var d:uint; var e:Number}");
         asBlockWalker.visitClass(node);
-        assertOut("/**\n * @constructor\n */\norg.apache.royale.A = function() {\n};\n\n\n/**\n * @export\n * @type {Object}\n */\norg.apache.royale.A.prototype.a = null;\n\n\n/**\n * @protected\n * @type {string}\n */\norg.apache.royale.A.prototype.b = null;\n\n\n/**\n * @private\n * @type {number}\n */\norg.apache.royale.A.prototype.c = 0;\n\n\n/**\n * @type {number}\n */\norg.apache.royale.A.prototype.d = 0;\n\n\n/**\n * @type {number}\n */\norg.apache.royale.A.prototype.e = NaN;");
+        assertOut("/**\n * @constructor\n */\norg.apache.royale.A = function() {\n};\n\n\n/**\n * @export\n * @type {Object}\n */\norg.apache.royale.A.prototype.a = null;\n\n\n/**\n * @protected\n * @type {string}\n */\norg.apache.royale.A.prototype.b = null;\n\n\n/**\n * @private\n * @type {number}\n */\norg.apache.royale.A.prototype.c = 0;\n\n\n/**\n * @package\n * @type {number}\n */\norg.apache.royale.A.prototype.d = 0;\n\n\n/**\n * @package\n * @type {number}\n */\norg.apache.royale.A.prototype.e = NaN;");
     }
 
     @Test
@@ -417,11 +417,13 @@
         		  " * @type {number}\n" +
         		  " */\n" +
         		  "org.apache.royale.A.prototype.c_ = 0;\n\n\n" +
-        		  "/**\n" +
+                  "/**\n" +
+                  " * @package\n" + 
         		  " * @type {number}\n" +
         		  " */\n" +
         		  "org.apache.royale.A.prototype.d = 0;\n\n\n" +
-        		  "/**\n" +
+                  "/**\n" +
+                  " * @package\n" +
         		  " * @type {number}\n" +
         		  " */\n" +
         		  "org.apache.royale.A.prototype.e = NaN;Object.defineProperties(org.apache.royale.A.prototype, /** @lends {org.apache.royale.A.prototype} */ {\n" +
@@ -505,11 +507,13 @@
         		  " * @type {number}\n" +
         		  " */\n" +
         		  "org.apache.royale.A.prototype.c_ = 0;\n\n\n" +
-        		  "/**\n" +
+                  "/**\n" +
+                  " * @package\n" + 
         		  " * @type {number}\n" +
         		  " */\n" +
         		  "org.apache.royale.A.prototype.d = 0;\n\n\n" +
         		  "/**\n" +
+                  " * @package\n" + 
         		  " * @type {number}\n" +
         		  " */\n" +
         		  "org.apache.royale.A.prototype.e = NaN;Object.defineProperties(org.apache.royale.A.prototype, /** @lends {org.apache.royale.A.prototype} */ {\n" +
@@ -593,10 +597,12 @@
         		  " */\n" +
         		  "org.apache.royale.A.prototype.c = 0;\n\n\n" +
         		  "/**\n" +
+                  " * @package\n" + 
         		  " * @type {number}\n" +
         		  " */\n" +
         		  "org.apache.royale.A.prototype.d = 0;\n\n\n" +
         		  "/**\n" +
+                  " * @package\n" + 
         		  " * @type {number}\n" +
         		  " */\n" +
         		  "org.apache.royale.A.prototype.e = NaN;Object.defineProperties(org.apache.royale.A.prototype, /** @lends {org.apache.royale.A.prototype} */ {\n" +
@@ -701,7 +707,7 @@
                 + "public static function foo7(value:Object):void{}"
                 + "custom_namespace static function foo7(value:Object):void{}" + "}");
         asBlockWalker.visitClass(node);
-        assertOut("/**\n * @constructor\n */\norg.apache.royale.A = function() {\n};\n\n\n/**\n * @export\n * @return {Object}\n */\norg.apache.royale.A.prototype.foo1 = function() {\n  return null;\n};\n\n\n/**\n * @export\n * @return {Object}\n */\norg.apache.royale.A.prototype.foo1a = function() {\n  return null;\n};\n\n\n/**\n * @export\n * @override\n */\norg.apache.royale.A.prototype.foo1b = function() {\n  return org.apache.royale.A.superClass_.foo1b.apply(this);\n};\n\n\n/**\n * @protected\n * @param {Object} value\n */\norg.apache.royale.A.prototype.foo2 = function(value) {\n};\n\n\n/**\n * @private\n * @param {Object} value\n */\norg.apache.royale.A.prototype.foo3 = function(value) {\n};\n\n\n/**\n * @export\n * @param {Object} value\n */\norg.apache.royale.A.prototype.foo5 = function(value) {\n};\n\n\n/**\n * @export\n * @param {Object} value\n */\norg.apache.royale.A.prototype.http_$$ns_apache_org$2017$custom$namespace__foo6 = function(value) {\n};\n\n\n/**\n * @nocollapse\n * @param {Object} value\n */\norg.apache.royale.A.foo7 = function(value) {\n};\n\n\n/**\n * @nocollapse\n * @param {Object} value\n */\norg.apache.royale.A.http_$$ns_apache_org$2017$custom$namespace__foo7 = function(value) {\n};");
+        assertOut("/**\n * @constructor\n */\norg.apache.royale.A = function() {\n};\n\n\n/**\n * @export\n * @return {Object}\n */\norg.apache.royale.A.prototype.foo1 = function() {\n  return null;\n};\n\n\n/**\n * @export\n * @return {Object}\n */\norg.apache.royale.A.prototype.foo1a = function() {\n  return null;\n};\n\n\n/**\n * @export\n * @override\n */\norg.apache.royale.A.prototype.foo1b = function() {\n  return org.apache.royale.A.superClass_.foo1b.apply(this);\n};\n\n\n/**\n * @protected\n * @param {Object} value\n */\norg.apache.royale.A.prototype.foo2 = function(value) {\n};\n\n\n/**\n * @private\n * @param {Object} value\n */\norg.apache.royale.A.prototype.foo3 = function(value) {\n};\n\n\n/**\n * @package\n * @param {Object} value\n */\norg.apache.royale.A.prototype.foo5 = function(value) {\n};\n\n\n/**\n * @export\n * @param {Object} value\n */\norg.apache.royale.A.prototype.http_$$ns_apache_org$2017$custom$namespace__foo6 = function(value) {\n};\n\n\n/**\n * @nocollapse\n * @param {Object} value\n */\norg.apache.royale.A.foo7 = function(value) {\n};\n\n\n/**\n * @nocollapse\n * @param {Object} value\n */\norg.apache.royale.A.http_$$ns_apache_org$2017$custom$namespace__foo7 = function(value) {\n};");
     }
 
     @Test
diff --git a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleFieldMembers.java b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleFieldMembers.java
index 33005cd..c715e9d 100644
--- a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleFieldMembers.java
+++ b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleFieldMembers.java
@@ -44,7 +44,7 @@
     {
         IVariableNode node = getField("var foo;");
         asBlockWalker.visitVariable(node);
-        assertOut("/**\n * @type {*}\n */\nRoyaleTest_A.prototype.foo");
+        assertOut("/**\n * @package\n * @type {*}\n */\nRoyaleTest_A.prototype.foo");
     }
 
     @Test
@@ -167,7 +167,7 @@
     {
         IVariableNode node = getField("static var foo;");
         asBlockWalker.visitVariable(node);
-        assertOut("/**\n * @type {*}\n */\nRoyaleTest_A.foo");
+        assertOut("/**\n * @package\n * @type {*}\n */\nRoyaleTest_A.foo");
     }
 
     @Test
@@ -183,7 +183,7 @@
     {
         IVariableNode node = getField("static var foo:int = 420;");
         asBlockWalker.visitVariable(node);
-        assertOut("/**\n * @type {number}\n */\nRoyaleTest_A.foo = 420");
+        assertOut("/**\n * @package\n * @type {number}\n */\nRoyaleTest_A.foo = 420");
     }
 
     @Test
diff --git a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleGlobalConstants.java b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleGlobalConstants.java
index 8cc7803..71f5c6a 100644
--- a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleGlobalConstants.java
+++ b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleGlobalConstants.java
@@ -43,7 +43,7 @@
     {
         IVariableNode node = getField("var a:Number = Infinity;");
         asBlockWalker.visitVariable(node);
-        assertOut("/**\n * @type {number}\n */\nRoyaleTest_A.prototype.a = Infinity");
+        assertOut("/**\n * @package\n * @type {number}\n */\nRoyaleTest_A.prototype.a = Infinity");
     }
 
     @Override
@@ -52,7 +52,7 @@
     {
         IVariableNode node = getField("var a:Number = -Infinity;");
         asBlockWalker.visitVariable(node);
-        assertOut("/**\n * @type {number}\n */\nRoyaleTest_A.prototype.a = -Infinity");
+        assertOut("/**\n * @package\n * @type {number}\n */\nRoyaleTest_A.prototype.a = -Infinity");
     }
 
     @Override
@@ -61,7 +61,7 @@
     {
         IVariableNode node = getField("var a:Number = NaN;");
         asBlockWalker.visitVariable(node);
-        assertOut("/**\n * @type {number}\n */\nRoyaleTest_A.prototype.a = NaN");
+        assertOut("/**\n * @package\n * @type {number}\n */\nRoyaleTest_A.prototype.a = NaN");
     }
 
     @Override
@@ -70,6 +70,6 @@
     {
         IVariableNode node = getField("var a:* = undefined;");
         asBlockWalker.visitVariable(node);
-        assertOut("/**\n * @type {*}\n */\nRoyaleTest_A.prototype.a = undefined");
+        assertOut("/**\n * @package\n * @type {*}\n */\nRoyaleTest_A.prototype.a = undefined");
     }
 }
diff --git a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyalePackage.java b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyalePackage.java
index 0ca2e6a..9fdceab 100644
--- a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyalePackage.java
+++ b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyalePackage.java
@@ -625,7 +625,7 @@
 				"\n" +
 				"\n" +
 				"/**\n" +
-				//" * @export\n" +
+				" * @package\n" +
 				" * @type {number}\n" +
 				" */\n" +
 				"foo.bar.baz.A.internalVar = 2"
diff --git a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/sourcemaps/TestSourceMapFieldMembers.java b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/sourcemaps/TestSourceMapFieldMembers.java
index 503923c..219f6f6 100644
--- a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/sourcemaps/TestSourceMapFieldMembers.java
+++ b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/sourcemaps/TestSourceMapFieldMembers.java
@@ -32,8 +32,8 @@
     {
         IVariableNode node = getField("var foo;");
         asBlockWalker.visitVariable(node);
-        ///**\n * @type {*}\n */\nRoyaleTest_A.prototype.foo
-        assertMapping(node, 0, 4, 3, 0, 3, 26);  // foo
+        ///**\n * @package\n * @type {*}\n */\nRoyaleTest_A.prototype.foo
+        assertMapping(node, 0, 4, 4, 0, 4, 26);  // foo
     }
 
     @Test
@@ -41,10 +41,10 @@
     {
         IVariableNode node = getField("var foo:String = null;");
         asBlockWalker.visitVariable(node);
-        //**\n * @type {string}\n */\nRoyaleTest_A.prototype.foo = null
-        assertMapping(node, 0, 4, 3, 0, 3, 26);  // foo
-        assertMapping(node, 0, 14, 3, 26, 3, 29);  // =
-        assertMapping(node, 0, 17, 3, 29, 3, 33);  // null
+        //**\n * @package\n * @type {string}\n */\nRoyaleTest_A.prototype.foo = null
+        assertMapping(node, 0, 4, 4, 0, 4, 26);  // foo
+        assertMapping(node, 0, 14, 4, 26, 4, 29);  // =
+        assertMapping(node, 0, 17, 4, 29, 4, 33);  // null
     }
 
     @Test
@@ -52,8 +52,8 @@
     {
         IVariableNode node = getField("var foo:int;");
         asBlockWalker.visitVariable(node);
-        ///**\n * @type {number}\n */\nRoyaleTest_A.prototype.foo = 0
-        assertMapping(node, 0, 4, 3, 0, 3, 26);  // foo
+        ///**\n * @package\n * @type {number}\n */\nRoyaleTest_A.prototype.foo = 0
+        assertMapping(node, 0, 4, 4, 0, 4, 26);  // foo
     }
 
     @Test
@@ -61,10 +61,10 @@
     {
         IVariableNode node = getField("var foo = 420;");
         asBlockWalker.visitVariable(node);
-        ///**\n * @type {*}\n */\nRoyaleTest_A.prototype.foo = 420
-        assertMapping(node, 0, 4, 3, 0, 3, 26);  // foo
-        assertMapping(node, 0, 7, 3, 26, 3, 29);  // =
-        assertMapping(node, 0, 10, 3, 29, 3, 32);  // 420
+        ///**\n * @package\n * @type {*}\n */\nRoyaleTest_A.prototype.foo = 420
+        assertMapping(node, 0, 4, 4, 0, 4, 26);  // foo
+        assertMapping(node, 0, 7, 4, 26, 4, 29);  // =
+        assertMapping(node, 0, 10, 4, 29, 4, 32);  // 420
     }
 
     @Test
@@ -72,10 +72,10 @@
     {
         IVariableNode node = getField("var foo:int = 420;");
         asBlockWalker.visitVariable(node);
-        ///**\n * @type {number}\n */\nRoyaleTest_A.prototype.foo = 420
-        assertMapping(node, 0, 4, 3, 0, 3, 26);  // foo
-        assertMapping(node, 0, 11, 3, 26, 3, 29);  // =
-        assertMapping(node, 0, 14, 3, 29, 3, 32);  // 420
+        ///**\n * @package\n * @type {number}\n */\nRoyaleTest_A.prototype.foo = 420
+        assertMapping(node, 0, 4, 4, 0, 4, 26);  // foo
+        assertMapping(node, 0, 11, 4, 26, 4, 29);  // =
+        assertMapping(node, 0, 14, 4, 29, 4, 32);  // 420
     }
 
     @Test
@@ -83,8 +83,8 @@
     {
         IVariableNode node = getField("static var foo;");
         asBlockWalker.visitVariable(node);
-        ////**\n * @type {*}\n */\nRoyaleTest_A.foo
-        assertMapping(node, 0, 11, 3, 0, 3, 16);  // foo
+        ////**\n * @package\n * @type {*}\n */\nRoyaleTest_A.foo
+        assertMapping(node, 0, 11, 4, 0, 4, 16);  // foo
     }
 
     @Test
@@ -92,8 +92,8 @@
     {
         IVariableNode node = getField("static var foo:int;");
         asBlockWalker.visitVariable(node);
-        ///**\n * @type {number}\n */\nRoyaleTest_A.foo = 0
-        assertMapping(node, 0, 11, 3, 0, 3, 16);  // foo
+        ///**\n * @package\n * @type {number}\n */\nRoyaleTest_A.foo = 0
+        assertMapping(node, 0, 11, 4, 0, 4, 16);  // foo
     }
 
     @Test
@@ -101,10 +101,10 @@
     {
         IVariableNode node = getField("static var foo = 420;");
         asBlockWalker.visitVariable(node);
-        ///**\n * @type {*}\n */\nRoyaleTest_A.foo = 420
-        assertMapping(node, 0, 11, 3, 0, 3, 16);   // foo
-        assertMapping(node, 0, 14, 3, 16, 3, 19);  // =
-        assertMapping(node, 0, 17, 3, 19, 3, 22);  // 420
+        ///**\n * @package\n * @type {*}\n */\nRoyaleTest_A.foo = 420
+        assertMapping(node, 0, 11, 4, 0, 4, 16);   // foo
+        assertMapping(node, 0, 14, 4, 16, 4, 19);  // =
+        assertMapping(node, 0, 17, 4, 19, 4, 22);  // 420
     }
 
     @Test
@@ -112,10 +112,10 @@
     {
         IVariableNode node = getField("static var foo:int = 420;");
         asBlockWalker.visitVariable(node);
-        ///**\n * @type {number}\n */\nRoyaleTest_A.foo = 420
-        assertMapping(node, 0, 11, 3, 0, 3, 16);  // foo
-        assertMapping(node, 0, 18, 3, 16, 3, 19);  // =
-        assertMapping(node, 0, 21, 3, 19, 3, 22);  // 420
+        ///**\n * @package\n * @type {number}\n */\nRoyaleTest_A.foo = 420
+        assertMapping(node, 0, 11, 4, 0, 4, 16);  // foo
+        assertMapping(node, 0, 18, 4, 16, 4, 19);  // =
+        assertMapping(node, 0, 21, 4, 19, 4, 22);  // 420
     }
 
     @Test
@@ -123,8 +123,8 @@
     {
         IVariableNode node = getField("const foo;");
         asBlockWalker.visitVariable(node);
-        ///**\n * @const\n * @type {*}\n */\nRoyaleTest_A.prototype.foo
-        assertMapping(node, 0, 6, 4, 0, 4, 26);  // foo
+        ///**\n * @package\n * @const\n * @type {*}\n */\nRoyaleTest_A.prototype.foo
+        assertMapping(node, 0, 6, 5, 0, 5, 26);  // foo
     }
 
     @Test
@@ -132,8 +132,8 @@
     {
         IVariableNode node = getField("const foo:int;");
         asBlockWalker.visitVariable(node);
-        ///**\n * @const\n * @type {number}\n */\nRoyaleTest_A.prototype.foo = 0
-        assertMapping(node, 0, 6, 4, 0, 4, 26);  // foo
+        ///**\n * @package\n * @const\n * @type {number}\n */\nRoyaleTest_A.prototype.foo = 0
+        assertMapping(node, 0, 6, 5, 0, 5, 26);  // foo
     }
 
     @Test
@@ -141,10 +141,10 @@
     {
         IVariableNode node = getField("const foo = 420;");
         asBlockWalker.visitVariable(node);
-        ///**\n * @const\n * @type {*}\n */\nRoyaleTest_A.prototype.foo = 420
-        assertMapping(node, 0, 6, 4, 0, 4, 26);  // foo
-        assertMapping(node, 0, 9, 4, 26, 4, 29);  // =
-        assertMapping(node, 0, 12, 4, 29, 4, 32);  // 420
+        ///**\n * @package\n * @const\n * @type {*}\n */\nRoyaleTest_A.prototype.foo = 420
+        assertMapping(node, 0, 6, 5, 0, 5, 26);  // foo
+        assertMapping(node, 0, 9, 5, 26, 5, 29);  // =
+        assertMapping(node, 0, 12, 5, 29, 5, 32);  // 420
     }
 
     @Test
@@ -152,10 +152,10 @@
     {
         IVariableNode node = getField("const foo:int = 420;");
         asBlockWalker.visitVariable(node);
-        ///**\n * @const\n * @type {number}\n */\nRoyaleTest_A.prototype.foo = 420
-        assertMapping(node, 0, 6, 4, 0, 4, 26);  // foo
-        assertMapping(node, 0, 13, 4, 26, 4, 29);  // =
-        assertMapping(node, 0, 16, 4, 29, 4, 32);  // 420
+        ///**\n * @package\n * @const\n * @type {number}\n */\nRoyaleTest_A.prototype.foo = 420
+        assertMapping(node, 0, 6, 5, 0, 5, 26);  // foo
+        assertMapping(node, 0, 13, 5, 26, 5, 29);  // =
+        assertMapping(node, 0, 16, 5, 29, 5, 32);  // 420
     }
 
     @Test
@@ -163,8 +163,8 @@
     {
         IVariableNode node = getField("static const foo;");
         asBlockWalker.visitVariable(node);
-        ///**\n * @const\n * @type {*}\n */\nRoyaleTest_A.foo
-        assertMapping(node, 0, 13, 4, 0, 4, 16);  // foo
+        ///**\n * @package\n * @const\n * @type {*}\n */\nRoyaleTest_A.foo
+        assertMapping(node, 0, 13, 5, 0, 5, 16);  // foo
     }
 
     @Test
@@ -172,8 +172,8 @@
     {
         IVariableNode node = getField("static const foo:int;");
         asBlockWalker.visitVariable(node);
-        ///**\n * @const\n * @type {number}\n */\nRoyaleTest_A.foo = 0
-        assertMapping(node, 0, 13, 4, 0, 4, 16);  // foo
+        ///**\n * @package\n * @const\n * @type {number}\n */\nRoyaleTest_A.foo = 0
+        assertMapping(node, 0, 13, 5, 0, 5, 16);  // foo
     }
 
     @Test
@@ -181,10 +181,10 @@
     {
         IVariableNode node = getField("static const foo = 420;");
         asBlockWalker.visitVariable(node);
-        ///**\n * @const\n * @type {*}\n */\nRoyaleTest_A.foo = 420
-        assertMapping(node, 0, 13, 4, 0, 4, 16);  // foo
-        assertMapping(node, 0, 16, 4, 16, 4, 19);  // =
-        assertMapping(node, 0, 19, 4, 19, 4, 22);  // 420
+        ///**\n * @package\n * @const\n * @type {*}\n */\nRoyaleTest_A.foo = 420
+        assertMapping(node, 0, 13, 5, 0, 5, 16);  // foo
+        assertMapping(node, 0, 16, 5, 16, 5, 19);  // =
+        assertMapping(node, 0, 19, 5, 19, 5, 22);  // 420
     }
 
     @Test
@@ -192,10 +192,10 @@
     {
         IVariableNode node = getField("static const foo:int = 420;");
         asBlockWalker.visitVariable(node);
-        ///**\n * @export\n * @const\n * @type {number}\n */\nRoyaleTest_A.foo = 420
-        assertMapping(node, 0, 13, 4, 0, 4, 16);  // foo
-        assertMapping(node, 0, 20, 4, 16, 4, 19);  // =
-        assertMapping(node, 0, 23, 4, 19, 4, 22);  // 420
+        ///**\n * @package\n * @const\n * @type {number}\n */\nRoyaleTest_A.foo = 420
+        assertMapping(node, 0, 13, 5, 0, 5, 16);  // foo
+        assertMapping(node, 0, 20, 5, 16, 5, 19);  // =
+        assertMapping(node, 0, 23, 5, 19, 5, 22);  // 420
     }
 
     protected IBackend createBackend()
diff --git a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/mxml/sourcemaps/TestSourceMapMXMLScript.java b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/mxml/sourcemaps/TestSourceMapMXMLScript.java
index edf8c4f..6416831 100644
--- a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/mxml/sourcemaps/TestSourceMapMXMLScript.java
+++ b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/mxml/sourcemaps/TestSourceMapMXMLScript.java
@@ -44,8 +44,8 @@
         String definitionName = definition.getQualifiedName();
         assertTrue(definitionName.startsWith(getClass().getSimpleName()));
         int endColumn = definitionName.length() + 14;
-        ///**\n * @export\n * @type {*}\n */\nRoyaleTest_A.prototype.foo
-        assertMapping(node, 0, 4, 42, 0, 42, endColumn);  // foo
+        ///**\n * @package\n * @type {*}\n */\nRoyaleTest_A.prototype.foo
+        assertMapping(node, 0, 4, 43, 0, 43, endColumn);  // foo
     }
 
     @Test