src/compiler/tools/uglify-js/lib/consolidator.js
function(oExpression, sIdentifierName) {
                   /**
                    * The prefixed String value that is equivalent to the
                    * sequence of terminal symbols that constitute the
                    * encountered identifier name.
                    * @type {string}
                    */
                   var sPrefixed = EValuePrefixes.S_STRING + sIdentifierName;

                   return oSolutionBest.oPrimitiveValues.hasOwnProperty(
                       sPrefixed) &&
                       oSolutionBest.oPrimitiveValues[sPrefixed].nSaving > 0 ?
                       ['sub',
                        oWalker.walk(oExpression),
                        ['name',
                         oSolutionBest.oPrimitiveValues[sPrefixed].sName]] :
                       ['dot', oWalker.walk(oExpression), sIdentifierName];
                 }
function(oExpression, sIdentifierName) {
                   /**
                    * The prefixed String value that is equivalent to the
                    * sequence of terminal symbols that constitute the
                    * encountered identifier name.
                    * @type {string}
                    */
                   var sPrefixed = EValuePrefixes.S_STRING + sIdentifierName;

                   return oSolutionBest.oPrimitiveValues.hasOwnProperty(
                       sPrefixed) &&
                       oSolutionBest.oPrimitiveValues[sPrefixed].nSaving > 0 ?
                       ['sub',
                        oWalker.walk(oExpression),
                        ['name',
                         oSolutionBest.oPrimitiveValues[sPrefixed].sName]] :
                       ['dot', oWalker.walk(oExpression), sIdentifierName];
                 }
function ( oExpression , sIdentifierName ) { /**
                    * The prefixed String value that is equivalent to the
                    * sequence of terminal symbols that constitute the
                    * encountered identifier name.
                    * @type {string}
                    */ var sPrefixed = EValuePrefixes . S_STRING + sIdentifierName ; return oSolutionBest . oPrimitiveValues . hasOwnProperty ( sPrefixed ) && oSolutionBest . oPrimitiveValues [ sPrefixed ] . nSaving > 0 ? [ 'sub' , oWalker . walk ( oExpression ) , [ 'name' , oSolutionBest . oPrimitiveValues [ sPrefixed ] . sName ] ] : [ 'dot' , oWalker . walk ( oExpression ) , sIdentifierName ] ; }
If the String value that is equivalent to the sequence of
terminal symbols that constitute the encountered identifier
name is worthwhile, a syntactic conversion from the dot
notation to the bracket notation ensues with that sequence
being substituted by an identifier name to which the value
is assigned.
Applies to property accessors that use the dot notation.
@param {!TSyntacticCodeUnit} oExpression The nonterminal
MemberExpression.
@param {string} sIdentifierName The identifier name used as
the property accessor.
@return {!Array} A syntactic code unit that is equivalent to
the one encountered.
@see TPrimitiveValue#nSaving
If the String value that is equivalent to the sequence of terminal symbols that constitute the encountered identifier name is worthwhile a syntactic conversion from the dot notation to the bracket notation ensues with that sequence being substituted by an identifier name to which the value is assigned . Applies to property accessors that use the dot notation .