From 98e2821b38a775737e42a2479a6bc65107210859 Mon Sep 17 00:00:00 2001 From: Elliot Kroo Date: Thu, 11 Mar 2010 15:21:30 -0800 Subject: reorganizing the first level of folders (trunk/branch folders are not the git way :) --- .../platform/yui/compressor/ScriptOrFnScope.java | 169 --------------------- 1 file changed, 169 deletions(-) delete mode 100644 trunk/infrastructure/yuicompressor/src/com/yahoo/platform/yui/compressor/ScriptOrFnScope.java (limited to 'trunk/infrastructure/yuicompressor/src/com/yahoo/platform/yui/compressor/ScriptOrFnScope.java') diff --git a/trunk/infrastructure/yuicompressor/src/com/yahoo/platform/yui/compressor/ScriptOrFnScope.java b/trunk/infrastructure/yuicompressor/src/com/yahoo/platform/yui/compressor/ScriptOrFnScope.java deleted file mode 100644 index c1a2e47..0000000 --- a/trunk/infrastructure/yuicompressor/src/com/yahoo/platform/yui/compressor/ScriptOrFnScope.java +++ /dev/null @@ -1,169 +0,0 @@ -/* - * YUI Compressor - * Author: Julien Lecomte - * Copyright (c) 2007, Yahoo! Inc. All rights reserved. - * Code licensed under the BSD License: - * http://developer.yahoo.net/yui/license.txt - */ - -package com.yahoo.platform.yui.compressor; - -import java.util.ArrayList; -import java.util.Enumeration; -import java.util.Hashtable; - -class ScriptOrFnScope { - - private int braceNesting; - private ScriptOrFnScope parentScope; - private ArrayList subScopes; - private Hashtable identifiers = new Hashtable(); - private Hashtable hints = new Hashtable(); - private boolean markedForMunging = true; - private int varcount = 0; - - ScriptOrFnScope(int braceNesting, ScriptOrFnScope parentScope) { - this.braceNesting = braceNesting; - this.parentScope = parentScope; - this.subScopes = new ArrayList(); - if (parentScope != null) { - parentScope.subScopes.add(this); - } - } - - int getBraceNesting() { - return braceNesting; - } - - ScriptOrFnScope getParentScope() { - return parentScope; - } - - JavaScriptIdentifier declareIdentifier(String symbol) { - JavaScriptIdentifier identifier = (JavaScriptIdentifier) identifiers.get(symbol); - if (identifier == null) { - identifier = new JavaScriptIdentifier(symbol, this); - identifiers.put(symbol, identifier); - } - return identifier; - } - - JavaScriptIdentifier getIdentifier(String symbol) { - return (JavaScriptIdentifier) identifiers.get(symbol); - } - - void addHint(String variableName, String variableType) { - hints.put(variableName, variableType); - } - - void preventMunging() { - if (parentScope != null) { - // The symbols in the global scope don't get munged, - // but the sub-scopes it contains do get munged. - markedForMunging = false; - } - } - - private ArrayList getUsedSymbols() { - ArrayList result = new ArrayList(); - Enumeration elements = identifiers.elements(); - while (elements.hasMoreElements()) { - JavaScriptIdentifier identifier = (JavaScriptIdentifier) elements.nextElement(); - String mungedValue = identifier.getMungedValue(); - if (mungedValue == null) { - mungedValue = identifier.getValue(); - } - result.add(mungedValue); - } - return result; - } - - private ArrayList getAllUsedSymbols() { - ArrayList result = new ArrayList(); - ScriptOrFnScope scope = this; - while (scope != null) { - result.addAll(scope.getUsedSymbols()); - scope = scope.parentScope; - } - return result; - } - - int incrementVarCount() { - varcount++; - return varcount; - } - - void munge() { - - if (!markedForMunging) { - // Stop right here if this scope was flagged as unsafe for munging. - return; - } - - int pickFromSet = 1; - - // Do not munge symbols in the global scope! - if (parentScope != null) { - - ArrayList freeSymbols = new ArrayList(); - - freeSymbols.addAll(JavaScriptCompressor.ones); - freeSymbols.removeAll(getAllUsedSymbols()); - if (freeSymbols.size() == 0) { - pickFromSet = 2; - freeSymbols.addAll(JavaScriptCompressor.twos); - freeSymbols.removeAll(getAllUsedSymbols()); - } - if (freeSymbols.size() == 0) { - pickFromSet = 3; - freeSymbols.addAll(JavaScriptCompressor.threes); - freeSymbols.removeAll(getAllUsedSymbols()); - } - if (freeSymbols.size() == 0) { - throw new IllegalStateException("The YUI Compressor ran out of symbols. Aborting..."); - } - - // APPJET: sort identifiers by popularity - JavaScriptIdentifier idArray[] = ((Hashtable)identifiers).values().toArray(new JavaScriptIdentifier[0]); - java.util.Arrays.sort(idArray, new java.util.Comparator() { - public int compare(JavaScriptIdentifier i1, JavaScriptIdentifier i2) { - return i2.getRefcount() - i1.getRefcount(); // positive if i2 is more popular, indicating i2 should come first - } - }); - java.util.Iterator elements = java.util.Arrays.asList(idArray).iterator(); - - //Enumeration elements = identifiers.elements(); - while (elements.hasNext()) { - if (freeSymbols.size() == 0) { - pickFromSet++; - if (pickFromSet == 2) { - freeSymbols.addAll(JavaScriptCompressor.twos); - } else if (pickFromSet == 3) { - freeSymbols.addAll(JavaScriptCompressor.threes); - } else { - throw new IllegalStateException("The YUI Compressor ran out of symbols. Aborting..."); - } - // It is essential to remove the symbols already used in - // the containing scopes, or some of the variables declared - // in the containing scopes will be redeclared, which can - // lead to errors. - freeSymbols.removeAll(getAllUsedSymbols()); - } - - String mungedValue; - JavaScriptIdentifier identifier = (JavaScriptIdentifier) elements.next(); - if (identifier.isMarkedForMunging()) { - mungedValue = (String) freeSymbols.remove(0); - } else { - mungedValue = identifier.getValue(); - } - identifier.setMungedValue(mungedValue); - } - } - - for (int i = 0; i < subScopes.size(); i++) { - ScriptOrFnScope scope = (ScriptOrFnScope) subScopes.get(i); - scope.munge(); - } - } -} -- cgit v1.2.3