 			_callbackFunctionCache = {};
 			_d2d_callbackStr_target = new Dictionary2D(true, true);
 		}
+		
+		private static function externalError(message:String):void
+		{
+			WeaveAPI.externalError("Error: " + message);
+		}
+		
+		private static function externalWarning(message:String):void
+		{
+			WeaveAPI.externalError("Warning: " + message);
+		}
 	}
 }

					}
					catch (e:*)
					{
						reportError(e);
					}
					ExternalInterface.marshallExceptions = prev;
				}

					throw new Error("Invalid variable name: " + Compiler.encodeString(assignVariableName));
				
				var thisObject:Object = getObjectFromPathOrVariableName(scopeObjectPathOrVariableName);
				if (getObjectFromPathOrVariableName_error)
					throw new Error(getObjectFromPathOrVariableName_error);
				var compiledObject:ICompiledObject = _compiler.compileToObject(expression);
				var isFuncDef:Boolean = _compiler.compiledObjectIsFunctionDefinition(compiledObject);
				// passed-in variables take precedence over stored ActionScript _variables
				var compiledMethod:Function = _compiler.compileObjectToFunction(
					compiledObject,
					[variables, _variables],
					WeaveAPI.ErrorManager.reportError,
					thisObject != null
				);
				var result:*;
				if (isAssignment && isFuncDef)
				{
