code: function(input, variableName, context) {
  		// Obtain the context definition (variable name and location in the code)
  		var objectName = variableName, objectOffset = 0, declarationLength = 0, contextFound = false;
  		if (variableName) {
  			// either it is provided to us
  			contextFound = true;
  		} else {
  			var result = input.match (/([\w\d.]*)=[\w\d.]*\.getContext\(['"]2d['"]\)/i);
  			if (result) {
  				contextFound = true;
  				objectName = result[1];
  				objectOffset = input.indexOf(result[0]);
  				declarationLength = result[0].length;
  			}
  		}
  			
  		if (contextFound) {
  			var preprocessedCode = this.renameObjectMethods(input, objectName, objectOffset, declarationLength, context);
  			return preprocessedCode;
  		}
  		return false;
  	}
docs: Performs an optimal hashing and renaming of the methods of a canvas 2d context.
  Uses a context reference passed from a shim, or attempts to locate in inside the code.
  Returns an array in the same format as the compression methods : [output length, output string, informations],
  even if the preprocessing actually lenghtened the string.
  
  @param input the code to preprocess
  @param variableName the variable holding the context if defined outside of the input (shim), false otherwise
  @param context an instance of a canvas 2d context, to list method names
  @return the result array, or false if no 2d context definition is found in the code.