This is an automated email from the ASF dual-hosted git repository.

harbs pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/royale-docs.git


The following commit(s) were added to refs/heads/master by this push:
     new 9c29e1a  Added coercion details
9c29e1a is described below

commit 9c29e1ae8afef0d2a6360dacca7aeb0a0f6aedb8
Author: Harbs <[email protected]>
AuthorDate: Thu Dec 31 23:42:55 2020 +0200

    Added coercion details
---
 .../optimizations/doc-comment-directives.md                 | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/create-an-application/optimizations/doc-comment-directives.md 
b/create-an-application/optimizations/doc-comment-directives.md
index 53041df..c397a73 100644
--- a/create-an-application/optimizations/doc-comment-directives.md
+++ b/create-an-application/optimizations/doc-comment-directives.md
@@ -33,6 +33,7 @@ They have no case variation (all lower case, not camel case, 
for example) and ma
 
 |[Suppress 
Warnings](create-an-application/optimizations/doc-comment-directives.html#suppress-warnings)
  
|[@royalesuppresspublicvarwarning](create-an-application/optimizations/doc-comment-directives.html#royalesuppresspublicvarwarning)
   |
 |[Output 
Optimizations](create-an-application/optimizations/doc-comment-directives.html#output-optimizations)
  
|[@royaleigorecoercion](create-an-application/optimizations/doc-comment-directives.html#royaleigorecoercion)
   |
+| 
|[@royaleemitcoercion](create-an-application/optimizations/doc-comment-directives.html#royaleemitcoercion)
  | 
 | 
|[@royalesuppressresolveuncertain](create-an-application/optimizations/doc-comment-directives.html#royalesuppressresolveuncertain)
  | 
 | 
|[@royalesuppresscompleximplicitcoercion](create-an-application/optimizations/doc-comment-directives.html#royalesuppresscompleximplicitcoercion)
  | 
 | 
|[@royalesuppressvectorindexcheck](create-an-application/optimizations/doc-comment-directives.html#royalesuppressvectorindexcheck)
  | 
@@ -80,8 +81,10 @@ public var myImportantVar:String = 'myValue';
 ### @royaleigorecoercion type {#royaleigorecoercion} 
 
 Used for: performance tuning, code size tuning.  
-This is an option to avoid compiler output of coercions of a certain type.  
-It can help avoid unnecessary code and improve performance.
+
+The `as` keyword in ActionScript has two purposes. The first is to tell the 
compiler to accept a value as a specific type even if it's ambiguous. This is 
called a compile-time coercion. ActionScript also supports run-time coercion of 
types. If runtime coercion is enabled, the type of an object is coerced to the 
specified type. If the object is not of the specified type, the assigned value 
will be nullified. This runtime check comes with a cost to code size and 
runtime performance/complexity.
+
+If runtime coercion is not needed, the `@royaleigorecoercion` option can be 
used. It can help avoid unnecessary code and improve performance.
 
 A simplistic, illustrative example is:
 ```as3
@@ -102,10 +105,14 @@ The following can then be used to avoid the redundant (as 
described above) javas
 /**
 * @royaleigorecoercion mypackage.MyClass
 * /
-```  
+```
 
 * * *
+### @royaleemitcoercion type {#royaleemitcoercion} 
 
+The flipside of `@royaleigorecoercion` is used to emit `as` coercions even 
when the `-js-output-optimization=skipAsCoercions` option is enabled. In the 
Royale framework code we use `@royaleemitcoercion` even though the compiler is 
set to emit the coercions because it's an explicit statement that coercions are 
necessary.
+
+* * *
 ### @royalesuppressresolveuncertain optional_arg 
{#royalesuppressresolveuncertain} 
 
 Used for: performance tuning, code size tuning.  

Reply via email to