code: function (input, objectName, context)
  	{
  		var exp = new RegExp(objectName+"\\.([0-9A-Z_]*)[^\\w\\d_(]","g");
  		var constantsInUse=[];
  		var result=exp.exec(input);
  		while (result) {	// get a set with a unique entry for each method
  			if (constantsInUse.indexOf(result[1])==-1) {
  				constantsInUse.push(result[1]);
  			}
  			result=exp.exec(input);
  		}
  		var output = input, details="";
  		details += "Replaced constants of "+objectName+"\n";
  		for (var index=0; index<constantsInUse.length; ++index) {
  			if (constantsInUse[index] in context) {
  				var constant = context[constantsInUse[index]];
  				output = output.split(objectName+"."+constantsInUse[index]).join(constant);
  				// show the renaming in the details
  				details += constantsInUse[index] + " -> " + constant + "\n";
  			}
  		}
  		return [this.getByteLength(output), output, details];
  		
  	}
docs: Replaces, in the provided code, all definition of WebGL constants with their numerical values
  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 replacement actually lenghtened the string.
  Only the constant values in CAPITALS are replaced. Other properties and methods are untouched.
  
  @param input the code to perform replacement on
  @param objectName the variable holding the context (mandatory)
  @param context an instance of a canvas webgl context, to check for exiting properties and obtain their values
  @return the result array, or false if no webgl context definition is found in the code.