The Labs \ Source Viewer \ SSCLI \ Microsoft.JScript \ CompilerGlobals

  1. // ==++==
  2. //
  3. //
  4. // Copyright (c) 2006 Microsoft Corporation. All rights reserved.
  5. //
  6. // The use and distribution terms for this software are contained in the file
  7. // named license.txt, which can be found in the root of this distribution.
  8. // By using this software in any fashion, you are agreeing to be bound by the
  9. // terms of this license.
  10. //
  11. // You must not remove this notice, or any other, from this software.
  12. //
  13. //
  14. // ==--==
  15. namespace Microsoft.JScript
  16. {
  17.    
  18.     using Microsoft.JScript.Vsa;
  19.     using Microsoft.Vsa;
  20.     using System;
  21.     using System.Collections;
  22.     using System.Configuration.Assemblies;
  23.     using System.Diagnostics;
  24.     using System.IO;
  25.     using System.Reflection;
  26.     using System.Reflection.Emit;
  27.     using System.Threading;
  28.     using System.Runtime.Remoting;
  29.     using System.Runtime.CompilerServices;
  30.     using System.Globalization;
  31.     using System.Security.Policy;
  32.    
  33.    
  34.     internal sealed class CompilerGlobals
  35.     {
  36.         internal Stack BreakLabelStack = new Stack();
  37.         internal Stack ContinueLabelStack = new Stack();
  38.         internal bool InsideProtectedRegion = false;
  39.         internal bool InsideFinally = false;
  40.         internal int FinallyStackTop = 0;
  41.        
  42.         internal ModuleBuilder module;
  43.         internal AssemblyBuilder assemblyBuilder;
  44.         internal TypeBuilder classwriter;
  45.         internal TypeBuilder globalScopeClassWriter;
  46.        
  47.         internal SimpleHashtable documents = new SimpleHashtable(8);
  48.         internal SimpleHashtable usedNames = new SimpleHashtable(32);
  49.        
  50.         // Saves the evidence used to define the assembly so that if the executionEvidence
  51.         // is changed after Compile, the engine can determine that it must reload the assembly.
  52.         internal Evidence compilationEvidence;
  53.        
  54.        
  55.         internal CompilerGlobals(VsaEngine engine, string assemName, string assemblyFileName, PEFileKinds PEFileKind, bool save, bool run, bool debugOn, bool isCLSCompliant, Version version, Globals globals
  56.         )
  57.         {
  58.             string moduleFileName = null;
  59.             string directory = null;
  60.             //Default has assembly stored in current directory
  61.             if (assemblyFileName != null) {
  62.                 //The directory is an absolute path where the assembly is written
  63.                 try {
  64.                     directory = Path.GetDirectoryName(Path.GetFullPath(assemblyFileName));
  65.                 }
  66.                 catch (Exception e) {
  67.                     throw new VsaException(VsaError.AssemblyNameInvalid, assemblyFileName, e);
  68.                 }
  69.                 catch {
  70.                     throw new JScriptException(JSError.NonClsException);
  71.                 }
  72.                
  73.                 //For a single file assembly module filename is set to assembly filename
  74.                 moduleFileName = Path.GetFileName(assemblyFileName);
  75.                
  76.                 //If simple name is not specified, get it by extracting the basename from assembly name
  77.                 if (null == assemName || String.Empty == assemName) {
  78.                     assemName = Path.GetFileName(assemblyFileName);
  79.                     if (Path.HasExtension(assemName))
  80.                         assemName = assemName.Substring(0, assemName.Length - Path.GetExtension(assemName).Length);
  81.                 }
  82.             }
  83.            
  84.             //Setup default simple assembly name and module name for the case where no assemblyFileName is specified.
  85.             if (assemName == null || assemName == String.Empty)
  86.                 assemName = "JScriptAssembly";
  87.             if (moduleFileName == null) {
  88.                 if (PEFileKind == PEFileKinds.Dll)
  89.                     moduleFileName = "JScriptModule.dll";
  90.                 else
  91.                     moduleFileName = "JScriptModule.exe";
  92.             }
  93.            
  94.             AssemblyName assemblyName = new AssemblyName();
  95.             assemblyName.CodeBase = assemblyFileName;
  96.             if (globals.assemblyCulture != null)
  97.                 assemblyName.CultureInfo = globals.assemblyCulture;
  98.             assemblyName.Flags = AssemblyNameFlags.None;
  99.             if ((globals.assemblyFlags & AssemblyFlags.PublicKey) != 0)
  100.                 assemblyName.Flags = AssemblyNameFlags.PublicKey;
  101.             switch ((AssemblyFlags)(globals.assemblyFlags & AssemblyFlags.CompatibilityMask)) {
  102.                 case AssemblyFlags.NonSideBySideAppDomain:
  103.                     assemblyName.VersionCompatibility = AssemblyVersionCompatibility.SameDomain;
  104.                     break;
  105.                 case AssemblyFlags.NonSideBySideMachine:
  106.                     assemblyName.VersionCompatibility = AssemblyVersionCompatibility.SameMachine;
  107.                     break;
  108.                 case AssemblyFlags.NonSideBySideProcess:
  109.                     assemblyName.VersionCompatibility = AssemblyVersionCompatibility.SameProcess;
  110.                     break;
  111.                 default:
  112.                     assemblyName.VersionCompatibility = (AssemblyVersionCompatibility)0;
  113.                     break;
  114.             }
  115.            
  116.             assemblyName.HashAlgorithm = globals.assemblyHashAlgorithm;
  117.             if (globals.assemblyKeyFileName != null) {
  118.                 try {
  119.                     using (FileStream fs = new FileStream(globals.assemblyKeyFileName, FileMode.Open, FileAccess.Read)) {
  120.                         StrongNameKeyPair keyPair = new StrongNameKeyPair(fs);
  121.                        
  122.                         if (globals.assemblyDelaySign)
  123.                             if (fs.Length == 160) {
  124.                                 byte[] pkey = new byte[160];
  125.                                 fs.Seek(0, SeekOrigin.Begin);
  126.                                 int len = fs.Read(pkey, 0, 160);
  127.                                 assemblyName.SetPublicKey(pkey);
  128.                             }
  129.                             else
  130.                                 assemblyName.SetPublicKey(keyPair.PublicKey);
  131.                         else {
  132.                             // Fetch to force reflection to try and process the key file data and throw an exception
  133.                             byte[] publicKey = keyPair.PublicKey;
  134.                             assemblyName.KeyPair = keyPair;
  135.                         }
  136.                     }
  137.                 }
  138.                 catch {
  139.                     globals.assemblyKeyFileNameContext.HandleError(JSError.InvalidAssemblyKeyFile, globals.assemblyKeyFileName);
  140.                 }
  141.             }
  142.             else if (globals.assemblyKeyName != null) {
  143.                 try {
  144.                     StrongNameKeyPair keyPair = new StrongNameKeyPair(globals.assemblyKeyName);
  145.                     byte[] publicKey = keyPair.PublicKey;
  146.                     // Force validation
  147.                     assemblyName.KeyPair = keyPair;
  148.                 }
  149.                 catch {
  150.                     globals.assemblyKeyNameContext.HandleError(JSError.InvalidAssemblyKeyFile, globals.assemblyKeyName);
  151.                 }
  152.             }
  153.            
  154.             assemblyName.Name = assemName;
  155.             if (version != null)
  156.                 assemblyName.Version = version;
  157.             else if (globals.assemblyVersion != null)
  158.                 assemblyName.Version = globals.assemblyVersion;
  159.            
  160.             AssemblyBuilderAccess access = save ? (run ? AssemblyBuilderAccess.RunAndSave : AssemblyBuilderAccess.Save) : AssemblyBuilderAccess.Run;
  161.             if (engine.ReferenceLoaderAPI == LoaderAPI.ReflectionOnlyLoadFrom)
  162.                 access = AssemblyBuilderAccess.ReflectionOnly;
  163.             // Supply the evidence to assemblies built for VSA
  164.             if (globals.engine.genStartupClass)
  165.                 this.assemblyBuilder = Thread.GetDomain().DefineDynamicAssembly(assemblyName, access, directory, globals.engine.Evidence);
  166.             else
  167.                 this.assemblyBuilder = Thread.GetDomain().DefineDynamicAssembly(assemblyName, access, directory);
  168.             if (save)
  169.                 this.module = this.assemblyBuilder.DefineDynamicModule("JScript Module", moduleFileName, debugOn);
  170.             else
  171.                 this.module = this.assemblyBuilder.DefineDynamicModule("JScript Module", debugOn);
  172.             if (isCLSCompliant)
  173.                 this.module.SetCustomAttribute(new CustomAttributeBuilder(CompilerGlobals.clsCompliantAttributeCtor, new object[] {isCLSCompliant}));
  174.             if (debugOn) {
  175.                 ConstructorInfo debuggableAttr = Typeob.DebuggableAttribute.GetConstructor(new Type[] {Typeob.Boolean, Typeob.Boolean});
  176.                 assemblyBuilder.SetCustomAttribute(new CustomAttributeBuilder(debuggableAttr, new object[] {(globals.assemblyFlags & AssemblyFlags.EnableJITcompileTracking) != 0, (globals.assemblyFlags & AssemblyFlags.DisableJITcompileOptimizer) != 0}));
  177.             }
  178.             this.compilationEvidence = globals.engine.Evidence;
  179.             this.classwriter = null;
  180.         }
  181.        
  182.        
  183.         // Member infos
  184.         static internal MethodInfo constructArrayMethod {
  185.             get { return Globals.TypeRefs.constructArrayMethod; }
  186.         }
  187.         static internal MethodInfo isMissingMethod {
  188.             get { return Globals.TypeRefs.isMissingMethod; }
  189.         }
  190.         static internal ConstructorInfo bitwiseBinaryConstructor {
  191.             get { return Globals.TypeRefs.bitwiseBinaryConstructor; }
  192.         }
  193.         static internal MethodInfo evaluateBitwiseBinaryMethod {
  194.             get { return Globals.TypeRefs.evaluateBitwiseBinaryMethod; }
  195.         }
  196.         static internal ConstructorInfo breakOutOfFinallyConstructor {
  197.             get { return Globals.TypeRefs.breakOutOfFinallyConstructor; }
  198.         }
  199.         static internal ConstructorInfo closureConstructor {
  200.             get { return Globals.TypeRefs.closureConstructor; }
  201.         }
  202.         static internal ConstructorInfo continueOutOfFinallyConstructor {
  203.             get { return Globals.TypeRefs.continueOutOfFinallyConstructor; }
  204.         }
  205.         static internal MethodInfo checkIfDoubleIsIntegerMethod {
  206.             get { return Globals.TypeRefs.checkIfDoubleIsIntegerMethod; }
  207.         }
  208.         static internal MethodInfo checkIfSingleIsIntegerMethod {
  209.             get { return Globals.TypeRefs.checkIfSingleIsIntegerMethod; }
  210.         }
  211.         static internal MethodInfo coerce2Method {
  212.             get { return Globals.TypeRefs.coerce2Method; }
  213.         }
  214.         static internal MethodInfo coerceTMethod {
  215.             get { return Globals.TypeRefs.coerceTMethod; }
  216.         }
  217.         static internal MethodInfo throwTypeMismatch {
  218.             get { return Globals.TypeRefs.throwTypeMismatch; }
  219.         }
  220.         static internal MethodInfo doubleToBooleanMethod {
  221.             get { return Globals.TypeRefs.doubleToBooleanMethod; }
  222.         }
  223.         static internal MethodInfo toBooleanMethod {
  224.             get { return Globals.TypeRefs.toBooleanMethod; }
  225.         }
  226.         static internal MethodInfo toForInObjectMethod {
  227.             get { return Globals.TypeRefs.toForInObjectMethod; }
  228.         }
  229.         static internal MethodInfo toInt32Method {
  230.             get { return Globals.TypeRefs.toInt32Method; }
  231.         }
  232.         static internal MethodInfo toNativeArrayMethod {
  233.             get { return Globals.TypeRefs.toNativeArrayMethod; }
  234.         }
  235.         static internal MethodInfo toNumberMethod {
  236.             get { return Globals.TypeRefs.toNumberMethod; }
  237.         }
  238.         static internal MethodInfo toObjectMethod {
  239.             get { return Globals.TypeRefs.toObjectMethod; }
  240.         }
  241.         static internal MethodInfo toObject2Method {
  242.             get { return Globals.TypeRefs.toObject2Method; }
  243.         }
  244.         static internal MethodInfo doubleToStringMethod {
  245.             get { return Globals.TypeRefs.doubleToStringMethod; }
  246.         }
  247.         static internal MethodInfo toStringMethod {
  248.             get { return Globals.TypeRefs.toStringMethod; }
  249.         }
  250.         static internal FieldInfo undefinedField {
  251.             get { return Globals.TypeRefs.undefinedField; }
  252.         }
  253.         static internal ConstructorInfo equalityConstructor {
  254.             get { return Globals.TypeRefs.equalityConstructor; }
  255.         }
  256.         static internal MethodInfo evaluateEqualityMethod {
  257.             get { return Globals.TypeRefs.evaluateEqualityMethod; }
  258.         }
  259.         static internal MethodInfo jScriptEqualsMethod {
  260.             get { return Globals.TypeRefs.jScriptEqualsMethod; }
  261.         }
  262.         static internal MethodInfo jScriptEvaluateMethod1 {
  263.             get { return Globals.TypeRefs.jScriptEvaluateMethod1; }
  264.         }
  265.         static internal MethodInfo jScriptEvaluateMethod2 {
  266.             get { return Globals.TypeRefs.jScriptEvaluateMethod2; }
  267.         }
  268.         static internal MethodInfo jScriptGetEnumeratorMethod {
  269.             get { return Globals.TypeRefs.jScriptGetEnumeratorMethod; }
  270.         }
  271.         static internal MethodInfo jScriptFunctionDeclarationMethod {
  272.             get { return Globals.TypeRefs.jScriptFunctionDeclarationMethod; }
  273.         }
  274.         static internal MethodInfo jScriptFunctionExpressionMethod {
  275.             get { return Globals.TypeRefs.jScriptFunctionExpressionMethod; }
  276.         }
  277.         static internal FieldInfo contextEngineField {
  278.             get { return Globals.TypeRefs.contextEngineField; }
  279.         }
  280.         static internal MethodInfo fastConstructArrayLiteralMethod {
  281.             get { return Globals.TypeRefs.fastConstructArrayLiteralMethod; }
  282.         }
  283.         static internal ConstructorInfo globalScopeConstructor {
  284.             get { return Globals.TypeRefs.globalScopeConstructor; }
  285.         }
  286.         static internal MethodInfo getDefaultThisObjectMethod {
  287.             get { return Globals.TypeRefs.getDefaultThisObjectMethod; }
  288.         }
  289.         static internal MethodInfo getFieldMethod {
  290.             get { return Globals.TypeRefs.getFieldMethod; }
  291.         }
  292.         static internal MethodInfo getGlobalScopeMethod {
  293.             get { return Globals.TypeRefs.getGlobalScopeMethod; }
  294.         }
  295.         static internal MethodInfo getMemberValueMethod {
  296.             get { return Globals.TypeRefs.getMemberValueMethod; }
  297.         }
  298.         static internal MethodInfo jScriptImportMethod {
  299.             get { return Globals.TypeRefs.jScriptImportMethod; }
  300.         }
  301.         static internal MethodInfo jScriptInMethod {
  302.             get { return Globals.TypeRefs.jScriptInMethod; }
  303.         }
  304.         static internal MethodInfo getEngineMethod {
  305.             get { return Globals.TypeRefs.getEngineMethod; }
  306.         }
  307.         static internal MethodInfo setEngineMethod {
  308.             get { return Globals.TypeRefs.setEngineMethod; }
  309.         }
  310.         static internal MethodInfo jScriptInstanceofMethod {
  311.             get { return Globals.TypeRefs.jScriptInstanceofMethod; }
  312.         }
  313.         static internal ConstructorInfo scriptExceptionConstructor {
  314.             get { return Globals.TypeRefs.scriptExceptionConstructor; }
  315.         }
  316.         static internal ConstructorInfo jsFunctionAttributeConstructor {
  317.             get { return Globals.TypeRefs.jsFunctionAttributeConstructor; }
  318.         }
  319.         static internal ConstructorInfo jsLocalFieldConstructor {
  320.             get { return Globals.TypeRefs.jsLocalFieldConstructor; }
  321.         }
  322.         static internal MethodInfo setMemberValue2Method {
  323.             get { return Globals.TypeRefs.setMemberValue2Method; }
  324.         }
  325.         static internal ConstructorInfo lateBindingConstructor2 {
  326.             get { return Globals.TypeRefs.lateBindingConstructor2; }
  327.         }
  328.         static internal ConstructorInfo lateBindingConstructor {
  329.             get { return Globals.TypeRefs.lateBindingConstructor; }
  330.         }
  331.         static internal FieldInfo objectField {
  332.             get { return Globals.TypeRefs.objectField; }
  333.         }
  334.         static internal MethodInfo callMethod {
  335.             get { return Globals.TypeRefs.callMethod; }
  336.         }
  337.         static internal MethodInfo callValueMethod {
  338.             get { return Globals.TypeRefs.callValueMethod; }
  339.         }
  340.         static internal MethodInfo callValue2Method {
  341.             get { return Globals.TypeRefs.callValue2Method; }
  342.         }
  343.         static internal MethodInfo deleteMethod {
  344.             get { return Globals.TypeRefs.deleteMethod; }
  345.         }
  346.         static internal MethodInfo deleteMemberMethod {
  347.             get { return Globals.TypeRefs.deleteMemberMethod; }
  348.         }
  349.         static internal MethodInfo getNonMissingValueMethod {
  350.             get { return Globals.TypeRefs.getNonMissingValueMethod; }
  351.         }
  352.         static internal MethodInfo getValue2Method {
  353.             get { return Globals.TypeRefs.getValue2Method; }
  354.         }
  355.         static internal MethodInfo setIndexedPropertyValueStaticMethod {
  356.             get { return Globals.TypeRefs.setIndexedPropertyValueStaticMethod; }
  357.         }
  358.         static internal MethodInfo setValueMethod {
  359.             get { return Globals.TypeRefs.setValueMethod; }
  360.         }
  361.         static internal FieldInfo missingField {
  362.             get { return Globals.TypeRefs.missingField; }
  363.         }
  364.         static internal MethodInfo getNamespaceMethod {
  365.             get { return Globals.TypeRefs.getNamespaceMethod; }
  366.         }
  367.         static internal ConstructorInfo numericBinaryConstructor {
  368.             get { return Globals.TypeRefs.numericBinaryConstructor; }
  369.         }
  370.         static internal MethodInfo numericbinaryDoOpMethod {
  371.             get { return Globals.TypeRefs.numericbinaryDoOpMethod; }
  372.         }
  373.         static internal MethodInfo evaluateNumericBinaryMethod {
  374.             get { return Globals.TypeRefs.evaluateNumericBinaryMethod; }
  375.         }
  376.         static internal ConstructorInfo numericUnaryConstructor {
  377.             get { return Globals.TypeRefs.numericUnaryConstructor; }
  378.         }
  379.         static internal MethodInfo evaluateUnaryMethod {
  380.             get { return Globals.TypeRefs.evaluateUnaryMethod; }
  381.         }
  382.         static internal MethodInfo constructObjectMethod {
  383.             get { return Globals.TypeRefs.constructObjectMethod; }
  384.         }
  385.         static internal MethodInfo jScriptPackageMethod {
  386.             get { return Globals.TypeRefs.jScriptPackageMethod; }
  387.         }
  388.         static internal ConstructorInfo plusConstructor {
  389.             get { return Globals.TypeRefs.plusConstructor; }
  390.         }
  391.         static internal MethodInfo plusDoOpMethod {
  392.             get { return Globals.TypeRefs.plusDoOpMethod; }
  393.         }
  394.         static internal MethodInfo evaluatePlusMethod {
  395.             get { return Globals.TypeRefs.evaluatePlusMethod; }
  396.         }
  397.         static internal ConstructorInfo postOrPrefixConstructor {
  398.             get { return Globals.TypeRefs.postOrPrefixConstructor; }
  399.         }
  400.         static internal MethodInfo evaluatePostOrPrefixOperatorMethod {
  401.             get { return Globals.TypeRefs.evaluatePostOrPrefixOperatorMethod; }
  402.         }
  403.         static internal ConstructorInfo referenceAttributeConstructor {
  404.             get { return Globals.TypeRefs.referenceAttributeConstructor; }
  405.         }
  406.         static internal MethodInfo regExpConstructMethod {
  407.             get { return Globals.TypeRefs.regExpConstructMethod; }
  408.         }
  409.         static internal ConstructorInfo relationalConstructor {
  410.             get { return Globals.TypeRefs.relationalConstructor; }
  411.         }
  412.         static internal MethodInfo evaluateRelationalMethod {
  413.             get { return Globals.TypeRefs.evaluateRelationalMethod; }
  414.         }
  415.         static internal MethodInfo jScriptCompareMethod {
  416.             get { return Globals.TypeRefs.jScriptCompareMethod; }
  417.         }
  418.         static internal ConstructorInfo returnOutOfFinallyConstructor {
  419.             get { return Globals.TypeRefs.returnOutOfFinallyConstructor; }
  420.         }
  421.         static internal MethodInfo doubleToInt64 {
  422.             get { return Globals.TypeRefs.doubleToInt64; }
  423.         }
  424.         static internal MethodInfo uncheckedDecimalToInt64Method {
  425.             get { return Globals.TypeRefs.uncheckedDecimalToInt64Method; }
  426.         }
  427.         static internal FieldInfo engineField {
  428.             get { return Globals.TypeRefs.engineField; }
  429.         }
  430.         static internal MethodInfo getParentMethod {
  431.             get { return Globals.TypeRefs.getParentMethod; }
  432.         }
  433.         static internal MethodInfo writeMethod {
  434.             get { return Globals.TypeRefs.writeMethod; }
  435.         }
  436.         static internal MethodInfo writeLineMethod {
  437.             get { return Globals.TypeRefs.writeLineMethod; }
  438.         }
  439.         static internal ConstructorInfo hashtableCtor {
  440.             get { return Globals.TypeRefs.hashtableCtor; }
  441.         }
  442.         static internal MethodInfo hashtableGetItem {
  443.             get { return Globals.TypeRefs.hashtableGetItem; }
  444.         }
  445.         static internal MethodInfo hashTableGetEnumerator {
  446.             get { return Globals.TypeRefs.hashTableGetEnumerator; }
  447.         }
  448.         static internal MethodInfo hashtableRemove {
  449.             get { return Globals.TypeRefs.hashtableRemove; }
  450.         }
  451.         static internal MethodInfo hashtableSetItem {
  452.             get { return Globals.TypeRefs.hashtableSetItem; }
  453.         }
  454.         static internal FieldInfo closureInstanceField {
  455.             get { return Globals.TypeRefs.closureInstanceField; }
  456.         }
  457.         static internal FieldInfo localVarsField {
  458.             get { return Globals.TypeRefs.localVarsField; }
  459.         }
  460.         static internal MethodInfo pushStackFrameForMethod {
  461.             get { return Globals.TypeRefs.pushStackFrameForMethod; }
  462.         }
  463.         static internal MethodInfo pushStackFrameForStaticMethod {
  464.             get { return Globals.TypeRefs.pushStackFrameForStaticMethod; }
  465.         }
  466.         static internal MethodInfo jScriptStrictEqualsMethod {
  467.             get { return Globals.TypeRefs.jScriptStrictEqualsMethod; }
  468.         }
  469.         static internal MethodInfo jScriptThrowMethod {
  470.             get { return Globals.TypeRefs.jScriptThrowMethod; }
  471.         }
  472.         static internal MethodInfo jScriptExceptionValueMethod {
  473.             get { return Globals.TypeRefs.jScriptExceptionValueMethod; }
  474.         }
  475.         static internal MethodInfo jScriptTypeofMethod {
  476.             get { return Globals.TypeRefs.jScriptTypeofMethod; }
  477.         }
  478.         static internal ConstructorInfo vsaEngineConstructor {
  479.             get { return Globals.TypeRefs.vsaEngineConstructor; }
  480.         }
  481.         static internal MethodInfo createVsaEngine {
  482.             get { return Globals.TypeRefs.createVsaEngine; }
  483.         }
  484.         static internal MethodInfo createVsaEngineWithType {
  485.             get { return Globals.TypeRefs.createVsaEngineWithType; }
  486.         }
  487.         static internal MethodInfo getOriginalArrayConstructorMethod {
  488.             get { return Globals.TypeRefs.getOriginalArrayConstructorMethod; }
  489.         }
  490.         static internal MethodInfo getOriginalObjectConstructorMethod {
  491.             get { return Globals.TypeRefs.getOriginalObjectConstructorMethod; }
  492.         }
  493.         static internal MethodInfo getOriginalRegExpConstructorMethod {
  494.             get { return Globals.TypeRefs.getOriginalRegExpConstructorMethod; }
  495.         }
  496.         static internal MethodInfo popScriptObjectMethod {
  497.             get { return Globals.TypeRefs.popScriptObjectMethod; }
  498.         }
  499.         static internal MethodInfo pushScriptObjectMethod {
  500.             get { return Globals.TypeRefs.pushScriptObjectMethod; }
  501.         }
  502.         static internal MethodInfo scriptObjectStackTopMethod {
  503.             get { return Globals.TypeRefs.scriptObjectStackTopMethod; }
  504.         }
  505.         static internal MethodInfo getLenientGlobalObjectMethod {
  506.             get { return Globals.TypeRefs.getLenientGlobalObjectMethod; }
  507.         }
  508.         static internal MethodInfo jScriptWithMethod {
  509.             get { return Globals.TypeRefs.jScriptWithMethod; }
  510.         }
  511.        
  512.         static internal ConstructorInfo clsCompliantAttributeCtor {
  513.             get { return Globals.TypeRefs.clsCompliantAttributeCtor; }
  514.         }
  515.         static internal MethodInfo getEnumeratorMethod {
  516.             get { return Globals.TypeRefs.getEnumeratorMethod; }
  517.         }
  518.         static internal MethodInfo moveNextMethod {
  519.             get { return Globals.TypeRefs.moveNextMethod; }
  520.         }
  521.         static internal MethodInfo getCurrentMethod {
  522.             get { return Globals.TypeRefs.getCurrentMethod; }
  523.         }
  524.         static internal ConstructorInfo contextStaticAttributeCtor {
  525.             get { return Globals.TypeRefs.contextStaticAttributeCtor; }
  526.         }
  527.         static internal MethodInfo changeTypeMethod {
  528.             get { return Globals.TypeRefs.changeTypeMethod; }
  529.         }
  530.         static internal MethodInfo convertCharToStringMethod {
  531.             get { return Globals.TypeRefs.convertCharToStringMethod; }
  532.         }
  533.         static internal ConstructorInfo dateTimeConstructor {
  534.             get { return Globals.TypeRefs.dateTimeConstructor; }
  535.         }
  536.         static internal MethodInfo dateTimeToStringMethod {
  537.             get { return Globals.TypeRefs.dateTimeToStringMethod; }
  538.         }
  539.         static internal MethodInfo dateTimeToInt64Method {
  540.             get { return Globals.TypeRefs.dateTimeToInt64Method; }
  541.         }
  542.         static internal ConstructorInfo decimalConstructor {
  543.             get { return Globals.TypeRefs.decimalConstructor; }
  544.         }
  545.         static internal FieldInfo decimalZeroField {
  546.             get { return Globals.TypeRefs.decimalZeroField; }
  547.         }
  548.         static internal MethodInfo decimalCompare {
  549.             get { return Globals.TypeRefs.decimalCompare; }
  550.         }
  551.         static internal MethodInfo doubleToDecimalMethod {
  552.             get { return Globals.TypeRefs.doubleToDecimalMethod; }
  553.         }
  554.         static internal MethodInfo int32ToDecimalMethod {
  555.             get { return Globals.TypeRefs.int32ToDecimalMethod; }
  556.         }
  557.         static internal MethodInfo int64ToDecimalMethod {
  558.             get { return Globals.TypeRefs.int64ToDecimalMethod; }
  559.         }
  560.         static internal MethodInfo uint32ToDecimalMethod {
  561.             get { return Globals.TypeRefs.uint32ToDecimalMethod; }
  562.         }
  563.         static internal MethodInfo uint64ToDecimalMethod {
  564.             get { return Globals.TypeRefs.uint64ToDecimalMethod; }
  565.         }
  566.         static internal MethodInfo decimalToDoubleMethod {
  567.             get { return Globals.TypeRefs.decimalToDoubleMethod; }
  568.         }
  569.         static internal MethodInfo decimalToInt32Method {
  570.             get { return Globals.TypeRefs.decimalToInt32Method; }
  571.         }
  572.         static internal MethodInfo decimalToInt64Method {
  573.             get { return Globals.TypeRefs.decimalToInt64Method; }
  574.         }
  575.         static internal MethodInfo decimalToStringMethod {
  576.             get { return Globals.TypeRefs.decimalToStringMethod; }
  577.         }
  578.         static internal MethodInfo decimalToUInt32Method {
  579.             get { return Globals.TypeRefs.decimalToUInt32Method; }
  580.         }
  581.         static internal MethodInfo decimalToUInt64Method {
  582.             get { return Globals.TypeRefs.decimalToUInt64Method; }
  583.         }
  584.         static internal MethodInfo debugBreak {
  585.             get { return Globals.TypeRefs.debugBreak; }
  586.         }
  587.         static internal ConstructorInfo debuggerHiddenAttributeCtor {
  588.             get { return Globals.TypeRefs.debuggerHiddenAttributeCtor; }
  589.         }
  590.         static internal ConstructorInfo debuggerStepThroughAttributeCtor {
  591.             get { return Globals.TypeRefs.debuggerStepThroughAttributeCtor; }
  592.         }
  593.         static internal MethodInfo int32ToStringMethod {
  594.             get { return Globals.TypeRefs.int32ToStringMethod; }
  595.         }
  596.         static internal MethodInfo int64ToStringMethod {
  597.             get { return Globals.TypeRefs.int64ToStringMethod; }
  598.         }
  599.         static internal MethodInfo equalsMethod {
  600.             get { return Globals.TypeRefs.equalsMethod; }
  601.         }
  602.         static internal ConstructorInfo defaultMemberAttributeCtor {
  603.             get { return Globals.TypeRefs.defaultMemberAttributeCtor; }
  604.         }
  605.         static internal MethodInfo getFieldValueMethod {
  606.             get { return Globals.TypeRefs.getFieldValueMethod; }
  607.         }
  608.         static internal MethodInfo setFieldValueMethod {
  609.             get { return Globals.TypeRefs.setFieldValueMethod; }
  610.         }
  611.         static internal FieldInfo systemReflectionMissingField {
  612.             get { return Globals.TypeRefs.systemReflectionMissingField; }
  613.         }
  614.         static internal ConstructorInfo compilerGlobalScopeAttributeCtor {
  615.             get { return Globals.TypeRefs.compilerGlobalScopeAttributeCtor; }
  616.         }
  617.         static internal MethodInfo stringConcatArrMethod {
  618.             get { return Globals.TypeRefs.stringConcatArrMethod; }
  619.         }
  620.         static internal MethodInfo stringConcat4Method {
  621.             get { return Globals.TypeRefs.stringConcat4Method; }
  622.         }
  623.         static internal MethodInfo stringConcat3Method {
  624.             get { return Globals.TypeRefs.stringConcat3Method; }
  625.         }
  626.         static internal MethodInfo stringConcat2Method {
  627.             get { return Globals.TypeRefs.stringConcat2Method; }
  628.         }
  629.         static internal MethodInfo stringEqualsMethod {
  630.             get { return Globals.TypeRefs.stringEqualsMethod; }
  631.         }
  632.         static internal MethodInfo stringLengthMethod {
  633.             get { return Globals.TypeRefs.stringLengthMethod; }
  634.         }
  635.         static internal MethodInfo getMethodMethod {
  636.             get { return Globals.TypeRefs.getMethodMethod; }
  637.         }
  638.         static internal MethodInfo getTypeMethod {
  639.             get { return Globals.TypeRefs.getTypeMethod; }
  640.         }
  641.         static internal MethodInfo getTypeFromHandleMethod {
  642.             get { return Globals.TypeRefs.getTypeFromHandleMethod; }
  643.         }
  644.         static internal MethodInfo uint32ToStringMethod {
  645.             get { return Globals.TypeRefs.uint32ToStringMethod; }
  646.         }
  647.         static internal MethodInfo uint64ToStringMethod {
  648.             get { return Globals.TypeRefs.uint64ToStringMethod; }
  649.         }
  650.     }
  651. }

Developer Fusion