hostenv_jsc.js
上传用户:kimgenplus
上传日期:2016-06-05
资源大小:20877k
文件大小:3k
源码类别:

OA系统

开发平台:

Java

  1. /*
  2. Copyright (c) 2004-2006, The Dojo Foundation
  3. All Rights Reserved.
  4. Licensed under the Academic Free License version 2.1 or above OR the
  5. modified BSD license. For more information on Dojo licensing, see:
  6. http://dojotoolkit.org/community/licensing.shtml
  7. */
  8. /*
  9.  * JScript .NET jsc
  10.  *
  11.  */
  12. dojo.hostenv.name_ = 'jsc';
  13. // Sanity check this is the right hostenv.
  14. // See the Rotor source code jscript/engine/globalobject.cs for what globals
  15. // are available.
  16. if((typeof ScriptEngineMajorVersion != 'function')||(ScriptEngineMajorVersion() < 7)){
  17. dojo.raise("attempt to use JScript .NET host environment with inappropriate ScriptEngine"); 
  18. }
  19. // for more than you wanted to know about why this import is required even if
  20. // we fully qualify all symbols, see
  21. // http://groups.google.com/groups?th=f050c7aeefdcbde2&rnum=12
  22. import System;
  23. dojo.hostenv.getText = function(uri){
  24. if(!System.IO.File.Exists(uri)){
  25. // dojo.raise("No such file '" + uri + "'");
  26. return 0;
  27. }
  28. var reader = new System.IO.StreamReader(uri);
  29. var contents : String = reader.ReadToEnd();
  30. return contents;
  31. }
  32. dojo.hostenv.loadUri = function(uri){
  33. var contents = this.getText(uri);
  34. if(!contents){
  35. dojo.raise("got no back contents from uri '" + uri + "': " + contents);
  36. }
  37. // TODO: in JScript .NET, eval will not affect the symbol table of the current code?
  38. var value = dj_eval(contents);
  39. dojo.debug("jsc eval of contents returned: ", value);
  40. return 1;
  41. // for an example doing runtime code compilation, see:
  42. // http://groups.google.com/groups?selm=eQ1aeciCBHA.1644%40tkmsftngp05&rnum=6
  43. // Microsoft.JScript or System.CodeDom.Compiler ?
  44. // var engine = new Microsoft.JScript.Vsa.VsaEngine()
  45. // what about loading a js file vs. a dll?
  46. // GetObject("script:" . uri);
  47. }
  48. /* The System.Environment object is useful:
  49.     print ("CommandLine='" + System.Environment.CommandLine + "' " +
  50.    "program name='" + System.Environment.GetCommandLineArgs()[0] + "' " +
  51.    "CurrentDirectory='" + System.Environment.CurrentDirectory + "' " +
  52.    "StackTrace='" + System.Environment.StackTrace + "'");
  53. */
  54. // same as System.Console.WriteLine
  55. // sigh; Rotor treats symbol "print" at parse time without actually putting it
  56. // in the builtin symbol table.
  57. // Note that the print symbol is not available if jsc is run with the "/print-"
  58. // option.
  59. dojo.hostenv.println = function(s){
  60. print(s); // = print
  61. }
  62. dojo.hostenv.getLibraryScriptUri = function(){
  63. return System.Environment.GetCommandLineArgs()[0];
  64. }
  65. dojo.requireIf((djConfig["isDebug"] || djConfig["debugAtAllCosts"]), "dojo.debug");