2019-03-27 15:50:05 +01:00
|
|
|
!function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r(require("binaryen")):"function"==typeof define&&define.amd?define(["binaryen"],r):"object"==typeof exports?exports.assemblyscript=r(require("binaryen")):e.assemblyscript=r(e.binaryen)}("undefined"!=typeof self?self:this,function(e){return function(e){var r={};function t(n){if(r[n])return r[n].exports;var i=r[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,t),i.l=!0,i.exports}return t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:n})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var i in e)t.d(n,i,function(r){return e[r]}.bind(null,i));return n},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},t.p="",t(t.s=16)}([function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),function(e){e[e.NONE=0]="NONE",e[e.IMPORT=1]="IMPORT",e[e.EXPORT=2]="EXPORT",e[e.DECLARE=4]="DECLARE",e[e.CONST=8]="CONST",e[e.LET=16]="LET",e[e.STATIC=32]="STATIC",e[e.READONLY=64]="READONLY",e[e.ABSTRACT=128]="ABSTRACT",e[e.PUBLIC=256]="PUBLIC",e[e.PRIVATE=512]="PRIVATE",e[e.PROTECTED=1024]="PROTECTED",e[e.GET=2048]="GET",e[e.SET=4096]="SET",e[e.DEFINITE_ASSIGNMENT=8192]="DEFINITE_ASSIGNMENT",e[e.AMBIENT=16384]="AMBIENT",e[e.GENERIC=32768]="GENERIC",e[e.GENERIC_CONTEXT=65536]="GENERIC_CONTEXT",e[e.INSTANCE=131072]="INSTANCE",e[e.CONSTRUCTOR=262144]="CONSTRUCTOR",e[e.MODULE_EXPORT=524288]="MODULE_EXPORT",e[e.MODULE_IMPORT=1048576]="MODULE_IMPORT",e[e.RESOLVED=2097152]="RESOLVED",e[e.COMPILED=4194304]="COMPILED",e[e.INLINED=8388608]="INLINED",e[e.SCOPED=16777216]="SCOPED",e[e.TRAMPOLINE=33554432]="TRAMPOLINE",e[e.VIRTUAL=67108864]="VIRTUAL",e[e.MAIN=134217728]="MAIN",e[e.QUOTED=268435456]="QUOTED"}(r.CommonFlags||(r.CommonFlags={})),r.PATH_DELIMITER="/",r.PARENT_SUBST="..",r.GETTER_PREFIX="get:",r.SETTER_PREFIX="set:",r.INSTANCE_DELIMITER="#",r.STATIC_DELIMITER=".",r.INNER_DELIMITER="~",r.LIBRARY_SUBST="~lib",r.LIBRARY_PREFIX=r.LIBRARY_SUBST+r.PATH_DELIMITER,r.INDEX_SUFFIX=r.PATH_DELIMITER+"index",function(e){e.EMPTY="",e.i8="i8",e.i16="i16",e.i32="i32",e.i64="i64",e.isize="isize",e.u8="u8",e.u16="u16",e.u32="u32",e.u64="u64",e.usize="usize",e.bool="bool",e.f32="f32",e.f64="f64",e.v128="v128",e.i8x16="i8x16",e.u8x16="u8x16",e.i16x8="i16x8",e.u16x8="u16x8",e.i32x4="i32x4",e.u32x4="u32x4",e.i64x2="i64x2",e.u64x2="u64x2",e.f32x4="f32x4",e.f64x2="f64x2",e.void_="void",e.number="number",e.boolean="boolean",e.string="string",e.native="native",e.null_="null",e.true_="true",e.false_="false",e.this_="this",e.super_="super",e.constructor="constructor"}(r.CommonSymbols||(r.CommonSymbols={})),function(e){e.ASC_TARGET="ASC_TARGET",e.ASC_NO_TREESHAKING="ASC_NO_TREESHAKING",e.ASC_NO_ASSERT="ASC_NO_ASSERT",e.ASC_MEMORY_BASE="ASC_MEMORY_BASE",e.ASC_OPTIMIZE_LEVEL="ASC_OPTIMIZE_LEVEL",e.ASC_SHRINK_LEVEL="ASC_SHRINK_LEVEL",e.ASC_FEATURE_MUTABLE_GLOBAL="ASC_FEATURE_MUTABLE_GLOBAL",e.ASC_FEATURE_SIGN_EXTENSION="ASC_FEATURE_SIGN_EXTENSION",e.ASC_FEATURE_BULK_MEMORY="ASC_FEATURE_BULK_MEMORY",e.ASC_FEATURE_SIMD="ASC_FEATURE_SIMD",e.ASC_FEATURE_THREADS="ASC_FEATURE_THREADS",e.I8="I8",e.I16="I16",e.I32="I32",e.I64="I64",e.Isize="Isize",e.U8="U8",e.U16="U16",e.U32="U32",e.U64="U64",e.Usize="Usize",e.Bool="Bool",e.F32="F32",e.F64="F64",e.V128="V128",e.String="String",e.Array="Array",e.ArrayBuffer="ArrayBuffer",e.Math="Math",e.Mathf="Mathf",e.memory="memory",e.allocate="allocate",e.abort="abort",e.main="main",e.length="length",e.byteLength="byteLength",e.pow="pow",e.mod="mod"}(r.LibrarySymbols||(r.LibrarySymbols={}))},function(e,r,t){"use strict";function
|
|
|
|
return this.currentType=i.returnType,this.compileCallDirect(n,[],r,o)}return this.currentType=i.returnType,this.compileCallDirect(n,[],r,0)}return this.error(l.DiagnosticCode.Property_0_does_not_exist_on_type_1,r.range,e.name,e.parent.toString()),this.module.createUnreachable()},r.prototype.compileTernaryExpression=function(e,r){var t=e.ifThen,n=e.ifElse,i=this.currentFlow,a=this.makeIsTrueish(this.compileExpressionRetainType(e.condition,T.Type.bool,0),this.currentType),s=this.module.precomputeExpression(a);if(p.getExpressionId(s)==p.ExpressionId.Const&&p.getExpressionType(s)==p.NativeType.I32)return p.getConstValueI32(s)?this.compileExpressionRetainType(t,r,0):this.compileExpressionRetainType(n,r,0);a=this.makeIsTrueish(this.compileExpressionRetainType(e.condition,T.Type.bool,0),this.currentType);var o=i.fork();this.currentFlow=o;var c=this.compileExpressionRetainType(t,r,0),u=this.currentType;o.freeScopedLocals();var _=i.fork();this.currentFlow=_;var h=this.compileExpressionRetainType(n,r,0),d=this.currentType;_.freeScopedLocals(),this.currentFlow=i,i.inheritMutual(o,_);var y=T.Type.commonDenominator(u,d,!1);return y?(c=this.convertExpression(c,u,y,1,0,t),h=this.convertExpression(h,d,y,1,0,n),this.currentType=y,this.module.createIf(a,c,h)):(this.error(l.DiagnosticCode.Type_0_is_not_assignable_to_type_1,e.range,u.toString(),d.toString()),this.currentType=r,this.module.createUnreachable())},r.prototype.compileUnaryPostfixExpression=function(e,r){var t=this.module,n=this.currentFlow,i=this.compileExpression(e.operand,r==T.Type.void?T.Type.i32:r,0,0);if(p.getExpressionId(i)==p.ExpressionId.Unreachable)return i;var a,s=this.currentType,o=null;switch(r!=T.Type.void&&(o=n.getTempLocal(s,!1),i=t.createTeeLocal(o.index,i)),e.operator){case y.Token.PLUS_PLUS:switch(s.kind){case 0:case 1:case 2:case 5:case 6:case 7:case 10:a=t.createBinary(p.BinaryOp.AddI32,i,t.createI32(1));break;case 9:if(this.currentType.is(256)){if(u=this.currentType.classReference)if(h=u.lookupOverload(_.OperatorKind.POSTFIX_INC)){a=this.compileUnaryOverload(h,e.operand,i,e);break}return this.error(l.DiagnosticCode.Operation_not_supported,e.range),t.createUnreachable()}case 4:var c=this.options;a=t.createBinary(c.isWasm64?p.BinaryOp.AddI64:p.BinaryOp.AddI32,i,s.toNativeOne(t));break;case 3:case 8:a=t.createBinary(p.BinaryOp.AddI64,i,t.createI64(1));break;case 11:a=t.createBinary(p.BinaryOp.AddF32,i,t.createF32(1));break;case 12:a=t.createBinary(p.BinaryOp.AddF64,i,t.createF64(1));break;default:return assert(!1),t.createUnreachable()}break;case y.Token.MINUS_MINUS:switch(s.kind){case 0:case 1:case 2:case 5:case 6:case 7:case 10:a=t.createBinary(p.BinaryOp.SubI32,i,t.createI32(1));break;case 9:if(this.currentType.is(256)){var u,h;if(u=this.currentType.classReference)if(h=u.lookupOverload(_.OperatorKind.POSTFIX_DEC)){a=this.compileUnaryOverload(h,e.operand,i,e);break}return this.error(l.DiagnosticCode.Operation_not_supported,e.range),t.createUnreachable()}case 4:c=this.options;a=t.createBinary(c.isWasm64?p.BinaryOp.SubI64:p.BinaryOp.SubI32,i,s.toNativeOne(t));break;case 3:case 8:a=t.createBinary(p.BinaryOp.SubI64,i,t.createI64(1));break;case 11:a=t.createBinary(p.BinaryOp.SubF32,i,t.createF32(1));break;case 12:a=t.createBinary(p.BinaryOp.SubF64,i,t.createF64(1));break;default:return assert(!1),t.createUnreachable()}break;default:return assert(!1),t.createUnreachable()}if(!o)return this.currentType=T.Type.void,this.compileAssignmentWithValue(e.operand,a,!1);var d=this.compileAssignmentWithValue(e.operand,a,!1);this.currentType=o.type,n.freeTempLocal(o);var m=o.type.toNativeType();return t.createBlock(null,[d,t.createGetLocal(o.index,m)],m)},r.prototype.compileUnaryPrefixExpression=function(e,r){var t,n=this.module,i=!1;switch(e.operator){case y.Token.PLUS:if(t=this.compileExpression(e.operand,r==T.Type.void?T.Type.i32:r,0,0),this.currentType.is(256)){if(a=this.currentType.classReference)if(s=a.lookupOverload(_.OperatorKind.PLUS)){t=this.compileUnaryOverload(s,e.operand,t,e);break}return this.error(l.DiagnosticCode.Operation_not_supported,e.range),n.createUnreac
|