| /* |
| Copyright (c) 2004-2006, The Dojo Foundation |
| All Rights Reserved. |
| |
| Licensed under the Academic Free License version 2.1 or above OR the |
| modified 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=12 |
| import 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"); |