Rev 1688 | Blame | Compare with Previous | Last modification | View Log | RSS feed
/*Copyright (c) 2004-2006, The Dojo FoundationAll Rights Reserved.Licensed under the Academic Free License version 2.1 or above OR themodified BSD license. For more information on Dojo licensing, see:http://dojotoolkit.org/community/licensing.shtml*//** JScript .NET jsc**/dojo.hostenv.name_ = 'jsc';// Sanity check this is the right hostenv.// See the Rotor source code jscript/engine/globalobject.cs for what globals// are available.if((typeof ScriptEngineMajorVersion != 'function')||(ScriptEngineMajorVersion() < 7)){dojo.raise("attempt to use JScript .NET host environment with inappropriate ScriptEngine");}// for more than you wanted to know about why this import is required even if// we fully qualify all symbols, see// http://groups.google.com/groups?th=f050c7aeefdcbde2&rnum=12import System;dojo.hostenv.getText = function(uri){if(!System.IO.File.Exists(uri)){// dojo.raise("No such file '" + uri + "'");return 0;}var reader = new System.IO.StreamReader(uri);var contents : String = reader.ReadToEnd();return contents;}dojo.hostenv.loadUri = function(uri){var contents = this.getText(uri);if(!contents){dojo.raise("got no back contents from uri '" + uri + "': " + contents);}// TODO: in JScript .NET, eval will not affect the symbol table of the current code?var value = dj_eval(contents);dojo.debug("jsc eval of contents returned: ", value);return 1;// for an example doing runtime code compilation, see:// http://groups.google.com/groups?selm=eQ1aeciCBHA.1644%40tkmsftngp05&rnum=6// Microsoft.JScript or System.CodeDom.Compiler ?// var engine = new Microsoft.JScript.Vsa.VsaEngine()// what about loading a js file vs. a dll?// GetObject("script:" . uri);}/* The System.Environment object is useful:print ("CommandLine='" + System.Environment.CommandLine + "' " +"program name='" + System.Environment.GetCommandLineArgs()[0] + "' " +"CurrentDirectory='" + System.Environment.CurrentDirectory + "' " +"StackTrace='" + System.Environment.StackTrace + "'");*/// same as System.Console.WriteLine// sigh; Rotor treats symbol "print" at parse time without actually putting it// in the builtin symbol table.// Note that the print symbol is not available if jsc is run with the "/print-"// option.dojo.hostenv.println = function(s){print(s); // = print}dojo.hostenv.getLibraryScriptUri = function(){return System.Environment.GetCommandLineArgs()[0];}dojo.requireIf((djConfig["isDebug"] || djConfig["debugAtAllCosts"]), "dojo.debug");