Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
code / usr / share / code / natives_blob.bin
Size: Mime:
mirrors"t
(function(a,b){
"use strict";
var c;
var d=a.Array;
var e=a.isNaN;
var f=a.JSON.stringify;
var g;
var h;
var i;
var j=a.Math.min;
var k=b.ImportNow("promise_state_symbol");
var l=b.ImportNow("promise_result_symbol");
var m;
var n;
var o;
b.Import(function(p){
c=p.ErrorToString;
g=p.MakeError;
h=p.MapEntries;
i=p.MapIteratorNext;
m=p.SetIteratorNext;
n=p.SetValues;
o=p.SymbolToString;
});
var q={
UNDEFINED_TYPE:'undefined',
NULL_TYPE:'null',
BOOLEAN_TYPE:'boolean',
NUMBER_TYPE:'number',
STRING_TYPE:'string',
SYMBOL_TYPE:'symbol',
OBJECT_TYPE:'object',
FUNCTION_TYPE:'function',
REGEXP_TYPE:'regexp',
ERROR_TYPE:'error',
PROPERTY_TYPE:'property',
INTERNAL_PROPERTY_TYPE:'internalProperty',
FRAME_TYPE:'frame',
SCRIPT_TYPE:'script',
CONTEXT_TYPE:'context',
SCOPE_TYPE:'scope',
PROMISE_TYPE:'promise',
MAP_TYPE:'map',
SET_TYPE:'set',
ITERATOR_TYPE:'iterator',
GENERATOR_TYPE:'generator',
}
var r=0;
var s=-1;
var t=[];
var u=true;
function MirrorCacheIsEmpty(){
return r==0&&t.length==0;
}
function ToggleMirrorCache(v){
u=v;
ClearMirrorCache();
}
function ClearMirrorCache(v){
r=0;
t=[];
}
function ObjectIsPromise(v){
return(%_IsJSReceiver(v))&&
!(%DebugGetProperty(v,k)===(void 0));
}
function MakeMirror(v,w){
var x;
if(!w&&u){
for(var y in t){
x=t[y];
if(x.value()===v){
return x;
}
if(x.isNumber()&&e(x.value())&&
typeof v=='number'&&e(v)){
return x;
}
}
}
if((v===(void 0))){
x=new UndefinedMirror();
}else if((v===null)){
x=new NullMirror();
}else if((typeof(v)==='boolean')){
x=new BooleanMirror(v);
}else if((typeof(v)==='number')){
x=new NumberMirror(v);
}else if((typeof(v)==='string')){
x=new StringMirror(v);
}else if((typeof(v)==='symbol')){
x=new SymbolMirror(v);
}else if((%_IsArray(v))){
x=new ArrayMirror(v);
}else if((%IsDate(v))){
x=new DateMirror(v);
}else if((%IsFunction(v))){
x=new FunctionMirror(v);
}else if((%_IsRegExp(v))){
x=new RegExpMirror(v);
}else if((%_ClassOf(v)==='Error')){
x=new ErrorMirror(v);
}else if((%_ClassOf(v)==='Script')){
x=new ScriptMirror(v);
}else if((%_ClassOf(v)==='Map')||(%_ClassOf(v)==='WeakMap')){
x=new MapMirror(v);
}else if((%_ClassOf(v)==='Set')||(%_ClassOf(v)==='WeakSet')){
x=new SetMirror(v);
}else if((%_ClassOf(v)==='Map Iterator')||(%_ClassOf(v)==='Set Iterator')){
x=new IteratorMirror(v);
}else if(ObjectIsPromise(v)){
x=new PromiseMirror(v);
}else if((%_ClassOf(v)==='Generator')){
x=new GeneratorMirror(v);
}else{
x=new ObjectMirror(v,q.OBJECT_TYPE,w);
}
if(u)t[x.handle()]=x;
return x;
}
function LookupMirror(z){
if(!u){
throw g(2,"Mirror cache is disabled");
}
return t[z];
}
function GetUndefinedMirror(){
return MakeMirror((void 0));
}
function inherits(A,B){
var C=function(){};
C.prototype=B.prototype;
A.super_=B.prototype;
A.prototype=new C();
A.prototype.constructor=A;
}
var D=80;
var E={};
E.Data=0;
E.DataConstant=2;
E.AccessorConstant=3;
var F={};
F.None=0;
F.ReadOnly=1;
F.DontEnum=2;
F.DontDelete=4;
var G={Global:0,
Local:1,
With:2,
Closure:3,
Catch:4,
Block:5,
Script:6,
Eval:7,
};
function Mirror(H){
this.type_=H;
}
Mirror.prototype.type=function(){
return this.type_;
};
Mirror.prototype.isValue=function(){
return this instanceof ValueMirror;
};
Mirror.prototype.isUndefined=function(){
return this instanceof UndefinedMirror;
};
Mirror.prototype.isNull=function(){
return this instanceof NullMirror;
};
Mirror.prototype.isBoolean=function(){
return this instanceof BooleanMirror;
};
Mirror.prototype.isNumber=function(){
return this instanceof NumberMirror;
};
Mirror.prototype.isString=function(){
return this instanceof StringMirror;
};
Mirror.prototype.isSymbol=function(){
return this instanceof SymbolMirror;
};
Mirror.prototype.isObject=function(){
return this instanceof ObjectMirror;
};
Mirror.prototype.isFunction=function(){
return this instanceof FunctionMirror;
};
Mirror.prototype.isUnresolvedFunction=function(){
return this instanceof UnresolvedFunctionMirror;
};
Mirror.prototype.isArray=function(){
return this instanceof ArrayMirror;
};
Mirror.prototype.isDate=function(){
return this instanceof DateMirror;
};
Mirror.prototype.isRegExp=function(){
return this instanceof RegExpMirror;
};
Mirror.prototype.isError=function(){
return this instanceof ErrorMirror;
};
Mirror.prototype.isPromise=function(){
return this instanceof PromiseMirror;
};
Mirror.prototype.isGenerator=function(){
return this instanceof GeneratorMirror;
};
Mirror.prototype.isProperty=function(){
return this instanceof PropertyMirror;
};
Mirror.prototype.isInternalProperty=function(){
return this instanceof InternalPropertyMirror;
};
Mirror.prototype.isFrame=function(){
return this instanceof FrameMirror;
};
Mirror.prototype.isScript=function(){
return this instanceof ScriptMirror;
};
Mirror.prototype.isContext=function(){
return this instanceof ContextMirror;
};
Mirror.prototype.isScope=function(){
return this instanceof ScopeMirror;
};
Mirror.prototype.isMap=function(){
return this instanceof MapMirror;
};
Mirror.prototype.isSet=function(){
return this instanceof SetMirror;
};
Mirror.prototype.isIterator=function(){
return this instanceof IteratorMirror;
};
Mirror.prototype.allocateHandle_=function(){
if(u)this.handle_=r++;
};
Mirror.prototype.allocateTransientHandle_=function(){
this.handle_=s--;
};
Mirror.prototype.toText=function(){
return"#<"+this.constructor.name+">";
};
function ValueMirror(H,v,I){
%_Call(Mirror,this,H);
this.value_=v;
if(!I){
this.allocateHandle_();
}else{
this.allocateTransientHandle_();
}
}
inherits(ValueMirror,Mirror);
Mirror.prototype.handle=function(){
return this.handle_;
};
ValueMirror.prototype.isPrimitive=function(){
var H=this.type();
return H==='undefined'||
H==='null'||
H==='boolean'||
H==='number'||
H==='string'||
H==='symbol';
};
ValueMirror.prototype.value=function(){
return this.value_;
};
function UndefinedMirror(){
%_Call(ValueMirror,this,q.UNDEFINED_TYPE,(void 0));
}
inherits(UndefinedMirror,ValueMirror);
UndefinedMirror.prototype.toText=function(){
return'undefined';
};
function NullMirror(){
%_Call(ValueMirror,this,q.NULL_TYPE,null);
}
inherits(NullMirror,ValueMirror);
NullMirror.prototype.toText=function(){
return'null';
};
function BooleanMirror(v){
%_Call(ValueMirror,this,q.BOOLEAN_TYPE,v);
}
inherits(BooleanMirror,ValueMirror);
BooleanMirror.prototype.toText=function(){
return this.value_?'true':'false';
};
function NumberMirror(v){
%_Call(ValueMirror,this,q.NUMBER_TYPE,v);
}
inherits(NumberMirror,ValueMirror);
NumberMirror.prototype.toText=function(){
return %_NumberToString(this.value_);
};
function StringMirror(v){
%_Call(ValueMirror,this,q.STRING_TYPE,v);
}
inherits(StringMirror,ValueMirror);
StringMirror.prototype.length=function(){
return this.value_.length;
};
StringMirror.prototype.getTruncatedValue=function(J){
if(J!=-1&&this.length()>J){
return this.value_.substring(0,J)+
'... (length: '+this.length()+')';
}
return this.value_;
};
StringMirror.prototype.toText=function(){
return this.getTruncatedValue(D);
};
function SymbolMirror(v){
%_Call(ValueMirror,this,q.SYMBOL_TYPE,v);
}
inherits(SymbolMirror,ValueMirror);
SymbolMirror.prototype.description=function(){
return %SymbolDescription(%_ValueOf(this.value_));
}
SymbolMirror.prototype.toText=function(){
return %_Call(o,this.value_);
}
function ObjectMirror(v,H,I){
H=H||q.OBJECT_TYPE;
%_Call(ValueMirror,this,H,v,I);
}
inherits(ObjectMirror,ValueMirror);
ObjectMirror.prototype.className=function(){
return %_ClassOf(this.value_);
};
ObjectMirror.prototype.constructorFunction=function(){
return MakeMirror(%DebugGetProperty(this.value_,'constructor'));
};
ObjectMirror.prototype.prototypeObject=function(){
return MakeMirror(%DebugGetProperty(this.value_,'prototype'));
};
ObjectMirror.prototype.protoObject=function(){
return MakeMirror(%DebugGetPrototype(this.value_));
};
ObjectMirror.prototype.hasNamedInterceptor=function(){
var K=%GetInterceptorInfo(this.value_);
return(K&2)!=0;
};
ObjectMirror.prototype.hasIndexedInterceptor=function(){
var K=%GetInterceptorInfo(this.value_);
return(K&1)!=0;
};
ObjectMirror.prototype.propertyNames=function(){
return %GetOwnPropertyKeys(this.value_,0);
};
ObjectMirror.prototype.properties=function(){
var L=this.propertyNames();
var M=new d(L.length);
for(var N=0;N<L.length;N++){
M[N]=this.property(L[N]);
}
return M;
};
ObjectMirror.prototype.internalProperties=function(){
return ObjectMirror.GetInternalProperties(this.value_);
}
ObjectMirror.prototype.property=function(O){
var P=%DebugGetPropertyDetails(this.value_,(%_ToName(O)));
if(P){
return new PropertyMirror(this,O,P);
}
return GetUndefinedMirror();
};
ObjectMirror.prototype.lookupProperty=function(v){
var M=this.properties();
for(var N=0;N<M.length;N++){
var Q=M[N];
if(Q.propertyType()!=E.AccessorConstant){
if(Q.value_===v.value_){
return Q;
}
}
}
return GetUndefinedMirror();
};
ObjectMirror.prototype.referencedBy=function(R){
var S=%DebugReferencedBy(this.value_,
Mirror.prototype,R||0);
for(var N=0;N<S.length;N++){
S[N]=MakeMirror(S[N]);
}
return S;
};
ObjectMirror.prototype.toText=function(){
var O;
var A=this.constructorFunction();
if(!A.isFunction()){
O=this.className();
}else{
O=A.name();
if(!O){
O=this.className();
}
}
return'#<'+O+'>';
};
ObjectMirror.GetInternalProperties=function(v){
var M=%DebugGetInternalProperties(v);
var S=[];
for(var N=0;N<M.length;N+=2){
S.push(new InternalPropertyMirror(M[N],M[N+1]));
}
return S;
}
function FunctionMirror(v){
%_Call(ObjectMirror,this,v,q.FUNCTION_TYPE);
this.resolved_=true;
}
inherits(FunctionMirror,ObjectMirror);
FunctionMirror.prototype.resolved=function(){
return this.resolved_;
};
FunctionMirror.prototype.name=function(){
return %FunctionGetName(this.value_);
};
FunctionMirror.prototype.debugName=function(){
return %FunctionGetDebugName(this.value_);
}
FunctionMirror.prototype.inferredName=function(){
return %FunctionGetInferredName(this.value_);
};
FunctionMirror.prototype.source=function(){
if(this.resolved()){
return %FunctionToString(this.value_);
}
};
FunctionMirror.prototype.script=function(){
if(this.resolved()){
if(this.script_){
return this.script_;
}
var T=%FunctionGetScript(this.value_);
if(T){
return this.script_=MakeMirror(T);
}
}
};
FunctionMirror.prototype.sourcePosition_=function(){
if(this.resolved()){
return %FunctionGetScriptSourcePosition(this.value_);
}
};
FunctionMirror.prototype.sourceLocation=function(){
if(this.resolved()){
var T=this.script();
if(T){
return T.locationFromPosition(this.sourcePosition_(),true);
}
}
};
FunctionMirror.prototype.constructedBy=function(U){
if(this.resolved()){
var S=%DebugConstructedBy(this.value_,U||0);
for(var N=0;N<S.length;N++){
S[N]=MakeMirror(S[N]);
}
return S;
}else{
return[];
}
};
FunctionMirror.prototype.scopeCount=function(){
if(this.resolved()){
if((this.scopeCount_===(void 0))){
this.scopeCount_=%GetFunctionScopeCount(this.value());
}
return this.scopeCount_;
}else{
return 0;
}
};
FunctionMirror.prototype.scope=function(V){
if(this.resolved()){
return new ScopeMirror((void 0),this,V);
}
};
FunctionMirror.prototype.toText=function(){
return this.source();
};
FunctionMirror.prototype.context=function(){
if(this.resolved()){
if(!this._context)
this._context=new ContextMirror(%FunctionGetContextData(this.value_));
return this._context;
}
};
function UnresolvedFunctionMirror(v){
%_Call(ValueMirror,this,q.FUNCTION_TYPE,v);
this.propertyCount_=0;
this.elementCount_=0;
this.resolved_=false;
}
inherits(UnresolvedFunctionMirror,FunctionMirror);
UnresolvedFunctionMirror.prototype.className=function(){
return'Function';
};
UnresolvedFunctionMirror.prototype.constructorFunction=function(){
return GetUndefinedMirror();
};
UnresolvedFunctionMirror.prototype.prototypeObject=function(){
return GetUndefinedMirror();
};
UnresolvedFunctionMirror.prototype.protoObject=function(){
return GetUndefinedMirror();
};
UnresolvedFunctionMirror.prototype.name=function(){
return this.value_;
};
UnresolvedFunctionMirror.prototype.inferredName=function(){
return(void 0);
};
UnresolvedFunctionMirror.prototype.propertyNames=function(W,X){
return[];
};
function ArrayMirror(v){
%_Call(ObjectMirror,this,v);
}
inherits(ArrayMirror,ObjectMirror);
ArrayMirror.prototype.length=function(){
return this.value_.length;
};
ArrayMirror.prototype.indexedPropertiesFromRange=function(opt_from_index,
opt_to_index){
var Y=opt_from_index||0;
var Z=opt_to_index||this.length()-1;
if(Y>Z)return new d();
var aa=new d(Z-Y+1);
for(var N=Y;N<=Z;N++){
var P=%DebugGetPropertyDetails(this.value_,(%_ToString(N)));
var v;
if(P){
v=new PropertyMirror(this,N,P);
}else{
v=GetUndefinedMirror();
}
aa[N-Y]=v;
}
return aa;
};
function DateMirror(v){
%_Call(ObjectMirror,this,v);
}
inherits(DateMirror,ObjectMirror);
DateMirror.prototype.toText=function(){
var ab=f(this.value_);
return ab.substring(1,ab.length-1);
};
function RegExpMirror(v){
%_Call(ObjectMirror,this,v,q.REGEXP_TYPE);
}
inherits(RegExpMirror,ObjectMirror);
RegExpMirror.prototype.source=function(){
return this.value_.source;
};
RegExpMirror.prototype.global=function(){
return this.value_.global;
};
RegExpMirror.prototype.ignoreCase=function(){
return this.value_.ignoreCase;
};
RegExpMirror.prototype.multiline=function(){
return this.value_.multiline;
};
RegExpMirror.prototype.sticky=function(){
return this.value_.sticky;
};
RegExpMirror.prototype.unicode=function(){
return this.value_.unicode;
};
RegExpMirror.prototype.toText=function(){
return"/"+this.source()+"/";
};
function ErrorMirror(v){
%_Call(ObjectMirror,this,v,q.ERROR_TYPE);
}
inherits(ErrorMirror,ObjectMirror);
ErrorMirror.prototype.message=function(){
return this.value_.message;
};
ErrorMirror.prototype.toText=function(){
var ac;
try{
ac=%_Call(c,this.value_);
}catch(e){
ac='#<Error>';
}
return ac;
};
function PromiseMirror(v){
%_Call(ObjectMirror,this,v,q.PROMISE_TYPE);
}
inherits(PromiseMirror,ObjectMirror);
function PromiseGetStatus_(v){
var ad=%DebugGetProperty(v,k);
if(ad==0)return"pending";
if(ad==1)return"resolved";
return"rejected";
}
function PromiseGetValue_(v){
return %DebugGetProperty(v,l);
}
PromiseMirror.prototype.status=function(){
return PromiseGetStatus_(this.value_);
};
PromiseMirror.prototype.promiseValue=function(){
return MakeMirror(PromiseGetValue_(this.value_));
};
function MapMirror(v){
%_Call(ObjectMirror,this,v,q.MAP_TYPE);
}
inherits(MapMirror,ObjectMirror);
MapMirror.prototype.entries=function(ae){
var S=[];
if((%_ClassOf(this.value_)==='WeakMap')){
var af=%GetWeakMapEntries(this.value_,ae||0);
for(var N=0;N<af.length;N+=2){
S.push({
key:af[N],
value:af[N+1]
});
}
return S;
}
var ag=%_Call(h,this.value_);
var ah;
while((!ae||S.length<ae)&&
!(ah=ag.next()).done){
S.push({
key:ah.value[0],
value:ah.value[1]
});
}
return S;
};
function SetMirror(v){
%_Call(ObjectMirror,this,v,q.SET_TYPE);
}
inherits(SetMirror,ObjectMirror);
function IteratorGetValues_(ag,ai,ae){
var S=[];
var ah;
while((!ae||S.length<ae)&&
!(ah=%_Call(ai,ag)).done){
S.push(ah.value);
}
return S;
}
SetMirror.prototype.values=function(ae){
if((%_ClassOf(this.value_)==='WeakSet')){
return %GetWeakSetValues(this.value_,ae||0);
}
var ag=%_Call(n,this.value_);
return IteratorGetValues_(ag,m,ae);
};
function IteratorMirror(v){
%_Call(ObjectMirror,this,v,q.ITERATOR_TYPE);
}
inherits(IteratorMirror,ObjectMirror);
IteratorMirror.prototype.preview=function(ae){
if((%_ClassOf(this.value_)==='Map Iterator')){
return IteratorGetValues_(%MapIteratorClone(this.value_),
i,
ae);
}else if((%_ClassOf(this.value_)==='Set Iterator')){
return IteratorGetValues_(%SetIteratorClone(this.value_),
m,
ae);
}
};
function GeneratorMirror(v){
%_Call(ObjectMirror,this,v,q.GENERATOR_TYPE);
}
inherits(GeneratorMirror,ObjectMirror);
function GeneratorGetStatus_(v){
var aj=%GeneratorGetContinuation(v);
if(aj<-1)return"running";
if(aj==-1)return"closed";
return"suspended";
}
GeneratorMirror.prototype.status=function(){
return GeneratorGetStatus_(this.value_);
};
GeneratorMirror.prototype.sourcePosition_=function(){
return %GeneratorGetSourcePosition(this.value_);
};
GeneratorMirror.prototype.sourceLocation=function(){
var ak=this.sourcePosition_();
if(!(ak===(void 0))){
var T=this.func().script();
if(T){
return T.locationFromPosition(ak,true);
}
}
};
GeneratorMirror.prototype.func=function(){
if(!this.func_){
this.func_=MakeMirror(%GeneratorGetFunction(this.value_));
}
return this.func_;
};
GeneratorMirror.prototype.receiver=function(){
if(!this.receiver_){
this.receiver_=MakeMirror(%GeneratorGetReceiver(this.value_));
}
return this.receiver_;
};
function PropertyMirror(x,O,P){
%_Call(Mirror,this,q.PROPERTY_TYPE);
this.mirror_=x;
this.name_=O;
this.value_=P[0];
this.details_=P[1];
this.is_interceptor_=P[2];
if(P.length>3){
this.exception_=P[3];
this.getter_=P[4];
this.setter_=P[5];
}
}
inherits(PropertyMirror,Mirror);
PropertyMirror.prototype.isReadOnly=function(){
return(this.attributes()&F.ReadOnly)!=0;
};
PropertyMirror.prototype.isEnum=function(){
return(this.attributes()&F.DontEnum)==0;
};
PropertyMirror.prototype.canDelete=function(){
return(this.attributes()&F.DontDelete)==0;
};
PropertyMirror.prototype.name=function(){
return this.name_;
};
PropertyMirror.prototype.toText=function(){
if((typeof(this.name_)==='symbol'))return %SymbolDescriptiveString(this.name_);
return this.name_;
};
PropertyMirror.prototype.isIndexed=function(){
for(var N=0;N<this.name_.length;N++){
if(this.name_[N]<'0'||'9'<this.name_[N]){
return false;
}
}
return true;
};
PropertyMirror.prototype.value=function(){
return MakeMirror(this.value_,false);
};
PropertyMirror.prototype.isException=function(){
return this.exception_?true:false;
};
PropertyMirror.prototype.attributes=function(){
return %DebugPropertyAttributesFromDetails(this.details_);
};
PropertyMirror.prototype.propertyType=function(){
return %DebugPropertyTypeFromDetails(this.details_);
};
PropertyMirror.prototype.hasGetter=function(){
return this.getter_?true:false;
};
PropertyMirror.prototype.hasSetter=function(){
return this.setter_?true:false;
};
PropertyMirror.prototype.getter=function(){
if(this.hasGetter()){
return MakeMirror(this.getter_);
}else{
return GetUndefinedMirror();
}
};
PropertyMirror.prototype.setter=function(){
if(this.hasSetter()){
return MakeMirror(this.setter_);
}else{
return GetUndefinedMirror();
}
};
PropertyMirror.prototype.isNative=function(){
return this.is_interceptor_||
((this.propertyType()==E.AccessorConstant)&&
!this.hasGetter()&&!this.hasSetter());
};
function InternalPropertyMirror(O,v){
%_Call(Mirror,this,q.INTERNAL_PROPERTY_TYPE);
this.name_=O;
this.value_=v;
}
inherits(InternalPropertyMirror,Mirror);
InternalPropertyMirror.prototype.name=function(){
return this.name_;
};
InternalPropertyMirror.prototype.value=function(){
return MakeMirror(this.value_,false);
};
var al=0;
var am=1;
var an=2;
var ao=3;
var ap=4;
var aq=5;
var ar=6;
var as=7;
var at=8;
var au=9;
var av=0;
var aw=1;
var ax=2;
var ay=1<<0;
var az=1<<1;
var aA=7<<2;
function FrameDetails(aB,V){
this.break_id_=aB;
this.details_=%GetFrameDetails(aB,V);
}
FrameDetails.prototype.frameId=function(){
%CheckExecutionState(this.break_id_);
return this.details_[al];
};
FrameDetails.prototype.receiver=function(){
%CheckExecutionState(this.break_id_);
return this.details_[am];
};
FrameDetails.prototype.func=function(){
%CheckExecutionState(this.break_id_);
return this.details_[an];
};
FrameDetails.prototype.isConstructCall=function(){
%CheckExecutionState(this.break_id_);
return this.details_[ar];
};
FrameDetails.prototype.isAtReturn=function(){
%CheckExecutionState(this.break_id_);
return this.details_[as];
};
FrameDetails.prototype.isDebuggerFrame=function(){
%CheckExecutionState(this.break_id_);
var aC=ay;
return(this.details_[at]&aC)==aC;
};
FrameDetails.prototype.isOptimizedFrame=function(){
%CheckExecutionState(this.break_id_);
var aC=az;
return(this.details_[at]&aC)==aC;
};
FrameDetails.prototype.isInlinedFrame=function(){
return this.inlinedFrameIndex()>0;
};
FrameDetails.prototype.inlinedFrameIndex=function(){
%CheckExecutionState(this.break_id_);
var aC=aA;
return(this.details_[at]&aC)>>2;
};
FrameDetails.prototype.argumentCount=function(){
%CheckExecutionState(this.break_id_);
return this.details_[ao];
};
FrameDetails.prototype.argumentName=function(V){
%CheckExecutionState(this.break_id_);
if(V>=0&&V<this.argumentCount()){
return this.details_[au+
V*ax+
av];
}
};
FrameDetails.prototype.argumentValue=function(V){
%CheckExecutionState(this.break_id_);
if(V>=0&&V<this.argumentCount()){
return this.details_[au+
V*ax+
aw];
}
};
FrameDetails.prototype.localCount=function(){
%CheckExecutionState(this.break_id_);
return this.details_[ap];
};
FrameDetails.prototype.sourcePosition=function(){
%CheckExecutionState(this.break_id_);
return this.details_[aq];
};
FrameDetails.prototype.localName=function(V){
%CheckExecutionState(this.break_id_);
if(V>=0&&V<this.localCount()){
var aD=au+
this.argumentCount()*ax;
return this.details_[aD+
V*ax+
av];
}
};
FrameDetails.prototype.localValue=function(V){
%CheckExecutionState(this.break_id_);
if(V>=0&&V<this.localCount()){
var aD=au+
this.argumentCount()*ax;
return this.details_[aD+
V*ax+
aw];
}
};
FrameDetails.prototype.returnValue=function(){
%CheckExecutionState(this.break_id_);
var aE=
au+
(this.argumentCount()+this.localCount())*ax;
if(this.details_[as]){
return this.details_[aE];
}
};
FrameDetails.prototype.scopeCount=function(){
if((this.scopeCount_===(void 0))){
this.scopeCount_=%GetScopeCount(this.break_id_,this.frameId());
}
return this.scopeCount_;
};
function FrameMirror(aB,V){
%_Call(Mirror,this,q.FRAME_TYPE);
this.break_id_=aB;
this.index_=V;
this.details_=new FrameDetails(aB,V);
}
inherits(FrameMirror,Mirror);
FrameMirror.prototype.details=function(){
return this.details_;
};
FrameMirror.prototype.index=function(){
return this.index_;
};
FrameMirror.prototype.func=function(){
if(this.func_){
return this.func_;
}
var aC=this.details_.func();
if((%IsFunction(aC))){
return this.func_=MakeMirror(aC);
}else{
return new UnresolvedFunctionMirror(aC);
}
};
FrameMirror.prototype.receiver=function(){
return MakeMirror(this.details_.receiver());
};
FrameMirror.prototype.isConstructCall=function(){
return this.details_.isConstructCall();
};
FrameMirror.prototype.isAtReturn=function(){
return this.details_.isAtReturn();
};
FrameMirror.prototype.isDebuggerFrame=function(){
return this.details_.isDebuggerFrame();
};
FrameMirror.prototype.isOptimizedFrame=function(){
return this.details_.isOptimizedFrame();
};
FrameMirror.prototype.isInlinedFrame=function(){
return this.details_.isInlinedFrame();
};
FrameMirror.prototype.inlinedFrameIndex=function(){
return this.details_.inlinedFrameIndex();
};
FrameMirror.prototype.argumentCount=function(){
return this.details_.argumentCount();
};
FrameMirror.prototype.argumentName=function(V){
return this.details_.argumentName(V);
};
FrameMirror.prototype.argumentValue=function(V){
return MakeMirror(this.details_.argumentValue(V));
};
FrameMirror.prototype.localCount=function(){
return this.details_.localCount();
};
FrameMirror.prototype.localName=function(V){
return this.details_.localName(V);
};
FrameMirror.prototype.localValue=function(V){
return MakeMirror(this.details_.localValue(V));
};
FrameMirror.prototype.returnValue=function(){
return MakeMirror(this.details_.returnValue());
};
FrameMirror.prototype.sourcePosition=function(){
return this.details_.sourcePosition();
};
FrameMirror.prototype.sourceLocation=function(){
var aF=this.func();
if(aF.resolved()){
var T=aF.script();
if(T){
return T.locationFromPosition(this.sourcePosition(),true);
}
}
};
FrameMirror.prototype.sourceLine=function(){
var aG=this.sourceLocation();
if(aG){
return aG.line;
}
};
FrameMirror.prototype.sourceColumn=function(){
var aG=this.sourceLocation();
if(aG){
return aG.column;
}
};
FrameMirror.prototype.sourceLineText=function(){
var aG=this.sourceLocation();
if(aG){
return aG.sourceText;
}
};
FrameMirror.prototype.scopeCount=function(){
return this.details_.scopeCount();
};
FrameMirror.prototype.scope=function(V){
return new ScopeMirror(this,(void 0),V);
};
FrameMirror.prototype.allScopes=function(aH){
var aI=%GetAllScopesDetails(this.break_id_,
this.details_.frameId(),
this.details_.inlinedFrameIndex(),
!!aH);
var S=[];
for(var N=0;N<aI.length;++N){
S.push(new ScopeMirror(this,(void 0),N,aI[N]));
}
return S;
};
FrameMirror.prototype.evaluate=function(source,disable_break,
opt_context_object){
return MakeMirror(%DebugEvaluate(this.break_id_,
this.details_.frameId(),
this.details_.inlinedFrameIndex(),
source,
(!!(disable_break)),
opt_context_object));
};
FrameMirror.prototype.invocationText=function(){
var S='';
var aF=this.func();
var aJ=this.receiver();
if(this.isConstructCall()){
S+='new ';
S+=aF.name()?aF.name():'[anonymous]';
}else if(this.isDebuggerFrame()){
S+='[debugger]';
}else{
var aK=
!aJ.className||(aJ.className()!='global');
if(aK){
S+=aJ.toText();
}
var Q=GetUndefinedMirror();
if(aJ.isObject()){
for(var aL=aJ;
!aL.isNull()&&Q.isUndefined();
aL=aL.protoObject()){
Q=aL.lookupProperty(aF);
}
}
if(!Q.isUndefined()){
if(!Q.isIndexed()){
if(aK){
S+='.';
}
S+=Q.toText();
}else{
S+='[';
S+=Q.toText();
S+=']';
}
if(aF.name()&&aF.name()!=Q.name()){
S+='(aka '+aF.name()+')';
}
}else{
if(aK){
S+='.';
}
S+=aF.name()?aF.name():'[anonymous]';
}
}
if(!this.isDebuggerFrame()){
S+='(';
for(var N=0;N<this.argumentCount();N++){
if(N!=0)S+=', ';
if(this.argumentName(N)){
S+=this.argumentName(N);
S+='=';
}
S+=this.argumentValue(N).toText();
}
S+=')';
}
if(this.isAtReturn()){
S+=' returning ';
S+=this.returnValue().toText();
}
return S;
};
FrameMirror.prototype.sourceAndPositionText=function(){
var S='';
var aF=this.func();
if(aF.resolved()){
var T=aF.script();
if(T){
if(T.name()){
S+=T.name();
}else{
S+='[unnamed]';
}
if(!this.isDebuggerFrame()){
var aG=this.sourceLocation();
S+=' line ';
S+=!(aG===(void 0))?(aG.line+1):'?';
S+=' column ';
S+=!(aG===(void 0))?(aG.column+1):'?';
if(!(this.sourcePosition()===(void 0))){
S+=' (position '+(this.sourcePosition()+1)+')';
}
}
}else{
S+='[no source]';
}
}else{
S+='[unresolved]';
}
return S;
};
FrameMirror.prototype.localsText=function(){
var S='';
var aM=this.localCount();
if(aM>0){
for(var N=0;N<aM;++N){
S+='      var ';
S+=this.localName(N);
S+=' = ';
S+=this.localValue(N).toText();
if(N<aM-1)S+='\n';
}
}
return S;
};
FrameMirror.prototype.restart=function(){
var S=%LiveEditRestartFrame(this.break_id_,this.index_);
if((S===(void 0))){
S="Failed to find requested frame";
}
return S;
};
FrameMirror.prototype.toText=function(aN){
var S='';
S+='#'+(this.index()<=9?'0':'')+this.index();
S+=' ';
S+=this.invocationText();
S+=' ';
S+=this.sourceAndPositionText();
if(aN){
S+='\n';
S+=this.localsText();
}
return S;
};
var aO=0;
var aP=1;
var aQ=2;
var aR=3;
var aS=4;
var aT=5;
function ScopeDetails(aU,aV,V,aW){
if(aU){
this.break_id_=aU.break_id_;
this.details_=aW||
%GetScopeDetails(aU.break_id_,
aU.details_.frameId(),
aU.details_.inlinedFrameIndex(),
V);
this.frame_id_=aU.details_.frameId();
this.inlined_frame_id_=aU.details_.inlinedFrameIndex();
}else{
this.details_=aW||%GetFunctionScopeDetails(aV.value(),V);
this.fun_value_=aV.value();
this.break_id_=(void 0);
}
this.index_=V;
}
ScopeDetails.prototype.type=function(){
if(!(this.break_id_===(void 0))){
%CheckExecutionState(this.break_id_);
}
return this.details_[aO];
};
ScopeDetails.prototype.object=function(){
if(!(this.break_id_===(void 0))){
%CheckExecutionState(this.break_id_);
}
return this.details_[aP];
};
ScopeDetails.prototype.name=function(){
if(!(this.break_id_===(void 0))){
%CheckExecutionState(this.break_id_);
}
return this.details_[aQ];
};
ScopeDetails.prototype.startPosition=function(){
if(!(this.break_id_===(void 0))){
%CheckExecutionState(this.break_id_);
}
return this.details_[aR];
}
ScopeDetails.prototype.endPosition=function(){
if(!(this.break_id_===(void 0))){
%CheckExecutionState(this.break_id_);
}
return this.details_[aS];
}
ScopeDetails.prototype.func=function(){
if(!(this.break_id_===(void 0))){
%CheckExecutionState(this.break_id_);
}
return this.details_[aT];
}
ScopeDetails.prototype.setVariableValueImpl=function(O,aX){
var aY;
if(!(this.break_id_===(void 0))){
%CheckExecutionState(this.break_id_);
aY=%SetScopeVariableValue(this.break_id_,this.frame_id_,
this.inlined_frame_id_,this.index_,O,aX);
}else{
aY=%SetScopeVariableValue(this.fun_value_,null,null,this.index_,
O,aX);
}
if(!aY)throw g(2,"Failed to set variable value");
};
function ScopeMirror(aU,aV,V,aW){
%_Call(Mirror,this,q.SCOPE_TYPE);
if(aU){
this.frame_index_=aU.index_;
}else{
this.frame_index_=(void 0);
}
this.scope_index_=V;
this.details_=new ScopeDetails(aU,aV,V,aW);
}
inherits(ScopeMirror,Mirror);
ScopeMirror.prototype.details=function(){
return this.details_;
};
ScopeMirror.prototype.frameIndex=function(){
return this.frame_index_;
};
ScopeMirror.prototype.scopeIndex=function(){
return this.scope_index_;
};
ScopeMirror.prototype.scopeType=function(){
return this.details_.type();
};
ScopeMirror.prototype.scopeObject=function(){
var I=this.scopeType()==G.Local||
this.scopeType()==G.Closure||
this.scopeType()==G.Script;
return MakeMirror(this.details_.object(),I);
};
ScopeMirror.prototype.setVariableValue=function(O,aX){
this.details_.setVariableValueImpl(O,aX);
};
function ScriptMirror(T){
%_Call(Mirror,this,q.SCRIPT_TYPE);
this.script_=T;
this.context_=new ContextMirror(T.context_data);
this.allocateHandle_();
}
inherits(ScriptMirror,Mirror);
ScriptMirror.prototype.value=function(){
return this.script_;
};
ScriptMirror.prototype.name=function(){
return this.script_.name||this.script_.nameOrSourceURL();
};
ScriptMirror.prototype.id=function(){
return this.script_.id;
};
ScriptMirror.prototype.source=function(){
return this.script_.source;
};
ScriptMirror.prototype.setSource=function(aZ){
%DebugSetScriptSource(this.script_,aZ);
};
ScriptMirror.prototype.lineOffset=function(){
return this.script_.line_offset;
};
ScriptMirror.prototype.columnOffset=function(){
return this.script_.column_offset;
};
ScriptMirror.prototype.data=function(){
return this.script_.data;
};
ScriptMirror.prototype.scriptType=function(){
return this.script_.type;
};
ScriptMirror.prototype.compilationType=function(){
return this.script_.compilation_type;
};
ScriptMirror.prototype.lineCount=function(){
return %ScriptLineCount(this.script_);
};
ScriptMirror.prototype.locationFromPosition=function(
position,include_resource_offset){
return this.script_.locationFromPosition(position,include_resource_offset);
};
ScriptMirror.prototype.context=function(){
return this.context_;
};
ScriptMirror.prototype.evalFromScript=function(){
return MakeMirror(this.script_.eval_from_script);
};
ScriptMirror.prototype.evalFromFunctionName=function(){
return MakeMirror(this.script_.eval_from_function_name);
};
ScriptMirror.prototype.evalFromLocation=function(){
var ba=this.evalFromScript();
if(!ba.isUndefined()){
var bb=this.script_.eval_from_script_position;
return ba.locationFromPosition(bb,true);
}
};
ScriptMirror.prototype.toText=function(){
var S='';
S+=this.name();
S+=' (lines: ';
if(this.lineOffset()>0){
S+=this.lineOffset();
S+='-';
S+=this.lineOffset()+this.lineCount()-1;
}else{
S+=this.lineCount();
}
S+=')';
return S;
};
function ContextMirror(bc){
%_Call(Mirror,this,q.CONTEXT_TYPE);
this.data_=bc;
this.allocateHandle_();
}
inherits(ContextMirror,Mirror);
ContextMirror.prototype.data=function(){
return this.data_;
};
function MakeMirrorSerializer(P,bd){
return new JSONProtocolSerializer(P,bd);
}
function JSONProtocolSerializer(P,bd){
this.details_=P;
this.options_=bd;
this.mirrors_=[];
}
JSONProtocolSerializer.prototype.serializeReference=function(x){
return this.serialize_(x,true,true);
};
JSONProtocolSerializer.prototype.serializeValue=function(x){
var be=this.serialize_(x,false,true);
return be;
};
JSONProtocolSerializer.prototype.serializeReferencedObjects=function(){
var bf=[];
var bg=this.mirrors_.length;
for(var N=0;N<bg;N++){
bf.push(this.serialize_(this.mirrors_[N],false,false));
}
return bf;
};
JSONProtocolSerializer.prototype.includeSource_=function(){
return this.options_&&this.options_.includeSource;
};
JSONProtocolSerializer.prototype.inlineRefs_=function(){
return this.options_&&this.options_.inlineRefs;
};
JSONProtocolSerializer.prototype.maxStringLength_=function(){
if((this.options_===(void 0))||
(this.options_.maxStringLength===(void 0))){
return D;
}
return this.options_.maxStringLength;
};
JSONProtocolSerializer.prototype.add_=function(x){
for(var N=0;N<this.mirrors_.length;N++){
if(this.mirrors_[N]===x){
return;
}
}
this.mirrors_.push(x);
};
JSONProtocolSerializer.prototype.serializeReferenceWithDisplayData_=
function(x){
var bh={};
bh.ref=x.handle();
bh.type=x.type();
switch(x.type()){
case q.UNDEFINED_TYPE:
case q.NULL_TYPE:
case q.BOOLEAN_TYPE:
case q.NUMBER_TYPE:
bh.value=x.value();
break;
case q.STRING_TYPE:
bh.value=x.getTruncatedValue(this.maxStringLength_());
break;
case q.SYMBOL_TYPE:
bh.description=x.description();
break;
case q.FUNCTION_TYPE:
bh.name=x.name();
bh.inferredName=x.inferredName();
if(x.script()){
bh.scriptId=x.script().id();
}
break;
case q.ERROR_TYPE:
case q.REGEXP_TYPE:
bh.value=x.toText();
break;
case q.OBJECT_TYPE:
bh.className=x.className();
break;
}
return bh;
};
JSONProtocolSerializer.prototype.serialize_=function(x,reference,
P){
if(reference&&
(x.isValue()||x.isScript()||x.isContext())){
if(this.inlineRefs_()&&x.isValue()){
return this.serializeReferenceWithDisplayData_(x);
}else{
this.add_(x);
return{'ref':x.handle()};
}
}
var bf={};
if(x.isValue()||x.isScript()||x.isContext()){
bf.handle=x.handle();
}
bf.type=x.type();
switch(x.type()){
case q.UNDEFINED_TYPE:
case q.NULL_TYPE:
break;
case q.BOOLEAN_TYPE:
bf.value=x.value();
break;
case q.NUMBER_TYPE:
bf.value=NumberToJSON_(x.value());
break;
case q.STRING_TYPE:
if(this.maxStringLength_()!=-1&&
x.length()>this.maxStringLength_()){
var bi=x.getTruncatedValue(this.maxStringLength_());
bf.value=bi;
bf.fromIndex=0;
bf.toIndex=this.maxStringLength_();
}else{
bf.value=x.value();
}
bf.length=x.length();
break;
case q.SYMBOL_TYPE:
bf.description=x.description();
break;
case q.OBJECT_TYPE:
case q.FUNCTION_TYPE:
case q.ERROR_TYPE:
case q.REGEXP_TYPE:
case q.PROMISE_TYPE:
case q.GENERATOR_TYPE:
this.serializeObject_(x,bf,P);
break;
case q.PROPERTY_TYPE:
case q.INTERNAL_PROPERTY_TYPE:
throw g(2,
'PropertyMirror cannot be serialized independently');
break;
case q.FRAME_TYPE:
this.serializeFrame_(x,bf);
break;
case q.SCOPE_TYPE:
this.serializeScope_(x,bf);
break;
case q.SCRIPT_TYPE:
if(x.name()){
bf.name=x.name();
}
bf.id=x.id();
bf.lineOffset=x.lineOffset();
bf.columnOffset=x.columnOffset();
bf.lineCount=x.lineCount();
if(x.data()){
bf.data=x.data();
}
if(this.includeSource_()){
bf.source=x.source();
}else{
var bj=x.source().substring(0,80);
bf.sourceStart=bj;
}
bf.sourceLength=x.source().length;
bf.scriptType=x.scriptType();
bf.compilationType=x.compilationType();
if(x.compilationType()==1&&
x.evalFromScript()){
bf.evalFromScript=
this.serializeReference(x.evalFromScript());
var bk=x.evalFromLocation();
if(bk){
bf.evalFromLocation={line:bk.line,
column:bk.column};
}
if(x.evalFromFunctionName()){
bf.evalFromFunctionName=x.evalFromFunctionName();
}
}
if(x.context()){
bf.context=this.serializeReference(x.context());
}
break;
case q.CONTEXT_TYPE:
bf.data=x.data();
break;
}
bf.text=x.toText();
return bf;
};
JSONProtocolSerializer.prototype.serializeObject_=function(x,bf,
P){
bf.className=x.className();
bf.constructorFunction=
this.serializeReference(x.constructorFunction());
bf.protoObject=this.serializeReference(x.protoObject());
bf.prototypeObject=this.serializeReference(x.prototypeObject());
if(x.hasNamedInterceptor()){
bf.namedInterceptor=true;
}
if(x.hasIndexedInterceptor()){
bf.indexedInterceptor=true;
}
if(x.isFunction()){
bf.name=x.name();
if(!(x.inferredName()===(void 0))){
bf.inferredName=x.inferredName();
}
bf.resolved=x.resolved();
if(x.resolved()){
bf.source=x.source();
}
if(x.script()){
bf.script=this.serializeReference(x.script());
bf.scriptId=x.script().id();
serializeLocationFields(x.sourceLocation(),bf);
}
bf.scopes=[];
for(var N=0;N<x.scopeCount();N++){
var bl=x.scope(N);
bf.scopes.push({
type:bl.scopeType(),
index:N
});
}
}
if(x.isGenerator()){
bf.status=x.status();
bf.func=this.serializeReference(x.func())
bf.receiver=this.serializeReference(x.receiver())
serializeLocationFields(x.sourceLocation(),bf);
}
if(x.isDate()){
bf.value=x.value();
}
if(x.isPromise()){
bf.status=x.status();
bf.promiseValue=this.serializeReference(x.promiseValue());
}
var M=x.propertyNames();
for(var N=0;N<M.length;N++){
var bm=x.property(M[N]);
M[N]=this.serializeProperty_(bm);
if(P){
this.add_(bm.value());
}
}
bf.properties=M;
var bn=x.internalProperties();
if(bn.length>0){
var bo=[];
for(var N=0;N<bn.length;N++){
bo.push(this.serializeInternalProperty_(bn[N]));
}
bf.internalProperties=bo;
}
};
function serializeLocationFields(aG,bf){
if(!aG){
return;
}
bf.position=aG.position;
var bp=aG.line;
if(!(bp===(void 0))){
bf.line=bp;
}
var bq=aG.column;
if(!(bq===(void 0))){
bf.column=bq;
}
}
JSONProtocolSerializer.prototype.serializeProperty_=function(bm){
var S={};
S.name=bm.name();
var br=bm.value();
if(this.inlineRefs_()&&br.isValue()){
S.value=this.serializeReferenceWithDisplayData_(br);
}else{
if(bm.attributes()!=F.None){
S.attributes=bm.attributes();
}
S.propertyType=bm.propertyType();
S.ref=br.handle();
}
return S;
};
JSONProtocolSerializer.prototype.serializeInternalProperty_=
function(bm){
var S={};
S.name=bm.name();
var br=bm.value();
if(this.inlineRefs_()&&br.isValue()){
S.value=this.serializeReferenceWithDisplayData_(br);
}else{
S.ref=br.handle();
}
return S;
};
JSONProtocolSerializer.prototype.serializeFrame_=function(x,bf){
bf.index=x.index();
bf.receiver=this.serializeReference(x.receiver());
var aF=x.func();
bf.func=this.serializeReference(aF);
var T=aF.script();
if(T){
bf.script=this.serializeReference(T);
}
bf.constructCall=x.isConstructCall();
bf.atReturn=x.isAtReturn();
if(x.isAtReturn()){
bf.returnValue=this.serializeReference(x.returnValue());
}
bf.debuggerFrame=x.isDebuggerFrame();
var K=new d(x.argumentCount());
for(var N=0;N<x.argumentCount();N++){
var bs={};
var bt=x.argumentName(N);
if(bt){
bs.name=bt;
}
bs.value=this.serializeReference(x.argumentValue(N));
K[N]=bs;
}
bf.arguments=K;
var K=new d(x.localCount());
for(var N=0;N<x.localCount();N++){
var bu={};
bu.name=x.localName(N);
bu.value=this.serializeReference(x.localValue(N));
K[N]=bu;
}
bf.locals=K;
serializeLocationFields(x.sourceLocation(),bf);
var bv=x.sourceLineText();
if(!(bv===(void 0))){
bf.sourceLineText=bv;
}
bf.scopes=[];
for(var N=0;N<x.scopeCount();N++){
var bl=x.scope(N);
bf.scopes.push({
type:bl.scopeType(),
index:N
});
}
};
JSONProtocolSerializer.prototype.serializeScope_=function(x,bf){
bf.index=x.scopeIndex();
bf.frameIndex=x.frameIndex();
bf.type=x.scopeType();
bf.object=this.inlineRefs_()?
this.serializeValue(x.scopeObject()):
this.serializeReference(x.scopeObject());
};
function NumberToJSON_(v){
if(e(v)){
return'NaN';
}
if(!(%_IsSmi(%IS_VAR(v))||((v==v)&&(v!=1/0)&&(v!=-1/0)))){
if(v>0){
return'Infinity';
}else{
return'-Infinity';
}
}
return v;
}
b.InstallFunctions(a,2,[
"MakeMirror",MakeMirror,
"MakeMirrorSerializer",MakeMirrorSerializer,
"LookupMirror",LookupMirror,
"ToggleMirrorCache",ToggleMirrorCache,
"MirrorCacheIsEmpty",MirrorCacheIsEmpty,
]);
b.InstallConstants(a,[
"ScopeType",G,
"PropertyType",E,
"PropertyAttribute",F,
"Mirror",Mirror,
"ValueMirror",ValueMirror,
"UndefinedMirror",UndefinedMirror,
"NullMirror",NullMirror,
"BooleanMirror",BooleanMirror,
"NumberMirror",NumberMirror,
"StringMirror",StringMirror,
"SymbolMirror",SymbolMirror,
"ObjectMirror",ObjectMirror,
"FunctionMirror",FunctionMirror,
"UnresolvedFunctionMirror",UnresolvedFunctionMirror,
"ArrayMirror",ArrayMirror,
"DateMirror",DateMirror,
"RegExpMirror",RegExpMirror,
"ErrorMirror",ErrorMirror,
"PromiseMirror",PromiseMirror,
"MapMirror",MapMirror,
"SetMirror",SetMirror,
"IteratorMirror",IteratorMirror,
"GeneratorMirror",GeneratorMirror,
"PropertyMirror",PropertyMirror,
"InternalPropertyMirror",InternalPropertyMirror,
"FrameMirror",FrameMirror,
"ScriptMirror",ScriptMirror,
"ScopeMirror",ScopeMirror,
"FrameDetails",FrameDetails,
]);
b.InstallFunctions(b,2,[
"ClearMirrorCache",ClearMirrorCache
]);
b.Export(function(bw){
bw.MirrorType=q;
});
})

debug.b
(function(a,b){
"use strict";
var c=a.FrameMirror;
var d=a.Array;
var e=a.RegExp;
var f=a.isNaN;
var g=a.JSON.parse;
var h=a.JSON.stringify;
var i=a.LookupMirror;
var j;
var k;
var l=a.MakeMirror;
var m=a.MakeMirrorSerializer;
var n=a.Math.min;
var o=a.Mirror;
var p;
var q=a.parseInt;
var r=a.ValueMirror;
b.Import(function(s){
j=s.MakeError;
k=s.MakeTypeError;
p=s.MirrorType;
});
var t=10;
var u={};
var v=/^(?:\s*(?:\/\*.*?\*\/)*)*/;
u.DebugEvent={Break:1,
Exception:2,
NewFunction:3,
BeforeCompile:4,
AfterCompile:5,
CompileError:6,
AsyncTaskEvent:7};
u.ExceptionBreak={Caught:0,
Uncaught:1};
u.StepAction={StepOut:0,
StepNext:1,
StepIn:2,
StepFrame:3};
u.ScriptType={Native:0,
Extension:1,
Normal:2};
u.ScriptCompilationType={Host:0,
Eval:1,
JSON:2};
u.ScriptBreakPointType={ScriptId:0,
ScriptName:1,
ScriptRegExp:2};
u.BreakPositionAlignment={
Statement:0,
BreakPosition:1
};
function ScriptTypeFlag(w){
return(1<<w);
}
var x=0;
var y=1;
var z=[];
var A=[];
var B={
breakPointsActive:{
value:true,
getValue:function(){return this.value;},
setValue:function(C){
this.value=!!C;
%SetBreakPointsActive(this.value);
}
},
breakOnCaughtException:{
getValue:function(){return u.isBreakOnException();},
setValue:function(C){
if(C){
u.setBreakOnException();
}else{
u.clearBreakOnException();
}
}
},
breakOnUncaughtException:{
getValue:function(){return u.isBreakOnUncaughtException();},
setValue:function(C){
if(C){
u.setBreakOnUncaughtException();
}else{
u.clearBreakOnUncaughtException();
}
}
},
};
function MakeBreakPoint(D,E){
var F=new BreakPoint(D,E);
z.push(F);
return F;
}
function BreakPoint(D,E){
this.source_position_=D;
if(E){
this.script_break_point_=E;
}else{
this.number_=y++;
}
this.active_=true;
this.condition_=null;
}
BreakPoint.prototype.number=function(){
return this.number_;
};
BreakPoint.prototype.func=function(){
return this.func_;
};
BreakPoint.prototype.source_position=function(){
return this.source_position_;
};
BreakPoint.prototype.active=function(){
if(this.script_break_point()){
return this.script_break_point().active();
}
return this.active_;
};
BreakPoint.prototype.condition=function(){
if(this.script_break_point()&&this.script_break_point().condition()){
return this.script_break_point().condition();
}
return this.condition_;
};
BreakPoint.prototype.script_break_point=function(){
return this.script_break_point_;
};
BreakPoint.prototype.enable=function(){
this.active_=true;
};
BreakPoint.prototype.disable=function(){
this.active_=false;
};
BreakPoint.prototype.setCondition=function(G){
this.condition_=G;
};
BreakPoint.prototype.isTriggered=function(H){
if(!this.active())return false;
if(this.condition()){
try{
var I=H.frame(0).evaluate(this.condition());
if(!(I instanceof r)||!I.value_){
return false;
}
}catch(e){
return false;
}
}
return true;
};
function IsBreakPointTriggered(J,F){
return F.isTriggered(MakeExecutionState(J));
}
function ScriptBreakPoint(w,script_id_or_name,opt_line,opt_column,
opt_groupId,opt_position_alignment){
this.type_=w;
if(w==u.ScriptBreakPointType.ScriptId){
this.script_id_=script_id_or_name;
}else if(w==u.ScriptBreakPointType.ScriptName){
this.script_name_=script_id_or_name;
}else if(w==u.ScriptBreakPointType.ScriptRegExp){
this.script_regexp_object_=new e(script_id_or_name);
}else{
throw j(2,"Unexpected breakpoint type "+w);
}
this.line_=opt_line||0;
this.column_=opt_column;
this.groupId_=opt_groupId;
this.position_alignment_=(opt_position_alignment===(void 0))
?u.BreakPositionAlignment.Statement:opt_position_alignment;
this.active_=true;
this.condition_=null;
this.break_points_=[];
}
ScriptBreakPoint.prototype.cloneForOtherScript=function(K){
var L=new ScriptBreakPoint(u.ScriptBreakPointType.ScriptId,
K.id,this.line_,this.column_,this.groupId_,
this.position_alignment_);
L.number_=y++;
A.push(L);
L.active_=this.active_;
L.condition_=this.condition_;
return L;
};
ScriptBreakPoint.prototype.number=function(){
return this.number_;
};
ScriptBreakPoint.prototype.groupId=function(){
return this.groupId_;
};
ScriptBreakPoint.prototype.type=function(){
return this.type_;
};
ScriptBreakPoint.prototype.script_id=function(){
return this.script_id_;
};
ScriptBreakPoint.prototype.script_name=function(){
return this.script_name_;
};
ScriptBreakPoint.prototype.script_regexp_object=function(){
return this.script_regexp_object_;
};
ScriptBreakPoint.prototype.line=function(){
return this.line_;
};
ScriptBreakPoint.prototype.column=function(){
return this.column_;
};
ScriptBreakPoint.prototype.actual_locations=function(){
var M=[];
for(var N=0;N<this.break_points_.length;N++){
M.push(this.break_points_[N].actual_location);
}
return M;
};
ScriptBreakPoint.prototype.update_positions=function(O,P){
this.line_=O;
this.column_=P;
};
ScriptBreakPoint.prototype.active=function(){
return this.active_;
};
ScriptBreakPoint.prototype.condition=function(){
return this.condition_;
};
ScriptBreakPoint.prototype.enable=function(){
this.active_=true;
};
ScriptBreakPoint.prototype.disable=function(){
this.active_=false;
};
ScriptBreakPoint.prototype.setCondition=function(G){
this.condition_=G;
};
ScriptBreakPoint.prototype.matchesScript=function(Q){
if(this.type_==u.ScriptBreakPointType.ScriptId){
return this.script_id_==Q.id;
}else{
if(!(Q.line_offset<=this.line_&&
this.line_<Q.line_offset+%ScriptLineCount(Q))){
return false;
}
if(this.type_==u.ScriptBreakPointType.ScriptName){
return this.script_name_==Q.nameOrSourceURL();
}else if(this.type_==u.ScriptBreakPointType.ScriptRegExp){
return this.script_regexp_object_.test(Q.nameOrSourceURL());
}else{
throw j(2,"Unexpected breakpoint type "+this.type_);
}
}
};
ScriptBreakPoint.prototype.set=function(Q){
var P=this.column();
var O=this.line();
if((P===(void 0))){
var R=%ScriptSourceLine(Q,O||Q.line_offset);
if(!Q.sourceColumnStart_){
Q.sourceColumnStart_=new d(%ScriptLineCount(Q));
}
if((Q.sourceColumnStart_[O]===(void 0))){
Q.sourceColumnStart_[O]=
R.match(v)[0].length;
}
P=Q.sourceColumnStart_[O];
}
var S=u.findScriptSourcePosition(Q,this.line(),P);
if((S===null))return;
var F=MakeBreakPoint(S,this);
var T=%SetScriptBreakPoint(Q,S,
this.position_alignment_,
F);
if((T===(void 0))){
T=S;
}
var U=Q.locationFromPosition(T,true);
F.actual_location={line:U.line,
column:U.column,
script_id:Q.id};
this.break_points_.push(F);
return F;
};
ScriptBreakPoint.prototype.clear=function(){
var V=[];
for(var N=0;N<z.length;N++){
if(z[N].script_break_point()&&
z[N].script_break_point()===this){
%ClearBreakPoint(z[N]);
}else{
V.push(z[N]);
}
}
z=V;
this.break_points_=[];
};
function UpdateScriptBreakPoints(Q){
for(var N=0;N<A.length;N++){
var F=A[N];
if((F.type()==u.ScriptBreakPointType.ScriptName||
F.type()==u.ScriptBreakPointType.ScriptRegExp)&&
F.matchesScript(Q)){
F.set(Q);
}
}
}
function GetScriptBreakPoints(Q){
var W=[];
for(var N=0;N<A.length;N++){
if(A[N].matchesScript(Q)){
W.push(A[N]);
}
}
return W;
}
u.setListener=function(X,Y){
if(!(%IsFunction(X))&&!(X===(void 0))&&!(X===null)){
throw k(33);
}
%SetDebugEventListener(X,Y);
};
u.breakLocations=function(Z,aa){
if(!(%IsFunction(Z)))throw k(33);
var ab=(aa===(void 0))
?u.BreakPositionAlignment.Statement:aa;
return %GetBreakLocations(Z,ab);
};
u.findScript=function(ac){
if((%IsFunction(ac))){
return %FunctionGetScript(ac);
}else if((%_IsRegExp(ac))){
var ad=u.scripts();
var ae=null;
var af=0;
for(var N in ad){
var Q=ad[N];
if(ac.test(Q.name)){
ae=Q;
af++;
}
}
if(af==1){
return ae;
}else{
return(void 0);
}
}else{
return %GetScript(ac);
}
};
u.scriptSource=function(ac){
return this.findScript(ac).source;
};
u.source=function(Z){
if(!(%IsFunction(Z)))throw k(33);
return %FunctionGetSourceCode(Z);
};
u.sourcePosition=function(Z){
if(!(%IsFunction(Z)))throw k(33);
return %FunctionGetScriptSourcePosition(Z);
};
u.findFunctionSourceLocation=function(ag,ah,ai){
var Q=%FunctionGetScript(ag);
var aj=%FunctionGetScriptSourcePosition(ag);
return %ScriptLocationFromLine(Q,ah,ai,aj);
};
u.findScriptSourcePosition=function(Q,ah,ai){
var ak=%ScriptLocationFromLine(Q,ah,ai,0);
return ak?ak.position:null;
};
u.findBreakPoint=function(al,am){
var F;
for(var N=0;N<z.length;N++){
if(z[N].number()==al){
F=z[N];
if(am){
z.splice(N,1);
}
break;
}
}
if(F){
return F;
}else{
return this.findScriptBreakPoint(al,am);
}
};
u.findBreakPointActualLocations=function(al){
for(var N=0;N<A.length;N++){
if(A[N].number()==al){
return A[N].actual_locations();
}
}
for(var N=0;N<z.length;N++){
if(z[N].number()==al){
return[z[N].actual_location];
}
}
return[];
};
u.setBreakPoint=function(ag,ah,ai,an){
if(!(%IsFunction(ag)))throw k(33);
if(%FunctionIsAPIFunction(ag)){
throw j(2,'Cannot set break point in native code.');
}
var ao=
this.findFunctionSourceLocation(ag,ah,ai).position;
var D=ao-this.sourcePosition(ag);
var Q=%FunctionGetScript(ag);
if(Q.type==u.ScriptType.Native){
throw j(2,'Cannot set break point in native code.');
}
if(Q&&Q.id){
D+=%FunctionGetScriptSourcePosition(ag);
var ak=Q.locationFromPosition(D,false);
return this.setScriptBreakPointById(Q.id,
ak.line,ak.column,
an);
}else{
var F=MakeBreakPoint(D);
var T=
%SetFunctionBreakPoint(ag,D,F);
T+=this.sourcePosition(ag);
var U=Q.locationFromPosition(T,true);
F.actual_location={line:U.line,
column:U.column,
script_id:Q.id};
F.setCondition(an);
return F.number();
}
};
u.setBreakPointByScriptIdAndPosition=function(script_id,S,
G,enabled,
opt_position_alignment)
{
var F=MakeBreakPoint(S);
F.setCondition(G);
if(!enabled){
F.disable();
}
var ad=this.scripts();
var ap=(opt_position_alignment===(void 0))
?u.BreakPositionAlignment.Statement:opt_position_alignment;
for(var N=0;N<ad.length;N++){
if(script_id==ad[N].id){
F.actual_position=%SetScriptBreakPoint(ad[N],S,
ap,F);
break;
}
}
return F;
};
u.enableBreakPoint=function(al){
var F=this.findBreakPoint(al,false);
if(F){
F.enable();
}
};
u.disableBreakPoint=function(al){
var F=this.findBreakPoint(al,false);
if(F){
F.disable();
}
};
u.changeBreakPointCondition=function(al,G){
var F=this.findBreakPoint(al,false);
F.setCondition(G);
};
u.clearBreakPoint=function(al){
var F=this.findBreakPoint(al,true);
if(F){
return %ClearBreakPoint(F);
}else{
F=this.findScriptBreakPoint(al,true);
if(!F)throw j(2,'Invalid breakpoint');
}
};
u.clearAllBreakPoints=function(){
for(var N=0;N<z.length;N++){
var F=z[N];
%ClearBreakPoint(F);
}
z=[];
};
u.disableAllBreakPoints=function(){
for(var N=1;N<y;N++){
u.disableBreakPoint(N);
}
%ChangeBreakOnException(u.ExceptionBreak.Caught,false);
%ChangeBreakOnException(u.ExceptionBreak.Uncaught,false);
};
u.findScriptBreakPoint=function(al,am){
var aq;
for(var N=0;N<A.length;N++){
if(A[N].number()==al){
aq=A[N];
if(am){
aq.clear();
A.splice(N,1);
}
break;
}
}
return aq;
};
u.setScriptBreakPoint=function(w,script_id_or_name,
ah,ai,an,
opt_groupId,opt_position_alignment){
var aq=
new ScriptBreakPoint(w,script_id_or_name,ah,ai,
opt_groupId,opt_position_alignment);
aq.number_=y++;
aq.setCondition(an);
A.push(aq);
var ad=this.scripts();
for(var N=0;N<ad.length;N++){
if(aq.matchesScript(ad[N])){
aq.set(ad[N]);
}
}
return aq.number();
};
u.setScriptBreakPointById=function(script_id,
ah,ai,
an,opt_groupId,
opt_position_alignment){
return this.setScriptBreakPoint(u.ScriptBreakPointType.ScriptId,
script_id,ah,ai,
an,opt_groupId,
opt_position_alignment);
};
u.setScriptBreakPointByName=function(script_name,
ah,ai,
an,opt_groupId){
return this.setScriptBreakPoint(u.ScriptBreakPointType.ScriptName,
script_name,ah,ai,
an,opt_groupId);
};
u.setScriptBreakPointByRegExp=function(script_regexp,
ah,ai,
an,opt_groupId){
return this.setScriptBreakPoint(u.ScriptBreakPointType.ScriptRegExp,
script_regexp,ah,ai,
an,opt_groupId);
};
u.enableScriptBreakPoint=function(al){
var aq=this.findScriptBreakPoint(al,false);
aq.enable();
};
u.disableScriptBreakPoint=function(al){
var aq=this.findScriptBreakPoint(al,false);
aq.disable();
};
u.changeScriptBreakPointCondition=function(
al,G){
var aq=this.findScriptBreakPoint(al,false);
aq.setCondition(G);
};
u.scriptBreakPoints=function(){
return A;
};
u.clearStepping=function(){
%ClearStepping();
};
u.setBreakOnException=function(){
return %ChangeBreakOnException(u.ExceptionBreak.Caught,true);
};
u.clearBreakOnException=function(){
return %ChangeBreakOnException(u.ExceptionBreak.Caught,false);
};
u.isBreakOnException=function(){
return!!%IsBreakOnException(u.ExceptionBreak.Caught);
};
u.setBreakOnUncaughtException=function(){
return %ChangeBreakOnException(u.ExceptionBreak.Uncaught,true);
};
u.clearBreakOnUncaughtException=function(){
return %ChangeBreakOnException(u.ExceptionBreak.Uncaught,false);
};
u.isBreakOnUncaughtException=function(){
return!!%IsBreakOnException(u.ExceptionBreak.Uncaught);
};
u.showBreakPoints=function(Z,ar,as){
if(!(%IsFunction(Z)))throw j(33);
var at=ar?this.scriptSource(Z):this.source(Z);
var au=ar?this.sourcePosition(Z):0;
var M=this.breakLocations(Z,as);
if(!M)return at;
M.sort(function(av,aw){return av-aw;});
var W="";
var ax=0;
var ay;
for(var N=0;N<M.length;N++){
ay=M[N]-au;
W+=at.slice(ax,ay);
W+="[B"+N+"]";
ax=ay;
}
ay=at.length;
W+=at.substring(ax,ay);
return W;
};
u.scripts=function(){
return %DebugGetLoadedScripts();
};
u.debuggerFlags=function(){
return B;
};
u.MakeMirror=l;
function MakeExecutionState(J){
return new ExecutionState(J);
}
function ExecutionState(J){
this.break_id=J;
this.selected_frame=0;
}
ExecutionState.prototype.prepareStep=function(az){
if(az===u.StepAction.StepIn||
az===u.StepAction.StepOut||
az===u.StepAction.StepNext||
az===u.StepAction.StepFrame){
return %PrepareStep(this.break_id,az);
}
throw k(33);
};
ExecutionState.prototype.evaluateGlobal=function(at,disable_break,
opt_additional_context){
return l(%DebugEvaluateGlobal(this.break_id,at,
(!!(disable_break)),
opt_additional_context));
};
ExecutionState.prototype.frameCount=function(){
return %GetFrameCount(this.break_id);
};
ExecutionState.prototype.frame=function(aA){
if(aA==null)aA=this.selected_frame;
if(aA<0||aA>=this.frameCount()){
throw k(32);
}
return new c(this.break_id,aA);
};
ExecutionState.prototype.setSelectedFrame=function(aB){
var N=(%_ToNumber(aB));
if(N<0||N>=this.frameCount()){
throw k(32);
}
this.selected_frame=N;
};
ExecutionState.prototype.selectedFrame=function(){
return this.selected_frame;
};
ExecutionState.prototype.debugCommandProcessor=function(aC){
return new DebugCommandProcessor(this,aC);
};
function MakeBreakEvent(J,aD){
return new BreakEvent(J,aD);
}
function BreakEvent(J,aD){
this.frame_=new c(J,0);
this.break_points_hit_=aD;
}
BreakEvent.prototype.eventType=function(){
return u.DebugEvent.Break;
};
BreakEvent.prototype.func=function(){
return this.frame_.func();
};
BreakEvent.prototype.sourceLine=function(){
return this.frame_.sourceLine();
};
BreakEvent.prototype.sourceColumn=function(){
return this.frame_.sourceColumn();
};
BreakEvent.prototype.sourceLineText=function(){
return this.frame_.sourceLineText();
};
BreakEvent.prototype.breakPointsHit=function(){
return this.break_points_hit_;
};
BreakEvent.prototype.toJSONProtocol=function(){
var aE={seq:x++,
type:"event",
event:"break",
body:{invocationText:this.frame_.invocationText()}
};
var Q=this.func().script();
if(Q){
aE.body.sourceLine=this.sourceLine(),
aE.body.sourceColumn=this.sourceColumn(),
aE.body.sourceLineText=this.sourceLineText(),
aE.body.script=MakeScriptObject_(Q,false);
}
if(this.breakPointsHit()){
aE.body.breakpoints=[];
for(var N=0;N<this.breakPointsHit().length;N++){
var aF=this.breakPointsHit()[N];
var aq=aF.script_break_point();
var aG;
if(aq){
aG=aq.number();
}else{
aG=aF.number();
}
aE.body.breakpoints.push(aG);
}
}
return h(ObjectToProtocolObject_(aE));
};
function MakeExceptionEvent(J,aH,aI,aJ){
return new ExceptionEvent(J,aH,aI,aJ);
}
function ExceptionEvent(J,aH,aI,aJ){
this.exec_state_=new ExecutionState(J);
this.exception_=aH;
this.uncaught_=aI;
this.promise_=aJ;
}
ExceptionEvent.prototype.eventType=function(){
return u.DebugEvent.Exception;
};
ExceptionEvent.prototype.exception=function(){
return this.exception_;
};
ExceptionEvent.prototype.uncaught=function(){
return this.uncaught_;
};
ExceptionEvent.prototype.promise=function(){
return this.promise_;
};
ExceptionEvent.prototype.func=function(){
return this.exec_state_.frame(0).func();
};
ExceptionEvent.prototype.sourceLine=function(){
return this.exec_state_.frame(0).sourceLine();
};
ExceptionEvent.prototype.sourceColumn=function(){
return this.exec_state_.frame(0).sourceColumn();
};
ExceptionEvent.prototype.sourceLineText=function(){
return this.exec_state_.frame(0).sourceLineText();
};
ExceptionEvent.prototype.toJSONProtocol=function(){
var aE=new ProtocolMessage();
aE.event="exception";
aE.body={uncaught:this.uncaught_,
exception:l(this.exception_)
};
if(this.exec_state_.frameCount()>0){
aE.body.sourceLine=this.sourceLine();
aE.body.sourceColumn=this.sourceColumn();
aE.body.sourceLineText=this.sourceLineText();
var Q=this.func().script();
if(Q){
aE.body.script=MakeScriptObject_(Q,false);
}
}else{
aE.body.sourceLine=-1;
}
return aE.toJSONProtocol();
};
function MakeCompileEvent(Q,w){
return new CompileEvent(Q,w);
}
function CompileEvent(Q,w){
this.script_=l(Q);
this.type_=w;
}
CompileEvent.prototype.eventType=function(){
return this.type_;
};
CompileEvent.prototype.script=function(){
return this.script_;
};
CompileEvent.prototype.toJSONProtocol=function(){
var aE=new ProtocolMessage();
aE.running=true;
switch(this.type_){
case u.DebugEvent.BeforeCompile:
aE.event="beforeCompile";
break;
case u.DebugEvent.AfterCompile:
aE.event="afterCompile";
break;
case u.DebugEvent.CompileError:
aE.event="compileError";
break;
}
aE.body={};
aE.body.script=this.script_;
return aE.toJSONProtocol();
};
function MakeScriptObject_(Q,aK){
var aE={id:Q.id(),
name:Q.name(),
lineOffset:Q.lineOffset(),
columnOffset:Q.columnOffset(),
lineCount:Q.lineCount(),
};
if(!(Q.data()===(void 0))){
aE.data=Q.data();
}
if(aK){
aE.source=Q.source();
}
return aE;
}
function MakeAsyncTaskEvent(aL){
return new AsyncTaskEvent(aL);
}
function AsyncTaskEvent(aL){
this.type_=aL.type;
this.name_=aL.name;
this.id_=aL.id;
}
AsyncTaskEvent.prototype.type=function(){
return this.type_;
}
AsyncTaskEvent.prototype.name=function(){
return this.name_;
}
AsyncTaskEvent.prototype.id=function(){
return this.id_;
}
function DebugCommandProcessor(H,aC){
this.exec_state_=H;
this.running_=aC||false;
}
DebugCommandProcessor.prototype.processDebugRequest=function(aM){
return this.processDebugJSONRequest(aM);
};
function ProtocolMessage(aM){
this.seq=x++;
if(aM){
this.type='response';
this.request_seq=aM.seq;
this.command=aM.command;
}else{
this.type='event';
}
this.success=true;
this.running=(void 0);
}
ProtocolMessage.prototype.setOption=function(aN,C){
if(!this.options_){
this.options_={};
}
this.options_[aN]=C;
};
ProtocolMessage.prototype.failed=function(aO,aP){
this.success=false;
this.message=aO;
if((typeof(aP)==='object')){
this.error_details=aP;
}
};
ProtocolMessage.prototype.toJSONProtocol=function(){
var aQ={};
aQ.seq=this.seq;
if(this.request_seq){
aQ.request_seq=this.request_seq;
}
aQ.type=this.type;
if(this.event){
aQ.event=this.event;
}
if(this.command){
aQ.command=this.command;
}
if(this.success){
aQ.success=this.success;
}else{
aQ.success=false;
}
if(this.body){
var aR;
var aS=m(true,this.options_);
if(this.body instanceof o){
aR=aS.serializeValue(this.body);
}else if(this.body instanceof d){
aR=[];
for(var N=0;N<this.body.length;N++){
if(this.body[N]instanceof o){
aR.push(aS.serializeValue(this.body[N]));
}else{
aR.push(ObjectToProtocolObject_(this.body[N],aS));
}
}
}else{
aR=ObjectToProtocolObject_(this.body,aS);
}
aQ.body=aR;
aQ.refs=aS.serializeReferencedObjects();
}
if(this.message){
aQ.message=this.message;
}
if(this.error_details){
aQ.error_details=this.error_details;
}
aQ.running=this.running;
return h(aQ);
};
DebugCommandProcessor.prototype.createResponse=function(aM){
return new ProtocolMessage(aM);
};
DebugCommandProcessor.prototype.processDebugJSONRequest=function(
json_request){
var aM;
var aT;
try{
try{
aM=g(json_request);
aT=this.createResponse(aM);
if(!aM.type){
throw j(2,'Type not specified');
}
if(aM.type!='request'){
throw j(2,
"Illegal type '"+aM.type+"' in request");
}
if(!aM.command){
throw j(2,'Command not specified');
}
if(aM.arguments){
var aU=aM.arguments;
if(aU.inlineRefs||aU.compactFormat){
aT.setOption('inlineRefs',true);
}
if(!(aU.maxStringLength===(void 0))){
aT.setOption('maxStringLength',aU.maxStringLength);
}
}
var aV=aM.command.toLowerCase();
var aW=DebugCommandProcessor.prototype.dispatch_[aV];
if((%IsFunction(aW))){
%_Call(aW,this,aM,aT);
}else{
throw j(2,
'Unknown command "'+aM.command+'" in request');
}
}catch(e){
if(!aT){
aT=this.createResponse();
}
aT.success=false;
aT.message=(%_ToString(e));
}
try{
if(!(aT.running===(void 0))){
this.running_=aT.running;
}
aT.running=this.running_;
return aT.toJSONProtocol();
}catch(e){
return'{"seq":'+aT.seq+','+
'"request_seq":'+aM.seq+','+
'"type":"response",'+
'"success":false,'+
'"message":"Internal error: '+(%_ToString(e))+'"}';
}
}catch(e){
return'{"seq":0,"type":"response","success":false,"message":"Internal error"}';
}
};
DebugCommandProcessor.prototype.continueRequest_=function(aM,aT){
if(aM.arguments){
var az=u.StepAction.StepIn;
var aX=aM.arguments.stepaction;
if(aX){
if(aX=='in'){
az=u.StepAction.StepIn;
}else if(aX=='next'){
az=u.StepAction.StepNext;
}else if(aX=='out'){
az=u.StepAction.StepOut;
}else{
throw j(2,
'Invalid stepaction argument "'+aX+'".');
}
}
this.exec_state_.prepareStep(az);
}
aT.running=true;
};
DebugCommandProcessor.prototype.breakRequest_=function(aM,aT){
};
DebugCommandProcessor.prototype.setBreakPointRequest_=
function(aM,aT){
if(!aM.arguments){
aT.failed('Missing arguments');
return;
}
var w=aM.arguments.type;
var aY=aM.arguments.target;
var O=aM.arguments.line;
var P=aM.arguments.column;
var aZ=(aM.arguments.enabled===(void 0))?
true:aM.arguments.enabled;
var G=aM.arguments.condition;
var ba=aM.arguments.groupId;
if(!w||(aY===(void 0))){
aT.failed('Missing argument "type" or "target"');
return;
}
var al;
if(w=='function'){
if(!(typeof(aY)==='string')){
aT.failed('Argument "target" is not a string value');
return;
}
var Z;
try{
Z=this.exec_state_.evaluateGlobal(aY).value();
}catch(e){
aT.failed('Error: "'+(%_ToString(e))+
'" evaluating "'+aY+'"');
return;
}
if(!(%IsFunction(Z))){
aT.failed('"'+aY+'" does not evaluate to a function');
return;
}
al=u.setBreakPoint(Z,O,P,G);
}else if(w=='handle'){
var bb=q(aY,10);
var I=i(bb);
if(!I){
return aT.failed('Object #'+bb+'# not found');
}
if(!I.isFunction()){
return aT.failed('Object #'+bb+'# is not a function');
}
al=u.setBreakPoint(I.value(),
O,P,G);
}else if(w=='script'){
al=
u.setScriptBreakPointByName(aY,O,P,G,
ba);
}else if(w=='scriptId'){
al=
u.setScriptBreakPointById(aY,O,P,G,ba);
}else if(w=='scriptRegExp'){
al=
u.setScriptBreakPointByRegExp(aY,O,P,G,
ba);
}else{
aT.failed('Illegal type "'+w+'"');
return;
}
var F=u.findBreakPoint(al);
if(!aZ){
u.disableBreakPoint(al);
}
aT.body={type:w,
breakpoint:al};
if(F instanceof ScriptBreakPoint){
if(F.type()==u.ScriptBreakPointType.ScriptId){
aT.body.type='scriptId';
aT.body.script_id=F.script_id();
}else if(F.type()==u.ScriptBreakPointType.ScriptName){
aT.body.type='scriptName';
aT.body.script_name=F.script_name();
}else if(F.type()==u.ScriptBreakPointType.ScriptRegExp){
aT.body.type='scriptRegExp';
aT.body.script_regexp=F.script_regexp_object().source;
}else{
throw j(2,
"Unexpected breakpoint type: "+F.type());
}
aT.body.line=F.line();
aT.body.column=F.column();
aT.body.actual_locations=F.actual_locations();
}else{
aT.body.type='function';
aT.body.actual_locations=[F.actual_location];
}
};
DebugCommandProcessor.prototype.changeBreakPointRequest_=function(
aM,aT){
if(!aM.arguments){
aT.failed('Missing arguments');
return;
}
var F=(%_ToNumber(aM.arguments.breakpoint));
var aZ=aM.arguments.enabled;
var G=aM.arguments.condition;
if(!F){
aT.failed('Missing argument "breakpoint"');
return;
}
if(!(aZ===(void 0))){
if(aZ){
u.enableBreakPoint(F);
}else{
u.disableBreakPoint(F);
}
}
if(!(G===(void 0))){
u.changeBreakPointCondition(F,G);
}
};
DebugCommandProcessor.prototype.clearBreakPointGroupRequest_=function(
aM,aT){
if(!aM.arguments){
aT.failed('Missing arguments');
return;
}
var bc=aM.arguments.groupId;
if(!bc){
aT.failed('Missing argument "groupId"');
return;
}
var bd=[];
var be=[];
for(var N=0;N<A.length;N++){
var bf=A[N];
if(bf.groupId()==bc){
bd.push(bf.number());
bf.clear();
}else{
be.push(bf);
}
}
A=be;
aT.body={breakpoints:bd};
};
DebugCommandProcessor.prototype.clearBreakPointRequest_=function(
aM,aT){
if(!aM.arguments){
aT.failed('Missing arguments');
return;
}
var F=(%_ToNumber(aM.arguments.breakpoint));
if(!F){
aT.failed('Missing argument "breakpoint"');
return;
}
u.clearBreakPoint(F);
aT.body={breakpoint:F};
};
DebugCommandProcessor.prototype.listBreakpointsRequest_=function(
aM,aT){
var bg=[];
for(var N=0;N<A.length;N++){
var F=A[N];
var bh={
number:F.number(),
line:F.line(),
column:F.column(),
groupId:F.groupId(),
active:F.active(),
condition:F.condition(),
actual_locations:F.actual_locations()
};
if(F.type()==u.ScriptBreakPointType.ScriptId){
bh.type='scriptId';
bh.script_id=F.script_id();
}else if(F.type()==u.ScriptBreakPointType.ScriptName){
bh.type='scriptName';
bh.script_name=F.script_name();
}else if(F.type()==u.ScriptBreakPointType.ScriptRegExp){
bh.type='scriptRegExp';
bh.script_regexp=F.script_regexp_object().source;
}else{
throw j(2,
"Unexpected breakpoint type: "+F.type());
}
bg.push(bh);
}
aT.body={
breakpoints:bg,
breakOnExceptions:u.isBreakOnException(),
breakOnUncaughtExceptions:u.isBreakOnUncaughtException()
};
};
DebugCommandProcessor.prototype.disconnectRequest_=
function(aM,aT){
u.disableAllBreakPoints();
this.continueRequest_(aM,aT);
};
DebugCommandProcessor.prototype.setExceptionBreakRequest_=
function(aM,aT){
if(!aM.arguments){
aT.failed('Missing arguments');
return;
}
var w=aM.arguments.type;
if(!w){
aT.failed('Missing argument "type"');
return;
}
var aZ;
if(w=='all'){
aZ=!u.isBreakOnException();
}else if(w=='uncaught'){
aZ=!u.isBreakOnUncaughtException();
}
if(!(aM.arguments.enabled===(void 0))){
aZ=aM.arguments.enabled;
if((aZ!=true)&&(aZ!=false)){
aT.failed('Illegal value for "enabled":"'+aZ+'"');
}
}
if(w=='all'){
%ChangeBreakOnException(u.ExceptionBreak.Caught,aZ);
}else if(w=='uncaught'){
%ChangeBreakOnException(u.ExceptionBreak.Uncaught,aZ);
}else{
aT.failed('Unknown "type":"'+w+'"');
}
aT.body={'type':w,'enabled':aZ};
};
DebugCommandProcessor.prototype.backtraceRequest_=function(
aM,aT){
var bi=this.exec_state_.frameCount();
if(bi==0){
aT.body={
totalFrames:bi
};
return;
}
var bj=0;
var bk=t;
if(aM.arguments){
if(aM.arguments.fromFrame){
bj=aM.arguments.fromFrame;
}
if(aM.arguments.toFrame){
bk=aM.arguments.toFrame;
}
if(aM.arguments.bottom){
var bl=bi-bj;
bj=bi-bk;
bk=bl;
}
if(bj<0||bk<0){
return aT.failed('Invalid frame number');
}
}
bk=n(bi,bk);
if(bk<=bj){
var bm='Invalid frame range';
return aT.failed(bm);
}
var bn=[];
for(var N=bj;N<bk;N++){
bn.push(this.exec_state_.frame(N));
}
aT.body={
fromFrame:bj,
toFrame:bk,
totalFrames:bi,
frames:bn
};
};
DebugCommandProcessor.prototype.frameRequest_=function(aM,aT){
if(this.exec_state_.frameCount()==0){
return aT.failed('No frames');
}
if(aM.arguments){
var aB=aM.arguments.number;
if(aB<0||this.exec_state_.frameCount()<=aB){
return aT.failed('Invalid frame number');
}
this.exec_state_.setSelectedFrame(aM.arguments.number);
}
aT.body=this.exec_state_.frame();
};
DebugCommandProcessor.prototype.resolveFrameFromScopeDescription_=
function(bo){
if(bo&&!(bo.frameNumber===(void 0))){
var bp=bo.frameNumber;
if(bp<0||this.exec_state_.frameCount()<=bp){
throw k(32);
}
return this.exec_state_.frame(bp);
}else{
return this.exec_state_.frame();
}
};
DebugCommandProcessor.prototype.resolveScopeHolder_=
function(bo){
if(bo&&"functionHandle"in bo){
if(!(typeof(bo.functionHandle)==='number')){
throw j(2,'Function handle must be a number');
}
var bq=i(bo.functionHandle);
if(!bq){
throw j(2,'Failed to find function object by handle');
}
if(!bq.isFunction()){
throw j(2,
'Value of non-function type is found by handle');
}
return bq;
}else{
if(this.exec_state_.frameCount()==0){
throw j(2,'No scopes');
}
var br=this.resolveFrameFromScopeDescription_(bo);
return br;
}
}
DebugCommandProcessor.prototype.scopesRequest_=function(aM,aT){
var bs=this.resolveScopeHolder_(aM.arguments);
var bt=bs.scopeCount();
var bu=[];
for(var N=0;N<bt;N++){
bu.push(bs.scope(N));
}
aT.body={
fromScope:0,
toScope:bt,
totalScopes:bt,
scopes:bu
};
};
DebugCommandProcessor.prototype.scopeRequest_=function(aM,aT){
var bs=this.resolveScopeHolder_(aM.arguments);
var bv=0;
if(aM.arguments&&!(aM.arguments.number===(void 0))){
bv=(%_ToNumber(aM.arguments.number));
if(bv<0||bs.scopeCount()<=bv){
return aT.failed('Invalid scope number');
}
}
aT.body=bs.scope(bv);
};
DebugCommandProcessor.resolveValue_=function(bw){
if("handle"in bw){
var bx=i(bw.handle);
if(!bx){
throw j(2,"Failed to resolve value by handle, ' #"+
bw.handle+"# not found");
}
return bx.value();
}else if("stringDescription"in bw){
if(bw.type==p.BOOLEAN_TYPE){
return(!!(bw.stringDescription));
}else if(bw.type==p.NUMBER_TYPE){
return(%_ToNumber(bw.stringDescription));
}if(bw.type==p.STRING_TYPE){
return(%_ToString(bw.stringDescription));
}else{
throw j(2,"Unknown type");
}
}else if("value"in bw){
return bw.value;
}else if(bw.type==p.UNDEFINED_TYPE){
return(void 0);
}else if(bw.type==p.NULL_TYPE){
return null;
}else{
throw j(2,"Failed to parse value description");
}
};
DebugCommandProcessor.prototype.setVariableValueRequest_=
function(aM,aT){
if(!aM.arguments){
aT.failed('Missing arguments');
return;
}
if((aM.arguments.name===(void 0))){
aT.failed('Missing variable name');
}
var by=aM.arguments.name;
var bo=aM.arguments.scope;
var bs=this.resolveScopeHolder_(bo);
if((bo.number===(void 0))){
aT.failed('Missing scope number');
}
var bv=(%_ToNumber(bo.number));
var bz=bs.scope(bv);
var bA=
DebugCommandProcessor.resolveValue_(aM.arguments.newValue);
bz.setVariableValue(by,bA);
var bB=l(bA);
aT.body={
newValue:bB
};
};
DebugCommandProcessor.prototype.evaluateRequest_=function(aM,aT){
if(!aM.arguments){
return aT.failed('Missing arguments');
}
var bC=aM.arguments.expression;
var br=aM.arguments.frame;
var a=aM.arguments.global;
var bD=aM.arguments.disable_break;
var bE=aM.arguments.additional_context;
try{
bC=(%_ToString(bC));
}catch(e){
return aT.failed('Failed to convert expression argument to string');
}
if(!(br===(void 0))&&a){
return aT.failed('Arguments "frame" and "global" are exclusive');
}
var bF;
if(bE){
bF={};
for(var N=0;N<bE.length;N++){
var bG=bE[N];
if(!(typeof(bG.name)==='string')){
return aT.failed("Context element #"+N+
" doesn't contain name:string property");
}
var bH=DebugCommandProcessor.resolveValue_(bG);
bF[bG.name]=bH;
}
}
if(a){
aT.body=this.exec_state_.evaluateGlobal(
bC,(!!(bD)),bF);
return;
}
if((bD===(void 0))){
bD=true;
}
if(this.exec_state_.frameCount()==0){
return aT.failed('No frames');
}
if(!(br===(void 0))){
var bI=(%_ToNumber(br));
if(bI<0||bI>=this.exec_state_.frameCount()){
return aT.failed('Invalid frame "'+br+'"');
}
aT.body=this.exec_state_.frame(bI).evaluate(
bC,(!!(bD)),bF);
return;
}else{
aT.body=this.exec_state_.frame().evaluate(
bC,(!!(bD)),bF);
return;
}
};
DebugCommandProcessor.prototype.lookupRequest_=function(aM,aT){
if(!aM.arguments){
return aT.failed('Missing arguments');
}
var bJ=aM.arguments.handles;
if((bJ===(void 0))){
return aT.failed('Argument "handles" missing');
}
if(!(aM.arguments.includeSource===(void 0))){
var bK=(!!(aM.arguments.includeSource));
aT.setOption('includeSource',bK);
}
var bL={};
for(var N=0;N<bJ.length;N++){
var bb=bJ[N];
var I=i(bb);
if(!I){
return aT.failed('Object #'+bb+'# not found');
}
bL[bb]=I;
}
aT.body=bL;
};
DebugCommandProcessor.prototype.referencesRequest_=
function(aM,aT){
if(!aM.arguments){
return aT.failed('Missing arguments');
}
var w=aM.arguments.type;
var bb=aM.arguments.handle;
if((w===(void 0))){
return aT.failed('Argument "type" missing');
}
if((bb===(void 0))){
return aT.failed('Argument "handle" missing');
}
if(w!='referencedBy'&&w!='constructedBy'){
return aT.failed('Invalid type "'+w+'"');
}
var I=i(bb);
if(I){
if(w=='referencedBy'){
aT.body=I.referencedBy();
}else{
aT.body=I.constructedBy();
}
}else{
return aT.failed('Object #'+bb+'# not found');
}
};
DebugCommandProcessor.prototype.sourceRequest_=function(aM,aT){
if(this.exec_state_.frameCount()==0){
return aT.failed('No source');
}
var bM;
var bN;
var br=this.exec_state_.frame();
if(aM.arguments){
bM=aM.arguments.fromLine;
bN=aM.arguments.toLine;
if(!(aM.arguments.frame===(void 0))){
var bI=(%_ToNumber(aM.arguments.frame));
if(bI<0||bI>=this.exec_state_.frameCount()){
return aT.failed('Invalid frame "'+br+'"');
}
br=this.exec_state_.frame(bI);
}
}
var Q=br.func().script();
if(!Q){
return aT.failed('No source');
}
var bO=Q.value();
var bP=bO.line_offset;
var bQ=%ScriptLineCount(bO);
bM=(bM===(void 0))?0:bM-bP;
bN=(bN===(void 0))?bQ:bN-bP;
if(bM<0)bM=0;
if(bN>bQ)bN=bQ;
if(bM>=bQ||bN<0||bM>bN){
return aT.failed('Invalid line interval');
}
aT.body={};
aT.body.fromLine=bM+bP;
aT.body.toLine=bN+bP;
aT.body.fromPosition=%ScriptLineStartPosition(bO,bM);
aT.body.toPosition=
(bN==0)?0:%ScriptLineEndPosition(bO,bN-1);
aT.body.totalLines=%ScriptLineCount(bO);
aT.body.source=%_SubString(bO.source,
aT.body.fromPosition,
aT.body.toPosition);
};
DebugCommandProcessor.prototype.scriptsRequest_=function(aM,aT){
var bR=ScriptTypeFlag(u.ScriptType.Normal);
var bK=false;
var bS=null;
if(aM.arguments){
if(!(aM.arguments.types===(void 0))){
bR=(%_ToNumber(aM.arguments.types));
if(f(bR)||bR<0){
return aT.failed('Invalid types "'+
aM.arguments.types+'"');
}
}
if(!(aM.arguments.includeSource===(void 0))){
bK=(!!(aM.arguments.includeSource));
aT.setOption('includeSource',bK);
}
if((%_IsArray(aM.arguments.ids))){
bS={};
var bT=aM.arguments.ids;
for(var N=0;N<bT.length;N++){
bS[bT[N]]=true;
}
}
var bU=null;
var bV=null;
if(!(aM.arguments.filter===(void 0))){
var bW=(%_ToNumber(aM.arguments.filter));
if(!f(bW)){
bV=bW;
}
bU=aM.arguments.filter;
}
}
var ad=%DebugGetLoadedScripts();
aT.body=[];
for(var N=0;N<ad.length;N++){
if(bS&&!bS[ad[N].id]){
continue;
}
if(bU||bV){
var Q=ad[N];
var bX=false;
if(bV&&!bX){
if(Q.id&&Q.id===bV){
bX=true;
}
}
if(bU&&!bX){
if(Q.name&&Q.name.indexOf(bU)>=0){
bX=true;
}
}
if(!bX)continue;
}
if(bR&ScriptTypeFlag(ad[N].type)){
aT.body.push(l(ad[N]));
}
}
};
DebugCommandProcessor.prototype.suspendRequest_=function(aM,aT){
aT.running=false;
};
DebugCommandProcessor.prototype.versionRequest_=function(aM,aT){
aT.body={
V8Version:%GetV8Version()
};
};
DebugCommandProcessor.prototype.changeLiveRequest_=function(
aM,aT){
if(!aM.arguments){
return aT.failed('Missing arguments');
}
var bY=aM.arguments.script_id;
var bZ=!!aM.arguments.preview_only;
var ad=%DebugGetLoadedScripts();
var ca=null;
for(var N=0;N<ad.length;N++){
if(ad[N].id==bY){
ca=ad[N];
}
}
if(!ca){
aT.failed('Script not found');
return;
}
var cb=new d();
if(!(typeof(aM.arguments.new_source)==='string')){
throw"new_source argument expected";
}
var cc=aM.arguments.new_source;
var cd;
try{
cd=u.LiveEdit.SetScriptSource(ca,
cc,bZ,cb);
}catch(e){
if(e instanceof u.LiveEdit.Failure&&"details"in e){
aT.failed(e.message,e.details);
return;
}
throw e;
}
aT.body={change_log:cb,result:cd};
if(!bZ&&!this.running_&&cd.stack_modified){
aT.body.stepin_recommended=true;
}
};
DebugCommandProcessor.prototype.restartFrameRequest_=function(
aM,aT){
if(!aM.arguments){
return aT.failed('Missing arguments');
}
var br=aM.arguments.frame;
if(this.exec_state_.frameCount()==0){
return aT.failed('No frames');
}
var ce;
if(!(br===(void 0))){
var bI=(%_ToNumber(br));
if(bI<0||bI>=this.exec_state_.frameCount()){
return aT.failed('Invalid frame "'+br+'"');
}
ce=this.exec_state_.frame(bI);
}else{
ce=this.exec_state_.frame();
}
var cd=ce.restart();
aT.body={result:cd};
};
DebugCommandProcessor.prototype.debuggerFlagsRequest_=function(aM,
aT){
if(!aM.arguments){
aT.failed('Missing arguments');
return;
}
var cf=aM.arguments.flags;
aT.body={flags:[]};
if(!(cf===(void 0))){
for(var N=0;N<cf.length;N++){
var aN=cf[N].name;
var cg=B[aN];
if(!cg){
continue;
}
if('value'in cf[N]){
cg.setValue(cf[N].value);
}
aT.body.flags.push({name:aN,value:cg.getValue()});
}
}else{
for(var aN in B){
var C=B[aN].getValue();
aT.body.flags.push({name:aN,value:C});
}
}
};
DebugCommandProcessor.prototype.v8FlagsRequest_=function(aM,aT){
var cf=aM.arguments.flags;
if(!cf)cf='';
%SetFlags(cf);
};
DebugCommandProcessor.prototype.gcRequest_=function(aM,aT){
var w=aM.arguments.type;
if(!w)w='all';
var ch=%GetHeapUsage();
%CollectGarbage(w);
var ci=%GetHeapUsage();
aT.body={"before":ch,"after":ci};
};
DebugCommandProcessor.prototype.dispatch_=(function(){
var cj=DebugCommandProcessor.prototype;
return{
"continue":cj.continueRequest_,
"break":cj.breakRequest_,
"setbreakpoint":cj.setBreakPointRequest_,
"changebreakpoint":cj.changeBreakPointRequest_,
"clearbreakpoint":cj.clearBreakPointRequest_,
"clearbreakpointgroup":cj.clearBreakPointGroupRequest_,
"disconnect":cj.disconnectRequest_,
"setexceptionbreak":cj.setExceptionBreakRequest_,
"listbreakpoints":cj.listBreakpointsRequest_,
"backtrace":cj.backtraceRequest_,
"frame":cj.frameRequest_,
"scopes":cj.scopesRequest_,
"scope":cj.scopeRequest_,
"setvariablevalue":cj.setVariableValueRequest_,
"evaluate":cj.evaluateRequest_,
"lookup":cj.lookupRequest_,
"references":cj.referencesRequest_,
"source":cj.sourceRequest_,
"scripts":cj.scriptsRequest_,
"suspend":cj.suspendRequest_,
"version":cj.versionRequest_,
"changelive":cj.changeLiveRequest_,
"restartframe":cj.restartFrameRequest_,
"flags":cj.debuggerFlagsRequest_,
"v8flag":cj.v8FlagsRequest_,
"gc":cj.gcRequest_,
};
})();
DebugCommandProcessor.prototype.isRunning=function(){
return this.running_;
};
DebugCommandProcessor.prototype.systemBreak=function(ck,aU){
return %SystemBreak();
};
function ObjectToProtocolObject_(cl,cm){
var cn={};
for(var aV in cl){
if(typeof aV=='string'){
var co=ValueToProtocolValue_(cl[aV],
cm);
if(!(co===(void 0))){
cn[aV]=co;
}
}
}
return cn;
}
function ArrayToProtocolArray_(bg,cm){
var aQ=[];
for(var N=0;N<bg.length;N++){
aQ.push(ValueToProtocolValue_(bg[N],cm));
}
return aQ;
}
function ValueToProtocolValue_(C,cm){
var aQ;
switch(typeof C){
case'object':
if(C instanceof o){
aQ=cm.serializeValue(C);
}else if((%_IsArray(C))){
aQ=ArrayToProtocolArray_(C,cm);
}else{
aQ=ObjectToProtocolObject_(C,cm);
}
break;
case'boolean':
case'string':
case'number':
aQ=C;
break;
default:
aQ=null;
}
return aQ;
}
b.InstallConstants(a,[
"Debug",u,
"DebugCommandProcessor",DebugCommandProcessor,
"BreakEvent",BreakEvent,
"CompileEvent",CompileEvent,
"BreakPoint",BreakPoint,
]);
b.InstallFunctions(b,2,[
"MakeExecutionState",MakeExecutionState,
"MakeExceptionEvent",MakeExceptionEvent,
"MakeBreakEvent",MakeBreakEvent,
"MakeCompileEvent",MakeCompileEvent,
"MakeAsyncTaskEvent",MakeAsyncTaskEvent,
"IsBreakPointTriggered",IsBreakPointTriggered,
"UpdateScriptBreakPoints",UpdateScriptBreakPoints,
]);
b.Export(function(cp){
cp.GetScriptBreakPoints=GetScriptBreakPoints;
});
})

 liveedit%ú
(function(a,b){
"use strict";
var c=a.Debug.findScriptSourcePosition;
var d;
var e=a.Array;
var f=a.Math.floor;
var g=a.SyntaxError;
b.Import(function(h){
d=h.GetScriptBreakPoints;
});
var i;
function ApplyPatchMultiChunk(script,diff_array,new_source,preview_only,
change_log){
var j=script.source;
var k=GatherCompileInfo(j,script);
var l=BuildCodeInfoTree(k);
var m=new PosTranslator(diff_array);
MarkChangedFunctions(l,m.GetChunks());
FindLiveSharedInfos(l,script);
var n;
try{
n=GatherCompileInfo(new_source,script);
}catch(e){
var o=
new Failure("Failed to compile new version of script: "+e);
if(e instanceof g){
var p={
type:"liveedit_compile_error",
syntaxErrorMessage:e.message
};
CopyErrorPositionToDetails(e,p);
o.details=p;
}
throw o;
}
var q=BuildCodeInfoTree(n);
FindCorrespondingFunctions(l,q);
var r=new e();
var s=new e();
var t=new e();
var u=new e();
function HarvestTodo(v){
function CollectDamaged(w){
s.push(w);
for(var x=0;x<w.children.length;x++){
CollectDamaged(w.children[x]);
}
}
function CollectNew(y){
for(var x=0;x<y.length;x++){
t.push(y[x]);
CollectNew(y[x].children);
}
}
if(v.status==i.DAMAGED){
CollectDamaged(v);
return;
}
if(v.status==i.UNCHANGED){
u.push(v);
}else if(v.status==i.SOURCE_CHANGED){
u.push(v);
}else if(v.status==i.CHANGED){
r.push(v);
CollectNew(v.unmatched_new_nodes);
}
for(var x=0;x<v.children.length;x++){
HarvestTodo(v.children[x]);
}
}
var z={
change_tree:DescribeChangeTree(l),
textual_diff:{
old_len:j.length,
new_len:new_source.length,
chunks:diff_array
},
updated:false
};
if(preview_only){
return z;
}
HarvestTodo(l);
var A=new e();
var B=new e();
for(var x=0;x<r.length;x++){
var C=r[x].live_shared_function_infos;
var D=
r[x].corresponding_node.info.shared_function_info;
if(C){
for(var E=0;E<C.length;E++){
A.push(C[E]);
B.push(D);
}
}
}
var F=
CheckStackActivations(A,
B,
change_log);
z.stack_modified=F!=0;
var G=TemporaryRemoveBreakPoints(script,change_log);
var H;
if(s.length==0){
%LiveEditReplaceScript(script,new_source,null);
H=(void 0);
}else{
var I=CreateNameForOldScript(script);
H=%LiveEditReplaceScript(script,new_source,
I);
var J=new e();
change_log.push({linked_to_old_script:J});
for(var x=0;x<s.length;x++){
LinkToOldScript(s[x],H,
J);
}
z.created_script_name=I;
}
for(var x=0;x<t.length;x++){
%LiveEditFunctionSetScript(
t[x].info.shared_function_info,script);
}
for(var x=0;x<r.length;x++){
PatchFunctionCode(r[x],change_log);
}
var K=new e();
change_log.push({position_patched:K});
for(var x=0;x<u.length;x++){
PatchPositions(u[x],diff_array,
K);
if(u[x].live_shared_function_infos){
u[x].live_shared_function_infos.
forEach(function(L){
%LiveEditFunctionSourceUpdated(L.raw_array);
});
}
}
G(m,H);
z.updated=true;
return z;
}
function GatherCompileInfo(M,N){
var O=%LiveEditGatherCompileInfo(N,M);
var P=new e();
var Q=new e();
for(var x=0;x<O.length;x++){
var L=new FunctionCompileInfo(O[x]);
%LiveEditFunctionSetScript(L.shared_function_info,(void 0));
P.push(L);
Q.push(x);
}
for(var x=0;x<P.length;x++){
var R=x;
for(var E=x+1;E<P.length;E++){
if(P[R].start_position>P[E].start_position){
R=E;
}
}
if(R!=x){
var S=P[R];
var T=Q[R];
P[R]=P[x];
Q[R]=Q[x];
P[x]=S;
Q[x]=T;
}
}
var U=0;
function ResetIndexes(V,W){
var X=-1;
while(U<P.length&&
P[U].outer_index==W){
var Y=U;
P[Y].outer_index=V;
if(X!=-1){
P[X].next_sibling_index=Y;
}
X=Y;
U++;
ResetIndexes(Y,Q[Y]);
}
if(X!=-1){
P[X].next_sibling_index=-1;
}
}
ResetIndexes(-1,-1);
Assert(U==P.length);
return P;
}
function PatchFunctionCode(v,Z){
var D=v.corresponding_node.info;
if(v.live_shared_function_infos){
v.live_shared_function_infos.forEach(function(aa){
%LiveEditReplaceFunctionCode(D.raw_array,
aa.raw_array);
for(var x=0;x<v.children.length;x++){
if(v.children[x].corresponding_node){
var ab=
v.children[x].corresponding_node.info.
shared_function_info;
if(v.children[x].live_shared_function_infos){
v.children[x].live_shared_function_infos.
forEach(function(ac){
%LiveEditReplaceRefToNestedFunction(
aa.info,
ab,
ac.info);
});
}
}
}
});
Z.push({function_patched:D.function_name});
}else{
Z.push({function_patched:D.function_name,
function_info_not_found:true});
}
}
function LinkToOldScript(ad,H,ae){
if(ad.live_shared_function_infos){
ad.live_shared_function_infos.
forEach(function(L){
%LiveEditFunctionSetScript(L.info,H);
});
ae.push({name:ad.info.function_name});
}else{
ae.push(
{name:ad.info.function_name,not_found:true});
}
}
function TemporaryRemoveBreakPoints(af,Z){
var ag=d(af);
var ah=[];
Z.push({break_points_update:ah});
var ai=[];
for(var x=0;x<ag.length;x++){
var aj=ag[x];
aj.clear();
var ak=c(af,
aj.line(),aj.column());
var al={
position:ak,
line:aj.line(),
column:aj.column()
};
ai.push(al);
}
return function(m,am){
for(var x=0;x<ag.length;x++){
var aj=ag[x];
if(am){
var an=aj.cloneForOtherScript(am);
an.set(am);
ah.push({
type:"copied_to_old",
id:aj.number(),
new_id:an.number(),
positions:ai[x]
});
}
var ao=m.Translate(
ai[x].position,
PosTranslator.ShiftWithTopInsideChunkHandler);
var ap=
af.locationFromPosition(ao,false);
aj.update_positions(ap.line,ap.column);
var aq={
position:ao,
line:ap.line,
column:ap.column
};
aj.set(af);
ah.push({type:"position_changed",
id:aj.number(),
old_positions:ai[x],
new_positions:aq
});
}
};
}
function Assert(ar,as){
if(!ar){
if(as){
throw"Assert "+as;
}else{
throw"Assert";
}
}
}
function DiffChunk(at,au,av,aw){
this.pos1=at;
this.pos2=au;
this.len1=av;
this.len2=aw;
}
function PosTranslator(ax){
var ay=new e();
var az=0;
for(var x=0;x<ax.length;x+=3){
var aA=ax[x];
var aB=aA+az;
var aC=ax[x+1];
var aD=ax[x+2];
ay.push(new DiffChunk(aA,aB,aC-aA,
aD-aB));
az=aD-aC;
}
this.chunks=ay;
}
PosTranslator.prototype.GetChunks=function(){
return this.chunks;
};
PosTranslator.prototype.Translate=function(aE,aF){
var aG=this.chunks;
if(aG.length==0||aE<aG[0].pos1){
return aE;
}
var aH=0;
var aI=aG.length-1;
while(aH<aI){
var aJ=f((aH+aI)/2);
if(aE<aG[aJ+1].pos1){
aI=aJ;
}else{
aH=aJ+1;
}
}
var aK=aG[aH];
if(aE>=aK.pos1+aK.len1){
return aE+aK.pos2+aK.len2-aK.pos1-aK.len1;
}
if(!aF){
aF=PosTranslator.DefaultInsideChunkHandler;
}
return aF(aE,aK);
};
PosTranslator.DefaultInsideChunkHandler=function(aE,aL){
Assert(false,"Cannot translate position in changed area");
};
PosTranslator.ShiftWithTopInsideChunkHandler=
function(aE,aL){
return aE-aL.pos1+aL.pos2;
};
var i={
UNCHANGED:"unchanged",
SOURCE_CHANGED:"source changed",
CHANGED:"changed",
DAMAGED:"damaged"
};
function CodeInfoTreeNode(aM,aN,aO){
this.info=aM;
this.children=aN;
this.array_index=aO;
this.parent=(void 0);
this.status=i.UNCHANGED;
this.status_explanation=(void 0);
this.new_start_pos=(void 0);
this.new_end_pos=(void 0);
this.corresponding_node=(void 0);
this.unmatched_new_nodes=(void 0);
this.textual_corresponding_node=(void 0);
this.textually_unmatched_new_nodes=(void 0);
this.live_shared_function_infos=(void 0);
}
function BuildCodeInfoTree(aP){
var aQ=0;
function BuildNode(){
var aR=aQ;
aQ++;
var aS=new e();
while(aQ<aP.length&&
aP[aQ].outer_index==aR){
aS.push(BuildNode());
}
var w=new CodeInfoTreeNode(aP[aR],aS,
aR);
for(var x=0;x<aS.length;x++){
aS[x].parent=w;
}
return w;
}
var aT=BuildNode();
Assert(aQ==aP.length);
return aT;
}
function MarkChangedFunctions(aU,ay){
var aV=new function(){
var aW=0;
var aX=0;
this.current=function(){return ay[aW];};
this.next=function(){
var aK=ay[aW];
aX=aK.pos2+aK.len2-(aK.pos1+aK.len1);
aW++;
};
this.done=function(){return aW>=ay.length;};
this.TranslatePos=function(aE){return aE+aX;};
};
function ProcessInternals(aY){
aY.new_start_pos=aV.TranslatePos(
aY.info.start_position);
var aZ=0;
var ba=false;
var bb=false;
while(!aV.done()&&
aV.current().pos1<aY.info.end_position){
if(aZ<aY.children.length){
var bc=aY.children[aZ];
if(bc.info.end_position<=aV.current().pos1){
ProcessUnchangedChild(bc);
aZ++;
continue;
}else if(bc.info.start_position>=
aV.current().pos1+aV.current().len1){
ba=true;
aV.next();
continue;
}else if(bc.info.start_position<=aV.current().pos1&&
bc.info.end_position>=aV.current().pos1+
aV.current().len1){
ProcessInternals(bc);
bb=bb||
(bc.status!=i.UNCHANGED);
ba=ba||
(bc.status==i.DAMAGED);
aZ++;
continue;
}else{
ba=true;
bc.status=i.DAMAGED;
bc.status_explanation=
"Text diff overlaps with function boundary";
aZ++;
continue;
}
}else{
if(aV.current().pos1+aV.current().len1<=
aY.info.end_position){
aY.status=i.CHANGED;
aV.next();
continue;
}else{
aY.status=i.DAMAGED;
aY.status_explanation=
"Text diff overlaps with function boundary";
return;
}
}
Assert("Unreachable",false);
}
while(aZ<aY.children.length){
var bc=aY.children[aZ];
ProcessUnchangedChild(bc);
aZ++;
}
if(ba){
aY.status=i.CHANGED;
}else if(bb){
aY.status=i.SOURCE_CHANGED;
}
aY.new_end_pos=
aV.TranslatePos(aY.info.end_position);
}
function ProcessUnchangedChild(w){
w.new_start_pos=aV.TranslatePos(w.info.start_position);
w.new_end_pos=aV.TranslatePos(w.info.end_position);
}
ProcessInternals(aU);
}
function FindCorrespondingFunctions(bd,be){
function ProcessNode(v,bf){
var bg=
IsFunctionContextLocalsChanged(v.info,bf.info);
if(bg){
v.status=i.CHANGED;
}
var bh=v.children;
var bi=bf.children;
var bj=[];
var bk=[];
var bl=0;
var bm=0;
while(bl<bh.length){
if(bh[bl].status==i.DAMAGED){
bl++;
}else if(bm<bi.length){
if(bi[bm].info.start_position<
bh[bl].new_start_pos){
bj.push(bi[bm]);
bk.push(bi[bm]);
bm++;
}else if(bi[bm].info.start_position==
bh[bl].new_start_pos){
if(bi[bm].info.end_position==
bh[bl].new_end_pos){
bh[bl].corresponding_node=
bi[bm];
bh[bl].textual_corresponding_node=
bi[bm];
if(bg){
bh[bl].status=i.DAMAGED;
bh[bl].status_explanation=
"Enclosing function is now incompatible. "+
bg;
bh[bl].corresponding_node=(void 0);
}else if(bh[bl].status!=
i.UNCHANGED){
ProcessNode(bh[bl],
bi[bm]);
if(bh[bl].status==i.DAMAGED){
bj.push(
bh[bl].corresponding_node);
bh[bl].corresponding_node=(void 0);
v.status=i.CHANGED;
}
}
}else{
bh[bl].status=i.DAMAGED;
bh[bl].status_explanation=
"No corresponding function in new script found";
v.status=i.CHANGED;
bj.push(bi[bm]);
bk.push(bi[bm]);
}
bm++;
bl++;
}else{
bh[bl].status=i.DAMAGED;
bh[bl].status_explanation=
"No corresponding function in new script found";
v.status=i.CHANGED;
bl++;
}
}else{
bh[bl].status=i.DAMAGED;
bh[bl].status_explanation=
"No corresponding function in new script found";
v.status=i.CHANGED;
bl++;
}
}
while(bm<bi.length){
bj.push(bi[bm]);
bk.push(bi[bm]);
bm++;
}
if(v.status==i.CHANGED){
if(v.info.param_num!=bf.info.param_num){
v.status=i.DAMAGED;
v.status_explanation="Changed parameter number: "+
v.info.param_num+" and "+bf.info.param_num;
}
}
v.unmatched_new_nodes=bj;
v.textually_unmatched_new_nodes=
bk;
}
ProcessNode(bd,be);
bd.corresponding_node=be;
bd.textual_corresponding_node=be;
Assert(bd.status!=i.DAMAGED,
"Script became damaged");
}
function FindLiveSharedInfos(bd,N){
var bn=%LiveEditFindSharedFunctionInfosForScript(N);
var bo=new e();
for(var x=0;x<bn.length;x++){
bo.push(new SharedInfoWrapper(bn[x]));
}
function FindFunctionInfos(P){
var bp=[];
for(var x=0;x<bo.length;x++){
var bq=bo[x];
if(bq.start_position==P.start_position&&
bq.end_position==P.end_position){
bp.push(bq);
}
}
if(bp.length>0){
return bp;
}
}
function TraverseTree(w){
w.live_shared_function_infos=FindFunctionInfos(w.info);
for(var x=0;x<w.children.length;x++){
TraverseTree(w.children[x]);
}
}
TraverseTree(bd);
}
function FunctionCompileInfo(br){
this.function_name=br[0];
this.start_position=br[1];
this.end_position=br[2];
this.param_num=br[3];
this.code=br[4];
this.code_scope_info=br[5];
this.scope_info=br[6];
this.outer_index=br[7];
this.shared_function_info=br[8];
this.next_sibling_index=null;
this.raw_array=br;
}
function SharedInfoWrapper(br){
this.function_name=br[0];
this.start_position=br[1];
this.end_position=br[2];
this.info=br[3];
this.raw_array=br;
}
function PatchPositions(ad,ax,ae){
if(ad.live_shared_function_infos){
ad.live_shared_function_infos.forEach(function(L){
%LiveEditPatchFunctionPositions(L.raw_array,
ax);
});
ae.push({name:ad.info.function_name});
}else{
ae.push(
{name:ad.info.function_name,info_not_found:true});
}
}
function CreateNameForOldScript(N){
return N.name+" (old)";
}
function IsFunctionContextLocalsChanged(bs,bt){
var bu=bs.scope_info;
var bv=bt.scope_info;
var bw;
var bx;
if(bu){
bw=bu.toString();
}else{
bw="";
}
if(bv){
bx=bv.toString();
}else{
bx="";
}
if(bw!=bx){
return"Variable map changed: ["+bw+
"] => ["+bx+"]";
}
return;
}
var by;
function CheckStackActivations(old_shared_wrapper_list,
new_shared_list,
Z){
var bz=new e();
for(var x=0;x<old_shared_wrapper_list.length;x++){
bz[x]=old_shared_wrapper_list[x].info;
}
var bA=%LiveEditCheckAndDropActivations(
bz,new_shared_list,true);
if(bA[old_shared_wrapper_list.length]){
throw new Failure(bA[old_shared_wrapper_list.length]);
}
var bB=new e();
var bC=new e();
for(var x=0;x<bz.length;x++){
var bD=old_shared_wrapper_list[x];
if(bA[x]==by.REPLACED_ON_ACTIVE_STACK){
bC.push({name:bD.function_name});
}else if(bA[x]!=by.AVAILABLE_FOR_PATCH){
var bE={
name:bD.function_name,
start_pos:bD.start_position,
end_pos:bD.end_position,
replace_problem:
by.SymbolName(bA[x])
};
bB.push(bE);
}
}
if(bC.length>0){
Z.push({dropped_from_stack:bC});
}
if(bB.length>0){
Z.push({functions_on_stack:bB});
throw new Failure("Blocked by functions on stack");
}
return bC.length;
}
var by={
AVAILABLE_FOR_PATCH:1,
BLOCKED_ON_ACTIVE_STACK:2,
BLOCKED_ON_OTHER_STACK:3,
BLOCKED_UNDER_NATIVE_CODE:4,
REPLACED_ON_ACTIVE_STACK:5,
BLOCKED_UNDER_GENERATOR:6,
BLOCKED_ACTIVE_GENERATOR:7,
BLOCKED_NO_NEW_TARGET_ON_RESTART:8
};
by.SymbolName=function(bF){
var bG=by;
for(var bH in bG){
if(bG[bH]==bF){
return bH;
}
}
};
function Failure(as){
this.message=as;
}
Failure.prototype.toString=function(){
return"LiveEdit Failure: "+this.message;
};
function CopyErrorPositionToDetails(bI,p){
function createPositionStruct(N,bJ){
if(bJ==-1)return;
var bK=N.locationFromPosition(bJ,true);
if(bK==null)return;
return{
line:bK.line+1,
column:bK.column+1,
position:bJ
};
}
if(!("scriptObject"in bI)||!("startPosition"in bI)){
return;
}
var N=bI.scriptObject;
var bL={
start:createPositionStruct(N,bI.startPosition),
end:createPositionStruct(N,bI.endPosition)
};
p.position=bL;
}
function GetPcFromSourcePos(bM,bN){
return %GetFunctionCodePositionFromSource(bM,bN);
}
function SetScriptSource(N,bO,bP,Z){
var j=N.source;
var bQ=CompareStrings(j,bO);
return ApplyPatchMultiChunk(N,bQ,bO,bP,
Z);
}
function CompareStrings(bR,bS){
return %LiveEditCompareStrings(bR,bS);
}
function ApplySingleChunkPatch(N,change_pos,change_len,new_str,
Z){
var j=N.source;
var bO=j.substring(0,change_pos)+
new_str+j.substring(change_pos+change_len);
return ApplyPatchMultiChunk(N,
[change_pos,change_pos+change_len,change_pos+new_str.length],
bO,false,Z);
}
function DescribeChangeTree(bd){
function ProcessOldNode(w){
var bT=[];
for(var x=0;x<w.children.length;x++){
var bc=w.children[x];
if(bc.status!=i.UNCHANGED){
bT.push(ProcessOldNode(bc));
}
}
var bU=[];
if(w.textually_unmatched_new_nodes){
for(var x=0;x<w.textually_unmatched_new_nodes.length;x++){
var bc=w.textually_unmatched_new_nodes[x];
bU.push(ProcessNewNode(bc));
}
}
var bV={
name:w.info.function_name,
positions:DescribePositions(w),
status:w.status,
children:bT,
new_children:bU
};
if(w.status_explanation){
bV.status_explanation=w.status_explanation;
}
if(w.textual_corresponding_node){
bV.new_positions=DescribePositions(w.textual_corresponding_node);
}
return bV;
}
function ProcessNewNode(w){
var bT=[];
if(false){
for(var x=0;x<w.children.length;x++){
bT.push(ProcessNewNode(w.children[x]));
}
}
var bV={
name:w.info.function_name,
positions:DescribePositions(w),
children:bT,
};
return bV;
}
function DescribePositions(w){
return{
start_position:w.info.start_position,
end_position:w.info.end_position
};
}
return ProcessOldNode(bd);
}
var bW={};
bW.SetScriptSource=SetScriptSource;
bW.ApplyPatchMultiChunk=ApplyPatchMultiChunk;
bW.Failure=Failure;
bW.GetPcFromSourcePos=GetPcFromSourcePos;
bW.TestApi={
PosTranslator:PosTranslator,
CompareStrings:CompareStrings,
ApplySingleChunkPatch:ApplySingleChunkPatch
};
a.Debug.LiveEdit=bW;
})

\ prologueÕR
(function(a,b,c){
"use strict";
%CheckIsBootstrapping();
var d=(void 0);
var e=(void 0);
var f=%ExportFromRuntime({});
var g=(void 0);
function SetupTypedArray(h){
h.next=g;
g=h;
}
function Export(h){
h(f);
}
function Import(h){
h.next=d;
d=h;
}
function ImportNow(i){
return f[i];
}
function ImportFromExperimental(h){
h.next=e;
e=h;
}
function SetFunctionName(h,i,j){
if((typeof(i)==='symbol')){
i="["+%SymbolDescription(i)+"]";
}
if((j===(void 0))){
%FunctionSetName(h,i);
}else{
%FunctionSetName(h,j+" "+i);
}
}
function InstallConstants(k,l){
%CheckIsBootstrapping();
%OptimizeObjectForAddingMultipleProperties(k,l.length>>1);
var m=2|4|1;
for(var n=0;n<l.length;n+=2){
var i=l[n];
var o=l[n+1];
%AddNamedProperty(k,i,o,m);
}
%ToFastProperties(k);
}
function InstallFunctions(k,m,p){
%CheckIsBootstrapping();
%OptimizeObjectForAddingMultipleProperties(k,p.length>>1);
for(var n=0;n<p.length;n+=2){
var q=p[n];
var h=p[n+1];
SetFunctionName(h,q);
%FunctionRemovePrototype(h);
%AddNamedProperty(k,q,h,m);
%SetNativeFlag(h);
}
%ToFastProperties(k);
}
function InstallGetter(k,i,r,m,j){
%CheckIsBootstrapping();
if((m===(void 0)))m=2;
SetFunctionName(r,i,(j===(void 0))?"get":j);
%FunctionRemovePrototype(r);
%DefineGetterPropertyUnchecked(k,i,r,m);
%SetNativeFlag(r);
}
function InstallGetterSetter(k,i,r,s,m){
%CheckIsBootstrapping();
if((m===(void 0)))m=2;
SetFunctionName(r,i,"get");
SetFunctionName(s,i,"set");
%FunctionRemovePrototype(r);
%FunctionRemovePrototype(s);
%DefineAccessorPropertyUnchecked(k,i,r,s,2);
%SetNativeFlag(r);
%SetNativeFlag(s);
}
function OverrideFunction(k,i,h,t){
%CheckIsBootstrapping();
%object_define_property(k,i,{value:h,
writeable:true,
configurable:true,
enumerable:false});
SetFunctionName(h,i);
if(!t)%FunctionRemovePrototype(h);
%SetNativeFlag(h);
}
function SetUpLockedPrototype(
constructor,fields,methods){
%CheckIsBootstrapping();
var u=constructor.prototype;
var v=(methods.length>>1)+(fields?fields.length:0);
if(v>=4){
%OptimizeObjectForAddingMultipleProperties(u,v);
}
if(fields){
for(var n=0;n<fields.length;n++){
%AddNamedProperty(u,fields[n],
(void 0),2|4);
}
}
for(var n=0;n<methods.length;n+=2){
var q=methods[n];
var h=methods[n+1];
%AddNamedProperty(u,q,h,2|4|1);
%SetNativeFlag(h);
}
%InternalSetPrototype(u,null);
%ToFastProperties(u);
}
function PostNatives(b){
%CheckIsBootstrapping();
for(;!(d===(void 0));d=d.next){
d(f);
}
var w=[
"AddBoundMethod",
"ArrayToString",
"AsyncFunctionNext",
"AsyncFunctionThrow",
"ErrorToString",
"GetIterator",
"GetMethod",
"IntlParseDate",
"IntlParseNumber",
"IsNaN",
"MakeError",
"MakeRangeError",
"MakeTypeError",
"MapEntries",
"MapIterator",
"MapIteratorNext",
"MaxSimple",
"MinSimple",
"NumberIsInteger",
"PromiseChain",
"PromiseDefer",
"PromiseAccept",
"PromiseCreateRejected",
"PromiseCreateResolved",
"PromiseThen",
"RegExpSubclassExecJS",
"RegExpSubclassMatch",
"RegExpSubclassReplace",
"RegExpSubclassSearch",
"RegExpSubclassSplit",
"RegExpSubclassTest",
"SetIterator",
"SetIteratorNext",
"SetValues",
"SymbolToString",
"ToLocaleLowerCaseI18N",
"ToLocaleUpperCaseI18N",
"ToLowerCaseI18N",
"ToPositiveInteger",
"ToUpperCaseI18N",
"is_concat_spreadable_symbol",
"iterator_symbol",
"promise_result_symbol",
"promise_state_symbol",
"object_freeze",
"object_is_frozen",
"object_is_sealed",
"reflect_apply",
"reflect_construct",
"regexp_flags_symbol",
"to_string_tag_symbol",
"object_to_string",
"species_symbol",
"match_symbol",
"replace_symbol",
"search_symbol",
"split_symbol",
];
var x={};
%OptimizeObjectForAddingMultipleProperties(
x,w.length);
for(var q of w){
x[q]=f[q];
}
%ToFastProperties(x);
f=x;
b.PostNatives=(void 0);
b.ImportFromExperimental=(void 0);
}
function PostExperimentals(b){
%CheckIsBootstrapping();
%ExportExperimentalFromRuntime(f);
for(;!(d===(void 0));d=d.next){
d(f);
}
for(;!(e===(void 0));
e=e.next){
e(f);
}
b.Export=(void 0);
b.PostDebug=(void 0);
b.PostExperimentals=(void 0);
g=(void 0);
}
function PostDebug(b){
for(;!(d===(void 0));d=d.next){
d(f);
}
f=(void 0);
b.Export=(void 0);
b.Import=(void 0);
b.ImportNow=(void 0);
b.PostDebug=(void 0);
b.PostExperimentals=(void 0);
g=(void 0);
}
function InitializeBuiltinTypedArrays(b,y,z){
var A=g;
for(;!(A===(void 0));A=A.next){
A(y,z);
}
}
%OptimizeObjectForAddingMultipleProperties(b,14);
b.Import=Import;
b.ImportNow=ImportNow;
b.Export=Export;
b.ImportFromExperimental=ImportFromExperimental;
b.SetFunctionName=SetFunctionName;
b.InstallConstants=InstallConstants;
b.InstallFunctions=InstallFunctions;
b.InstallGetter=InstallGetter;
b.InstallGetterSetter=InstallGetterSetter;
b.OverrideFunction=OverrideFunction;
b.SetUpLockedPrototype=SetUpLockedPrototype;
b.PostNatives=PostNatives;
b.PostExperimentals=PostExperimentals;
b.PostDebug=PostDebug;
%ToFastProperties(b);
%OptimizeObjectForAddingMultipleProperties(c,5);
c.logStackTrace=function logStackTrace(){
%DebugTrace();
};
c.log=function log(){
let message='';
for(const arg of arguments){
message+=arg;
}
%GlobalPrint(message);
};
c.createPrivateSymbol=function createPrivateSymbol(i){
return %CreatePrivateSymbol(i);
};
c.simpleBind=function simpleBind(B,C){
return function(...args){
return %reflect_apply(B,C,args);
};
};
c.uncurryThis=function uncurryThis(B){
return function(C,...args){
return %reflect_apply(B,C,args);
};
};
%ToFastProperties(c);
})

runtime5
(function(a,b){
%CheckIsBootstrapping();
var c=a.Array;
var d=a.Boolean;
var e=a.String;
var f;
var g;
var h;
b.Import(function(i){
f=i.MakeRangeError;
g=i.MakeTypeError;
h=i.species_symbol;
});
function ToPositiveInteger(j,k){
var l=(%_ToInteger(j))+0;
if(l<0)throw f(k);
return l;
}
function MaxSimple(m,n){
return m>n?m:n;
}
function MinSimple(m,n){
return m>n?n:m;
}
%SetForceInlineFlag(MaxSimple);
%SetForceInlineFlag(MinSimple);
function SpeciesConstructor(o,p){
var q=o.constructor;
if((q===(void 0))){
return p;
}
if(!(%_IsJSReceiver(q))){
throw g(28);
}
var r=q[h];
if((r==null)){
return p;
}
if(%IsConstructor(r)){
return r;
}
throw g(234);
}
%FunctionSetPrototype(c,new c(0));
b.Export(function(s){
s.MaxSimple=MaxSimple;
s.MinSimple=MinSimple;
s.ToPositiveInteger=ToPositiveInteger;
s.SpeciesConstructor=SpeciesConstructor;
});
})

$v8natives]f
(function(a,b){
%CheckIsBootstrapping();
var c=a.Array;
var d=a.Number;
var e=a.Object;
var f=b.ImportNow("iterator_symbol");
var g;
var h;
var i;
var j;
var k=%GetRootNaN();
var l=b.ImportNow("object_to_string");
var m=b.ImportNow("to_string_tag_symbol");
b.Import(function(n){
g=n.MakeRangeError;
h=n.MakeSyntaxError;
i=n.MakeTypeError;
j=n.MathAbs;
});
function GlobalIsNaN(o){
o=(%_ToNumber(o));
return(!%_IsSmi(%IS_VAR(o))&&!(o==o));
}
function GlobalIsFinite(o){
o=(%_ToNumber(o));
return(%_IsSmi(%IS_VAR(o))||((o==o)&&(o!=1/0)&&(o!=-1/0)));
}
function GlobalParseInt(p,q){
if((q===(void 0))||q===10||q===0){
if(%_IsSmi(p))return p;
if((typeof(p)==='number')&&
((0.01<p&&p<1e9)||
(-1e9<p&&p<-0.01))){
return p|0;
}
p=(%_ToString(p));
q=q|0;
}else{
p=(%_ToString(p));
q=((q)|0);
if(!(q==0||(2<=q&&q<=36))){
return k;
}
}
if(%_HasCachedArrayIndex(p)&&
(q==0||q==10)){
return %_GetCachedArrayIndex(p);
}
return %StringParseInt(p,q);
}
function GlobalParseFloat(p){
p=(%_ToString(p));
if(%_HasCachedArrayIndex(p))return %_GetCachedArrayIndex(p);
return %StringParseFloat(p);
}
var r=2|4|1;
b.InstallConstants(a,[
"Infinity",(1/0),
"NaN",k,
"undefined",(void 0),
]);
b.InstallFunctions(a,2,[
"isNaN",GlobalIsNaN,
"isFinite",GlobalIsFinite,
"parseInt",GlobalParseInt,
"parseFloat",GlobalParseFloat,
]);
function ObjectToLocaleString(){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"Object.prototype.toLocaleString");
return this.toString();
}
function ObjectValueOf(){
return(%_ToObject(this));
}
function ObjectIsPrototypeOf(s){
if(!(%_IsJSReceiver(s)))return false;
var t=(%_ToObject(this));
return %HasInPrototypeChain(s,t);
}
function ObjectPropertyIsEnumerable(s){
var u=(%_ToName(s));
return %PropertyIsEnumerable((%_ToObject(this)),u);
}
function GetMethod(v,w){
var x=v[w];
if((x==null))return(void 0);
if((typeof(x)==='function'))return x;
throw i(15,typeof x);
}
function ObjectSetPrototypeOf(v,y){
if((%IS_VAR(v)===null)||(v===(void 0)))throw i(17,"Object.setPrototypeOf");
if(y!==null&&!(%_IsJSReceiver(y))){
throw i(86,y);
}
if((%_IsJSReceiver(v))){
%SetPrototype(v,y);
}
return v;
}
function ObjectGetProto(){
return %object_get_prototype_of(this);
}
function ObjectSetProto(y){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"Object.prototype.__proto__");
if(((%_IsJSReceiver(y))||(y===null))&&(%_IsJSReceiver(this))){
%SetPrototype(this,y);
}
}
function ObjectConstructor(z){
if(e!=new.target&&!(new.target===(void 0))){
return this;
}
if((z===null)||(z===(void 0)))return{};
return(%_ToObject(z));
}
%SetNativeFlag(e);
%SetCode(e,ObjectConstructor);
%AddNamedProperty(e.prototype,"constructor",e,
2);
b.InstallFunctions(e.prototype,2,[
"toString",l,
"toLocaleString",ObjectToLocaleString,
"valueOf",ObjectValueOf,
"isPrototypeOf",ObjectIsPrototypeOf,
"propertyIsEnumerable",ObjectPropertyIsEnumerable,
]);
b.InstallGetterSetter(
e.prototype,"__proto__",ObjectGetProto,ObjectSetProto);
b.InstallFunctions(e,2,[
"setPrototypeOf",ObjectSetPrototypeOf,
]);
function NumberToStringJS(q){
var o=this;
if(!(typeof(this)==='number')){
if(!(%_ClassOf(this)==='Number')){
throw i(68,'Number.prototype.toString');
}
o=%_ValueOf(this);
}
if((q===(void 0))||q===10){
return %_NumberToString(o);
}
q=(%_ToInteger(q));
if(q<2||q>36)throw g(179);
return %NumberToRadixString(o,q);
}
function NumberToLocaleString(){
return %_Call(NumberToStringJS,this);
}
function NumberValueOf(){
if(!(typeof(this)==='number')&&!(%_ClassOf(this)==='Number')){
throw i(68,'Number.prototype.valueOf');
}
return %_ValueOf(this);
}
function NumberToFixedJS(A){
var z=this;
if(!(typeof(this)==='number')){
if(!(%_ClassOf(this)==='Number')){
throw i(43,
"Number.prototype.toFixed",this);
}
z=%_ValueOf(this);
}
var B=(%_ToInteger(A));
if(B<0||B>20){
throw g(175,"toFixed() digits");
}
if((!%_IsSmi(%IS_VAR(z))&&!(z==z)))return"NaN";
if(z==(1/0))return"Infinity";
if(z==-(1/0))return"-Infinity";
return %NumberToFixed(z,B);
}
function NumberToExponentialJS(A){
var z=this;
if(!(typeof(this)==='number')){
if(!(%_ClassOf(this)==='Number')){
throw i(43,
"Number.prototype.toExponential",this);
}
z=%_ValueOf(this);
}
var B=(A===(void 0))?(void 0):(%_ToInteger(A));
if((!%_IsSmi(%IS_VAR(z))&&!(z==z)))return"NaN";
if(z==(1/0))return"Infinity";
if(z==-(1/0))return"-Infinity";
if((B===(void 0))){
B=-1;
}else if(B<0||B>20){
throw g(175,"toExponential()");
}
return %NumberToExponential(z,B);
}
function NumberToPrecisionJS(C){
var z=this;
if(!(typeof(this)==='number')){
if(!(%_ClassOf(this)==='Number')){
throw i(43,
"Number.prototype.toPrecision",this);
}
z=%_ValueOf(this);
}
if((C===(void 0)))return(%_ToString(z));
var w=(%_ToInteger(C));
if((!%_IsSmi(%IS_VAR(z))&&!(z==z)))return"NaN";
if(z==(1/0))return"Infinity";
if(z==-(1/0))return"-Infinity";
if(w<1||w>21){
throw g(178);
}
return %NumberToPrecision(z,w);
}
function NumberIsFinite(o){
return(typeof(o)==='number')&&(%_IsSmi(%IS_VAR(o))||((o==o)&&(o!=1/0)&&(o!=-1/0)));
}
function NumberIsInteger(o){
return NumberIsFinite(o)&&(%_ToInteger(o))==o;
}
function NumberIsNaN(o){
return(typeof(o)==='number')&&(!%_IsSmi(%IS_VAR(o))&&!(o==o));
}
function NumberIsSafeInteger(o){
if(NumberIsFinite(o)){
var D=(%_ToInteger(o));
if(D==o){
return j(D)<=9007199254740991;
}
}
return false;
}
%FunctionSetPrototype(d,new d(0));
%OptimizeObjectForAddingMultipleProperties(d.prototype,8);
%AddNamedProperty(d.prototype,"constructor",d,
2);
b.InstallConstants(d,[
"MAX_VALUE",1.7976931348623157e+308,
"MIN_VALUE",5e-324,
"NaN",k,
"NEGATIVE_INFINITY",-(1/0),
"POSITIVE_INFINITY",(1/0),
"MAX_SAFE_INTEGER",%_MathPow(2,53)-1,
"MIN_SAFE_INTEGER",-%_MathPow(2,53)+1,
"EPSILON",%_MathPow(2,-52)
]);
b.InstallFunctions(d.prototype,2,[
"toString",NumberToStringJS,
"toLocaleString",NumberToLocaleString,
"valueOf",NumberValueOf,
"toFixed",NumberToFixedJS,
"toExponential",NumberToExponentialJS,
"toPrecision",NumberToPrecisionJS
]);
b.InstallFunctions(d,2,[
"isFinite",NumberIsFinite,
"isInteger",NumberIsInteger,
"isNaN",NumberIsNaN,
"isSafeInteger",NumberIsSafeInteger,
"parseInt",GlobalParseInt,
"parseFloat",GlobalParseFloat
]);
%SetForceInlineFlag(NumberIsNaN);
function GetIterator(v,E){
if((E===(void 0))){
E=v[f];
}
if(!(typeof(E)==='function')){
throw i(69,v);
}
var F=%_Call(E,v);
if(!(%_IsJSReceiver(F))){
throw i(63,F);
}
return F;
}
b.Export(function(G){
G.GetIterator=GetIterator;
G.GetMethod=GetMethod;
G.IsNaN=GlobalIsNaN;
G.NumberIsNaN=NumberIsNaN;
G.NumberIsInteger=NumberIsInteger;
G.ObjectHasOwnProperty=e.prototype.hasOwnProperty;
});
%InstallToContext([
"object_value_of",ObjectValueOf,
]);
})

symbol
(function(a,b){
"use strict";
%CheckIsBootstrapping();
var c=a.Symbol;
var d=b.ImportNow("has_instance_symbol");
var e=
b.ImportNow("is_concat_spreadable_symbol");
var f=b.ImportNow("iterator_symbol");
var g;
var h=b.ImportNow("match_symbol");
var i=b.ImportNow("replace_symbol");
var j=b.ImportNow("search_symbol");
var k=b.ImportNow("species_symbol");
var l=b.ImportNow("split_symbol");
var m=b.ImportNow("to_primitive_symbol");
var n=b.ImportNow("to_string_tag_symbol");
var o=b.ImportNow("unscopables_symbol");
b.Import(function(p){
g=p.MakeTypeError;
});
function SymbolToPrimitive(q){
if(!((typeof(this)==='symbol')||(%_ClassOf(this)==='Symbol'))){
throw g(43,
"Symbol.prototype [ @@toPrimitive ]",this);
}
return %_ValueOf(this);
}
function SymbolToString(){
if(!((typeof(this)==='symbol')||(%_ClassOf(this)==='Symbol'))){
throw g(43,
"Symbol.prototype.toString",this);
}
return %SymbolDescriptiveString(%_ValueOf(this));
}
function SymbolValueOf(){
if(!((typeof(this)==='symbol')||(%_ClassOf(this)==='Symbol'))){
throw g(43,
"Symbol.prototype.valueOf",this);
}
return %_ValueOf(this);
}
function SymbolFor(r){
r=(%_ToString(r));
var s=%SymbolRegistry();
if((s.for[r]===(void 0))){
var t=%CreateSymbol(r);
s.for[r]=t;
s.keyFor[t]=r;
}
return s.for[r];
}
function SymbolKeyFor(t){
if(!(typeof(t)==='symbol'))throw g(136,t);
return %SymbolRegistry().keyFor[t];
}
b.InstallConstants(c,[
"hasInstance",d,
"isConcatSpreadable",e,
"iterator",f,
"match",h,
"replace",i,
"search",j,
"species",k,
"split",l,
"toPrimitive",m,
"toStringTag",n,
"unscopables",o,
]);
b.InstallFunctions(c,2,[
"for",SymbolFor,
"keyFor",SymbolKeyFor
]);
%AddNamedProperty(
c.prototype,n,"Symbol",2|1);
b.InstallFunctions(c.prototype,2|1,[
m,SymbolToPrimitive
]);
b.InstallFunctions(c.prototype,2,[
"toString",SymbolToString,
"valueOf",SymbolValueOf
]);
b.Export(function(u){
u.SymbolToString=SymbolToString;
})
})

array2w
(function(a,b,c){
"use strict";
%CheckIsBootstrapping();
var d;
var e;
var f=a.Array;
var g=b.InternalArray;
var h=b.InternalPackedArray;
var i;
var j;
var k;
var l;
var m=b.ImportNow("object_to_string");
var n=b.ImportNow("iterator_symbol");
var o=b.ImportNow("species_symbol");
var p=b.ImportNow("unscopables_symbol");
b.Import(function(q){
d=q.GetIterator;
e=q.GetMethod;
i=q.MakeTypeError;
j=q.MaxSimple;
k=q.MinSimple;
l=q.ObjectHasOwnProperty;
});
function ArraySpeciesCreate(r,s){
s=((s)+0);
var t=%ArraySpeciesConstructor(r);
return new t(s);
}
function KeySortCompare(u,v){
return u-v;
}
function GetSortedArrayKeys(r,w){
if((typeof(w)==='number')){
var x=new g();
var y=w;
for(var z=0;z<y;++z){
var A=r[z];
if(!(A===(void 0))||z in r){
x.push(z);
}
}
return x;
}
return InnerArraySort(w,w.length,KeySortCompare);
}
function SparseJoinWithSeparatorJS(r,x,s,B,C){
var D=x.length;
var E=new g(D*2);
for(var z=0;z<D;z++){
var F=x[z];
var A=r[F];
E[z*2]=F;
E[z*2+1]=(typeof(A)==='string')?A:B(A);
}
return %SparseJoinWithSeparator(E,s,C);
}
function SparseJoin(r,x,B){
var D=x.length;
var E=new g(D);
for(var z=0;z<D;z++){
var A=r[x[z]];
E[z]=(typeof(A)==='string')?A:B(A);
}
return %StringBuilderConcat(E,D,'');
}
function UseSparseVariant(r,s,G,H){
if(!G||s<1000||%HasComplexElements(r)){
return false;
}
if(!%_IsSmi(s)){
return true;
}
var I=s>>2;
var J=%EstimateNumberOfElements(r);
return(J<I)&&
(H>J*4);
}
function Stack(){
this.length=0;
this.values=new g();
}
Stack.prototype.length=null;
Stack.prototype.values=null;
function StackPush(K,L){
K.values[K.length++]=L;
}
function StackPop(K){
K.values[--K.length]=null
}
function StackHas(K,M){
var s=K.length;
var N=K.values;
for(var z=0;z<s;z++){
if(N[z]===M)return true;
}
return false;
}
var O=new Stack();
function DoJoin(r,s,G,C,B){
if(UseSparseVariant(r,s,G,s)){
%NormalizeElements(r);
var x=GetSortedArrayKeys(r,%GetArrayKeys(r,s));
if(C===''){
if(x.length===0)return'';
return SparseJoin(r,x,B);
}else{
return SparseJoinWithSeparatorJS(r,x,s,B,C);
}
}
if(s===1){
var A=r[0];
return(typeof(A)==='string')?A:B(A);
}
var E=new g(s);
if(C===''){
for(var z=0;z<s;z++){
var A=r[z];
E[z]=(typeof(A)==='string')?A:B(A);
}
return %StringBuilderConcat(E,s,'');
}
var A=r[0];
if((typeof(A)==='number')){
E[0]=%_NumberToString(A);
for(var z=1;z<s;z++){
A=r[z];
if((typeof(A)==='number')){
E[z]=%_NumberToString(A);
}else{
E[z]=(typeof(A)==='string')?A:B(A);
}
}
}else{
E[0]=(typeof(A)==='string')?A:B(A);
for(var z=1;z<s;z++){
A=r[z];
E[z]=(typeof(A)==='string')?A:B(A);
}
}
return %StringBuilderJoin(E,s,C);
}
function Join(r,s,C,B){
if(s===0)return'';
var G=(%_IsArray(r));
if(G){
if(StackHas(O,r))return'';
StackPush(O,r);
}
try{
return DoJoin(r,s,G,C,B);
}finally{
if(G)StackPop(O);
}
}
function ConvertToString(P){
if((P==null))return'';
return(%_ToString(P));
}
function ConvertToLocaleString(A){
if((A==null))return'';
return(%_ToString(A.toLocaleString()));
}
function SparseSlice(r,Q,R,S,T){
var w=%GetArrayKeys(r,Q+R);
if((typeof(w)==='number')){
var y=w;
for(var z=Q;z<y;++z){
var U=r[z];
if(!(U===(void 0))||z in r){
%CreateDataProperty(T,z-Q,U);
}
}
}else{
var s=w.length;
for(var V=0;V<s;++V){
var F=w[V];
if(F>=Q){
var U=r[F];
if(!(U===(void 0))||F in r){
%CreateDataProperty(T,F-Q,U);
}
}
}
}
}
function SparseMove(r,Q,R,S,W){
if(W===R)return;
var X=new g(
k(S-R+W,0xffffffff));
var Y;
var w=%GetArrayKeys(r,S);
if((typeof(w)==='number')){
var y=w;
for(var z=0;z<Q&&z<y;++z){
var U=r[z];
if(!(U===(void 0))||z in r){
X[z]=U;
}
}
for(var z=Q+R;z<y;++z){
var U=r[z];
if(!(U===(void 0))||z in r){
X[z-R+W]=U;
}
}
}else{
var s=w.length;
for(var V=0;V<s;++V){
var F=w[V];
if(F<Q){
var U=r[F];
if(!(U===(void 0))||F in r){
X[F]=U;
}
}else if(F>=Q+R){
var U=r[F];
if(!(U===(void 0))||F in r){
var Z=F-R+W;
X[Z]=U;
if(Z>0xfffffffe){
Y=Y||new g();
Y.push(Z);
}
}
}
}
}
%MoveArrayContents(X,r);
if(!(Y===(void 0))){
var s=Y.length;
for(var z=0;z<s;++z){
var F=Y[z];
r[F]=X[F];
}
}
}
function SimpleSlice(r,Q,R,S,T){
for(var z=0;z<R;z++){
var aa=Q+z;
if(aa in r){
var U=r[aa];
%CreateDataProperty(T,z,U);
}
}
}
function SimpleMove(r,Q,R,S,W){
if(W!==R){
if(W>R){
for(var z=S-R;z>Q;z--){
var ab=z+R-1;
var ac=z+W-1;
if(ab in r){
r[ac]=r[ab];
}else{
delete r[ac];
}
}
}else{
for(var z=Q;z<S-R;z++){
var ab=z+R;
var ac=z+W;
if(ab in r){
r[ac]=r[ab];
}else{
delete r[ac];
}
}
for(var z=S;z>S-R+W;z--){
delete r[z-1];
}
}
}
}
function ArrayToString(){
var r;
var ad;
if((%_IsArray(this))){
ad=this.join;
if(ad===ArrayJoin){
return Join(this,this.length,',',ConvertToString);
}
r=this;
}else{
r=(%_ToObject(this));
ad=r.join;
}
if(!(typeof(ad)==='function')){
return %_Call(m,r);
}
return %_Call(ad,r);
}
function InnerArrayToLocaleString(r,s){
var S=(%_ToLength(s));
if(S===0)return"";
return Join(r,S,',',ConvertToLocaleString);
}
function ArrayToLocaleString(){
var r=(%_ToObject(this));
var ae=r.length;
return InnerArrayToLocaleString(r,ae);
}
function InnerArrayJoin(C,r,s){
if((C===(void 0))){
C=',';
}else{
C=(%_ToString(C));
}
if(s===1){
var A=r[0];
if((A==null))return'';
return(%_ToString(A));
}
return Join(r,s,C,ConvertToString);
}
function ArrayJoin(C){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"Array.prototype.join");
var r=(%_ToObject(this));
var s=(%_ToLength(r.length));
return InnerArrayJoin(C,r,s);
}
function ArrayPop(){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"Array.prototype.pop");
var r=(%_ToObject(this));
var af=(%_ToLength(r.length));
if(af==0){
r.length=af;
return;
}
af--;
var L=r[af];
%DeleteProperty_Strict(r,af);
r.length=af;
return L;
}
function ArrayPush(){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"Array.prototype.push");
var r=(%_ToObject(this));
var af=(%_ToLength(r.length));
var ag=arguments.length;
if(ag>9007199254740991-af)throw i(226,ag,af);
for(var z=0;z<ag;z++){
r[z+af]=arguments[z];
}
var ah=af+ag;
r.length=ah;
return ah;
}
function SparseReverse(r,S){
var x=GetSortedArrayKeys(r,%GetArrayKeys(r,S));
var ai=x.length-1;
var aj=0;
while(aj<=ai){
var z=x[aj];
var ak=x[ai];
var al=S-ak-1;
var am,an;
if(al<=z){
an=ak;
while(x[--ai]==ak){}
am=al;
}
if(al>=z){
am=z;
while(x[++aj]==z){}
an=S-z-1;
}
var ao=r[am];
if(!(ao===(void 0))||am in r){
var ap=r[an];
if(!(ap===(void 0))||an in r){
r[am]=ap;
r[an]=ao;
}else{
r[an]=ao;
delete r[am];
}
}else{
var ap=r[an];
if(!(ap===(void 0))||an in r){
r[am]=ap;
delete r[an];
}
}
}
}
function PackedArrayReverse(r,S){
var ak=S-1;
for(var z=0;z<ak;z++,ak--){
var ao=r[z];
var ap=r[ak];
r[z]=ap;
r[ak]=ao;
}
return r;
}
function GenericArrayReverse(r,S){
var ak=S-1;
for(var z=0;z<ak;z++,ak--){
if(z in r){
var ao=r[z];
if(ak in r){
var ap=r[ak];
r[z]=ap;
r[ak]=ao;
}else{
r[ak]=ao;
delete r[z];
}
}else{
if(ak in r){
var ap=r[ak];
r[z]=ap;
delete r[ak];
}
}
}
return r;
}
function ArrayReverse(){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"Array.prototype.reverse");
var r=(%_ToObject(this));
var S=(%_ToLength(r.length));
var aq=(%_IsArray(r));
if(UseSparseVariant(r,S,aq,S)){
%NormalizeElements(r);
SparseReverse(r,S);
return r;
}else if(aq&&%_HasFastPackedElements(r)){
return PackedArrayReverse(r,S);
}else{
return GenericArrayReverse(r,S);
}
}
function ArrayShift(){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"Array.prototype.shift");
var r=(%_ToObject(this));
var S=(%_ToLength(r.length));
if(S===0){
r.length=0;
return;
}
if(%object_is_sealed(r))throw i(13);
var ar=r[0];
if(UseSparseVariant(r,S,(%_IsArray(r)),S)){
SparseMove(r,0,1,S,0);
}else{
SimpleMove(r,0,1,S,0);
}
r.length=S-1;
return ar;
}
function ArrayUnshift(as){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"Array.prototype.unshift");
var r=(%_ToObject(this));
var S=(%_ToLength(r.length));
var at=arguments.length;
if(S>0&&UseSparseVariant(r,S,(%_IsArray(r)),S)&&
!%object_is_sealed(r)){
SparseMove(r,0,0,S,at);
}else{
SimpleMove(r,0,0,S,at);
}
for(var z=0;z<at;z++){
r[z]=arguments[z];
}
var ah=S+at;
r.length=ah;
return ah;
}
function ArraySlice(au,av){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"Array.prototype.slice");
var r=(%_ToObject(this));
var S=(%_ToLength(r.length));
var Q=(%_ToInteger(au));
var aw=S;
if(!(av===(void 0)))aw=(%_ToInteger(av));
if(Q<0){
Q+=S;
if(Q<0)Q=0;
}else{
if(Q>S)Q=S;
}
if(aw<0){
aw+=S;
if(aw<0)aw=0;
}else{
if(aw>S)aw=S;
}
var ax=ArraySpeciesCreate(r,j(aw-Q,0));
if(aw<Q)return ax;
if(UseSparseVariant(r,S,(%_IsArray(r)),aw-Q)){
%NormalizeElements(r);
if((%_IsArray(ax)))%NormalizeElements(ax);
SparseSlice(r,Q,aw-Q,S,ax);
}else{
SimpleSlice(r,Q,aw-Q,S,ax);
}
ax.length=aw-Q;
return ax;
}
function ComputeSpliceStartIndex(Q,S){
if(Q<0){
Q+=S;
return Q<0?0:Q;
}
return Q>S?S:Q;
}
function ComputeSpliceDeleteCount(ay,at,S,Q){
var R=0;
if(at==1)
return S-Q;
R=(%_ToInteger(ay));
if(R<0)
return 0;
if(R>S-Q)
return S-Q;
return R;
}
function ArraySplice(au,ay){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"Array.prototype.splice");
var at=arguments.length;
var r=(%_ToObject(this));
var S=(%_ToLength(r.length));
var Q=ComputeSpliceStartIndex((%_ToInteger(au)),S);
var R=ComputeSpliceDeleteCount(ay,at,S,
Q);
var T=ArraySpeciesCreate(r,R);
T.length=R;
var az=at>2?at-2:0;
if(R!=az&&%object_is_sealed(r)){
throw i(13);
}else if(R>0&&%object_is_frozen(r)){
throw i(12);
}
var aA=R;
if(az!=R){
aA+=S-Q-R;
}
if(UseSparseVariant(r,S,(%_IsArray(r)),aA)){
%NormalizeElements(r);
if((%_IsArray(T)))%NormalizeElements(T);
SparseSlice(r,Q,R,S,T);
SparseMove(r,Q,R,S,az);
}else{
SimpleSlice(r,Q,R,S,T);
SimpleMove(r,Q,R,S,az);
}
var z=Q;
var aB=2;
var aC=arguments.length;
while(aB<aC){
r[z++]=arguments[aB++];
}
r.length=S-R+az;
return T;
}
function InnerArraySort(r,s,aD){
if(!(typeof(aD)==='function')){
aD=function(P,aE){
if(P===aE)return 0;
if(%_IsSmi(P)&&%_IsSmi(aE)){
return %SmiLexicographicCompare(P,aE);
}
P=(%_ToString(P));
aE=(%_ToString(aE));
if(P==aE)return 0;
else return P<aE?-1:1;
};
}
var aF=function InsertionSort(u,q,aG){
for(var z=q+1;z<aG;z++){
var aH=u[z];
for(var ak=z-1;ak>=q;ak--){
var aI=u[ak];
var aJ=aD(aI,aH);
if(aJ>0){
u[ak+1]=aI;
}else{
break;
}
}
u[ak+1]=aH;
}
};
var aK=function(u,q,aG){
var aL=new g();
var aM=200+((aG-q)&15);
var ak=0;
q+=1;
aG-=1;
for(var z=q;z<aG;z+=aM){
aL[ak]=[z,u[z]];
ak++;
}
aL.sort(function(u,v){
return aD(u[1],v[1]);
});
var aN=aL[aL.length>>1][0];
return aN;
}
var aO=function QuickSort(u,q,aG){
var aN=0;
while(true){
if(aG-q<=10){
aF(u,q,aG);
return;
}
if(aG-q>1000){
aN=aK(u,q,aG);
}else{
aN=q+((aG-q)>>1);
}
var aP=u[q];
var aQ=u[aG-1];
var aR=u[aN];
var aS=aD(aP,aQ);
if(aS>0){
var aI=aP;
aP=aQ;
aQ=aI;
}
var aT=aD(aP,aR);
if(aT>=0){
var aI=aP;
aP=aR;
aR=aQ;
aQ=aI;
}else{
var aU=aD(aQ,aR);
if(aU>0){
var aI=aQ;
aQ=aR;
aR=aI;
}
}
u[q]=aP;
u[aG-1]=aR;
var aV=aQ;
var aW=q+1;
var aX=aG-1;
u[aN]=u[aW];
u[aW]=aV;
partition:for(var z=aW+1;z<aX;z++){
var aH=u[z];
var aJ=aD(aH,aV);
if(aJ<0){
u[z]=u[aW];
u[aW]=aH;
aW++;
}else if(aJ>0){
do{
aX--;
if(aX==z)break partition;
var aY=u[aX];
aJ=aD(aY,aV);
}while(aJ>0);
u[z]=u[aX];
u[aX]=aH;
if(aJ<0){
aH=u[z];
u[z]=u[aW];
u[aW]=aH;
aW++;
}
}
}
if(aG-aX<aW-q){
aO(u,aX,aG);
aG=aW;
}else{
aO(u,q,aW);
q=aX;
}
}
};
var aZ=function CopyFromPrototype(ba,s){
var bb=0;
for(var bc=%object_get_prototype_of(ba);bc;
bc=%object_get_prototype_of(bc)){
var w=(%_IsJSProxy(bc))?s:%GetArrayKeys(bc,s);
if((typeof(w)==='number')){
var bd=w;
for(var z=0;z<bd;z++){
if(!(%_Call(l,ba,z))&&(%_Call(l,bc,z))){
ba[z]=bc[z];
if(z>=bb){bb=z+1;}
}
}
}else{
for(var z=0;z<w.length;z++){
var aa=w[z];
if(!(%_Call(l,ba,aa))&&(%_Call(l,bc,aa))){
ba[aa]=bc[aa];
if(aa>=bb){bb=aa+1;}
}
}
}
}
return bb;
};
var be=function(ba,q,aG){
for(var bc=%object_get_prototype_of(ba);bc;
bc=%object_get_prototype_of(bc)){
var w=(%_IsJSProxy(bc))?aG:%GetArrayKeys(bc,aG);
if((typeof(w)==='number')){
var bd=w;
for(var z=q;z<bd;z++){
if((%_Call(l,bc,z))){
ba[z]=(void 0);
}
}
}else{
for(var z=0;z<w.length;z++){
var aa=w[z];
if(q<=aa&&(%_Call(l,bc,aa))){
ba[aa]=(void 0);
}
}
}
}
};
var bf=function SafeRemoveArrayHoles(ba){
var bg=0;
var bh=s-1;
var bi=0;
while(bg<bh){
while(bg<bh&&
!(ba[bg]===(void 0))){
bg++;
}
if(!(%_Call(l,ba,bg))){
bi++;
}
while(bg<bh&&
(ba[bh]===(void 0))){
if(!(%_Call(l,ba,bh))){
bi++;
}
bh--;
}
if(bg<bh){
ba[bg]=ba[bh];
ba[bh]=(void 0);
}
}
if(!(ba[bg]===(void 0)))bg++;
var z;
for(z=bg;z<s-bi;z++){
ba[z]=(void 0);
}
for(z=s-bi;z<s;z++){
if(z in %object_get_prototype_of(ba)){
ba[z]=(void 0);
}else{
delete ba[z];
}
}
return bg;
};
if(s<2)return r;
var G=(%_IsArray(r));
var bj;
if(!G){
bj=aZ(r,s);
}
var bk=%RemoveArrayHoles(r,s);
if(bk==-1){
bk=bf(r);
}
aO(r,0,bk);
if(!G&&(bk+1<bj)){
be(r,bk,bj);
}
return r;
}
function ArraySort(aD){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"Array.prototype.sort");
var r=(%_ToObject(this));
var s=(%_ToLength(r.length));
return InnerArraySort(r,s,aD);
}
function InnerArrayFilter(bl,bm,r,s,ax){
var bn=0;
for(var z=0;z<s;z++){
if(z in r){
var aH=r[z];
if(%_Call(bl,bm,aH,z,r)){
%CreateDataProperty(ax,bn,aH);
bn++;
}
}
}
return ax;
}
function ArrayFilter(bl,bm){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"Array.prototype.filter");
var r=(%_ToObject(this));
var s=(%_ToLength(r.length));
if(!(typeof(bl)==='function'))throw i(15,bl);
var ax=ArraySpeciesCreate(r,0);
return InnerArrayFilter(bl,bm,r,s,ax);
}
function InnerArrayForEach(bl,bm,r,s){
if(!(typeof(bl)==='function'))throw i(15,bl);
if((bm===(void 0))){
for(var z=0;z<s;z++){
if(z in r){
var aH=r[z];
bl(aH,z,r);
}
}
}else{
for(var z=0;z<s;z++){
if(z in r){
var aH=r[z];
%_Call(bl,bm,aH,z,r);
}
}
}
}
function ArrayForEach(bl,bm){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"Array.prototype.forEach");
var r=(%_ToObject(this));
var s=(%_ToLength(r.length));
InnerArrayForEach(bl,bm,r,s);
}
function InnerArraySome(bl,bm,r,s){
if(!(typeof(bl)==='function'))throw i(15,bl);
for(var z=0;z<s;z++){
if(z in r){
var aH=r[z];
if(%_Call(bl,bm,aH,z,r))return true;
}
}
return false;
}
function ArraySome(bl,bm){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"Array.prototype.some");
var r=(%_ToObject(this));
var s=(%_ToLength(r.length));
return InnerArraySome(bl,bm,r,s);
}
function InnerArrayEvery(bl,bm,r,s){
if(!(typeof(bl)==='function'))throw i(15,bl);
for(var z=0;z<s;z++){
if(z in r){
var aH=r[z];
if(!%_Call(bl,bm,aH,z,r))return false;
}
}
return true;
}
function ArrayEvery(bl,bm){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"Array.prototype.every");
var r=(%_ToObject(this));
var s=(%_ToLength(r.length));
return InnerArrayEvery(bl,bm,r,s);
}
function ArrayMap(bl,bm){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"Array.prototype.map");
var r=(%_ToObject(this));
var s=(%_ToLength(r.length));
if(!(typeof(bl)==='function'))throw i(15,bl);
var ax=ArraySpeciesCreate(r,s);
for(var z=0;z<s;z++){
if(z in r){
var aH=r[z];
%CreateDataProperty(ax,z,%_Call(bl,bm,aH,z,r));
}
}
return ax;
}
function InnerArrayIndexOf(r,aH,aa,s){
if(s==0)return-1;
if((aa===(void 0))){
aa=0;
}else{
aa=(((%_ToInteger(aa)))+0);
if(aa<0){
aa=s+aa;
if(aa<0)aa=0;
}
}
var bo=aa;
var bb=s;
if(UseSparseVariant(r,s,(%_IsArray(r)),bb-bo)){
%NormalizeElements(r);
var w=%GetArrayKeys(r,s);
if((typeof(w)==='number')){
bb=w;
}else{
if(w.length==0)return-1;
var bp=GetSortedArrayKeys(r,w);
var af=bp.length;
var z=0;
while(z<af&&bp[z]<aa)z++;
while(z<af){
var F=bp[z];
if(r[F]===aH)return F;
z++;
}
return-1;
}
}
if(!(aH===(void 0))){
for(var z=bo;z<bb;z++){
if(r[z]===aH)return z;
}
return-1;
}
for(var z=bo;z<bb;z++){
if((r[z]===(void 0))&&z in r){
return z;
}
}
return-1;
}
function ArrayIndexOf(aH,aa){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"Array.prototype.indexOf");
var s=(%_ToLength(this.length));
return InnerArrayIndexOf(this,aH,aa,s);
}
function InnerArrayLastIndexOf(r,aH,aa,s,bq){
if(s==0)return-1;
if(bq<2){
aa=s-1;
}else{
aa=(((%_ToInteger(aa)))+0);
if(aa<0)aa+=s;
if(aa<0)return-1;
else if(aa>=s)aa=s-1;
}
var bo=0;
var bb=aa;
if(UseSparseVariant(r,s,(%_IsArray(r)),aa)){
%NormalizeElements(r);
var w=%GetArrayKeys(r,aa+1);
if((typeof(w)==='number')){
bb=w;
}else{
if(w.length==0)return-1;
var bp=GetSortedArrayKeys(r,w);
var z=bp.length-1;
while(z>=0){
var F=bp[z];
if(r[F]===aH)return F;
z--;
}
return-1;
}
}
if(!(aH===(void 0))){
for(var z=bb;z>=bo;z--){
if(r[z]===aH)return z;
}
return-1;
}
for(var z=bb;z>=bo;z--){
if((r[z]===(void 0))&&z in r){
return z;
}
}
return-1;
}
function ArrayLastIndexOf(aH,aa){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"Array.prototype.lastIndexOf");
var s=(%_ToLength(this.length));
return InnerArrayLastIndexOf(this,aH,aa,s,
arguments.length);
}
function InnerArrayReduce(br,U,r,s,bq){
if(!(typeof(br)==='function')){
throw i(15,br);
}
var z=0;
find_initial:if(bq<2){
for(;z<s;z++){
if(z in r){
U=r[z++];
break find_initial;
}
}
throw i(120);
}
for(;z<s;z++){
if(z in r){
var aH=r[z];
U=br(U,aH,z,r);
}
}
return U;
}
function ArrayReduce(br,U){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"Array.prototype.reduce");
var r=(%_ToObject(this));
var s=(%_ToLength(r.length));
return InnerArrayReduce(br,U,r,s,
arguments.length);
}
function InnerArrayReduceRight(br,U,r,s,
bq){
if(!(typeof(br)==='function')){
throw i(15,br);
}
var z=s-1;
find_initial:if(bq<2){
for(;z>=0;z--){
if(z in r){
U=r[z--];
break find_initial;
}
}
throw i(120);
}
for(;z>=0;z--){
if(z in r){
var aH=r[z];
U=br(U,aH,z,r);
}
}
return U;
}
function ArrayReduceRight(br,U){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"Array.prototype.reduceRight");
var r=(%_ToObject(this));
var s=(%_ToLength(r.length));
return InnerArrayReduceRight(br,U,r,s,
arguments.length);
}
function InnerArrayCopyWithin(bs,au,av,r,s){
bs=(%_ToInteger(bs));
var aG;
if(bs<0){
aG=j(s+bs,0);
}else{
aG=k(bs,s);
}
au=(%_ToInteger(au));
var q;
if(au<0){
q=j(s+au,0);
}else{
q=k(au,s);
}
av=(av===(void 0))?s:(%_ToInteger(av));
var bt;
if(av<0){
bt=j(s+av,0);
}else{
bt=k(av,s);
}
var bu=k(bt-q,s-aG);
var bv=1;
if(q<aG&&aG<(q+bu)){
bv=-1;
q=q+bu-1;
aG=aG+bu-1;
}
while(bu>0){
if(q in r){
r[aG]=r[q];
}else{
delete r[aG];
}
q=q+bv;
aG=aG+bv;
bu--;
}
return r;
}
function ArrayCopyWithin(bs,au,av){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"Array.prototype.copyWithin");
var r=(%_ToObject(this));
var s=(%_ToLength(r.length));
return InnerArrayCopyWithin(bs,au,av,r,s);
}
function InnerArrayFind(bw,bx,r,s){
if(!(typeof(bw)==='function')){
throw i(15,bw);
}
for(var z=0;z<s;z++){
var aH=r[z];
if(%_Call(bw,bx,aH,z,r)){
return aH;
}
}
return;
}
function ArrayFind(bw,bx){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"Array.prototype.find");
var r=(%_ToObject(this));
var s=(%_ToInteger(r.length));
return InnerArrayFind(bw,bx,r,s);
}
function InnerArrayFindIndex(bw,bx,r,s){
if(!(typeof(bw)==='function')){
throw i(15,bw);
}
for(var z=0;z<s;z++){
var aH=r[z];
if(%_Call(bw,bx,aH,z,r)){
return z;
}
}
return-1;
}
function ArrayFindIndex(bw,bx){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"Array.prototype.findIndex");
var r=(%_ToObject(this));
var s=(%_ToInteger(r.length));
return InnerArrayFindIndex(bw,bx,r,s);
}
function InnerArrayFill(L,au,av,r,s){
var z=(au===(void 0))?0:(%_ToInteger(au));
var av=(av===(void 0))?s:(%_ToInteger(av));
if(z<0){
z+=s;
if(z<0)z=0;
}else{
if(z>s)z=s;
}
if(av<0){
av+=s;
if(av<0)av=0;
}else{
if(av>s)av=s;
}
if((av-z)>0&&%object_is_frozen(r)){
throw i(12);
}
for(;z<av;z++)
r[z]=L;
return r;
}
function ArrayFill(L,au,av){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"Array.prototype.fill");
var r=(%_ToObject(this));
var s=(%_ToLength(r.length));
return InnerArrayFill(L,au,av,r,s);
}
function InnerArrayIncludes(by,bz,r,s){
if(s===0){
return false;
}
var af=(%_ToInteger(bz));
var V;
if(af>=0){
V=af;
}else{
V=s+af;
if(V<0){
V=0;
}
}
while(V<s){
var bA=r[V];
if(%SameValueZero(by,bA)){
return true;
}
++V;
}
return false;
}
function ArrayIncludes(by,bz){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"Array.prototype.includes");
var r=(%_ToObject(this));
var s=(%_ToLength(r.length));
return InnerArrayIncludes(by,bz,r,s);
}
function ArrayFrom(bB,bC,bm){
var bD=(%_ToObject(bB));
var bE=!(bC===(void 0));
if(bE){
if(!(typeof(bC)==='function')){
throw i(15,bC);
}
}
var bF=e(bD,n);
var V;
var ax;
var bG;
var bH;
if(!(bF===(void 0))){
ax=%IsConstructor(this)?new this():[];
V=0;
for(bH of
{[n](){return d(bD,bF)}}){
if(bE){
bG=%_Call(bC,bm,bH,V);
}else{
bG=bH;
}
%CreateDataProperty(ax,V,bG);
V++;
}
ax.length=V;
return ax;
}else{
var S=(%_ToLength(bD.length));
ax=%IsConstructor(this)?new this(S):new f(S);
for(V=0;V<S;++V){
bH=bD[V];
if(bE){
bG=%_Call(bC,bm,bH,V);
}else{
bG=bH;
}
%CreateDataProperty(ax,V,bG);
}
ax.length=V;
return ax;
}
}
function ArrayOf(...args){
var s=args.length;
var t=this;
var r=%IsConstructor(t)?new t(s):[];
for(var z=0;z<s;z++){
%CreateDataProperty(r,z,args[z]);
}
r.length=s;
return r;
}
function ArraySpecies(){
return this;
}
%AddNamedProperty(f.prototype,"constructor",f,
2);
var bI={
__proto__:null,
copyWithin:true,
entries:true,
fill:true,
find:true,
findIndex:true,
includes:true,
keys:true,
};
%AddNamedProperty(f.prototype,p,bI,
2|1);
%FunctionSetLength(ArrayFrom,1);
b.InstallFunctions(f,2,[
"from",ArrayFrom,
"of",ArrayOf
]);
var bJ=%SpecialArrayFunctions();
var bK=function(bL,bM,S){
var bl=bM;
if(bJ.hasOwnProperty(bL)){
bl=bJ[bL];
}
if(!(S===(void 0))){
%FunctionSetLength(bl,S);
}
return bl;
};
b.InstallFunctions(f.prototype,2,[
"toString",bK("toString",ArrayToString),
"toLocaleString",bK("toLocaleString",ArrayToLocaleString),
"join",bK("join",ArrayJoin),
"pop",bK("pop",ArrayPop),
"push",bK("push",ArrayPush,1),
"reverse",bK("reverse",ArrayReverse),
"shift",bK("shift",ArrayShift),
"unshift",bK("unshift",ArrayUnshift,1),
"slice",bK("slice",ArraySlice,2),
"splice",bK("splice",ArraySplice,2),
"sort",bK("sort",ArraySort),
"filter",bK("filter",ArrayFilter,1),
"forEach",bK("forEach",ArrayForEach,1),
"some",bK("some",ArraySome,1),
"every",bK("every",ArrayEvery,1),
"map",bK("map",ArrayMap,1),
"indexOf",bK("indexOf",ArrayIndexOf,1),
"lastIndexOf",bK("lastIndexOf",ArrayLastIndexOf,1),
"reduce",bK("reduce",ArrayReduce,1),
"reduceRight",bK("reduceRight",ArrayReduceRight,1),
"copyWithin",bK("copyWithin",ArrayCopyWithin,2),
"find",bK("find",ArrayFind,1),
"findIndex",bK("findIndex",ArrayFindIndex,1),
"fill",bK("fill",ArrayFill,1),
"includes",bK("includes",ArrayIncludes,1),
]);
b.InstallGetter(f,o,ArraySpecies);
%FinishArrayPrototypeSetup(f.prototype);
b.SetUpLockedPrototype(g,f(),[
"indexOf",bK("indexOf",ArrayIndexOf),
"join",bK("join",ArrayJoin),
"pop",bK("pop",ArrayPop),
"push",bK("push",ArrayPush),
"shift",bK("shift",ArrayShift),
"sort",bK("sort",ArraySort),
"splice",bK("splice",ArraySplice)
]);
b.SetUpLockedPrototype(h,f(),[
"join",bK("join",ArrayJoin),
"pop",bK("pop",ArrayPop),
"push",bK("push",ArrayPush),
"shift",bK("shift",ArrayShift)
]);
b.SetUpLockedPrototype(c.InternalPackedArray,f(),[
"push",bK("push",ArrayPush),
"pop",bK("pop",ArrayPop),
"shift",bK("shift",ArrayShift),
"unshift",bK("unshift",ArrayUnshift),
"splice",bK("splice",ArraySplice),
"slice",bK("slice",ArraySlice)
]);
b.Export(function(aG){
aG.ArrayFrom=ArrayFrom;
aG.ArrayIndexOf=ArrayIndexOf;
aG.ArrayJoin=ArrayJoin;
aG.ArrayPush=ArrayPush;
aG.ArrayToString=ArrayToString;
aG.InnerArrayCopyWithin=InnerArrayCopyWithin;
aG.InnerArrayEvery=InnerArrayEvery;
aG.InnerArrayFill=InnerArrayFill;
aG.InnerArrayFilter=InnerArrayFilter;
aG.InnerArrayFind=InnerArrayFind;
aG.InnerArrayFindIndex=InnerArrayFindIndex;
aG.InnerArrayForEach=InnerArrayForEach;
aG.InnerArrayIncludes=InnerArrayIncludes;
aG.InnerArrayIndexOf=InnerArrayIndexOf;
aG.InnerArrayJoin=InnerArrayJoin;
aG.InnerArrayLastIndexOf=InnerArrayLastIndexOf;
aG.InnerArrayReduce=InnerArrayReduce;
aG.InnerArrayReduceRight=InnerArrayReduceRight;
aG.InnerArraySome=InnerArraySome;
aG.InnerArraySort=InnerArraySort;
aG.InnerArrayToLocaleString=InnerArrayToLocaleString;
aG.PackedArrayReverse=PackedArrayReverse;
});
%InstallToContext([
"array_pop",ArrayPop,
"array_push",ArrayPush,
"array_shift",ArrayShift,
"array_splice",ArraySplice,
"array_slice",ArraySlice,
"array_unshift",ArrayUnshift,
]);
});

stringUÃ
(function(a,b){
%CheckIsBootstrapping();
var c;
var d;
var e=a.RegExp;
var f=a.String;
var g;
var h;
var i;
var j;
var k;
var l;
var m=b.ImportNow("match_symbol");
var n=b.ImportNow("replace_symbol");
var o=b.ImportNow("search_symbol");
var p=b.ImportNow("split_symbol");
b.Import(function(q){
c=q.ArrayIndexOf;
d=q.ArrayJoin;
g=q.IsRegExp;
h=q.MakeRangeError;
i=q.MakeTypeError;
j=q.MaxSimple;
k=q.MinSimple;
l=q.RegExpInitialize;
});
function StringToString(){
if(!(typeof(this)==='string')&&!(%_ClassOf(this)==='String')){
throw i(68,'String.prototype.toString');
}
return %_ValueOf(this);
}
function StringValueOf(){
if(!(typeof(this)==='string')&&!(%_ClassOf(this)==='String')){
throw i(68,'String.prototype.valueOf');
}
return %_ValueOf(this);
}
function StringConcat(r){
"use strict";
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.concat");
var s=(%_ToString(this));
var t=arguments.length;
for(var u=0;u<t;++u){
s=s+(%_ToString(arguments[u]));
}
return s;
}
function StringIndexOf(v,w){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.indexOf");
var x=(%_ToString(this));
v=(%_ToString(v));
var y=(%_ToInteger(w));
if(y<0)y=0;
if(y>x.length)y=x.length;
return %StringIndexOf(x,v,y);
}
%FunctionSetLength(StringIndexOf,1);
function StringLastIndexOf(z,A){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.lastIndexOf");
var B=(%_ToString(this));
var C=B.length;
var z=(%_ToString(z));
var D=z.length;
var y=C-D;
var w=(%_ToNumber(A));
if(!(!%_IsSmi(%IS_VAR(w))&&!(w==w))){
w=(%_ToInteger(w));
if(w<0){
w=0;
}
if(w+D<C){
y=w;
}
}
if(y<0){
return-1;
}
return %StringLastIndexOf(B,z,y);
}
%FunctionSetLength(StringLastIndexOf,1);
function StringLocaleCompareJS(r){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.localeCompare");
return %StringLocaleCompare((%_ToString(this)),(%_ToString(r)));
}
function StringMatchJS(v){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.match");
if(!(v==null)){
var E=v[m];
if(!(E===(void 0))){
return %_Call(E,v,this);
}
}
var x=(%_ToString(this));
var F=%_NewObject(e,e);
l(F,v);
return F[m](x);
}
function StringNormalize(G){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.normalize");
var s=(%_ToString(this));
var H=(G===(void 0))?'NFC':(%_ToString(G));
var I=['NFC','NFD','NFKC','NFKD'];
var J=%_Call(c,I,H);
if(J===-1){
throw h(174,
%_Call(d,I,', '));
}
return s;
}
%FunctionSetLength(StringNormalize,0);
var K=[2,"","",-1,-1];
function StringReplace(L,M){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.replace");
if(!(L==null)){
var N=L[n];
if(!(N===(void 0))){
return %_Call(N,L,this,M);
}
}
var x=(%_ToString(this));
L=(%_ToString(L));
if(L.length==1&&
x.length>0xFF&&
(typeof(M)==='string')&&
%StringIndexOf(M,'$',0)<0){
return %StringReplaceOneCharWithString(x,L,M);
}
var O=%StringIndexOf(x,L,0);
if(O<0)return x;
var P=O+L.length;
var Q=%_SubString(x,0,O);
if((typeof(M)==='function')){
Q+=M(L,O,x);
}else{
K[3]=O;
K[4]=P;
Q=ExpandReplacement((%_ToString(M)),
x,
K,
Q);
}
return Q+%_SubString(x,P,x.length);
}
function ExpandReplacement(R,x,S,Q){
var T=R.length;
var U=%StringIndexOf(R,'$',0);
if(U<0){
if(T>0)Q+=R;
return Q;
}
if(U>0)Q+=%_SubString(R,0,U);
while(true){
var V='$';
var w=U+1;
if(w<T){
var W=%_StringCharCodeAt(R,w);
if(W==36){
++w;
Q+='$';
}else if(W==38){
++w;
Q+=
%_SubString(x,S[3],S[4]);
}else if(W==96){
++w;
Q+=%_SubString(x,0,S[3]);
}else if(W==39){
++w;
Q+=%_SubString(x,S[4],x.length);
}else if(W>=48&&W<=57){
var X=(W-48)<<1;
var Y=1;
var Z=((S)[0]);
if(w+1<R.length){
var U=%_StringCharCodeAt(R,w+1);
if(U>=48&&U<=57){
var aa=X*10+((U-48)<<1);
if(aa<Z){
X=aa;
Y=2;
}
}
}
if(X!=0&&X<Z){
var O=S[(3+(X))];
if(O>=0){
Q+=
%_SubString(x,O,S[(3+(X+1))]);
}
w+=Y;
}else{
Q+='$';
}
}else{
Q+='$';
}
}else{
Q+='$';
}
U=%StringIndexOf(R,'$',w);
if(U<0){
if(w<T){
Q+=%_SubString(R,w,T);
}
return Q;
}
if(U>w){
Q+=%_SubString(R,w,U);
}
}
return Q;
}
function StringSearch(v){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.search");
if(!(v==null)){
var ab=v[o];
if(!(ab===(void 0))){
return %_Call(ab,v,this);
}
}
var x=(%_ToString(this));
var F=%_NewObject(e,e);
l(F,v);
return %_Call(F[o],F,x);
}
function StringSlice(O,P){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.slice");
var s=(%_ToString(this));
var ac=s.length;
var ad=(%_ToInteger(O));
var ae=ac;
if(!(P===(void 0))){
ae=(%_ToInteger(P));
}
if(ad<0){
ad+=ac;
if(ad<0){
ad=0;
}
}else{
if(ad>ac){
return'';
}
}
if(ae<0){
ae+=ac;
if(ae<0){
return'';
}
}else{
if(ae>ac){
ae=ac;
}
}
if(ae<=ad){
return'';
}
return %_SubString(s,ad,ae);
}
function StringSplitJS(af,ag){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.split");
if(!(af==null)){
var ah=af[p];
if(!(ah===(void 0))){
return %_Call(ah,af,this,ag);
}
}
var x=(%_ToString(this));
ag=((ag===(void 0)))?4294967295:((ag)>>>0);
var T=x.length;
var ai=(%_ToString(af));
if(ag===0)return[];
if((af===(void 0)))return[x];
var aj=ai.length;
if(aj===0)return %StringToArray(x,ag);
return %StringSplit(x,ai,ag);
}
function StringSubstring(O,P){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.subString");
var s=(%_ToString(this));
var ac=s.length;
var ad=(%_ToInteger(O));
if(ad<0){
ad=0;
}else if(ad>ac){
ad=ac;
}
var ae=ac;
if(!(P===(void 0))){
ae=(%_ToInteger(P));
if(ae>ac){
ae=ac;
}else{
if(ae<0)ae=0;
if(ad>ae){
var ak=ae;
ae=ad;
ad=ak;
}
}
}
return %_SubString(s,ad,ae);
}
function StringSubstr(O,al){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.substr");
var s=(%_ToString(this));
var t;
if((al===(void 0))){
t=s.length;
}else{
t=(%_ToInteger(al));
if(t<=0)return'';
}
if((O===(void 0))){
O=0;
}else{
O=(%_ToInteger(O));
if(O>=s.length)return'';
if(O<0){
O+=s.length;
if(O<0)O=0;
}
}
var P=O+t;
if(P>s.length)P=s.length;
return %_SubString(s,O,P);
}
function StringToLowerCaseJS(){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.toLowerCase");
return %StringToLowerCase((%_ToString(this)));
}
function StringToLocaleLowerCase(){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.toLocaleLowerCase");
return %StringToLowerCase((%_ToString(this)));
}
function StringToUpperCaseJS(){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.toUpperCase");
return %StringToUpperCase((%_ToString(this)));
}
function StringToLocaleUpperCase(){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.toLocaleUpperCase");
return %StringToUpperCase((%_ToString(this)));
}
function HtmlEscape(am){
return %_Call(StringReplace,(%_ToString(am)),/"/g,"&quot;");
}
function StringAnchor(an){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.anchor");
return"<a name=\""+HtmlEscape(an)+"\">"+(%_ToString(this))+
"</a>";
}
function StringBig(){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.big");
return"<big>"+(%_ToString(this))+"</big>";
}
function StringBlink(){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.blink");
return"<blink>"+(%_ToString(this))+"</blink>";
}
function StringBold(){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.bold");
return"<b>"+(%_ToString(this))+"</b>";
}
function StringFixed(){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.fixed");
return"<tt>"+(%_ToString(this))+"</tt>";
}
function StringFontcolor(ao){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.fontcolor");
return"<font color=\""+HtmlEscape(ao)+"\">"+(%_ToString(this))+
"</font>";
}
function StringFontsize(ap){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.fontsize");
return"<font size=\""+HtmlEscape(ap)+"\">"+(%_ToString(this))+
"</font>";
}
function StringItalics(){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.italics");
return"<i>"+(%_ToString(this))+"</i>";
}
function StringLink(s){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.link");
return"<a href=\""+HtmlEscape(s)+"\">"+(%_ToString(this))+"</a>";
}
function StringSmall(){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.small");
return"<small>"+(%_ToString(this))+"</small>";
}
function StringStrike(){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.strike");
return"<strike>"+(%_ToString(this))+"</strike>";
}
function StringSub(){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.sub");
return"<sub>"+(%_ToString(this))+"</sub>";
}
function StringSup(){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.sup");
return"<sup>"+(%_ToString(this))+"</sup>";
}
function StringRepeat(aq){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.repeat");
var s=(%_ToString(this));
var al=(%_ToInteger(aq));
if(al<0||al===(1/0))throw h(156);
if(s.length===0)return"";
if(al>%_MaxSmi())throw h(156);
var ar="";
while(true){
if(al&1)ar+=s;
al>>=1;
if(al===0)return ar;
s+=s;
}
}
function StringStartsWith(as,w){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.startsWith");
var s=(%_ToString(this));
if(g(as)){
throw i(39,"String.prototype.startsWith");
}
var at=(%_ToString(as));
var A=(%_ToInteger(w));
var ac=s.length;
var O=k(j(A,0),ac);
var au=at.length;
if(au+O>ac){
return false;
}
return %_SubString(s,O,O+au)===at;
}
%FunctionSetLength(StringStartsWith,1);
function StringEndsWith(as,w){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.endsWith");
var s=(%_ToString(this));
if(g(as)){
throw i(39,"String.prototype.endsWith");
}
var at=(%_ToString(as));
var ac=s.length;
var A=!(w===(void 0))?(%_ToInteger(w)):ac
var P=k(j(A,0),ac);
var au=at.length;
var O=P-au;
if(O<0){
return false;
}
return %_SubString(s,O,O+au)===at;
}
%FunctionSetLength(StringEndsWith,1);
function StringIncludes(as,w){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.includes");
var R=(%_ToString(this));
if(g(as)){
throw i(39,"String.prototype.includes");
}
as=(%_ToString(as));
var A=(%_ToInteger(w));
var av=R.length;
if(A<0)A=0;
if(A>av)A=av;
var aw=as.length;
if(aw+A>av){
return false;
}
return %StringIndexOf(R,as,A)!==-1;
}
%FunctionSetLength(StringIncludes,1);
function StringCodePointAt(A){
if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.codePointAt");
var R=(%_ToString(this));
var ap=R.length;
A=(%_ToInteger(A));
if(A<0||A>=ap){
return(void 0);
}
var ax=%_StringCharCodeAt(R,A);
if(ax<0xD800||ax>0xDBFF||A+1==ap){
return ax;
}
var ay=%_StringCharCodeAt(R,A+1);
if(ay<0xDC00||ay>0xDFFF){
return ax;
}
return(ax-0xD800)*0x400+ay+0x2400;
}
function StringRaw(az){
"use strict";
var aA=arguments.length;
var aB=(%_ToObject(az));
var aC=(%_ToObject(aB.raw));
var aD=(%_ToLength(aC.length));
if(aD<=0)return"";
var Q=(%_ToString(aC[0]));
for(var u=1;u<aD;++u){
if(u<aA){
Q+=(%_ToString(arguments[u]));
}
Q+=(%_ToString(aC[u]));
}
return Q;
}
b.InstallFunctions(f,2,[
"raw",StringRaw
]);
b.InstallFunctions(f.prototype,2,[
"valueOf",StringValueOf,
"toString",StringToString,
"codePointAt",StringCodePointAt,
"concat",StringConcat,
"endsWith",StringEndsWith,
"includes",StringIncludes,
"indexOf",StringIndexOf,
"lastIndexOf",StringLastIndexOf,
"localeCompare",StringLocaleCompareJS,
"match",StringMatchJS,
"normalize",StringNormalize,
"repeat",StringRepeat,
"replace",StringReplace,
"search",StringSearch,
"slice",StringSlice,
"split",StringSplitJS,
"substring",StringSubstring,
"substr",StringSubstr,
"startsWith",StringStartsWith,
"toLowerCase",StringToLowerCaseJS,
"toLocaleLowerCase",StringToLocaleLowerCase,
"toUpperCase",StringToUpperCaseJS,
"toLocaleUpperCase",StringToLocaleUpperCase,
"link",StringLink,
"anchor",StringAnchor,
"fontcolor",StringFontcolor,
"fontsize",StringFontsize,
"big",StringBig,
"blink",StringBlink,
"bold",StringBold,
"fixed",StringFixed,
"italics",StringItalics,
"small",StringSmall,
"strike",StringStrike,
"sub",StringSub,
"sup",StringSup
]);
b.Export(function(aE){
aE.ExpandReplacement=ExpandReplacement;
aE.StringIndexOf=StringIndexOf;
aE.StringLastIndexOf=StringLastIndexOf;
aE.StringMatch=StringMatchJS;
aE.StringReplace=StringReplace;
aE.StringSlice=StringSlice;
aE.StringSplit=StringSplitJS;
aE.StringSubstr=StringSubstr;
aE.StringSubstring=StringSubstring;
});
})

math%
(function(a,b){
"use strict";
%CheckIsBootstrapping();
var c=a.Float64Array;
var d=a.Math;
var e=a.Object;
var f=%GetRootNaN();
var g=0;
var h=(void 0);
var i=b.ImportNow("to_string_tag_symbol");
function MathAbs(j){
j=+j;
return(j>0)?j:0-j;
}
function MathPowJS(j,k){
return %_MathPow((%_ToNumber(j)),(%_ToNumber(k)));
}
function MathRandom(){
if(g<=2){
h=%GenerateRandomNumbers(h);
if(%_IsTypedArray(h)){
g=%_TypedArrayGetLength(h);
}else{
g=h.length;
}
}
return h[--g];
}
function MathRandomRaw(){
if(g<=2){
h=%GenerateRandomNumbers(h);
g=%_TypedArrayGetLength(h);
}
return %_DoubleLo(h[--g])&0x3FFFFFFF;
}
function MathSign(j){
j=+j;
if(j>0)return 1;
if(j<0)return-1;
return j;
}
function MathAsinh(j){
j=(%_ToNumber(j));
if(j===0||!(%_IsSmi(%IS_VAR(j))||((j==j)&&(j!=1/0)&&(j!=-1/0))))return j;
if(j>0)return %math_log(j+%math_sqrt(j*j+1));
return-%math_log(-j+%math_sqrt(j*j+1));
}
function MathAcosh(j){
j=(%_ToNumber(j));
if(j<1)return f;
if(!(%_IsSmi(%IS_VAR(j))||((j==j)&&(j!=1/0)&&(j!=-1/0))))return j;
return %math_log(j+%math_sqrt(j+1)*%math_sqrt(j-1));
}
function MathHypot(j,k){
var l=arguments.length;
var m=0;
for(var n=0;n<l;n++){
var o=MathAbs(arguments[n]);
if(o>m)m=o;
arguments[n]=o;
}
if(m===(1/0))return(1/0);
if(m===0)m=1;
var p=0;
var q=0;
for(var n=0;n<l;n++){
var o=arguments[n]/m;
var r=o*o-q;
var s=p+r;
q=(s-p)-r;
p=s;
}
return %math_sqrt(p)*m;
}
%InstallToContext([
"math_pow",MathPowJS,
]);
%AddNamedProperty(d,i,"Math",1|2);
b.InstallConstants(d,[
"PI",3.1415926535897932,
"SQRT1_2",0.7071067811865476,
"SQRT2",1.4142135623730951
]);
b.InstallFunctions(d,2,[
"random",MathRandom,
"abs",MathAbs,
"pow",MathPowJS,
"sign",MathSign,
"asinh",MathAsinh,
"acosh",MathAcosh,
"hypot",MathHypot,
]);
%SetForceInlineFlag(MathRandom);
%SetForceInlineFlag(MathSign);
b.Export(function(t){
t.MathAbs=MathAbs;
t.IntRandom=MathRandomRaw;
});
})

fdlibm¥
(function(a,b){
"use strict";
%CheckIsBootstrapping();
var c=a.Math;
var d;
var e;
b.Import(function(f){
d=f.MathAbs;
e=f.MathExpm1;
});
function MathSinh(g){
g=g*1;
var h=(g<0)?-0.5:0.5;
var i=d(g);
if(i<22){
if(i<3.725290298461914e-9)return g;
var j=e(i);
if(i<1)return h*(2*j-j*j/(j+1));
return h*(j+j/(j+1));
}
if(i<709.7822265625)return h*%math_exp(i);
if(i<=710.4758600739439){
var k=%math_exp(0.5*i);
var j=h*k;
return j*k;
}
return g*(1/0);
}
function MathCosh(g){
g=g*1;
var l=%_DoubleHi(g)&0x7fffffff;
if(l<0x3fd62e43){
var j=e(d(g));
var k=1+j;
if(l<0x3c800000)return k;
return 1+(j*j)/(k+k);
}
if(l<0x40360000){
var j=%math_exp(d(g));
return 0.5*j+0.5/j;
}
if(l<0x40862e42)return 0.5*%math_exp(d(g));
if(d(g)<=710.4758600739439){
var k=%math_exp(0.5*d(g));
var j=0.5*k;
return j*k;
}
if((!%_IsSmi(%IS_VAR(g))&&!(g==g)))return g;
return(1/0);
}
function MathTanh(g){
g=g*1;
if(!(%_IsSmi(%IS_VAR(g))||((g==g)&&(g!=1/0)&&(g!=-1/0)))){
if(g>0)return 1;
if(g<0)return-1;
return g;
}
var i=d(g);
var m;
if(i<22){
if(i<2.77555756156289135105e-17){
return g;
}
if(i>=1){
var j=e(2*i);
m=1-2/(j+2);
}else{
var j=e(-2*i);
m=-j/(j+2);
}
}else{
m=1;
}
return(g>=0)?m:-m;
}
b.InstallFunctions(c,2,[
"sinh",MathSinh,
"cosh",MathCosh,
"tanh",MathTanh
]);
})

regexpB

(function(a,b){
%CheckIsBootstrapping();
var c;
var d=a.Array;
var e=a.Object;
var f=a.RegExp;
var g;
var h=b.InternalArray;
var i=b.InternalPackedArray;
var j;
var k;
var l;
var m=b.ImportNow("match_symbol");
var n=b.ImportNow("replace_symbol");
var o=b.ImportNow("search_symbol");
var p=b.ImportNow("species_symbol");
var q=b.ImportNow("split_symbol");
var r;
b.Import(function(s){
c=s.ExpandReplacement;
j=s.MakeTypeError;
k=s.MaxSimple;
l=s.MinSimple;
r=s.SpeciesConstructor;
});
var t=new i(
2,
"",
(void 0),
0,
0
);
function IsRegExp(u){
if(!(%_IsJSReceiver(u)))return false;
var v=u[m];
if(!(v===(void 0)))return(!!(v));
return(%_IsRegExp(u));
}
function RegExpInitialize(w,x,y){
x=(x===(void 0))?'':(%_ToString(x));
y=(y===(void 0))?'':(%_ToString(y));
%RegExpInitializeAndCompile(w,x,y);
return w;
}
function PatternFlags(x){
return((%_RegExpFlags(x)&1)?'g':'')+
((%_RegExpFlags(x)&2)?'i':'')+
((%_RegExpFlags(x)&4)?'m':'')+
((%_RegExpFlags(x)&16)?'u':'')+
((%_RegExpFlags(x)&8)?'y':'');
}
function RegExpConstructor(x,y){
var z=new.target;
var A=IsRegExp(x);
if((z===(void 0))){
z=f;
if(A&&(y===(void 0))&&
x.constructor===z){
return x;
}
}
if((%_IsRegExp(x))){
if((y===(void 0)))y=PatternFlags(x);
x=(%_RegExpSource(x));
}else if(A){
var B=x;
x=x.source;
if((y===(void 0)))y=B.flags;
}
var w=%_NewObject(f,z);
return RegExpInitialize(w,x,y);
}
function RegExpCompileJS(x,y){
if(!(%_IsRegExp(this))){
throw j(43,
"RegExp.prototype.compile",this);
}
if((%_IsRegExp(x))){
if(!(y===(void 0)))throw j(121);
y=PatternFlags(x);
x=(%_RegExpSource(x));
}
RegExpInitialize(this,x,y);
}
function DoRegExpExec(C,D,E){
return %_RegExpExec(C,D,E,t);
}
function RegExpExecNoTests(C,D,F){
var G=%_RegExpExec(C,D,F,t);
if(G!==null){
if((%_RegExpFlags(C)&8))C.lastIndex=G[4];
var H=((G)[0])>>1;
var F=G[3];
var I=G[4];
var J=%_SubString(D,F,I);
var K=%_RegExpConstructResult(H,F,D);
K[0]=J;
if(H==1)return K;
var L=3+2;
for(var M=1;M<H;M++){
F=G[L++];
if(F!=-1){
I=G[L];
K[M]=%_SubString(D,F,I);
}
L++;
}
return K;
;
}
C.lastIndex=0;
return null;
}
function RegExpSubclassExecJS(D){
if(!(%_IsRegExp(this))){
throw j(43,
'RegExp.prototype.exec',this);
}
D=(%_ToString(D));
var N=this.lastIndex;
var M=(%_ToLength(N));
var a=(!!((%_RegExpFlags(this)&1)));
var O=(!!((%_RegExpFlags(this)&8)));
var P=a||O;
if(P){
if(M>D.length){
this.lastIndex=0;
return null;
}
}else{
M=0;
}
var Q=%_RegExpExec(this,D,M,t);
if((Q===null)){
this.lastIndex=0;
return null;
}
if(P){
this.lastIndex=t[4];
}
var H=((Q)[0])>>1;
var F=Q[3];
var I=Q[4];
var J=%_SubString(D,F,I);
var K=%_RegExpConstructResult(H,F,D);
K[0]=J;
if(H==1)return K;
var L=3+2;
for(var M=1;M<H;M++){
F=Q[L++];
if(F!=-1){
I=Q[L];
K[M]=%_SubString(D,F,I);
}
L++;
}
return K;
;
}
%FunctionRemovePrototype(RegExpSubclassExecJS);
function RegExpExecJS(D){
if(!(%_IsRegExp(this))){
throw j(43,
'RegExp.prototype.exec',this);
}
D=(%_ToString(D));
var N=this.lastIndex;
var M=(%_ToLength(N));
var P=(%_RegExpFlags(this)&1)||(%_RegExpFlags(this)&8);
if(P){
if(M<0||M>D.length){
this.lastIndex=0;
return null;
}
}else{
M=0;
}
var Q=%_RegExpExec(this,D,M,t);
if((Q===null)){
this.lastIndex=0;
return null;
}
if(P){
this.lastIndex=t[4];
}
var H=((Q)[0])>>1;
var F=Q[3];
var I=Q[4];
var J=%_SubString(D,F,I);
var K=%_RegExpConstructResult(H,F,D);
K[0]=J;
if(H==1)return K;
var L=3+2;
for(var M=1;M<H;M++){
F=Q[L++];
if(F!=-1){
I=Q[L];
K[M]=%_SubString(D,F,I);
}
L++;
}
return K;
;
}
function RegExpSubclassExec(C,D,R){
if((R===(void 0))){
R=C.exec;
}
if((typeof(R)==='function')){
var K=%_Call(R,C,D);
if(!(%_IsJSReceiver(K))&&!(K===null)){
throw j(47);
}
return K;
}
return %_Call(RegExpExecJS,C,D);
}
%SetForceInlineFlag(RegExpSubclassExec);
var S;
var T;
function RegExpTest(D){
if(!(%_IsRegExp(this))){
throw j(43,
'RegExp.prototype.test',this);
}
D=(%_ToString(D));
var N=this.lastIndex;
var M=(%_ToLength(N));
if((%_RegExpFlags(this)&1)||(%_RegExpFlags(this)&8)){
if(M<0||M>D.length){
this.lastIndex=0;
return false;
}
var Q=%_RegExpExec(this,D,M,t);
if((Q===null)){
this.lastIndex=0;
return false;
}
this.lastIndex=t[4];
return true;
}else{
var C=this;
var U=(%_RegExpSource(C));
if(U.length>=3&&
%_StringCharCodeAt(U,0)==46&&
%_StringCharCodeAt(U,1)==42&&
%_StringCharCodeAt(U,2)!=63){
C=TrimRegExp(C);
}
var Q=%_RegExpExec(C,D,0,t);
if((Q===null)){
this.lastIndex=0;
return false;
}
return true;
}
}
function RegExpSubclassTest(D){
if(!(%_IsJSReceiver(this))){
throw j(43,
'RegExp.prototype.test',this);
}
D=(%_ToString(D));
var V=RegExpSubclassExec(this,D);
return!(V===null);
}
%FunctionRemovePrototype(RegExpSubclassTest);
function TrimRegExp(C){
if(S!==C){
S=C;
T=
new f(
%_SubString((%_RegExpSource(C)),2,(%_RegExpSource(C)).length),
((%_RegExpFlags(C)&2)?(%_RegExpFlags(C)&4)?"im":"i"
:(%_RegExpFlags(C)&4)?"m":""));
}
return T;
}
function RegExpToString(){
if(!(%_IsJSReceiver(this))){
throw j(
43,'RegExp.prototype.toString',this);
}
if(this===g){
%IncrementUseCounter(12);
}
return'/'+(%_ToString(this.source))+'/'+(%_ToString(this.flags));
}
function AtSurrogatePair(W,E){
if(E+1>=W.length)return false;
var J=%_StringCharCodeAt(W,E);
if(J<0xD800||J>0xDBFF)return false;
var X=%_StringCharCodeAt(W,E+1);
return X>=0xDC00||X<=0xDFFF;
}
function RegExpSplit(D,Y){
if(!(%_IsRegExp(this))){
throw j(43,
"RegExp.prototype.@@split",this);
}
var Z=this;
var W=(%_ToString(D));
Y=((Y===(void 0)))?4294967295:((Y)>>>0);
var aa=W.length;
if(Y===0)return[];
if(aa===0){
if(DoRegExpExec(Z,W,0,0)!==null)return[];
return[W];
}
var ab=0;
var ac=0;
var ad=0;
var K=new h();
outer_loop:
while(true){
if(ac===aa){
K[K.length]=%_SubString(W,ab,aa);
break;
}
var G=DoRegExpExec(Z,W,ac);
if(G===null||aa===(ad=G[3])){
K[K.length]=%_SubString(W,ab,aa);
break;
}
var ae=G[4];
if(ac===ae&&ae===ab){
if((%_RegExpFlags(this)&16)&&AtSurrogatePair(W,ac)){
ac+=2;
}else{
ac++;
}
continue;
}
K[K.length]=%_SubString(W,ab,ad);
if(K.length===Y)break;
var af=((G)[0])+3;
for(var M=3+2;M<af;){
var F=G[M++];
var I=G[M++];
if(I!=-1){
K[K.length]=%_SubString(W,F,I);
}else{
K[K.length]=(void 0);
}
if(K.length===Y)break outer_loop;
}
ac=ab=ae;
}
var ag=[];
%MoveArrayContents(K,ag);
return ag;
}
function RegExpSubclassSplit(D,Y){
if(!(%_IsJSReceiver(this))){
throw j(43,
"RegExp.prototype.@@split",this);
}
D=(%_ToString(D));
var ah=r(this,f);
var y=(%_ToString(this.flags));
var R;
if((%_IsRegExp(this))&&ah===f){
R=this.exec;
if(R===RegExpSubclassExecJS){
return %_Call(RegExpSplit,this,D,Y);
}
}
var ai=%StringIndexOf(y,'u',0)>=0;
var O=%StringIndexOf(y,'y',0)>=0;
var aj=O?y:y+"y";
var ak=new ah(this,aj);
var al=new d();
var am=0;
var an=((Y===(void 0)))?4294967295:((Y)>>>0);
var ao=D.length;
var ap=0;
if(an===0)return al;
var K;
if(ao===0){
K=RegExpSubclassExec(ak,D);
if((K===null))%AddElement(al,0,D);
return al;
}
var aq=ap;
while(aq<ao){
ak.lastIndex=aq;
K=RegExpSubclassExec(ak,D,R);
R=(void 0);
if((K===null)){
aq+=AdvanceStringIndex(D,aq,ai);
}else{
var I=l((%_ToLength(ak.lastIndex)),ao);
if(I===ap){
aq+=AdvanceStringIndex(D,aq,ai);
}else{
%AddElement(
al,am,
%_SubString(D,ap,aq));
am++;
if(am===an)return al;
ap=I;
var ar=k((%_ToLength(K.length)),0);
for(var M=1;M<ar;M++){
%AddElement(al,am,K[M]);
am++;
if(am===an)return al;
}
aq=ap;
}
}
}
%AddElement(al,am,
%_SubString(D,ap,ao));
return al;
}
%FunctionRemovePrototype(RegExpSubclassSplit);
function RegExpSubclassMatch(D){
if(!(%_IsJSReceiver(this))){
throw j(43,
"RegExp.prototype.@@match",this);
}
D=(%_ToString(D));
var a=this.global;
if(!a)return RegExpSubclassExec(this,D);
var ai=this.unicode;
this.lastIndex=0;
var al=new h();
var as=0;
var K;
while(true){
K=RegExpSubclassExec(this,D);
if((K===null)){
if(as===0)return null;
break;
}
var at=(%_ToString(K[0]));
al[as]=at;
if(at==="")SetAdvancedStringIndex(this,D,ai);
as++;
}
var au=[];
%MoveArrayContents(al,au);
return au;
}
%FunctionRemovePrototype(RegExpSubclassMatch);
var av=new h(4);
function StringReplaceGlobalRegExpWithFunction(W,C,aw){
var au=av;
if(au){
av=null;
}else{
au=new h(16);
}
var ax=%RegExpExecMultiple(C,
W,
t,
au);
C.lastIndex=0;
if((ax===null)){
av=au;
return W;
}
var ay=ax.length;
if(((t)[0])==2){
var az=0;
for(var M=0;M<ay;M++){
var aA=ax[M];
if(%_IsSmi(aA)){
if(aA>0){
az=(aA>>11)+(aA&0x7ff);
}else{
az=ax[++M]-aA;
}
}else{
var aB=aw(aA,az,W);
ax[M]=(%_ToString(aB));
az+=aA.length;
}
}
}else{
for(var M=0;M<ay;M++){
var aA=ax[M];
if(!%_IsSmi(aA)){
var aB=%reflect_apply(aw,(void 0),aA);
ax[M]=(%_ToString(aB));
}
}
}
var K=%StringBuilderConcat(ax,ay,W);
au.length=0;
av=au;
return K;
}
function CaptureString(D,aC,E){
var aD=E<<1;
var F=aC[(3+(aD))];
if(F<0)return;
var I=aC[(3+(aD+1))];
return %_SubString(D,F,I);
}
function StringReplaceNonGlobalRegExpWithFunction(W,C,aw){
var G=DoRegExpExec(C,W,0);
if((G===null)){
C.lastIndex=0;
return W;
}
var E=G[3];
var K=%_SubString(W,0,E);
var aE=G[4];
var aF=((G)[0])>>1;
var aG;
if(aF==1){
var aH=%_SubString(W,E,aE);
aG=aw(aH,E,W);
}else{
var aI=new h(aF+2);
for(var L=0;L<aF;L++){
aI[L]=CaptureString(W,G,L);
}
aI[L]=E;
aI[L+1]=W;
aG=%reflect_apply(aw,(void 0),aI);
}
K+=aG;
return K+%_SubString(W,aE,W.length);
}
function RegExpReplace(D,aw){
if(!(%_IsRegExp(this))){
throw j(43,
"RegExp.prototype.@@replace",this);
}
var W=(%_ToString(D));
var aJ=this;
if(!(typeof(aw)==='function')){
aw=(%_ToString(aw));
if(!(%_RegExpFlags(aJ)&1)){
var V=DoRegExpExec(aJ,W,0);
if(V==null){
aJ.lastIndex=0
return W;
}
if(aw.length==0){
return %_SubString(W,0,V[3])+
%_SubString(W,V[4],W.length)
}
return c(aw,W,t,
%_SubString(W,0,V[3]))+
%_SubString(W,V[4],W.length);
}
aJ.lastIndex=0;
return %StringReplaceGlobalRegExpWithString(
W,aJ,aw,t);
}
if((%_RegExpFlags(aJ)&1)){
return StringReplaceGlobalRegExpWithFunction(W,aJ,aw);
}
return StringReplaceNonGlobalRegExpWithFunction(W,aJ,aw);
}
function GetSubstitution(aK,D,aL,aM,aG){
var aN=aK.length;
var aO=D.length;
var aP=aM.length;
var aQ=aL+aN;
var K="";
var aR,aS,aT,aU,aV,aW,aX;
var aU=%StringIndexOf(aG,'$',0);
if(aU<0){
K+=aG;
return K;
}
if(aU>0)K+=%_SubString(aG,0,aU);
while(true){
aS='$';
aR=aU+1;
if(aR<aG.length){
aT=%_StringCharCodeAt(aG,aR);
if(aT==36){
++aR;
K+='$';
}else if(aT==38){
++aR;
K+=aK;
}else if(aT==96){
++aR;
K+=%_SubString(D,0,aL);
}else if(aT==39){
++aR;
K+=%_SubString(D,aQ,aO);
}else if(aT>=48&&aT<=57){
aV=(aT-48);
aW=1;
if(aR+1<aG.length){
aU=%_StringCharCodeAt(aG,aR+1);
if(aU>=48&&aU<=57){
aX=aV*10+((aU-48));
if(aX<aP){
aV=aX;
aW=2;
}
}
}
if(aV!=0&&aV<aP){
var aY=aM[aV];
if(!(aY===(void 0)))K+=aY;
aR+=aW;
}else{
K+='$';
}
}else{
K+='$';
}
}else{
K+='$';
}
aU=%StringIndexOf(aG,'$',aR);
if(aU<0){
if(aR<aG.length){
K+=%_SubString(aG,aR,aG.length);
}
return K;
}
if(aU>aR){
K+=%_SubString(aG,aR,aU);
}
}
return K;
}
function AdvanceStringIndex(D,E,ai){
var aZ=1;
if(ai){
var J=%_StringCharCodeAt(D,E);
if(J>=0xD800&&J<=0xDBFF&&D.length>E+1){
var X=%_StringCharCodeAt(D,E+1);
if(X>=0xDC00&&X<=0xDFFF){
aZ=2;
}
}
}
return aZ;
}
function SetAdvancedStringIndex(C,D,ai){
var N=C.lastIndex;
C.lastIndex=N+
AdvanceStringIndex(D,N,ai);
}
function RegExpSubclassReplace(D,aw){
if(!(%_IsJSReceiver(this))){
throw j(43,
"RegExp.prototype.@@replace",this);
}
D=(%_ToString(D));
var aa=D.length;
var ba=(typeof(aw)==='function');
if(!ba)aw=(%_ToString(aw));
var a=(!!(this.global));
if(a){
var ai=(!!(this.unicode));
this.lastIndex=0;
}
var R;
if((%_IsRegExp(this))){
R=this.exec;
if(R===RegExpSubclassExecJS){
return %_Call(RegExpReplace,this,D,aw);
}
}
var bb=new h();
var K,aG;
while(true){
K=RegExpSubclassExec(this,D,R);
R=(void 0);
if((K===null)){
break;
}else{
bb.push(K);
if(!a)break;
var at=(%_ToString(K[0]));
if(at==="")SetAdvancedStringIndex(this,D,ai);
}
}
var bc="";
var bd=0;
for(var M=0;M<bb.length;M++){
K=bb[M];
var aP=k((%_ToLength(K.length)),0);
var aK=(%_ToString(K[0]));
var be=aK.length;
var aL=k(l((%_ToInteger(K.index)),aa),0);
var aM=new h();
for(var as=0;as<aP;as++){
var aY=K[as];
if(!(aY===(void 0)))aY=(%_ToString(aY));
aM[as]=aY;
}
if(ba){
var aI=new h(aP+2);
for(var L=0;L<aP;L++){
aI[L]=aM[L];
}
aI[L]=aL;
aI[L+1]=D;
aG=%reflect_apply(aw,(void 0),aI,0,
aI.length);
}else{
aG=GetSubstitution(aK,D,aL,aM,
aw);
}
if(aL>=bd){
bc+=
%_SubString(D,bd,aL)+aG;
bd=aL+be;
}
}
if(bd>=aa)return bc;
return bc+%_SubString(D,bd,aa);
}
%FunctionRemovePrototype(RegExpSubclassReplace);
function RegExpSubclassSearch(D){
if(!(%_IsJSReceiver(this))){
throw j(43,
"RegExp.prototype.@@search",this);
}
D=(%_ToString(D));
var bf=this.lastIndex;
this.lastIndex=0;
var K=RegExpSubclassExec(this,D);
this.lastIndex=bf;
if((K===null))return-1;
return K.index;
}
%FunctionRemovePrototype(RegExpSubclassSearch);
function RegExpGetLastMatch(){
var bg=((t)[1]);
return %_SubString(bg,
t[3],
t[4]);
}
function RegExpGetLastParen(){
var aa=((t)[0]);
if(aa<=2)return'';
var bg=((t)[1]);
var F=t[(3+(aa-2))];
var I=t[(3+(aa-1))];
if(F!=-1&&I!=-1){
return %_SubString(bg,F,I);
}
return"";
}
function RegExpGetLeftContext(){
var bh;
var W;
bh=t[3];
W=((t)[1]);
return %_SubString(W,0,bh);
}
function RegExpGetRightContext(){
var bh;
var W;
bh=t[4];
W=((t)[1]);
return %_SubString(W,bh,W.length);
}
function RegExpMakeCaptureGetter(as){
return function foo(){
var E=as*2;
if(E>=((t)[0]))return'';
var bi=t[(3+(E))];
var bj=t[(3+(E+1))];
if(bi==-1||bj==-1)return'';
return %_SubString(((t)[1]),bi,bj);
};
}
function RegExpGetFlags(){
if(!(%_IsJSReceiver(this))){
throw j(
122,"RegExp.prototype.flags",(%_ToString(this)));
}
var K='';
if(this.global)K+='g';
if(this.ignoreCase)K+='i';
if(this.multiline)K+='m';
if(this.unicode)K+='u';
if(this.sticky)K+='y';
return K;
}
function RegExpGetGlobal(){
if(!(%_IsRegExp(this))){
if(this===g){
%IncrementUseCounter(31);
return(void 0);
}
throw j(123,"RegExp.prototype.global");
}
return(!!((%_RegExpFlags(this)&1)));
}
%SetForceInlineFlag(RegExpGetGlobal);
function RegExpGetIgnoreCase(){
if(!(%_IsRegExp(this))){
if(this===g){
%IncrementUseCounter(31);
return(void 0);
}
throw j(123,"RegExp.prototype.ignoreCase");
}
return(!!((%_RegExpFlags(this)&2)));
}
function RegExpGetMultiline(){
if(!(%_IsRegExp(this))){
if(this===g){
%IncrementUseCounter(31);
return(void 0);
}
throw j(123,"RegExp.prototype.multiline");
}
return(!!((%_RegExpFlags(this)&4)));
}
function RegExpGetSource(){
if(!(%_IsRegExp(this))){
if(this===g){
%IncrementUseCounter(30);
return"(?:)";
}
throw j(123,"RegExp.prototype.source");
}
return(%_RegExpSource(this));
}
function RegExpGetSticky(){
if(!(%_IsRegExp(this))){
if(this===g){
%IncrementUseCounter(11);
return(void 0);
}
throw j(123,"RegExp.prototype.sticky");
}
return(!!((%_RegExpFlags(this)&8)));
}
%SetForceInlineFlag(RegExpGetSticky);
function RegExpGetUnicode(){
if(!(%_IsRegExp(this))){
if(this===g){
%IncrementUseCounter(13);
return(void 0);
}
throw j(123,"RegExp.prototype.unicode");
}
return(!!((%_RegExpFlags(this)&16)));
}
%SetForceInlineFlag(RegExpGetUnicode);
function RegExpSpecies(){
return this;
}
%FunctionSetInstanceClassName(f,'RegExp');
g=new e();
%FunctionSetPrototype(f,g);
%AddNamedProperty(
f.prototype,'constructor',f,2);
%SetCode(f,RegExpConstructor);
b.InstallGetter(f,p,RegExpSpecies);
b.InstallFunctions(f.prototype,2,[
"exec",RegExpSubclassExecJS,
"test",RegExpSubclassTest,
"toString",RegExpToString,
"compile",RegExpCompileJS,
m,RegExpSubclassMatch,
n,RegExpSubclassReplace,
o,RegExpSubclassSearch,
q,RegExpSubclassSplit,
]);
b.InstallGetter(f.prototype,'flags',RegExpGetFlags);
b.InstallGetter(f.prototype,'global',RegExpGetGlobal);
b.InstallGetter(f.prototype,'ignoreCase',RegExpGetIgnoreCase);
b.InstallGetter(f.prototype,'multiline',RegExpGetMultiline);
b.InstallGetter(f.prototype,'source',RegExpGetSource);
b.InstallGetter(f.prototype,'sticky',RegExpGetSticky);
b.InstallGetter(f.prototype,'unicode',RegExpGetUnicode);
var bk=function(){
var bl=((t)[2]);
return(bl===(void 0))?"":bl;
};
var bm=function(D){
((t)[2])=(%_ToString(D));
};
%OptimizeObjectForAddingMultipleProperties(f,22);
b.InstallGetterSetter(f,'input',bk,bm,
4);
b.InstallGetterSetter(f,'$_',bk,bm,
2|4);
var bn=function(bo){};
b.InstallGetterSetter(f,'lastMatch',RegExpGetLastMatch,
bn,4);
b.InstallGetterSetter(f,'$&',RegExpGetLastMatch,bn,
2|4);
b.InstallGetterSetter(f,'lastParen',RegExpGetLastParen,
bn,4);
b.InstallGetterSetter(f,'$+',RegExpGetLastParen,bn,
2|4);
b.InstallGetterSetter(f,'leftContext',RegExpGetLeftContext,
bn,4);
b.InstallGetterSetter(f,'$`',RegExpGetLeftContext,bn,
2|4);
b.InstallGetterSetter(f,'rightContext',RegExpGetRightContext,
bn,4);
b.InstallGetterSetter(f,"$'",RegExpGetRightContext,bn,
2|4);
for(var M=1;M<10;++M){
b.InstallGetterSetter(f,'$'+M,RegExpMakeCaptureGetter(M),
bn,4);
}
%ToFastProperties(f);
var bp=new i(2,"",(void 0),0,0);
function InternalRegExpMatch(C,W){
var G=%_RegExpExec(C,W,0,bp);
if(!(G===null)){
var H=((G)[0])>>1;
var F=G[3];
var I=G[4];
var J=%_SubString(W,F,I);
var K=%_RegExpConstructResult(H,F,W);
K[0]=J;
if(H==1)return K;
var L=3+2;
for(var M=1;M<H;M++){
F=G[L++];
if(F!=-1){
I=G[L];
K[M]=%_SubString(W,F,I);
}
L++;
}
return K;
;
}
return null;
}
function InternalRegExpReplace(C,W,aG){
return %StringReplaceGlobalRegExpWithString(
W,C,aG,bp);
}
b.Export(function(bq){
bq.InternalRegExpMatch=InternalRegExpMatch;
bq.InternalRegExpReplace=InternalRegExpReplace;
bq.IsRegExp=IsRegExp;
bq.RegExpExec=DoRegExpExec;
bq.RegExpInitialize=RegExpInitialize;
bq.RegExpLastMatchInfo=t;
bq.RegExpTest=RegExpTest;
});
})

,arraybuffer½
(function(a,b){
"use strict";
%CheckIsBootstrapping();
var c=a.ArrayBuffer;
var d;
var e;
var f;
var g;
var h=b.ImportNow("species_symbol");
b.Import(function(i){
d=i.MakeTypeError;
e=i.MaxSimple;
f=i.MinSimple;
g=i.SpeciesConstructor;
});
function ArrayBufferGetByteLen(){
if(!(%_ClassOf(this)==='ArrayBuffer')){
throw d(43,
'ArrayBuffer.prototype.byteLength',this);
}
return %_ArrayBufferGetByteLength(this);
}
function ArrayBufferSlice(j,k){
if(!(%_ClassOf(this)==='ArrayBuffer')){
throw d(43,
'ArrayBuffer.prototype.slice',this);
}
var l=(%_ToInteger(j));
if(!(k===(void 0))){
k=(%_ToInteger(k));
}
var m;
var n=%_ArrayBufferGetByteLength(this);
if(l<0){
m=e(n+l,0);
}else{
m=f(l,n);
}
var o=(k===(void 0))?n:k;
var p;
if(o<0){
p=e(n+o,0);
}else{
p=f(o,n);
}
if(p<m){
p=m;
}
var q=p-m;
var r=g(this,c,true);
var s=new r(q);
if(!(%_ClassOf(s)==='ArrayBuffer')){
throw d(43,
'ArrayBuffer.prototype.slice',s);
}
if(s===this){
throw d(11);
}
if(%_ArrayBufferGetByteLength(s)<q){
throw d(10);
}
%ArrayBufferSliceImpl(this,s,m,q);
return s;
}
function ArrayBufferSpecies(){
return this;
}
b.InstallGetter(c,h,ArrayBufferSpecies);
b.InstallGetter(c.prototype,"byteLength",
ArrayBufferGetByteLen);
b.InstallFunctions(c.prototype,2,[
"slice",ArrayBufferSlice
]);
})

(typedarray®¢
(function(a,b){
"use strict";
%CheckIsBootstrapping();
var c=b.ImportNow("ArrayToString");
var d;
var e;
var f;
var g=a.Array;
var h=a.ArrayBuffer;
var i=h.prototype;
var j=a.DataView;
var k=a.Object;
var l;
var m;
var n;
var o;
var p;
var q;
var r;
var s;
var t;
var u;
var v;
var w;
var x;
var y;
var z;
var A;
var B=b.InternalArray;
var C;
var D;
var E;
var F;
var G;
var H;
var I;
var J;
var K=b.ImportNow("iterator_symbol");
var L=b.ImportNow("species_symbol");
var M=b.ImportNow("to_string_tag_symbol");
var N=a.Uint8Array;

var O=a.Int8Array;

var P=a.Uint16Array;

var Q=a.Int16Array;

var R=a.Uint32Array;

var S=a.Int32Array;

var T=a.Float32Array;

var U=a.Float64Array;

var V=a.Uint8ClampedArray;


var W=%object_get_prototype_of(N);
b.Import(function(X){
d=X.ArrayValues;
e=X.GetIterator;
f=X.GetMethod;
l=X.InnerArrayCopyWithin;
m=X.InnerArrayEvery;
n=X.InnerArrayFill;
o=X.InnerArrayFilter;
p=X.InnerArrayFind;
q=X.InnerArrayFindIndex;
r=X.InnerArrayForEach;
s=X.InnerArrayIncludes;
t=X.InnerArrayIndexOf;
u=X.InnerArrayJoin;
v=X.InnerArrayLastIndexOf;
w=X.InnerArrayReduce;
x=X.InnerArrayReduceRight;
y=X.InnerArraySome;
z=X.InnerArraySort;
A=X.InnerArrayToLocaleString;
C=X.IsNaN;
D=X.MakeRangeError;
E=X.MakeTypeError;
F=X.MaxSimple;
G=X.MinSimple;
H=X.PackedArrayReverse;
I=X.SpeciesConstructor;
J=X.ToPositiveInteger;
});
function TypedArrayDefaultConstructor(Y){
switch(%_ClassOf(Y)){
case"Uint8Array":
return N;

case"Int8Array":
return O;

case"Uint16Array":
return P;

case"Int16Array":
return Q;

case"Uint32Array":
return R;

case"Int32Array":
return S;

case"Float32Array":
return T;

case"Float64Array":
return U;

case"Uint8ClampedArray":
return V;


}
throw E(43,
"TypedArrayDefaultConstructor",this);
}
function TypedArrayCreate(Z,aa,ab,ac){
if((ab===(void 0))){
var ad=new Z(aa);
}else{
var ad=new Z(aa,ab,ac);
}
if(!(%_IsTypedArray(ad)))throw E(71);
if((typeof(aa)==='number')&&%_TypedArrayGetLength(ad)<aa){
throw E(248);
}
return ad;
}
function TypedArraySpeciesCreate(ae,aa,ab,ac,af){
var ag=TypedArrayDefaultConstructor(ae);
var Z=I(ae,ag,
af);
return TypedArrayCreate(Z,aa,ab,ac);
}
function Uint8ArrayConstructByArrayBuffer(ah,ai,aj,ak){
if(!(aj===(void 0))){
aj=J(aj,168);
}
if(!(ak===(void 0))){
ak=J(ak,168);
}
var al=%_ArrayBufferGetByteLength(ai);
var am;
if((aj===(void 0))){
am=0;
}else{
am=aj;
if(am % 1!==0){
throw D(167,
"start offset","Uint8Array",1);
}
if(am>al){
throw D(169);
}
}
var an;
var ao;
if((ak===(void 0))){
if(al % 1!==0){
throw D(167,
"byte length","Uint8Array",1);
}
an=al-am;
ao=an/1;
}else{
var ao=ak;
an=ao*1;
}
if((am+an>al)
||(ao>%_MaxSmi())){
throw D(168);
}
%_TypedArrayInitialize(ah,1,ai,am,an,true);
}
function Uint8ArrayConstructByLength(ah,ak){
var ap=(ak===(void 0))?
0:J(ak,168);
if(ap>%_MaxSmi()){
throw D(168);
}
var aq=ap*1;
if(aq>%_TypedArrayMaxSizeInHeap()){
var ai=new h(aq);
%_TypedArrayInitialize(ah,1,ai,0,aq,true);
}else{
%_TypedArrayInitialize(ah,1,null,0,aq,true);
}
}
function Uint8ArrayConstructByArrayLike(ah,ar,ak){
var ap=J(ak,168);
if(ap>%_MaxSmi()){
throw D(168);
}
var as=false;
var aq=ap*1;
if(aq<=%_TypedArrayMaxSizeInHeap()){
%_TypedArrayInitialize(ah,1,null,0,aq,false);
}else{
as=
%TypedArrayInitializeFromArrayLike(ah,1,ar,ap);
}
if(!as){
for(var at=0;at<ap;at++){
ah[at]=ar[at];
}
}
}
function Uint8ArrayConstructByIterable(ah,au,av){
var aw=new B();
var ax=%_Call(av,au);
var ay={
__proto__:null
};
ay[K]=function(){return ax;}
for(var az of ay){
aw.push(az);
}
Uint8ArrayConstructByArrayLike(ah,aw,aw.length);
}
function Uint8ArrayConstructByTypedArray(ah,Y){
var aA=%TypedArrayGetBuffer(Y);
var ak=%_TypedArrayGetLength(Y);
var aq=%_ArrayBufferViewGetByteLength(Y);
var an=ak*1;
Uint8ArrayConstructByArrayLike(ah,Y,ak);
var aB=I(aA,h);
var aC=aB.prototype;
if((%_IsJSReceiver(aC))&&aC!==i){
%InternalSetPrototype(%TypedArrayGetBuffer(ah),aC);
}
}
function Uint8ArrayConstructor(ab,ac,aD){
if(!(new.target===(void 0))){
if((%_ClassOf(ab)==='ArrayBuffer')||(%_ClassOf(ab)==='SharedArrayBuffer')){
Uint8ArrayConstructByArrayBuffer(this,ab,ac,aD);
}else if((typeof(ab)==='number')||(typeof(ab)==='string')||
(typeof(ab)==='boolean')||(ab===(void 0))){
Uint8ArrayConstructByLength(this,ab);
}else if((%_IsTypedArray(ab))){
Uint8ArrayConstructByTypedArray(this,ab);
}else{
var av=ab[K];
if((av===(void 0))||av===d){
Uint8ArrayConstructByArrayLike(this,ab,ab.length);
}else{
Uint8ArrayConstructByIterable(this,ab,av);
}
}
}else{
throw E(27,"Uint8Array")
}
}
function Uint8ArraySubArray(aE,aF){
var aG=(%_ToInteger(aE));
if(!(aF===(void 0))){
var aH=(%_ToInteger(aF));
var aI=%_TypedArrayGetLength(this);
}else{
var aI=%_TypedArrayGetLength(this);
var aH=aI;
}
if(aG<0){
aG=F(0,aI+aG);
}else{
aG=G(aG,aI);
}
if(aH<0){
aH=F(0,aI+aH);
}else{
aH=G(aH,aI);
}
if(aH<aG){
aH=aG;
}
var ao=aH-aG;
var aJ=
%_ArrayBufferViewGetByteOffset(this)+aG*1;
return new N(%TypedArrayGetBuffer(this),aJ,ao);
}

function Int8ArrayConstructByArrayBuffer(ah,ai,aj,ak){
if(!(aj===(void 0))){
aj=J(aj,168);
}
if(!(ak===(void 0))){
ak=J(ak,168);
}
var al=%_ArrayBufferGetByteLength(ai);
var am;
if((aj===(void 0))){
am=0;
}else{
am=aj;
if(am % 1!==0){
throw D(167,
"start offset","Int8Array",1);
}
if(am>al){
throw D(169);
}
}
var an;
var ao;
if((ak===(void 0))){
if(al % 1!==0){
throw D(167,
"byte length","Int8Array",1);
}
an=al-am;
ao=an/1;
}else{
var ao=ak;
an=ao*1;
}
if((am+an>al)
||(ao>%_MaxSmi())){
throw D(168);
}
%_TypedArrayInitialize(ah,2,ai,am,an,true);
}
function Int8ArrayConstructByLength(ah,ak){
var ap=(ak===(void 0))?
0:J(ak,168);
if(ap>%_MaxSmi()){
throw D(168);
}
var aq=ap*1;
if(aq>%_TypedArrayMaxSizeInHeap()){
var ai=new h(aq);
%_TypedArrayInitialize(ah,2,ai,0,aq,true);
}else{
%_TypedArrayInitialize(ah,2,null,0,aq,true);
}
}
function Int8ArrayConstructByArrayLike(ah,ar,ak){
var ap=J(ak,168);
if(ap>%_MaxSmi()){
throw D(168);
}
var as=false;
var aq=ap*1;
if(aq<=%_TypedArrayMaxSizeInHeap()){
%_TypedArrayInitialize(ah,2,null,0,aq,false);
}else{
as=
%TypedArrayInitializeFromArrayLike(ah,2,ar,ap);
}
if(!as){
for(var at=0;at<ap;at++){
ah[at]=ar[at];
}
}
}
function Int8ArrayConstructByIterable(ah,au,av){
var aw=new B();
var ax=%_Call(av,au);
var ay={
__proto__:null
};
ay[K]=function(){return ax;}
for(var az of ay){
aw.push(az);
}
Int8ArrayConstructByArrayLike(ah,aw,aw.length);
}
function Int8ArrayConstructByTypedArray(ah,Y){
var aA=%TypedArrayGetBuffer(Y);
var ak=%_TypedArrayGetLength(Y);
var aq=%_ArrayBufferViewGetByteLength(Y);
var an=ak*1;
Int8ArrayConstructByArrayLike(ah,Y,ak);
var aB=I(aA,h);
var aC=aB.prototype;
if((%_IsJSReceiver(aC))&&aC!==i){
%InternalSetPrototype(%TypedArrayGetBuffer(ah),aC);
}
}
function Int8ArrayConstructor(ab,ac,aD){
if(!(new.target===(void 0))){
if((%_ClassOf(ab)==='ArrayBuffer')||(%_ClassOf(ab)==='SharedArrayBuffer')){
Int8ArrayConstructByArrayBuffer(this,ab,ac,aD);
}else if((typeof(ab)==='number')||(typeof(ab)==='string')||
(typeof(ab)==='boolean')||(ab===(void 0))){
Int8ArrayConstructByLength(this,ab);
}else if((%_IsTypedArray(ab))){
Int8ArrayConstructByTypedArray(this,ab);
}else{
var av=ab[K];
if((av===(void 0))||av===d){
Int8ArrayConstructByArrayLike(this,ab,ab.length);
}else{
Int8ArrayConstructByIterable(this,ab,av);
}
}
}else{
throw E(27,"Int8Array")
}
}
function Int8ArraySubArray(aE,aF){
var aG=(%_ToInteger(aE));
if(!(aF===(void 0))){
var aH=(%_ToInteger(aF));
var aI=%_TypedArrayGetLength(this);
}else{
var aI=%_TypedArrayGetLength(this);
var aH=aI;
}
if(aG<0){
aG=F(0,aI+aG);
}else{
aG=G(aG,aI);
}
if(aH<0){
aH=F(0,aI+aH);
}else{
aH=G(aH,aI);
}
if(aH<aG){
aH=aG;
}
var ao=aH-aG;
var aJ=
%_ArrayBufferViewGetByteOffset(this)+aG*1;
return new O(%TypedArrayGetBuffer(this),aJ,ao);
}

function Uint16ArrayConstructByArrayBuffer(ah,ai,aj,ak){
if(!(aj===(void 0))){
aj=J(aj,168);
}
if(!(ak===(void 0))){
ak=J(ak,168);
}
var al=%_ArrayBufferGetByteLength(ai);
var am;
if((aj===(void 0))){
am=0;
}else{
am=aj;
if(am % 2!==0){
throw D(167,
"start offset","Uint16Array",2);
}
if(am>al){
throw D(169);
}
}
var an;
var ao;
if((ak===(void 0))){
if(al % 2!==0){
throw D(167,
"byte length","Uint16Array",2);
}
an=al-am;
ao=an/2;
}else{
var ao=ak;
an=ao*2;
}
if((am+an>al)
||(ao>%_MaxSmi())){
throw D(168);
}
%_TypedArrayInitialize(ah,3,ai,am,an,true);
}
function Uint16ArrayConstructByLength(ah,ak){
var ap=(ak===(void 0))?
0:J(ak,168);
if(ap>%_MaxSmi()){
throw D(168);
}
var aq=ap*2;
if(aq>%_TypedArrayMaxSizeInHeap()){
var ai=new h(aq);
%_TypedArrayInitialize(ah,3,ai,0,aq,true);
}else{
%_TypedArrayInitialize(ah,3,null,0,aq,true);
}
}
function Uint16ArrayConstructByArrayLike(ah,ar,ak){
var ap=J(ak,168);
if(ap>%_MaxSmi()){
throw D(168);
}
var as=false;
var aq=ap*2;
if(aq<=%_TypedArrayMaxSizeInHeap()){
%_TypedArrayInitialize(ah,3,null,0,aq,false);
}else{
as=
%TypedArrayInitializeFromArrayLike(ah,3,ar,ap);
}
if(!as){
for(var at=0;at<ap;at++){
ah[at]=ar[at];
}
}
}
function Uint16ArrayConstructByIterable(ah,au,av){
var aw=new B();
var ax=%_Call(av,au);
var ay={
__proto__:null
};
ay[K]=function(){return ax;}
for(var az of ay){
aw.push(az);
}
Uint16ArrayConstructByArrayLike(ah,aw,aw.length);
}
function Uint16ArrayConstructByTypedArray(ah,Y){
var aA=%TypedArrayGetBuffer(Y);
var ak=%_TypedArrayGetLength(Y);
var aq=%_ArrayBufferViewGetByteLength(Y);
var an=ak*2;
Uint16ArrayConstructByArrayLike(ah,Y,ak);
var aB=I(aA,h);
var aC=aB.prototype;
if((%_IsJSReceiver(aC))&&aC!==i){
%InternalSetPrototype(%TypedArrayGetBuffer(ah),aC);
}
}
function Uint16ArrayConstructor(ab,ac,aD){
if(!(new.target===(void 0))){
if((%_ClassOf(ab)==='ArrayBuffer')||(%_ClassOf(ab)==='SharedArrayBuffer')){
Uint16ArrayConstructByArrayBuffer(this,ab,ac,aD);
}else if((typeof(ab)==='number')||(typeof(ab)==='string')||
(typeof(ab)==='boolean')||(ab===(void 0))){
Uint16ArrayConstructByLength(this,ab);
}else if((%_IsTypedArray(ab))){
Uint16ArrayConstructByTypedArray(this,ab);
}else{
var av=ab[K];
if((av===(void 0))||av===d){
Uint16ArrayConstructByArrayLike(this,ab,ab.length);
}else{
Uint16ArrayConstructByIterable(this,ab,av);
}
}
}else{
throw E(27,"Uint16Array")
}
}
function Uint16ArraySubArray(aE,aF){
var aG=(%_ToInteger(aE));
if(!(aF===(void 0))){
var aH=(%_ToInteger(aF));
var aI=%_TypedArrayGetLength(this);
}else{
var aI=%_TypedArrayGetLength(this);
var aH=aI;
}
if(aG<0){
aG=F(0,aI+aG);
}else{
aG=G(aG,aI);
}
if(aH<0){
aH=F(0,aI+aH);
}else{
aH=G(aH,aI);
}
if(aH<aG){
aH=aG;
}
var ao=aH-aG;
var aJ=
%_ArrayBufferViewGetByteOffset(this)+aG*2;
return new P(%TypedArrayGetBuffer(this),aJ,ao);
}

function Int16ArrayConstructByArrayBuffer(ah,ai,aj,ak){
if(!(aj===(void 0))){
aj=J(aj,168);
}
if(!(ak===(void 0))){
ak=J(ak,168);
}
var al=%_ArrayBufferGetByteLength(ai);
var am;
if((aj===(void 0))){
am=0;
}else{
am=aj;
if(am % 2!==0){
throw D(167,
"start offset","Int16Array",2);
}
if(am>al){
throw D(169);
}
}
var an;
var ao;
if((ak===(void 0))){
if(al % 2!==0){
throw D(167,
"byte length","Int16Array",2);
}
an=al-am;
ao=an/2;
}else{
var ao=ak;
an=ao*2;
}
if((am+an>al)
||(ao>%_MaxSmi())){
throw D(168);
}
%_TypedArrayInitialize(ah,4,ai,am,an,true);
}
function Int16ArrayConstructByLength(ah,ak){
var ap=(ak===(void 0))?
0:J(ak,168);
if(ap>%_MaxSmi()){
throw D(168);
}
var aq=ap*2;
if(aq>%_TypedArrayMaxSizeInHeap()){
var ai=new h(aq);
%_TypedArrayInitialize(ah,4,ai,0,aq,true);
}else{
%_TypedArrayInitialize(ah,4,null,0,aq,true);
}
}
function Int16ArrayConstructByArrayLike(ah,ar,ak){
var ap=J(ak,168);
if(ap>%_MaxSmi()){
throw D(168);
}
var as=false;
var aq=ap*2;
if(aq<=%_TypedArrayMaxSizeInHeap()){
%_TypedArrayInitialize(ah,4,null,0,aq,false);
}else{
as=
%TypedArrayInitializeFromArrayLike(ah,4,ar,ap);
}
if(!as){
for(var at=0;at<ap;at++){
ah[at]=ar[at];
}
}
}
function Int16ArrayConstructByIterable(ah,au,av){
var aw=new B();
var ax=%_Call(av,au);
var ay={
__proto__:null
};
ay[K]=function(){return ax;}
for(var az of ay){
aw.push(az);
}
Int16ArrayConstructByArrayLike(ah,aw,aw.length);
}
function Int16ArrayConstructByTypedArray(ah,Y){
var aA=%TypedArrayGetBuffer(Y);
var ak=%_TypedArrayGetLength(Y);
var aq=%_ArrayBufferViewGetByteLength(Y);
var an=ak*2;
Int16ArrayConstructByArrayLike(ah,Y,ak);
var aB=I(aA,h);
var aC=aB.prototype;
if((%_IsJSReceiver(aC))&&aC!==i){
%InternalSetPrototype(%TypedArrayGetBuffer(ah),aC);
}
}
function Int16ArrayConstructor(ab,ac,aD){
if(!(new.target===(void 0))){
if((%_ClassOf(ab)==='ArrayBuffer')||(%_ClassOf(ab)==='SharedArrayBuffer')){
Int16ArrayConstructByArrayBuffer(this,ab,ac,aD);
}else if((typeof(ab)==='number')||(typeof(ab)==='string')||
(typeof(ab)==='boolean')||(ab===(void 0))){
Int16ArrayConstructByLength(this,ab);
}else if((%_IsTypedArray(ab))){
Int16ArrayConstructByTypedArray(this,ab);
}else{
var av=ab[K];
if((av===(void 0))||av===d){
Int16ArrayConstructByArrayLike(this,ab,ab.length);
}else{
Int16ArrayConstructByIterable(this,ab,av);
}
}
}else{
throw E(27,"Int16Array")
}
}
function Int16ArraySubArray(aE,aF){
var aG=(%_ToInteger(aE));
if(!(aF===(void 0))){
var aH=(%_ToInteger(aF));
var aI=%_TypedArrayGetLength(this);
}else{
var aI=%_TypedArrayGetLength(this);
var aH=aI;
}
if(aG<0){
aG=F(0,aI+aG);
}else{
aG=G(aG,aI);
}
if(aH<0){
aH=F(0,aI+aH);
}else{
aH=G(aH,aI);
}
if(aH<aG){
aH=aG;
}
var ao=aH-aG;
var aJ=
%_ArrayBufferViewGetByteOffset(this)+aG*2;
return new Q(%TypedArrayGetBuffer(this),aJ,ao);
}

function Uint32ArrayConstructByArrayBuffer(ah,ai,aj,ak){
if(!(aj===(void 0))){
aj=J(aj,168);
}
if(!(ak===(void 0))){
ak=J(ak,168);
}
var al=%_ArrayBufferGetByteLength(ai);
var am;
if((aj===(void 0))){
am=0;
}else{
am=aj;
if(am % 4!==0){
throw D(167,
"start offset","Uint32Array",4);
}
if(am>al){
throw D(169);
}
}
var an;
var ao;
if((ak===(void 0))){
if(al % 4!==0){
throw D(167,
"byte length","Uint32Array",4);
}
an=al-am;
ao=an/4;
}else{
var ao=ak;
an=ao*4;
}
if((am+an>al)
||(ao>%_MaxSmi())){
throw D(168);
}
%_TypedArrayInitialize(ah,5,ai,am,an,true);
}
function Uint32ArrayConstructByLength(ah,ak){
var ap=(ak===(void 0))?
0:J(ak,168);
if(ap>%_MaxSmi()){
throw D(168);
}
var aq=ap*4;
if(aq>%_TypedArrayMaxSizeInHeap()){
var ai=new h(aq);
%_TypedArrayInitialize(ah,5,ai,0,aq,true);
}else{
%_TypedArrayInitialize(ah,5,null,0,aq,true);
}
}
function Uint32ArrayConstructByArrayLike(ah,ar,ak){
var ap=J(ak,168);
if(ap>%_MaxSmi()){
throw D(168);
}
var as=false;
var aq=ap*4;
if(aq<=%_TypedArrayMaxSizeInHeap()){
%_TypedArrayInitialize(ah,5,null,0,aq,false);
}else{
as=
%TypedArrayInitializeFromArrayLike(ah,5,ar,ap);
}
if(!as){
for(var at=0;at<ap;at++){
ah[at]=ar[at];
}
}
}
function Uint32ArrayConstructByIterable(ah,au,av){
var aw=new B();
var ax=%_Call(av,au);
var ay={
__proto__:null
};
ay[K]=function(){return ax;}
for(var az of ay){
aw.push(az);
}
Uint32ArrayConstructByArrayLike(ah,aw,aw.length);
}
function Uint32ArrayConstructByTypedArray(ah,Y){
var aA=%TypedArrayGetBuffer(Y);
var ak=%_TypedArrayGetLength(Y);
var aq=%_ArrayBufferViewGetByteLength(Y);
var an=ak*4;
Uint32ArrayConstructByArrayLike(ah,Y,ak);
var aB=I(aA,h);
var aC=aB.prototype;
if((%_IsJSReceiver(aC))&&aC!==i){
%InternalSetPrototype(%TypedArrayGetBuffer(ah),aC);
}
}
function Uint32ArrayConstructor(ab,ac,aD){
if(!(new.target===(void 0))){
if((%_ClassOf(ab)==='ArrayBuffer')||(%_ClassOf(ab)==='SharedArrayBuffer')){
Uint32ArrayConstructByArrayBuffer(this,ab,ac,aD);
}else if((typeof(ab)==='number')||(typeof(ab)==='string')||
(typeof(ab)==='boolean')||(ab===(void 0))){
Uint32ArrayConstructByLength(this,ab);
}else if((%_IsTypedArray(ab))){
Uint32ArrayConstructByTypedArray(this,ab);
}else{
var av=ab[K];
if((av===(void 0))||av===d){
Uint32ArrayConstructByArrayLike(this,ab,ab.length);
}else{
Uint32ArrayConstructByIterable(this,ab,av);
}
}
}else{
throw E(27,"Uint32Array")
}
}
function Uint32ArraySubArray(aE,aF){
var aG=(%_ToInteger(aE));
if(!(aF===(void 0))){
var aH=(%_ToInteger(aF));
var aI=%_TypedArrayGetLength(this);
}else{
var aI=%_TypedArrayGetLength(this);
var aH=aI;
}
if(aG<0){
aG=F(0,aI+aG);
}else{
aG=G(aG,aI);
}
if(aH<0){
aH=F(0,aI+aH);
}else{
aH=G(aH,aI);
}
if(aH<aG){
aH=aG;
}
var ao=aH-aG;
var aJ=
%_ArrayBufferViewGetByteOffset(this)+aG*4;
return new R(%TypedArrayGetBuffer(this),aJ,ao);
}

function Int32ArrayConstructByArrayBuffer(ah,ai,aj,ak){
if(!(aj===(void 0))){
aj=J(aj,168);
}
if(!(ak===(void 0))){
ak=J(ak,168);
}
var al=%_ArrayBufferGetByteLength(ai);
var am;
if((aj===(void 0))){
am=0;
}else{
am=aj;
if(am % 4!==0){
throw D(167,
"start offset","Int32Array",4);
}
if(am>al){
throw D(169);
}
}
var an;
var ao;
if((ak===(void 0))){
if(al % 4!==0){
throw D(167,
"byte length","Int32Array",4);
}
an=al-am;
ao=an/4;
}else{
var ao=ak;
an=ao*4;
}
if((am+an>al)
||(ao>%_MaxSmi())){
throw D(168);
}
%_TypedArrayInitialize(ah,6,ai,am,an,true);
}
function Int32ArrayConstructByLength(ah,ak){
var ap=(ak===(void 0))?
0:J(ak,168);
if(ap>%_MaxSmi()){
throw D(168);
}
var aq=ap*4;
if(aq>%_TypedArrayMaxSizeInHeap()){
var ai=new h(aq);
%_TypedArrayInitialize(ah,6,ai,0,aq,true);
}else{
%_TypedArrayInitialize(ah,6,null,0,aq,true);
}
}
function Int32ArrayConstructByArrayLike(ah,ar,ak){
var ap=J(ak,168);
if(ap>%_MaxSmi()){
throw D(168);
}
var as=false;
var aq=ap*4;
if(aq<=%_TypedArrayMaxSizeInHeap()){
%_TypedArrayInitialize(ah,6,null,0,aq,false);
}else{
as=
%TypedArrayInitializeFromArrayLike(ah,6,ar,ap);
}
if(!as){
for(var at=0;at<ap;at++){
ah[at]=ar[at];
}
}
}
function Int32ArrayConstructByIterable(ah,au,av){
var aw=new B();
var ax=%_Call(av,au);
var ay={
__proto__:null
};
ay[K]=function(){return ax;}
for(var az of ay){
aw.push(az);
}
Int32ArrayConstructByArrayLike(ah,aw,aw.length);
}
function Int32ArrayConstructByTypedArray(ah,Y){
var aA=%TypedArrayGetBuffer(Y);
var ak=%_TypedArrayGetLength(Y);
var aq=%_ArrayBufferViewGetByteLength(Y);
var an=ak*4;
Int32ArrayConstructByArrayLike(ah,Y,ak);
var aB=I(aA,h);
var aC=aB.prototype;
if((%_IsJSReceiver(aC))&&aC!==i){
%InternalSetPrototype(%TypedArrayGetBuffer(ah),aC);
}
}
function Int32ArrayConstructor(ab,ac,aD){
if(!(new.target===(void 0))){
if((%_ClassOf(ab)==='ArrayBuffer')||(%_ClassOf(ab)==='SharedArrayBuffer')){
Int32ArrayConstructByArrayBuffer(this,ab,ac,aD);
}else if((typeof(ab)==='number')||(typeof(ab)==='string')||
(typeof(ab)==='boolean')||(ab===(void 0))){
Int32ArrayConstructByLength(this,ab);
}else if((%_IsTypedArray(ab))){
Int32ArrayConstructByTypedArray(this,ab);
}else{
var av=ab[K];
if((av===(void 0))||av===d){
Int32ArrayConstructByArrayLike(this,ab,ab.length);
}else{
Int32ArrayConstructByIterable(this,ab,av);
}
}
}else{
throw E(27,"Int32Array")
}
}
function Int32ArraySubArray(aE,aF){
var aG=(%_ToInteger(aE));
if(!(aF===(void 0))){
var aH=(%_ToInteger(aF));
var aI=%_TypedArrayGetLength(this);
}else{
var aI=%_TypedArrayGetLength(this);
var aH=aI;
}
if(aG<0){
aG=F(0,aI+aG);
}else{
aG=G(aG,aI);
}
if(aH<0){
aH=F(0,aI+aH);
}else{
aH=G(aH,aI);
}
if(aH<aG){
aH=aG;
}
var ao=aH-aG;
var aJ=
%_ArrayBufferViewGetByteOffset(this)+aG*4;
return new S(%TypedArrayGetBuffer(this),aJ,ao);
}

function Float32ArrayConstructByArrayBuffer(ah,ai,aj,ak){
if(!(aj===(void 0))){
aj=J(aj,168);
}
if(!(ak===(void 0))){
ak=J(ak,168);
}
var al=%_ArrayBufferGetByteLength(ai);
var am;
if((aj===(void 0))){
am=0;
}else{
am=aj;
if(am % 4!==0){
throw D(167,
"start offset","Float32Array",4);
}
if(am>al){
throw D(169);
}
}
var an;
var ao;
if((ak===(void 0))){
if(al % 4!==0){
throw D(167,
"byte length","Float32Array",4);
}
an=al-am;
ao=an/4;
}else{
var ao=ak;
an=ao*4;
}
if((am+an>al)
||(ao>%_MaxSmi())){
throw D(168);
}
%_TypedArrayInitialize(ah,7,ai,am,an,true);
}
function Float32ArrayConstructByLength(ah,ak){
var ap=(ak===(void 0))?
0:J(ak,168);
if(ap>%_MaxSmi()){
throw D(168);
}
var aq=ap*4;
if(aq>%_TypedArrayMaxSizeInHeap()){
var ai=new h(aq);
%_TypedArrayInitialize(ah,7,ai,0,aq,true);
}else{
%_TypedArrayInitialize(ah,7,null,0,aq,true);
}
}
function Float32ArrayConstructByArrayLike(ah,ar,ak){
var ap=J(ak,168);
if(ap>%_MaxSmi()){
throw D(168);
}
var as=false;
var aq=ap*4;
if(aq<=%_TypedArrayMaxSizeInHeap()){
%_TypedArrayInitialize(ah,7,null,0,aq,false);
}else{
as=
%TypedArrayInitializeFromArrayLike(ah,7,ar,ap);
}
if(!as){
for(var at=0;at<ap;at++){
ah[at]=ar[at];
}
}
}
function Float32ArrayConstructByIterable(ah,au,av){
var aw=new B();
var ax=%_Call(av,au);
var ay={
__proto__:null
};
ay[K]=function(){return ax;}
for(var az of ay){
aw.push(az);
}
Float32ArrayConstructByArrayLike(ah,aw,aw.length);
}
function Float32ArrayConstructByTypedArray(ah,Y){
var aA=%TypedArrayGetBuffer(Y);
var ak=%_TypedArrayGetLength(Y);
var aq=%_ArrayBufferViewGetByteLength(Y);
var an=ak*4;
Float32ArrayConstructByArrayLike(ah,Y,ak);
var aB=I(aA,h);
var aC=aB.prototype;
if((%_IsJSReceiver(aC))&&aC!==i){
%InternalSetPrototype(%TypedArrayGetBuffer(ah),aC);
}
}
function Float32ArrayConstructor(ab,ac,aD){
if(!(new.target===(void 0))){
if((%_ClassOf(ab)==='ArrayBuffer')||(%_ClassOf(ab)==='SharedArrayBuffer')){
Float32ArrayConstructByArrayBuffer(this,ab,ac,aD);
}else if((typeof(ab)==='number')||(typeof(ab)==='string')||
(typeof(ab)==='boolean')||(ab===(void 0))){
Float32ArrayConstructByLength(this,ab);
}else if((%_IsTypedArray(ab))){
Float32ArrayConstructByTypedArray(this,ab);
}else{
var av=ab[K];
if((av===(void 0))||av===d){
Float32ArrayConstructByArrayLike(this,ab,ab.length);
}else{
Float32ArrayConstructByIterable(this,ab,av);
}
}
}else{
throw E(27,"Float32Array")
}
}
function Float32ArraySubArray(aE,aF){
var aG=(%_ToInteger(aE));
if(!(aF===(void 0))){
var aH=(%_ToInteger(aF));
var aI=%_TypedArrayGetLength(this);
}else{
var aI=%_TypedArrayGetLength(this);
var aH=aI;
}
if(aG<0){
aG=F(0,aI+aG);
}else{
aG=G(aG,aI);
}
if(aH<0){
aH=F(0,aI+aH);
}else{
aH=G(aH,aI);
}
if(aH<aG){
aH=aG;
}
var ao=aH-aG;
var aJ=
%_ArrayBufferViewGetByteOffset(this)+aG*4;
return new T(%TypedArrayGetBuffer(this),aJ,ao);
}

function Float64ArrayConstructByArrayBuffer(ah,ai,aj,ak){
if(!(aj===(void 0))){
aj=J(aj,168);
}
if(!(ak===(void 0))){
ak=J(ak,168);
}
var al=%_ArrayBufferGetByteLength(ai);
var am;
if((aj===(void 0))){
am=0;
}else{
am=aj;
if(am % 8!==0){
throw D(167,
"start offset","Float64Array",8);
}
if(am>al){
throw D(169);
}
}
var an;
var ao;
if((ak===(void 0))){
if(al % 8!==0){
throw D(167,
"byte length","Float64Array",8);
}
an=al-am;
ao=an/8;
}else{
var ao=ak;
an=ao*8;
}
if((am+an>al)
||(ao>%_MaxSmi())){
throw D(168);
}
%_TypedArrayInitialize(ah,8,ai,am,an,true);
}
function Float64ArrayConstructByLength(ah,ak){
var ap=(ak===(void 0))?
0:J(ak,168);
if(ap>%_MaxSmi()){
throw D(168);
}
var aq=ap*8;
if(aq>%_TypedArrayMaxSizeInHeap()){
var ai=new h(aq);
%_TypedArrayInitialize(ah,8,ai,0,aq,true);
}else{
%_TypedArrayInitialize(ah,8,null,0,aq,true);
}
}
function Float64ArrayConstructByArrayLike(ah,ar,ak){
var ap=J(ak,168);
if(ap>%_MaxSmi()){
throw D(168);
}
var as=false;
var aq=ap*8;
if(aq<=%_TypedArrayMaxSizeInHeap()){
%_TypedArrayInitialize(ah,8,null,0,aq,false);
}else{
as=
%TypedArrayInitializeFromArrayLike(ah,8,ar,ap);
}
if(!as){
for(var at=0;at<ap;at++){
ah[at]=ar[at];
}
}
}
function Float64ArrayConstructByIterable(ah,au,av){
var aw=new B();
var ax=%_Call(av,au);
var ay={
__proto__:null
};
ay[K]=function(){return ax;}
for(var az of ay){
aw.push(az);
}
Float64ArrayConstructByArrayLike(ah,aw,aw.length);
}
function Float64ArrayConstructByTypedArray(ah,Y){
var aA=%TypedArrayGetBuffer(Y);
var ak=%_TypedArrayGetLength(Y);
var aq=%_ArrayBufferViewGetByteLength(Y);
var an=ak*8;
Float64ArrayConstructByArrayLike(ah,Y,ak);
var aB=I(aA,h);
var aC=aB.prototype;
if((%_IsJSReceiver(aC))&&aC!==i){
%InternalSetPrototype(%TypedArrayGetBuffer(ah),aC);
}
}
function Float64ArrayConstructor(ab,ac,aD){
if(!(new.target===(void 0))){
if((%_ClassOf(ab)==='ArrayBuffer')||(%_ClassOf(ab)==='SharedArrayBuffer')){
Float64ArrayConstructByArrayBuffer(this,ab,ac,aD);
}else if((typeof(ab)==='number')||(typeof(ab)==='string')||
(typeof(ab)==='boolean')||(ab===(void 0))){
Float64ArrayConstructByLength(this,ab);
}else if((%_IsTypedArray(ab))){
Float64ArrayConstructByTypedArray(this,ab);
}else{
var av=ab[K];
if((av===(void 0))||av===d){
Float64ArrayConstructByArrayLike(this,ab,ab.length);
}else{
Float64ArrayConstructByIterable(this,ab,av);
}
}
}else{
throw E(27,"Float64Array")
}
}
function Float64ArraySubArray(aE,aF){
var aG=(%_ToInteger(aE));
if(!(aF===(void 0))){
var aH=(%_ToInteger(aF));
var aI=%_TypedArrayGetLength(this);
}else{
var aI=%_TypedArrayGetLength(this);
var aH=aI;
}
if(aG<0){
aG=F(0,aI+aG);
}else{
aG=G(aG,aI);
}
if(aH<0){
aH=F(0,aI+aH);
}else{
aH=G(aH,aI);
}
if(aH<aG){
aH=aG;
}
var ao=aH-aG;
var aJ=
%_ArrayBufferViewGetByteOffset(this)+aG*8;
return new U(%TypedArrayGetBuffer(this),aJ,ao);
}

function Uint8ClampedArrayConstructByArrayBuffer(ah,ai,aj,ak){
if(!(aj===(void 0))){
aj=J(aj,168);
}
if(!(ak===(void 0))){
ak=J(ak,168);
}
var al=%_ArrayBufferGetByteLength(ai);
var am;
if((aj===(void 0))){
am=0;
}else{
am=aj;
if(am % 1!==0){
throw D(167,
"start offset","Uint8ClampedArray",1);
}
if(am>al){
throw D(169);
}
}
var an;
var ao;
if((ak===(void 0))){
if(al % 1!==0){
throw D(167,
"byte length","Uint8ClampedArray",1);
}
an=al-am;
ao=an/1;
}else{
var ao=ak;
an=ao*1;
}
if((am+an>al)
||(ao>%_MaxSmi())){
throw D(168);
}
%_TypedArrayInitialize(ah,9,ai,am,an,true);
}
function Uint8ClampedArrayConstructByLength(ah,ak){
var ap=(ak===(void 0))?
0:J(ak,168);
if(ap>%_MaxSmi()){
throw D(168);
}
var aq=ap*1;
if(aq>%_TypedArrayMaxSizeInHeap()){
var ai=new h(aq);
%_TypedArrayInitialize(ah,9,ai,0,aq,true);
}else{
%_TypedArrayInitialize(ah,9,null,0,aq,true);
}
}
function Uint8ClampedArrayConstructByArrayLike(ah,ar,ak){
var ap=J(ak,168);
if(ap>%_MaxSmi()){
throw D(168);
}
var as=false;
var aq=ap*1;
if(aq<=%_TypedArrayMaxSizeInHeap()){
%_TypedArrayInitialize(ah,9,null,0,aq,false);
}else{
as=
%TypedArrayInitializeFromArrayLike(ah,9,ar,ap);
}
if(!as){
for(var at=0;at<ap;at++){
ah[at]=ar[at];
}
}
}
function Uint8ClampedArrayConstructByIterable(ah,au,av){
var aw=new B();
var ax=%_Call(av,au);
var ay={
__proto__:null
};
ay[K]=function(){return ax;}
for(var az of ay){
aw.push(az);
}
Uint8ClampedArrayConstructByArrayLike(ah,aw,aw.length);
}
function Uint8ClampedArrayConstructByTypedArray(ah,Y){
var aA=%TypedArrayGetBuffer(Y);
var ak=%_TypedArrayGetLength(Y);
var aq=%_ArrayBufferViewGetByteLength(Y);
var an=ak*1;
Uint8ClampedArrayConstructByArrayLike(ah,Y,ak);
var aB=I(aA,h);
var aC=aB.prototype;
if((%_IsJSReceiver(aC))&&aC!==i){
%InternalSetPrototype(%TypedArrayGetBuffer(ah),aC);
}
}
function Uint8ClampedArrayConstructor(ab,ac,aD){
if(!(new.target===(void 0))){
if((%_ClassOf(ab)==='ArrayBuffer')||(%_ClassOf(ab)==='SharedArrayBuffer')){
Uint8ClampedArrayConstructByArrayBuffer(this,ab,ac,aD);
}else if((typeof(ab)==='number')||(typeof(ab)==='string')||
(typeof(ab)==='boolean')||(ab===(void 0))){
Uint8ClampedArrayConstructByLength(this,ab);
}else if((%_IsTypedArray(ab))){
Uint8ClampedArrayConstructByTypedArray(this,ab);
}else{
var av=ab[K];
if((av===(void 0))||av===d){
Uint8ClampedArrayConstructByArrayLike(this,ab,ab.length);
}else{
Uint8ClampedArrayConstructByIterable(this,ab,av);
}
}
}else{
throw E(27,"Uint8ClampedArray")
}
}
function Uint8ClampedArraySubArray(aE,aF){
var aG=(%_ToInteger(aE));
if(!(aF===(void 0))){
var aH=(%_ToInteger(aF));
var aI=%_TypedArrayGetLength(this);
}else{
var aI=%_TypedArrayGetLength(this);
var aH=aI;
}
if(aG<0){
aG=F(0,aI+aG);
}else{
aG=G(aG,aI);
}
if(aH<0){
aH=F(0,aI+aH);
}else{
aH=G(aH,aI);
}
if(aH<aG){
aH=aG;
}
var ao=aH-aG;
var aJ=
%_ArrayBufferViewGetByteOffset(this)+aG*1;
return new V(%TypedArrayGetBuffer(this),aJ,ao);
}


function TypedArraySubArray(aE,aF){
switch(%_ClassOf(this)){
case"Uint8Array":
return %_Call(Uint8ArraySubArray,this,aE,aF);

case"Int8Array":
return %_Call(Int8ArraySubArray,this,aE,aF);

case"Uint16Array":
return %_Call(Uint16ArraySubArray,this,aE,aF);

case"Int16Array":
return %_Call(Int16ArraySubArray,this,aE,aF);

case"Uint32Array":
return %_Call(Uint32ArraySubArray,this,aE,aF);

case"Int32Array":
return %_Call(Int32ArraySubArray,this,aE,aF);

case"Float32Array":
return %_Call(Float32ArraySubArray,this,aE,aF);

case"Float64Array":
return %_Call(Float64ArraySubArray,this,aE,aF);

case"Uint8ClampedArray":
return %_Call(Uint8ClampedArraySubArray,this,aE,aF);


}
throw E(43,
"get TypedArray.prototype.subarray",this);
}
%SetForceInlineFlag(TypedArraySubArray);
function TypedArraySetFromArrayLike(aK,aL,aM,am){
if(am>0){
for(var at=0;at<aM;at++){
aK[am+at]=aL[at];
}
}
else{
for(var at=0;at<aM;at++){
aK[at]=aL[at];
}
}
}
function TypedArraySetFromOverlappingTypedArray(aK,aL,am){
var aN=aL.BYTES_PER_ELEMENT;
var aO=aK.BYTES_PER_ELEMENT;
var aM=%_TypedArrayGetLength(aL);
function CopyLeftPart(){
var aP=aK.byteOffset+(am+1)*aO;
var aQ=aL.byteOffset;
for(var aR=0;
aR<aM&&aP<=aQ;
aR++){
aK[am+aR]=aL[aR];
aP+=aO;
aQ+=aN;
}
return aR;
}
var aR=CopyLeftPart();
function CopyRightPart(){
var aP=
aK.byteOffset+(am+aM-1)*aO;
var aQ=
aL.byteOffset+aM*aN;
for(var aS=aM-1;
aS>=aR&&aP>=aQ;
aS--){
aK[am+aS]=aL[aS];
aP-=aO;
aQ-=aN;
}
return aS;
}
var aS=CopyRightPart();
var aT=new g(aS+1-aR);
for(var at=aR;at<=aS;at++){
aT[at-aR]=aL[at];
}
for(at=aR;at<=aS;at++){
aK[am+at]=aT[at-aR];
}
}
function TypedArraySet(ah,am){
var aU=(am===(void 0))?0:(%_ToInteger(am));
if(aU<0)throw E(180);
if(aU>%_MaxSmi()){
throw D(181);
}
switch(%TypedArraySetFastCases(this,ah,aU)){
case 0:
return;
case 1:
TypedArraySetFromOverlappingTypedArray(this,ah,aU);
return;
case 2:
TypedArraySetFromArrayLike(this,
ah,%_TypedArrayGetLength(ah),aU);
return;
case 3:
var ap=ah.length;
if((ap===(void 0))){
if((typeof(ah)==='number')){
throw E(45);
}
return;
}
ap=(%_ToLength(ap));
if(aU+ap>%_TypedArrayGetLength(this)){
throw D(181);
}
TypedArraySetFromArrayLike(this,ah,ap,aU);
return;
}
}
%FunctionSetLength(TypedArraySet,1);
function TypedArrayGetToStringTag(){
if(!(%_IsTypedArray(this)))return;
var aV=%_ClassOf(this);
if((aV===(void 0)))return;
return aV;
}
function TypedArrayCopyWithin(aK,aW,aF){
if(!(%_IsTypedArray(this)))throw E(71);
var ak=%_TypedArrayGetLength(this);
return l(aK,aW,aF,this,ak);
}
%FunctionSetLength(TypedArrayCopyWithin,2);
function TypedArrayEvery(aX,aY){
if(!(%_IsTypedArray(this)))throw E(71);
var ak=%_TypedArrayGetLength(this);
return m(aX,aY,this,ak);
}
%FunctionSetLength(TypedArrayEvery,1);
function TypedArrayForEach(aX,aY){
if(!(%_IsTypedArray(this)))throw E(71);
var ak=%_TypedArrayGetLength(this);
r(aX,aY,this,ak);
}
%FunctionSetLength(TypedArrayForEach,1);
function TypedArrayFill(az,aW,aF){
if(!(%_IsTypedArray(this)))throw E(71);
var ak=%_TypedArrayGetLength(this);
return n(az,aW,aF,this,ak);
}
%FunctionSetLength(TypedArrayFill,1);
function TypedArrayFilter(aX,aZ){
if(!(%_IsTypedArray(this)))throw E(71);
var ak=%_TypedArrayGetLength(this);
if(!(typeof(aX)==='function'))throw E(15,aX);
var ba=new B();
o(aX,aZ,this,ak,ba);
var bb=ba.length;
var bc=TypedArraySpeciesCreate(this,bb);
for(var at=0;at<bb;at++){
bc[at]=ba[at];
}
return bc;
}
%FunctionSetLength(TypedArrayFilter,1);
function TypedArrayFind(bd,aZ){
if(!(%_IsTypedArray(this)))throw E(71);
var ak=%_TypedArrayGetLength(this);
return p(bd,aZ,this,ak);
}
%FunctionSetLength(TypedArrayFind,1);
function TypedArrayFindIndex(bd,aZ){
if(!(%_IsTypedArray(this)))throw E(71);
var ak=%_TypedArrayGetLength(this);
return q(bd,aZ,this,ak);
}
%FunctionSetLength(TypedArrayFindIndex,1);
function TypedArrayReverse(){
if(!(%_IsTypedArray(this)))throw E(71);
var ak=%_TypedArrayGetLength(this);
return H(this,ak);
}
function TypedArrayComparefn(be,bf){
if(be===0&&be===bf){
be=1/be;
bf=1/bf;
}
if(be<bf){
return-1;
}else if(be>bf){
return 1;
}else if(C(be)&&C(bf)){
return C(bf)?0:1;
}else if(C(be)){
return 1;
}
return 0;
}
function TypedArraySort(bg){
if(!(%_IsTypedArray(this)))throw E(71);
var ak=%_TypedArrayGetLength(this);
if((bg===(void 0))){
bg=TypedArrayComparefn;
}
return z(this,ak,bg);
}
function TypedArrayIndexOf(bh,bi){
if(!(%_IsTypedArray(this)))throw E(71);
var ak=%_TypedArrayGetLength(this);
return t(this,bh,bi,ak);
}
%FunctionSetLength(TypedArrayIndexOf,1);
function TypedArrayLastIndexOf(bh,bi){
if(!(%_IsTypedArray(this)))throw E(71);
var ak=%_TypedArrayGetLength(this);
return v(this,bh,bi,ak,
arguments.length);
}
%FunctionSetLength(TypedArrayLastIndexOf,1);
function TypedArrayMap(aX,aZ){
if(!(%_IsTypedArray(this)))throw E(71);
var ak=%_TypedArrayGetLength(this);
var ba=TypedArraySpeciesCreate(this,ak);
if(!(typeof(aX)==='function'))throw E(15,aX);
for(var at=0;at<ak;at++){
var bh=this[at];
ba[at]=%_Call(aX,aZ,bh,at,this);
}
return ba;
}
%FunctionSetLength(TypedArrayMap,1);
function TypedArraySome(aX,aY){
if(!(%_IsTypedArray(this)))throw E(71);
var ak=%_TypedArrayGetLength(this);
return y(aX,aY,this,ak);
}
%FunctionSetLength(TypedArraySome,1);
function TypedArrayToLocaleString(){
if(!(%_IsTypedArray(this)))throw E(71);
var ak=%_TypedArrayGetLength(this);
return A(this,ak);
}
function TypedArrayJoin(bj){
if(!(%_IsTypedArray(this)))throw E(71);
var ak=%_TypedArrayGetLength(this);
return u(bj,this,ak);
}
function TypedArrayReduce(bk,bl){
if(!(%_IsTypedArray(this)))throw E(71);
var ak=%_TypedArrayGetLength(this);
return w(bk,bl,this,ak,
arguments.length);
}
%FunctionSetLength(TypedArrayReduce,1);
function TypedArrayReduceRight(bk,bl){
if(!(%_IsTypedArray(this)))throw E(71);
var ak=%_TypedArrayGetLength(this);
return x(bk,bl,this,ak,
arguments.length);
}
%FunctionSetLength(TypedArrayReduceRight,1);
function TypedArraySlice(aW,aF){
if(!(%_IsTypedArray(this)))throw E(71);
var bm=%_TypedArrayGetLength(this);
var bn=(%_ToInteger(aW));
var bo;
if(bn<0){
bo=F(bm+bn,0);
}else{
bo=G(bn,bm);
}
var bp;
if((aF===(void 0))){
bp=bm;
}else{
bp=(%_ToInteger(aF));
}
var bq;
if(bp<0){
bq=F(bm+bp,0);
}else{
bq=G(bp,bm);
}
var br=F(bq-bo,0);
var bs=TypedArraySpeciesCreate(this,br);
var bt=0;
while(bo<bq){
var bu=this[bo];
bs[bt]=bu;
bo++;
bt++;
}
return bs;
}
function TypedArrayIncludes(bv,bw){
if(!(%_IsTypedArray(this)))throw E(71);
var ak=%_TypedArrayGetLength(this);
return s(bv,bw,this,ak);
}
%FunctionSetLength(TypedArrayIncludes,1);
function TypedArrayOf(){
var ak=arguments.length;
var bs=TypedArrayCreate(this,ak);
for(var at=0;at<ak;at++){
bs[at]=arguments[at];
}
return bs;
}
function IterableToArrayLike(bx){
var au=f(bx,K);
if(!(au===(void 0))){
var by=new B();
var at=0;
for(var az of
{[K](){return e(bx,au)}}){
by[at]=az;
at++;
}
var bs=[];
%MoveArrayContents(by,bs);
return bs;
}
return(%_ToObject(bx));
}
function TypedArrayFrom(aL,bz,aZ){
if(!%IsConstructor(this))throw E(65,this);
var bA;
if(!(bz===(void 0))){
if(!(typeof(bz)==='function'))throw E(15,this);
bA=true;
}else{
bA=false;
}
var ar=IterableToArrayLike(aL);
var ak=(%_ToLength(ar.length));
var bB=TypedArrayCreate(this,ak);
var az,bC;
for(var at=0;at<ak;at++){
az=ar[at];
if(bA){
bC=%_Call(bz,aZ,az,at);
}else{
bC=az;
}
bB[at]=bC;
}
return bB;
}
%FunctionSetLength(TypedArrayFrom,1);
function TypedArrayConstructor(){
if((new.target===(void 0))){
throw E(26,"TypedArray");
}
if(new.target===W){
throw E(24,"TypedArray");
}
}
function TypedArraySpecies(){
return this;
}
%SetCode(W,TypedArrayConstructor);
b.InstallFunctions(W,2,[
"from",TypedArrayFrom,
"of",TypedArrayOf
]);
b.InstallGetter(W,L,TypedArraySpecies);
b.InstallGetter(W.prototype,M,
TypedArrayGetToStringTag);
b.InstallFunctions(W.prototype,2,[
"subarray",TypedArraySubArray,
"set",TypedArraySet,
"copyWithin",TypedArrayCopyWithin,
"every",TypedArrayEvery,
"fill",TypedArrayFill,
"filter",TypedArrayFilter,
"find",TypedArrayFind,
"findIndex",TypedArrayFindIndex,
"includes",TypedArrayIncludes,
"indexOf",TypedArrayIndexOf,
"join",TypedArrayJoin,
"lastIndexOf",TypedArrayLastIndexOf,
"forEach",TypedArrayForEach,
"map",TypedArrayMap,
"reduce",TypedArrayReduce,
"reduceRight",TypedArrayReduceRight,
"reverse",TypedArrayReverse,
"slice",TypedArraySlice,
"some",TypedArraySome,
"sort",TypedArraySort,
"toLocaleString",TypedArrayToLocaleString
]);
%AddNamedProperty(W.prototype,"toString",c,
2);
%SetCode(N,Uint8ArrayConstructor);
%FunctionSetPrototype(N,new k());
%InternalSetPrototype(N,W);
%InternalSetPrototype(N.prototype,W.prototype);
%AddNamedProperty(N,"BYTES_PER_ELEMENT",1,
1|2|4);
%AddNamedProperty(N.prototype,
"constructor",a.Uint8Array,2);
%AddNamedProperty(N.prototype,
"BYTES_PER_ELEMENT",1,
1|2|4);

%SetCode(O,Int8ArrayConstructor);
%FunctionSetPrototype(O,new k());
%InternalSetPrototype(O,W);
%InternalSetPrototype(O.prototype,W.prototype);
%AddNamedProperty(O,"BYTES_PER_ELEMENT",1,
1|2|4);
%AddNamedProperty(O.prototype,
"constructor",a.Int8Array,2);
%AddNamedProperty(O.prototype,
"BYTES_PER_ELEMENT",1,
1|2|4);

%SetCode(P,Uint16ArrayConstructor);
%FunctionSetPrototype(P,new k());
%InternalSetPrototype(P,W);
%InternalSetPrototype(P.prototype,W.prototype);
%AddNamedProperty(P,"BYTES_PER_ELEMENT",2,
1|2|4);
%AddNamedProperty(P.prototype,
"constructor",a.Uint16Array,2);
%AddNamedProperty(P.prototype,
"BYTES_PER_ELEMENT",2,
1|2|4);

%SetCode(Q,Int16ArrayConstructor);
%FunctionSetPrototype(Q,new k());
%InternalSetPrototype(Q,W);
%InternalSetPrototype(Q.prototype,W.prototype);
%AddNamedProperty(Q,"BYTES_PER_ELEMENT",2,
1|2|4);
%AddNamedProperty(Q.prototype,
"constructor",a.Int16Array,2);
%AddNamedProperty(Q.prototype,
"BYTES_PER_ELEMENT",2,
1|2|4);

%SetCode(R,Uint32ArrayConstructor);
%FunctionSetPrototype(R,new k());
%InternalSetPrototype(R,W);
%InternalSetPrototype(R.prototype,W.prototype);
%AddNamedProperty(R,"BYTES_PER_ELEMENT",4,
1|2|4);
%AddNamedProperty(R.prototype,
"constructor",a.Uint32Array,2);
%AddNamedProperty(R.prototype,
"BYTES_PER_ELEMENT",4,
1|2|4);

%SetCode(S,Int32ArrayConstructor);
%FunctionSetPrototype(S,new k());
%InternalSetPrototype(S,W);
%InternalSetPrototype(S.prototype,W.prototype);
%AddNamedProperty(S,"BYTES_PER_ELEMENT",4,
1|2|4);
%AddNamedProperty(S.prototype,
"constructor",a.Int32Array,2);
%AddNamedProperty(S.prototype,
"BYTES_PER_ELEMENT",4,
1|2|4);

%SetCode(T,Float32ArrayConstructor);
%FunctionSetPrototype(T,new k());
%InternalSetPrototype(T,W);
%InternalSetPrototype(T.prototype,W.prototype);
%AddNamedProperty(T,"BYTES_PER_ELEMENT",4,
1|2|4);
%AddNamedProperty(T.prototype,
"constructor",a.Float32Array,2);
%AddNamedProperty(T.prototype,
"BYTES_PER_ELEMENT",4,
1|2|4);

%SetCode(U,Float64ArrayConstructor);
%FunctionSetPrototype(U,new k());
%InternalSetPrototype(U,W);
%InternalSetPrototype(U.prototype,W.prototype);
%AddNamedProperty(U,"BYTES_PER_ELEMENT",8,
1|2|4);
%AddNamedProperty(U.prototype,
"constructor",a.Float64Array,2);
%AddNamedProperty(U.prototype,
"BYTES_PER_ELEMENT",8,
1|2|4);

%SetCode(V,Uint8ClampedArrayConstructor);
%FunctionSetPrototype(V,new k());
%InternalSetPrototype(V,W);
%InternalSetPrototype(V.prototype,W.prototype);
%AddNamedProperty(V,"BYTES_PER_ELEMENT",1,
1|2|4);
%AddNamedProperty(V.prototype,
"constructor",a.Uint8ClampedArray,2);
%AddNamedProperty(V.prototype,
"BYTES_PER_ELEMENT",1,
1|2|4);


function DataViewGetInt8JS(am,bD){
if(!(%_ClassOf(this)==='DataView')){
throw E(43,
'DataView.getInt8',this);
}
if(arguments.length<1)throw E(45);
am=J(am,158);
return %DataViewGetInt8(this,am,!!bD);
}
%FunctionSetLength(DataViewGetInt8JS,1);
function DataViewSetInt8JS(am,az,bD){
if(!(%_ClassOf(this)==='DataView')){
throw E(43,
'DataView.setInt8',this);
}
if(arguments.length<2)throw E(45);
am=J(am,158);
%DataViewSetInt8(this,am,(%_ToNumber(az)),!!bD);
}
%FunctionSetLength(DataViewSetInt8JS,2);

function DataViewGetUint8JS(am,bD){
if(!(%_ClassOf(this)==='DataView')){
throw E(43,
'DataView.getUint8',this);
}
if(arguments.length<1)throw E(45);
am=J(am,158);
return %DataViewGetUint8(this,am,!!bD);
}
%FunctionSetLength(DataViewGetUint8JS,1);
function DataViewSetUint8JS(am,az,bD){
if(!(%_ClassOf(this)==='DataView')){
throw E(43,
'DataView.setUint8',this);
}
if(arguments.length<2)throw E(45);
am=J(am,158);
%DataViewSetUint8(this,am,(%_ToNumber(az)),!!bD);
}
%FunctionSetLength(DataViewSetUint8JS,2);

function DataViewGetInt16JS(am,bD){
if(!(%_ClassOf(this)==='DataView')){
throw E(43,
'DataView.getInt16',this);
}
if(arguments.length<1)throw E(45);
am=J(am,158);
return %DataViewGetInt16(this,am,!!bD);
}
%FunctionSetLength(DataViewGetInt16JS,1);
function DataViewSetInt16JS(am,az,bD){
if(!(%_ClassOf(this)==='DataView')){
throw E(43,
'DataView.setInt16',this);
}
if(arguments.length<2)throw E(45);
am=J(am,158);
%DataViewSetInt16(this,am,(%_ToNumber(az)),!!bD);
}
%FunctionSetLength(DataViewSetInt16JS,2);

function DataViewGetUint16JS(am,bD){
if(!(%_ClassOf(this)==='DataView')){
throw E(43,
'DataView.getUint16',this);
}
if(arguments.length<1)throw E(45);
am=J(am,158);
return %DataViewGetUint16(this,am,!!bD);
}
%FunctionSetLength(DataViewGetUint16JS,1);
function DataViewSetUint16JS(am,az,bD){
if(!(%_ClassOf(this)==='DataView')){
throw E(43,
'DataView.setUint16',this);
}
if(arguments.length<2)throw E(45);
am=J(am,158);
%DataViewSetUint16(this,am,(%_ToNumber(az)),!!bD);
}
%FunctionSetLength(DataViewSetUint16JS,2);

function DataViewGetInt32JS(am,bD){
if(!(%_ClassOf(this)==='DataView')){
throw E(43,
'DataView.getInt32',this);
}
if(arguments.length<1)throw E(45);
am=J(am,158);
return %DataViewGetInt32(this,am,!!bD);
}
%FunctionSetLength(DataViewGetInt32JS,1);
function DataViewSetInt32JS(am,az,bD){
if(!(%_ClassOf(this)==='DataView')){
throw E(43,
'DataView.setInt32',this);
}
if(arguments.length<2)throw E(45);
am=J(am,158);
%DataViewSetInt32(this,am,(%_ToNumber(az)),!!bD);
}
%FunctionSetLength(DataViewSetInt32JS,2);

function DataViewGetUint32JS(am,bD){
if(!(%_ClassOf(this)==='DataView')){
throw E(43,
'DataView.getUint32',this);
}
if(arguments.length<1)throw E(45);
am=J(am,158);
return %DataViewGetUint32(this,am,!!bD);
}
%FunctionSetLength(DataViewGetUint32JS,1);
function DataViewSetUint32JS(am,az,bD){
if(!(%_ClassOf(this)==='DataView')){
throw E(43,
'DataView.setUint32',this);
}
if(arguments.length<2)throw E(45);
am=J(am,158);
%DataViewSetUint32(this,am,(%_ToNumber(az)),!!bD);
}
%FunctionSetLength(DataViewSetUint32JS,2);

function DataViewGetFloat32JS(am,bD){
if(!(%_ClassOf(this)==='DataView')){
throw E(43,
'DataView.getFloat32',this);
}
if(arguments.length<1)throw E(45);
am=J(am,158);
return %DataViewGetFloat32(this,am,!!bD);
}
%FunctionSetLength(DataViewGetFloat32JS,1);
function DataViewSetFloat32JS(am,az,bD){
if(!(%_ClassOf(this)==='DataView')){
throw E(43,
'DataView.setFloat32',this);
}
if(arguments.length<2)throw E(45);
am=J(am,158);
%DataViewSetFloat32(this,am,(%_ToNumber(az)),!!bD);
}
%FunctionSetLength(DataViewSetFloat32JS,2);

function DataViewGetFloat64JS(am,bD){
if(!(%_ClassOf(this)==='DataView')){
throw E(43,
'DataView.getFloat64',this);
}
if(arguments.length<1)throw E(45);
am=J(am,158);
return %DataViewGetFloat64(this,am,!!bD);
}
%FunctionSetLength(DataViewGetFloat64JS,1);
function DataViewSetFloat64JS(am,az,bD){
if(!(%_ClassOf(this)==='DataView')){
throw E(43,
'DataView.setFloat64',this);
}
if(arguments.length<2)throw E(45);
am=J(am,158);
%DataViewSetFloat64(this,am,(%_ToNumber(az)),!!bD);
}
%FunctionSetLength(DataViewSetFloat64JS,2);


b.InstallFunctions(j.prototype,2,[
"getInt8",DataViewGetInt8JS,
"setInt8",DataViewSetInt8JS,
"getUint8",DataViewGetUint8JS,
"setUint8",DataViewSetUint8JS,
"getInt16",DataViewGetInt16JS,
"setInt16",DataViewSetInt16JS,
"getUint16",DataViewGetUint16JS,
"setUint16",DataViewSetUint16JS,
"getInt32",DataViewGetInt32JS,
"setInt32",DataViewSetInt32JS,
"getUint32",DataViewGetUint32JS,
"setUint32",DataViewSetUint32JS,
"getFloat32",DataViewGetFloat32JS,
"setFloat32",DataViewSetFloat32JS,
"getFloat64",DataViewGetFloat64JS,
"setFloat64",DataViewSetFloat64JS
]);
})

Hiterator-prototypeÑ
(function(a,b){
"use strict";
%CheckIsBootstrapping();
var c=a.Object;
var d=b.ImportNow("IteratorPrototype");
var e=b.ImportNow("iterator_symbol");
function IteratorPrototypeIterator(){
return this;
}
b.SetFunctionName(IteratorPrototypeIterator,e);
%AddNamedProperty(d,e,
IteratorPrototypeIterator,2);
})

(collection€
(function(a,b){
"use strict";
%CheckIsBootstrapping();
var c=a.Map;
var d=a.Object;
var e=a.Set;
var f=b.ImportNow("hash_code_symbol");
var g;
var h;
var i;
var j;
var k;
var l=b.ImportNow("species_symbol");
var m=b.ImportNow("to_string_tag_symbol");
b.Import(function(n){
g=n.IntRandom;
h=n.MakeTypeError;
i=n.MapIterator;
j=n.NumberIsNaN;
k=n.SetIterator;
});
function HashToEntry(o,p,q){
var r=(p&((q)-1));
return((%_FixedArrayGet(o,(3+(r))|0)));
}
%SetForceInlineFlag(HashToEntry);
function SetFindEntry(o,q,s,p){
var t=HashToEntry(o,p,q);
if(t===-1)return t;
var u=((%_FixedArrayGet(o,((3+(q)+((t)<<1)))|0)));
if(s===u)return t;
var v=j(s);
while(true){
if(v&&j(u)){
return t;
}
t=((%_FixedArrayGet(o,((3+(q)+((t)<<1))+1)|0)));
if(t===-1)return t;
u=((%_FixedArrayGet(o,((3+(q)+((t)<<1)))|0)));
if(s===u)return t;
}
return-1;
}
%SetForceInlineFlag(SetFindEntry);
function MapFindEntry(o,q,s,p){
var t=HashToEntry(o,p,q);
if(t===-1)return t;
var u=((%_FixedArrayGet(o,((3+(q)+((t)*3)))|0)));
if(s===u)return t;
var v=j(s);
while(true){
if(v&&j(u)){
return t;
}
t=((%_FixedArrayGet(o,((3+(q)+((t)*3))+2)|0)));
if(t===-1)return t;
u=((%_FixedArrayGet(o,((3+(q)+((t)*3)))|0)));
if(s===u)return t;
}
return-1;
}
%SetForceInlineFlag(MapFindEntry);
function ComputeIntegerHash(s,w){
var p=s;
p=p^w;
p=~p+(p<<15);
p=p^(p>>>12);
p=p+(p<<2);
p=p^(p>>>4);
p=(p*2057)|0;
p=p^(p>>>16);
return p&0x3fffffff;
}
%SetForceInlineFlag(ComputeIntegerHash);
function GetExistingHash(s){
if(%_IsSmi(s)){
return ComputeIntegerHash(s,0);
}
if((typeof(s)==='string')){
var x=%_StringGetRawHashField(s);
if((x&1)===0){
return x>>>2;
}
}else if((%_IsJSReceiver(s))&&!(%_IsJSProxy(s))&&!(%_ClassOf(s)==='global')){
var p=(s[f]);
return p;
}
return %GenericHash(s);
}
%SetForceInlineFlag(GetExistingHash);
function GetHash(s){
var p=GetExistingHash(s);
if((p===(void 0))){
p=g()|0;
if(p===0)p=1;
(s[f]=p);
}
return p;
}
%SetForceInlineFlag(GetHash);
function SetConstructor(y){
if((new.target===(void 0))){
throw h(27,"Set");
}
%_SetInitialize(this);
if(!(y==null)){
var z=this.add;
if(!(typeof(z)==='function')){
throw h(85,z,'add',this);
}
for(var A of y){
%_Call(z,this,A);
}
}
}
function SetAdd(s){
if(!(%_ClassOf(this)==='Set')){
throw h(43,'Set.prototype.add',this);
}
if(s===0){
s=0;
}
var o=%_JSCollectionGetTable(this);
var q=((%_FixedArrayGet(o,(0)|0)));
var p=GetHash(s);
if(SetFindEntry(o,q,s,p)!==-1)return this;
var B=((%_FixedArrayGet(o,(1)|0)));
var C=((%_FixedArrayGet(o,(2)|0)));
var D=q<<1;
if((B+C)>=D){
%SetGrow(this);
o=%_JSCollectionGetTable(this);
q=((%_FixedArrayGet(o,(0)|0)));
B=((%_FixedArrayGet(o,(1)|0)));
C=((%_FixedArrayGet(o,(2)|0)));
}
var t=B+C;
var E=(3+(q)+((t)<<1));
var r=(p&((q)-1));
var F=((%_FixedArrayGet(o,(3+(r))|0)));
((%_FixedArraySet(o,(3+(r))|0,t)));
(((%_FixedArraySet(o,(1)|0,(B+1)|0))));
(%_FixedArraySet(o,(E)|0,s));
((%_FixedArraySet(o,(E+1)|0,(F)|0)));
return this;
}
function SetHas(s){
if(!(%_ClassOf(this)==='Set')){
throw h(43,'Set.prototype.has',this);
}
var o=%_JSCollectionGetTable(this);
var q=((%_FixedArrayGet(o,(0)|0)));
var p=GetExistingHash(s);
if((p===(void 0)))return false;
return SetFindEntry(o,q,s,p)!==-1;
}
function SetDelete(s){
if(!(%_ClassOf(this)==='Set')){
throw h(43,
'Set.prototype.delete',this);
}
var o=%_JSCollectionGetTable(this);
var q=((%_FixedArrayGet(o,(0)|0)));
var p=GetExistingHash(s);
if((p===(void 0)))return false;
var t=SetFindEntry(o,q,s,p);
if(t===-1)return false;
var B=((%_FixedArrayGet(o,(1)|0)))-1;
var C=((%_FixedArrayGet(o,(2)|0)))+1;
var E=(3+(q)+((t)<<1));
(%_FixedArraySet(o,(E)|0,%_TheHole()));
(((%_FixedArraySet(o,(1)|0,(B)|0))));
(((%_FixedArraySet(o,(2)|0,(C)|0))));
if(B<(q>>>1))%SetShrink(this);
return true;
}
function SetGetSize(){
if(!(%_ClassOf(this)==='Set')){
throw h(43,
'Set.prototype.size',this);
}
var o=%_JSCollectionGetTable(this);
return((%_FixedArrayGet(o,(1)|0)));
}
function SetClearJS(){
if(!(%_ClassOf(this)==='Set')){
throw h(43,
'Set.prototype.clear',this);
}
%_SetClear(this);
}
function SetForEach(G,H){
if(!(%_ClassOf(this)==='Set')){
throw h(43,
'Set.prototype.forEach',this);
}
if(!(typeof(G)==='function'))throw h(15,G);
var I=new k(this,2);
var s;
var J=[(void 0)];
while(%SetIteratorNext(I,J)){
s=J[0];
%_Call(G,H,s,s,this);
}
}
function SetSpecies(){
return this;
}
%SetCode(e,SetConstructor);
%FunctionSetLength(e,0);
%FunctionSetPrototype(e,new d());
%AddNamedProperty(e.prototype,"constructor",e,2);
%AddNamedProperty(e.prototype,m,"Set",
2|1);
%FunctionSetLength(SetForEach,1);
b.InstallGetter(e,l,SetSpecies);
b.InstallGetter(e.prototype,"size",SetGetSize);
b.InstallFunctions(e.prototype,2,[
"add",SetAdd,
"has",SetHas,
"delete",SetDelete,
"clear",SetClearJS,
"forEach",SetForEach
]);
function MapConstructor(y){
if((new.target===(void 0))){
throw h(27,"Map");
}
%_MapInitialize(this);
if(!(y==null)){
var z=this.set;
if(!(typeof(z)==='function')){
throw h(85,z,'set',this);
}
for(var K of y){
if(!(%_IsJSReceiver(K))){
throw h(50,K);
}
%_Call(z,this,K[0],K[1]);
}
}
}
function MapGet(s){
if(!(%_ClassOf(this)==='Map')){
throw h(43,
'Map.prototype.get',this);
}
var o=%_JSCollectionGetTable(this);
var q=((%_FixedArrayGet(o,(0)|0)));
var p=GetExistingHash(s);
if((p===(void 0)))return(void 0);
var t=MapFindEntry(o,q,s,p);
if(t===-1)return(void 0);
return((%_FixedArrayGet(o,((3+(q)+((t)*3))+1)|0)));
}
function MapSet(s,A){
if(!(%_ClassOf(this)==='Map')){
throw h(43,
'Map.prototype.set',this);
}
if(s===0){
s=0;
}
var o=%_JSCollectionGetTable(this);
var q=((%_FixedArrayGet(o,(0)|0)));
var p=GetHash(s);
var t=MapFindEntry(o,q,s,p);
if(t!==-1){
var L=(3+(q)+((t)*3));
(%_FixedArraySet(o,(L+1)|0,A));
return this;
}
var B=((%_FixedArrayGet(o,(1)|0)));
var C=((%_FixedArrayGet(o,(2)|0)));
var D=q<<1;
if((B+C)>=D){
%MapGrow(this);
o=%_JSCollectionGetTable(this);
q=((%_FixedArrayGet(o,(0)|0)));
B=((%_FixedArrayGet(o,(1)|0)));
C=((%_FixedArrayGet(o,(2)|0)));
}
t=B+C;
var E=(3+(q)+((t)*3));
var r=(p&((q)-1));
var F=((%_FixedArrayGet(o,(3+(r))|0)));
((%_FixedArraySet(o,(3+(r))|0,t)));
(((%_FixedArraySet(o,(1)|0,(B+1)|0))));
(%_FixedArraySet(o,(E)|0,s));
(%_FixedArraySet(o,(E+1)|0,A));
(%_FixedArraySet(o,(E+2)|0,F));
return this;
}
function MapHas(s){
if(!(%_ClassOf(this)==='Map')){
throw h(43,
'Map.prototype.has',this);
}
var o=%_JSCollectionGetTable(this);
var q=((%_FixedArrayGet(o,(0)|0)));
var p=GetHash(s);
return MapFindEntry(o,q,s,p)!==-1;
}
function MapDelete(s){
if(!(%_ClassOf(this)==='Map')){
throw h(43,
'Map.prototype.delete',this);
}
var o=%_JSCollectionGetTable(this);
var q=((%_FixedArrayGet(o,(0)|0)));
var p=GetHash(s);
var t=MapFindEntry(o,q,s,p);
if(t===-1)return false;
var B=((%_FixedArrayGet(o,(1)|0)))-1;
var C=((%_FixedArrayGet(o,(2)|0)))+1;
var E=(3+(q)+((t)*3));
(%_FixedArraySet(o,(E)|0,%_TheHole()));
(%_FixedArraySet(o,(E+1)|0,%_TheHole()));
(((%_FixedArraySet(o,(1)|0,(B)|0))));
(((%_FixedArraySet(o,(2)|0,(C)|0))));
if(B<(q>>>1))%MapShrink(this);
return true;
}
function MapGetSize(){
if(!(%_ClassOf(this)==='Map')){
throw h(43,
'Map.prototype.size',this);
}
var o=%_JSCollectionGetTable(this);
return((%_FixedArrayGet(o,(1)|0)));
}
function MapClearJS(){
if(!(%_ClassOf(this)==='Map')){
throw h(43,
'Map.prototype.clear',this);
}
%_MapClear(this);
}
function MapForEach(G,H){
if(!(%_ClassOf(this)==='Map')){
throw h(43,
'Map.prototype.forEach',this);
}
if(!(typeof(G)==='function'))throw h(15,G);
var I=new i(this,3);
var J=[(void 0),(void 0)];
while(%MapIteratorNext(I,J)){
%_Call(G,H,J[1],J[0],this);
}
}
function MapSpecies(){
return this;
}
%SetCode(c,MapConstructor);
%FunctionSetLength(c,0);
%FunctionSetPrototype(c,new d());
%AddNamedProperty(c.prototype,"constructor",c,2);
%AddNamedProperty(
c.prototype,m,"Map",2|1);
%FunctionSetLength(MapForEach,1);
b.InstallGetter(c,l,MapSpecies);
b.InstallGetter(c.prototype,"size",MapGetSize);
b.InstallFunctions(c.prototype,2,[
"get",MapGet,
"set",MapSet,
"has",MapHas,
"delete",MapDelete,
"clear",MapClearJS,
"forEach",MapForEach
]);
%InstallToContext([
"map_get",MapGet,
"map_set",MapSet,
"map_has",MapHas,
"map_delete",MapDelete,
"set_add",SetAdd,
"set_has",SetHas,
"set_delete",SetDelete,
]);
b.Export(function(M){
M.GetExistingHash=GetExistingHash;
M.GetHash=GetHash;
});
})

<weak-collectionÕ-
(function(a,b){
"use strict";
%CheckIsBootstrapping();
var c;
var d;
var e=a.Object;
var f=a.WeakMap;
var g=a.WeakSet;
var h;
var i=b.ImportNow("to_string_tag_symbol");
b.Import(function(j){
c=j.GetExistingHash;
d=j.GetHash;
h=j.MakeTypeError;
});
function WeakMapConstructor(k){
if((new.target===(void 0))){
throw h(27,"WeakMap");
}
%WeakCollectionInitialize(this);
if(!(k==null)){
var l=this.set;
if(!(typeof(l)==='function')){
throw h(85,l,'set',this);
}
for(var m of k){
if(!(%_IsJSReceiver(m))){
throw h(50,m);
}
%_Call(l,this,m[0],m[1]);
}
}
}
function WeakMapGet(n){
if(!(%_ClassOf(this)==='WeakMap')){
throw h(43,
'WeakMap.prototype.get',this);
}
if(!(%_IsJSReceiver(n)))return(void 0);
var o=c(n);
if((o===(void 0)))return(void 0);
return %WeakCollectionGet(this,n,o);
}
function WeakMapSet(n,p){
if(!(%_ClassOf(this)==='WeakMap')){
throw h(43,
'WeakMap.prototype.set',this);
}
if(!(%_IsJSReceiver(n)))throw h(163);
return %WeakCollectionSet(this,n,p,d(n));
}
function WeakMapHas(n){
if(!(%_ClassOf(this)==='WeakMap')){
throw h(43,
'WeakMap.prototype.has',this);
}
if(!(%_IsJSReceiver(n)))return false;
var o=c(n);
if((o===(void 0)))return false;
return %WeakCollectionHas(this,n,o);
}
function WeakMapDelete(n){
if(!(%_ClassOf(this)==='WeakMap')){
throw h(43,
'WeakMap.prototype.delete',this);
}
if(!(%_IsJSReceiver(n)))return false;
var o=c(n);
if((o===(void 0)))return false;
return %WeakCollectionDelete(this,n,o);
}
%SetCode(f,WeakMapConstructor);
%FunctionSetLength(f,0);
%FunctionSetPrototype(f,new e());
%AddNamedProperty(f.prototype,"constructor",f,
2);
%AddNamedProperty(f.prototype,i,"WeakMap",
2|1);
b.InstallFunctions(f.prototype,2,[
"get",WeakMapGet,
"set",WeakMapSet,
"has",WeakMapHas,
"delete",WeakMapDelete
]);
function WeakSetConstructor(k){
if((new.target===(void 0))){
throw h(27,"WeakSet");
}
%WeakCollectionInitialize(this);
if(!(k==null)){
var l=this.add;
if(!(typeof(l)==='function')){
throw h(85,l,'add',this);
}
for(var p of k){
%_Call(l,this,p);
}
}
}
function WeakSetAdd(p){
if(!(%_ClassOf(this)==='WeakSet')){
throw h(43,
'WeakSet.prototype.add',this);
}
if(!(%_IsJSReceiver(p)))throw h(164);
return %WeakCollectionSet(this,p,true,d(p));
}
function WeakSetHas(p){
if(!(%_ClassOf(this)==='WeakSet')){
throw h(43,
'WeakSet.prototype.has',this);
}
if(!(%_IsJSReceiver(p)))return false;
var o=c(p);
if((o===(void 0)))return false;
return %WeakCollectionHas(this,p,o);
}
function WeakSetDelete(p){
if(!(%_ClassOf(this)==='WeakSet')){
throw h(43,
'WeakSet.prototype.delete',this);
}
if(!(%_IsJSReceiver(p)))return false;
var o=c(p);
if((o===(void 0)))return false;
return %WeakCollectionDelete(this,p,o);
}
%SetCode(g,WeakSetConstructor);
%FunctionSetLength(g,0);
%FunctionSetPrototype(g,new e());
%AddNamedProperty(g.prototype,"constructor",g,
2);
%AddNamedProperty(g.prototype,i,"WeakSet",
2|1);
b.InstallFunctions(g.prototype,2,[
"add",WeakSetAdd,
"has",WeakSetHas,
"delete",WeakSetDelete
]);
})

Lcollection-iterator(
(function(a,b){
"use strict";
%CheckIsBootstrapping();
var c=a.Map;
var d=a.Set;
var e=b.ImportNow("iterator_symbol");
var f;
var g=b.ImportNow("MapIterator");
var h=b.ImportNow("to_string_tag_symbol");
var i=b.ImportNow("SetIterator");
b.Import(function(j){
f=j.MakeTypeError;
});
function SetIteratorConstructor(k,l){
%SetIteratorInitialize(this,k,l);
}
function SetIteratorNextJS(){
if(!(%_ClassOf(this)==='Set Iterator')){
throw f(43,
'Set Iterator.prototype.next',this);
}
var m=[(void 0),(void 0)];
var n=%_CreateIterResultObject(m,false);
switch(%SetIteratorNext(this,m)){
case 0:
n.value=(void 0);
n.done=true;
break;
case 2:
n.value=m[0];
break;
case 3:
m[1]=m[0];
break;
}
return n;
}
function SetEntries(){
if(!(%_ClassOf(this)==='Set')){
throw f(43,
'Set.prototype.entries',this);
}
return new i(this,3);
}
function SetValues(){
if(!(%_ClassOf(this)==='Set')){
throw f(43,
'Set.prototype.values',this);
}
return new i(this,2);
}
%SetCode(i,SetIteratorConstructor);
%FunctionSetInstanceClassName(i,'Set Iterator');
b.InstallFunctions(i.prototype,2,[
'next',SetIteratorNextJS
]);
%AddNamedProperty(i.prototype,h,
"Set Iterator",1|2);
b.InstallFunctions(d.prototype,2,[
'entries',SetEntries,
'keys',SetValues,
'values',SetValues
]);
%AddNamedProperty(d.prototype,e,SetValues,2);
function MapIteratorConstructor(o,l){
%MapIteratorInitialize(this,o,l);
}
function MapIteratorNextJS(){
if(!(%_ClassOf(this)==='Map Iterator')){
throw f(43,
'Map Iterator.prototype.next',this);
}
var m=[(void 0),(void 0)];
var n=%_CreateIterResultObject(m,false);
switch(%MapIteratorNext(this,m)){
case 0:
n.value=(void 0);
n.done=true;
break;
case 1:
n.value=m[0];
break;
case 2:
n.value=m[1];
break;
}
return n;
}
function MapEntries(){
if(!(%_ClassOf(this)==='Map')){
throw f(43,
'Map.prototype.entries',this);
}
return new g(this,3);
}
function MapKeys(){
if(!(%_ClassOf(this)==='Map')){
throw f(43,
'Map.prototype.keys',this);
}
return new g(this,1);
}
function MapValues(){
if(!(%_ClassOf(this)==='Map')){
throw f(43,
'Map.prototype.values',this);
}
return new g(this,2);
}
%SetCode(g,MapIteratorConstructor);
%FunctionSetInstanceClassName(g,'Map Iterator');
b.InstallFunctions(g.prototype,2,[
'next',MapIteratorNextJS
]);
%AddNamedProperty(g.prototype,h,
"Map Iterator",1|2);
b.InstallFunctions(c.prototype,2,[
'entries',MapEntries,
'keys',MapKeys,
'values',MapValues
]);
%AddNamedProperty(c.prototype,e,MapEntries,2);
b.Export(function(p){
p.MapEntries=MapEntries;
p.MapIteratorNext=MapIteratorNextJS;
p.SetIteratorNext=SetIteratorNextJS;
p.SetValues=SetValues;
});
})

promiseõŒ
(function(a,b,c){
"use strict";
%CheckIsBootstrapping();
var d=b.InternalArray;
var e;
var f=
b.ImportNow("promise_combined_deferred_symbol");
var g=
b.ImportNow("promise_has_handler_symbol");
var h=
b.ImportNow("promise_reject_reactions_symbol");
var i=
b.ImportNow("promise_fulfill_reactions_symbol");
var j=
b.ImportNow("promise_deferred_reactions_symbol");
var k=b.ImportNow("promise_raw_symbol");
var l=b.ImportNow("promise_state_symbol");
var m=b.ImportNow("promise_result_symbol");
var n;
var o=b.ImportNow("species_symbol");
var p=b.ImportNow("to_string_tag_symbol");
b.Import(function(q){
e=q.MakeTypeError;
n=q.SpeciesConstructor;
});
const kPending=0;
const kFulfilled=+1;
const kRejected=-1;
var r=0;
function CreateResolvingFunctions(s){
var t=false;
var u=value=>{
if(t===true)return;
t=true;
ResolvePromise(s,value);
};
var v=reason=>{
if(t===true)return;
t=true;
RejectPromise(s,reason);
};
return{
__proto__:null,
resolve:u,
reject:v
};
}
var w=function Promise(x){
if(x===k){
return %_NewObject(w,new.target);
}
if((new.target===(void 0)))throw e(64,this);
if(!(typeof(x)==='function')){
throw e(126,x);
}
var s=PromiseInit(%_NewObject(w,new.target));
var y=CreateResolvingFunctions(s);
var z=(%_DebugIsActive()!=0);
try{
if(z)%DebugPushPromise(s,Promise);
x(y.resolve,y.reject);
}catch(e){
%_Call(y.reject,(void 0),e);
}finally{
if(z)%DebugPopPromise();
}
return s;
}
function PromiseSet(s,A,B){
(s[l]=A);
(s[m]=B);
(s[i]=(void 0));
(s[h]=(void 0));
(s[j]=(void 0));
return s;
}
function PromiseCreateAndSet(A,B){
var s=new w(k);
if((%_DebugIsActive()!=0))PromiseSet(s,kPending,(void 0));
return PromiseSet(s,A,B);
}
function PromiseInit(s){
return PromiseSet(s,kPending,(void 0));
}
function FulfillPromise(s,A,B,C){
if((s[l])===kPending){
var D=(s[C]);
if(!(D===(void 0))){
var D=(s[C]);
var E=(s[j]);
PromiseEnqueue(B,D,E,A);
}
PromiseSet(s,A,B);
}
}
function PromiseHandle(B,F,G){
var z=(%_DebugIsActive()!=0);
try{
if(z)%DebugPushPromise(G.promise,PromiseHandle);
var H=F(B);
G.resolve(H);
}catch(exception){
try{G.reject(exception);}catch(e){}
}finally{
if(z)%DebugPopPromise();
}
}
function PromiseEnqueue(B,D,E,A){
var I,J,K=(%_DebugIsActive()!=0);
%EnqueueMicrotask(function(){
if(K){
%DebugAsyncTaskEvent({type:"willHandle",id:I,name:J});
}
if((%_IsArray(D))){
for(var L=0;L<D.length;L+=2){
PromiseHandle(B,D[L],D[L+1]);
}
}else{
PromiseHandle(B,D,E);
}
if(K){
%DebugAsyncTaskEvent({type:"didHandle",id:I,name:J});
}
});
if(K){
I=++r;
J=A===kFulfilled?"Promise.resolve":"Promise.reject";
%DebugAsyncTaskEvent({type:"enqueue",id:I,name:J});
}
}
function PromiseAttachCallbacks(s,G,M,N){
var O=
(s[i]);
if((O===(void 0))){
(s[i]=M);
(s[h]=N);
(s[j]=G);
}else if(!(%_IsArray(O))){
var P=new d();
var Q=new d();
var R=(s[j]);
P.push(
O,R,M,G);
Q.push((s[h]),
R,
N,
G);
(s[i]=P);
(s[h]=Q);
}else{
O.push(M,G);
(s[h]).push(N,G);
}
}
function PromiseIdResolveHandler(S){return S}
function PromiseIdRejectHandler(T){throw T}
function PromiseNopResolver(){}
function IsPromise(S){
return(%_IsJSReceiver(S))&&(!(S[l]===(void 0)));
}
function PromiseCreate(){
return new w(PromiseNopResolver)
}
function ResolvePromise(s,U){
if(U===s){
return RejectPromise(s,e(81,U));
}
if((%_IsJSReceiver(U))){
try{
var V=U.then;
}catch(e){
return RejectPromise(s,e);
}
if(IsPromise(U)&&V===PromiseThen){
var W=(U[l]);
if(W===kFulfilled){
var X=(U[m]);
FulfillPromise(s,kFulfilled,X,
i);
(s[g]=true);
return;
}else if(W===kRejected){
var X=(U[m]);
if(!(!(U[g]===(void 0)))){
%PromiseRevokeReject(U);
}
RejectPromise(s,X);
(U[g]=true);
return;
}
}
if((typeof(V)==='function')){
var I;
var J="PromiseResolveThenableJob";
var K=(%_DebugIsActive()!=0);
%EnqueueMicrotask(function(){
if(K){
%DebugAsyncTaskEvent({type:"willHandle",id:I,name:J});
}
var y=CreateResolvingFunctions(s);
try{
%_Call(V,U,y.resolve,y.reject);
}catch(e){
%_Call(y.reject,(void 0),e);
}
if(K){
%DebugAsyncTaskEvent({type:"didHandle",id:I,name:J});
}
});
if(K){
I=++r;
%DebugAsyncTaskEvent({type:"enqueue",id:I,name:J});
}
return;
}
}
FulfillPromise(s,kFulfilled,U,i);
}
function RejectPromise(s,Y){
if((s[l])===kPending){
var z=(%_DebugIsActive()!=0);
if(z||
!(!(s[g]===(void 0)))){
%PromiseRejectEvent(s,Y,z);
}
}
FulfillPromise(s,kRejected,Y,h)
}
function NewPromiseCapability(Z){
if(Z===w){
var s=PromiseInit(new w(k));
var y=CreateResolvingFunctions(s);
return{
promise:s,
resolve:y.resolve,
reject:y.reject
};
}
var H={promise:(void 0),resolve:(void 0),reject:(void 0)};
H.promise=new Z((u,v)=>{
if(!(H.resolve===(void 0))||!(H.reject===(void 0)))
throw e(82);
H.resolve=u;
H.reject=v;
});
if(!(typeof(H.resolve)==='function')||!(typeof(H.reject)==='function'))
throw e(83);
return H;
}
function PromiseDefer(){
%IncrementUseCounter(19);
return NewPromiseCapability(this);
}
function PromiseAccept(S){
%IncrementUseCounter(18);
return %_Call(PromiseResolve,this,S);
}
function PromiseReject(T){
if(!(%_IsJSReceiver(this))){
throw e(16,PromiseResolve);
}
if(this===w){
var s=PromiseCreateAndSet(kRejected,T);
%PromiseRejectEvent(s,T,false);
return s;
}else{
var aa=NewPromiseCapability(this);
%_Call(aa.reject,(void 0),T);
return aa.promise;
}
}
function PromiseCreateRejected(T){
return %_Call(PromiseReject,w,T);
}
function PromiseCreateResolved(S){
return %_Call(PromiseResolve,w,S);
}
function PromiseThen(M,N){
var A=(this[l]);
if((A===(void 0))){
throw e(64,this);
}
var ab=n(this,w);
M=(typeof(M)==='function')?M:PromiseIdResolveHandler;
N=(typeof(N)==='function')?N:PromiseIdRejectHandler;
var G=NewPromiseCapability(ab);
switch(A){
case kPending:
PromiseAttachCallbacks(this,G,M,N);
break;
case kFulfilled:
PromiseEnqueue((this[m]),
M,G,kFulfilled);
break;
case kRejected:
if(!(!(this[g]===(void 0)))){
%PromiseRevokeReject(this);
}
PromiseEnqueue((this[m]),
N,G,kRejected);
break;
}
(this[g]=true);
return G.promise;
}
function PromiseChain(M,N){
%IncrementUseCounter(17);
return %_Call(PromiseThen,this,M,N);
}
function PromiseCatch(N){
return this.then((void 0),N);
}
function PromiseResolve(S){
if(!(%_IsJSReceiver(this))){
throw e(16,PromiseResolve);
}
if(IsPromise(S)&&S.constructor===this)return S;
var aa=NewPromiseCapability(this);
var ac=%_Call(aa.resolve,(void 0),S);
return aa.promise;
}
function PromiseAll(ad){
if(!(%_IsJSReceiver(this))){
throw e(16,"Promise.all");
}
var G=NewPromiseCapability(this);
var ae=new d();
var af;
function CreateResolveElementFunction(ag,ah,aa){
var ai=false;
return(S)=>{
if(ai===true)return;
ai=true;
ah[ag]=S;
if(--af===0){
var aj=[];
%MoveArrayContents(ah,aj);
%_Call(aa.resolve,(void 0),aj);
}
};
}
try{
var L=0;
af=1;
for(var B of ad){
var ak=this.resolve(B);
++af;
ak.then(
CreateResolveElementFunction(L,ae,G),
G.reject);
(G.reject[f]=G);
++L;
}
if(--af===0){
var aj=[];
%MoveArrayContents(ae,aj);
%_Call(G.resolve,(void 0),aj);
}
}catch(e){
%_Call(G.reject,(void 0),e);
}
return G.promise;
}
function PromiseRace(ad){
if(!(%_IsJSReceiver(this))){
throw e(16,PromiseRace);
}
var G=NewPromiseCapability(this);
try{
for(var B of ad){
this.resolve(B).then(G.resolve,G.reject);
(G.reject[f]=G);
}
}catch(e){
G.reject(e)
}
return G.promise;
}
function PromiseHasUserDefinedRejectHandlerCheck(F,G){
if(F!==PromiseIdRejectHandler){
var al=(F[f]);
if((al===(void 0)))return true;
if(PromiseHasUserDefinedRejectHandlerRecursive(al.promise)){
return true;
}
}else if(PromiseHasUserDefinedRejectHandlerRecursive(G.promise)){
return true;
}
return false;
}
function PromiseHasUserDefinedRejectHandlerRecursive(s){
var am=(s[h]);
var E=(s[j]);
if((am===(void 0)))return false;
if(!(%_IsArray(am))){
return PromiseHasUserDefinedRejectHandlerCheck(am,E);
}else{
for(var L=0;L<am.length;L+=2){
if(PromiseHasUserDefinedRejectHandlerCheck(am[L],am[L+1])){
return true;
}
}
}
return false;
}
function PromiseHasUserDefinedRejectHandler(){
return PromiseHasUserDefinedRejectHandlerRecursive(this);
};
function PromiseSpecies(){
return this;
}
%AddNamedProperty(a,'Promise',w,2);
%AddNamedProperty(w.prototype,p,"Promise",
2|1);
b.InstallFunctions(w,2,[
"reject",PromiseReject,
"all",PromiseAll,
"race",PromiseRace,
"resolve",PromiseResolve
]);
b.InstallGetter(w,o,PromiseSpecies);
b.InstallFunctions(w.prototype,2,[
"then",PromiseThen,
"catch",PromiseCatch
]);
%InstallToContext([
"promise_catch",PromiseCatch,
"promise_chain",PromiseChain,
"promise_create",PromiseCreate,
"promise_has_user_defined_reject_handler",PromiseHasUserDefinedRejectHandler,
"promise_reject",RejectPromise,
"promise_resolve",ResolvePromise,
"promise_then",PromiseThen,
"promise_create_rejected",PromiseCreateRejected,
"promise_create_resolved",PromiseCreateResolved
]);
b.InstallFunctions(c,0,[
"createPromise",PromiseCreate,
"resolvePromise",ResolvePromise,
"rejectPromise",RejectPromise
]);
[PromiseChain,PromiseDefer,PromiseAccept].forEach(
fn=>%FunctionRemovePrototype(fn));
b.Export(function(an){
an.PromiseChain=PromiseChain;
an.PromiseDefer=PromiseDefer;
an.PromiseAccept=PromiseAccept;
an.PromiseCreateRejected=PromiseCreateRejected;
an.PromiseCreateResolved=PromiseCreateResolved;
an.PromiseThen=PromiseThen;
});
})

 messagesÆ
(function(a,b){
%CheckIsBootstrapping();
var c;
var d;
var e;
var f;
var g=
b.ImportNow("call_site_receiver_symbol");
var h=
b.ImportNow("call_site_function_symbol");
var i=
b.ImportNow("call_site_position_symbol");
var j=
b.ImportNow("call_site_strict_symbol");
var k=
b.ImportNow("call_site_wasm_obj_symbol");
var l=
b.ImportNow("call_site_wasm_func_index_symbol");
var m;
var n=
b.ImportNow("formatted_stack_trace_symbol");
var o=a.Object;
var p;
var q;
var r;
var s=b.InternalArray;
var t=b.ImportNow("internal_error_symbol");
var u;
var v=b.ImportNow("object_to_string");
var w=b.ImportNow("Script");
var x=b.ImportNow("stack_trace_symbol");
var y;
var z;
var A=b.ImportNow("to_string_tag_symbol");
var B;
var C;
var D;
b.Import(function(E){
c=E.ArrayJoin;
d=E.Bool16x8ToString;
e=E.Bool32x4ToString;
f=E.Bool8x16ToString;
m=E.Float32x4ToString;
p=E.Int16x8ToString;
q=E.Int32x4ToString;
r=E.Int8x16ToString;
u=E.ObjectHasOwnProperty;
y=E.StringIndexOf;
z=E.SymbolToString;
B=E.Uint16x8ToString;
C=E.Uint32x4ToString;
D=E.Uint8x16ToString;
});
var F;
var G;
var H;
var I;
var J;
var K;
var L;
function NoSideEffectsObjectToString(){
if((this===(void 0)))return"[object Undefined]";
if((this===null))return"[object Null]";
var M=(%_ToObject(this));
var N=%_ClassOf(M);
var O=%GetDataProperty(M,A);
if(!(typeof(O)==='string')){
O=N;
}
return`[object ${O}]`;
}
function IsErrorObject(P){
return(%_Call(u,P,x));
}
function NoSideEffectsErrorToString(){
var Q=%GetDataProperty(this,"name");
var R=%GetDataProperty(this,"message");
Q=(Q===(void 0))?"Error":NoSideEffectsToString(Q);
R=(R===(void 0))?"":NoSideEffectsToString(R);
if(Q=="")return R;
if(R=="")return Q;
return`${Q}: ${R}`;
}
function NoSideEffectsToString(P){
if((typeof(P)==='string'))return P;
if((typeof(P)==='number'))return %_NumberToString(P);
if((typeof(P)==='boolean'))return P?'true':'false';
if((P===(void 0)))return'undefined';
if((P===null))return'null';
if((%IsFunction(P))){
var S=%FunctionToString(P);
if(S.length>128){
S=%_SubString(S,0,111)+"...<omitted>..."+
%_SubString(S,S.length-2,S.length);
}
return S;
}
if((typeof(P)==='symbol'))return %_Call(z,P);
if((%IsSimdValue(P))){
switch(typeof(P)){
case'float32x4':return %_Call(m,P);
case'int32x4':return %_Call(q,P);
case'int16x8':return %_Call(p,P);
case'int8x16':return %_Call(r,P);
case'uint32x4':return %_Call(C,P);
case'uint16x8':return %_Call(B,P);
case'uint8x16':return %_Call(D,P);
case'bool32x4':return %_Call(e,P);
case'bool16x8':return %_Call(d,P);
case'bool8x16':return %_Call(f,P);
}
}
if((%_IsJSReceiver(P))){
if(IsErrorObject(P)||
%GetDataProperty(P,"toString")===ErrorToString){
return %_Call(NoSideEffectsErrorToString,P);
}
if(%GetDataProperty(P,"toString")===v){
var T=%GetDataProperty(P,"constructor");
if((%IsFunction(T))){
var U=%FunctionGetName(T);
if(U!="")return`#<${U}>`;
}
}
}
return %_Call(NoSideEffectsObjectToString,P);
}
function MakeGenericError(T,V,W,X,Y){
var Z=new T(FormatMessage(V,W,X,Y));
Z[t]=true;
return Z;
}
%FunctionSetInstanceClassName(w,'Script');
%AddNamedProperty(w.prototype,'constructor',w,
2|4|1);
%SetCode(w,function(aa){
throw MakeError(6);
});
function FormatMessage(V,W,X,Y){
var W=NoSideEffectsToString(W);
var X=NoSideEffectsToString(X);
var Y=NoSideEffectsToString(Y);
try{
return %FormatMessageString(V,W,X,Y);
}catch(e){
return"<error>";
}
}
function GetLineNumber(R){
var ab=%MessageGetStartPosition(R);
if(ab==-1)return 0;
var ac=%MessageGetScript(R);
var ad=ac.locationFromPosition(ab,true);
if(ad==null)return 0;
return ad.line+1;
}
function GetColumnNumber(R){
var ac=%MessageGetScript(R);
var ab=%MessageGetStartPosition(R);
var ad=ac.locationFromPosition(ab,true);
if(ad==null)return-1;
return ad.column;
}
function GetSourceLine(R){
var ac=%MessageGetScript(R);
var ab=%MessageGetStartPosition(R);
var ad=ac.locationFromPosition(ab,true);
if(ad==null)return"";
return ad.sourceText;
}
function ScriptLocationFromPosition(position,
include_resource_offset){
return %ScriptPositionInfo(this,position,!!include_resource_offset);
}
function ScriptNameOrSourceURL(){
if(this.source_url)return this.source_url;
return this.name;
}
b.SetUpLockedPrototype(w,[
"source",
"name",
"source_url",
"source_mapping_url",
"line_offset",
"column_offset"
],[
"locationFromPosition",ScriptLocationFromPosition,
"nameOrSourceURL",ScriptNameOrSourceURL,
]
);
function GetStackTraceLine(ae,af,ag,ah){
return new CallSite(ae,af,ag,false).toString();
}
function CallSite(ai,af,ag,aj){
if(!(%IsFunction(af))&&!%IsWasmObject(ai)){
throw MakeTypeError(18,typeof ai,typeof af);
}
if((new.target===(void 0))){
return new CallSite(ai,af,ag,aj);
}
if((%IsFunction(af))){
(this[g]=ai);
(this[h]=af);
}else{
(this[k]=ai);
(this[l]=((af)>>>0));
}
(this[i]=((ag)|0));
(this[j]=(!!(aj)));
}
function CheckCallSite(P,Q){
if(!(%_IsJSReceiver(P))||!(%_Call(u,P,i))){
throw MakeTypeError(19,Q);
}
}
function CallSiteGetThis(){
CheckCallSite(this,"getThis");
return(this[j])
?(void 0):(this[g]);
}
function CallSiteGetFunction(){
CheckCallSite(this,"getFunction");
return(this[j])
?(void 0):(this[h]);
}
function CallSiteGetPosition(){
CheckCallSite(this,"getPosition");
return(this[i]);
}
function CallSiteGetTypeName(){
CheckCallSite(this,"getTypeName");
return GetTypeName((this[g]),false);
}
function CallSiteIsToplevel(){
CheckCallSite(this,"isTopLevel");
return %CallSiteIsToplevelRT(this);
}
function CallSiteIsEval(){
CheckCallSite(this,"isEval");
return %CallSiteIsEvalRT(this);
}
function CallSiteGetEvalOrigin(){
CheckCallSite(this,"getEvalOrigin");
var ac=%FunctionGetScript((this[h]));
return FormatEvalOrigin(ac);
}
function CallSiteGetScriptNameOrSourceURL(){
CheckCallSite(this,"getScriptNameOrSourceURL");
return %CallSiteGetScriptNameOrSourceUrlRT(this);
}
function CallSiteGetFunctionName(){
CheckCallSite(this,"getFunctionName");
return %CallSiteGetFunctionNameRT(this);
}
function CallSiteGetMethodName(){
CheckCallSite(this,"getMethodName");
return %CallSiteGetMethodNameRT(this);
}
function CallSiteGetFileName(){
CheckCallSite(this,"getFileName");
return %CallSiteGetFileNameRT(this);
}
function CallSiteGetLineNumber(){
if((%_Call(u,this,k))){
return(this[l]);
}
CheckCallSite(this,"getLineNumber");
return %CallSiteGetLineNumberRT(this);
}
function CallSiteGetColumnNumber(){
CheckCallSite(this,"getColumnNumber");
return %CallSiteGetColumnNumberRT(this);
}
function CallSiteIsNative(){
CheckCallSite(this,"isNative");
return %CallSiteIsNativeRT(this);
}
function CallSiteIsConstructor(){
CheckCallSite(this,"isConstructor");
return %CallSiteIsConstructorRT(this);
}
function CallSiteToString(){
if((%_Call(u,this,k))){
var ak=this.getFunctionName();
var al=(this[l]);
var ag=this.getPosition();
if((ak===null))ak="<WASM UNNAMED>";
return ak+" (<WASM>["+al+"]+"+ag+")";
}
var am;
var an="";
if(this.isNative()){
an="native";
}else{
am=this.getScriptNameOrSourceURL();
if(!am&&this.isEval()){
an=this.getEvalOrigin();
an+=", ";
}
if(am){
an+=am;
}else{
an+="<anonymous>";
}
var ao=this.getLineNumber();
if(ao!=null){
an+=":"+ao;
var ap=this.getColumnNumber();
if(ap){
an+=":"+ap;
}
}
}
var aq="";
var ar=this.getFunctionName();
var as=true;
var at=this.isConstructor();
var au=!(this.isToplevel()||at);
if(au){
var av=GetTypeName((this[g]),true);
var aw=this.getMethodName();
if(ar){
if(av&&%_Call(y,ar,av)!=0){
aq+=av+".";
}
aq+=ar;
if(aw&&
(%_Call(y,ar,"."+aw)!=
ar.length-aw.length-1)){
aq+=" [as "+aw+"]";
}
}else{
aq+=av+"."+(aw||"<anonymous>");
}
}else if(at){
aq+="new "+(ar||"<anonymous>");
}else if(ar){
aq+=ar;
}else{
aq+=an;
as=false;
}
if(as){
aq+=" ("+an+")";
}
return aq;
}
b.SetUpLockedPrototype(CallSite,["receiver","fun","pos"],[
"getThis",CallSiteGetThis,
"getTypeName",CallSiteGetTypeName,
"isToplevel",CallSiteIsToplevel,
"isEval",CallSiteIsEval,
"getEvalOrigin",CallSiteGetEvalOrigin,
"getScriptNameOrSourceURL",CallSiteGetScriptNameOrSourceURL,
"getFunction",CallSiteGetFunction,
"getFunctionName",CallSiteGetFunctionName,
"getMethodName",CallSiteGetMethodName,
"getFileName",CallSiteGetFileName,
"getLineNumber",CallSiteGetLineNumber,
"getColumnNumber",CallSiteGetColumnNumber,
"isNative",CallSiteIsNative,
"getPosition",CallSiteGetPosition,
"isConstructor",CallSiteIsConstructor,
"toString",CallSiteToString
]);
function FormatEvalOrigin(ac){
var ax=ac.nameOrSourceURL();
if(ax){
return ax;
}
var ay="eval at ";
if(ac.eval_from_function_name){
ay+=ac.eval_from_function_name;
}else{
ay+="<anonymous>";
}
var az=ac.eval_from_script;
if(az){
if(az.compilation_type==1){
ay+=" ("+FormatEvalOrigin(az)+")";
}else{
if(az.name){
ay+=" ("+az.name;
var ad=az.locationFromPosition(
ac.eval_from_script_position,true);
if(ad){
ay+=":"+(ad.line+1);
ay+=":"+(ad.column+1);
}
ay+=")";
}else{
ay+=" (unknown source)";
}
}
}
return ay;
}
function FormatErrorString(Z){
try{
return %_Call(ErrorToString,Z);
}catch(e){
try{
return"<error: "+e+">";
}catch(ee){
return"<error>";
}
}
}
function GetStackFrames(aA){
var aB=new s();
%MoveArrayContents(aA,aB);
var aC=new s();
var aD=aB[0];
for(var aE=1;aE<aB.length;aE+=4){
var ae=aB[aE];
var af=aB[aE+1];
var aF=aB[aE+2];
var aG=aB[aE+3];
var ag=(typeof(af)==='number')&&aG<0?(-1-aG):
%FunctionGetPositionForOffset(aF,aG);
aD--;
aC.push(new CallSite(ae,af,ag,(aD<0)));
}
return aC;
}
var aH=false;
function FormatStackTrace(P,aA){
var aC=GetStackFrames(aA);
if((%IsFunction(F.prepareStackTrace))&&
!aH){
var aI=[];
%MoveArrayContents(aC,aI);
aH=true;
var aJ=(void 0);
try{
aJ=F.prepareStackTrace(P,aI);
}catch(e){
throw e;
}finally{
aH=false;
}
return aJ;
}
var aK=new s();
aK.push(FormatErrorString(P));
for(var aE=0;aE<aC.length;aE++){
var aL=aC[aE];
var aq;
try{
aq=aL.toString();
}catch(e){
try{
aq="<error: "+e+">";
}catch(ee){
aq="<error>";
}
}
aK.push("    at "+aq);
}
return %_Call(c,aK,"\n");
}
function GetTypeName(ai,aM){
if((ai==null))return null;
if((%_IsJSProxy(ai)))return"Proxy";
var T=%GetDataProperty((%_ToObject(ai)),"constructor");
if(!(%IsFunction(T))){
return aM?null:%_Call(NoSideEffectsToString,ai);
}
return %FunctionGetName(T);
}
var aN=function(){
var aO=(void 0);
var aP=this;
while(aP){
var aO=
(aP[n]);
if((aO===(void 0))){
var aJ=(aP[x]);
if((aJ===(void 0))){
aP=%object_get_prototype_of(aP);
continue;
}
aO=FormatStackTrace(aP,aJ);
(aP[x]=(void 0));
(aP[n]=aO);
}
return aO;
}
return(void 0);
};
var aQ=function(aR){
if(IsErrorObject(this)){
(this[x]=(void 0));
(this[n]=aR);
}
};
var aS=function(){};
function SetUpError(aT){
%FunctionSetInstanceClassName(aT,'Error');
var Q=aT.name;
var aU=new o();
if(Q!=='Error'){
%InternalSetPrototype(aT,F);
%InternalSetPrototype(aU,F.prototype);
}
%FunctionSetPrototype(aT,aU);
%AddNamedProperty(aT.prototype,'name',Q,2);
%AddNamedProperty(aT.prototype,'message','',2);
%AddNamedProperty(
aT.prototype,'constructor',aT,2);
%SetCode(aT,function(aV){
if((new.target===(void 0)))return new aT(aV);
try{aS(this,aT);}catch(e){}
if(!(aV===(void 0))){
%AddNamedProperty(this,'message',(%_ToString(aV)),2);
}
});
%SetNativeFlag(aT);
return aT;
};
F=SetUpError(a.Error);
L=SetUpError(a.EvalError);
H=SetUpError(a.RangeError);
K=SetUpError(a.ReferenceError);
J=SetUpError(a.SyntaxError);
G=SetUpError(a.TypeError);
I=SetUpError(a.URIError);
b.InstallFunctions(F.prototype,2,
['toString',ErrorToString]);
function ErrorToString(){
if(!(%_IsJSReceiver(this))){
throw MakeTypeError(16,"Error.prototype.toString");
}
var Q=this.name;
Q=(Q===(void 0))?"Error":(%_ToString(Q));
var R=this.message;
R=(R===(void 0))?"":(%_ToString(R));
if(Q=="")return R;
if(R=="")return Q;
return`${Q}: ${R}`
}
function MakeError(V,W,X,Y){
return MakeGenericError(F,V,W,X,Y);
}
function MakeRangeError(V,W,X,Y){
return MakeGenericError(H,V,W,X,Y);
}
function MakeSyntaxError(V,W,X,Y){
return MakeGenericError(J,V,W,X,Y);
}
function MakeTypeError(V,W,X,Y){
return MakeGenericError(G,V,W,X,Y);
}
function MakeURIError(){
return MakeGenericError(I,279);
}
var aW=MakeRangeError(177);
b.InstallGetterSetter(aW,'stack',
aN,aQ)
aS=function captureStackTrace(P,aX){
%object_define_property(P,'stack',{get:aN,
set:aQ,
configurable:true});
%CollectStackTrace(P,aX?aX:aS);
};
F.captureStackTrace=aS;
%InstallToContext([
"get_stack_trace_line_fun",GetStackTraceLine,
"make_error_function",MakeGenericError,
"make_range_error",MakeRangeError,
"make_type_error",MakeTypeError,
"message_get_column_number",GetColumnNumber,
"message_get_line_number",GetLineNumber,
"message_get_source_line",GetSourceLine,
"no_side_effects_to_string_fun",NoSideEffectsToString,
"stack_overflow_boilerplate",aW,
]);
b.Export(function(aY){
aY.ErrorToString=ErrorToString;
aY.MakeError=MakeError;
aY.MakeRangeError=MakeRangeError;
aY.MakeSyntaxError=MakeSyntaxError;
aY.MakeTypeError=MakeTypeError;
aY.MakeURIError=MakeURIError;
});
});

8array-iterator1$
(function(a,b){
"use strict";
%CheckIsBootstrapping();
var c=
b.ImportNow("array_iteration_kind_symbol");
var d=
b.ImportNow("array_iterator_next_symbol");
var e=
b.ImportNow("array_iterator_object_symbol");
var f=a.Array;
var g=b.ImportNow("IteratorPrototype");
var h=b.ImportNow("iterator_symbol");
var i;
var j=b.ImportNow("to_string_tag_symbol");
var k=%object_get_prototype_of(a.Uint8Array);
b.Import(function(l){
i=l.MakeTypeError;
})
function ArrayIterator(){}
function CreateArrayIterator(m,n){
var o=(%_ToObject(m));
var p=new ArrayIterator;
(p[e]=o);
(p[d]=0);
(p[c]=n);
return p;
}
function ArrayIteratorIterator(){
return this;
}
function ArrayIteratorNext(){
var p=this;
var q=(void 0);
var r=true;
if(!(%_IsJSReceiver(p))||
!(!(p[d]===(void 0)))){
throw i(43,
'Array Iterator.prototype.next',this);
}
var m=(p[e]);
if(!(m===(void 0))){
var s=(p[d]);
var t=(p[c]);
var u=((m.length)>>>0);
if(s>=u){
(p[e]=(void 0));
}else{
(p[d]=s+1);
if(t==2){
q=m[s];
}else if(t==3){
q=[s,m[s]];
}else{
q=s;
}
r=false;
}
}
return %_CreateIterResultObject(q,r);
}
function ArrayEntries(){
return CreateArrayIterator(this,3);
}
function ArrayValues(){
return CreateArrayIterator(this,2);
}
function ArrayKeys(){
return CreateArrayIterator(this,1);
}
function TypedArrayEntries(){
if(!(%_IsTypedArray(this)))throw i(71);
return %_Call(ArrayEntries,this);
}
function TypedArrayValues(){
if(!(%_IsTypedArray(this)))throw i(71);
return %_Call(ArrayValues,this);
}
function TypedArrayKeys(){
if(!(%_IsTypedArray(this)))throw i(71);
return %_Call(ArrayKeys,this);
}
%FunctionSetPrototype(ArrayIterator,{__proto__:g});
%FunctionSetInstanceClassName(ArrayIterator,'Array Iterator');
b.InstallFunctions(ArrayIterator.prototype,2,[
'next',ArrayIteratorNext
]);
b.SetFunctionName(ArrayIteratorIterator,h);
%AddNamedProperty(ArrayIterator.prototype,j,
"Array Iterator",1|2);
b.InstallFunctions(f.prototype,2,[
'entries',ArrayEntries,
'keys',ArrayKeys
]);
b.SetFunctionName(ArrayValues,'values');
%AddNamedProperty(f.prototype,h,ArrayValues,
2);
b.InstallFunctions(k.prototype,2,[
'entries',TypedArrayEntries,
'keys',TypedArrayKeys,
'values',TypedArrayValues
]);
%AddNamedProperty(k.prototype,
h,TypedArrayValues,2);
b.Export(function(v){
v.ArrayValues=ArrayValues;
});
%InstallToContext(["array_values_iterator",ArrayValues]);
})

<string-iterator•
(function(a,b){
"use strict";
%CheckIsBootstrapping();
var c=a.String;
var d=b.ImportNow("IteratorPrototype");
var e=b.ImportNow("iterator_symbol");
var f;
var g=
b.ImportNow("string_iterator_iterated_string_symbol");
var h=
b.ImportNow("string_iterator_next_index_symbol");
var i=b.ImportNow("to_string_tag_symbol");
b.Import(function(j){
f=j.MakeTypeError;
});
function StringIterator(){}
function CreateStringIterator(k){
if((%IS_VAR(k)===null)||(k===(void 0)))throw f(17,'String.prototype[Symbol.iterator]');
var l=(%_ToString(k));
var m=new StringIterator;
(m[g]=l);
(m[h]=0);
return m;
}
function StringIteratorNext(){
var m=this;
var n=(void 0);
var o=true;
if(!(%_IsJSReceiver(m))||
!(!(m[h]===(void 0)))){
throw f(43,
'String Iterator.prototype.next');
}
var l=(m[g]);
if(!(l===(void 0))){
var p=(m[h]);
var q=((l.length)>>>0);
if(p>=q){
(m[g]=(void 0));
}else{
var r=%_StringCharCodeAt(l,p);
n=%_StringCharFromCode(r);
o=false;
p++;
if(r>=0xD800&&r<=0xDBFF&&p<q){
var s=%_StringCharCodeAt(l,p);
if(s>=0xDC00&&s<=0xDFFF){
n+=%_StringCharFromCode(s);
p++;
}
}
(m[h]=p);
}
}
return %_CreateIterResultObject(n,o);
}
function StringPrototypeIterator(){
return CreateStringIterator(this);
}
%FunctionSetPrototype(StringIterator,{__proto__:d});
%FunctionSetInstanceClassName(StringIterator,'String Iterator');
b.InstallFunctions(StringIterator.prototype,2,[
'next',StringIteratorNext
]);
%AddNamedProperty(StringIterator.prototype,i,
"String Iterator",1|2);
b.SetFunctionName(StringPrototypeIterator,e);
%AddNamedProperty(c.prototype,e,
StringPrototypeIterator,2);
})

$templates
(function(a,b){
"use strict";
%CheckIsBootstrapping();
var c=a.Map;
var d=b.InternalArray;
var e=new c;
var f=c.prototype.get;
var g=c.prototype.set;
function SameCallSiteElements(h,i){
var j=h.length;
var i=i.raw;
if(j!==i.length)return false;
for(var k=0;k<j;++k){
if(h[k]!==i[k])return false;
}
return true;
}
function GetCachedCallSite(l,m){
var n=%_Call(f,e,m);
if((n===(void 0)))return;
var j=n.length;
for(var k=0;k<j;++k){
if(SameCallSiteElements(l,n[k]))return n[k];
}
}
function SetCachedCallSite(l,m){
var n=%_Call(f,e,m);
var o;
if((n===(void 0))){
o=new d(1);
o[0]=l;
%_Call(g,e,m,o);
}else{
n.push(l);
}
return l;
}
function GetTemplateCallSite(l,h,m){
var p=GetCachedCallSite(h,m);
if(!(p===(void 0)))return p;
%AddNamedProperty(l,"raw",%object_freeze(h),
1|2|4);
return SetCachedCallSite(%object_freeze(l),m);
}
%InstallToContext(["get_template_call_site",GetTemplateCallSite]);
})

spreadÉ
(function(a,b){
'use strict';
var c=b.InternalArray;
var d;
b.Import(function(e){
d=e.MakeTypeError;
});
function SpreadArguments(){
var f=arguments.length;
var g=new c();
for(var h=0;h<f;++h){
var i=arguments[h];
var j=i.length;
for(var k=0;k<j;++k){
g.push(i[k]);
}
}
return g;
}
function SpreadIterable(l){
if((l==null)){
throw d(69,l);
}
var g=new c();
for(var m of l){
g.push(m);
}
return g;
}
%InstallToContext([
"spread_arguments",SpreadArguments,
"spread_iterable",SpreadIterable,
]);
})

proxy½
(function(a,b){
"use strict";
%CheckIsBootstrapping();
var c=a.Proxy;
function ProxyCreateRevocable(d,e){
var f=new c(d,e);
return{proxy:f,revoke:()=>%JSProxyRevoke(f)};
}
b.InstallFunctions(c,2,[
"revocable",ProxyCreateRevocable
]);
})

i18n¦ø
(function(a,b){
"use strict";
%CheckIsBootstrapping();
var c;
var d;
var e;
var f;
var g=a.Date;
var h=a.Number;
var i=a.RegExp;
var j=a.String;
var k=b.InstallFunctions;
var l=b.InstallGetter;
var m=b.InternalArray;
var n;
var o
var p;
var q;
var r;
var s;
var t=b.ImportNow("ObjectHasOwnProperty");
var u=b.OverrideFunction;
var v=b.ImportNow("intl_pattern_symbol");
var w=b.ImportNow("intl_resolved_symbol");
var x=b.SetFunctionName;
var y;
var z;
var A;
var B;
var C;
b.Import(function(D){
c=D.ArrayIndexOf;
d=D.ArrayJoin;
e=D.ArrayPush;
p=D.IsNaN;
q=D.MakeError;
r=D.MakeRangeError;
s=D.MakeTypeError;
n=D.InternalRegExpMatch;
o=D.InternalRegExpReplace;
y=D.StringIndexOf;
z=D.StringLastIndexOf;
A=D.StringSplit;
B=D.StringSubstr;
C=D.StringSubstring;
});
b.ImportFromExperimental(function(D){
f=D.FLAG_intl_extra;
});
function InstallFunction(E,F,G){
k(E,2,[F,G]);
}
function InstallConstructor(E,F,G){
%CheckIsBootstrapping();
x(G,F);
%AddNamedProperty(E,F,G,2);
%SetNativeFlag(G);
%ToFastProperties(E);
}
function AddBoundMethod(H,I,J,K,L){
%CheckIsBootstrapping();
var M=%CreatePrivateSymbol(I);
var N=function(){
if(!%IsInitializedIntlObjectOfType(this,L)){
throw s(52,I);
}
if((this[M]===(void 0))){
var O;
if((K===(void 0))||K===2){
O=(x,y)=>J(this,x,y);
}else if(K===1){
O=x=>J(this,x);
}else{
O=(...args)=>{
if(args.length>0){
return J(this,args[0]);
}else{
return J(this);
}
}
}
%FunctionSetName(O,'__bound'+I+'__');
%FunctionRemovePrototype(O);
%SetNativeFlag(O);
this[M]=O;
}
return this[M];
};
l(H.prototype,I,N,2);
}
var P={};
%AddNamedProperty(a,"Intl",P,2);
var Q={
'collator':(void 0),
'numberformat':(void 0),
'dateformat':(void 0),
'breakiterator':(void 0)
};
var R=(void 0);
function GetDefaultICULocaleJS(){
if((R===(void 0))){
R=%GetDefaultICULocale();
}
return R;
}
var S=(void 0);
function GetUnicodeExtensionRE(){
if(((void 0)===(void 0))){
S=new i('-u(-[a-z0-9]{2,8})+','g');
}
return S;
}
var T=(void 0);
function GetAnyExtensionRE(){
if((T===(void 0))){
T=new i('-[a-z0-9]{1}-.*','g');
}
return T;
}
var U=(void 0);
function GetQuotedStringRE(){
if((U===(void 0))){
U=new i("'[^']+'",'g');
}
return U;
}
var V=(void 0);
function GetServiceRE(){
if((V===(void 0))){
V=
new i('^(collator|numberformat|dateformat|breakiterator)$');
}
return V;
}
var W=(void 0);
function GetLanguageTagRE(){
if((W===(void 0))){
BuildLanguageTagREs();
}
return W;
}
var X=(void 0);
function GetLanguageVariantRE(){
if((X===(void 0))){
BuildLanguageTagREs();
}
return X;
}
var Y=(void 0);
function GetLanguageSingletonRE(){
if((Y===(void 0))){
BuildLanguageTagREs();
}
return Y;
}
var Z=(void 0);
function GetTimezoneNameCheckRE(){
if((Z===(void 0))){
Z=new i(
'^([A-Za-z]+)/([A-Za-z_-]+)((?:\/[A-Za-z_-]+)+)*$');
}
return Z;
}
var aa=(void 0);
function GetTimezoneNameLocationPartRE(){
if((aa===(void 0))){
aa=
new i('^([A-Za-z]+)((?:[_-][A-Za-z]+)+)*$');
}
return aa;
}
function supportedLocalesOf(ab,ac,ad){
if((n(GetServiceRE(),ab)===null)){
throw q(7,ab);
}
if((ad===(void 0))){
ad={};
}else{
ad=(%_ToObject(ad));
}
var ae=ad.localeMatcher;
if(!(ae===(void 0))){
ae=(%_ToString(ae));
if(ae!=='lookup'&&ae!=='best fit'){
throw r(173,ae);
}
}else{
ae='best fit';
}
var af=initializeLocaleList(ac);
if((Q[ab]===(void 0))){
Q[ab]=getAvailableLocalesOf(ab);
}
if(ae==='best fit'){
return initializeLocaleList(bestFitSupportedLocalesOf(
af,Q[ab]));
}
return initializeLocaleList(lookupSupportedLocalesOf(
af,Q[ab]));
}
function lookupSupportedLocalesOf(af,ag){
var ah=new m();
for(var ai=0;ai<af.length;++ai){
var aj=o(
GetUnicodeExtensionRE(),af[ai],'');
do{
if(!(ag[aj]===(void 0))){
%_Call(e,ah,af[ai]);
break;
}
var ak=%_Call(z,aj,'-');
if(ak===-1){
break;
}
aj=%_Call(C,aj,0,ak);
}while(true);
}
return ah;
}
function bestFitSupportedLocalesOf(af,ag){
return lookupSupportedLocalesOf(af,ag);
}
function getGetOption(ad,al){
if((ad===(void 0)))throw q(4,al);
var am=function getOption(an,L,ao,ap){
if(!(ad[an]===(void 0))){
var aq=ad[an];
switch(L){
case'boolean':
aq=(!!(aq));
break;
case'string':
aq=(%_ToString(aq));
break;
case'number':
aq=(%_ToNumber(aq));
break;
default:
throw q(8);
}
if(!(ao===(void 0))&&%_Call(c,ao,aq)===-1){
throw r(183,aq,al,an);
}
return aq;
}
return ap;
}
return am;
}
function resolveLocale(ab,af,ad){
af=initializeLocaleList(af);
var am=getGetOption(ad,ab);
var ae=am('localeMatcher','string',
['lookup','best fit'],'best fit');
var ar;
if(ae==='lookup'){
ar=lookupMatcher(ab,af);
}else{
ar=bestFitMatcher(ab,af);
}
return ar;
}
function lookupMatcher(ab,af){
if((n(GetServiceRE(),ab)===null)){
throw q(7,ab);
}
if((Q[ab]===(void 0))){
Q[ab]=getAvailableLocalesOf(ab);
}
for(var ai=0;ai<af.length;++ai){
var aj=o(
GetAnyExtensionRE(),af[ai],'');
do{
if(!(Q[ab][aj]===(void 0))){
var as=n(
GetUnicodeExtensionRE(),af[ai]);
var at=(as===null)?'':as[0];
return{'locale':aj,'extension':at,'position':ai};
}
var ak=%_Call(z,aj,'-');
if(ak===-1){
break;
}
aj=%_Call(C,aj,0,ak);
}while(true);
}
return{'locale':GetDefaultICULocaleJS(),'extension':'','position':-1};
}
function bestFitMatcher(ab,af){
return lookupMatcher(ab,af);
}
function parseExtension(at){
var au=%_Call(A,at,'-');
if(au.length<=2||
(au[0]!==''&&au[1]!=='u')){
return{};
}
var av={};
var aw=(void 0);
for(var ai=2;ai<au.length;++ai){
var K=au[ai].length;
var ax=au[ai];
if(K===2){
av[ax]=(void 0);
aw=ax;
}else if(K>=3&&K<=8&&!(aw===(void 0))){
av[aw]=ax;
aw=(void 0);
}else{
return{};
}
}
return av;
}
function setOptions(ay,av,az,am,aA){
var at='';
var aB=function updateExtension(aC,aq){
return'-'+aC+'-'+(%_ToString(aq));
}
var aD=function updateProperty(an,L,aq){
if(L==='boolean'&&(typeof aq==='string')){
aq=(aq==='true')?true:false;
}
if(!(an===(void 0))){
defineWEProperty(aA,an,aq);
}
}
for(var aC in az){
if((%_Call(t,az,aC))){
var aq=(void 0);
var aE=az[aC];
if(!(aE.property===(void 0))){
aq=am(aE.property,aE.type,aE.values);
}
if(!(aq===(void 0))){
aD(aE.property,aE.type,aq);
at+=aB(aC,aq);
continue;
}
if((%_Call(t,av,aC))){
aq=av[aC];
if(!(aq===(void 0))){
aD(aE.property,aE.type,aq);
at+=aB(aC,aq);
}else if(aE.type==='boolean'){
aD(aE.property,aE.type,true);
at+=aB(aC,true);
}
}
}
}
return at===''?'':'-u'+at;
}
function freezeArray(aF){
var aG=[];
var aH=aF.length;
for(var ai=0;ai<aH;ai++){
if(ai in aF){
%object_define_property(aG,ai,{value:aF[ai],
configurable:false,
writable:false,
enumerable:true});
}
}
%object_define_property(aG,'length',{value:aH,writable:false});
return aG;
}
function getOptimalLanguageTag(aI,ar){
if(aI===ar){
return aI;
}
var ac=%GetLanguageTagVariants([aI,ar]);
if(ac[0].maximized!==ac[1].maximized){
return ar;
}
var aJ=new i('^'+ac[1].base,'g');
return o(aJ,ar,ac[0].base);
}
function getAvailableLocalesOf(ab){
var aK=%AvailableLocalesOf(ab);
for(var ai in aK){
if((%_Call(t,aK,ai))){
var aL=n(
/^([a-z]{2,3})-([A-Z][a-z]{3})-([A-Z]{2})$/,ai);
if(!(aL===null)){
aK[aL[1]+'-'+aL[3]]=null;
}
}
}
return aK;
}
function defineWEProperty(E,an,aq){
%object_define_property(E,an,
{value:aq,writable:true,enumerable:true});
}
function addWEPropertyIfDefined(E,an,aq){
if(!(aq===(void 0))){
defineWEProperty(E,an,aq);
}
}
function defineWECProperty(E,an,aq){
%object_define_property(E,an,{value:aq,
writable:true,
enumerable:true,
configurable:true});
}
function addWECPropertyIfDefined(E,an,aq){
if(!(aq===(void 0))){
defineWECProperty(E,an,aq);
}
}
function toTitleCaseWord(aM){
return %StringToUpperCase(%_Call(B,aM,0,1))+
%StringToLowerCase(%_Call(B,aM,1));
}
function toTitleCaseTimezoneLocation(aN){
var aO=n(GetTimezoneNameLocationPartRE(),aN)
if((aO===null))throw r(150,aN);
var aP=toTitleCaseWord(aO[1]);
if(!(aO[2]===(void 0))&&2<aO.length){
var aQ=%_Call(C,aO[2],0,1);
var aL=%_Call(A,aO[2],aQ);
for(var ai=1;ai<aL.length;ai++){
var aR=aL[ai]
var aS=%StringToLowerCase(aR);
aP=aP+aQ+
((aS!=='es'&&
aS!=='of'&&aS!=='au')?
toTitleCaseWord(aR):aS);
}
}
return aP;
}
function canonicalizeLanguageTag(aT){
if((!(typeof(aT)==='string')&&!(%_IsJSReceiver(aT)))||
(aT===null)){
throw s(51);
}
if((typeof(aT)==='string')&&
!(n(/^[a-z]{2,3}$/,aT)===null)){
return aT;
}
var aU=(%_ToString(aT));
if(isValidLanguageTag(aU)===false){
throw r(162,aU);
}
var aV=%CanonicalizeLanguageTag(aU);
if(aV==='invalid-tag'){
throw r(162,aU);
}
return aV;
}
function initializeLocaleList(ac){
var aW=new m();
if(!(ac===(void 0))){
if(typeof ac==='string'){
%_Call(e,aW,canonicalizeLanguageTag(ac));
return freezeArray(aW);
}
var aX=(%_ToObject(ac));
var aY=((aX.length)>>>0);
for(var aZ=0;aZ<aY;aZ++){
if(aZ in aX){
var aq=aX[aZ];
var aV=canonicalizeLanguageTag(aq);
if(%_Call(c,aW,aV)===-1){
%_Call(e,aW,aV);
}
}
}
}
return freezeArray(aW);
}
function isValidLanguageTag(aj){
if((n(GetLanguageTagRE(),aj)===null)){
return false;
}
if(%_Call(y,aj,'x-')===0){
return true;
}
aj=%_Call(A,aj,'-x-')[0];
var ba=new m();
var bb=new m();
var aL=%_Call(A,aj,'-');
for(var ai=1;ai<aL.length;ai++){
var aq=aL[ai];
if(!(n(GetLanguageVariantRE(),aq)===null)&&
bb.length===0){
if(%_Call(c,ba,aq)===-1){
%_Call(e,ba,aq);
}else{
return false;
}
}
if(!(n(GetLanguageSingletonRE(),aq)===null)){
if(%_Call(c,bb,aq)===-1){
%_Call(e,bb,aq);
}else{
return false;
}
}
}
return true;
}
function BuildLanguageTagREs(){
var bc='[a-zA-Z]';
var bd='[0-9]';
var be='('+bc+'|'+bd+')';
var bf='(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|'+
'zh-min|zh-min-nan|zh-xiang)';
var bg='(en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|'+
'i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|'+
'i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)';
var bh='('+bg+'|'+bf+')';
var bi='(x(-'+be+'{1,8})+)';
var bj='('+bd+'|[A-WY-Za-wy-z])';
Y=new i('^'+bj+'$','i');
var at='('+bj+'(-'+be+'{2,8})+)';
var bk='('+be+'{5,8}|('+bd+be+'{3}))';
X=new i('^'+bk+'$','i');
var bl='('+bc+'{2}|'+bd+'{3})';
var bm='('+bc+'{4})';
var bn='('+bc+'{3}(-'+bc+'{3}){0,2})';
var bo='('+bc+'{2,3}(-'+bn+')?|'+bc+'{4}|'+
bc+'{5,8})';
var bp=bo+'(-'+bm+')?(-'+bl+')?(-'+
bk+')*(-'+at+')*(-'+bi+')?';
var bq=
'^('+bp+'|'+bi+'|'+bh+')$';
W=new i(bq,'i');
}
var br={
get(){
%IncrementUseCounter(16);
return this[w];
},
set(aq){
this[w]=aq;
}
};
function initializeCollator(bs,ac,ad){
if(%IsInitializedIntlObject(bs)){
throw s(124,"Collator");
}
if((ad===(void 0))){
ad={};
}
var am=getGetOption(ad,'collator');
var bt={};
defineWEProperty(bt,'usage',am(
'usage','string',['sort','search'],'sort'));
var bu=am('sensitivity','string',
['base','accent','case','variant']);
if((bu===(void 0))&&bt.usage==='sort'){
bu='variant';
}
defineWEProperty(bt,'sensitivity',bu);
defineWEProperty(bt,'ignorePunctuation',am(
'ignorePunctuation','boolean',(void 0),false));
var aj=resolveLocale('collator',ac,ad);
var av=parseExtension(aj.extension);
var bv={
'kn':{'property':'numeric','type':'boolean'},
'kf':{'property':'caseFirst','type':'string',
'values':['false','lower','upper']}
};
setOptions(
ad,av,bv,am,bt);
var bw='default';
var at='';
if((%_Call(t,av,'co'))&&bt.usage==='sort'){
var bx=[
'big5han','dict','direct','ducet','gb2312','phonebk','phonetic',
'pinyin','reformed','searchjl','stroke','trad','unihan','zhuyin'
];
if(%_Call(c,bx,av.co)!==-1){
at='-u-co-'+av.co;
bw=av.co;
}
}else if(bt.usage==='search'){
at='-u-co-search';
}
defineWEProperty(bt,'collation',bw);
var by=aj.locale+at;
var ar=%object_define_properties({},{
caseFirst:{writable:true},
collation:{value:bt.collation,writable:true},
ignorePunctuation:{writable:true},
locale:{writable:true},
numeric:{writable:true},
requestedLocale:{value:by,writable:true},
sensitivity:{writable:true},
strength:{writable:true},
usage:{value:bt.usage,writable:true}
});
var bz=%CreateCollator(by,
bt,
ar);
%MarkAsInitializedIntlObjectOfType(bs,'collator',bz);
bs[w]=ar;
if(f){
%object_define_property(bs,'resolved',br);
}
return bs;
}
InstallConstructor(P,'Collator',function(){
var ac=arguments[0];
var ad=arguments[1];
if(!this||this===P){
return new P.Collator(ac,ad);
}
return initializeCollator((%_ToObject(this)),ac,ad);
}
);
InstallFunction(P.Collator.prototype,'resolvedOptions',function(){
if(!(new.target===(void 0))){
throw s(80);
}
if(!%IsInitializedIntlObjectOfType(this,'collator')){
throw s(125,"Collator");
}
var bA=this;
var aj=getOptimalLanguageTag(bA[w].requestedLocale,
bA[w].locale);
return{
locale:aj,
usage:bA[w].usage,
sensitivity:bA[w].sensitivity,
ignorePunctuation:bA[w].ignorePunctuation,
numeric:bA[w].numeric,
caseFirst:bA[w].caseFirst,
collation:bA[w].collation
};
}
);
InstallFunction(P.Collator,'supportedLocalesOf',function(ac){
if(!(new.target===(void 0))){
throw s(80);
}
return supportedLocalesOf('collator',ac,arguments[1]);
}
);
function compare(bs,bB,bC){
return %InternalCompare(%GetImplFromInitializedIntlObject(bs),
(%_ToString(bB)),(%_ToString(bC)));
};
AddBoundMethod(P.Collator,'compare',compare,2,'collator');
function isWellFormedCurrencyCode(bD){
return typeof bD=="string"&&bD.length==3&&
(n(/[^A-Za-z]/,bD)===null);
}
function getNumberOption(ad,an,bE,bF,bG){
var aq=ad[an];
if(!(aq===(void 0))){
aq=(%_ToNumber(aq));
if((!%_IsSmi(%IS_VAR(aq))&&!(aq==aq))||aq<bE||aq>bF){
throw r(176,an);
}
return %math_floor(aq);
}
return bG;
}
var bH={
get(){
%IncrementUseCounter(15);
return this[v];
},
set(aq){
this[v]=aq;
}
};
function initializeNumberFormat(bI,ac,ad){
if(%IsInitializedIntlObject(bI)){
throw s(124,"NumberFormat");
}
if((ad===(void 0))){
ad={};
}
var am=getGetOption(ad,'numberformat');
var aj=resolveLocale('numberformat',ac,ad);
var bt={};
defineWEProperty(bt,'style',am(
'style','string',['decimal','percent','currency'],'decimal'));
var bD=am('currency','string');
if(!(bD===(void 0))&&!isWellFormedCurrencyCode(bD)){
throw r(157,bD);
}
if(bt.style==='currency'&&(bD===(void 0))){
throw s(29);
}
var bJ=am(
'currencyDisplay','string',['code','symbol','name'],'symbol');
if(bt.style==='currency'){
defineWEProperty(bt,'currency',%StringToUpperCase(bD));
defineWEProperty(bt,'currencyDisplay',bJ);
}
var bK=getNumberOption(ad,'minimumIntegerDigits',1,21,1);
defineWEProperty(bt,'minimumIntegerDigits',bK);
var bL=ad['minimumFractionDigits'];
var bM=ad['maximumFractionDigits'];
if(!(bL===(void 0))||bt.style!=='currency'){
bL=getNumberOption(ad,'minimumFractionDigits',0,20,0);
defineWEProperty(bt,'minimumFractionDigits',bL);
}
if(!(bM===(void 0))||bt.style!=='currency'){
var bN=bt.style==='percent'?0:3;
bL=(bL===(void 0))?0:bL;
var bO=(bL>bN)?bL:bN;
bM=getNumberOption(ad,'maximumFractionDigits',bL,20,bO);
defineWEProperty(bt,'maximumFractionDigits',bM);
}
var bP=ad['minimumSignificantDigits'];
var bQ=ad['maximumSignificantDigits'];
if(!(bP===(void 0))||!(bQ===(void 0))){
bP=getNumberOption(ad,'minimumSignificantDigits',1,21,0);
defineWEProperty(bt,'minimumSignificantDigits',bP);
bQ=getNumberOption(ad,'maximumSignificantDigits',bP,21,21);
defineWEProperty(bt,'maximumSignificantDigits',bQ);
}
defineWEProperty(bt,'useGrouping',am(
'useGrouping','boolean',(void 0),true));
var av=parseExtension(aj.extension);
var bR={
'nu':{'property':(void 0),'type':'string'}
};
var at=setOptions(ad,av,bR,
am,bt);
var by=aj.locale+at;
var ar=%object_define_properties({},{
currency:{writable:true},
currencyDisplay:{writable:true},
locale:{writable:true},
maximumFractionDigits:{writable:true},
minimumFractionDigits:{writable:true},
minimumIntegerDigits:{writable:true},
numberingSystem:{writable:true},
requestedLocale:{value:by,writable:true},
style:{value:bt.style,writable:true},
useGrouping:{writable:true}
});
if((%_Call(t,bt,'minimumSignificantDigits'))){
defineWEProperty(ar,'minimumSignificantDigits',(void 0));
}
if((%_Call(t,bt,'maximumSignificantDigits'))){
defineWEProperty(ar,'maximumSignificantDigits',(void 0));
}
var bS=%CreateNumberFormat(by,
bt,
ar);
if(bt.style==='currency'){
%object_define_property(ar,'currencyDisplay',
{value:bJ,writable:true});
}
%MarkAsInitializedIntlObjectOfType(bI,'numberformat',bS);
bI[w]=ar;
if(f){
%object_define_property(ar,'pattern',bH);
%object_define_property(bI,'resolved',br);
}
return bI;
}
InstallConstructor(P,'NumberFormat',function(){
var ac=arguments[0];
var ad=arguments[1];
if(!this||this===P){
return new P.NumberFormat(ac,ad);
}
return initializeNumberFormat((%_ToObject(this)),ac,ad);
}
);
InstallFunction(P.NumberFormat.prototype,'resolvedOptions',function(){
if(!(new.target===(void 0))){
throw s(80);
}
if(!%IsInitializedIntlObjectOfType(this,'numberformat')){
throw s(125,"NumberFormat");
}
var bT=this;
var aj=getOptimalLanguageTag(bT[w].requestedLocale,
bT[w].locale);
var aP={
locale:aj,
numberingSystem:bT[w].numberingSystem,
style:bT[w].style,
useGrouping:bT[w].useGrouping,
minimumIntegerDigits:bT[w].minimumIntegerDigits,
minimumFractionDigits:bT[w].minimumFractionDigits,
maximumFractionDigits:bT[w].maximumFractionDigits,
};
if(aP.style==='currency'){
defineWECProperty(aP,'currency',bT[w].currency);
defineWECProperty(aP,'currencyDisplay',
bT[w].currencyDisplay);
}
if((%_Call(t,bT[w],'minimumSignificantDigits'))){
defineWECProperty(aP,'minimumSignificantDigits',
bT[w].minimumSignificantDigits);
}
if((%_Call(t,bT[w],'maximumSignificantDigits'))){
defineWECProperty(aP,'maximumSignificantDigits',
bT[w].maximumSignificantDigits);
}
return aP;
}
);
InstallFunction(P.NumberFormat,'supportedLocalesOf',function(ac){
if(!(new.target===(void 0))){
throw s(80);
}
return supportedLocalesOf('numberformat',ac,arguments[1]);
}
);
function formatNumber(bS,aq){
var bU=(%_ToNumber(aq))+0;
return %InternalNumberFormat(%GetImplFromInitializedIntlObject(bS),
bU);
}
function IntlParseNumber(bS,aq){
return %InternalNumberParse(%GetImplFromInitializedIntlObject(bS),
(%_ToString(aq)));
}
AddBoundMethod(P.NumberFormat,'format',formatNumber,1,'numberformat');
function toLDMLString(ad){
var am=getGetOption(ad,'dateformat');
var bV='';
var bW=am('weekday','string',['narrow','short','long']);
bV+=appendToLDMLString(
bW,{narrow:'EEEEE',short:'EEE',long:'EEEE'});
bW=am('era','string',['narrow','short','long']);
bV+=appendToLDMLString(
bW,{narrow:'GGGGG',short:'GGG',long:'GGGG'});
bW=am('year','string',['2-digit','numeric']);
bV+=appendToLDMLString(bW,{'2-digit':'yy','numeric':'y'});
bW=am('month','string',
['2-digit','numeric','narrow','short','long']);
bV+=appendToLDMLString(bW,{'2-digit':'MM','numeric':'M',
'narrow':'MMMMM','short':'MMM','long':'MMMM'});
bW=am('day','string',['2-digit','numeric']);
bV+=appendToLDMLString(
bW,{'2-digit':'dd','numeric':'d'});
var bX=am('hour12','boolean');
bW=am('hour','string',['2-digit','numeric']);
if((bX===(void 0))){
bV+=appendToLDMLString(bW,{'2-digit':'jj','numeric':'j'});
}else if(bX===true){
bV+=appendToLDMLString(bW,{'2-digit':'hh','numeric':'h'});
}else{
bV+=appendToLDMLString(bW,{'2-digit':'HH','numeric':'H'});
}
bW=am('minute','string',['2-digit','numeric']);
bV+=appendToLDMLString(bW,{'2-digit':'mm','numeric':'m'});
bW=am('second','string',['2-digit','numeric']);
bV+=appendToLDMLString(bW,{'2-digit':'ss','numeric':'s'});
bW=am('timeZoneName','string',['short','long']);
bV+=appendToLDMLString(bW,{short:'z',long:'zzzz'});
return bV;
}
function appendToLDMLString(bW,bY){
if(!(bW===(void 0))){
return bY[bW];
}else{
return'';
}
}
function fromLDMLString(bV){
bV=o(GetQuotedStringRE(),bV,'');
var ad={};
var aO=n(/E{3,5}/,bV);
ad=appendToDateTimeObject(
ad,'weekday',aO,{EEEEE:'narrow',EEE:'short',EEEE:'long'});
aO=n(/G{3,5}/,bV);
ad=appendToDateTimeObject(
ad,'era',aO,{GGGGG:'narrow',GGG:'short',GGGG:'long'});
aO=n(/y{1,2}/,bV);
ad=appendToDateTimeObject(
ad,'year',aO,{y:'numeric',yy:'2-digit'});
aO=n(/M{1,5}/,bV);
ad=appendToDateTimeObject(ad,'month',aO,{MM:'2-digit',
M:'numeric',MMMMM:'narrow',MMM:'short',MMMM:'long'});
aO=n(/L{1,5}/,bV);
ad=appendToDateTimeObject(ad,'month',aO,{LL:'2-digit',
L:'numeric',LLLLL:'narrow',LLL:'short',LLLL:'long'});
aO=n(/d{1,2}/,bV);
ad=appendToDateTimeObject(
ad,'day',aO,{d:'numeric',dd:'2-digit'});
aO=n(/h{1,2}/,bV);
if(aO!==null){
ad['hour12']=true;
}
ad=appendToDateTimeObject(
ad,'hour',aO,{h:'numeric',hh:'2-digit'});
aO=n(/H{1,2}/,bV);
if(aO!==null){
ad['hour12']=false;
}
ad=appendToDateTimeObject(
ad,'hour',aO,{H:'numeric',HH:'2-digit'});
aO=n(/m{1,2}/,bV);
ad=appendToDateTimeObject(
ad,'minute',aO,{m:'numeric',mm:'2-digit'});
aO=n(/s{1,2}/,bV);
ad=appendToDateTimeObject(
ad,'second',aO,{s:'numeric',ss:'2-digit'});
aO=n(/z|zzzz/,bV);
ad=appendToDateTimeObject(
ad,'timeZoneName',aO,{z:'short',zzzz:'long'});
return ad;
}
function appendToDateTimeObject(ad,bW,aO,bY){
if((aO===null)){
if(!(%_Call(t,ad,bW))){
defineWEProperty(ad,bW,(void 0));
}
return ad;
}
var an=aO[0];
defineWEProperty(ad,bW,bY[an]);
return ad;
}
function toDateTimeOptions(ad,bZ,ca){
if((ad===(void 0))){
ad={};
}else{
ad=(%_ToObject(ad));
}
var cb=true;
if((bZ==='date'||bZ==='any')&&
(!(ad.weekday===(void 0))||!(ad.year===(void 0))||
!(ad.month===(void 0))||!(ad.day===(void 0)))){
cb=false;
}
if((bZ==='time'||bZ==='any')&&
(!(ad.hour===(void 0))||!(ad.minute===(void 0))||
!(ad.second===(void 0)))){
cb=false;
}
if(cb&&(ca==='date'||ca==='all')){
%object_define_property(ad,'year',{value:'numeric',
writable:true,
enumerable:true,
configurable:true});
%object_define_property(ad,'month',{value:'numeric',
writable:true,
enumerable:true,
configurable:true});
%object_define_property(ad,'day',{value:'numeric',
writable:true,
enumerable:true,
configurable:true});
}
if(cb&&(ca==='time'||ca==='all')){
%object_define_property(ad,'hour',{value:'numeric',
writable:true,
enumerable:true,
configurable:true});
%object_define_property(ad,'minute',{value:'numeric',
writable:true,
enumerable:true,
configurable:true});
%object_define_property(ad,'second',{value:'numeric',
writable:true,
enumerable:true,
configurable:true});
}
return ad;
}
function initializeDateTimeFormat(cc,ac,ad){
if(%IsInitializedIntlObject(cc)){
throw s(124,"DateTimeFormat");
}
if((ad===(void 0))){
ad={};
}
var aj=resolveLocale('dateformat',ac,ad);
ad=toDateTimeOptions(ad,'any','date');
var am=getGetOption(ad,'dateformat');
var ae=am('formatMatcher','string',
['basic','best fit'],'best fit');
var bV=toLDMLString(ad);
var cd=canonicalizeTimeZoneID(ad.timeZone);
var bt={};
var av=parseExtension(aj.extension);
var ce={
'ca':{'property':(void 0),'type':'string'},
'nu':{'property':(void 0),'type':'string'}
};
var at=setOptions(ad,av,ce,
am,bt);
var by=aj.locale+at;
var ar=%object_define_properties({},{
calendar:{writable:true},
day:{writable:true},
era:{writable:true},
hour12:{writable:true},
hour:{writable:true},
locale:{writable:true},
minute:{writable:true},
month:{writable:true},
numberingSystem:{writable:true},
[v]:{writable:true},
requestedLocale:{value:by,writable:true},
second:{writable:true},
timeZone:{writable:true},
timeZoneName:{writable:true},
tz:{value:cd,writable:true},
weekday:{writable:true},
year:{writable:true}
});
var bS=%CreateDateTimeFormat(
by,{skeleton:bV,timeZone:cd},ar);
if(ar.timeZone==="Etc/Unknown"){
throw r(182,cd);
}
%MarkAsInitializedIntlObjectOfType(cc,'dateformat',bS);
cc[w]=ar;
if(f){
%object_define_property(ar,'pattern',bH);
%object_define_property(cc,'resolved',br);
}
return cc;
}
InstallConstructor(P,'DateTimeFormat',function(){
var ac=arguments[0];
var ad=arguments[1];
if(!this||this===P){
return new P.DateTimeFormat(ac,ad);
}
return initializeDateTimeFormat((%_ToObject(this)),ac,ad);
}
);
InstallFunction(P.DateTimeFormat.prototype,'resolvedOptions',function(){
if(!(new.target===(void 0))){
throw s(80);
}
if(!%IsInitializedIntlObjectOfType(this,'dateformat')){
throw s(125,"DateTimeFormat");
}
var cf={
'gregorian':'gregory',
'japanese':'japanese',
'buddhist':'buddhist',
'roc':'roc',
'persian':'persian',
'islamic-civil':'islamicc',
'islamic':'islamic',
'hebrew':'hebrew',
'chinese':'chinese',
'indian':'indian',
'coptic':'coptic',
'ethiopic':'ethiopic',
'ethiopic-amete-alem':'ethioaa'
};
var bT=this;
var cg=fromLDMLString(bT[w][v]);
var ch=cf[bT[w].calendar];
if((ch===(void 0))){
ch=bT[w].calendar;
}
var aj=getOptimalLanguageTag(bT[w].requestedLocale,
bT[w].locale);
var aP={
locale:aj,
numberingSystem:bT[w].numberingSystem,
calendar:ch,
timeZone:bT[w].timeZone
};
addWECPropertyIfDefined(aP,'timeZoneName',cg.timeZoneName);
addWECPropertyIfDefined(aP,'era',cg.era);
addWECPropertyIfDefined(aP,'year',cg.year);
addWECPropertyIfDefined(aP,'month',cg.month);
addWECPropertyIfDefined(aP,'day',cg.day);
addWECPropertyIfDefined(aP,'weekday',cg.weekday);
addWECPropertyIfDefined(aP,'hour12',cg.hour12);
addWECPropertyIfDefined(aP,'hour',cg.hour);
addWECPropertyIfDefined(aP,'minute',cg.minute);
addWECPropertyIfDefined(aP,'second',cg.second);
return aP;
}
);
InstallFunction(P.DateTimeFormat,'supportedLocalesOf',function(ac){
if(!(new.target===(void 0))){
throw s(80);
}
return supportedLocalesOf('dateformat',ac,arguments[1]);
}
);
function formatDate(bS,ci){
var cj;
if((ci===(void 0))){
cj=%DateCurrentTime();
}else{
cj=(%_ToNumber(ci));
}
if(!(%_IsSmi(%IS_VAR(cj))||((cj==cj)&&(cj!=1/0)&&(cj!=-1/0))))throw r(148);
return %InternalDateFormat(%GetImplFromInitializedIntlObject(bS),
new g(cj));
}
function IntlParseDate(bS,aq){
return %InternalDateParse(%GetImplFromInitializedIntlObject(bS),
(%_ToString(aq)));
}
AddBoundMethod(P.DateTimeFormat,'format',formatDate,0,'dateformat');
function canonicalizeTimeZoneID(ck){
if((ck===(void 0))){
return ck;
}
var cl=%StringToUpperCase(ck);
if(cl==='UTC'||cl==='GMT'||
cl==='ETC/UTC'||cl==='ETC/GMT'){
return'UTC';
}
var aO=n(GetTimezoneNameCheckRE(),ck);
if((aO===null))throw r(149,ck);
var aP=toTitleCaseTimezoneLocation(aO[1])+'/'+
toTitleCaseTimezoneLocation(aO[2]);
if(!(aO[3]===(void 0))&&3<aO.length){
var cm=%_Call(A,aO[3],'/');
for(var ai=1;ai<cm.length;ai++){
aP=aP+'/'+toTitleCaseTimezoneLocation(cm[ai]);
}
}
return aP;
}
function initializeBreakIterator(cn,ac,ad){
if(%IsInitializedIntlObject(cn)){
throw s(124,"v8BreakIterator");
}
if((ad===(void 0))){
ad={};
}
var am=getGetOption(ad,'breakiterator');
var bt={};
defineWEProperty(bt,'type',am(
'type','string',['character','word','sentence','line'],'word'));
var aj=resolveLocale('breakiterator',ac,ad);
var ar=%object_define_properties({},{
requestedLocale:{value:aj.locale,writable:true},
type:{value:bt.type,writable:true},
locale:{writable:true}
});
var co=%CreateBreakIterator(aj.locale,
bt,
ar);
%MarkAsInitializedIntlObjectOfType(cn,'breakiterator',
co);
cn[w]=ar;
if(f){
%object_define_property(cn,'resolved',br);
}
return cn;
}
InstallConstructor(P,'v8BreakIterator',function(){
var ac=arguments[0];
var ad=arguments[1];
if(!this||this===P){
return new P.v8BreakIterator(ac,ad);
}
return initializeBreakIterator((%_ToObject(this)),ac,ad);
}
);
InstallFunction(P.v8BreakIterator.prototype,'resolvedOptions',
function(){
if(!(new.target===(void 0))){
throw s(80);
}
if(!%IsInitializedIntlObjectOfType(this,'breakiterator')){
throw s(125,"v8BreakIterator");
}
var cp=this;
var aj=
getOptimalLanguageTag(cp[w].requestedLocale,
cp[w].locale);
return{
locale:aj,
type:cp[w].type
};
}
);
InstallFunction(P.v8BreakIterator,'supportedLocalesOf',
function(ac){
if(!(new.target===(void 0))){
throw s(80);
}
return supportedLocalesOf('breakiterator',ac,arguments[1]);
}
);
function adoptText(cn,cq){
%BreakIteratorAdoptText(%GetImplFromInitializedIntlObject(cn),
(%_ToString(cq)));
}
function first(cn){
return %BreakIteratorFirst(%GetImplFromInitializedIntlObject(cn));
}
function next(cn){
return %BreakIteratorNext(%GetImplFromInitializedIntlObject(cn));
}
function current(cn){
return %BreakIteratorCurrent(%GetImplFromInitializedIntlObject(cn));
}
function breakType(cn){
return %BreakIteratorBreakType(%GetImplFromInitializedIntlObject(cn));
}
AddBoundMethod(P.v8BreakIterator,'adoptText',adoptText,1,
'breakiterator');
AddBoundMethod(P.v8BreakIterator,'first',first,0,'breakiterator');
AddBoundMethod(P.v8BreakIterator,'next',next,0,'breakiterator');
AddBoundMethod(P.v8BreakIterator,'current',current,0,'breakiterator');
AddBoundMethod(P.v8BreakIterator,'breakType',breakType,0,
'breakiterator');
var cr={
'collator':P.Collator,
'numberformat':P.NumberFormat,
'dateformatall':P.DateTimeFormat,
'dateformatdate':P.DateTimeFormat,
'dateformattime':P.DateTimeFormat
};
var cs={
'collator':(void 0),
'numberformat':(void 0),
'dateformatall':(void 0),
'dateformatdate':(void 0),
'dateformattime':(void 0),
};
function clearDefaultObjects(){
cs['dateformatall']=(void 0);
cs['dateformatdate']=(void 0);
cs['dateformattime']=(void 0);
}
var ct=0;
function checkDateCacheCurrent(){
var cu=%DateCacheVersion();
if(cu==ct){
return;
}
ct=cu;
clearDefaultObjects();
}
function cachedOrNewService(ab,ac,ad,ca){
var cv=((ca===(void 0)))?ad:ca;
if((ac===(void 0))&&(ad===(void 0))){
checkDateCacheCurrent();
if((cs[ab]===(void 0))){
cs[ab]=new cr[ab](ac,cv);
}
return cs[ab];
}
return new cr[ab](ac,cv);
}
function LocaleConvertCase(cw,ac,cx){
var bo;
if((ac===(void 0))){
bo=GetDefaultICULocaleJS();
}else if((typeof(ac)==='string')){
bo=canonicalizeLanguageTag(ac);
}else{
var ac=initializeLocaleList(ac);
bo=ac.length>0?ac[0]:GetDefaultICULocaleJS();
}
var ak=%_Call(y,bo,'-');
if(ak!=-1){
bo=%_Call(C,bo,0,ak);
}
var cy=['az','el','lt','tr'];
var cz=%_Call(c,cy,bo);
if(cz==-1){
return cx?%StringToUpperCaseI18N(cw):%StringToLowerCaseI18N(cw);
}
return %StringLocaleConvertCase(cw,cx,
cy[cz]);
}
u(j.prototype,'localeCompare',function(cA){
if(!(new.target===(void 0))){
throw s(80);
}
if((this==null)){
throw s(53);
}
var ac=arguments[1];
var ad=arguments[2];
var bs=cachedOrNewService('collator',ac,ad);
return compare(bs,this,cA);
}
);
u(j.prototype,'normalize',function(){
if(!(new.target===(void 0))){
throw s(80);
}
if((%IS_VAR(this)===null)||(this===(void 0)))throw s(17,"String.prototype.normalize");
var cw=(%_ToString(this));
var cB=arguments[0];
var cC=(cB===(void 0))?'NFC':(%_ToString(cB));
var cD=['NFC','NFD','NFKC','NFKD'];
var cE=%_Call(c,cD,cC);
if(cE===-1){
throw r(174,
%_Call(d,cD,', '));
}
return %StringNormalize(cw,cE);
}
);
function ToLowerCaseI18N(){
if(!(new.target===(void 0))){
throw s(80);
}
if((%IS_VAR(this)===null)||(this===(void 0)))throw s(17,"String.prototype.toLowerCase");
var cw=(%_ToString(this));
return %StringToLowerCaseI18N(cw);
}
function ToUpperCaseI18N(){
if(!(new.target===(void 0))){
throw s(80);
}
if((%IS_VAR(this)===null)||(this===(void 0)))throw s(17,"String.prototype.toUpperCase");
var cw=(%_ToString(this));
return %StringToUpperCaseI18N(cw);
}
function ToLocaleLowerCaseI18N(ac){
if(!(new.target===(void 0))){
throw s(80);
}
if((%IS_VAR(this)===null)||(this===(void 0)))throw s(17,"String.prototype.toLocaleLowerCase");
return LocaleConvertCase((%_ToString(this)),ac,false);
}
%FunctionSetLength(ToLocaleLowerCaseI18N,0);
function ToLocaleUpperCaseI18N(ac){
if(!(new.target===(void 0))){
throw s(80);
}
if((%IS_VAR(this)===null)||(this===(void 0)))throw s(17,"String.prototype.toLocaleUpperCase");
return LocaleConvertCase((%_ToString(this)),ac,true);
}
%FunctionSetLength(ToLocaleUpperCaseI18N,0);
%FunctionRemovePrototype(ToLowerCaseI18N);
%FunctionRemovePrototype(ToUpperCaseI18N);
%FunctionRemovePrototype(ToLocaleLowerCaseI18N);
%FunctionRemovePrototype(ToLocaleUpperCaseI18N);
b.Export(function(cF){
cF.ToLowerCaseI18N=ToLowerCaseI18N;
cF.ToUpperCaseI18N=ToUpperCaseI18N;
cF.ToLocaleLowerCaseI18N=ToLocaleLowerCaseI18N;
cF.ToLocaleUpperCaseI18N=ToLocaleUpperCaseI18N;
});
u(h.prototype,'toLocaleString',function(){
if(!(new.target===(void 0))){
throw s(80);
}
if(!(this instanceof h)&&typeof(this)!=='number'){
throw s(54,"Number");
}
var ac=arguments[0];
var ad=arguments[1];
var bI=cachedOrNewService('numberformat',ac,ad);
return formatNumber(bI,this);
}
);
function toLocaleDateTime(cG,ac,ad,bZ,ca,ab){
if(!(cG instanceof g)){
throw s(54,"Date");
}
if(p(cG))return'Invalid Date';
var bt=toDateTimeOptions(ad,bZ,ca);
var cc=
cachedOrNewService(ab,ac,ad,bt);
return formatDate(cc,cG);
}
u(g.prototype,'toLocaleString',function(){
if(!(new.target===(void 0))){
throw s(80);
}
var ac=arguments[0];
var ad=arguments[1];
return toLocaleDateTime(
this,ac,ad,'any','all','dateformatall');
}
);
u(g.prototype,'toLocaleDateString',function(){
if(!(new.target===(void 0))){
throw s(80);
}
var ac=arguments[0];
var ad=arguments[1];
return toLocaleDateTime(
this,ac,ad,'date','date','dateformatdate');
}
);
u(g.prototype,'toLocaleTimeString',function(){
if(!(new.target===(void 0))){
throw s(80);
}
var ac=arguments[0];
var ad=arguments[1];
return toLocaleDateTime(
this,ac,ad,'time','time','dateformattime');
}
);
b.Export(function(cF){
cF.AddBoundMethod=AddBoundMethod;
cF.IntlParseDate=IntlParseDate;
cF.IntlParseNumber=IntlParseNumber;
});
})

 <harmony-atomicsA0
(function(a,b){
"use strict";
%CheckIsBootstrapping();
var c=a.Object;
var d;
var e;
var f;
var g=b.ImportNow("to_string_tag_symbol");
b.Import(function(h){
e=h.MakeTypeError;
d=h.MakeRangeError;
f=h.MaxSimple;
});
function CheckSharedIntegerTypedArray(i){
if(!%IsSharedIntegerTypedArray(i)){
throw e(73,i);
}
}
function CheckSharedInteger32TypedArray(i){
CheckSharedIntegerTypedArray(i);
if(!%IsSharedInteger32TypedArray(i)){
throw e(74,i);
}
}
function ValidateIndex(j,k){
var l=(%_ToNumber(j));
var m=(%_ToInteger(l));
if(l!==m){
throw d(154);
}
if(m<0||m>=k){
throw d(154);
}
return m;
}
function AtomicsCompareExchangeJS(n,j,o,p){
CheckSharedIntegerTypedArray(n);
j=ValidateIndex(j,%_TypedArrayGetLength(n));
o=(%_ToNumber(o));
p=(%_ToNumber(p));
return %_AtomicsCompareExchange(n,j,o,p);
}
function AtomicsAddJS(i,j,q){
CheckSharedIntegerTypedArray(i);
j=ValidateIndex(j,%_TypedArrayGetLength(i));
q=(%_ToNumber(q));
return %_AtomicsAdd(i,j,q);
}
function AtomicsSubJS(i,j,q){
CheckSharedIntegerTypedArray(i);
j=ValidateIndex(j,%_TypedArrayGetLength(i));
q=(%_ToNumber(q));
return %_AtomicsSub(i,j,q);
}
function AtomicsAndJS(i,j,q){
CheckSharedIntegerTypedArray(i);
j=ValidateIndex(j,%_TypedArrayGetLength(i));
q=(%_ToNumber(q));
return %_AtomicsAnd(i,j,q);
}
function AtomicsOrJS(i,j,q){
CheckSharedIntegerTypedArray(i);
j=ValidateIndex(j,%_TypedArrayGetLength(i));
q=(%_ToNumber(q));
return %_AtomicsOr(i,j,q);
}
function AtomicsXorJS(i,j,q){
CheckSharedIntegerTypedArray(i);
j=ValidateIndex(j,%_TypedArrayGetLength(i));
q=(%_ToNumber(q));
return %_AtomicsXor(i,j,q);
}
function AtomicsExchangeJS(i,j,q){
CheckSharedIntegerTypedArray(i);
j=ValidateIndex(j,%_TypedArrayGetLength(i));
q=(%_ToNumber(q));
return %_AtomicsExchange(i,j,q);
}
function AtomicsIsLockFreeJS(r){
return %_AtomicsIsLockFree(r);
}
function AtomicsFutexWaitJS(i,j,q,s){
CheckSharedInteger32TypedArray(i);
j=ValidateIndex(j,%_TypedArrayGetLength(i));
if((s===(void 0))){
s=(1/0);
}else{
s=(%_ToNumber(s));
if((!%_IsSmi(%IS_VAR(s))&&!(s==s))){
s=(1/0);
}else{
s=f(0,s);
}
}
return %AtomicsFutexWait(i,j,q,s);
}
function AtomicsFutexWakeJS(i,j,t){
CheckSharedInteger32TypedArray(i);
j=ValidateIndex(j,%_TypedArrayGetLength(i));
t=f(0,(%_ToInteger(t)));
return %AtomicsFutexWake(i,j,t);
}
function AtomicsFutexWakeOrRequeueJS(i,u,t,q,v){
CheckSharedInteger32TypedArray(i);
u=ValidateIndex(u,%_TypedArrayGetLength(i));
t=f(0,(%_ToInteger(t)));
q=((q)|0);
v=ValidateIndex(v,%_TypedArrayGetLength(i));
if(u<0||u>=%_TypedArrayGetLength(i)||
v<0||v>=%_TypedArrayGetLength(i)){
return(void 0);
}
return %AtomicsFutexWakeOrRequeue(i,u,t,q,v);
}
var w=a.Atomics;
%AddNamedProperty(w,g,"Atomics",1|2);
b.InstallConstants(w,[
"OK",0,
"NOTEQUAL",-1,
"TIMEDOUT",-2,
]);
b.InstallFunctions(w,2,[
"compareExchange",AtomicsCompareExchangeJS,
"add",AtomicsAddJS,
"sub",AtomicsSubJS,
"and",AtomicsAndJS,
"or",AtomicsOrJS,
"xor",AtomicsXorJS,
"exchange",AtomicsExchangeJS,
"isLockFree",AtomicsIsLockFreeJS,
"futexWait",AtomicsFutexWaitJS,
"futexWake",AtomicsFutexWakeJS,
"futexWakeOrRequeue",AtomicsFutexWakeOrRequeueJS,
]);
})

dharmony-sharedarraybufferE
(function(a,b){
"use strict";
%CheckIsBootstrapping();
var c=a.SharedArrayBuffer;
var d;
b.Import(function(e){
d=e.MakeTypeError;
})
function SharedArrayBufferGetByteLen(){
if(!(%_ClassOf(this)==='SharedArrayBuffer')){
throw d(43,
'SharedArrayBuffer.prototype.byteLength',this);
}
return %_ArrayBufferGetByteLength(this);
}
b.InstallGetter(c.prototype,"byteLength",
SharedArrayBufferGetByteLen);
})

0harmony-simd–²
(function(a,b){
"use strict";
%CheckIsBootstrapping();
var c=a.SIMD;
var d;
var e=b.ImportNow("to_string_tag_symbol");
b.Import(function(f){
d=f.MakeTypeError;
});
var g=c.Float32x4;


var h=c.Int32x4;

var i=c.Int16x8;

var j=c.Int8x16;


var k=c.Uint32x4;

var l=c.Uint16x8;

var m=c.Uint8x16;


var n=c.Bool32x4;

var o=c.Bool16x8;

var p=c.Bool8x16;



function Float32x4CheckJS(q){
return %Float32x4Check(q);
}
function Float32x4ToString(){
var r=%_ValueOf(this);
if(typeof(r)!=='float32x4'){
throw d(43,
"Float32x4.prototype.toString",this);
}
var s="SIMD.Float32x4(";
s+=%Float32x4ExtractLane(r,0);
for(var t=1;t<4;t++){
s+=", "+%Float32x4ExtractLane(r,t);
}
return s+")";
}
function Float32x4ToLocaleString(){
var r=%_ValueOf(this);
if(typeof(r)!=='float32x4'){
throw d(43,
"Float32x4.prototype.toLocaleString",this);
}
var s="SIMD.Float32x4(";
s+=%Float32x4ExtractLane(r,0).toLocaleString();
for(var t=1;t<4;t++){
s+=", "+%Float32x4ExtractLane(r,t).toLocaleString();
}
return s+")";
}
function Float32x4ValueOf(){
var r=%_ValueOf(this);
if(typeof(r)!=='float32x4'){
throw d(43,
"Float32x4.prototype.valueOf",this);
}
return r;
}
function Float32x4ExtractLaneJS(u,v){
return %Float32x4ExtractLane(u,v);
}


function Int32x4CheckJS(q){
return %Int32x4Check(q);
}
function Int32x4ToString(){
var r=%_ValueOf(this);
if(typeof(r)!=='int32x4'){
throw d(43,
"Int32x4.prototype.toString",this);
}
var s="SIMD.Int32x4(";
s+=%Int32x4ExtractLane(r,0);
for(var t=1;t<4;t++){
s+=", "+%Int32x4ExtractLane(r,t);
}
return s+")";
}
function Int32x4ToLocaleString(){
var r=%_ValueOf(this);
if(typeof(r)!=='int32x4'){
throw d(43,
"Int32x4.prototype.toLocaleString",this);
}
var s="SIMD.Int32x4(";
s+=%Int32x4ExtractLane(r,0).toLocaleString();
for(var t=1;t<4;t++){
s+=", "+%Int32x4ExtractLane(r,t).toLocaleString();
}
return s+")";
}
function Int32x4ValueOf(){
var r=%_ValueOf(this);
if(typeof(r)!=='int32x4'){
throw d(43,
"Int32x4.prototype.valueOf",this);
}
return r;
}
function Int32x4ExtractLaneJS(u,v){
return %Int32x4ExtractLane(u,v);
}

function Int16x8CheckJS(q){
return %Int16x8Check(q);
}
function Int16x8ToString(){
var r=%_ValueOf(this);
if(typeof(r)!=='int16x8'){
throw d(43,
"Int16x8.prototype.toString",this);
}
var s="SIMD.Int16x8(";
s+=%Int16x8ExtractLane(r,0);
for(var t=1;t<8;t++){
s+=", "+%Int16x8ExtractLane(r,t);
}
return s+")";
}
function Int16x8ToLocaleString(){
var r=%_ValueOf(this);
if(typeof(r)!=='int16x8'){
throw d(43,
"Int16x8.prototype.toLocaleString",this);
}
var s="SIMD.Int16x8(";
s+=%Int16x8ExtractLane(r,0).toLocaleString();
for(var t=1;t<8;t++){
s+=", "+%Int16x8ExtractLane(r,t).toLocaleString();
}
return s+")";
}
function Int16x8ValueOf(){
var r=%_ValueOf(this);
if(typeof(r)!=='int16x8'){
throw d(43,
"Int16x8.prototype.valueOf",this);
}
return r;
}
function Int16x8ExtractLaneJS(u,v){
return %Int16x8ExtractLane(u,v);
}

function Int8x16CheckJS(q){
return %Int8x16Check(q);
}
function Int8x16ToString(){
var r=%_ValueOf(this);
if(typeof(r)!=='int8x16'){
throw d(43,
"Int8x16.prototype.toString",this);
}
var s="SIMD.Int8x16(";
s+=%Int8x16ExtractLane(r,0);
for(var t=1;t<16;t++){
s+=", "+%Int8x16ExtractLane(r,t);
}
return s+")";
}
function Int8x16ToLocaleString(){
var r=%_ValueOf(this);
if(typeof(r)!=='int8x16'){
throw d(43,
"Int8x16.prototype.toLocaleString",this);
}
var s="SIMD.Int8x16(";
s+=%Int8x16ExtractLane(r,0).toLocaleString();
for(var t=1;t<16;t++){
s+=", "+%Int8x16ExtractLane(r,t).toLocaleString();
}
return s+")";
}
function Int8x16ValueOf(){
var r=%_ValueOf(this);
if(typeof(r)!=='int8x16'){
throw d(43,
"Int8x16.prototype.valueOf",this);
}
return r;
}
function Int8x16ExtractLaneJS(u,v){
return %Int8x16ExtractLane(u,v);
}


function Uint32x4CheckJS(q){
return %Uint32x4Check(q);
}
function Uint32x4ToString(){
var r=%_ValueOf(this);
if(typeof(r)!=='uint32x4'){
throw d(43,
"Uint32x4.prototype.toString",this);
}
var s="SIMD.Uint32x4(";
s+=%Uint32x4ExtractLane(r,0);
for(var t=1;t<4;t++){
s+=", "+%Uint32x4ExtractLane(r,t);
}
return s+")";
}
function Uint32x4ToLocaleString(){
var r=%_ValueOf(this);
if(typeof(r)!=='uint32x4'){
throw d(43,
"Uint32x4.prototype.toLocaleString",this);
}
var s="SIMD.Uint32x4(";
s+=%Uint32x4ExtractLane(r,0).toLocaleString();
for(var t=1;t<4;t++){
s+=", "+%Uint32x4ExtractLane(r,t).toLocaleString();
}
return s+")";
}
function Uint32x4ValueOf(){
var r=%_ValueOf(this);
if(typeof(r)!=='uint32x4'){
throw d(43,
"Uint32x4.prototype.valueOf",this);
}
return r;
}
function Uint32x4ExtractLaneJS(u,v){
return %Uint32x4ExtractLane(u,v);
}

function Uint16x8CheckJS(q){
return %Uint16x8Check(q);
}
function Uint16x8ToString(){
var r=%_ValueOf(this);
if(typeof(r)!=='uint16x8'){
throw d(43,
"Uint16x8.prototype.toString",this);
}
var s="SIMD.Uint16x8(";
s+=%Uint16x8ExtractLane(r,0);
for(var t=1;t<8;t++){
s+=", "+%Uint16x8ExtractLane(r,t);
}
return s+")";
}
function Uint16x8ToLocaleString(){
var r=%_ValueOf(this);
if(typeof(r)!=='uint16x8'){
throw d(43,
"Uint16x8.prototype.toLocaleString",this);
}
var s="SIMD.Uint16x8(";
s+=%Uint16x8ExtractLane(r,0).toLocaleString();
for(var t=1;t<8;t++){
s+=", "+%Uint16x8ExtractLane(r,t).toLocaleString();
}
return s+")";
}
function Uint16x8ValueOf(){
var r=%_ValueOf(this);
if(typeof(r)!=='uint16x8'){
throw d(43,
"Uint16x8.prototype.valueOf",this);
}
return r;
}
function Uint16x8ExtractLaneJS(u,v){
return %Uint16x8ExtractLane(u,v);
}

function Uint8x16CheckJS(q){
return %Uint8x16Check(q);
}
function Uint8x16ToString(){
var r=%_ValueOf(this);
if(typeof(r)!=='uint8x16'){
throw d(43,
"Uint8x16.prototype.toString",this);
}
var s="SIMD.Uint8x16(";
s+=%Uint8x16ExtractLane(r,0);
for(var t=1;t<16;t++){
s+=", "+%Uint8x16ExtractLane(r,t);
}
return s+")";
}
function Uint8x16ToLocaleString(){
var r=%_ValueOf(this);
if(typeof(r)!=='uint8x16'){
throw d(43,
"Uint8x16.prototype.toLocaleString",this);
}
var s="SIMD.Uint8x16(";
s+=%Uint8x16ExtractLane(r,0).toLocaleString();
for(var t=1;t<16;t++){
s+=", "+%Uint8x16ExtractLane(r,t).toLocaleString();
}
return s+")";
}
function Uint8x16ValueOf(){
var r=%_ValueOf(this);
if(typeof(r)!=='uint8x16'){
throw d(43,
"Uint8x16.prototype.valueOf",this);
}
return r;
}
function Uint8x16ExtractLaneJS(u,v){
return %Uint8x16ExtractLane(u,v);
}


function Bool32x4CheckJS(q){
return %Bool32x4Check(q);
}
function Bool32x4ToString(){
var r=%_ValueOf(this);
if(typeof(r)!=='bool32x4'){
throw d(43,
"Bool32x4.prototype.toString",this);
}
var s="SIMD.Bool32x4(";
s+=%Bool32x4ExtractLane(r,0);
for(var t=1;t<4;t++){
s+=", "+%Bool32x4ExtractLane(r,t);
}
return s+")";
}
function Bool32x4ToLocaleString(){
var r=%_ValueOf(this);
if(typeof(r)!=='bool32x4'){
throw d(43,
"Bool32x4.prototype.toLocaleString",this);
}
var s="SIMD.Bool32x4(";
s+=%Bool32x4ExtractLane(r,0).toLocaleString();
for(var t=1;t<4;t++){
s+=", "+%Bool32x4ExtractLane(r,t).toLocaleString();
}
return s+")";
}
function Bool32x4ValueOf(){
var r=%_ValueOf(this);
if(typeof(r)!=='bool32x4'){
throw d(43,
"Bool32x4.prototype.valueOf",this);
}
return r;
}
function Bool32x4ExtractLaneJS(u,v){
return %Bool32x4ExtractLane(u,v);
}

function Bool16x8CheckJS(q){
return %Bool16x8Check(q);
}
function Bool16x8ToString(){
var r=%_ValueOf(this);
if(typeof(r)!=='bool16x8'){
throw d(43,
"Bool16x8.prototype.toString",this);
}
var s="SIMD.Bool16x8(";
s+=%Bool16x8ExtractLane(r,0);
for(var t=1;t<8;t++){
s+=", "+%Bool16x8ExtractLane(r,t);
}
return s+")";
}
function Bool16x8ToLocaleString(){
var r=%_ValueOf(this);
if(typeof(r)!=='bool16x8'){
throw d(43,
"Bool16x8.prototype.toLocaleString",this);
}
var s="SIMD.Bool16x8(";
s+=%Bool16x8ExtractLane(r,0).toLocaleString();
for(var t=1;t<8;t++){
s+=", "+%Bool16x8ExtractLane(r,t).toLocaleString();
}
return s+")";
}
function Bool16x8ValueOf(){
var r=%_ValueOf(this);
if(typeof(r)!=='bool16x8'){
throw d(43,
"Bool16x8.prototype.valueOf",this);
}
return r;
}
function Bool16x8ExtractLaneJS(u,v){
return %Bool16x8ExtractLane(u,v);
}

function Bool8x16CheckJS(q){
return %Bool8x16Check(q);
}
function Bool8x16ToString(){
var r=%_ValueOf(this);
if(typeof(r)!=='bool8x16'){
throw d(43,
"Bool8x16.prototype.toString",this);
}
var s="SIMD.Bool8x16(";
s+=%Bool8x16ExtractLane(r,0);
for(var t=1;t<16;t++){
s+=", "+%Bool8x16ExtractLane(r,t);
}
return s+")";
}
function Bool8x16ToLocaleString(){
var r=%_ValueOf(this);
if(typeof(r)!=='bool8x16'){
throw d(43,
"Bool8x16.prototype.toLocaleString",this);
}
var s="SIMD.Bool8x16(";
s+=%Bool8x16ExtractLane(r,0).toLocaleString();
for(var t=1;t<16;t++){
s+=", "+%Bool8x16ExtractLane(r,t).toLocaleString();
}
return s+")";
}
function Bool8x16ValueOf(){
var r=%_ValueOf(this);
if(typeof(r)!=='bool8x16'){
throw d(43,
"Bool8x16.prototype.valueOf",this);
}
return r;
}
function Bool8x16ExtractLaneJS(u,v){
return %Bool8x16ExtractLane(u,v);
}



function Int32x4ShiftLeftByScalarJS(u,w){
return %Int32x4ShiftLeftByScalar(u,w);
}
function Int32x4ShiftRightByScalarJS(u,w){
return %Int32x4ShiftRightByScalar(u,w);
}

function Int16x8ShiftLeftByScalarJS(u,w){
return %Int16x8ShiftLeftByScalar(u,w);
}
function Int16x8ShiftRightByScalarJS(u,w){
return %Int16x8ShiftRightByScalar(u,w);
}

function Int8x16ShiftLeftByScalarJS(u,w){
return %Int8x16ShiftLeftByScalar(u,w);
}
function Int8x16ShiftRightByScalarJS(u,w){
return %Int8x16ShiftRightByScalar(u,w);
}


function Uint32x4ShiftLeftByScalarJS(u,w){
return %Uint32x4ShiftLeftByScalar(u,w);
}
function Uint32x4ShiftRightByScalarJS(u,w){
return %Uint32x4ShiftRightByScalar(u,w);
}

function Uint16x8ShiftLeftByScalarJS(u,w){
return %Uint16x8ShiftLeftByScalar(u,w);
}
function Uint16x8ShiftRightByScalarJS(u,w){
return %Uint16x8ShiftRightByScalar(u,w);
}

function Uint8x16ShiftLeftByScalarJS(u,w){
return %Uint8x16ShiftLeftByScalar(u,w);
}
function Uint8x16ShiftRightByScalarJS(u,w){
return %Uint8x16ShiftRightByScalar(u,w);
}


function Int16x8AddSaturateJS(q,x){
return %Int16x8AddSaturate(q,x);
}
function Int16x8SubSaturateJS(q,x){
return %Int16x8SubSaturate(q,x);
}

function Int8x16AddSaturateJS(q,x){
return %Int8x16AddSaturate(q,x);
}
function Int8x16SubSaturateJS(q,x){
return %Int8x16SubSaturate(q,x);
}

function Uint8x16AddSaturateJS(q,x){
return %Uint8x16AddSaturate(q,x);
}
function Uint8x16SubSaturateJS(q,x){
return %Uint8x16SubSaturate(q,x);
}

function Uint16x8AddSaturateJS(q,x){
return %Uint16x8AddSaturate(q,x);
}
function Uint16x8SubSaturateJS(q,x){
return %Uint16x8SubSaturate(q,x);
}


function Float32x4NegJS(q){
return %Float32x4Neg(q);
}


function Int32x4NegJS(q){
return %Int32x4Neg(q);
}

function Int16x8NegJS(q){
return %Int16x8Neg(q);
}

function Int8x16NegJS(q){
return %Int8x16Neg(q);
}


function Bool32x4ReplaceLaneJS(u,v,r){
return %Bool32x4ReplaceLane(u,v,r);
}
function Bool32x4AnyTrueJS(y){
return %Bool32x4AnyTrue(y);
}
function Bool32x4AllTrueJS(y){
return %Bool32x4AllTrue(y);
}

function Bool16x8ReplaceLaneJS(u,v,r){
return %Bool16x8ReplaceLane(u,v,r);
}
function Bool16x8AnyTrueJS(y){
return %Bool16x8AnyTrue(y);
}
function Bool16x8AllTrueJS(y){
return %Bool16x8AllTrue(y);
}

function Bool8x16ReplaceLaneJS(u,v,r){
return %Bool8x16ReplaceLane(u,v,r);
}
function Bool8x16AnyTrueJS(y){
return %Bool8x16AnyTrue(y);
}
function Bool8x16AllTrueJS(y){
return %Bool8x16AllTrue(y);
}


function Float32x4ReplaceLaneJS(u,v,r){
return %Float32x4ReplaceLane(u,v,(%_ToNumber(r)));
}
function Float32x4SelectJS(z,q,x){
return %Float32x4Select(z,q,x);
}
function Float32x4AddJS(q,x){
return %Float32x4Add(q,x);
}
function Float32x4SubJS(q,x){
return %Float32x4Sub(q,x);
}
function Float32x4MulJS(q,x){
return %Float32x4Mul(q,x);
}
function Float32x4MinJS(q,x){
return %Float32x4Min(q,x);
}
function Float32x4MaxJS(q,x){
return %Float32x4Max(q,x);
}
function Float32x4EqualJS(q,x){
return %Float32x4Equal(q,x);
}
function Float32x4NotEqualJS(q,x){
return %Float32x4NotEqual(q,x);
}
function Float32x4LessThanJS(q,x){
return %Float32x4LessThan(q,x);
}
function Float32x4LessThanOrEqualJS(q,x){
return %Float32x4LessThanOrEqual(q,x);
}
function Float32x4GreaterThanJS(q,x){
return %Float32x4GreaterThan(q,x);
}
function Float32x4GreaterThanOrEqualJS(q,x){
return %Float32x4GreaterThanOrEqual(q,x);
}
function Float32x4LoadJS(A,B){
return %Float32x4Load(A,B);
}
function Float32x4StoreJS(A,B,q){
return %Float32x4Store(A,B,q);
}


function Int32x4ReplaceLaneJS(u,v,r){
return %Int32x4ReplaceLane(u,v,(%_ToNumber(r)));
}
function Int32x4SelectJS(z,q,x){
return %Int32x4Select(z,q,x);
}
function Int32x4AddJS(q,x){
return %Int32x4Add(q,x);
}
function Int32x4SubJS(q,x){
return %Int32x4Sub(q,x);
}
function Int32x4MulJS(q,x){
return %Int32x4Mul(q,x);
}
function Int32x4MinJS(q,x){
return %Int32x4Min(q,x);
}
function Int32x4MaxJS(q,x){
return %Int32x4Max(q,x);
}
function Int32x4EqualJS(q,x){
return %Int32x4Equal(q,x);
}
function Int32x4NotEqualJS(q,x){
return %Int32x4NotEqual(q,x);
}
function Int32x4LessThanJS(q,x){
return %Int32x4LessThan(q,x);
}
function Int32x4LessThanOrEqualJS(q,x){
return %Int32x4LessThanOrEqual(q,x);
}
function Int32x4GreaterThanJS(q,x){
return %Int32x4GreaterThan(q,x);
}
function Int32x4GreaterThanOrEqualJS(q,x){
return %Int32x4GreaterThanOrEqual(q,x);
}
function Int32x4LoadJS(A,B){
return %Int32x4Load(A,B);
}
function Int32x4StoreJS(A,B,q){
return %Int32x4Store(A,B,q);
}

function Int16x8ReplaceLaneJS(u,v,r){
return %Int16x8ReplaceLane(u,v,(%_ToNumber(r)));
}
function Int16x8SelectJS(z,q,x){
return %Int16x8Select(z,q,x);
}
function Int16x8AddJS(q,x){
return %Int16x8Add(q,x);
}
function Int16x8SubJS(q,x){
return %Int16x8Sub(q,x);
}
function Int16x8MulJS(q,x){
return %Int16x8Mul(q,x);
}
function Int16x8MinJS(q,x){
return %Int16x8Min(q,x);
}
function Int16x8MaxJS(q,x){
return %Int16x8Max(q,x);
}
function Int16x8EqualJS(q,x){
return %Int16x8Equal(q,x);
}
function Int16x8NotEqualJS(q,x){
return %Int16x8NotEqual(q,x);
}
function Int16x8LessThanJS(q,x){
return %Int16x8LessThan(q,x);
}
function Int16x8LessThanOrEqualJS(q,x){
return %Int16x8LessThanOrEqual(q,x);
}
function Int16x8GreaterThanJS(q,x){
return %Int16x8GreaterThan(q,x);
}
function Int16x8GreaterThanOrEqualJS(q,x){
return %Int16x8GreaterThanOrEqual(q,x);
}
function Int16x8LoadJS(A,B){
return %Int16x8Load(A,B);
}
function Int16x8StoreJS(A,B,q){
return %Int16x8Store(A,B,q);
}

function Int8x16ReplaceLaneJS(u,v,r){
return %Int8x16ReplaceLane(u,v,(%_ToNumber(r)));
}
function Int8x16SelectJS(z,q,x){
return %Int8x16Select(z,q,x);
}
function Int8x16AddJS(q,x){
return %Int8x16Add(q,x);
}
function Int8x16SubJS(q,x){
return %Int8x16Sub(q,x);
}
function Int8x16MulJS(q,x){
return %Int8x16Mul(q,x);
}
function Int8x16MinJS(q,x){
return %Int8x16Min(q,x);
}
function Int8x16MaxJS(q,x){
return %Int8x16Max(q,x);
}
function Int8x16EqualJS(q,x){
return %Int8x16Equal(q,x);
}
function Int8x16NotEqualJS(q,x){
return %Int8x16NotEqual(q,x);
}
function Int8x16LessThanJS(q,x){
return %Int8x16LessThan(q,x);
}
function Int8x16LessThanOrEqualJS(q,x){
return %Int8x16LessThanOrEqual(q,x);
}
function Int8x16GreaterThanJS(q,x){
return %Int8x16GreaterThan(q,x);
}
function Int8x16GreaterThanOrEqualJS(q,x){
return %Int8x16GreaterThanOrEqual(q,x);
}
function Int8x16LoadJS(A,B){
return %Int8x16Load(A,B);
}
function Int8x16StoreJS(A,B,q){
return %Int8x16Store(A,B,q);
}


function Uint32x4ReplaceLaneJS(u,v,r){
return %Uint32x4ReplaceLane(u,v,(%_ToNumber(r)));
}
function Uint32x4SelectJS(z,q,x){
return %Uint32x4Select(z,q,x);
}
function Uint32x4AddJS(q,x){
return %Uint32x4Add(q,x);
}
function Uint32x4SubJS(q,x){
return %Uint32x4Sub(q,x);
}
function Uint32x4MulJS(q,x){
return %Uint32x4Mul(q,x);
}
function Uint32x4MinJS(q,x){
return %Uint32x4Min(q,x);
}
function Uint32x4MaxJS(q,x){
return %Uint32x4Max(q,x);
}
function Uint32x4EqualJS(q,x){
return %Uint32x4Equal(q,x);
}
function Uint32x4NotEqualJS(q,x){
return %Uint32x4NotEqual(q,x);
}
function Uint32x4LessThanJS(q,x){
return %Uint32x4LessThan(q,x);
}
function Uint32x4LessThanOrEqualJS(q,x){
return %Uint32x4LessThanOrEqual(q,x);
}
function Uint32x4GreaterThanJS(q,x){
return %Uint32x4GreaterThan(q,x);
}
function Uint32x4GreaterThanOrEqualJS(q,x){
return %Uint32x4GreaterThanOrEqual(q,x);
}
function Uint32x4LoadJS(A,B){
return %Uint32x4Load(A,B);
}
function Uint32x4StoreJS(A,B,q){
return %Uint32x4Store(A,B,q);
}

function Uint16x8ReplaceLaneJS(u,v,r){
return %Uint16x8ReplaceLane(u,v,(%_ToNumber(r)));
}
function Uint16x8SelectJS(z,q,x){
return %Uint16x8Select(z,q,x);
}
function Uint16x8AddJS(q,x){
return %Uint16x8Add(q,x);
}
function Uint16x8SubJS(q,x){
return %Uint16x8Sub(q,x);
}
function Uint16x8MulJS(q,x){
return %Uint16x8Mul(q,x);
}
function Uint16x8MinJS(q,x){
return %Uint16x8Min(q,x);
}
function Uint16x8MaxJS(q,x){
return %Uint16x8Max(q,x);
}
function Uint16x8EqualJS(q,x){
return %Uint16x8Equal(q,x);
}
function Uint16x8NotEqualJS(q,x){
return %Uint16x8NotEqual(q,x);
}
function Uint16x8LessThanJS(q,x){
return %Uint16x8LessThan(q,x);
}
function Uint16x8LessThanOrEqualJS(q,x){
return %Uint16x8LessThanOrEqual(q,x);
}
function Uint16x8GreaterThanJS(q,x){
return %Uint16x8GreaterThan(q,x);
}
function Uint16x8GreaterThanOrEqualJS(q,x){
return %Uint16x8GreaterThanOrEqual(q,x);
}
function Uint16x8LoadJS(A,B){
return %Uint16x8Load(A,B);
}
function Uint16x8StoreJS(A,B,q){
return %Uint16x8Store(A,B,q);
}

function Uint8x16ReplaceLaneJS(u,v,r){
return %Uint8x16ReplaceLane(u,v,(%_ToNumber(r)));
}
function Uint8x16SelectJS(z,q,x){
return %Uint8x16Select(z,q,x);
}
function Uint8x16AddJS(q,x){
return %Uint8x16Add(q,x);
}
function Uint8x16SubJS(q,x){
return %Uint8x16Sub(q,x);
}
function Uint8x16MulJS(q,x){
return %Uint8x16Mul(q,x);
}
function Uint8x16MinJS(q,x){
return %Uint8x16Min(q,x);
}
function Uint8x16MaxJS(q,x){
return %Uint8x16Max(q,x);
}
function Uint8x16EqualJS(q,x){
return %Uint8x16Equal(q,x);
}
function Uint8x16NotEqualJS(q,x){
return %Uint8x16NotEqual(q,x);
}
function Uint8x16LessThanJS(q,x){
return %Uint8x16LessThan(q,x);
}
function Uint8x16LessThanOrEqualJS(q,x){
return %Uint8x16LessThanOrEqual(q,x);
}
function Uint8x16GreaterThanJS(q,x){
return %Uint8x16GreaterThan(q,x);
}
function Uint8x16GreaterThanOrEqualJS(q,x){
return %Uint8x16GreaterThanOrEqual(q,x);
}
function Uint8x16LoadJS(A,B){
return %Uint8x16Load(A,B);
}
function Uint8x16StoreJS(A,B,q){
return %Uint8x16Store(A,B,q);
}



function Int32x4AndJS(q,x){
return %Int32x4And(q,x);
}
function Int32x4OrJS(q,x){
return %Int32x4Or(q,x);
}
function Int32x4XorJS(q,x){
return %Int32x4Xor(q,x);
}
function Int32x4NotJS(q){
return %Int32x4Not(q);
}

function Int16x8AndJS(q,x){
return %Int16x8And(q,x);
}
function Int16x8OrJS(q,x){
return %Int16x8Or(q,x);
}
function Int16x8XorJS(q,x){
return %Int16x8Xor(q,x);
}
function Int16x8NotJS(q){
return %Int16x8Not(q);
}

function Int8x16AndJS(q,x){
return %Int8x16And(q,x);
}
function Int8x16OrJS(q,x){
return %Int8x16Or(q,x);
}
function Int8x16XorJS(q,x){
return %Int8x16Xor(q,x);
}
function Int8x16NotJS(q){
return %Int8x16Not(q);
}


function Uint32x4AndJS(q,x){
return %Uint32x4And(q,x);
}
function Uint32x4OrJS(q,x){
return %Uint32x4Or(q,x);
}
function Uint32x4XorJS(q,x){
return %Uint32x4Xor(q,x);
}
function Uint32x4NotJS(q){
return %Uint32x4Not(q);
}

function Uint16x8AndJS(q,x){
return %Uint16x8And(q,x);
}
function Uint16x8OrJS(q,x){
return %Uint16x8Or(q,x);
}
function Uint16x8XorJS(q,x){
return %Uint16x8Xor(q,x);
}
function Uint16x8NotJS(q){
return %Uint16x8Not(q);
}

function Uint8x16AndJS(q,x){
return %Uint8x16And(q,x);
}
function Uint8x16OrJS(q,x){
return %Uint8x16Or(q,x);
}
function Uint8x16XorJS(q,x){
return %Uint8x16Xor(q,x);
}
function Uint8x16NotJS(q){
return %Uint8x16Not(q);
}


function Bool32x4AndJS(q,x){
return %Bool32x4And(q,x);
}
function Bool32x4OrJS(q,x){
return %Bool32x4Or(q,x);
}
function Bool32x4XorJS(q,x){
return %Bool32x4Xor(q,x);
}
function Bool32x4NotJS(q){
return %Bool32x4Not(q);
}

function Bool16x8AndJS(q,x){
return %Bool16x8And(q,x);
}
function Bool16x8OrJS(q,x){
return %Bool16x8Or(q,x);
}
function Bool16x8XorJS(q,x){
return %Bool16x8Xor(q,x);
}
function Bool16x8NotJS(q){
return %Bool16x8Not(q);
}

function Bool8x16AndJS(q,x){
return %Bool8x16And(q,x);
}
function Bool8x16OrJS(q,x){
return %Bool8x16Or(q,x);
}
function Bool8x16XorJS(q,x){
return %Bool8x16Xor(q,x);
}
function Bool8x16NotJS(q){
return %Bool8x16Not(q);
}



function Float32x4FromInt32x4JS(q){
return %Float32x4FromInt32x4(q);
}

function Float32x4FromUint32x4JS(q){
return %Float32x4FromUint32x4(q);
}

function Int32x4FromFloat32x4JS(q){
return %Int32x4FromFloat32x4(q);
}

function Int32x4FromUint32x4JS(q){
return %Int32x4FromUint32x4(q);
}

function Uint32x4FromFloat32x4JS(q){
return %Uint32x4FromFloat32x4(q);
}

function Uint32x4FromInt32x4JS(q){
return %Uint32x4FromInt32x4(q);
}

function Int16x8FromUint16x8JS(q){
return %Int16x8FromUint16x8(q);
}

function Uint16x8FromInt16x8JS(q){
return %Uint16x8FromInt16x8(q);
}

function Int8x16FromUint8x16JS(q){
return %Int8x16FromUint8x16(q);
}

function Uint8x16FromInt8x16JS(q){
return %Uint8x16FromInt8x16(q);
}


function Float32x4FromInt32x4BitsJS(q){
return %Float32x4FromInt32x4Bits(q);
}

function Float32x4FromUint32x4BitsJS(q){
return %Float32x4FromUint32x4Bits(q);
}

function Float32x4FromInt16x8BitsJS(q){
return %Float32x4FromInt16x8Bits(q);
}

function Float32x4FromUint16x8BitsJS(q){
return %Float32x4FromUint16x8Bits(q);
}

function Float32x4FromInt8x16BitsJS(q){
return %Float32x4FromInt8x16Bits(q);
}

function Float32x4FromUint8x16BitsJS(q){
return %Float32x4FromUint8x16Bits(q);
}

function Int32x4FromFloat32x4BitsJS(q){
return %Int32x4FromFloat32x4Bits(q);
}

function Int32x4FromUint32x4BitsJS(q){
return %Int32x4FromUint32x4Bits(q);
}

function Int32x4FromInt16x8BitsJS(q){
return %Int32x4FromInt16x8Bits(q);
}

function Int32x4FromUint16x8BitsJS(q){
return %Int32x4FromUint16x8Bits(q);
}

function Int32x4FromInt8x16BitsJS(q){
return %Int32x4FromInt8x16Bits(q);
}

function Int32x4FromUint8x16BitsJS(q){
return %Int32x4FromUint8x16Bits(q);
}

function Uint32x4FromFloat32x4BitsJS(q){
return %Uint32x4FromFloat32x4Bits(q);
}

function Uint32x4FromInt32x4BitsJS(q){
return %Uint32x4FromInt32x4Bits(q);
}

function Uint32x4FromInt16x8BitsJS(q){
return %Uint32x4FromInt16x8Bits(q);
}

function Uint32x4FromUint16x8BitsJS(q){
return %Uint32x4FromUint16x8Bits(q);
}

function Uint32x4FromInt8x16BitsJS(q){
return %Uint32x4FromInt8x16Bits(q);
}

function Uint32x4FromUint8x16BitsJS(q){
return %Uint32x4FromUint8x16Bits(q);
}

function Int16x8FromFloat32x4BitsJS(q){
return %Int16x8FromFloat32x4Bits(q);
}

function Int16x8FromInt32x4BitsJS(q){
return %Int16x8FromInt32x4Bits(q);
}

function Int16x8FromUint32x4BitsJS(q){
return %Int16x8FromUint32x4Bits(q);
}

function Int16x8FromUint16x8BitsJS(q){
return %Int16x8FromUint16x8Bits(q);
}

function Int16x8FromInt8x16BitsJS(q){
return %Int16x8FromInt8x16Bits(q);
}

function Int16x8FromUint8x16BitsJS(q){
return %Int16x8FromUint8x16Bits(q);
}

function Uint16x8FromFloat32x4BitsJS(q){
return %Uint16x8FromFloat32x4Bits(q);
}

function Uint16x8FromInt32x4BitsJS(q){
return %Uint16x8FromInt32x4Bits(q);
}

function Uint16x8FromUint32x4BitsJS(q){
return %Uint16x8FromUint32x4Bits(q);
}

function Uint16x8FromInt16x8BitsJS(q){
return %Uint16x8FromInt16x8Bits(q);
}

function Uint16x8FromInt8x16BitsJS(q){
return %Uint16x8FromInt8x16Bits(q);
}

function Uint16x8FromUint8x16BitsJS(q){
return %Uint16x8FromUint8x16Bits(q);
}

function Int8x16FromFloat32x4BitsJS(q){
return %Int8x16FromFloat32x4Bits(q);
}

function Int8x16FromInt32x4BitsJS(q){
return %Int8x16FromInt32x4Bits(q);
}

function Int8x16FromUint32x4BitsJS(q){
return %Int8x16FromUint32x4Bits(q);
}

function Int8x16FromInt16x8BitsJS(q){
return %Int8x16FromInt16x8Bits(q);
}

function Int8x16FromUint16x8BitsJS(q){
return %Int8x16FromUint16x8Bits(q);
}

function Int8x16FromUint8x16BitsJS(q){
return %Int8x16FromUint8x16Bits(q);
}

function Uint8x16FromFloat32x4BitsJS(q){
return %Uint8x16FromFloat32x4Bits(q);
}

function Uint8x16FromInt32x4BitsJS(q){
return %Uint8x16FromInt32x4Bits(q);
}

function Uint8x16FromUint32x4BitsJS(q){
return %Uint8x16FromUint32x4Bits(q);
}

function Uint8x16FromInt16x8BitsJS(q){
return %Uint8x16FromInt16x8Bits(q);
}

function Uint8x16FromUint16x8BitsJS(q){
return %Uint8x16FromUint16x8Bits(q);
}

function Uint8x16FromInt8x16BitsJS(q){
return %Uint8x16FromInt8x16Bits(q);
}


function Float32x4Load1JS(A,B){
return %Float32x4Load1(A,B);
}
function Float32x4Store1JS(A,B,q){
return %Float32x4Store1(A,B,q);
}

function Float32x4Load2JS(A,B){
return %Float32x4Load2(A,B);
}
function Float32x4Store2JS(A,B,q){
return %Float32x4Store2(A,B,q);
}

function Float32x4Load3JS(A,B){
return %Float32x4Load3(A,B);
}
function Float32x4Store3JS(A,B,q){
return %Float32x4Store3(A,B,q);
}

function Int32x4Load1JS(A,B){
return %Int32x4Load1(A,B);
}
function Int32x4Store1JS(A,B,q){
return %Int32x4Store1(A,B,q);
}

function Int32x4Load2JS(A,B){
return %Int32x4Load2(A,B);
}
function Int32x4Store2JS(A,B,q){
return %Int32x4Store2(A,B,q);
}

function Int32x4Load3JS(A,B){
return %Int32x4Load3(A,B);
}
function Int32x4Store3JS(A,B,q){
return %Int32x4Store3(A,B,q);
}

function Uint32x4Load1JS(A,B){
return %Uint32x4Load1(A,B);
}
function Uint32x4Store1JS(A,B,q){
return %Uint32x4Store1(A,B,q);
}

function Uint32x4Load2JS(A,B){
return %Uint32x4Load2(A,B);
}
function Uint32x4Store2JS(A,B,q){
return %Uint32x4Store2(A,B,q);
}

function Uint32x4Load3JS(A,B){
return %Uint32x4Load3(A,B);
}
function Uint32x4Store3JS(A,B,q){
return %Uint32x4Store3(A,B,q);
}


function Float32x4Splat(y){
return %CreateFloat32x4(y,y,y,y);
}
function Float32x4SwizzleJS(q,C,D,E,F){
return %Float32x4Swizzle(q,C,D,E,F);
}
function Float32x4ShuffleJS(q,x,C,D,E,F){
return %Float32x4Shuffle(q,x,C,D,E,F);
}

function Int32x4Splat(y){
return %CreateInt32x4(y,y,y,y);
}
function Int32x4SwizzleJS(q,C,D,E,F){
return %Int32x4Swizzle(q,C,D,E,F);
}
function Int32x4ShuffleJS(q,x,C,D,E,F){
return %Int32x4Shuffle(q,x,C,D,E,F);
}

function Uint32x4Splat(y){
return %CreateUint32x4(y,y,y,y);
}
function Uint32x4SwizzleJS(q,C,D,E,F){
return %Uint32x4Swizzle(q,C,D,E,F);
}
function Uint32x4ShuffleJS(q,x,C,D,E,F){
return %Uint32x4Shuffle(q,x,C,D,E,F);
}

function Bool32x4Splat(y){
return %CreateBool32x4(y,y,y,y);
}
function Bool32x4SwizzleJS(q,C,D,E,F){
return %Bool32x4Swizzle(q,C,D,E,F);
}
function Bool32x4ShuffleJS(q,x,C,D,E,F){
return %Bool32x4Shuffle(q,x,C,D,E,F);
}


function Int16x8Splat(y){
return %CreateInt16x8(y,y,y,y,y,y,y,y);
}
function Int16x8SwizzleJS(q,C,D,E,F,G,H,I,J){
return %Int16x8Swizzle(q,C,D,E,F,G,H,I,J);
}
function Int16x8ShuffleJS(q,x,C,D,E,F,G,H,I,J){
return %Int16x8Shuffle(q,x,C,D,E,F,G,H,I,J);
}

function Uint16x8Splat(y){
return %CreateUint16x8(y,y,y,y,y,y,y,y);
}
function Uint16x8SwizzleJS(q,C,D,E,F,G,H,I,J){
return %Uint16x8Swizzle(q,C,D,E,F,G,H,I,J);
}
function Uint16x8ShuffleJS(q,x,C,D,E,F,G,H,I,J){
return %Uint16x8Shuffle(q,x,C,D,E,F,G,H,I,J);
}

function Bool16x8Splat(y){
return %CreateBool16x8(y,y,y,y,y,y,y,y);
}
function Bool16x8SwizzleJS(q,C,D,E,F,G,H,I,J){
return %Bool16x8Swizzle(q,C,D,E,F,G,H,I,J);
}
function Bool16x8ShuffleJS(q,x,C,D,E,F,G,H,I,J){
return %Bool16x8Shuffle(q,x,C,D,E,F,G,H,I,J);
}


function Int8x16Splat(y){
return %CreateInt8x16(y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y);
}
function Int8x16SwizzleJS(q,C,D,E,F,G,H,I,J,c8,c9,c10,c11,
c12,c13,c14,c15){
return %Int8x16Swizzle(q,C,D,E,F,G,H,I,J,c8,c9,c10,c11,
c12,c13,c14,c15);
}
function Int8x16ShuffleJS(q,x,C,D,E,F,G,H,I,J,c8,c9,c10,
c11,c12,c13,c14,c15){
return %Int8x16Shuffle(q,x,C,D,E,F,G,H,I,J,c8,c9,c10,
c11,c12,c13,c14,c15);
}

function Uint8x16Splat(y){
return %CreateUint8x16(y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y);
}
function Uint8x16SwizzleJS(q,C,D,E,F,G,H,I,J,c8,c9,c10,c11,
c12,c13,c14,c15){
return %Uint8x16Swizzle(q,C,D,E,F,G,H,I,J,c8,c9,c10,c11,
c12,c13,c14,c15);
}
function Uint8x16ShuffleJS(q,x,C,D,E,F,G,H,I,J,c8,c9,c10,
c11,c12,c13,c14,c15){
return %Uint8x16Shuffle(q,x,C,D,E,F,G,H,I,J,c8,c9,c10,
c11,c12,c13,c14,c15);
}

function Bool8x16Splat(y){
return %CreateBool8x16(y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y);
}
function Bool8x16SwizzleJS(q,C,D,E,F,G,H,I,J,c8,c9,c10,c11,
c12,c13,c14,c15){
return %Bool8x16Swizzle(q,C,D,E,F,G,H,I,J,c8,c9,c10,c11,
c12,c13,c14,c15);
}
function Bool8x16ShuffleJS(q,x,C,D,E,F,G,H,I,J,c8,c9,c10,
c11,c12,c13,c14,c15){
return %Bool8x16Shuffle(q,x,C,D,E,F,G,H,I,J,c8,c9,c10,
c11,c12,c13,c14,c15);
}


function Float32x4Constructor(C,D,E,F){
if(!(new.target===(void 0))){
throw d(65,"Float32x4");
}
return %CreateFloat32x4((%_ToNumber(C)),(%_ToNumber(D)),
(%_ToNumber(E)),(%_ToNumber(F)));
}
function Int32x4Constructor(C,D,E,F){
if(!(new.target===(void 0))){
throw d(65,"Int32x4");
}
return %CreateInt32x4((%_ToNumber(C)),(%_ToNumber(D)),
(%_ToNumber(E)),(%_ToNumber(F)));
}
function Uint32x4Constructor(C,D,E,F){
if(!(new.target===(void 0))){
throw d(65,"Uint32x4");
}
return %CreateUint32x4((%_ToNumber(C)),(%_ToNumber(D)),
(%_ToNumber(E)),(%_ToNumber(F)));
}
function Bool32x4Constructor(C,D,E,F){
if(!(new.target===(void 0))){
throw d(65,"Bool32x4");
}
return %CreateBool32x4(C,D,E,F);
}
function Int16x8Constructor(C,D,E,F,G,H,I,J){
if(!(new.target===(void 0))){
throw d(65,"Int16x8");
}
return %CreateInt16x8((%_ToNumber(C)),(%_ToNumber(D)),
(%_ToNumber(E)),(%_ToNumber(F)),
(%_ToNumber(G)),(%_ToNumber(H)),
(%_ToNumber(I)),(%_ToNumber(J)));
}
function Uint16x8Constructor(C,D,E,F,G,H,I,J){
if(!(new.target===(void 0))){
throw d(65,"Uint16x8");
}
return %CreateUint16x8((%_ToNumber(C)),(%_ToNumber(D)),
(%_ToNumber(E)),(%_ToNumber(F)),
(%_ToNumber(G)),(%_ToNumber(H)),
(%_ToNumber(I)),(%_ToNumber(J)));
}
function Bool16x8Constructor(C,D,E,F,G,H,I,J){
if(!(new.target===(void 0))){
throw d(65,"Bool16x8");
}
return %CreateBool16x8(C,D,E,F,G,H,I,J);
}
function Int8x16Constructor(C,D,E,F,G,H,I,J,c8,c9,c10,c11,
c12,c13,c14,c15){
if(!(new.target===(void 0))){
throw d(65,"Int8x16");
}
return %CreateInt8x16((%_ToNumber(C)),(%_ToNumber(D)),
(%_ToNumber(E)),(%_ToNumber(F)),
(%_ToNumber(G)),(%_ToNumber(H)),
(%_ToNumber(I)),(%_ToNumber(J)),
(%_ToNumber(c8)),(%_ToNumber(c9)),
(%_ToNumber(c10)),(%_ToNumber(c11)),
(%_ToNumber(c12)),(%_ToNumber(c13)),
(%_ToNumber(c14)),(%_ToNumber(c15)));
}
function Uint8x16Constructor(C,D,E,F,G,H,I,J,c8,c9,c10,c11,
c12,c13,c14,c15){
if(!(new.target===(void 0))){
throw d(65,"Uint8x16");
}
return %CreateUint8x16((%_ToNumber(C)),(%_ToNumber(D)),
(%_ToNumber(E)),(%_ToNumber(F)),
(%_ToNumber(G)),(%_ToNumber(H)),
(%_ToNumber(I)),(%_ToNumber(J)),
(%_ToNumber(c8)),(%_ToNumber(c9)),
(%_ToNumber(c10)),(%_ToNumber(c11)),
(%_ToNumber(c12)),(%_ToNumber(c13)),
(%_ToNumber(c14)),(%_ToNumber(c15)));
}
function Bool8x16Constructor(C,D,E,F,G,H,I,J,c8,c9,c10,c11,
c12,c13,c14,c15){
if(!(new.target===(void 0))){
throw d(65,"Bool8x16");
}
return %CreateBool8x16(C,D,E,F,G,H,I,J,c8,c9,c10,c11,c12,
c13,c14,c15);
}
function Float32x4AbsJS(q){
return %Float32x4Abs(q);
}
function Float32x4SqrtJS(q){
return %Float32x4Sqrt(q);
}
function Float32x4RecipApproxJS(q){
return %Float32x4RecipApprox(q);
}
function Float32x4RecipSqrtApproxJS(q){
return %Float32x4RecipSqrtApprox(q);
}
function Float32x4DivJS(q,x){
return %Float32x4Div(q,x);
}
function Float32x4MinNumJS(q,x){
return %Float32x4MinNum(q,x);
}
function Float32x4MaxNumJS(q,x){
return %Float32x4MaxNum(q,x);
}
%AddNamedProperty(c,e,'SIMD',1|2);
%SetCode(g,Float32x4Constructor);
%FunctionSetPrototype(g,{});
%AddNamedProperty(g.prototype,'constructor',g,
2);
%AddNamedProperty(g.prototype,e,'Float32x4',
2|1);
b.InstallFunctions(g.prototype,2,[
'toLocaleString',Float32x4ToLocaleString,
'toString',Float32x4ToString,
'valueOf',Float32x4ValueOf,
]);


%SetCode(h,Int32x4Constructor);
%FunctionSetPrototype(h,{});
%AddNamedProperty(h.prototype,'constructor',h,
2);
%AddNamedProperty(h.prototype,e,'Int32x4',
2|1);
b.InstallFunctions(h.prototype,2,[
'toLocaleString',Int32x4ToLocaleString,
'toString',Int32x4ToString,
'valueOf',Int32x4ValueOf,
]);

%SetCode(i,Int16x8Constructor);
%FunctionSetPrototype(i,{});
%AddNamedProperty(i.prototype,'constructor',i,
2);
%AddNamedProperty(i.prototype,e,'Int16x8',
2|1);
b.InstallFunctions(i.prototype,2,[
'toLocaleString',Int16x8ToLocaleString,
'toString',Int16x8ToString,
'valueOf',Int16x8ValueOf,
]);

%SetCode(j,Int8x16Constructor);
%FunctionSetPrototype(j,{});
%AddNamedProperty(j.prototype,'constructor',j,
2);
%AddNamedProperty(j.prototype,e,'Int8x16',
2|1);
b.InstallFunctions(j.prototype,2,[
'toLocaleString',Int8x16ToLocaleString,
'toString',Int8x16ToString,
'valueOf',Int8x16ValueOf,
]);


%SetCode(k,Uint32x4Constructor);
%FunctionSetPrototype(k,{});
%AddNamedProperty(k.prototype,'constructor',k,
2);
%AddNamedProperty(k.prototype,e,'Uint32x4',
2|1);
b.InstallFunctions(k.prototype,2,[
'toLocaleString',Uint32x4ToLocaleString,
'toString',Uint32x4ToString,
'valueOf',Uint32x4ValueOf,
]);

%SetCode(l,Uint16x8Constructor);
%FunctionSetPrototype(l,{});
%AddNamedProperty(l.prototype,'constructor',l,
2);
%AddNamedProperty(l.prototype,e,'Uint16x8',
2|1);
b.InstallFunctions(l.prototype,2,[
'toLocaleString',Uint16x8ToLocaleString,
'toString',Uint16x8ToString,
'valueOf',Uint16x8ValueOf,
]);

%SetCode(m,Uint8x16Constructor);
%FunctionSetPrototype(m,{});
%AddNamedProperty(m.prototype,'constructor',m,
2);
%AddNamedProperty(m.prototype,e,'Uint8x16',
2|1);
b.InstallFunctions(m.prototype,2,[
'toLocaleString',Uint8x16ToLocaleString,
'toString',Uint8x16ToString,
'valueOf',Uint8x16ValueOf,
]);


%SetCode(n,Bool32x4Constructor);
%FunctionSetPrototype(n,{});
%AddNamedProperty(n.prototype,'constructor',n,
2);
%AddNamedProperty(n.prototype,e,'Bool32x4',
2|1);
b.InstallFunctions(n.prototype,2,[
'toLocaleString',Bool32x4ToLocaleString,
'toString',Bool32x4ToString,
'valueOf',Bool32x4ValueOf,
]);

%SetCode(o,Bool16x8Constructor);
%FunctionSetPrototype(o,{});
%AddNamedProperty(o.prototype,'constructor',o,
2);
%AddNamedProperty(o.prototype,e,'Bool16x8',
2|1);
b.InstallFunctions(o.prototype,2,[
'toLocaleString',Bool16x8ToLocaleString,
'toString',Bool16x8ToString,
'valueOf',Bool16x8ValueOf,
]);

%SetCode(p,Bool8x16Constructor);
%FunctionSetPrototype(p,{});
%AddNamedProperty(p.prototype,'constructor',p,
2);
%AddNamedProperty(p.prototype,e,'Bool8x16',
2|1);
b.InstallFunctions(p.prototype,2,[
'toLocaleString',Bool8x16ToLocaleString,
'toString',Bool8x16ToString,
'valueOf',Bool8x16ValueOf,
]);



b.InstallFunctions(g,2,[
'splat',Float32x4Splat,
'check',Float32x4CheckJS,
'extractLane',Float32x4ExtractLaneJS,
'replaceLane',Float32x4ReplaceLaneJS,
'neg',Float32x4NegJS,
'abs',Float32x4AbsJS,
'sqrt',Float32x4SqrtJS,
'reciprocalApproximation',Float32x4RecipApproxJS,
'reciprocalSqrtApproximation',Float32x4RecipSqrtApproxJS,
'add',Float32x4AddJS,
'sub',Float32x4SubJS,
'mul',Float32x4MulJS,
'div',Float32x4DivJS,
'min',Float32x4MinJS,
'max',Float32x4MaxJS,
'minNum',Float32x4MinNumJS,
'maxNum',Float32x4MaxNumJS,
'lessThan',Float32x4LessThanJS,
'lessThanOrEqual',Float32x4LessThanOrEqualJS,
'greaterThan',Float32x4GreaterThanJS,
'greaterThanOrEqual',Float32x4GreaterThanOrEqualJS,
'equal',Float32x4EqualJS,
'notEqual',Float32x4NotEqualJS,
'select',Float32x4SelectJS,
'swizzle',Float32x4SwizzleJS,
'shuffle',Float32x4ShuffleJS,
'fromInt32x4',Float32x4FromInt32x4JS,
'fromUint32x4',Float32x4FromUint32x4JS,
'fromInt32x4Bits',Float32x4FromInt32x4BitsJS,
'fromUint32x4Bits',Float32x4FromUint32x4BitsJS,
'fromInt16x8Bits',Float32x4FromInt16x8BitsJS,
'fromUint16x8Bits',Float32x4FromUint16x8BitsJS,
'fromInt8x16Bits',Float32x4FromInt8x16BitsJS,
'fromUint8x16Bits',Float32x4FromUint8x16BitsJS,
'load',Float32x4LoadJS,
'load1',Float32x4Load1JS,
'load2',Float32x4Load2JS,
'load3',Float32x4Load3JS,
'store',Float32x4StoreJS,
'store1',Float32x4Store1JS,
'store2',Float32x4Store2JS,
'store3',Float32x4Store3JS,
]);
b.InstallFunctions(h,2,[
'splat',Int32x4Splat,
'check',Int32x4CheckJS,
'extractLane',Int32x4ExtractLaneJS,
'replaceLane',Int32x4ReplaceLaneJS,
'neg',Int32x4NegJS,
'add',Int32x4AddJS,
'sub',Int32x4SubJS,
'mul',Int32x4MulJS,
'min',Int32x4MinJS,
'max',Int32x4MaxJS,
'and',Int32x4AndJS,
'or',Int32x4OrJS,
'xor',Int32x4XorJS,
'not',Int32x4NotJS,
'shiftLeftByScalar',Int32x4ShiftLeftByScalarJS,
'shiftRightByScalar',Int32x4ShiftRightByScalarJS,
'lessThan',Int32x4LessThanJS,
'lessThanOrEqual',Int32x4LessThanOrEqualJS,
'greaterThan',Int32x4GreaterThanJS,
'greaterThanOrEqual',Int32x4GreaterThanOrEqualJS,
'equal',Int32x4EqualJS,
'notEqual',Int32x4NotEqualJS,
'select',Int32x4SelectJS,
'swizzle',Int32x4SwizzleJS,
'shuffle',Int32x4ShuffleJS,
'fromFloat32x4',Int32x4FromFloat32x4JS,
'fromUint32x4',Int32x4FromUint32x4JS,
'fromFloat32x4Bits',Int32x4FromFloat32x4BitsJS,
'fromUint32x4Bits',Int32x4FromUint32x4BitsJS,
'fromInt16x8Bits',Int32x4FromInt16x8BitsJS,
'fromUint16x8Bits',Int32x4FromUint16x8BitsJS,
'fromInt8x16Bits',Int32x4FromInt8x16BitsJS,
'fromUint8x16Bits',Int32x4FromUint8x16BitsJS,
'load',Int32x4LoadJS,
'load1',Int32x4Load1JS,
'load2',Int32x4Load2JS,
'load3',Int32x4Load3JS,
'store',Int32x4StoreJS,
'store1',Int32x4Store1JS,
'store2',Int32x4Store2JS,
'store3',Int32x4Store3JS,
]);
b.InstallFunctions(k,2,[
'splat',Uint32x4Splat,
'check',Uint32x4CheckJS,
'extractLane',Uint32x4ExtractLaneJS,
'replaceLane',Uint32x4ReplaceLaneJS,
'add',Uint32x4AddJS,
'sub',Uint32x4SubJS,
'mul',Uint32x4MulJS,
'min',Uint32x4MinJS,
'max',Uint32x4MaxJS,
'and',Uint32x4AndJS,
'or',Uint32x4OrJS,
'xor',Uint32x4XorJS,
'not',Uint32x4NotJS,
'shiftLeftByScalar',Uint32x4ShiftLeftByScalarJS,
'shiftRightByScalar',Uint32x4ShiftRightByScalarJS,
'lessThan',Uint32x4LessThanJS,
'lessThanOrEqual',Uint32x4LessThanOrEqualJS,
'greaterThan',Uint32x4GreaterThanJS,
'greaterThanOrEqual',Uint32x4GreaterThanOrEqualJS,
'equal',Uint32x4EqualJS,
'notEqual',Uint32x4NotEqualJS,
'select',Uint32x4SelectJS,
'swizzle',Uint32x4SwizzleJS,
'shuffle',Uint32x4ShuffleJS,
'fromFloat32x4',Uint32x4FromFloat32x4JS,
'fromInt32x4',Uint32x4FromInt32x4JS,
'fromFloat32x4Bits',Uint32x4FromFloat32x4BitsJS,
'fromInt32x4Bits',Uint32x4FromInt32x4BitsJS,
'fromInt16x8Bits',Uint32x4FromInt16x8BitsJS,
'fromUint16x8Bits',Uint32x4FromUint16x8BitsJS,
'fromInt8x16Bits',Uint32x4FromInt8x16BitsJS,
'fromUint8x16Bits',Uint32x4FromUint8x16BitsJS,
'load',Uint32x4LoadJS,
'load1',Uint32x4Load1JS,
'load2',Uint32x4Load2JS,
'load3',Uint32x4Load3JS,
'store',Uint32x4StoreJS,
'store1',Uint32x4Store1JS,
'store2',Uint32x4Store2JS,
'store3',Uint32x4Store3JS,
]);
b.InstallFunctions(n,2,[
'splat',Bool32x4Splat,
'check',Bool32x4CheckJS,
'extractLane',Bool32x4ExtractLaneJS,
'replaceLane',Bool32x4ReplaceLaneJS,
'and',Bool32x4AndJS,
'or',Bool32x4OrJS,
'xor',Bool32x4XorJS,
'not',Bool32x4NotJS,
'anyTrue',Bool32x4AnyTrueJS,
'allTrue',Bool32x4AllTrueJS,
'swizzle',Bool32x4SwizzleJS,
'shuffle',Bool32x4ShuffleJS,
]);
b.InstallFunctions(i,2,[
'splat',Int16x8Splat,
'check',Int16x8CheckJS,
'extractLane',Int16x8ExtractLaneJS,
'replaceLane',Int16x8ReplaceLaneJS,
'neg',Int16x8NegJS,
'add',Int16x8AddJS,
'sub',Int16x8SubJS,
'addSaturate',Int16x8AddSaturateJS,
'subSaturate',Int16x8SubSaturateJS,
'mul',Int16x8MulJS,
'min',Int16x8MinJS,
'max',Int16x8MaxJS,
'and',Int16x8AndJS,
'or',Int16x8OrJS,
'xor',Int16x8XorJS,
'not',Int16x8NotJS,
'shiftLeftByScalar',Int16x8ShiftLeftByScalarJS,
'shiftRightByScalar',Int16x8ShiftRightByScalarJS,
'lessThan',Int16x8LessThanJS,
'lessThanOrEqual',Int16x8LessThanOrEqualJS,
'greaterThan',Int16x8GreaterThanJS,
'greaterThanOrEqual',Int16x8GreaterThanOrEqualJS,
'equal',Int16x8EqualJS,
'notEqual',Int16x8NotEqualJS,
'select',Int16x8SelectJS,
'swizzle',Int16x8SwizzleJS,
'shuffle',Int16x8ShuffleJS,
'fromUint16x8',Int16x8FromUint16x8JS,
'fromFloat32x4Bits',Int16x8FromFloat32x4BitsJS,
'fromInt32x4Bits',Int16x8FromInt32x4BitsJS,
'fromUint32x4Bits',Int16x8FromUint32x4BitsJS,
'fromUint16x8Bits',Int16x8FromUint16x8BitsJS,
'fromInt8x16Bits',Int16x8FromInt8x16BitsJS,
'fromUint8x16Bits',Int16x8FromUint8x16BitsJS,
'load',Int16x8LoadJS,
'store',Int16x8StoreJS,
]);
b.InstallFunctions(l,2,[
'splat',Uint16x8Splat,
'check',Uint16x8CheckJS,
'extractLane',Uint16x8ExtractLaneJS,
'replaceLane',Uint16x8ReplaceLaneJS,
'add',Uint16x8AddJS,
'sub',Uint16x8SubJS,
'addSaturate',Uint16x8AddSaturateJS,
'subSaturate',Uint16x8SubSaturateJS,
'mul',Uint16x8MulJS,
'min',Uint16x8MinJS,
'max',Uint16x8MaxJS,
'and',Uint16x8AndJS,
'or',Uint16x8OrJS,
'xor',Uint16x8XorJS,
'not',Uint16x8NotJS,
'shiftLeftByScalar',Uint16x8ShiftLeftByScalarJS,
'shiftRightByScalar',Uint16x8ShiftRightByScalarJS,
'lessThan',Uint16x8LessThanJS,
'lessThanOrEqual',Uint16x8LessThanOrEqualJS,
'greaterThan',Uint16x8GreaterThanJS,
'greaterThanOrEqual',Uint16x8GreaterThanOrEqualJS,
'equal',Uint16x8EqualJS,
'notEqual',Uint16x8NotEqualJS,
'select',Uint16x8SelectJS,
'swizzle',Uint16x8SwizzleJS,
'shuffle',Uint16x8ShuffleJS,
'fromInt16x8',Uint16x8FromInt16x8JS,
'fromFloat32x4Bits',Uint16x8FromFloat32x4BitsJS,
'fromInt32x4Bits',Uint16x8FromInt32x4BitsJS,
'fromUint32x4Bits',Uint16x8FromUint32x4BitsJS,
'fromInt16x8Bits',Uint16x8FromInt16x8BitsJS,
'fromInt8x16Bits',Uint16x8FromInt8x16BitsJS,
'fromUint8x16Bits',Uint16x8FromUint8x16BitsJS,
'load',Uint16x8LoadJS,
'store',Uint16x8StoreJS,
]);
b.InstallFunctions(o,2,[
'splat',Bool16x8Splat,
'check',Bool16x8CheckJS,
'extractLane',Bool16x8ExtractLaneJS,
'replaceLane',Bool16x8ReplaceLaneJS,
'and',Bool16x8AndJS,
'or',Bool16x8OrJS,
'xor',Bool16x8XorJS,
'not',Bool16x8NotJS,
'anyTrue',Bool16x8AnyTrueJS,
'allTrue',Bool16x8AllTrueJS,
'swizzle',Bool16x8SwizzleJS,
'shuffle',Bool16x8ShuffleJS,
]);
b.InstallFunctions(j,2,[
'splat',Int8x16Splat,
'check',Int8x16CheckJS,
'extractLane',Int8x16ExtractLaneJS,
'replaceLane',Int8x16ReplaceLaneJS,
'neg',Int8x16NegJS,
'add',Int8x16AddJS,
'sub',Int8x16SubJS,
'addSaturate',Int8x16AddSaturateJS,
'subSaturate',Int8x16SubSaturateJS,
'mul',Int8x16MulJS,
'min',Int8x16MinJS,
'max',Int8x16MaxJS,
'and',Int8x16AndJS,
'or',Int8x16OrJS,
'xor',Int8x16XorJS,
'not',Int8x16NotJS,
'shiftLeftByScalar',Int8x16ShiftLeftByScalarJS,
'shiftRightByScalar',Int8x16ShiftRightByScalarJS,
'lessThan',Int8x16LessThanJS,
'lessThanOrEqual',Int8x16LessThanOrEqualJS,
'greaterThan',Int8x16GreaterThanJS,
'greaterThanOrEqual',Int8x16GreaterThanOrEqualJS,
'equal',Int8x16EqualJS,
'notEqual',Int8x16NotEqualJS,
'select',Int8x16SelectJS,
'swizzle',Int8x16SwizzleJS,
'shuffle',Int8x16ShuffleJS,
'fromUint8x16',Int8x16FromUint8x16JS,
'fromFloat32x4Bits',Int8x16FromFloat32x4BitsJS,
'fromInt32x4Bits',Int8x16FromInt32x4BitsJS,
'fromUint32x4Bits',Int8x16FromUint32x4BitsJS,
'fromInt16x8Bits',Int8x16FromInt16x8BitsJS,
'fromUint16x8Bits',Int8x16FromUint16x8BitsJS,
'fromUint8x16Bits',Int8x16FromUint8x16BitsJS,
'load',Int8x16LoadJS,
'store',Int8x16StoreJS,
]);
b.InstallFunctions(m,2,[
'splat',Uint8x16Splat,
'check',Uint8x16CheckJS,
'extractLane',Uint8x16ExtractLaneJS,
'replaceLane',Uint8x16ReplaceLaneJS,
'add',Uint8x16AddJS,
'sub',Uint8x16SubJS,
'addSaturate',Uint8x16AddSaturateJS,
'subSaturate',Uint8x16SubSaturateJS,
'mul',Uint8x16MulJS,
'min',Uint8x16MinJS,
'max',Uint8x16MaxJS,
'and',Uint8x16AndJS,
'or',Uint8x16OrJS,
'xor',Uint8x16XorJS,
'not',Uint8x16NotJS,
'shiftLeftByScalar',Uint8x16ShiftLeftByScalarJS,
'shiftRightByScalar',Uint8x16ShiftRightByScalarJS,
'lessThan',Uint8x16LessThanJS,
'lessThanOrEqual',Uint8x16LessThanOrEqualJS,
'greaterThan',Uint8x16GreaterThanJS,
'greaterThanOrEqual',Uint8x16GreaterThanOrEqualJS,
'equal',Uint8x16EqualJS,
'notEqual',Uint8x16NotEqualJS,
'select',Uint8x16SelectJS,
'swizzle',Uint8x16SwizzleJS,
'shuffle',Uint8x16ShuffleJS,
'fromInt8x16',Uint8x16FromInt8x16JS,
'fromFloat32x4Bits',Uint8x16FromFloat32x4BitsJS,
'fromInt32x4Bits',Uint8x16FromInt32x4BitsJS,
'fromUint32x4Bits',Uint8x16FromUint32x4BitsJS,
'fromInt16x8Bits',Uint8x16FromInt16x8BitsJS,
'fromUint16x8Bits',Uint8x16FromUint16x8BitsJS,
'fromInt8x16Bits',Uint8x16FromInt8x16BitsJS,
'load',Uint8x16LoadJS,
'store',Uint8x16StoreJS,
]);
b.InstallFunctions(p,2,[
'splat',Bool8x16Splat,
'check',Bool8x16CheckJS,
'extractLane',Bool8x16ExtractLaneJS,
'replaceLane',Bool8x16ReplaceLaneJS,
'and',Bool8x16AndJS,
'or',Bool8x16OrJS,
'xor',Bool8x16XorJS,
'not',Bool8x16NotJS,
'anyTrue',Bool8x16AnyTrueJS,
'allTrue',Bool8x16AllTrueJS,
'swizzle',Bool8x16SwizzleJS,
'shuffle',Bool8x16ShuffleJS,
]);
b.Export(function(K){
K.Float32x4ToString=Float32x4ToString;
K.Int32x4ToString=Int32x4ToString;
K.Uint32x4ToString=Uint32x4ToString;
K.Bool32x4ToString=Bool32x4ToString;
K.Int16x8ToString=Int16x8ToString;
K.Uint16x8ToString=Uint16x8ToString;
K.Bool16x8ToString=Bool16x8ToString;
K.Int8x16ToString=Int8x16ToString;
K.Uint8x16ToString=Uint8x16ToString;
K.Bool8x16ToString=Bool8x16ToString;
});
})

Xharmony-string-padding±
(function(a,b){
%CheckIsBootstrapping();
var c=a.String;
var d;
b.Import(function(e){
d=e.MakeTypeError;
});
function StringPad(f,g,h){
g=(%_ToLength(g));
var i=f.length;
if(g<=i)return"";
if((h===(void 0))){
h=" ";
}else{
h=(%_ToString(h));
if(h===""){
return"";
}
}
var j=g-i;
var k=(j/h.length)|0;
var l=(j-h.length*k)|0;
var m="";
while(true){
if(k&1)m+=h;
k>>=1;
if(k===0)break;
h+=h;
}
if(l){
m+=%_SubString(h,0,l);
}
return m;
}
function StringPadStart(g,h){
if((%IS_VAR(this)===null)||(this===(void 0)))throw d(17,"String.prototype.padStart")
var f=(%_ToString(this));
return StringPad(f,g,h)+f;
}
%FunctionSetLength(StringPadStart,1);
function StringPadEnd(g,h){
if((%IS_VAR(this)===null)||(this===(void 0)))throw d(17,"String.prototype.padEnd")
var f=(%_ToString(this));
return f+StringPad(f,g,h);
}
%FunctionSetLength(StringPadEnd,1);
b.InstallFunctions(c.prototype,2,[
"padStart",StringPadStart,
"padEnd",StringPadEnd
]);
});

4promise-extrau
(function(a,b){
"use strict";
%CheckIsBootstrapping();
var c=a.Promise;
var d=b.ImportNow("PromiseChain");
var e=b.ImportNow("PromiseDefer");
var f=b.ImportNow("PromiseAccept");
b.InstallFunctions(c.prototype,2,[
"chain",d,
]);
b.InstallFunctions(c,2,[
"defer",e,
"accept",f,
]);
})

Lharmony-async-awaitå
(function(a,b,c){
"use strict";
%CheckIsBootstrapping();
var d;
var e;
var f;
var g;
var h;
b.Import(function(i){
d=i.AsyncFunctionNext;
e=i.AsyncFunctionThrow;
f=i.PromiseCreateRejected;
g=i.PromiseCreateResolved;
h=i.PromiseThen;
});
function AsyncFunctionAwait(j,k){
return %_Call(
h,g(k),
function(l){
return %_Call(d,j,l);
},
function(m){
return %_Call(e,j,m);
});
}
%InstallToContext(["async_function_await",AsyncFunctionAwait]);
})

@icu-case-mapping±
(function(a,b){
"use strict";
%CheckIsBootstrapping();
var c=a.String;
var d=b.OverrideFunction;
var e=b.ImportNow("ToLowerCaseI18N");
var f=b.ImportNow("ToUpperCaseI18N");
var g=b.ImportNow("ToLocaleLowerCaseI18N");
var h=b.ImportNow("ToLocaleUpperCaseI18N");
d(c.prototype,'toLowerCase',e,true);
d(c.prototype,'toUpperCase',f,true);
d(c.prototype,'toLocaleLowerCase',
g,true);
d(c.prototype,'toLocaleUpperCase',
h,true);
})

(intl-extram
(function(a,b){
"use strict";
%CheckIsBootstrapping();
var c=a.Intl;
var d=b.ImportNow("AddBoundMethod");
var e=b.ImportNow("IntlParseDate");
var f=b.ImportNow("IntlParseNumber");
d(c.DateTimeFormat,'v8Parse',e,1,
'dateformat');
d(c.NumberFormat,'v8Parse',f,1,
'numberformat');
})

dByteLengthQueuingStrategyÑ
(function(global, binding, v8) {
  'use strict';
  const defineProperty = global.Object.defineProperty;
  class ByteLengthQueuingStrategy {
    constructor(options) {
      defineProperty(this, 'highWaterMark', {
        value: options.highWaterMark,
        enumerable: true,
        configurable: true,
        writable: true
      });
    }
    size(chunk) { return chunk.byteLength; }
  }
  defineProperty(global, 'ByteLengthQueuingStrategy', {
    value: ByteLengthQueuingStrategy,
    enumerable: false,
    configurable: true,
    writable: true
  });
});
PCountQueuingStrategyý
(function(global, binding, v8) {
  'use strict';
  const defineProperty = global.Object.defineProperty;
  class CountQueuingStrategy {
    constructor(options) {
      defineProperty(this, 'highWaterMark', {
        value: options.highWaterMark,
        enumerable: true,
        configurable: true,
        writable: true
      });
    }
    size(chunk) { return 1; }
  }
  defineProperty(global, 'CountQueuingStrategy', {
    value: CountQueuingStrategy,
    enumerable: false,
    configurable: true,
    writable: true
  });
  class BuiltInCountQueuingStrategy {
    constructor(highWaterMark) {
      defineProperty(this, 'highWaterMark', {value: highWaterMark});
    }
    size(chunk) { return 1; }
  }
  binding.createBuiltInCountQueuingStrategy = highWaterMark =>
      new BuiltInCountQueuingStrategy(highWaterMark);
});
8ReadableStream6Ý
(function(global, binding, v8) {
  'use strict';
  const readableStreamReader = v8.createPrivateSymbol('[[reader]]');
  const readableStreamStoredError = v8.createPrivateSymbol('[[storedError]]');
  const readableStreamController = v8.createPrivateSymbol('[[controller]]');
  const readableStreamReaderClosedPromise =
      v8.createPrivateSymbol('[[closedPromise]]');
  const readableStreamReaderOwnerReadableStream =
      v8.createPrivateSymbol('[[ownerReadableStream]]');
  const readableStreamDefaultReaderReadRequests =
      v8.createPrivateSymbol('[[readRequests]]');
  const createWithExternalControllerSentinel =
      v8.createPrivateSymbol('flag for UA-created ReadableStream to pass');
  const readableStreamBits = v8.createPrivateSymbol('bit field for [[state]] and [[disturbed]]');
  const DISTURBED = 0b1;
  const STATE_MASK = 0b110;
  const STATE_BITS_OFFSET = 1;
  const STATE_READABLE = 0;
  const STATE_CLOSED = 1;
  const STATE_ERRORED = 2;
  const readableStreamDefaultControllerUnderlyingSource =
      v8.createPrivateSymbol('[[underlyingSource]]');
  const readableStreamDefaultControllerControlledReadableStream =
      v8.createPrivateSymbol('[[controlledReadableStream]]');
  const readableStreamDefaultControllerQueue = v8.createPrivateSymbol('[[queue]]');
  const readableStreamDefaultControllerQueueSize =
      v8.createPrivateSymbol('[[queue]] total size');
  const readableStreamDefaultControllerStrategySize =
      v8.createPrivateSymbol('[[strategySize]]');
  const readableStreamDefaultControllerStrategyHWM =
      v8.createPrivateSymbol('[[strategyHWM]]');
  const readableStreamDefaultControllerBits = v8.createPrivateSymbol(
      'bit field for [[started]], [[closeRequested]], [[pulling]], [[pullAgain]]');
  const STARTED = 0b1;
  const CLOSE_REQUESTED = 0b10;
  const PULLING = 0b100;
  const PULL_AGAIN = 0b1000;
  const EXTERNALLY_CONTROLLED = 0b10000;
  const readableStreamControllerCancel =
      v8.createPrivateSymbol('[[InternalCancel]]');
  const readableStreamControllerPull = v8.createPrivateSymbol('[[InternalPull]]');
  const undefined = global.undefined;
  const Infinity = global.Infinity;
  const defineProperty = global.Object.defineProperty;
  const hasOwnProperty = v8.uncurryThis(global.Object.hasOwnProperty);
  const callFunction = v8.uncurryThis(global.Function.prototype.call);
  const TypeError = global.TypeError;
  const RangeError = global.RangeError;
  const Number = global.Number;
  const Number_isNaN = Number.isNaN;
  const Number_isFinite = Number.isFinite;
  const Promise = global.Promise;
  const thenPromise = v8.uncurryThis(Promise.prototype.then);
  const Promise_resolve = v8.simpleBind(Promise.resolve, Promise);
  const Promise_reject = v8.simpleBind(Promise.reject, Promise);
  const errIllegalInvocation = 'Illegal invocation';
  const errIllegalConstructor = 'Illegal constructor';
  const errCancelLockedStream =
      'Cannot cancel a readable stream that is locked to a reader';
  const errEnqueueCloseRequestedStream =
      'Cannot enqueue a chunk into a readable stream that is closed or has been requested to be closed';
  const errCancelReleasedReader =
      'This readable stream reader has been released and cannot be used to cancel its previous owner stream';
  const errReadReleasedReader =
      'This readable stream reader has been released and cannot be used to read from its previous owner stream';
  const errCloseCloseRequestedStream =
      'Cannot close a readable stream that has already been requested to be closed';
  const errEnqueueClosedStream = 'Cannot enqueue a chunk into a closed readable stream';
  const errEnqueueErroredStream = 'Cannot enqueue a chunk into an errored readable stream';
  const errCloseClosedStream = 'Cannot close a closed readable stream';
  const errCloseErroredStream = 'Cannot close an errored readable stream';
  const errErrorClosedStream = 'Cannot error a close readable stream';
  const errErrorErroredStream =
      'Cannot error a readable stream that is already errored';
  const errGetReaderNotByteStream = 'This readable stream does not support BYOB readers';
  const errGetReaderBadMode = 'Invalid reader mode given: expected undefined or "byob"';
  const errReaderConstructorBadArgument =
      'ReadableStreamReader constructor argument is not a readable stream';
  const errReaderConstructorStreamAlreadyLocked =
      'ReadableStreamReader constructor can only accept readable streams that are not yet locked to a reader';
  const errReleaseReaderWithPendingRead =
      'Cannot release a readable stream reader when it still has outstanding read() calls that have not yet settled';
  const errReleasedReaderClosedPromise =
      'This readable stream reader has been released and cannot be used to monitor the stream\'s state';
  const errInvalidSize =
      'The return value of a queuing strategy\'s size function must be a finite, non-NaN, non-negative number';
  const errSizeNotAFunction =
      'A queuing strategy\'s size property must be a function';
  const errInvalidHWM =
      'A queueing strategy\'s highWaterMark property must be a nonnegative, non-NaN number';
  const errTmplMustBeFunctionOrUndefined = name =>
      `${name} must be a function or undefined`;
  class ReadableStream {
    constructor() {
      const underlyingSource = arguments[0] === undefined ? {} : arguments[0];
      const strategy = arguments[1] === undefined ? {} : arguments[1];
      const size = strategy.size;
      let highWaterMark = strategy.highWaterMark;
      if (highWaterMark === undefined) {
        highWaterMark = 1;
      }
      this[readableStreamBits] = 0b0;
      ReadableStreamSetState(this, STATE_READABLE);
      this[readableStreamReader] = undefined;
      this[readableStreamStoredError] = undefined;
      this[readableStreamController] = undefined;
      const type = underlyingSource.type;
      const typeString = String(type);
      if (typeString === 'bytes') {
        throw new RangeError('bytes type is not yet implemented');
      } else if (type !== undefined) {
        throw new RangeError('Invalid type is specified');
      }
      this[readableStreamController] =
          new ReadableStreamDefaultController(this, underlyingSource, size, highWaterMark, arguments[2] === createWithExternalControllerSentinel);
    }
    get locked() {
      if (IsReadableStream(this) === false) {
        throw new TypeError(errIllegalInvocation);
      }
      return IsReadableStreamLocked(this);
    }
    cancel(reason) {
      if (IsReadableStream(this) === false) {
        return Promise_reject(new TypeError(errIllegalInvocation));
      }
      if (IsReadableStreamLocked(this) === true) {
        return Promise_reject(new TypeError(errCancelLockedStream));
      }
      return ReadableStreamCancel(this, reason);
    }
    getReader({ mode } = {}) {
      if (IsReadableStream(this) === false) {
        throw new TypeError(errIllegalInvocation);
      }
      if (mode === 'byob') {
        if (IsReadableByteStreamDefaultController(this[readableStreamController]) === false) {
          throw new TypeError(errGetReaderNotByteStream);
        }
        return AcquireReadableStreamBYOBReader(this);
      }
      if (mode === undefined) {
        return AcquireReadableStreamDefaultReader(this);
      }
      throw new RangeError(errGetReaderBadMode);
    }
    tee() {
      if (IsReadableStream(this) === false) {
        throw new TypeError(errIllegalInvocation);
      }
      return ReadableStreamTee(this);
    }
  }
  class ReadableStreamDefaultController {
    constructor(stream, underlyingSource, size, highWaterMark, isExternallyControlled) {
      if (IsReadableStream(stream) === false) {
        throw new TypeError(errIllegalConstructor);
      }
      if (stream[readableStreamController] !== undefined) {
        throw new TypeError(errIllegalConstructor);
      }
      this[readableStreamDefaultControllerControlledReadableStream] = stream;
      this[readableStreamDefaultControllerUnderlyingSource] = underlyingSource;
      this[readableStreamDefaultControllerQueue] = new v8.InternalPackedArray();
      this[readableStreamDefaultControllerQueueSize] = 0;
      this[readableStreamDefaultControllerBits] = 0b0;
      if (isExternallyControlled === true) {
        this[readableStreamDefaultControllerBits] |= EXTERNALLY_CONTROLLED;
      }
      const normalizedStrategy =
          ValidateAndNormalizeQueuingStrategy(size, highWaterMark);
      this[readableStreamDefaultControllerStrategySize] = normalizedStrategy.size;
      this[readableStreamDefaultControllerStrategyHWM] = normalizedStrategy.highWaterMark;
      const controller = this;
      const startResult = CallOrNoop(
          underlyingSource, 'start', this, 'underlyingSource.start');
      thenPromise(Promise_resolve(startResult),
          () => {
            controller[readableStreamDefaultControllerBits] |= STARTED;
            ReadableStreamDefaultControllerCallPullIfNeeded(controller);
          },
          r => {
            if (ReadableStreamGetState(stream) === STATE_READABLE) {
              ReadableStreamDefaultControllerError(controller, r);
            }
          });
    }
    get desiredSize() {
      if (IsReadableStreamDefaultController(this) === false) {
        throw new TypeError(errIllegalInvocation);
      }
      return ReadableStreamDefaultControllerGetDesiredSize(this);
    }
    close() {
      if (IsReadableStreamDefaultController(this) === false) {
        throw new TypeError(errIllegalInvocation);
      }
      const stream = this[readableStreamDefaultControllerControlledReadableStream];
      if (this[readableStreamDefaultControllerBits] & CLOSE_REQUESTED) {
        throw new TypeError(errCloseCloseRequestedStream);
      }
      const state = ReadableStreamGetState(stream);
      if (state === STATE_ERRORED) {
        throw new TypeError(errCloseErroredStream);
      }
      if (state === STATE_CLOSED) {
        throw new TypeError(errCloseClosedStream);
      }
      return ReadableStreamDefaultControllerClose(this);
    }
    enqueue(chunk) {
      if (IsReadableStreamDefaultController(this) === false) {
        throw new TypeError(errIllegalInvocation);
      }
      const stream = this[readableStreamDefaultControllerControlledReadableStream];
      if (this[readableStreamDefaultControllerBits] & CLOSE_REQUESTED) {
        throw new TypeError(errEnqueueCloseRequestedStream);
      }
      const state = ReadableStreamGetState(stream);
      if (state === STATE_ERRORED) {
        throw new TypeError(errEnqueueErroredStream);
      }
      if (state === STATE_CLOSED) {
        throw new TypeError(errEnqueueClosedStream);
      }
      return ReadableStreamDefaultControllerEnqueue(this, chunk);
    }
    error(e) {
      if (IsReadableStreamDefaultController(this) === false) {
        throw new TypeError(errIllegalInvocation);
      }
      const stream = this[readableStreamDefaultControllerControlledReadableStream];
      const state = ReadableStreamGetState(stream);
      if (state === STATE_ERRORED) {
        throw new TypeError(errErrorErroredStream);
      }
      if (state === STATE_CLOSED) {
        throw new TypeError(errErrorClosedStream);
      }
      return ReadableStreamDefaultControllerError(this, e);
    }
  }
  function ReadableStreamDefaultControllerCancel(controller, reason) {
    controller[readableStreamDefaultControllerQueue] = new v8.InternalPackedArray();
    const underlyingSource = controller[readableStreamDefaultControllerUnderlyingSource];
    return PromiseCallOrNoop(underlyingSource, 'cancel', reason, 'underlyingSource.cancel');
  }
  function ReadableStreamDefaultControllerPull(controller) {
    const stream = controller[readableStreamDefaultControllerControlledReadableStream];
    if (controller[readableStreamDefaultControllerQueue].length > 0) {
      const chunk = DequeueValue(controller);
      if ((controller[readableStreamDefaultControllerBits] & CLOSE_REQUESTED) &&
          controller[readableStreamDefaultControllerQueue].length === 0) {
        ReadableStreamClose(stream);
      } else {
        ReadableStreamDefaultControllerCallPullIfNeeded(controller);
      }
      return Promise_resolve(CreateIterResultObject(chunk, false));
    }
    const pendingPromise = ReadableStreamAddReadRequest(stream);
    ReadableStreamDefaultControllerCallPullIfNeeded(controller);
    return pendingPromise;
  }
  function ReadableStreamAddReadRequest(stream) {
    const promise = v8.createPromise();
    stream[readableStreamReader][readableStreamDefaultReaderReadRequests].push(promise);
    return promise;
  }
  class ReadableStreamDefaultReader {
    constructor(stream) {
      if (IsReadableStream(stream) === false) {
        throw new TypeError(errReaderConstructorBadArgument);
      }
      if (IsReadableStreamLocked(stream) === true) {
        throw new TypeError(errReaderConstructorStreamAlreadyLocked);
      }
      ReadableStreamReaderGenericInitialize(this, stream);
      this[readableStreamDefaultReaderReadRequests] = new v8.InternalPackedArray();
    }
    get closed() {
      if (IsReadableStreamDefaultReader(this) === false) {
        return Promise_reject(new TypeError(errIllegalInvocation));
      }
      return this[readableStreamReaderClosedPromise];
    }
    cancel(reason) {
      if (IsReadableStreamDefaultReader(this) === false) {
        return Promise_reject(new TypeError(errIllegalInvocation));
      }
      const stream = this[readableStreamReaderOwnerReadableStream];
      if (stream === undefined) {
        return Promise_reject(new TypeError(errCancelReleasedReader));
      }
      return ReadableStreamReaderGenericCancel(this, reason);
    }
    read() {
      if (IsReadableStreamDefaultReader(this) === false) {
        return Promise_reject(new TypeError(errIllegalInvocation));
      }
      if (this[readableStreamReaderOwnerReadableStream] === undefined) {
        return Promise_reject(new TypeError(errReadReleasedReader));
      }
      return ReadableStreamDefaultReaderRead(this);
    }
    releaseLock() {
      if (IsReadableStreamDefaultReader(this) === false) {
        throw new TypeError(errIllegalInvocation);
      }
      const stream = this[readableStreamReaderOwnerReadableStream];
      if (stream === undefined) {
        return undefined;
      }
      if (this[readableStreamDefaultReaderReadRequests].length > 0) {
        throw new TypeError(errReleaseReaderWithPendingRead);
      }
      ReadableStreamReaderGenericRelease(this);
    }
  }
  function ReadableStreamReaderGenericCancel(reader, reason) {
    return ReadableStreamCancel(reader[readableStreamReaderOwnerReadableStream], reason);
  }
  function AcquireReadableStreamDefaultReader(stream) {
    return new ReadableStreamDefaultReader(stream);
  }
  function ReadableStreamCancel(stream, reason) {
    stream[readableStreamBits] |= DISTURBED;
    const state = ReadableStreamGetState(stream);
    if (state === STATE_CLOSED) {
      return Promise_resolve(undefined);
    }
    if (state === STATE_ERRORED) {
      return Promise_reject(stream[readableStreamStoredError]);
    }
    ReadableStreamClose(stream);
    const sourceCancelPromise = ReadableStreamDefaultControllerCancel(stream[readableStreamController], reason);
    return thenPromise(sourceCancelPromise, () => undefined);
  }
  function ReadableStreamDefaultControllerClose(controller) {
    const stream = controller[readableStreamDefaultControllerControlledReadableStream];
    controller[readableStreamDefaultControllerBits] |= CLOSE_REQUESTED;
    if (controller[readableStreamDefaultControllerQueue].length === 0) {
      ReadableStreamClose(stream);
    }
  }
  function ReadableStreamFulfillReadRequest(stream, chunk, done) {
    const reader = stream[readableStreamReader];
    const readRequest =
        stream[readableStreamReader][readableStreamDefaultReaderReadRequests]
        .shift();
    v8.resolvePromise(readRequest, CreateIterResultObject(chunk, done));
  }
  function ReadableStreamDefaultControllerEnqueue(controller, chunk) {
    const stream = controller[readableStreamDefaultControllerControlledReadableStream];
    if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {
      ReadableStreamFulfillReadRequest(stream, chunk, false);
    } else {
      let chunkSize = 1;
      const strategySize = controller[readableStreamDefaultControllerStrategySize];
      if (strategySize !== undefined) {
        try {
          chunkSize = strategySize(chunk);
        } catch (chunkSizeE) {
          if (ReadableStreamGetState(stream) === STATE_READABLE) {
            ReadableStreamDefaultControllerError(controller, chunkSizeE);
          }
          throw chunkSizeE;
        }
      }
      try {
        EnqueueValueWithSize(controller, chunk, chunkSize);
      } catch (enqueueE) {
        if (ReadableStreamGetState(stream) === STATE_READABLE) {
          ReadableStreamDefaultControllerError(controller, enqueueE);
        }
        throw enqueueE;
      }
    }
    ReadableStreamDefaultControllerCallPullIfNeeded(controller);
  }
  function ReadableStreamGetState(stream) {
    return (stream[readableStreamBits] & STATE_MASK) >> STATE_BITS_OFFSET;
  }
  function ReadableStreamSetState(stream, state) {
    stream[readableStreamBits] = (stream[readableStreamBits] & ~STATE_MASK) |
        (state << STATE_BITS_OFFSET);
  }
  function ReadableStreamDefaultControllerError(controller, e) {
    controller[readableStreamDefaultControllerQueue] = new v8.InternalPackedArray();
    const stream = controller[readableStreamDefaultControllerControlledReadableStream];
    ReadableStreamError(stream, e);
  }
  function ReadableStreamError(stream, e) {
    stream[readableStreamStoredError] = e;
    ReadableStreamSetState(stream, STATE_ERRORED);
    const reader = stream[readableStreamReader];
    if (reader === undefined) {
      return undefined;
    }
    if (IsReadableStreamDefaultReader(reader) === true) {
      const readRequests = reader[readableStreamDefaultReaderReadRequests];
      for (let i = 0; i < readRequests.length; i++) {
        v8.rejectPromise(readRequests[i], e);
      }
      reader[readableStreamDefaultReaderReadRequests] = new v8.InternalPackedArray();
    }
    v8.rejectPromise(reader[readableStreamReaderClosedPromise], e);
  }
  function ReadableStreamClose(stream) {
    ReadableStreamSetState(stream, STATE_CLOSED);
    const reader = stream[readableStreamReader];
    if (reader === undefined) {
      return undefined;
    }
    if (IsReadableStreamDefaultReader(reader) === true) {
      const readRequests = reader[readableStreamDefaultReaderReadRequests];
      for (let i = 0; i < readRequests.length; i++) {
        v8.resolvePromise(
            readRequests[i], CreateIterResultObject(undefined, true));
      }
      reader[readableStreamDefaultReaderReadRequests] = new v8.InternalPackedArray();
    }
    v8.resolvePromise(reader[readableStreamReaderClosedPromise], undefined);
  }
  function ReadableStreamDefaultControllerGetDesiredSize(controller) {
    const queueSize = GetTotalQueueSize(controller);
    return controller[readableStreamDefaultControllerStrategyHWM] - queueSize;
  }
  function IsReadableStream(x) {
    return hasOwnProperty(x, readableStreamController);
  }
  function IsReadableStreamDisturbed(stream) {
    return stream[readableStreamBits] & DISTURBED;
  }
  function IsReadableStreamLocked(stream) {
    return stream[readableStreamReader] !== undefined;
  }
  function IsReadableStreamDefaultController(x) {
    return hasOwnProperty(x, readableStreamDefaultControllerControlledReadableStream);
  }
  function IsReadableStreamDefaultReader(x) {
    return hasOwnProperty(x, readableStreamDefaultReaderReadRequests);
  }
  function IsReadableStreamReadable(stream) {
    return ReadableStreamGetState(stream) === STATE_READABLE;
  }
  function IsReadableStreamClosed(stream) {
    return ReadableStreamGetState(stream) === STATE_CLOSED;
  }
  function IsReadableStreamErrored(stream) {
    return ReadableStreamGetState(stream) === STATE_ERRORED;
  }
  function ReadableStreamReaderGenericInitialize(reader, stream) {
    const controller = stream[readableStreamController];
    if (controller[readableStreamDefaultControllerBits] & EXTERNALLY_CONTROLLED) {
      const underlyingSource = controller[readableStreamDefaultControllerUnderlyingSource];
      callFunction(underlyingSource.notifyLockAcquired, underlyingSource);
    }
    reader[readableStreamReaderOwnerReadableStream] = stream;
    stream[readableStreamReader] = reader;
    switch (ReadableStreamGetState(stream)) {
      case STATE_READABLE:
        reader[readableStreamReaderClosedPromise] = v8.createPromise();
        break;
      case STATE_CLOSED:
        reader[readableStreamReaderClosedPromise] = Promise_resolve(undefined);
        break;
      case STATE_ERRORED:
        reader[readableStreamReaderClosedPromise] =
            Promise_reject(stream[readableStreamStoredError]);
      break;
    }
  }
  function ReadableStreamReaderGenericRelease(reader) {
    const controller = reader[readableStreamReaderOwnerReadableStream][readableStreamController];
    if (controller[readableStreamDefaultControllerBits] & EXTERNALLY_CONTROLLED) {
      const underlyingSource = controller[readableStreamDefaultControllerUnderlyingSource];
      callFunction(underlyingSource.notifyLockReleased, underlyingSource);
    }
    if (ReadableStreamGetState(reader[readableStreamReaderOwnerReadableStream]) === STATE_READABLE) {
      v8.rejectPromise(reader[readableStreamReaderClosedPromise], new TypeError(errReleasedReaderClosedPromise));
    } else {
      reader[readableStreamReaderClosedPromise] = Promise_reject(new TypeError(errReleasedReaderClosedPromise));
    }
    reader[readableStreamReaderOwnerReadableStream][readableStreamReader] =
        undefined;
    reader[readableStreamReaderOwnerReadableStream] = undefined;
  }
  function ReadableStreamDefaultReaderRead(reader) {
    const stream = reader[readableStreamReaderOwnerReadableStream];
    stream[readableStreamBits] |= DISTURBED;
    if (ReadableStreamGetState(stream) === STATE_CLOSED) {
      return Promise_resolve(CreateIterResultObject(undefined, true));
    }
    if (ReadableStreamGetState(stream) === STATE_ERRORED) {
      return Promise_reject(stream[readableStreamStoredError]);
    }
    return ReadableStreamDefaultControllerPull(stream[readableStreamController]);
  }
  function ReadableStreamDefaultControllerCallPullIfNeeded(controller) {
    const shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);
    if (shouldPull === false) {
      return undefined;
    }
    if (controller[readableStreamDefaultControllerBits] & PULLING) {
      controller[readableStreamDefaultControllerBits] |= PULL_AGAIN;
      return undefined;
    }
    controller[readableStreamDefaultControllerBits] |= PULLING;
    const underlyingSource = controller[readableStreamDefaultControllerUnderlyingSource];
    const pullPromise = PromiseCallOrNoop(
        underlyingSource, 'pull', controller, 'underlyingSource.pull');
    thenPromise(pullPromise,
        () => {
          controller[readableStreamDefaultControllerBits] &= ~PULLING;
          if (controller[readableStreamDefaultControllerBits] & PULL_AGAIN) {
            controller[readableStreamDefaultControllerBits] &= ~PULL_AGAIN;
            ReadableStreamDefaultControllerCallPullIfNeeded(controller);
          }
        },
        e => {
          if (ReadableStreamGetState(controller[readableStreamDefaultControllerControlledReadableStream]) === STATE_READABLE) {
            ReadableStreamDefaultControllerError(controller, e);
          }
        });
  }
  function ReadableStreamDefaultControllerShouldCallPull(controller) {
    const stream = controller[readableStreamDefaultControllerControlledReadableStream];
    const state = ReadableStreamGetState(stream);
    if (state === STATE_CLOSED || state === STATE_ERRORED) {
      return false;
    }
    if (controller[readableStreamDefaultControllerBits] & CLOSE_REQUESTED) {
      return false;
    }
    if (!(controller[readableStreamDefaultControllerBits] & STARTED)) {
      return false;
    }
    if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {
      return true;
    }
    const desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);
    if (desiredSize > 0) {
      return true;
    }
    return false;
  }
  function ReadableStreamGetNumReadRequests(stream) {
    const reader = stream[readableStreamReader];
    const readRequests = reader[readableStreamDefaultReaderReadRequests];
    return readRequests.length;
  }
  function ReadableStreamTee(stream) {
    const reader = AcquireReadableStreamDefaultReader(stream);
    let closedOrErrored = false;
    let canceled1 = false;
    let canceled2 = false;
    let reason1;
    let reason2;
    let promise = v8.createPromise();
    const branch1Stream = new ReadableStream({pull, cancel: cancel1});
    const branch2Stream = new ReadableStream({pull, cancel: cancel2});
    const branch1 = branch1Stream[readableStreamController];
    const branch2 = branch2Stream[readableStreamController];
    thenPromise(
        reader[readableStreamReaderClosedPromise], undefined, function(r) {
          if (closedOrErrored === true) {
            return;
          }
          ReadableStreamDefaultControllerError(branch1, r);
          ReadableStreamDefaultControllerError(branch2, r);
          closedOrErrored = true;
        });
    return [branch1Stream, branch2Stream];
    function pull() {
      return thenPromise(
          ReadableStreamDefaultReaderRead(reader), function(result) {
            const value = result.value;
            const done = result.done;
            if (done === true && closedOrErrored === false) {
              if (canceled1 === false) {
                ReadableStreamDefaultControllerClose(branch1);
              }
              if (canceled2 === false) {
                ReadableStreamDefaultControllerClose(branch2);
              }
              closedOrErrored = true;
            }
            if (closedOrErrored === true) {
              return;
            }
            if (canceled1 === false) {
              ReadableStreamDefaultControllerEnqueue(branch1, value);
            }
            if (canceled2 === false) {
              ReadableStreamDefaultControllerEnqueue(branch2, value);
            }
          });
    }
    function cancel1(reason) {
      canceled1 = true;
      reason1 = reason;
      if (canceled2 === true) {
        const compositeReason = [reason1, reason2];
        const cancelResult = ReadableStreamCancel(stream, compositeReason);
        v8.resolvePromise(promise, cancelResult);
      }
      return promise;
    }
    function cancel2(reason) {
      canceled2 = true;
      reason2 = reason;
      if (canceled1 === true) {
        const compositeReason = [reason1, reason2];
        const cancelResult = ReadableStreamCancel(stream, compositeReason);
        v8.resolvePromise(promise, cancelResult);
      }
      return promise;
    }
  }
  function DequeueValue(controller) {
    const result = controller[readableStreamDefaultControllerQueue].shift();
    controller[readableStreamDefaultControllerQueueSize] -= result.size;
    return result.value;
  }
  function EnqueueValueWithSize(controller, value, size) {
    size = Number(size);
    if (Number_isNaN(size) || size === +Infinity || size < 0) {
      throw new RangeError(errInvalidSize);
    }
    controller[readableStreamDefaultControllerQueueSize] += size;
    controller[readableStreamDefaultControllerQueue].push({value, size});
  }
  function GetTotalQueueSize(controller) { return controller[readableStreamDefaultControllerQueueSize]; }
  function ValidateAndNormalizeQueuingStrategy(size, highWaterMark) {
    if (size !== undefined && typeof size !== 'function') {
      throw new TypeError(errSizeNotAFunction);
    }
    highWaterMark = Number(highWaterMark);
    if (Number_isNaN(highWaterMark)) {
      throw new TypeError(errInvalidHWM);
    }
    if (highWaterMark < 0) {
      throw new RangeError(errInvalidHWM);
    }
    return {size, highWaterMark};
  }
  function CallOrNoop(O, P, arg, nameForError) {
    const method = O[P];
    if (method === undefined) {
      return undefined;
    }
    if (typeof method !== 'function') {
      throw new TypeError(errTmplMustBeFunctionOrUndefined(nameForError));
    }
    return callFunction(method, O, arg);
  }
  function PromiseCallOrNoop(O, P, arg, nameForError) {
    let method;
    try {
      method = O[P];
    } catch (methodE) {
      return Promise_reject(methodE);
    }
    if (method === undefined) {
      return Promise_resolve(undefined);
    }
    if (typeof method !== 'function') {
      return Promise_reject(new TypeError(errTmplMustBeFunctionOrUndefined(nameForError)));
    }
    try {
      return Promise_resolve(callFunction(method, O, arg));
    } catch (e) {
      return Promise_reject(e);
    }
  }
  function CreateIterResultObject(value, done) { return {value, done}; }
  defineProperty(global, 'ReadableStream', {
    value: ReadableStream,
    enumerable: false,
    configurable: true,
    writable: true
  });
  binding.AcquireReadableStreamDefaultReader = AcquireReadableStreamDefaultReader;
  binding.IsReadableStream = IsReadableStream;
  binding.IsReadableStreamDisturbed = IsReadableStreamDisturbed;
  binding.IsReadableStreamLocked = IsReadableStreamLocked;
  binding.IsReadableStreamReadable = IsReadableStreamReadable;
  binding.IsReadableStreamClosed = IsReadableStreamClosed;
  binding.IsReadableStreamErrored = IsReadableStreamErrored;
  binding.IsReadableStreamDefaultReader = IsReadableStreamDefaultReader;
  binding.ReadableStreamDefaultReaderRead = ReadableStreamDefaultReaderRead;
  binding.ReadableStreamTee = ReadableStreamTee;
  binding.ReadableStreamDefaultControllerClose = ReadableStreamDefaultControllerClose;
  binding.ReadableStreamDefaultControllerGetDesiredSize = ReadableStreamDefaultControllerGetDesiredSize;
  binding.ReadableStreamDefaultControllerEnqueue = ReadableStreamDefaultControllerEnqueue;
  binding.ReadableStreamDefaultControllerError = ReadableStreamDefaultControllerError;
  binding.createReadableStreamWithExternalController =
      (underlyingSource, strategy) => {
        return new ReadableStream(
            underlyingSource, strategy, createWithExternalControllerSentinel);
      };
});
dummy<(function() {})