实例介绍
Jurassic是ECMAScript语言和运行时的实现。它旨在为.NET提供性能最佳、最符合标准的JavaScript实现。
特点
- 支持所有ECMAScript 3和ECMAScript 5功能,包括ES5严格模式
- 经过全面测试 - 通过了五千多个单元测试(超过三万个断言)
- 简单而强大的API
- 将JavaScript编译为.NET字节码(CIL);不是解释器
- 部署为单个.NET程序集(没有本机代码)
- 在Visual Studio中具有集成调试的基本支持
- 使用轻量级代码生成,因此生成的代码完全由垃圾收集
- 在.NET 3.5、.NET 4和Silverlight上经过测试
【实例截图】
文件清单
└── jurassic-e6168a9eb0f715f845df5e779ed3d94a613445b7
├── Attribute Code Generation
│ ├── Attribute Code Generation.csproj
│ └── Program.cs
├── Benchmarker
│ ├── Benchmarker.csproj
│ ├── Files
│ │ ├── sunspider-0.9.1
│ │ │ ├── 3d-cube.js
│ │ │ ├── 3d-morph.js
│ │ │ ├── 3d-raytrace.js
│ │ │ ├── access-binary-trees.js
│ │ │ ├── access-fannkuch.js
│ │ │ ├── access-nbody.js
│ │ │ ├── access-nsieve.js
│ │ │ ├── bitops-3bit-bits-in-byte.js
│ │ │ ├── bitops-bits-in-byte.js
│ │ │ ├── bitops-bitwise-and.js
│ │ │ ├── bitops-nsieve-bits.js
│ │ │ ├── controlflow-recursive.js
│ │ │ ├── crypto-aes.js
│ │ │ ├── crypto-md5.js
│ │ │ ├── crypto-sha1.js
│ │ │ ├── date-format-tofte.js
│ │ │ ├── date-format-xparb.js
│ │ │ ├── math-cordic.js
│ │ │ ├── math-partial-sums.js
│ │ │ ├── math-spectral-norm.js
│ │ │ ├── regexp-dna.js
│ │ │ ├── string-base64.js
│ │ │ ├── string-fasta.js
│ │ │ ├── string-tagcloud.js
│ │ │ ├── string-unpack-code.js
│ │ │ └── string-validate-input.js
│ │ ├── ubench
│ │ │ ├── function-closure.js
│ │ │ ├── function-correct-args.js
│ │ │ ├── function-empty.js
│ │ │ ├── function-excess-args.js
│ │ │ ├── function-missing-args.js
│ │ │ ├── function-sum.js
│ │ │ ├── loop-empty.js
│ │ │ ├── loop-empty-resolve.js
│ │ │ └── loop-sum.js
│ │ └── v8
│ │ ├── crypto.js
│ │ ├── deltablue.js
│ │ ├── earley-boyer.js
│ │ ├── raytrace.js
│ │ ├── README.txt
│ │ ├── regexp.js
│ │ ├── richards.js
│ │ └── splay.js
│ └── Program.cs
├── Documentation
│ ├── E262-3.doc
│ ├── ECMA-262 (ECMAScript 5.1).pdf
│ ├── ECMA-262 (ECMAScript 6).pdf
│ └── ECMA-335 (CLI).pdf
├── Jurassic
│ ├── Compiler
│ │ ├── Binders
│ │ │ ├── Binder.cs
│ │ │ ├── BinderMethod.cs
│ │ │ ├── BinderUtilities.cs
│ │ │ ├── ClrBinder.cs
│ │ │ ├── FieldBinders.cs
│ │ │ ├── JSBinder.cs
│ │ │ ├── JSBinderMethod.cs
│ │ │ └── MethodBinder.cs
│ │ ├── Debugging
│ │ │ ├── SourceCodePosition.cs
│ │ │ └── SourceCodeSpan.cs
│ │ ├── Emit
│ │ │ ├── EmitConversion.cs
│ │ │ ├── EmitHelpers.cs
│ │ │ ├── ILGenerator
│ │ │ │ ├── DynamicILGenerator.cs
│ │ │ │ ├── ILGenerator.cs
│ │ │ │ ├── ILLabel.cs
│ │ │ │ ├── ILLocalVariable.cs
│ │ │ │ ├── LoggingILGenerator.cs
│ │ │ │ ├── ReflectionEmitILGenerator.cs
│ │ │ │ └── VerifyingILGenerator.cs
│ │ │ ├── LongJumpException.cs
│ │ │ ├── MethodOptimizationHints.cs
│ │ │ ├── OptimizationInfo.cs
│ │ │ ├── Optimizations.txt
│ │ │ ├── PrimitiveType.cs
│ │ │ ├── PrimitiveTypeUtilities.cs
│ │ │ └── ReflectionHelpers.cs
│ │ ├── ExecutionContext
│ │ │ ├── ExecutionContext.cs
│ │ │ └── RuntimeScope.cs
│ │ ├── Expressions
│ │ │ ├── ArrayLiteralExpression.cs
│ │ │ ├── AssignmentExpression.cs
│ │ │ ├── BinaryExpression.cs
│ │ │ ├── ClassExpression.cs
│ │ │ ├── Expression.cs
│ │ │ ├── FunctionCallExpression.cs
│ │ │ ├── FunctionExpression.cs
│ │ │ ├── GroupingExpression.cs
│ │ │ ├── IReferenceExpression.cs
│ │ │ ├── ListExpression.cs
│ │ │ ├── LiteralExpression.cs
│ │ │ ├── MemberAccessExpression.cs
│ │ │ ├── NameExpression.cs
│ │ │ ├── NewExpression.cs
│ │ │ ├── NewTargetExpression.cs
│ │ │ ├── ObjectLiteralExpression.cs
│ │ │ ├── OperatorExpression.cs
│ │ │ ├── SuperExpression.cs
│ │ │ ├── TemplateLiteralExpression.cs
│ │ │ ├── TernaryExpression.cs
│ │ │ ├── ThisExpression.cs
│ │ │ └── UnaryExpression.cs
│ │ ├── Lexer
│ │ │ ├── IdentifierToken.cs
│ │ │ ├── KeywordToken.cs
│ │ │ ├── Lexer.cs
│ │ │ ├── LiteralToken.cs
│ │ │ ├── PunctuatorToken.cs
│ │ │ ├── RegularExpressionLiteral.cs
│ │ │ ├── StringLiteralToken.cs
│ │ │ ├── TemplateLiteralToken.cs
│ │ │ └── Token.cs
│ │ ├── MethodGenerator
│ │ │ ├── CodeContext.cs
│ │ │ ├── CompilerOptions.cs
│ │ │ ├── FunctionMethodGenerator.cs
│ │ │ ├── GeneratedMethod.cs
│ │ │ ├── GlobalOrEvalMethodGenerator.cs
│ │ │ └── MethodGenerator.cs
│ │ ├── Parser
│ │ │ ├── AstNode.cs
│ │ │ ├── Operator.cs
│ │ │ ├── Parser.cs
│ │ │ ├── PropertyDeclaration.cs
│ │ │ ├── PropertyName.cs
│ │ │ ├── Scope.cs
│ │ │ └── ScopeType.cs
│ │ ├── Statements
│ │ │ ├── BlockStatement.cs
│ │ │ ├── BreakStatement.cs
│ │ │ ├── ContinueStatement.cs
│ │ │ ├── DebuggerStatement.cs
│ │ │ ├── DoWhileStatement.cs
│ │ │ ├── EmptyStatement.cs
│ │ │ ├── ExpressionStatement.cs
│ │ │ ├── ForInStatement.cs
│ │ │ ├── ForOfStatement.cs
│ │ │ ├── ForStatement.cs
│ │ │ ├── IfStatement.cs
│ │ │ ├── LoopStatement.cs
│ │ │ ├── ReturnStatement.cs
│ │ │ ├── Statement.cs
│ │ │ ├── SwitchStatement.cs
│ │ │ ├── ThrowStatement.cs
│ │ │ ├── TryCatchFinallyStatement.cs
│ │ │ ├── VarLetOrConstStatement.cs
│ │ │ ├── WhileStatement.cs
│ │ │ └── WithStatement.cs
│ │ └── SyntaxErrorException.cs
│ ├── Core
│ │ ├── BigInteger.cs
│ │ ├── CompatibilityMode.cs
│ │ ├── CompiledEval.cs
│ │ ├── CompiledScript.cs
│ │ ├── ConcatenatedString.cs
│ │ ├── JavaScriptException.cs
│ │ ├── Null.cs
│ │ ├── NumberFormatter.cs
│ │ ├── NumberParser.cs
│ │ ├── ScriptEngine.cs
│ │ ├── ScriptSource
│ │ │ ├── FileScriptSource.cs
│ │ │ ├── ScriptSource.cs
│ │ │ └── StringScriptSource.cs
│ │ ├── StackFrameTransformContext.cs
│ │ ├── StringHelpers.cs
│ │ ├── TypeComparer.cs
│ │ ├── TypeConverter.cs
│ │ ├── TypeUtilities.cs
│ │ └── Undefined.cs
│ ├── Jurassic.csproj
│ ├── Library
│ │ ├── Array
│ │ │ ├── ArrayAdapter.cs
│ │ │ ├── ArrayConstructor.cs
│ │ │ ├── ArrayConstructor.g.cs
│ │ │ ├── ArrayInstance.cs
│ │ │ ├── ArrayInstance.g.cs
│ │ │ ├── ArrayIterator.cs
│ │ │ ├── ArrayIterator.g.cs
│ │ │ └── SparseArray.cs
│ │ ├── Boolean
│ │ │ ├── BooleanConstructor.cs
│ │ │ ├── BooleanConstructor.g.cs
│ │ │ ├── BooleanInstance.cs
│ │ │ └── BooleanInstance.g.cs
│ │ ├── ClrWrapper
│ │ │ ├── ClrInstanceTypeWrapper.cs
│ │ │ ├── ClrInstanceWrapper.cs
│ │ │ └── ClrStaticTypeWrapper.cs
│ │ ├── Date
│ │ │ ├── DateConstructor.cs
│ │ │ ├── DateConstructor.g.cs
│ │ │ ├── DateInstance.cs
│ │ │ ├── DateInstance.g.cs
│ │ │ └── DateParser.cs
│ │ ├── Error
│ │ │ ├── ErrorConstructor.cs
│ │ │ ├── ErrorConstructor.g.cs
│ │ │ ├── ErrorInstance.cs
│ │ │ ├── ErrorInstance.g.cs
│ │ │ └── ErrorType.cs
│ │ ├── FirebugConsole
│ │ │ ├── FirebugConsole.cs
│ │ │ ├── FirebugConsole.g.cs
│ │ │ ├── IFirebugConsoleOutput.cs
│ │ │ └── StandardConsoleOutput.cs
│ │ ├── Function
│ │ │ ├── ArgumentsInstance.cs
│ │ │ ├── ArgumentsInstance.g.cs
│ │ │ ├── BoundFunction.cs
│ │ │ ├── ClassFunction.cs
│ │ │ ├── ClrFunction.cs
│ │ │ ├── ClrStubFunction.cs
│ │ │ ├── FunctionConstructor.cs
│ │ │ ├── FunctionConstructor.g.cs
│ │ │ ├── FunctionInstance.cs
│ │ │ ├── FunctionInstance.g.cs
│ │ │ ├── ThrowTypeErrorFunction.cs
│ │ │ └── UserDefinedFunction.cs
│ │ ├── GlobalObject.cs
│ │ ├── GlobalObject.g.cs
│ │ ├── Iterator.cs
│ │ ├── Iterator.g.cs
│ │ ├── JSON
│ │ │ ├── JSONLexer.cs
│ │ │ ├── JSONObject.cs
│ │ │ ├── JSONObject.g.cs
│ │ │ ├── JSONParser.cs
│ │ │ └── JSONSerializer.cs
│ │ ├── Map
│ │ │ ├── MapConstructor.cs
│ │ │ ├── MapConstructor.g.cs
│ │ │ ├── MapInstance.cs
│ │ │ ├── MapInstance.g.cs
│ │ │ ├── MapIterator.cs
│ │ │ └── MapIterator.g.cs
│ │ ├── MathObject.cs
│ │ ├── MathObject.g.cs
│ │ ├── Number
│ │ │ ├── NumberConstructor.cs
│ │ │ ├── NumberConstructor.g.cs
│ │ │ ├── NumberInstance.cs
│ │ │ └── NumberInstance.g.cs
│ │ ├── Object
│ │ │ ├── Attributes.cs
│ │ │ ├── HiddenClassSchema.cs
│ │ │ ├── JSFunctionFlags.cs
│ │ │ ├── ObjectConstructor.cs
│ │ │ ├── ObjectConstructor.g.cs
│ │ │ ├── ObjectInstance.cs
│ │ │ ├── ObjectInstance.g.cs
│ │ │ ├── PropertyAccessorValue.cs
│ │ │ ├── PropertyAttributes.cs
│ │ │ ├── PropertyDescriptor.cs
│ │ │ ├── PropertyNameAndValue.cs
│ │ │ ├── PropertyReference.cs
│ │ │ └── SchemaProperty.cs
│ │ ├── Promise
│ │ │ ├── PromiseConstructor.cs
│ │ │ ├── PromiseConstructor.g.cs
│ │ │ ├── PromiseInstance.cs
│ │ │ └── PromiseInstance.g.cs
│ │ ├── Proxy
│ │ │ ├── IProxyInstance.cs
│ │ │ ├── ProxyConstructor.cs
│ │ │ ├── ProxyConstructor.g.cs
│ │ │ ├── ProxyFunction.cs
│ │ │ └── ProxyObject.cs
│ │ ├── Reflect
│ │ │ ├── Reflect.cs
│ │ │ └── Reflect.g.cs
│ │ ├── RegExp
│ │ │ ├── RegExpConstructor.cs
│ │ │ ├── RegExpConstructor.g.cs
│ │ │ ├── RegExpInstance.cs
│ │ │ └── RegExpInstance.g.cs
│ │ ├── Set
│ │ │ ├── SetConstructor.cs
│ │ │ ├── SetConstructor.g.cs
│ │ │ ├── SetInstance.cs
│ │ │ ├── SetInstance.g.cs
│ │ │ ├── SetIterator.cs
│ │ │ └── SetIterator.g.cs
│ │ ├── String
│ │ │ ├── StringConstructor.cs
│ │ │ ├── StringConstructor.g.cs
│ │ │ ├── StringInstance.cs
│ │ │ ├── StringInstance.g.cs
│ │ │ ├── StringIterator.cs
│ │ │ └── StringIterator.g.cs
│ │ ├── Symbol
│ │ │ ├── SymbolConstructor.cs
│ │ │ ├── SymbolConstructor.g.cs
│ │ │ ├── Symbol.cs
│ │ │ ├── SymbolInstance.cs
│ │ │ └── SymbolInstance.g.cs
│ │ ├── TypedArray
│ │ │ ├── ArrayBufferConstructor.cs
│ │ │ ├── ArrayBufferConstructor.g.cs
│ │ │ ├── ArrayBufferInstance.cs
│ │ │ ├── ArrayBufferInstance.g.cs
│ │ │ ├── DataViewConstructor.cs
│ │ │ ├── DataViewConstructor.g.cs
│ │ │ ├── DataViewInstance.cs
│ │ │ ├── DataViewInstance.g.cs
│ │ │ ├── TypedArrayConstructor.cs
│ │ │ ├── TypedArrayConstructor.g.cs
│ │ │ ├── TypedArrayInstance.cs
│ │ │ ├── TypedArrayInstance.g.cs
│ │ │ └── TypedArrayType.cs
│ │ ├── WeakMap
│ │ │ ├── WeakMapConstructor.cs
│ │ │ ├── WeakMapConstructor.g.cs
│ │ │ ├── WeakMapInstance.cs
│ │ │ └── WeakMapInstance.g.cs
│ │ └── WeakSet
│ │ ├── WeakSetConstructor.cs
│ │ ├── WeakSetConstructor.g.cs
│ │ ├── WeakSetInstance.cs
│ │ └── WeakSetInstance.g.cs
│ └── Properties
│ └── AssemblyInfo.cs
├── Jurassic.sln
├── LICENSE.txt
├── README.md
├── REPL
│ ├── Program.cs
│ └── REPL.csproj
├── Test Suite Runner
│ ├── Code
│ │ ├── PipeClient.cs
│ │ ├── PipeServer.cs
│ │ ├── Test.cs
│ │ ├── TestEventArgs.cs
│ │ ├── TestOutcome.cs
│ │ ├── TestSuite.cs
│ │ ├── WorkerProcessRequest.cs
│ │ └── WorkerProcessResponse.cs
│ ├── Kangax
│ │ ├── compat-table.json
│ │ ├── compat-table.txt
│ │ ├── global.js
│ │ └── KangaxTestSuite.cs
│ ├── Program.cs
│ ├── test262
│ │ ├── harness
│ │ │ ├── arrayContains.js
│ │ │ ├── assert.js
│ │ │ ├── assertRelativeDateMs.js
│ │ │ ├── atomicsHelper.js
│ │ │ ├── byteConversionValues.js
│ │ │ ├── compareArray.js
│ │ │ ├── dateConstants.js
│ │ │ ├── decimalToHexString.js
│ │ │ ├── detachArrayBuffer.js
│ │ │ ├── doneprintHandle.js
│ │ │ ├── fnGlobalObject.js
│ │ │ ├── nans.js
│ │ │ ├── nativeFunctionMatcher.js
│ │ │ ├── promiseHelper.js
│ │ │ ├── propertyHelper.js
│ │ │ ├── proxyTrapsHelper.js
│ │ │ ├── regExpUtils.js
│ │ │ ├── sta.js
│ │ │ ├── tcoHelper.js
│ │ │ ├── testAtomics.js
│ │ │ ├── testBuiltInObject.js
│ │ │ ├── testIntl.js
│ │ │ ├── testTypedArray.js
│ │ │ └── timer.js
│ │ ├── LICENSE.txt
│ │ └── test262-tests-20170825.zip
│ ├── Test Suite Files
│ │ ├── config
│ │ │ └── excludelist.xml
│ │ ├── harness
│ │ │ ├── cth.js
│ │ │ ├── Date_constants.js
│ │ │ ├── Date_library.js
│ │ │ ├── ed.js
│ │ │ ├── environment.js
│ │ │ ├── framework.js
│ │ │ ├── gs.js
│ │ │ ├── helper.js
│ │ │ ├── jquery-1.4.2.min.js
│ │ │ ├── jquery.base64.js
│ │ │ ├── jqueryprogressbar.js
│ │ │ ├── math_isequal.js
│ │ │ ├── math_precision.js
│ │ │ ├── numeric_conversion.js
│ │ │ ├── sections.js
│ │ │ ├── sta.js
│ │ │ └── sth.js
│ │ ├── ICSharpCode.SharpZipLib.dll
│ │ ├── LICENSE.txt
│ │ ├── README.txt
│ │ ├── Results 2012-06-25.txt
│ │ └── suite
│ │ └── 2012-05-18.zip
│ └── Test Suite Runner.csproj
└── Unit Tests
├── Compiler
│ ├── CodeGenTests.cs
│ ├── ExpressionTests.cs
│ ├── LexerTests.cs
│ ├── ParserTests.cs
│ ├── StatementTests.cs
│ └── TypeInferenceTests.cs
├── Core
│ ├── BigIntegerTests.cs
│ ├── DocumentationSamples.cs
│ ├── DynamicMetaObjectTests.cs
│ ├── JsPropertyTests.cs
│ ├── Sample Files
│ │ ├── execute1.js
│ │ └── globals1.js
│ ├── ScriptEngineTests.cs
│ ├── TypeComparerTests.cs
│ ├── TypeConverterTests.cs
│ └── TypeUtilitiesTests.cs
├── Library
│ ├── ArgumentsTests.cs
│ ├── ArrayBufferTests.cs
│ ├── ArrayTests.cs
│ ├── BooleanTests.cs
│ ├── DataViewTests.cs
│ ├── DateTests.cs
│ ├── ErrorTests.cs
│ ├── FunctionTests.cs
│ ├── GlobalTests.cs
│ ├── JSONTests.cs
│ ├── MapTests.cs
│ ├── MathTests.cs
│ ├── NumberTests.cs
│ ├── ObjectTests.cs
│ ├── PromiseTests.cs
│ ├── ProxyTests.cs
│ ├── ReflectTests.cs
│ ├── RegExpTests.cs
│ ├── SetTests.cs
│ ├── StringTests.cs
│ ├── SymbolTests.cs
│ ├── TypedArrayTests.cs
│ ├── WeakMapTests.cs
│ └── WeakSetTests.cs
├── Real-world
│ ├── Files
│ │ ├── bignumber.js
│ │ ├── coffee-script.js
│ │ ├── color-conversion.js
│ │ ├── levenshtein.js
│ │ ├── lzw.js
│ │ ├── md5.js
│ │ ├── rsa.js
│ │ ├── sha1.js
│ │ ├── sha256.js
│ │ ├── showdown.js
│ │ └── sprintf.js
│ └── RealWorldTests.cs
├── Unit Tests.csproj
└── Utils
├── TestBase.cs
└── TestingContext.cs
63 directories, 416 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论