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

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

 liveediti÷
(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.scope_info=br[4];
this.outer_index=br[5];
this.shared_function_info=br[6];
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 SetScriptSource(N,bM,bN,Z){
var j=N.source;
var bO=CompareStrings(j,bM);
return ApplyPatchMultiChunk(N,bO,bM,bN,
Z);
}
function CompareStrings(bP,bQ){
return %LiveEditCompareStrings(bP,bQ);
}
function ApplySingleChunkPatch(N,change_pos,change_len,new_str,
Z){
var j=N.source;
var bM=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],
bM,false,Z);
}
function DescribeChangeTree(bd){
function ProcessOldNode(w){
var bR=[];
for(var x=0;x<w.children.length;x++){
var bc=w.children[x];
if(bc.status!=i.UNCHANGED){
bR.push(ProcessOldNode(bc));
}
}
var bS=[];
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];
bS.push(ProcessNewNode(bc));
}
}
var bT={
name:w.info.function_name,
positions:DescribePositions(w),
status:w.status,
children:bR,
new_children:bS
};
if(w.status_explanation){
bT.status_explanation=w.status_explanation;
}
if(w.textual_corresponding_node){
bT.new_positions=DescribePositions(w.textual_corresponding_node);
}
return bT;
}
function ProcessNewNode(w){
var bR=[];
if(false){
for(var x=0;x<w.children.length;x++){
bR.push(ProcessNewNode(w.children[x]));
}
}
var bT={
name:w.info.function_name,
positions:DescribePositions(w),
children:bR,
};
return bT;
}
function DescribePositions(w){
return{
start_position:w.info.start_position,
end_position:w.info.end_position
};
}
return ProcessOldNode(bd);
}
var bU={};
bU.SetScriptSource=SetScriptSource;
bU.ApplyPatchMultiChunk=ApplyPatchMultiChunk;
bU.Failure=Failure;
bU.TestApi={
PosTranslator:PosTranslator,
CompareStrings:CompareStrings,
ApplySingleChunkPatch:ApplySingleChunkPatch
};
a.Debug.LiveEdit=bU;
})

H prologueåF
(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,m);
%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=[
"FormatDateToParts",
"MapEntries",
"MapIterator",
"MapIteratorNext",
"MaxSimple",
"MinSimple",
"SetIterator",
"SetIteratorNext",
"SetValues",
"ToLocaleLowerCaseI18N",
"ToLocaleUpperCaseI18N",
"ToLowerCaseI18N",
"ToUpperCaseI18N",
"promise_result_symbol",
"promise_state_symbol",
"reflect_apply",
"to_string_tag_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;
b.Import(function(g){
f=g.species_symbol;
});
function ToPositiveInteger(h,i){
var j=(%_ToInteger(h))+0;
if(j<0)throw %make_range_error(i);
return j;
}
function ToIndex(h,i){
var j=(%_ToInteger(h))+0;
if(j<0||j>9007199254740991)throw %make_range_error(i);
return j;
}
function MaxSimple(k,l){
return k>l?k:l;
}
function MinSimple(k,l){
return k>l?l:k;
}
%SetForceInlineFlag(MaxSimple);
%SetForceInlineFlag(MinSimple);
function SpeciesConstructor(m,n){
var o=m.constructor;
if((o===(void 0))){
return n;
}
if(!(%_IsJSReceiver(o))){
throw %make_type_error(28);
}
var p=o[f];
if((p==null)){
return n;
}
if(%IsConstructor(p)){
return p;
}
throw %make_type_error(236);
}
%FunctionSetPrototype(c,new c(0));
b.Export(function(q){
q.MaxSimple=MaxSimple;
q.MinSimple=MinSimple;
q.ToPositiveInteger=ToPositiveInteger;
q.ToIndex=ToIndex;
q.SpeciesConstructor=SpeciesConstructor;
});
})

$v8nativesu
(function(a,b){
%CheckIsBootstrapping();
var c=a.Number;
var d=a.Object;
var e=b.ImportNow("iterator_symbol");
var f=%GetRootNaN();
var g=b.ImportNow("object_to_string");
var h=2|4|1;
b.InstallConstants(a,[
"Infinity",(1/0),
"NaN",f,
"undefined",(void 0),
]);
function ObjectToLocaleString(){
if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"Object.prototype.toLocaleString");
return this.toString();
}
function ObjectValueOf(){
return(%_ToObject(this));
}
function ObjectIsPrototypeOf(i){
if(!(%_IsJSReceiver(i)))return false;
var j=(%_ToObject(this));
return %HasInPrototypeChain(i,j);
}
function GetMethod(k,l){
var m=k[l];
if((m==null))return(void 0);
if((typeof(m)==='function'))return m;
throw %make_type_error(15,typeof m);
}
function ObjectConstructor(n){
if(d!=new.target&&!(new.target===(void 0))){
return this;
}
if((n===null)||(n===(void 0)))return{};
return(%_ToObject(n));
}
%SetNativeFlag(d);
%SetCode(d,ObjectConstructor);
%AddNamedProperty(d.prototype,"constructor",d,
2);
b.InstallFunctions(d.prototype,2,[
"toString",g,
"toLocaleString",ObjectToLocaleString,
"valueOf",ObjectValueOf,
"isPrototypeOf",ObjectIsPrototypeOf,
]);
b.InstallConstants(c,[
"MAX_VALUE",1.7976931348623157e+308,
"MIN_VALUE",5e-324,
"NaN",f,
"NEGATIVE_INFINITY",-(1/0),
"POSITIVE_INFINITY",(1/0),
"MAX_SAFE_INTEGER",9007199254740991,
"MIN_SAFE_INTEGER",-9007199254740991,
"EPSILON",2.220446049250313e-16,
]);
function GetIterator(k,o){
if((o===(void 0))){
o=k[e];
}
if(!(typeof(o)==='function')){
throw %make_type_error(71,k);
}
var p=%_Call(o,k);
if(!(%_IsJSReceiver(p))){
throw %make_type_error(65,p);
}
return p;
}
b.Export(function(q){
q.GetIterator=GetIterator;
q.GetMethod=GetMethod;
q.ObjectHasOwnProperty=d.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=b.ImportNow("match_symbol");
var h=b.ImportNow("replace_symbol");
var i=b.ImportNow("search_symbol");
var j=b.ImportNow("species_symbol");
var k=b.ImportNow("split_symbol");
var l=b.ImportNow("to_primitive_symbol");
var m=b.ImportNow("to_string_tag_symbol");
var n=b.ImportNow("unscopables_symbol");
function SymbolFor(o){
o=(%_ToString(o));
var p=%SymbolRegistry();
if((p.for[o]===(void 0))){
var q=%CreateSymbol(o);
p.for[o]=q;
p.keyFor[q]=o;
}
return p.for[o];
}
function SymbolKeyFor(q){
if(!(typeof(q)==='symbol'))throw %make_type_error(138,q);
return %SymbolRegistry().keyFor[q];
}
b.InstallConstants(c,[
"hasInstance",d,
"isConcatSpreadable",e,
"iterator",f,
"match",g,
"replace",h,
"search",i,
"species",j,
"split",k,
"toPrimitive",l,
"toStringTag",m,
"unscopables",n,
]);
b.InstallFunctions(c,2,[
"for",SymbolFor,
"keyFor",SymbolKeyFor
]);
})

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

string†
(function(a,b){
%CheckIsBootstrapping();
var c;
var d=a.RegExp;
var e=a.String;
var f;
var g;
var h=b.ImportNow("match_symbol");
var i=b.ImportNow("replace_symbol");
var j=b.ImportNow("search_symbol");
var k=b.ImportNow("split_symbol");
b.Import(function(l){
c=l.ArrayJoin;
f=l.MaxSimple;
g=l.MinSimple;
});
function StringConcat(m){
"use strict";
if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.concat");
var n=(%_ToString(this));
var o=arguments.length;
for(var p=0;p<o;++p){
n=n+(%_ToString(arguments[p]));
}
return n;
}
function StringMatchJS(q){
if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.match");
if(!(q==null)){
var r=q[h];
if(!(r===(void 0))){
return %_Call(r,q,this);
}
}
var s=(%_ToString(this));
var t=%RegExpCreate(q);
return t[h](s);
}
function GetSubstitution(u,v,w,x,y){
var z=u.length;
var A=v.length;
var B=x.length;
var C=w+z;
var D="";
var E,F,G,H,I,J,K;
var H=%StringIndexOf(y,'$',0);
if(H<0){
D+=y;
return D;
}
if(H>0)D+=%_SubString(y,0,H);
while(true){
F='$';
E=H+1;
if(E<y.length){
G=%_StringCharCodeAt(y,E);
if(G==36){
++E;
D+='$';
}else if(G==38){
++E;
D+=u;
}else if(G==96){
++E;
D+=%_SubString(v,0,w);
}else if(G==39){
++E;
D+=%_SubString(v,C,A);
}else if(G>=48&&G<=57){
I=(G-48);
J=1;
if(E+1<y.length){
H=%_StringCharCodeAt(y,E+1);
if(H>=48&&H<=57){
K=I*10+((H-48));
if(K<B){
I=K;
J=2;
}
}
}
if(I!=0&&I<B){
var L=x.at(I);
if(!(L===(void 0)))D+=L;
E+=J;
}else{
D+='$';
}
}else{
D+='$';
}
}else{
D+='$';
}
H=%StringIndexOf(y,'$',E);
if(H<0){
if(E<y.length){
D+=%_SubString(y,E,y.length);
}
return D;
}
if(H>E){
D+=%_SubString(y,E,H);
}
}
return D;
}
function StringReplace(M,N){
if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.replace");
if(!(M==null)){
var O=M[i];
if(!(O===(void 0))){
return %_Call(O,M,this,N);
}
}
var s=(%_ToString(this));
M=(%_ToString(M));
if(M.length==1&&
s.length>0xFF&&
(typeof(N)==='string')&&
%StringIndexOf(N,'$',0)<0){
return %StringReplaceOneCharWithString(s,M,N);
}
var P=%StringIndexOf(s,M,0);
if(P<0)return s;
var Q=P+M.length;
var D=%_SubString(s,0,P);
if((typeof(N)==='function')){
D+=N(M,P,s);
}else{
const x={length:1};
const u=%_SubString(s,P,Q);
D+=GetSubstitution(u,s,P,x,
(%_ToString(N)));
}
return D+%_SubString(s,Q,s.length);
}
function StringSearch(q){
if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.search");
if(!(q==null)){
var R=q[j];
if(!(R===(void 0))){
return %_Call(R,q,this);
}
}
var s=(%_ToString(this));
var t=%RegExpCreate(q);
return %_Call(t[j],t,s);
}
function StringSlice(P,Q){
if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.slice");
var n=(%_ToString(this));
var S=n.length;
var T=(%_ToInteger(P));
var U=S;
if(!(Q===(void 0))){
U=(%_ToInteger(Q));
}
if(T<0){
T+=S;
if(T<0){
T=0;
}
}else{
if(T>S){
return'';
}
}
if(U<0){
U+=S;
if(U<0){
return'';
}
}else{
if(U>S){
U=S;
}
}
if(U<=T){
return'';
}
return %_SubString(n,T,U);
}
function StringSplitJS(V,W){
if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.split");
if(!(V==null)){
var X=V[k];
if(!(X===(void 0))){
return %_Call(X,V,this,W);
}
}
var s=(%_ToString(this));
W=((W===(void 0)))?4294967295:((W)>>>0);
var Y=s.length;
var Z=(%_ToString(V));
if(W===0)return[];
if((V===(void 0)))return[s];
var aa=Z.length;
if(aa===0)return %StringToArray(s,W);
return %StringSplit(s,Z,W);
}
function StringToLowerCaseJS(){
if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.toLowerCase");
return %StringToLowerCase((%_ToString(this)));
}
function StringToLocaleLowerCase(){
if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.toLocaleLowerCase");
return %StringToLowerCase((%_ToString(this)));
}
function StringToUpperCaseJS(){
if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.toUpperCase");
return %StringToUpperCase((%_ToString(this)));
}
function StringToLocaleUpperCase(){
if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.toLocaleUpperCase");
return %StringToUpperCase((%_ToString(this)));
}
function HtmlEscape(ab){
return %_Call(StringReplace,(%_ToString(ab)),/"/g,"&quot;");
}
function StringAnchor(ac){
if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.anchor");
return"<a name=\""+HtmlEscape(ac)+"\">"+(%_ToString(this))+
"</a>";
}
function StringBig(){
if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.big");
return"<big>"+(%_ToString(this))+"</big>";
}
function StringBlink(){
if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.blink");
return"<blink>"+(%_ToString(this))+"</blink>";
}
function StringBold(){
if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.bold");
return"<b>"+(%_ToString(this))+"</b>";
}
function StringFixed(){
if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.fixed");
return"<tt>"+(%_ToString(this))+"</tt>";
}
function StringFontcolor(ad){
if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.fontcolor");
return"<font color=\""+HtmlEscape(ad)+"\">"+(%_ToString(this))+
"</font>";
}
function StringFontsize(ae){
if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.fontsize");
return"<font size=\""+HtmlEscape(ae)+"\">"+(%_ToString(this))+
"</font>";
}
function StringItalics(){
if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.italics");
return"<i>"+(%_ToString(this))+"</i>";
}
function StringLink(n){
if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.link");
return"<a href=\""+HtmlEscape(n)+"\">"+(%_ToString(this))+"</a>";
}
function StringSmall(){
if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.small");
return"<small>"+(%_ToString(this))+"</small>";
}
function StringStrike(){
if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.strike");
return"<strike>"+(%_ToString(this))+"</strike>";
}
function StringSub(){
if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.sub");
return"<sub>"+(%_ToString(this))+"</sub>";
}
function StringSup(){
if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.sup");
return"<sup>"+(%_ToString(this))+"</sup>";
}
function StringRepeat(af){
if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.repeat");
var n=(%_ToString(this));
var ag=(%_ToInteger(af));
if(ag<0||ag===(1/0))throw %make_range_error(158);
if(n.length===0)return"";
if(ag>%_MaxSmi())throw %make_range_error(158);
var ah="";
while(true){
if(ag&1)ah+=n;
ag>>=1;
if(ag===0)return ah;
n+=n;
}
}
function StringCodePointAt(E){
if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.codePointAt");
var v=(%_ToString(this));
var ae=v.length;
E=(%_ToInteger(E));
if(E<0||E>=ae){
return(void 0);
}
var ai=%_StringCharCodeAt(v,E);
if(ai<0xD800||ai>0xDBFF||E+1==ae){
return ai;
}
var aj=%_StringCharCodeAt(v,E+1);
if(aj<0xDC00||aj>0xDFFF){
return ai;
}
return(ai-0xD800)*0x400+aj+0x2400;
}
function StringRaw(ak){
"use strict";
var al=arguments.length;
var am=(%_ToObject(ak));
var an=(%_ToObject(am.raw));
var ao=(%_ToLength(an.length));
if(ao<=0)return"";
var D=(%_ToString(an[0]));
for(var p=1;p<ao;++p){
if(p<al){
D+=(%_ToString(arguments[p]));
}
D+=(%_ToString(an[p]));
}
return D;
}
b.InstallFunctions(e,2,[
"raw",StringRaw
]);
b.InstallFunctions(e.prototype,2,[
"codePointAt",StringCodePointAt,
"concat",StringConcat,
"match",StringMatchJS,
"repeat",StringRepeat,
"replace",StringReplace,
"search",StringSearch,
"slice",StringSlice,
"split",StringSplitJS,
"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(ap){
ap.StringMatch=StringMatchJS;
ap.StringReplace=StringReplace;
ap.StringSlice=StringSlice;
ap.StringSplit=StringSplitJS;
});
})

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

(typedarray–q
(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.Object;
var k;
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=b.InternalArray;
var y;
var z;
var A;
var B;
var C;
var D;
var E=b.ImportNow("iterator_symbol");
var F=b.ImportNow("species_symbol");
var G=b.ImportNow("to_string_tag_symbol");
var H=a.Uint8Array;

var I=a.Int8Array;

var J=a.Uint16Array;

var K=a.Int16Array;

var L=a.Uint32Array;

var M=a.Int32Array;

var N=a.Float32Array;

var O=a.Float64Array;

var P=a.Uint8ClampedArray;


var Q=%object_get_prototype_of(H);
b.Import(function(R){
d=R.ArrayValues;
e=R.GetIterator;
f=R.GetMethod;
k=R.InnerArrayCopyWithin;
l=R.InnerArrayEvery;
m=R.InnerArrayFill;
n=R.InnerArrayFilter;
o=R.InnerArrayFind;
p=R.InnerArrayFindIndex;
q=R.InnerArrayForEach;
r=R.InnerArrayJoin;
s=R.InnerArrayReduce;
t=R.InnerArrayReduceRight;
u=R.InnerArraySome;
v=R.InnerArraySort;
w=R.InnerArrayToLocaleString;
y=R.MaxSimple;
z=R.MinSimple;
A=R.PackedArrayReverse;
B=R.SpeciesConstructor;
C=R.ToPositiveInteger;
D=R.ToIndex;
});
function TypedArrayDefaultConstructor(S){
switch(%_ClassOf(S)){
case"Uint8Array":
return H;

case"Int8Array":
return I;

case"Uint16Array":
return J;

case"Int16Array":
return K;

case"Uint32Array":
return L;

case"Int32Array":
return M;

case"Float32Array":
return N;

case"Float64Array":
return O;

case"Uint8ClampedArray":
return P;


}
throw %make_type_error(45,
"TypedArrayDefaultConstructor",this);
}
function TypedArrayCreate(T,U,V,W){
if((V===(void 0))){
var X=new T(U);
}else{
var X=new T(U,V,W);
}
if(!(%_IsTypedArray(X)))throw %make_type_error(73);
if((typeof(U)==='number')&&%_TypedArrayGetLength(X)<U){
throw %make_type_error(250);
}
return X;
}
function TypedArraySpeciesCreate(Y,U,V,W,Z){
var aa=TypedArrayDefaultConstructor(Y);
var T=B(Y,aa,
Z);
return TypedArrayCreate(T,U,V,W);
}
function Uint8ArrayConstructByArrayBuffer(ab,ac,ad,ae){
if(!(ad===(void 0))){
ad=D(ad,170);
}
if(!(ae===(void 0))){
ae=D(ae,170);
}
if(ae>%_MaxSmi()){
throw %make_range_error(170);
}
var af=%_ArrayBufferGetByteLength(ac);
var ag;
if((ad===(void 0))){
ag=0;
}else{
ag=ad;
if(ag % 1!==0){
throw %make_range_error(169,
"start offset","Uint8Array",1);
}
}
var ah;
if((ae===(void 0))){
if(af % 1!==0){
throw %make_range_error(169,
"byte length","Uint8Array",1);
}
ah=af-ag;
if(ah<0){
throw %make_range_error(169,
"byte length","Uint8Array",1);
}
}else{
ah=ae*1;
if(ag+ah>af){
throw %make_range_error(170);
}
}
%_TypedArrayInitialize(ab,1,ac,ag,ah,true);
}
function Uint8ArrayConstructByLength(ab,ae){
var ai=(ae===(void 0))?
0:D(ae,170);
if(ae>%_MaxSmi()){
throw %make_range_error(170);
}
var aj=ai*1;
if(aj>%_TypedArrayMaxSizeInHeap()){
var ac=new h(aj);
%_TypedArrayInitialize(ab,1,ac,0,aj,true);
}else{
%_TypedArrayInitialize(ab,1,null,0,aj,true);
}
}
function Uint8ArrayConstructByArrayLike(ab,ak,ae){
var ai=C(ae,170);
if(ai>%_MaxSmi()){
throw %make_range_error(170);
}
var al=false;
var aj=ai*1;
if(aj<=%_TypedArrayMaxSizeInHeap()){
%_TypedArrayInitialize(ab,1,null,0,aj,false);
}else{
al=
%TypedArrayInitializeFromArrayLike(ab,1,ak,ai);
}
if(!al){
for(var am=0;am<ai;am++){
ab[am]=ak[am];
}
}
}
function Uint8ArrayConstructByIterable(ab,an,ao){
var ap=new x();
var aq=%_Call(ao,an);
var ar={
__proto__:null
};
ar[E]=function(){return aq;}
for(var as of ar){
ap.push(as);
}
Uint8ArrayConstructByArrayLike(ab,ap,ap.length);
}
function Uint8ArrayConstructByTypedArray(ab,S){
var at=%TypedArrayGetBuffer(S);
var ae=%_TypedArrayGetLength(S);
var aj=%_ArrayBufferViewGetByteLength(S);
var ah=ae*1;
Uint8ArrayConstructByArrayLike(ab,S,ae);
var au=B(at,h);
var av=au.prototype;
if((%_IsJSReceiver(av))&&av!==i){
%InternalSetPrototype(%TypedArrayGetBuffer(ab),av);
}
}
function Uint8ArrayConstructor(V,W,aw){
if(!(new.target===(void 0))){
if((%_ClassOf(V)==='ArrayBuffer')||(%_ClassOf(V)==='SharedArrayBuffer')){
Uint8ArrayConstructByArrayBuffer(this,V,W,aw);
}else if((%_IsTypedArray(V))){
Uint8ArrayConstructByTypedArray(this,V);
}else if((%_IsJSReceiver(V))){
var ao=V[E];
if((ao===(void 0))||ao===d){
Uint8ArrayConstructByArrayLike(this,V,V.length);
}else{
Uint8ArrayConstructByIterable(this,V,ao);
}
}else{
Uint8ArrayConstructByLength(this,V);
}
}else{
throw %make_type_error(27,"Uint8Array")
}
}
function Uint8ArraySubArray(ax,ay){
var az=(%_ToInteger(ax));
if(!(ay===(void 0))){
var aA=(%_ToInteger(ay));
var aB=%_TypedArrayGetLength(this);
}else{
var aB=%_TypedArrayGetLength(this);
var aA=aB;
}
if(az<0){
az=y(0,aB+az);
}else{
az=z(az,aB);
}
if(aA<0){
aA=y(0,aB+aA);
}else{
aA=z(aA,aB);
}
if(aA<az){
aA=az;
}
var aC=aA-az;
var aD=
%_ArrayBufferViewGetByteOffset(this)+az*1;
return new H(%TypedArrayGetBuffer(this),aD,aC);
}

function Int8ArrayConstructByArrayBuffer(ab,ac,ad,ae){
if(!(ad===(void 0))){
ad=D(ad,170);
}
if(!(ae===(void 0))){
ae=D(ae,170);
}
if(ae>%_MaxSmi()){
throw %make_range_error(170);
}
var af=%_ArrayBufferGetByteLength(ac);
var ag;
if((ad===(void 0))){
ag=0;
}else{
ag=ad;
if(ag % 1!==0){
throw %make_range_error(169,
"start offset","Int8Array",1);
}
}
var ah;
if((ae===(void 0))){
if(af % 1!==0){
throw %make_range_error(169,
"byte length","Int8Array",1);
}
ah=af-ag;
if(ah<0){
throw %make_range_error(169,
"byte length","Int8Array",1);
}
}else{
ah=ae*1;
if(ag+ah>af){
throw %make_range_error(170);
}
}
%_TypedArrayInitialize(ab,2,ac,ag,ah,true);
}
function Int8ArrayConstructByLength(ab,ae){
var ai=(ae===(void 0))?
0:D(ae,170);
if(ae>%_MaxSmi()){
throw %make_range_error(170);
}
var aj=ai*1;
if(aj>%_TypedArrayMaxSizeInHeap()){
var ac=new h(aj);
%_TypedArrayInitialize(ab,2,ac,0,aj,true);
}else{
%_TypedArrayInitialize(ab,2,null,0,aj,true);
}
}
function Int8ArrayConstructByArrayLike(ab,ak,ae){
var ai=C(ae,170);
if(ai>%_MaxSmi()){
throw %make_range_error(170);
}
var al=false;
var aj=ai*1;
if(aj<=%_TypedArrayMaxSizeInHeap()){
%_TypedArrayInitialize(ab,2,null,0,aj,false);
}else{
al=
%TypedArrayInitializeFromArrayLike(ab,2,ak,ai);
}
if(!al){
for(var am=0;am<ai;am++){
ab[am]=ak[am];
}
}
}
function Int8ArrayConstructByIterable(ab,an,ao){
var ap=new x();
var aq=%_Call(ao,an);
var ar={
__proto__:null
};
ar[E]=function(){return aq;}
for(var as of ar){
ap.push(as);
}
Int8ArrayConstructByArrayLike(ab,ap,ap.length);
}
function Int8ArrayConstructByTypedArray(ab,S){
var at=%TypedArrayGetBuffer(S);
var ae=%_TypedArrayGetLength(S);
var aj=%_ArrayBufferViewGetByteLength(S);
var ah=ae*1;
Int8ArrayConstructByArrayLike(ab,S,ae);
var au=B(at,h);
var av=au.prototype;
if((%_IsJSReceiver(av))&&av!==i){
%InternalSetPrototype(%TypedArrayGetBuffer(ab),av);
}
}
function Int8ArrayConstructor(V,W,aw){
if(!(new.target===(void 0))){
if((%_ClassOf(V)==='ArrayBuffer')||(%_ClassOf(V)==='SharedArrayBuffer')){
Int8ArrayConstructByArrayBuffer(this,V,W,aw);
}else if((%_IsTypedArray(V))){
Int8ArrayConstructByTypedArray(this,V);
}else if((%_IsJSReceiver(V))){
var ao=V[E];
if((ao===(void 0))||ao===d){
Int8ArrayConstructByArrayLike(this,V,V.length);
}else{
Int8ArrayConstructByIterable(this,V,ao);
}
}else{
Int8ArrayConstructByLength(this,V);
}
}else{
throw %make_type_error(27,"Int8Array")
}
}
function Int8ArraySubArray(ax,ay){
var az=(%_ToInteger(ax));
if(!(ay===(void 0))){
var aA=(%_ToInteger(ay));
var aB=%_TypedArrayGetLength(this);
}else{
var aB=%_TypedArrayGetLength(this);
var aA=aB;
}
if(az<0){
az=y(0,aB+az);
}else{
az=z(az,aB);
}
if(aA<0){
aA=y(0,aB+aA);
}else{
aA=z(aA,aB);
}
if(aA<az){
aA=az;
}
var aC=aA-az;
var aD=
%_ArrayBufferViewGetByteOffset(this)+az*1;
return new I(%TypedArrayGetBuffer(this),aD,aC);
}

function Uint16ArrayConstructByArrayBuffer(ab,ac,ad,ae){
if(!(ad===(void 0))){
ad=D(ad,170);
}
if(!(ae===(void 0))){
ae=D(ae,170);
}
if(ae>%_MaxSmi()){
throw %make_range_error(170);
}
var af=%_ArrayBufferGetByteLength(ac);
var ag;
if((ad===(void 0))){
ag=0;
}else{
ag=ad;
if(ag % 2!==0){
throw %make_range_error(169,
"start offset","Uint16Array",2);
}
}
var ah;
if((ae===(void 0))){
if(af % 2!==0){
throw %make_range_error(169,
"byte length","Uint16Array",2);
}
ah=af-ag;
if(ah<0){
throw %make_range_error(169,
"byte length","Uint16Array",2);
}
}else{
ah=ae*2;
if(ag+ah>af){
throw %make_range_error(170);
}
}
%_TypedArrayInitialize(ab,3,ac,ag,ah,true);
}
function Uint16ArrayConstructByLength(ab,ae){
var ai=(ae===(void 0))?
0:D(ae,170);
if(ae>%_MaxSmi()){
throw %make_range_error(170);
}
var aj=ai*2;
if(aj>%_TypedArrayMaxSizeInHeap()){
var ac=new h(aj);
%_TypedArrayInitialize(ab,3,ac,0,aj,true);
}else{
%_TypedArrayInitialize(ab,3,null,0,aj,true);
}
}
function Uint16ArrayConstructByArrayLike(ab,ak,ae){
var ai=C(ae,170);
if(ai>%_MaxSmi()){
throw %make_range_error(170);
}
var al=false;
var aj=ai*2;
if(aj<=%_TypedArrayMaxSizeInHeap()){
%_TypedArrayInitialize(ab,3,null,0,aj,false);
}else{
al=
%TypedArrayInitializeFromArrayLike(ab,3,ak,ai);
}
if(!al){
for(var am=0;am<ai;am++){
ab[am]=ak[am];
}
}
}
function Uint16ArrayConstructByIterable(ab,an,ao){
var ap=new x();
var aq=%_Call(ao,an);
var ar={
__proto__:null
};
ar[E]=function(){return aq;}
for(var as of ar){
ap.push(as);
}
Uint16ArrayConstructByArrayLike(ab,ap,ap.length);
}
function Uint16ArrayConstructByTypedArray(ab,S){
var at=%TypedArrayGetBuffer(S);
var ae=%_TypedArrayGetLength(S);
var aj=%_ArrayBufferViewGetByteLength(S);
var ah=ae*2;
Uint16ArrayConstructByArrayLike(ab,S,ae);
var au=B(at,h);
var av=au.prototype;
if((%_IsJSReceiver(av))&&av!==i){
%InternalSetPrototype(%TypedArrayGetBuffer(ab),av);
}
}
function Uint16ArrayConstructor(V,W,aw){
if(!(new.target===(void 0))){
if((%_ClassOf(V)==='ArrayBuffer')||(%_ClassOf(V)==='SharedArrayBuffer')){
Uint16ArrayConstructByArrayBuffer(this,V,W,aw);
}else if((%_IsTypedArray(V))){
Uint16ArrayConstructByTypedArray(this,V);
}else if((%_IsJSReceiver(V))){
var ao=V[E];
if((ao===(void 0))||ao===d){
Uint16ArrayConstructByArrayLike(this,V,V.length);
}else{
Uint16ArrayConstructByIterable(this,V,ao);
}
}else{
Uint16ArrayConstructByLength(this,V);
}
}else{
throw %make_type_error(27,"Uint16Array")
}
}
function Uint16ArraySubArray(ax,ay){
var az=(%_ToInteger(ax));
if(!(ay===(void 0))){
var aA=(%_ToInteger(ay));
var aB=%_TypedArrayGetLength(this);
}else{
var aB=%_TypedArrayGetLength(this);
var aA=aB;
}
if(az<0){
az=y(0,aB+az);
}else{
az=z(az,aB);
}
if(aA<0){
aA=y(0,aB+aA);
}else{
aA=z(aA,aB);
}
if(aA<az){
aA=az;
}
var aC=aA-az;
var aD=
%_ArrayBufferViewGetByteOffset(this)+az*2;
return new J(%TypedArrayGetBuffer(this),aD,aC);
}

function Int16ArrayConstructByArrayBuffer(ab,ac,ad,ae){
if(!(ad===(void 0))){
ad=D(ad,170);
}
if(!(ae===(void 0))){
ae=D(ae,170);
}
if(ae>%_MaxSmi()){
throw %make_range_error(170);
}
var af=%_ArrayBufferGetByteLength(ac);
var ag;
if((ad===(void 0))){
ag=0;
}else{
ag=ad;
if(ag % 2!==0){
throw %make_range_error(169,
"start offset","Int16Array",2);
}
}
var ah;
if((ae===(void 0))){
if(af % 2!==0){
throw %make_range_error(169,
"byte length","Int16Array",2);
}
ah=af-ag;
if(ah<0){
throw %make_range_error(169,
"byte length","Int16Array",2);
}
}else{
ah=ae*2;
if(ag+ah>af){
throw %make_range_error(170);
}
}
%_TypedArrayInitialize(ab,4,ac,ag,ah,true);
}
function Int16ArrayConstructByLength(ab,ae){
var ai=(ae===(void 0))?
0:D(ae,170);
if(ae>%_MaxSmi()){
throw %make_range_error(170);
}
var aj=ai*2;
if(aj>%_TypedArrayMaxSizeInHeap()){
var ac=new h(aj);
%_TypedArrayInitialize(ab,4,ac,0,aj,true);
}else{
%_TypedArrayInitialize(ab,4,null,0,aj,true);
}
}
function Int16ArrayConstructByArrayLike(ab,ak,ae){
var ai=C(ae,170);
if(ai>%_MaxSmi()){
throw %make_range_error(170);
}
var al=false;
var aj=ai*2;
if(aj<=%_TypedArrayMaxSizeInHeap()){
%_TypedArrayInitialize(ab,4,null,0,aj,false);
}else{
al=
%TypedArrayInitializeFromArrayLike(ab,4,ak,ai);
}
if(!al){
for(var am=0;am<ai;am++){
ab[am]=ak[am];
}
}
}
function Int16ArrayConstructByIterable(ab,an,ao){
var ap=new x();
var aq=%_Call(ao,an);
var ar={
__proto__:null
};
ar[E]=function(){return aq;}
for(var as of ar){
ap.push(as);
}
Int16ArrayConstructByArrayLike(ab,ap,ap.length);
}
function Int16ArrayConstructByTypedArray(ab,S){
var at=%TypedArrayGetBuffer(S);
var ae=%_TypedArrayGetLength(S);
var aj=%_ArrayBufferViewGetByteLength(S);
var ah=ae*2;
Int16ArrayConstructByArrayLike(ab,S,ae);
var au=B(at,h);
var av=au.prototype;
if((%_IsJSReceiver(av))&&av!==i){
%InternalSetPrototype(%TypedArrayGetBuffer(ab),av);
}
}
function Int16ArrayConstructor(V,W,aw){
if(!(new.target===(void 0))){
if((%_ClassOf(V)==='ArrayBuffer')||(%_ClassOf(V)==='SharedArrayBuffer')){
Int16ArrayConstructByArrayBuffer(this,V,W,aw);
}else if((%_IsTypedArray(V))){
Int16ArrayConstructByTypedArray(this,V);
}else if((%_IsJSReceiver(V))){
var ao=V[E];
if((ao===(void 0))||ao===d){
Int16ArrayConstructByArrayLike(this,V,V.length);
}else{
Int16ArrayConstructByIterable(this,V,ao);
}
}else{
Int16ArrayConstructByLength(this,V);
}
}else{
throw %make_type_error(27,"Int16Array")
}
}
function Int16ArraySubArray(ax,ay){
var az=(%_ToInteger(ax));
if(!(ay===(void 0))){
var aA=(%_ToInteger(ay));
var aB=%_TypedArrayGetLength(this);
}else{
var aB=%_TypedArrayGetLength(this);
var aA=aB;
}
if(az<0){
az=y(0,aB+az);
}else{
az=z(az,aB);
}
if(aA<0){
aA=y(0,aB+aA);
}else{
aA=z(aA,aB);
}
if(aA<az){
aA=az;
}
var aC=aA-az;
var aD=
%_ArrayBufferViewGetByteOffset(this)+az*2;
return new K(%TypedArrayGetBuffer(this),aD,aC);
}

function Uint32ArrayConstructByArrayBuffer(ab,ac,ad,ae){
if(!(ad===(void 0))){
ad=D(ad,170);
}
if(!(ae===(void 0))){
ae=D(ae,170);
}
if(ae>%_MaxSmi()){
throw %make_range_error(170);
}
var af=%_ArrayBufferGetByteLength(ac);
var ag;
if((ad===(void 0))){
ag=0;
}else{
ag=ad;
if(ag % 4!==0){
throw %make_range_error(169,
"start offset","Uint32Array",4);
}
}
var ah;
if((ae===(void 0))){
if(af % 4!==0){
throw %make_range_error(169,
"byte length","Uint32Array",4);
}
ah=af-ag;
if(ah<0){
throw %make_range_error(169,
"byte length","Uint32Array",4);
}
}else{
ah=ae*4;
if(ag+ah>af){
throw %make_range_error(170);
}
}
%_TypedArrayInitialize(ab,5,ac,ag,ah,true);
}
function Uint32ArrayConstructByLength(ab,ae){
var ai=(ae===(void 0))?
0:D(ae,170);
if(ae>%_MaxSmi()){
throw %make_range_error(170);
}
var aj=ai*4;
if(aj>%_TypedArrayMaxSizeInHeap()){
var ac=new h(aj);
%_TypedArrayInitialize(ab,5,ac,0,aj,true);
}else{
%_TypedArrayInitialize(ab,5,null,0,aj,true);
}
}
function Uint32ArrayConstructByArrayLike(ab,ak,ae){
var ai=C(ae,170);
if(ai>%_MaxSmi()){
throw %make_range_error(170);
}
var al=false;
var aj=ai*4;
if(aj<=%_TypedArrayMaxSizeInHeap()){
%_TypedArrayInitialize(ab,5,null,0,aj,false);
}else{
al=
%TypedArrayInitializeFromArrayLike(ab,5,ak,ai);
}
if(!al){
for(var am=0;am<ai;am++){
ab[am]=ak[am];
}
}
}
function Uint32ArrayConstructByIterable(ab,an,ao){
var ap=new x();
var aq=%_Call(ao,an);
var ar={
__proto__:null
};
ar[E]=function(){return aq;}
for(var as of ar){
ap.push(as);
}
Uint32ArrayConstructByArrayLike(ab,ap,ap.length);
}
function Uint32ArrayConstructByTypedArray(ab,S){
var at=%TypedArrayGetBuffer(S);
var ae=%_TypedArrayGetLength(S);
var aj=%_ArrayBufferViewGetByteLength(S);
var ah=ae*4;
Uint32ArrayConstructByArrayLike(ab,S,ae);
var au=B(at,h);
var av=au.prototype;
if((%_IsJSReceiver(av))&&av!==i){
%InternalSetPrototype(%TypedArrayGetBuffer(ab),av);
}
}
function Uint32ArrayConstructor(V,W,aw){
if(!(new.target===(void 0))){
if((%_ClassOf(V)==='ArrayBuffer')||(%_ClassOf(V)==='SharedArrayBuffer')){
Uint32ArrayConstructByArrayBuffer(this,V,W,aw);
}else if((%_IsTypedArray(V))){
Uint32ArrayConstructByTypedArray(this,V);
}else if((%_IsJSReceiver(V))){
var ao=V[E];
if((ao===(void 0))||ao===d){
Uint32ArrayConstructByArrayLike(this,V,V.length);
}else{
Uint32ArrayConstructByIterable(this,V,ao);
}
}else{
Uint32ArrayConstructByLength(this,V);
}
}else{
throw %make_type_error(27,"Uint32Array")
}
}
function Uint32ArraySubArray(ax,ay){
var az=(%_ToInteger(ax));
if(!(ay===(void 0))){
var aA=(%_ToInteger(ay));
var aB=%_TypedArrayGetLength(this);
}else{
var aB=%_TypedArrayGetLength(this);
var aA=aB;
}
if(az<0){
az=y(0,aB+az);
}else{
az=z(az,aB);
}
if(aA<0){
aA=y(0,aB+aA);
}else{
aA=z(aA,aB);
}
if(aA<az){
aA=az;
}
var aC=aA-az;
var aD=
%_ArrayBufferViewGetByteOffset(this)+az*4;
return new L(%TypedArrayGetBuffer(this),aD,aC);
}

function Int32ArrayConstructByArrayBuffer(ab,ac,ad,ae){
if(!(ad===(void 0))){
ad=D(ad,170);
}
if(!(ae===(void 0))){
ae=D(ae,170);
}
if(ae>%_MaxSmi()){
throw %make_range_error(170);
}
var af=%_ArrayBufferGetByteLength(ac);
var ag;
if((ad===(void 0))){
ag=0;
}else{
ag=ad;
if(ag % 4!==0){
throw %make_range_error(169,
"start offset","Int32Array",4);
}
}
var ah;
if((ae===(void 0))){
if(af % 4!==0){
throw %make_range_error(169,
"byte length","Int32Array",4);
}
ah=af-ag;
if(ah<0){
throw %make_range_error(169,
"byte length","Int32Array",4);
}
}else{
ah=ae*4;
if(ag+ah>af){
throw %make_range_error(170);
}
}
%_TypedArrayInitialize(ab,6,ac,ag,ah,true);
}
function Int32ArrayConstructByLength(ab,ae){
var ai=(ae===(void 0))?
0:D(ae,170);
if(ae>%_MaxSmi()){
throw %make_range_error(170);
}
var aj=ai*4;
if(aj>%_TypedArrayMaxSizeInHeap()){
var ac=new h(aj);
%_TypedArrayInitialize(ab,6,ac,0,aj,true);
}else{
%_TypedArrayInitialize(ab,6,null,0,aj,true);
}
}
function Int32ArrayConstructByArrayLike(ab,ak,ae){
var ai=C(ae,170);
if(ai>%_MaxSmi()){
throw %make_range_error(170);
}
var al=false;
var aj=ai*4;
if(aj<=%_TypedArrayMaxSizeInHeap()){
%_TypedArrayInitialize(ab,6,null,0,aj,false);
}else{
al=
%TypedArrayInitializeFromArrayLike(ab,6,ak,ai);
}
if(!al){
for(var am=0;am<ai;am++){
ab[am]=ak[am];
}
}
}
function Int32ArrayConstructByIterable(ab,an,ao){
var ap=new x();
var aq=%_Call(ao,an);
var ar={
__proto__:null
};
ar[E]=function(){return aq;}
for(var as of ar){
ap.push(as);
}
Int32ArrayConstructByArrayLike(ab,ap,ap.length);
}
function Int32ArrayConstructByTypedArray(ab,S){
var at=%TypedArrayGetBuffer(S);
var ae=%_TypedArrayGetLength(S);
var aj=%_ArrayBufferViewGetByteLength(S);
var ah=ae*4;
Int32ArrayConstructByArrayLike(ab,S,ae);
var au=B(at,h);
var av=au.prototype;
if((%_IsJSReceiver(av))&&av!==i){
%InternalSetPrototype(%TypedArrayGetBuffer(ab),av);
}
}
function Int32ArrayConstructor(V,W,aw){
if(!(new.target===(void 0))){
if((%_ClassOf(V)==='ArrayBuffer')||(%_ClassOf(V)==='SharedArrayBuffer')){
Int32ArrayConstructByArrayBuffer(this,V,W,aw);
}else if((%_IsTypedArray(V))){
Int32ArrayConstructByTypedArray(this,V);
}else if((%_IsJSReceiver(V))){
var ao=V[E];
if((ao===(void 0))||ao===d){
Int32ArrayConstructByArrayLike(this,V,V.length);
}else{
Int32ArrayConstructByIterable(this,V,ao);
}
}else{
Int32ArrayConstructByLength(this,V);
}
}else{
throw %make_type_error(27,"Int32Array")
}
}
function Int32ArraySubArray(ax,ay){
var az=(%_ToInteger(ax));
if(!(ay===(void 0))){
var aA=(%_ToInteger(ay));
var aB=%_TypedArrayGetLength(this);
}else{
var aB=%_TypedArrayGetLength(this);
var aA=aB;
}
if(az<0){
az=y(0,aB+az);
}else{
az=z(az,aB);
}
if(aA<0){
aA=y(0,aB+aA);
}else{
aA=z(aA,aB);
}
if(aA<az){
aA=az;
}
var aC=aA-az;
var aD=
%_ArrayBufferViewGetByteOffset(this)+az*4;
return new M(%TypedArrayGetBuffer(this),aD,aC);
}

function Float32ArrayConstructByArrayBuffer(ab,ac,ad,ae){
if(!(ad===(void 0))){
ad=D(ad,170);
}
if(!(ae===(void 0))){
ae=D(ae,170);
}
if(ae>%_MaxSmi()){
throw %make_range_error(170);
}
var af=%_ArrayBufferGetByteLength(ac);
var ag;
if((ad===(void 0))){
ag=0;
}else{
ag=ad;
if(ag % 4!==0){
throw %make_range_error(169,
"start offset","Float32Array",4);
}
}
var ah;
if((ae===(void 0))){
if(af % 4!==0){
throw %make_range_error(169,
"byte length","Float32Array",4);
}
ah=af-ag;
if(ah<0){
throw %make_range_error(169,
"byte length","Float32Array",4);
}
}else{
ah=ae*4;
if(ag+ah>af){
throw %make_range_error(170);
}
}
%_TypedArrayInitialize(ab,7,ac,ag,ah,true);
}
function Float32ArrayConstructByLength(ab,ae){
var ai=(ae===(void 0))?
0:D(ae,170);
if(ae>%_MaxSmi()){
throw %make_range_error(170);
}
var aj=ai*4;
if(aj>%_TypedArrayMaxSizeInHeap()){
var ac=new h(aj);
%_TypedArrayInitialize(ab,7,ac,0,aj,true);
}else{
%_TypedArrayInitialize(ab,7,null,0,aj,true);
}
}
function Float32ArrayConstructByArrayLike(ab,ak,ae){
var ai=C(ae,170);
if(ai>%_MaxSmi()){
throw %make_range_error(170);
}
var al=false;
var aj=ai*4;
if(aj<=%_TypedArrayMaxSizeInHeap()){
%_TypedArrayInitialize(ab,7,null,0,aj,false);
}else{
al=
%TypedArrayInitializeFromArrayLike(ab,7,ak,ai);
}
if(!al){
for(var am=0;am<ai;am++){
ab[am]=ak[am];
}
}
}
function Float32ArrayConstructByIterable(ab,an,ao){
var ap=new x();
var aq=%_Call(ao,an);
var ar={
__proto__:null
};
ar[E]=function(){return aq;}
for(var as of ar){
ap.push(as);
}
Float32ArrayConstructByArrayLike(ab,ap,ap.length);
}
function Float32ArrayConstructByTypedArray(ab,S){
var at=%TypedArrayGetBuffer(S);
var ae=%_TypedArrayGetLength(S);
var aj=%_ArrayBufferViewGetByteLength(S);
var ah=ae*4;
Float32ArrayConstructByArrayLike(ab,S,ae);
var au=B(at,h);
var av=au.prototype;
if((%_IsJSReceiver(av))&&av!==i){
%InternalSetPrototype(%TypedArrayGetBuffer(ab),av);
}
}
function Float32ArrayConstructor(V,W,aw){
if(!(new.target===(void 0))){
if((%_ClassOf(V)==='ArrayBuffer')||(%_ClassOf(V)==='SharedArrayBuffer')){
Float32ArrayConstructByArrayBuffer(this,V,W,aw);
}else if((%_IsTypedArray(V))){
Float32ArrayConstructByTypedArray(this,V);
}else if((%_IsJSReceiver(V))){
var ao=V[E];
if((ao===(void 0))||ao===d){
Float32ArrayConstructByArrayLike(this,V,V.length);
}else{
Float32ArrayConstructByIterable(this,V,ao);
}
}else{
Float32ArrayConstructByLength(this,V);
}
}else{
throw %make_type_error(27,"Float32Array")
}
}
function Float32ArraySubArray(ax,ay){
var az=(%_ToInteger(ax));
if(!(ay===(void 0))){
var aA=(%_ToInteger(ay));
var aB=%_TypedArrayGetLength(this);
}else{
var aB=%_TypedArrayGetLength(this);
var aA=aB;
}
if(az<0){
az=y(0,aB+az);
}else{
az=z(az,aB);
}
if(aA<0){
aA=y(0,aB+aA);
}else{
aA=z(aA,aB);
}
if(aA<az){
aA=az;
}
var aC=aA-az;
var aD=
%_ArrayBufferViewGetByteOffset(this)+az*4;
return new N(%TypedArrayGetBuffer(this),aD,aC);
}

function Float64ArrayConstructByArrayBuffer(ab,ac,ad,ae){
if(!(ad===(void 0))){
ad=D(ad,170);
}
if(!(ae===(void 0))){
ae=D(ae,170);
}
if(ae>%_MaxSmi()){
throw %make_range_error(170);
}
var af=%_ArrayBufferGetByteLength(ac);
var ag;
if((ad===(void 0))){
ag=0;
}else{
ag=ad;
if(ag % 8!==0){
throw %make_range_error(169,
"start offset","Float64Array",8);
}
}
var ah;
if((ae===(void 0))){
if(af % 8!==0){
throw %make_range_error(169,
"byte length","Float64Array",8);
}
ah=af-ag;
if(ah<0){
throw %make_range_error(169,
"byte length","Float64Array",8);
}
}else{
ah=ae*8;
if(ag+ah>af){
throw %make_range_error(170);
}
}
%_TypedArrayInitialize(ab,8,ac,ag,ah,true);
}
function Float64ArrayConstructByLength(ab,ae){
var ai=(ae===(void 0))?
0:D(ae,170);
if(ae>%_MaxSmi()){
throw %make_range_error(170);
}
var aj=ai*8;
if(aj>%_TypedArrayMaxSizeInHeap()){
var ac=new h(aj);
%_TypedArrayInitialize(ab,8,ac,0,aj,true);
}else{
%_TypedArrayInitialize(ab,8,null,0,aj,true);
}
}
function Float64ArrayConstructByArrayLike(ab,ak,ae){
var ai=C(ae,170);
if(ai>%_MaxSmi()){
throw %make_range_error(170);
}
var al=false;
var aj=ai*8;
if(aj<=%_TypedArrayMaxSizeInHeap()){
%_TypedArrayInitialize(ab,8,null,0,aj,false);
}else{
al=
%TypedArrayInitializeFromArrayLike(ab,8,ak,ai);
}
if(!al){
for(var am=0;am<ai;am++){
ab[am]=ak[am];
}
}
}
function Float64ArrayConstructByIterable(ab,an,ao){
var ap=new x();
var aq=%_Call(ao,an);
var ar={
__proto__:null
};
ar[E]=function(){return aq;}
for(var as of ar){
ap.push(as);
}
Float64ArrayConstructByArrayLike(ab,ap,ap.length);
}
function Float64ArrayConstructByTypedArray(ab,S){
var at=%TypedArrayGetBuffer(S);
var ae=%_TypedArrayGetLength(S);
var aj=%_ArrayBufferViewGetByteLength(S);
var ah=ae*8;
Float64ArrayConstructByArrayLike(ab,S,ae);
var au=B(at,h);
var av=au.prototype;
if((%_IsJSReceiver(av))&&av!==i){
%InternalSetPrototype(%TypedArrayGetBuffer(ab),av);
}
}
function Float64ArrayConstructor(V,W,aw){
if(!(new.target===(void 0))){
if((%_ClassOf(V)==='ArrayBuffer')||(%_ClassOf(V)==='SharedArrayBuffer')){
Float64ArrayConstructByArrayBuffer(this,V,W,aw);
}else if((%_IsTypedArray(V))){
Float64ArrayConstructByTypedArray(this,V);
}else if((%_IsJSReceiver(V))){
var ao=V[E];
if((ao===(void 0))||ao===d){
Float64ArrayConstructByArrayLike(this,V,V.length);
}else{
Float64ArrayConstructByIterable(this,V,ao);
}
}else{
Float64ArrayConstructByLength(this,V);
}
}else{
throw %make_type_error(27,"Float64Array")
}
}
function Float64ArraySubArray(ax,ay){
var az=(%_ToInteger(ax));
if(!(ay===(void 0))){
var aA=(%_ToInteger(ay));
var aB=%_TypedArrayGetLength(this);
}else{
var aB=%_TypedArrayGetLength(this);
var aA=aB;
}
if(az<0){
az=y(0,aB+az);
}else{
az=z(az,aB);
}
if(aA<0){
aA=y(0,aB+aA);
}else{
aA=z(aA,aB);
}
if(aA<az){
aA=az;
}
var aC=aA-az;
var aD=
%_ArrayBufferViewGetByteOffset(this)+az*8;
return new O(%TypedArrayGetBuffer(this),aD,aC);
}

function Uint8ClampedArrayConstructByArrayBuffer(ab,ac,ad,ae){
if(!(ad===(void 0))){
ad=D(ad,170);
}
if(!(ae===(void 0))){
ae=D(ae,170);
}
if(ae>%_MaxSmi()){
throw %make_range_error(170);
}
var af=%_ArrayBufferGetByteLength(ac);
var ag;
if((ad===(void 0))){
ag=0;
}else{
ag=ad;
if(ag % 1!==0){
throw %make_range_error(169,
"start offset","Uint8ClampedArray",1);
}
}
var ah;
if((ae===(void 0))){
if(af % 1!==0){
throw %make_range_error(169,
"byte length","Uint8ClampedArray",1);
}
ah=af-ag;
if(ah<0){
throw %make_range_error(169,
"byte length","Uint8ClampedArray",1);
}
}else{
ah=ae*1;
if(ag+ah>af){
throw %make_range_error(170);
}
}
%_TypedArrayInitialize(ab,9,ac,ag,ah,true);
}
function Uint8ClampedArrayConstructByLength(ab,ae){
var ai=(ae===(void 0))?
0:D(ae,170);
if(ae>%_MaxSmi()){
throw %make_range_error(170);
}
var aj=ai*1;
if(aj>%_TypedArrayMaxSizeInHeap()){
var ac=new h(aj);
%_TypedArrayInitialize(ab,9,ac,0,aj,true);
}else{
%_TypedArrayInitialize(ab,9,null,0,aj,true);
}
}
function Uint8ClampedArrayConstructByArrayLike(ab,ak,ae){
var ai=C(ae,170);
if(ai>%_MaxSmi()){
throw %make_range_error(170);
}
var al=false;
var aj=ai*1;
if(aj<=%_TypedArrayMaxSizeInHeap()){
%_TypedArrayInitialize(ab,9,null,0,aj,false);
}else{
al=
%TypedArrayInitializeFromArrayLike(ab,9,ak,ai);
}
if(!al){
for(var am=0;am<ai;am++){
ab[am]=ak[am];
}
}
}
function Uint8ClampedArrayConstructByIterable(ab,an,ao){
var ap=new x();
var aq=%_Call(ao,an);
var ar={
__proto__:null
};
ar[E]=function(){return aq;}
for(var as of ar){
ap.push(as);
}
Uint8ClampedArrayConstructByArrayLike(ab,ap,ap.length);
}
function Uint8ClampedArrayConstructByTypedArray(ab,S){
var at=%TypedArrayGetBuffer(S);
var ae=%_TypedArrayGetLength(S);
var aj=%_ArrayBufferViewGetByteLength(S);
var ah=ae*1;
Uint8ClampedArrayConstructByArrayLike(ab,S,ae);
var au=B(at,h);
var av=au.prototype;
if((%_IsJSReceiver(av))&&av!==i){
%InternalSetPrototype(%TypedArrayGetBuffer(ab),av);
}
}
function Uint8ClampedArrayConstructor(V,W,aw){
if(!(new.target===(void 0))){
if((%_ClassOf(V)==='ArrayBuffer')||(%_ClassOf(V)==='SharedArrayBuffer')){
Uint8ClampedArrayConstructByArrayBuffer(this,V,W,aw);
}else if((%_IsTypedArray(V))){
Uint8ClampedArrayConstructByTypedArray(this,V);
}else if((%_IsJSReceiver(V))){
var ao=V[E];
if((ao===(void 0))||ao===d){
Uint8ClampedArrayConstructByArrayLike(this,V,V.length);
}else{
Uint8ClampedArrayConstructByIterable(this,V,ao);
}
}else{
Uint8ClampedArrayConstructByLength(this,V);
}
}else{
throw %make_type_error(27,"Uint8ClampedArray")
}
}
function Uint8ClampedArraySubArray(ax,ay){
var az=(%_ToInteger(ax));
if(!(ay===(void 0))){
var aA=(%_ToInteger(ay));
var aB=%_TypedArrayGetLength(this);
}else{
var aB=%_TypedArrayGetLength(this);
var aA=aB;
}
if(az<0){
az=y(0,aB+az);
}else{
az=z(az,aB);
}
if(aA<0){
aA=y(0,aB+aA);
}else{
aA=z(aA,aB);
}
if(aA<az){
aA=az;
}
var aC=aA-az;
var aD=
%_ArrayBufferViewGetByteOffset(this)+az*1;
return new P(%TypedArrayGetBuffer(this),aD,aC);
}


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

case"Int8Array":
return %_Call(Int8ArraySubArray,this,ax,ay);

case"Uint16Array":
return %_Call(Uint16ArraySubArray,this,ax,ay);

case"Int16Array":
return %_Call(Int16ArraySubArray,this,ax,ay);

case"Uint32Array":
return %_Call(Uint32ArraySubArray,this,ax,ay);

case"Int32Array":
return %_Call(Int32ArraySubArray,this,ax,ay);

case"Float32Array":
return %_Call(Float32ArraySubArray,this,ax,ay);

case"Float64Array":
return %_Call(Float64ArraySubArray,this,ax,ay);

case"Uint8ClampedArray":
return %_Call(Uint8ClampedArraySubArray,this,ax,ay);


}
throw %make_type_error(45,
"get TypedArray.prototype.subarray",this);
}
%SetForceInlineFlag(TypedArraySubArray);
function TypedArraySetFromArrayLike(aE,aF,aG,ag){
if(ag>0){
for(var am=0;am<aG;am++){
aE[ag+am]=aF[am];
}
}
else{
for(var am=0;am<aG;am++){
aE[am]=aF[am];
}
}
}
function TypedArraySetFromOverlappingTypedArray(aE,aF,ag){
var aH=aF.BYTES_PER_ELEMENT;
var aI=aE.BYTES_PER_ELEMENT;
var aG=%_TypedArrayGetLength(aF);
function CopyLeftPart(){
var aJ=aE.byteOffset+(ag+1)*aI;
var aK=aF.byteOffset;
for(var aL=0;
aL<aG&&aJ<=aK;
aL++){
aE[ag+aL]=aF[aL];
aJ+=aI;
aK+=aH;
}
return aL;
}
var aL=CopyLeftPart();
function CopyRightPart(){
var aJ=
aE.byteOffset+(ag+aG-1)*aI;
var aK=
aF.byteOffset+aG*aH;
for(var aM=aG-1;
aM>=aL&&aJ>=aK;
aM--){
aE[ag+aM]=aF[aM];
aJ-=aI;
aK-=aH;
}
return aM;
}
var aM=CopyRightPart();
var aN=new g(aM+1-aL);
for(var am=aL;am<=aM;am++){
aN[am-aL]=aF[am];
}
for(am=aL;am<=aM;am++){
aE[ag+am]=aN[am-aL];
}
}
function TypedArraySet(ab,ag){
var aO=(ag===(void 0))?0:(%_ToInteger(ag));
if(aO<0)throw %make_type_error(182);
if(aO>%_MaxSmi()){
throw %make_range_error(183);
}
switch(%TypedArraySetFastCases(this,ab,aO)){
case 0:
return;
case 1:
TypedArraySetFromOverlappingTypedArray(this,ab,aO);
return;
case 2:
TypedArraySetFromArrayLike(this,
ab,%_TypedArrayGetLength(ab),aO);
return;
case 3:
var ai=ab.length;
if((ai===(void 0))){
if((typeof(ab)==='number')){
throw %make_type_error(47);
}
return;
}
ai=(%_ToLength(ai));
if(aO+ai>%_TypedArrayGetLength(this)){
throw %make_range_error(183);
}
TypedArraySetFromArrayLike(this,ab,ai,aO);
return;
}
}
%FunctionSetLength(TypedArraySet,1);
function TypedArrayGetToStringTag(){
if(!(%_IsTypedArray(this)))return;
var aP=%_ClassOf(this);
if((aP===(void 0)))return;
return aP;
}
function TypedArrayCopyWithin(aE,aQ,ay){
if(!(%_IsTypedArray(this)))throw %make_type_error(73);
var ae=%_TypedArrayGetLength(this);
return k(aE,aQ,ay,this,ae);
}
%FunctionSetLength(TypedArrayCopyWithin,2);
function TypedArrayEvery(aR,aS){
if(!(%_IsTypedArray(this)))throw %make_type_error(73);
var ae=%_TypedArrayGetLength(this);
return l(aR,aS,this,ae);
}
%FunctionSetLength(TypedArrayEvery,1);
function TypedArrayForEach(aR,aS){
if(!(%_IsTypedArray(this)))throw %make_type_error(73);
var ae=%_TypedArrayGetLength(this);
q(aR,aS,this,ae);
}
%FunctionSetLength(TypedArrayForEach,1);
function TypedArrayFill(as,aQ,ay){
if(!(%_IsTypedArray(this)))throw %make_type_error(73);
var ae=%_TypedArrayGetLength(this);
return m(as,aQ,ay,this,ae);
}
%FunctionSetLength(TypedArrayFill,1);
function TypedArrayFilter(aR,aT){
if(!(%_IsTypedArray(this)))throw %make_type_error(73);
var ae=%_TypedArrayGetLength(this);
if(!(typeof(aR)==='function'))throw %make_type_error(15,aR);
var aU=new x();
n(aR,aT,this,ae,aU);
var aV=aU.length;
var aW=TypedArraySpeciesCreate(this,aV);
for(var am=0;am<aV;am++){
aW[am]=aU[am];
}
return aW;
}
%FunctionSetLength(TypedArrayFilter,1);
function TypedArrayFind(aX,aT){
if(!(%_IsTypedArray(this)))throw %make_type_error(73);
var ae=%_TypedArrayGetLength(this);
return o(aX,aT,this,ae);
}
%FunctionSetLength(TypedArrayFind,1);
function TypedArrayFindIndex(aX,aT){
if(!(%_IsTypedArray(this)))throw %make_type_error(73);
var ae=%_TypedArrayGetLength(this);
return p(aX,aT,this,ae);
}
%FunctionSetLength(TypedArrayFindIndex,1);
function TypedArrayReverse(){
if(!(%_IsTypedArray(this)))throw %make_type_error(73);
var ae=%_TypedArrayGetLength(this);
return A(this,ae);
}
function TypedArrayComparefn(aY,aZ){
if(aY===0&&aY===aZ){
aY=1/aY;
aZ=1/aZ;
}
if(aY<aZ){
return-1;
}else if(aY>aZ){
return 1;
}else if((!%_IsSmi(%IS_VAR(aY))&&!(aY==aY))&&(!%_IsSmi(%IS_VAR(aZ))&&!(aZ==aZ))){
return(!%_IsSmi(%IS_VAR(aZ))&&!(aZ==aZ))?0:1;
}else if((!%_IsSmi(%IS_VAR(aY))&&!(aY==aY))){
return 1;
}
return 0;
}
function TypedArraySort(ba){
if(!(%_IsTypedArray(this)))throw %make_type_error(73);
var ae=%_TypedArrayGetLength(this);
if((ba===(void 0))){
ba=TypedArrayComparefn;
}
return v(this,ae,ba);
}
function TypedArrayIndexOf(bb,bc){
if(!(%_IsTypedArray(this)))throw %make_type_error(73);
var ae=%_TypedArrayGetLength(this);
if(ae===0)return-1;
if(!(typeof(bb)==='number'))return-1;
var bd=(%_ToInteger(bc));
var be;
if(bd===0){
be=0;
}else if(bd>0){
be=bd;
}else{
be=ae+bd;
if(be<0){
be=0;
}
}
while(be<ae){
var bf=this[be];
if(bb===bf){
return be;
}
++be;
}
return-1;
}
%FunctionSetLength(TypedArrayIndexOf,1);
function TypedArrayLastIndexOf(bb,bc){
if(!(%_IsTypedArray(this)))throw %make_type_error(73);
var ae=%_TypedArrayGetLength(this);
if(ae===0)return-1;
if(!(typeof(bb)==='number'))return-1;
var bd;
if(arguments.length<2){
bd=ae-1;
}else{
bd=(%_ToInteger(bc));
}
var be;
if(bd>=0){
if(ae<=bd){
be=ae-1;
}else if(bd===0){
be=0;
}else{
be=bd;
}
}else{
be=ae+bd;
}
while(be>=0){
var bf=this[be];
if(bb===bf){
return be;
}
--be;
}
return-1;
}
%FunctionSetLength(TypedArrayLastIndexOf,1);
function TypedArrayMap(aR,aT){
if(!(%_IsTypedArray(this)))throw %make_type_error(73);
var ae=%_TypedArrayGetLength(this);
var aU=TypedArraySpeciesCreate(this,ae);
if(!(typeof(aR)==='function'))throw %make_type_error(15,aR);
for(var am=0;am<ae;am++){
var bb=this[am];
aU[am]=%_Call(aR,aT,bb,am,this);
}
return aU;
}
%FunctionSetLength(TypedArrayMap,1);
function TypedArraySome(aR,aS){
if(!(%_IsTypedArray(this)))throw %make_type_error(73);
var ae=%_TypedArrayGetLength(this);
return u(aR,aS,this,ae);
}
%FunctionSetLength(TypedArraySome,1);
function TypedArrayToLocaleString(){
if(!(%_IsTypedArray(this)))throw %make_type_error(73);
var ae=%_TypedArrayGetLength(this);
return w(this,ae);
}
function TypedArrayJoin(bg){
if(!(%_IsTypedArray(this)))throw %make_type_error(73);
var ae=%_TypedArrayGetLength(this);
return r(bg,this,ae);
}
function TypedArrayReduce(bh,bi){
if(!(%_IsTypedArray(this)))throw %make_type_error(73);
var ae=%_TypedArrayGetLength(this);
return s(bh,bi,this,ae,
arguments.length);
}
%FunctionSetLength(TypedArrayReduce,1);
function TypedArrayReduceRight(bh,bi){
if(!(%_IsTypedArray(this)))throw %make_type_error(73);
var ae=%_TypedArrayGetLength(this);
return t(bh,bi,this,ae,
arguments.length);
}
%FunctionSetLength(TypedArrayReduceRight,1);
function TypedArraySlice(aQ,ay){
if(!(%_IsTypedArray(this)))throw %make_type_error(73);
var bj=%_TypedArrayGetLength(this);
var bk=(%_ToInteger(aQ));
var be;
if(bk<0){
be=y(bj+bk,0);
}else{
be=z(bk,bj);
}
var bl;
if((ay===(void 0))){
bl=bj;
}else{
bl=(%_ToInteger(ay));
}
var bm;
if(bl<0){
bm=y(bj+bl,0);
}else{
bm=z(bl,bj);
}
var bn=y(bm-be,0);
var bo=TypedArraySpeciesCreate(this,bn);
var bd=0;
while(be<bm){
var bp=this[be];
bo[bd]=bp;
be++;
bd++;
}
return bo;
}
function TypedArrayIncludes(bq,br){
if(!(%_IsTypedArray(this)))throw %make_type_error(73);
var ae=%_TypedArrayGetLength(this);
if(ae===0)return false;
var bd=(%_ToInteger(br));
var be;
if(bd>=0){
be=bd;
}else{
be=ae+bd;
if(be<0){
be=0;
}
}
while(be<ae){
var bf=this[be];
if(%SameValueZero(bq,bf)){
return true;
}
++be;
}
return false;
}
%FunctionSetLength(TypedArrayIncludes,1);
function TypedArrayOf(){
var ae=arguments.length;
var bo=TypedArrayCreate(this,ae);
for(var am=0;am<ae;am++){
bo[am]=arguments[am];
}
return bo;
}
function IterableToArrayLike(bs){
var an=f(bs,E);
if(!(an===(void 0))){
var bt=new x();
var am=0;
for(var as of
{[E](){return e(bs,an)}}){
bt[am]=as;
am++;
}
var bo=[];
%MoveArrayContents(bt,bo);
return bo;
}
return(%_ToObject(bs));
}
function TypedArrayFrom(aF,bu,aT){
if(!%IsConstructor(this))throw %make_type_error(67,this);
var bv;
if(!(bu===(void 0))){
if(!(typeof(bu)==='function'))throw %make_type_error(15,this);
bv=true;
}else{
bv=false;
}
var ak=IterableToArrayLike(aF);
var ae=(%_ToLength(ak.length));
var bw=TypedArrayCreate(this,ae);
var as,bx;
for(var am=0;am<ae;am++){
as=ak[am];
if(bv){
bx=%_Call(bu,aT,as,am);
}else{
bx=as;
}
bw[am]=bx;
}
return bw;
}
%FunctionSetLength(TypedArrayFrom,1);
function TypedArrayConstructor(){
throw %make_type_error(24,"TypedArray");
}
function TypedArraySpecies(){
return this;
}
%SetCode(Q,TypedArrayConstructor);
b.InstallFunctions(Q,2,[
"from",TypedArrayFrom,
"of",TypedArrayOf
]);
b.InstallGetter(Q,F,TypedArraySpecies);
b.InstallGetter(Q.prototype,G,
TypedArrayGetToStringTag);
b.InstallFunctions(Q.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(Q.prototype,"toString",c,
2);
%SetCode(H,Uint8ArrayConstructor);
%FunctionSetPrototype(H,new j());
%InternalSetPrototype(H,Q);
%InternalSetPrototype(H.prototype,Q.prototype);
%AddNamedProperty(H,"BYTES_PER_ELEMENT",1,
1|2|4);
%AddNamedProperty(H.prototype,
"constructor",a.Uint8Array,2);
%AddNamedProperty(H.prototype,
"BYTES_PER_ELEMENT",1,
1|2|4);

%SetCode(I,Int8ArrayConstructor);
%FunctionSetPrototype(I,new j());
%InternalSetPrototype(I,Q);
%InternalSetPrototype(I.prototype,Q.prototype);
%AddNamedProperty(I,"BYTES_PER_ELEMENT",1,
1|2|4);
%AddNamedProperty(I.prototype,
"constructor",a.Int8Array,2);
%AddNamedProperty(I.prototype,
"BYTES_PER_ELEMENT",1,
1|2|4);

%SetCode(J,Uint16ArrayConstructor);
%FunctionSetPrototype(J,new j());
%InternalSetPrototype(J,Q);
%InternalSetPrototype(J.prototype,Q.prototype);
%AddNamedProperty(J,"BYTES_PER_ELEMENT",2,
1|2|4);
%AddNamedProperty(J.prototype,
"constructor",a.Uint16Array,2);
%AddNamedProperty(J.prototype,
"BYTES_PER_ELEMENT",2,
1|2|4);

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

%SetCode(L,Uint32ArrayConstructor);
%FunctionSetPrototype(L,new j());
%InternalSetPrototype(L,Q);
%InternalSetPrototype(L.prototype,Q.prototype);
%AddNamedProperty(L,"BYTES_PER_ELEMENT",4,
1|2|4);
%AddNamedProperty(L.prototype,
"constructor",a.Uint32Array,2);
%AddNamedProperty(L.prototype,
"BYTES_PER_ELEMENT",4,
1|2|4);

%SetCode(M,Int32ArrayConstructor);
%FunctionSetPrototype(M,new j());
%InternalSetPrototype(M,Q);
%InternalSetPrototype(M.prototype,Q.prototype);
%AddNamedProperty(M,"BYTES_PER_ELEMENT",4,
1|2|4);
%AddNamedProperty(M.prototype,
"constructor",a.Int32Array,2);
%AddNamedProperty(M.prototype,
"BYTES_PER_ELEMENT",4,
1|2|4);

%SetCode(N,Float32ArrayConstructor);
%FunctionSetPrototype(N,new j());
%InternalSetPrototype(N,Q);
%InternalSetPrototype(N.prototype,Q.prototype);
%AddNamedProperty(N,"BYTES_PER_ELEMENT",4,
1|2|4);
%AddNamedProperty(N.prototype,
"constructor",a.Float32Array,2);
%AddNamedProperty(N.prototype,
"BYTES_PER_ELEMENT",4,
1|2|4);

%SetCode(O,Float64ArrayConstructor);
%FunctionSetPrototype(O,new j());
%InternalSetPrototype(O,Q);
%InternalSetPrototype(O.prototype,Q.prototype);
%AddNamedProperty(O,"BYTES_PER_ELEMENT",8,
1|2|4);
%AddNamedProperty(O.prototype,
"constructor",a.Float64Array,2);
%AddNamedProperty(O.prototype,
"BYTES_PER_ELEMENT",8,
1|2|4);

%SetCode(P,Uint8ClampedArrayConstructor);
%FunctionSetPrototype(P,new j());
%InternalSetPrototype(P,Q);
%InternalSetPrototype(P.prototype,Q.prototype);
%AddNamedProperty(P,"BYTES_PER_ELEMENT",1,
1|2|4);
%AddNamedProperty(P.prototype,
"constructor",a.Uint8ClampedArray,2);
%AddNamedProperty(P.prototype,
"BYTES_PER_ELEMENT",1,
1|2|4);


})

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

<weak-collectionµ0
(function(a,b){
"use strict";
%CheckIsBootstrapping();
var c;
var d;
var e=a.Object;
var f=a.WeakMap;
var g=a.WeakSet;
var h=b.ImportNow("to_string_tag_symbol");
b.Import(function(i){
c=i.GetExistingHash;
d=i.GetHash;
});
function WeakMapConstructor(j){
if((new.target===(void 0))){
throw %make_type_error(27,"WeakMap");
}
%WeakCollectionInitialize(this);
if(!(j==null)){
var k=this.set;
if(!(typeof(k)==='function')){
throw %make_type_error(87,k,'set',this);
}
for(var l of j){
if(!(%_IsJSReceiver(l))){
throw %make_type_error(52,l);
}
%_Call(k,this,l[0],l[1]);
}
}
}
function WeakMapGet(m){
if(!(%_ClassOf(this)==='WeakMap')){
throw %make_type_error(45,
'WeakMap.prototype.get',this);
}
if(!(%_IsJSReceiver(m)))return(void 0);
var n=c(m);
if((n===(void 0)))return(void 0);
return %WeakCollectionGet(this,m,n);
}
function WeakMapSet(m,o){
if(!(%_ClassOf(this)==='WeakMap')){
throw %make_type_error(45,
'WeakMap.prototype.set',this);
}
if(!(%_IsJSReceiver(m)))throw %make_type_error(165);
return %WeakCollectionSet(this,m,o,d(m));
}
function WeakMapHas(m){
if(!(%_ClassOf(this)==='WeakMap')){
throw %make_type_error(45,
'WeakMap.prototype.has',this);
}
if(!(%_IsJSReceiver(m)))return false;
var n=c(m);
if((n===(void 0)))return false;
return %WeakCollectionHas(this,m,n);
}
function WeakMapDelete(m){
if(!(%_ClassOf(this)==='WeakMap')){
throw %make_type_error(45,
'WeakMap.prototype.delete',this);
}
if(!(%_IsJSReceiver(m)))return false;
var n=c(m);
if((n===(void 0)))return false;
return %WeakCollectionDelete(this,m,n);
}
%SetCode(f,WeakMapConstructor);
%FunctionSetLength(f,0);
%FunctionSetPrototype(f,new e());
%AddNamedProperty(f.prototype,"constructor",f,
2);
%AddNamedProperty(f.prototype,h,"WeakMap",
2|1);
b.InstallFunctions(f.prototype,2,[
"get",WeakMapGet,
"set",WeakMapSet,
"has",WeakMapHas,
"delete",WeakMapDelete
]);
function WeakSetConstructor(j){
if((new.target===(void 0))){
throw %make_type_error(27,"WeakSet");
}
%WeakCollectionInitialize(this);
if(!(j==null)){
var k=this.add;
if(!(typeof(k)==='function')){
throw %make_type_error(87,k,'add',this);
}
for(var o of j){
%_Call(k,this,o);
}
}
}
function WeakSetAdd(o){
if(!(%_ClassOf(this)==='WeakSet')){
throw %make_type_error(45,
'WeakSet.prototype.add',this);
}
if(!(%_IsJSReceiver(o)))throw %make_type_error(166);
return %WeakCollectionSet(this,o,true,d(o));
}
function WeakSetHas(o){
if(!(%_ClassOf(this)==='WeakSet')){
throw %make_type_error(45,
'WeakSet.prototype.has',this);
}
if(!(%_IsJSReceiver(o)))return false;
var n=c(o);
if((n===(void 0)))return false;
return %WeakCollectionHas(this,o,n);
}
function WeakSetDelete(o){
if(!(%_ClassOf(this)==='WeakSet')){
throw %make_type_error(45,
'WeakSet.prototype.delete',this);
}
if(!(%_IsJSReceiver(o)))return false;
var n=c(o);
if((n===(void 0)))return false;
return %WeakCollectionDelete(this,o,n);
}
%SetCode(g,WeakSetConstructor);
%FunctionSetLength(g,0);
%FunctionSetPrototype(g,new e());
%AddNamedProperty(g.prototype,"constructor",g,
2);
%AddNamedProperty(g.prototype,h,"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=b.ImportNow("MapIterator");
var g=b.ImportNow("to_string_tag_symbol");
var h=b.ImportNow("SetIterator");
function SetIteratorConstructor(i,j){
%SetIteratorInitialize(this,i,j);
}
function SetIteratorNextJS(){
if(!(%_ClassOf(this)==='Set Iterator')){
throw %make_type_error(45,
'Set Iterator.prototype.next',this);
}
var k=[(void 0),(void 0)];
var l=%_CreateIterResultObject(k,false);
switch(%SetIteratorNext(this,k)){
case 0:
l.value=(void 0);
l.done=true;
break;
case 2:
l.value=k[0];
break;
case 3:
k[1]=k[0];
break;
}
return l;
}
function SetEntries(){
if(!(%_ClassOf(this)==='Set')){
throw %make_type_error(45,
'Set.prototype.entries',this);
}
return new h(this,3);
}
function SetValues(){
if(!(%_ClassOf(this)==='Set')){
throw %make_type_error(45,
'Set.prototype.values',this);
}
return new h(this,2);
}
%SetCode(h,SetIteratorConstructor);
%FunctionSetInstanceClassName(h,'Set Iterator');
b.InstallFunctions(h.prototype,2,[
'next',SetIteratorNextJS
]);
%AddNamedProperty(h.prototype,g,
"Set Iterator",1|2);
b.InstallFunctions(d.prototype,2,[
'entries',SetEntries,
'keys',SetValues,
'values',SetValues
]);
%AddNamedProperty(d.prototype,e,SetValues,2);
function MapIteratorConstructor(m,j){
%MapIteratorInitialize(this,m,j);
}
function MapIteratorNextJS(){
if(!(%_ClassOf(this)==='Map Iterator')){
throw %make_type_error(45,
'Map Iterator.prototype.next',this);
}
var k=[(void 0),(void 0)];
var l=%_CreateIterResultObject(k,false);
switch(%MapIteratorNext(this,k)){
case 0:
l.value=(void 0);
l.done=true;
break;
case 1:
l.value=k[0];
break;
case 2:
l.value=k[1];
break;
}
return l;
}
function MapEntries(){
if(!(%_ClassOf(this)==='Map')){
throw %make_type_error(45,
'Map.prototype.entries',this);
}
return new f(this,3);
}
function MapKeys(){
if(!(%_ClassOf(this)==='Map')){
throw %make_type_error(45,
'Map.prototype.keys',this);
}
return new f(this,1);
}
function MapValues(){
if(!(%_ClassOf(this)==='Map')){
throw %make_type_error(45,
'Map.prototype.values',this);
}
return new f(this,2);
}
%SetCode(f,MapIteratorConstructor);
%FunctionSetInstanceClassName(f,'Map Iterator');
b.InstallFunctions(f.prototype,2,[
'next',MapIteratorNextJS
]);
%AddNamedProperty(f.prototype,g,
"Map Iterator",1|2);
b.InstallFunctions(c.prototype,2,[
'entries',MapEntries,
'keys',MapKeys,
'values',MapValues
]);
%AddNamedProperty(c.prototype,e,MapEntries,2);
b.Export(function(n){
n.MapEntries=MapEntries;
n.MapIteratorNext=MapIteratorNextJS;
n.SetIteratorNext=SetIteratorNextJS;
n.SetValues=SetValues;
});
})

promiseM
(function(a,b,c){
"use strict";
%CheckIsBootstrapping();
var d=b.InternalArray;
var e=
b.ImportNow("promise_async_stack_id_symbol");
var f=
b.ImportNow("promise_handled_by_symbol");
var g=
b.ImportNow("promise_forwarding_handler_symbol");
var h=
b.ImportNow("promise_has_handler_symbol");
var i=
b.ImportNow("promise_reject_reactions_symbol");
var j=
b.ImportNow("promise_fulfill_reactions_symbol");
var k=
b.ImportNow("promise_deferred_reaction_symbol");
var l=
b.ImportNow("promise_handled_hint_symbol");
var m=b.ImportNow("promise_raw_symbol");
var n=b.ImportNow("promise_state_symbol");
var o=b.ImportNow("promise_result_symbol");
var p;
var q=b.ImportNow("species_symbol");
var r=b.ImportNow("to_string_tag_symbol");
var s;
b.Import(function(t){
s=t.ObjectHasOwnProperty;
p=t.SpeciesConstructor;
});
const kPending=0;
const kFulfilled=+1;
const kRejected=+2;
const kResolveCallback=0;
const kRejectCallback=1;
var u=function Promise(v){
if(v===m){
return %_NewObject(u,new.target);
}
if((new.target===(void 0)))throw %make_type_error(66,this);
if(!(typeof(v)==='function')){
throw %make_type_error(128,v);
}
var w=PromiseInit(%_NewObject(u,new.target));
var x=%create_resolving_functions(w,true);
var y=(%_DebugIsActive()!=0);
try{
if(y)%DebugPushPromise(w);
v(x[kResolveCallback],x[kRejectCallback]);
}%catch(e){
%_Call(x[kRejectCallback],(void 0),e);
}finally{
if(y)%DebugPopPromise();
}
return w;
}
function PromiseSet(w,z,A){
(w[n]=z);
(w[o]=A);
(w[j]=(void 0));
(w[i]=(void 0));
(w[k]=(void 0));
return w;
}
function PromiseCreateAndSet(z,A){
var w=new u(m);
if((%_DebugIsActive()!=0))PromiseSet(w,kPending,(void 0));
return PromiseSet(w,z,A);
}
function PromiseInit(w){
return PromiseSet(w,kPending,(void 0));
}
function PromiseHandle(A,B,C){
var y=(%_DebugIsActive()!=0);
try{
if(y)%DebugPushPromise(C.promise);
var D=B(A);
if((C.resolve===(void 0))){
ResolvePromise(C.promise,D);
}else{
%_Call(C.resolve,(void 0),D);
}
}%catch(exception){
try{
if((C.reject===(void 0))){
%PromiseReject(C.promise,exception,false);
PromiseSet(C.promise,kRejected,exception);
}else{
%_Call(C.reject,(void 0),exception);
}
}catch(e){}
}finally{
if(y)%DebugPopPromise();
}
}
function PromiseDebugGetInfo(E,z){
var F,G,H=(%_DebugIsActive()!=0);
if(H){
if(!(E===(void 0))&&
(%_Call(s,E.promise,f))&&
(%_Call(s,(E.promise[f]),e))){
F=((E.promise[f])[e]);
G="async function";
}else{
F=%DebugNextMicrotaskId();
G=z===kFulfilled?"Promise.resolve":"Promise.reject";
%DebugAsyncTaskEvent("enqueue",F,G);
}
}
return[F,G];
}
function PromiseAttachCallbacks(w,C,I,J){
var K=
(w[j]);
if((K===(void 0))){
(w[j]=I);
(w[i]=J);
(w[k]=C);
}else if(!(%_IsArray(K))){
var L=new d();
var M=new d();
var N=(w[k]);
L.push(
K,N,I,C);
M.push((w[i]),
N,
J,
C);
(w[j]=L);
(w[i]=M);
(w[k]=(void 0));
}else{
K.push(I,C);
(w[i]).push(J,C);
}
}
function PromiseIdResolveHandler(O){return O;}
function PromiseIdRejectHandler(P){%_ReThrow(P);}
(PromiseIdRejectHandler[g]=true);
function IsPromise(O){
return(%_IsJSReceiver(O))&&(!(O[n]===(void 0)));
}
function PromiseCreate(){
return PromiseInit(new u(m));
}
function ResolvePromise(w,Q){
if(Q===w){
var R=%make_type_error(83,Q);
%PromiseReject(w,R,true);
PromiseSet(w,kRejected,R);
return;
}
if((%_IsJSReceiver(Q))){
try{
var S=Q.then;
}catch(e){
%PromiseReject(w,e,true);
PromiseSet(w,kRejected,e);
return;
}
if(IsPromise(Q)&&S===PromiseThen){
var T=(Q[n]);
if(T===kFulfilled){
var U=(Q[o]);
%PromiseFulfill(w,kFulfilled,U,
j);
PromiseSet(w,kFulfilled,U);
(w[h]=true);
return;
}else if(T===kRejected){
var U=(Q[o]);
if(!(!(Q[h]===(void 0)))){
%PromiseRevokeReject(Q);
}
%PromiseReject(w,U,false);
PromiseSet(w,kRejected,U);
(Q[h]=true);
return;
}
}
if((typeof(S)==='function')){
if((%_DebugIsActive()!=0)&&IsPromise(Q)){
(Q[f]=w);
}
%EnqueuePromiseResolveThenableJob(w,Q,S);
return;
}
}
%PromiseFulfill(w,kFulfilled,Q,
j);
PromiseSet(w,kFulfilled,Q);
}
function RejectPromise(w,V,W){
%PromiseReject(w,V,W);
PromiseSet(w,kRejected,V);
}
function DoRejectPromise(w,V){
%PromiseReject(w,V,true);
PromiseSet(w,kRejected,V);
}
function NewPromiseCapability(X,W){
if(X===u){
var w=PromiseCreate();
var x=%create_resolving_functions(w,W);
return{
promise:w,
resolve:x[kResolveCallback],
reject:x[kRejectCallback]
};
}
var D={promise:(void 0),resolve:(void 0),reject:(void 0)};
D.promise=new X((resolve,reject)=>{
if(!(D.resolve===(void 0))||!(D.reject===(void 0)))
throw %make_type_error(84);
D.resolve=resolve;
D.reject=reject;
});
if(!(typeof(D.resolve)==='function')||!(typeof(D.reject)==='function'))
throw %make_type_error(85);
return D;
}
function PromiseReject(P){
if(!(%_IsJSReceiver(this))){
throw %make_type_error(16,PromiseResolve);
}
if(this===u){
var w=PromiseCreateAndSet(kRejected,P);
%PromiseRejectEventFromStack(w,P);
return w;
}else{
var Y=NewPromiseCapability(this,true);
%_Call(Y.reject,(void 0),P);
return Y.promise;
}
}
function PerformPromiseThen(w,I,J,Z){
if(!(typeof(I)==='function'))I=PromiseIdResolveHandler;
if(!(typeof(J)==='function'))J=PromiseIdRejectHandler;
var z=(w[n]);
switch(z){
case kPending:
PromiseAttachCallbacks(w,Z,I,J);
break;
case kFulfilled:
%EnqueuePromiseReactionJob((w[o]),
I,Z,kFulfilled);
break;
case kRejected:
if(!(!(w[h]===(void 0)))){
%PromiseRevokeReject(w);
}
%EnqueuePromiseReactionJob((w[o]),
J,Z,kRejected);
break;
}
(w[h]=true);
return Z.promise;
}
function PromiseThen(I,J){
var z=(this[n]);
if((z===(void 0))){
throw %make_type_error(66,this);
}
var aa=p(this,u);
var Z;
if(aa===u){
Z={
promise:PromiseCreate(),
resolve:(void 0),
reject:(void 0)
};
}else{
Z=NewPromiseCapability(aa,false);
}
return PerformPromiseThen(this,I,J,Z);
}
function PromiseCatch(J){
return this.then((void 0),J);
}
function PromiseResolve(O){
if(!(%_IsJSReceiver(this))){
throw %make_type_error(16,PromiseResolve);
}
if(IsPromise(O)&&O.constructor===this)return O;
if(this===u){
var w=PromiseCreate();
ResolvePromise(w,O);
return w;
}
var Y=NewPromiseCapability(this,true);
%_Call(Y.resolve,(void 0),O);
return Y.promise;
}
function PromiseAll(ab){
if(!(%_IsJSReceiver(this))){
throw %make_type_error(16,"Promise.all");
}
var C=NewPromiseCapability(this,false);
var ac=new d();
var ad;
var H=(%_DebugIsActive()!=0);
if(H){
(C.reject[g]=true);
}
function CreateResolveElementFunction(ae,af,Y){
var ag=false;
return(O)=>{
if(ag===true)return;
ag=true;
af[ae]=O;
if(--ad===0){
var ah=[];
%MoveArrayContents(af,ah);
%_Call(Y.resolve,(void 0),ah);
}
};
}
try{
var ai=0;
ad=1;
for(var A of ab){
var aj=this.resolve(A);
++ad;
var ak=aj.then(
CreateResolveElementFunction(ai,ac,C),
C.reject);
if(H&&IsPromise(ak)){
(ak[f]=C.promise);
}
++ai;
}
if(--ad===0){
var ah=[];
%MoveArrayContents(ac,ah);
%_Call(C.resolve,(void 0),ah);
}
}catch(e){
%_Call(C.reject,(void 0),e);
}
return C.promise;
}
function PromiseRace(ab){
if(!(%_IsJSReceiver(this))){
throw %make_type_error(16,PromiseRace);
}
var C=NewPromiseCapability(this,false);
var H=(%_DebugIsActive()!=0);
if(H){
(C.reject[g]=true);
}
try{
for(var A of ab){
var ak=this.resolve(A).then(C.resolve,
C.reject);
if(H&&IsPromise(ak)){
(ak[f]=C.promise);
}
}
}catch(e){
%_Call(C.reject,(void 0),e);
}
return C.promise;
}
function PromiseHasUserDefinedRejectHandlerCheck(B,C){
if((B[g])){
return PromiseHasUserDefinedRejectHandlerRecursive(C.promise);
}
return true;
}
function PromiseHasUserDefinedRejectHandlerRecursive(w){
if((w[l]))return true;
var al=(w[f]);
if(al&&
PromiseHasUserDefinedRejectHandlerRecursive(al)){
return true;
}
var am=(w[i]);
var C=(w[k]);
if((am===(void 0)))return false;
if(!(%_IsArray(am))){
return PromiseHasUserDefinedRejectHandlerCheck(am,C);
}
for(var ai=0;ai<am.length;ai+=2){
if(PromiseHasUserDefinedRejectHandlerCheck(am[ai],am[ai+1])){
return true;
}
}
return false;
}
function PromiseHasUserDefinedRejectHandler(){
return PromiseHasUserDefinedRejectHandlerRecursive(this);
};
function MarkPromiseAsHandled(w){
(w[h]=true);
}
function PromiseSpecies(){
return this;
}
%AddNamedProperty(a,'Promise',u,2);
%AddNamedProperty(u.prototype,r,"Promise",
2|1);
b.InstallFunctions(u,2,[
"reject",PromiseReject,
"all",PromiseAll,
"race",PromiseRace,
"resolve",PromiseResolve
]);
b.InstallGetter(u,q,PromiseSpecies);
b.InstallFunctions(u.prototype,2,[
"then",PromiseThen,
"catch",PromiseCatch
]);
%InstallToContext([
"promise_catch",PromiseCatch,
"promise_create",PromiseCreate,
"promise_has_user_defined_reject_handler",PromiseHasUserDefinedRejectHandler,
"promise_reject",DoRejectPromise,
"promise_internal_reject",RejectPromise,
"promise_resolve",ResolvePromise,
"promise_then",PromiseThen,
"promise_handle",PromiseHandle,
"promise_debug_get_info",PromiseDebugGetInfo
]);
b.InstallFunctions(c,0,[
"createPromise",PromiseCreate,
"resolvePromise",ResolvePromise,
"rejectPromise",DoRejectPromise,
"markPromiseAsHandled",MarkPromiseAsHandled
]);
b.Export(function(an){
an.IsPromise=IsPromise;
an.PromiseCreate=PromiseCreate;
an.PromiseThen=PromiseThen;
an.GlobalPromise=u;
an.NewPromiseCapability=NewPromiseCapability;
an.PerformPromiseThen=PerformPromiseThen;
an.ResolvePromise=ResolvePromise;
an.RejectPromise=RejectPromise;
});
})

 messagesÍ	
(function(a,b){
%CheckIsBootstrapping();
var c=b.ImportNow("Script");
%FunctionSetInstanceClassName(c,'Script');
%AddNamedProperty(c.prototype,'constructor',c,
2|4|1);
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(c,[
"source",
"name",
"source_url",
"source_mapping_url",
"line_offset",
"column_offset"
],[
"locationFromPosition",ScriptLocationFromPosition,
"nameOrSourceURL",ScriptNameOrSourceURL,
]
);
});

$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]);
})

spread5
(function(a,b){
'use strict';
var c=b.InternalArray;
function SpreadArguments(){
var d=arguments.length;
var e=new c();
for(var f=0;f<d;++f){
var g=arguments[f];
var h=g.length;
for(var i=0;i<h;++i){
e.push(g[i]);
}
}
return e;
}
function SpreadIterable(j){
if((j==null)){
throw %make_type_error(71,j);
}
var e=new c();
for(var k of j){
e.push(k);
}
return e;
}
%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
]);
})

,async-awaitÑ
(function(a,b,c){
"use strict";
%CheckIsBootstrapping();
var d;
var e;
var f;
var g;
var h;
var i;
var j;
var k;
var l;
var m;
b.Import(function(n){
d=n.AsyncFunctionNext;
e=n.AsyncFunctionThrow;
f=n.GlobalPromise;
g=n.IsPromise;
h=n.NewPromiseCapability;
i=n.PerformPromiseThen;
j=n.PromiseCreate;
l=n.RejectPromise;
m=n.ResolvePromise;
});
var o=
b.ImportNow("promise_async_stack_id_symbol");
var p=
b.ImportNow("promise_handled_by_symbol");
var q=
b.ImportNow("promise_forwarding_handler_symbol");
var r=
b.ImportNow("promise_handled_hint_symbol");
var s=
b.ImportNow("promise_has_handler_symbol");
function PromiseCastResolved(t){
if(g(t)){
return t;
}else{
var u=j();
m(u,t);
return u;
}
}
function AsyncFunctionAwait(v,w,x){
var u=PromiseCastResolved(w);
var y=sentValue=>{
%_Call(d,v,sentValue);
return;
};
var z=sentError=>{
%_Call(e,v,sentError);
return;
}
var A=h(f,false);
(A.promise[s]=true);
if((%_DebugIsActive()!=0)){
if(g(w)){
(z[q]=true);
}
(A.promise[p]=x);
}
i(u,y,z,A);
}
function AsyncFunctionAwaitUncaught(v,w,x){
AsyncFunctionAwait(v,w,x);
}
function AsyncFunctionAwaitCaught(v,w,x){
if((%_DebugIsActive()!=0)&&g(w)){
(w[r]=true);
}
AsyncFunctionAwait(v,w,x);
}
function RejectPromiseNoDebugEvent(u,B){
return l(u,B,false);
}
function AsyncFunctionPromiseCreate(){
var u=j();
if((%_DebugIsActive()!=0)){
%DebugPushPromise(u);
var C=%DebugNextMicrotaskId();
(u[o]=C);
%DebugAsyncTaskEvent("enqueueRecurring",C,"async function");
}
return u;
}
function AsyncFunctionPromiseRelease(u){
if((%_DebugIsActive()!=0)){
var C=(u[o]);
if(!(C===(void 0))){
%DebugAsyncTaskEvent("cancel",C,"async function");
}
%DebugPopPromise();
}
}
%InstallToContext([
"async_function_await_caught",AsyncFunctionAwaitCaught,
"async_function_await_uncaught",AsyncFunctionAwaitUncaught,
"reject_promise_no_debug_event",RejectPromiseNoDebugEvent,
"async_function_promise_create",AsyncFunctionPromiseCreate,
"async_function_promise_release",AsyncFunctionPromiseRelease,
]);
})

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

<harmony-atomics…(
(function(a,b){
"use strict";
%CheckIsBootstrapping();
var c=a.Object;
var d;
var e=b.ImportNow("to_string_tag_symbol");
b.Import(function(f){
d=f.MaxSimple;
});
function CheckSharedIntegerTypedArray(g){
if(!%IsSharedIntegerTypedArray(g)){
throw %make_type_error(75,g);
}
}
function CheckSharedInteger32TypedArray(g){
CheckSharedIntegerTypedArray(g);
if(!%IsSharedInteger32TypedArray(g)){
throw %make_type_error(76,g);
}
}
function ValidateIndex(h,i){
var j=(%_ToNumber(h));
var k=(%_ToInteger(j));
if(j!==k){
throw %make_range_error(156);
}
if(k<0||k>=i){
throw %make_range_error(156);
}
return k;
}
function AtomicsCompareExchangeJS(l,h,m,n){
CheckSharedIntegerTypedArray(l);
h=ValidateIndex(h,%_TypedArrayGetLength(l));
m=(%_ToNumber(m));
n=(%_ToNumber(n));
return %_AtomicsCompareExchange(l,h,m,n);
}
function AtomicsAddJS(g,h,o){
CheckSharedIntegerTypedArray(g);
h=ValidateIndex(h,%_TypedArrayGetLength(g));
o=(%_ToNumber(o));
return %_AtomicsAdd(g,h,o);
}
function AtomicsSubJS(g,h,o){
CheckSharedIntegerTypedArray(g);
h=ValidateIndex(h,%_TypedArrayGetLength(g));
o=(%_ToNumber(o));
return %_AtomicsSub(g,h,o);
}
function AtomicsAndJS(g,h,o){
CheckSharedIntegerTypedArray(g);
h=ValidateIndex(h,%_TypedArrayGetLength(g));
o=(%_ToNumber(o));
return %_AtomicsAnd(g,h,o);
}
function AtomicsOrJS(g,h,o){
CheckSharedIntegerTypedArray(g);
h=ValidateIndex(h,%_TypedArrayGetLength(g));
o=(%_ToNumber(o));
return %_AtomicsOr(g,h,o);
}
function AtomicsXorJS(g,h,o){
CheckSharedIntegerTypedArray(g);
h=ValidateIndex(h,%_TypedArrayGetLength(g));
o=(%_ToNumber(o));
return %_AtomicsXor(g,h,o);
}
function AtomicsExchangeJS(g,h,o){
CheckSharedIntegerTypedArray(g);
h=ValidateIndex(h,%_TypedArrayGetLength(g));
o=(%_ToNumber(o));
return %_AtomicsExchange(g,h,o);
}
function AtomicsIsLockFreeJS(p){
return %_AtomicsIsLockFree(p);
}
function AtomicsWaitJS(g,h,o,q){
CheckSharedInteger32TypedArray(g);
h=ValidateIndex(h,%_TypedArrayGetLength(g));
if((q===(void 0))){
q=(1/0);
}else{
q=(%_ToNumber(q));
if((!%_IsSmi(%IS_VAR(q))&&!(q==q))){
q=(1/0);
}else{
q=d(0,q);
}
}
return %AtomicsWait(g,h,o,q);
}
function AtomicsWakeJS(g,h,r){
CheckSharedInteger32TypedArray(g);
h=ValidateIndex(h,%_TypedArrayGetLength(g));
r=d(0,(%_ToInteger(r)));
return %AtomicsWake(g,h,r);
}
var s=a.Atomics;
%AddNamedProperty(s,e,"Atomics",1|2);
b.InstallFunctions(s,2,[
"compareExchange",AtomicsCompareExchangeJS,
"add",AtomicsAddJS,
"sub",AtomicsSubJS,
"and",AtomicsAndJS,
"or",AtomicsOrJS,
"xor",AtomicsXorJS,
"exchange",AtomicsExchangeJS,
"isLockFree",AtomicsIsLockFreeJS,
"wait",AtomicsWaitJS,
"wake",AtomicsWakeJS,
]);
})

0harmony-simdŽ´
(function(a,b){
"use strict";
%CheckIsBootstrapping();
var c=a.SIMD;
var d=b.ImportNow("to_string_tag_symbol");
var e=c.Float32x4;


var f=c.Int32x4;

var g=c.Int16x8;

var h=c.Int8x16;


var i=c.Uint32x4;

var j=c.Uint16x8;

var k=c.Uint8x16;


var l=c.Bool32x4;

var m=c.Bool16x8;

var n=c.Bool8x16;



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


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

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

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


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

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

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


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

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

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



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

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

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


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

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

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


function Int16x8AddSaturateJS(o,v){
return %Int16x8AddSaturate(o,v);
}
function Int16x8SubSaturateJS(o,v){
return %Int16x8SubSaturate(o,v);
}

function Int8x16AddSaturateJS(o,v){
return %Int8x16AddSaturate(o,v);
}
function Int8x16SubSaturateJS(o,v){
return %Int8x16SubSaturate(o,v);
}

function Uint8x16AddSaturateJS(o,v){
return %Uint8x16AddSaturate(o,v);
}
function Uint8x16SubSaturateJS(o,v){
return %Uint8x16SubSaturate(o,v);
}

function Uint16x8AddSaturateJS(o,v){
return %Uint16x8AddSaturate(o,v);
}
function Uint16x8SubSaturateJS(o,v){
return %Uint16x8SubSaturate(o,v);
}


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


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

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

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


function Bool32x4ReplaceLaneJS(s,t,p){
return %Bool32x4ReplaceLane(s,t,p);
}
function Bool32x4AnyTrueJS(w){
return %Bool32x4AnyTrue(w);
}
function Bool32x4AllTrueJS(w){
return %Bool32x4AllTrue(w);
}

function Bool16x8ReplaceLaneJS(s,t,p){
return %Bool16x8ReplaceLane(s,t,p);
}
function Bool16x8AnyTrueJS(w){
return %Bool16x8AnyTrue(w);
}
function Bool16x8AllTrueJS(w){
return %Bool16x8AllTrue(w);
}

function Bool8x16ReplaceLaneJS(s,t,p){
return %Bool8x16ReplaceLane(s,t,p);
}
function Bool8x16AnyTrueJS(w){
return %Bool8x16AnyTrue(w);
}
function Bool8x16AllTrueJS(w){
return %Bool8x16AllTrue(w);
}


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


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

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

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


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

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

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



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

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

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


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

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

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


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

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

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



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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


function Float32x4Load1JS(y,z){
return %Float32x4Load1(y,z);
}
function Float32x4Store1JS(y,z,o){
return %Float32x4Store1(y,z,o);
}

function Float32x4Load2JS(y,z){
return %Float32x4Load2(y,z);
}
function Float32x4Store2JS(y,z,o){
return %Float32x4Store2(y,z,o);
}

function Float32x4Load3JS(y,z){
return %Float32x4Load3(y,z);
}
function Float32x4Store3JS(y,z,o){
return %Float32x4Store3(y,z,o);
}

function Int32x4Load1JS(y,z){
return %Int32x4Load1(y,z);
}
function Int32x4Store1JS(y,z,o){
return %Int32x4Store1(y,z,o);
}

function Int32x4Load2JS(y,z){
return %Int32x4Load2(y,z);
}
function Int32x4Store2JS(y,z,o){
return %Int32x4Store2(y,z,o);
}

function Int32x4Load3JS(y,z){
return %Int32x4Load3(y,z);
}
function Int32x4Store3JS(y,z,o){
return %Int32x4Store3(y,z,o);
}

function Uint32x4Load1JS(y,z){
return %Uint32x4Load1(y,z);
}
function Uint32x4Store1JS(y,z,o){
return %Uint32x4Store1(y,z,o);
}

function Uint32x4Load2JS(y,z){
return %Uint32x4Load2(y,z);
}
function Uint32x4Store2JS(y,z,o){
return %Uint32x4Store2(y,z,o);
}

function Uint32x4Load3JS(y,z){
return %Uint32x4Load3(y,z);
}
function Uint32x4Store3JS(y,z,o){
return %Uint32x4Store3(y,z,o);
}


function Float32x4Splat(w){
return %CreateFloat32x4(w,w,w,w);
}
function Float32x4SwizzleJS(o,A,B,C,D){
return %Float32x4Swizzle(o,A,B,C,D);
}
function Float32x4ShuffleJS(o,v,A,B,C,D){
return %Float32x4Shuffle(o,v,A,B,C,D);
}

function Int32x4Splat(w){
return %CreateInt32x4(w,w,w,w);
}
function Int32x4SwizzleJS(o,A,B,C,D){
return %Int32x4Swizzle(o,A,B,C,D);
}
function Int32x4ShuffleJS(o,v,A,B,C,D){
return %Int32x4Shuffle(o,v,A,B,C,D);
}

function Uint32x4Splat(w){
return %CreateUint32x4(w,w,w,w);
}
function Uint32x4SwizzleJS(o,A,B,C,D){
return %Uint32x4Swizzle(o,A,B,C,D);
}
function Uint32x4ShuffleJS(o,v,A,B,C,D){
return %Uint32x4Shuffle(o,v,A,B,C,D);
}

function Bool32x4Splat(w){
return %CreateBool32x4(w,w,w,w);
}
function Bool32x4SwizzleJS(o,A,B,C,D){
return %Bool32x4Swizzle(o,A,B,C,D);
}
function Bool32x4ShuffleJS(o,v,A,B,C,D){
return %Bool32x4Shuffle(o,v,A,B,C,D);
}


function Int16x8Splat(w){
return %CreateInt16x8(w,w,w,w,w,w,w,w);
}
function Int16x8SwizzleJS(o,A,B,C,D,E,F,G,H){
return %Int16x8Swizzle(o,A,B,C,D,E,F,G,H);
}
function Int16x8ShuffleJS(o,v,A,B,C,D,E,F,G,H){
return %Int16x8Shuffle(o,v,A,B,C,D,E,F,G,H);
}

function Uint16x8Splat(w){
return %CreateUint16x8(w,w,w,w,w,w,w,w);
}
function Uint16x8SwizzleJS(o,A,B,C,D,E,F,G,H){
return %Uint16x8Swizzle(o,A,B,C,D,E,F,G,H);
}
function Uint16x8ShuffleJS(o,v,A,B,C,D,E,F,G,H){
return %Uint16x8Shuffle(o,v,A,B,C,D,E,F,G,H);
}

function Bool16x8Splat(w){
return %CreateBool16x8(w,w,w,w,w,w,w,w);
}
function Bool16x8SwizzleJS(o,A,B,C,D,E,F,G,H){
return %Bool16x8Swizzle(o,A,B,C,D,E,F,G,H);
}
function Bool16x8ShuffleJS(o,v,A,B,C,D,E,F,G,H){
return %Bool16x8Shuffle(o,v,A,B,C,D,E,F,G,H);
}


function Int8x16Splat(w){
return %CreateInt8x16(w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w);
}
function Int8x16SwizzleJS(o,A,B,C,D,E,F,G,H,c8,c9,c10,c11,
c12,c13,c14,c15){
return %Int8x16Swizzle(o,A,B,C,D,E,F,G,H,c8,c9,c10,c11,
c12,c13,c14,c15);
}
function Int8x16ShuffleJS(o,v,A,B,C,D,E,F,G,H,c8,c9,c10,
c11,c12,c13,c14,c15){
return %Int8x16Shuffle(o,v,A,B,C,D,E,F,G,H,c8,c9,c10,
c11,c12,c13,c14,c15);
}

function Uint8x16Splat(w){
return %CreateUint8x16(w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w);
}
function Uint8x16SwizzleJS(o,A,B,C,D,E,F,G,H,c8,c9,c10,c11,
c12,c13,c14,c15){
return %Uint8x16Swizzle(o,A,B,C,D,E,F,G,H,c8,c9,c10,c11,
c12,c13,c14,c15);
}
function Uint8x16ShuffleJS(o,v,A,B,C,D,E,F,G,H,c8,c9,c10,
c11,c12,c13,c14,c15){
return %Uint8x16Shuffle(o,v,A,B,C,D,E,F,G,H,c8,c9,c10,
c11,c12,c13,c14,c15);
}

function Bool8x16Splat(w){
return %CreateBool8x16(w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w);
}
function Bool8x16SwizzleJS(o,A,B,C,D,E,F,G,H,c8,c9,c10,c11,
c12,c13,c14,c15){
return %Bool8x16Swizzle(o,A,B,C,D,E,F,G,H,c8,c9,c10,c11,
c12,c13,c14,c15);
}
function Bool8x16ShuffleJS(o,v,A,B,C,D,E,F,G,H,c8,c9,c10,
c11,c12,c13,c14,c15){
return %Bool8x16Shuffle(o,v,A,B,C,D,E,F,G,H,c8,c9,c10,
c11,c12,c13,c14,c15);
}


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


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

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

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


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

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

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


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

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

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



b.InstallFunctions(e,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(f,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(i,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(l,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(g,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(j,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(m,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(h,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(k,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(n,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,
]);
})

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

`datetime-format-to-partsé
(function(a,b){
"use strict";
%CheckIsBootstrapping();
var c=a.Intl;
var d=b.ImportNow("FormatDateToParts");
b.InstallFunctions(c.DateTimeFormat.prototype,2,[
'formatToParts',d
]);
})

@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);
})

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);
});
8ReadableStream–´
(function(global, binding, v8) {
  'use strict';
  const _reader = v8.createPrivateSymbol('[[reader]]');
  const _storedError = v8.createPrivateSymbol('[[storedError]]');
  const _controller = v8.createPrivateSymbol('[[controller]]');
  const _closedPromise = v8.createPrivateSymbol('[[closedPromise]]');
  const _ownerReadableStream =
      v8.createPrivateSymbol('[[ownerReadableStream]]');
  const _readRequests = 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 _underlyingSource = v8.createPrivateSymbol('[[underlyingSource]]');
  const _controlledReadableStream =
      v8.createPrivateSymbol('[[controlledReadableStream]]');
  const _queue = v8.createPrivateSymbol('[[queue]]');
  const _totalQueuedSize = v8.createPrivateSymbol('[[totalQueuedSize]]');
  const _strategySize = v8.createPrivateSymbol('[[strategySize]]');
  const _strategyHWM = 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 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[_reader] = undefined;
      this[_storedError] = undefined;
      this[_controller] = 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[_controller] =
          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') {
        throw new TypeError(errGetReaderNotByteStream);
      }
      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[_controller] !== undefined) {
        throw new TypeError(errIllegalConstructor);
      }
      this[_controlledReadableStream] = stream;
      this[_underlyingSource] = underlyingSource;
      this[_queue] = new v8.InternalPackedArray();
      this[_totalQueuedSize] = 0;
      this[_readableStreamDefaultControllerBits] = 0b0;
      if (isExternallyControlled === true) {
        this[_readableStreamDefaultControllerBits] |= EXTERNALLY_CONTROLLED;
      }
      const normalizedStrategy =
          ValidateAndNormalizeQueuingStrategy(size, highWaterMark);
      this[_strategySize] = normalizedStrategy.size;
      this[_strategyHWM] = 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[_controlledReadableStream];
      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[_controlledReadableStream];
      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[_controlledReadableStream];
      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[_queue] = new v8.InternalPackedArray();
    const underlyingSource = controller[_underlyingSource];
    return PromiseCallOrNoop(underlyingSource, 'cancel', reason, 'underlyingSource.cancel');
  }
  function ReadableStreamDefaultControllerPull(controller) {
    const stream = controller[_controlledReadableStream];
    if (controller[_queue].length > 0) {
      const chunk = DequeueValue(controller);
      if ((controller[_readableStreamDefaultControllerBits] & CLOSE_REQUESTED) &&
          controller[_queue].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[_reader][_readRequests].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[_readRequests] = new v8.InternalPackedArray();
    }
    get closed() {
      if (IsReadableStreamDefaultReader(this) === false) {
        return Promise_reject(new TypeError(errIllegalInvocation));
      }
      return this[_closedPromise];
    }
    cancel(reason) {
      if (IsReadableStreamDefaultReader(this) === false) {
        return Promise_reject(new TypeError(errIllegalInvocation));
      }
      const stream = this[_ownerReadableStream];
      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[_ownerReadableStream] === undefined) {
        return Promise_reject(new TypeError(errReadReleasedReader));
      }
      return ReadableStreamDefaultReaderRead(this);
    }
    releaseLock() {
      if (IsReadableStreamDefaultReader(this) === false) {
        throw new TypeError(errIllegalInvocation);
      }
      const stream = this[_ownerReadableStream];
      if (stream === undefined) {
        return undefined;
      }
      if (this[_readRequests].length > 0) {
        throw new TypeError(errReleaseReaderWithPendingRead);
      }
      ReadableStreamReaderGenericRelease(this);
    }
  }
  function ReadableStreamReaderGenericCancel(reader, reason) {
    return ReadableStreamCancel(reader[_ownerReadableStream], 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[_storedError]);
    }
    ReadableStreamClose(stream);
    const sourceCancelPromise = ReadableStreamDefaultControllerCancel(stream[_controller], reason);
    return thenPromise(sourceCancelPromise, () => undefined);
  }
  function ReadableStreamDefaultControllerClose(controller) {
    const stream = controller[_controlledReadableStream];
    controller[_readableStreamDefaultControllerBits] |= CLOSE_REQUESTED;
    if (controller[_queue].length === 0) {
      ReadableStreamClose(stream);
    }
  }
  function ReadableStreamFulfillReadRequest(stream, chunk, done) {
    const reader = stream[_reader];
    const readRequest = stream[_reader][_readRequests].shift();
    v8.resolvePromise(readRequest, CreateIterResultObject(chunk, done));
  }
  function ReadableStreamDefaultControllerEnqueue(controller, chunk) {
    const stream = controller[_controlledReadableStream];
    if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {
      ReadableStreamFulfillReadRequest(stream, chunk, false);
    } else {
      let chunkSize = 1;
      const strategySize = controller[_strategySize];
      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[_queue] = new v8.InternalPackedArray();
    const stream = controller[_controlledReadableStream];
    ReadableStreamError(stream, e);
  }
  function ReadableStreamError(stream, e) {
    stream[_storedError] = e;
    ReadableStreamSetState(stream, STATE_ERRORED);
    const reader = stream[_reader];
    if (reader === undefined) {
      return undefined;
    }
    if (IsReadableStreamDefaultReader(reader) === true) {
      const readRequests = reader[_readRequests];
      for (let i = 0; i < readRequests.length; i++) {
        v8.rejectPromise(readRequests[i], e);
      }
      reader[_readRequests] = new v8.InternalPackedArray();
    }
    v8.rejectPromise(reader[_closedPromise], e);
  }
  function ReadableStreamClose(stream) {
    ReadableStreamSetState(stream, STATE_CLOSED);
    const reader = stream[_reader];
    if (reader === undefined) {
      return undefined;
    }
    if (IsReadableStreamDefaultReader(reader) === true) {
      const readRequests = reader[_readRequests];
      for (let i = 0; i < readRequests.length; i++) {
        v8.resolvePromise(
            readRequests[i], CreateIterResultObject(undefined, true));
      }
      reader[_readRequests] = new v8.InternalPackedArray();
    }
    v8.resolvePromise(reader[_closedPromise], undefined);
  }
  function ReadableStreamDefaultControllerGetDesiredSize(controller) {
    const queueSize = GetTotalQueueSize(controller);
    return controller[_strategyHWM] - queueSize;
  }
  function IsReadableStream(x) {
    return hasOwnProperty(x, _controller);
  }
  function IsReadableStreamDisturbed(stream) {
    return stream[_readableStreamBits] & DISTURBED;
  }
  function IsReadableStreamLocked(stream) {
    return stream[_reader] !== undefined;
  }
  function IsReadableStreamDefaultController(x) {
    return hasOwnProperty(x, _controlledReadableStream);
  }
  function IsReadableStreamDefaultReader(x) {
    return hasOwnProperty(x, _readRequests);
  }
  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[_controller];
    if (controller[_readableStreamDefaultControllerBits] & EXTERNALLY_CONTROLLED) {
      const underlyingSource = controller[_underlyingSource];
      callFunction(underlyingSource.notifyLockAcquired, underlyingSource);
    }
    reader[_ownerReadableStream] = stream;
    stream[_reader] = reader;
    switch (ReadableStreamGetState(stream)) {
      case STATE_READABLE:
        reader[_closedPromise] = v8.createPromise();
        break;
      case STATE_CLOSED:
        reader[_closedPromise] = Promise_resolve(undefined);
        break;
      case STATE_ERRORED:
        reader[_closedPromise] = Promise_reject(stream[_storedError]);
      break;
    }
  }
  function ReadableStreamReaderGenericRelease(reader) {
    const controller = reader[_ownerReadableStream][_controller];
    if (controller[_readableStreamDefaultControllerBits] & EXTERNALLY_CONTROLLED) {
      const underlyingSource = controller[_underlyingSource];
      callFunction(underlyingSource.notifyLockReleased, underlyingSource);
    }
    if (ReadableStreamGetState(reader[_ownerReadableStream]) === STATE_READABLE) {
      v8.rejectPromise(reader[_closedPromise], new TypeError(errReleasedReaderClosedPromise));
    } else {
      reader[_closedPromise] = Promise_reject(new TypeError(errReleasedReaderClosedPromise));
    }
    reader[_ownerReadableStream][_reader] = undefined;
    reader[_ownerReadableStream] = undefined;
  }
  function ReadableStreamDefaultReaderRead(reader) {
    const stream = reader[_ownerReadableStream];
    stream[_readableStreamBits] |= DISTURBED;
    if (ReadableStreamGetState(stream) === STATE_CLOSED) {
      return Promise_resolve(CreateIterResultObject(undefined, true));
    }
    if (ReadableStreamGetState(stream) === STATE_ERRORED) {
      return Promise_reject(stream[_storedError]);
    }
    return ReadableStreamDefaultControllerPull(stream[_controller]);
  }
  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[_underlyingSource];
    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[_controlledReadableStream]) === STATE_READABLE) {
            ReadableStreamDefaultControllerError(controller, e);
          }
        });
  }
  function ReadableStreamDefaultControllerShouldCallPull(controller) {
    const stream = controller[_controlledReadableStream];
    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[_reader];
    const readRequests = reader[_readRequests];
    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[_controller];
    const branch2 = branch2Stream[_controller];
    thenPromise(
        reader[_closedPromise], 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[_queue].shift();
    controller[_totalQueuedSize] -= 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[_totalQueuedSize] += size;
    controller[_queue].push({value, size});
  }
  function GetTotalQueueSize(controller) { return controller[_totalQueuedSize]; }
  function ValidateAndNormalizeQueuingStrategy(size, highWaterMark) {
    if (size !== undefined && typeof size !== 'function') {
      throw new TypeError(errSizeNotAFunction);
    }
    highWaterMark = Number(highWaterMark);
    if (Number_isNaN(highWaterMark) || 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);
      };
});
8WritableStream& 
(function(global, binding, v8) {
  'use strict';
  const _state = v8.createPrivateSymbol('[[state]]');
  const _storedError = v8.createPrivateSymbol('[[storedError]]');
  const _writer = v8.createPrivateSymbol('[[writer]]');
  const _writableStreamController =
      v8.createPrivateSymbol('[[writableStreamController]]');
  const _writeRequests = v8.createPrivateSymbol('[[writeRequests]]');
  const _closedPromise = v8.createPrivateSymbol('[[closedPromise]]');
  const _ownerWritableStream =
      v8.createPrivateSymbol('[[ownerWritableStream]]');
  const _readyPromise = v8.createPrivateSymbol('[[readyPromise]]');
  const _controlledWritableStream =
      v8.createPrivateSymbol('[[controlledWritableStream]]');
  const _queue = v8.createPrivateSymbol('[[queue]]');
  const _queueSize = v8.createPrivateSymbol('[[queueSize]]');
  const _strategyHWM = v8.createPrivateSymbol('[[strategyHWM]]');
  const _strategySize = v8.createPrivateSymbol('[[strategySize]]');
  const _underlyingSink = v8.createPrivateSymbol('[[underlyingSink]]');
  const _defaultControllerFlags =
      v8.createPrivateSymbol('[[defaultControllerFlags]]');
  const FLAG_STARTED = 0b1;
  const FLAG_WRITING = 0b10;
  const WRITABLE = 0;
  const CLOSING = 1;
  const CLOSED = 2;
  const ERRORED = 3;
  const undefined = global.undefined;
  const defineProperty = global.Object.defineProperty;
  const hasOwnProperty = v8.uncurryThis(global.Object.hasOwnProperty);
  const Function_call = v8.uncurryThis(global.Function.prototype.call);
  const Function_apply = v8.uncurryThis(global.Function.prototype.apply);
  const TypeError = global.TypeError;
  const RangeError = global.RangeError;
  const Boolean = global.Boolean;
  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 errInvalidType = 'Invalid type is specified';
  const errAbortLockedStream =  'Cannot abort a writable stream that is locked to a writer';
  const errStreamAborted = 'The stream has been aborted';
  const errWriterLockReleasedPrefix = 'This writable stream writer has been released and cannot be ';
  const errCloseCloseRequestedStream =
      'Cannot close a writable stream that has already been requested to be closed';
  const errWriteCloseRequestedStream =
      'Cannot write to a writable stream that is due to be closed';
  const templateErrorCannotActionOnStateStream =
      (action, state) => `Cannot ${action} a ${state} writable stream`;
  const errReleasedWriterClosedPromise =
      'This writable stream writer has been released and cannot be used to monitor the stream\'s state';
  const templateErrorIsNotAFunction = f => `${f} is not a function`;
  const errSizeNotAFunction =
      'A queuing strategy\'s size property must be a function';
  const errInvalidHWM =
      'A queuing strategy\'s highWaterMark property must be a non-negative, non-NaN number';
  const errInvalidSize =
      'The return value of a queuing strategy\'s size function must be a finite, non-NaN, non-negative number';
  const verbUsedToGetTheDesiredSize = 'used to get the desiredSize';
  const verbAborted = 'aborted';
  const verbClosed = 'closed';
  const verbWrittenTo = 'written to';
  function createWriterLockReleasedError(verb) {
    return new TypeError(errWriterLockReleasedPrefix + verb);
  }
  const stateNames = {[CLOSED]: 'closed', [ERRORED]: 'errored'};
  function createCannotActionOnStateStreamError(action, state) {
    TEMP_ASSERT(stateNames[state] !== undefined,
                `name for state ${state} exists in stateNames`);
    return new TypeError(
        templateErrorCannotActionOnStateStream(action, stateNames[state]));
  }
  function setDefaultControllerFlag(controller, flag, value) {
    let flags = controller[_defaultControllerFlags];
    if (value) {
      flags = flags | flag;
    } else {
      flags = flags & ~flag;
    }
    controller[_defaultControllerFlags] = flags;
  }
  function getDefaultControllerStartedFlag(controller) {
    return Boolean(controller[_defaultControllerFlags] & FLAG_STARTED);
  }
  function setDefaultControllerStartedFlag(controller, value) {
    setDefaultControllerFlag(controller, FLAG_STARTED, value);
  }
  function getDefaultControllerWritingFlag(controller) {
    return Boolean(controller[_defaultControllerFlags] & FLAG_WRITING);
  }
  function setDefaultControllerWritingFlag(controller, value) {
    setDefaultControllerFlag(controller, FLAG_WRITING, value);
  }
  function rejectPromises(array, e) {
    for (let i = 0; i < array.length; ++i) {
      v8.rejectPromise(array[i], e);
    }
  }
  function IsPropertyKey(argument) {
    return typeof argument === 'string' || typeof argument === 'symbol';
  }
  function TEMP_ASSERT(predicate, message) {
    if (predicate) {
      return;
    }
    v8.log(`Assertion failed: ${message}\n`);
    v8.logStackTrace();
    class WritableStreamInternalError {
    }
    throw new WritableStreamInternalError();
  }
  class WritableStream {
    constructor(underlyingSink = {}, { size, highWaterMark = 1 } = {}) {
      this[_state] = WRITABLE;
      this[_storedError] = undefined;
      this[_writer] = undefined;
      this[_writableStreamController] = undefined;
      this[_writeRequests] = new v8.InternalPackedArray();
      const type = underlyingSink.type;
      if (type !== undefined) {
        throw new RangeError(errInvalidType);
      }
      this[_writableStreamController] =
          new WritableStreamDefaultController(this, underlyingSink, size,
                                              highWaterMark);
    }
    get locked() {
      if (!IsWritableStream(this)) {
        throw new TypeError(errIllegalInvocation);
      }
      return IsWritableStreamLocked(this);
    }
    abort(reason) {
      if (!IsWritableStream(this)) {
        return Promise_reject(new TypeError(errIllegalInvocation));
      }
      if (IsWritableStreamLocked(this)) {
        return Promise_reject(new TypeError(errAbortLockedStream));
      }
      return WritableStreamAbort(this, reason);
    }
    getWriter() {
      if (!IsWritableStream(this)) {
         throw new TypeError(errIllegalInvocation);
      }
      return AcquireWritableStreamDefaultWriter(this);
    }
  }
  function AcquireWritableStreamDefaultWriter(stream) {
    return new WritableStreamDefaultWriter(stream);
  }
  function IsWritableStream(x) {
    return hasOwnProperty(x, _writableStreamController);
  }
  function IsWritableStreamLocked(stream) {
    TEMP_ASSERT(IsWritableStream(stream),
                '! IsWritableStream(stream) is true.');
    return stream[_writer] !== undefined;
  }
  function WritableStreamAbort(stream, reason) {
    const state = stream[_state];
    if (state === CLOSED) {
      return Promise_resolve(undefined);
    }
    if (state === ERRORED) {
      return Promise_reject(stream[_storedError]);
    }
    TEMP_ASSERT(state === WRITABLE || state === CLOSING,
               'state is "writable" or "closing".');
    const error = new TypeError(errStreamAborted);
    WritableStreamError(stream, error);
    return WritableStreamDefaultControllerAbort(
        stream[_writableStreamController], reason);
  }
  function WritableStreamAddWriteRequest(stream) {
    TEMP_ASSERT(IsWritableStreamLocked(stream),
                '! IsWritableStreamLocked(writer) is true.');
    TEMP_ASSERT(stream[_state] === WRITABLE,
                'stream.[[state]] is "writable".');
    const promise = v8.createPromise();
    stream[_writeRequests].push(promise);
    return promise;
  }
  function WritableStreamError(stream, e) {
    const state = stream[_state];
    TEMP_ASSERT(state === WRITABLE || state === CLOSING,
                'state is "writable" or "closing".');
    rejectPromises(stream[_writeRequests], e);
    stream[_writeRequests] = new v8.InternalPackedArray();
    const writer = stream[_writer];
    if (writer !== undefined) {
      v8.rejectPromise(writer[_closedPromise], e);
      if (state === WRITABLE &&
          WritableStreamDefaultControllerGetBackpressure(
              stream[_writableStreamController])) {
        v8.rejectPromise(writer[_readyPromise], e);
      } else {
        writer[_readyPromise] = Promise_reject(e);
      }
    }
    stream[_state] = ERRORED;
    stream[_storedError] = e;
  }
  function WritableStreamFinishClose(stream) {
    TEMP_ASSERT(stream[_state] === CLOSING,
                'stream.[[state]] is "closing".');
    TEMP_ASSERT(stream[_writer] !== undefined,
                'stream.[[writer]] is not undefined.');
    stream[_state] = CLOSED;
    v8.resolvePromise(stream[_writer][_closedPromise], undefined);
  }
  function WritableStreamFulfillWriteRequest(stream) {
    TEMP_ASSERT(stream[_writeRequests].length !== 0,
               'stream.[[writeRequests]] is not empty.');
    const writeRequest = stream[_writeRequests].shift();
    v8.resolvePromise(writeRequest, undefined);
  }
  function WritableStreamUpdateBackpressure(stream, backpressure) {
    TEMP_ASSERT(stream[_state] === WRITABLE,
                'stream.[[state]] is "writable".');
    const writer = stream[_writer];
    if (writer === undefined) {
      return;
    }
    if (backpressure) {
      writer[_readyPromise] = v8.createPromise();
    } else {
      TEMP_ASSERT(backpressure === false,
                  'backpressure is false.');
      v8.resolvePromise(writer[_readyPromise], undefined);
    }
  }
  class WritableStreamDefaultWriter {
    constructor(stream) {
      if (!IsWritableStream(stream)) {
        throw new TypeError(errIllegalConstructor);
      }
      if (IsWritableStreamLocked(stream)) {
        throw new TypeError(errIllegalConstructor);
      }
      this[_ownerWritableStream] = stream;
      stream[_writer] = this;
      const state = stream[_state];
      if (state === WRITABLE || state === CLOSING) {
        this[_closedPromise] = v8.createPromise();
      } else if (state === CLOSED) {
        this[_closedPromise] = Promise_resolve(undefined);
      } else {
        TEMP_ASSERT(state === ERRORED,
                    'state is "errored".');
        this[_closedPromise] = Promise_reject(stream[_storedError]);
      }
      if (state === WRITABLE &&
          WritableStreamDefaultControllerGetBackpressure(
              stream[_writableStreamController])) {
        this[_readyPromise] = v8.createPromise();
      } else {
        this[_readyPromise] = Promise_resolve(undefined);
      }
    }
    get closed() {
      if (!IsWritableStreamDefaultWriter(this)) {
        return Promise_reject(new TypeError(errIllegalInvocation));
      }
      return this[_closedPromise];
    }
    get desiredSize() {
      if (!IsWritableStreamDefaultWriter(this)) {
        throw new TypeError(errIllegalInvocation);
      }
      if (this[_ownerWritableStream] === undefined) {
        throw createWriterLockReleasedError(verbUsedToGetTheDesiredSize);
      }
      return WritableStreamDefaultWriterGetDesiredSize(this);
    }
    get ready() {
      if (!IsWritableStreamDefaultWriter(this)) {
        return Promise_reject(new TypeError(errIllegalInvocation));
      }
      return this[_readyPromise];
    }
    abort(reason) {
     if (!IsWritableStreamDefaultWriter(this)) {
        return Promise_reject(new TypeError(errIllegalInvocation));
      }
      if (this[_ownerWritableStream] === undefined) {
        return Promise_reject(createWriterLockReleasedError(verbAborted));
      }
      return WritableStreamDefaultWriterAbort(this, reason);
    }
    close() {
      if (!IsWritableStreamDefaultWriter(this)) {
        return Promise_reject(new TypeError(errIllegalInvocation));
      }
      const stream = this[_ownerWritableStream];
      if (stream === undefined) {
        return Promise_reject(createWriterLockReleasedError(verbClosed));
      }
      if (stream[_state] === CLOSING) {
        return Promise_reject(new TypeError(errCloseCloseRequestedStream));
      }
      return WritableStreamDefaultWriterClose(this);
    }
    releaseLock() {
      if (!IsWritableStreamDefaultWriter(this)) {
        throw new TypeError(errIllegalInvocation);
      }
      const stream = this[_ownerWritableStream];
      if (stream === undefined) {
        return;
      }
      TEMP_ASSERT(stream[_writer] !== undefined,
                  'stream.[[writer]] is not undefined.');
      WritableStreamDefaultWriterRelease(this);
    }
    write(chunk) {
      if (!IsWritableStreamDefaultWriter(this)) {
        return Promise_reject(new TypeError(errIllegalInvocation));
      }
      const stream = this[_ownerWritableStream];
      if (stream === undefined) {
        return Promise_reject(createWriterLockReleasedError(verbWrittenTo));
      }
      if (stream[_state] === CLOSING) {
        return Promise_reject(new TypeError(errWriteCloseRequestedStream));
      }
      return WritableStreamDefaultWriterWrite(this, chunk);
    }
  }
  function IsWritableStreamDefaultWriter(x) {
    return hasOwnProperty(x, _ownerWritableStream);
  }
  function WritableStreamDefaultWriterAbort(writer, reason) {
    const stream = writer[_ownerWritableStream];
    TEMP_ASSERT(stream !== undefined,
                'stream is not undefined.');
    return WritableStreamAbort(stream, reason);
  }
  function WritableStreamDefaultWriterClose(writer) {
    const stream = writer[_ownerWritableStream];
    TEMP_ASSERT(stream !== undefined,
                'stream is not undefined.');
    const state = stream[_state];
    if (state === CLOSED || state === ERRORED) {
      return Promise_reject(
          createCannotActionOnStateStreamError('close', state));
    }
    TEMP_ASSERT(state === WRITABLE,
                'state is "writable".');
    const promise = WritableStreamAddWriteRequest(stream);
    if (WritableStreamDefaultControllerGetBackpressure(
        stream[_writableStreamController])) {
      v8.resolvePromise(writer[_readyPromise], undefined);
    }
    stream[_state] = CLOSING;
    WritableStreamDefaultControllerClose(stream[_writableStreamController]);
    return promise;
  }
  function WritableStreamDefaultWriterGetDesiredSize(writer) {
    const stream = writer[_ownerWritableStream];
    const state = stream[_state];
    if (state === ERRORED) {
      return null;
    }
    if (state === CLOSED) {
      return 0;
    }
    return WritableStreamDefaultControllerGetDesiredSize(
        stream[_writableStreamController]);
  }
  function WritableStreamDefaultWriterRelease(writer) {
    const stream = writer[_ownerWritableStream];
    TEMP_ASSERT(stream !== undefined,
                'stream is not undefined.');
    TEMP_ASSERT(stream[_writer] === writer,
                'stream.[[writer]] is writer.');
    const releasedError = new TypeError(errReleasedWriterClosedPromise);
    const state = stream[_state];
    if (state === WRITABLE || state === CLOSING) {
      v8.rejectPromise(writer[_closedPromise], releasedError);
    } else {
      writer[_closedPromise] = Promise_reject(releasedError);
    }
    if (state === WRITABLE &&
        WritableStreamDefaultControllerGetBackpressure(
            stream[_writableStreamController])) {
      v8.rejectPromise(writer[_readyPromise], releasedError);
    } else {
      writer[_readyPromise] = Promise_reject(releasedError);
    }
    stream[_writer] = undefined;
    writer[_ownerWritableStream] = undefined;
  }
  function WritableStreamDefaultWriterWrite(writer, chunk) {
    const stream = writer[_ownerWritableStream];
    TEMP_ASSERT(stream !== undefined,
                'stream is not undefined.');
    const state = stream[_state];
    if (state === CLOSED || state === ERRORED) {
      return Promise_reject(
          createCannotActionOnStateStreamError('write to', state));
    }
    TEMP_ASSERT(state === WRITABLE,
                'state is "writable".');
    const promise = WritableStreamAddWriteRequest(stream);
    WritableStreamDefaultControllerWrite(stream[_writableStreamController],
                                         chunk);
    return promise;
  }
  class WritableStreamDefaultController {
    constructor(stream, underlyingSink, size, highWaterMark) {
      if (!IsWritableStream(stream)) {
        throw new TypeError(errIllegalConstructor);
      }
      if (stream[_writableStreamController] !== undefined) {
        throw new TypeError(errIllegalConstructor);
      }
      this[_controlledWritableStream] = stream;
      this[_underlyingSink] = underlyingSink;
      this[_queue] = new v8.InternalPackedArray();
      this[_queueSize] = 0;
      this[_defaultControllerFlags] = 0;
      const normalizedStrategy =
          ValidateAndNormalizeQueuingStrategy(size, highWaterMark);
      this[_strategySize] = normalizedStrategy.size;
      this[_strategyHWM] = normalizedStrategy.highWaterMark;
      const backpressure = WritableStreamDefaultControllerGetBackpressure(this);
      if (backpressure) {
        WritableStreamUpdateBackpressure(stream, backpressure);
      }
      const controller = this;
      const startResult = InvokeOrNoop(underlyingSink, 'start', [this]);
      const onFulfilled = () => {
        setDefaultControllerStartedFlag(controller, true);
        WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);
      };
      const onRejected = r => {
        WritableStreamDefaultControllerErrorIfNeeded(controller, r);
      };
      thenPromise(Promise_resolve(startResult), onFulfilled, onRejected);
    }
    error(e) {
      if (!IsWritableStreamDefaultController(this)) {
        throw new TypeError(errIllegalInvocation);
      }
      const state = this[_controlledWritableStream][_state];
      if (state === CLOSED || state === ERRORED) {
        throw createCannotActionOnStateStreamError('error', state);
      }
      WritableStreamDefaultControllerError(this, e);
    }
  }
  function IsWritableStreamDefaultController(x) {
    return hasOwnProperty(x, _underlyingSink);
  }
  function WritableStreamDefaultControllerAbort(controller, reason) {
    controller[_queue] = v8.InternalPackedArray();
    controller[_queueSize] = 0;
    const sinkAbortPromise =
        PromiseInvokeOrFallbackOrNoop(controller[_underlyingSink],
                                      'abort', [reason], 'close', [controller]);
    return thenPromise(sinkAbortPromise, () => undefined);
  }
  function WritableStreamDefaultControllerClose(controller) {
    EnqueueValueWithSizeForController(controller, 'close', 0);
    WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);
  }
  function WritableStreamDefaultControllerGetDesiredSize(controller) {
    const queueSize = GetTotalQueueSizeForController(controller);
    return controller[_strategyHWM] - queueSize;
  }
  function WritableStreamDefaultControllerWrite(controller, chunk) {
    const stream = controller[_controlledWritableStream];
    TEMP_ASSERT(stream[_state] === WRITABLE,
                'stream.[[state]] is "writable".');
    let chunkSize = 1;
    if (controller[_strategySize] !== undefined) {
      try {
        chunkSize = Function_call(controller[_strategySize], undefined, chunk);
      } catch (e) {
        WritableStreamDefaultControllerErrorIfNeeded(controller, e);
        return Promise_reject(e);
      }
    }
    const writeRecord = {chunk};
    const lastBackpressure =
        WritableStreamDefaultControllerGetBackpressure(controller);
    try {
      const enqueueResult =
          EnqueueValueWithSizeForController(controller, writeRecord, chunkSize);
    } catch (e) {
      WritableStreamDefaultControllerErrorIfNeeded(controller, e);
      return Promise_reject(e);
    }
    if (stream[_state] === WRITABLE) {
      const backpressure =
          WritableStreamDefaultControllerGetBackpressure(controller);
      if (lastBackpressure !== backpressure) {
        WritableStreamUpdateBackpressure(stream, backpressure);
      }
    }
    WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);
  }
  function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {
    const state = controller[_controlledWritableStream][_state];
    if (state === CLOSED || state === ERRORED) {
      return;
    }
    if (!getDefaultControllerStartedFlag(controller)) {
      return;
    }
    if (getDefaultControllerWritingFlag(controller)) {
      return;
    }
    if (controller[_queue].length === 0) {
      return;
    }
    const writeRecord = PeekQueueValue(controller[_queue]);
    if (writeRecord === 'close') {
      WritableStreamDefaultControllerProcessClose(controller);
    } else {
      WritableStreamDefaultControllerProcessWrite(controller,
                                                  writeRecord.chunk);
    }
  }
  function WritableStreamDefaultControllerErrorIfNeeded(controller, e) {
    const state = controller[_controlledWritableStream][_state];
    if (state === WRITABLE || state === CLOSING) {
      WritableStreamDefaultControllerError(controller, e);
    }
  }
  function WritableStreamDefaultControllerProcessClose(controller) {
    const stream = controller[_controlledWritableStream];
    TEMP_ASSERT(stream[_state] === CLOSING,
                'stream.[[state]] is "closing".');
    DequeueValueForController(controller);
    TEMP_ASSERT(controller[_queue].length === 0,
                'controller.[[queue]] is empty.');
    const sinkClosePromise = PromiseInvokeOrNoop(controller[_underlyingSink],
                                               'close', [controller]);
    thenPromise(sinkClosePromise,
                () => {
                  if (stream[_state] !== CLOSING) {
                    return;
                  }
                  WritableStreamFulfillWriteRequest(stream);
                  WritableStreamFinishClose(stream);
                },
                r => WritableStreamDefaultControllerErrorIfNeeded(controller, r)
               );
  }
  function WritableStreamDefaultControllerProcessWrite(controller, chunk) {
    setDefaultControllerWritingFlag(controller, true);
    const sinkWritePromise = PromiseInvokeOrNoop(controller[_underlyingSink],
                                               'write', [chunk, controller]);
    thenPromise(
        sinkWritePromise,
        () => {
          const stream = controller[_controlledWritableStream];
          const state = stream[_state];
          if (state === ERRORED || state === CLOSED) {
            return;
          }
          setDefaultControllerWritingFlag(controller, false);
          WritableStreamFulfillWriteRequest(stream);
          const lastBackpressure =
              WritableStreamDefaultControllerGetBackpressure(controller);
          DequeueValueForController(controller);
          if (state !== CLOSING) {
            const backpressure =
                WritableStreamDefaultControllerGetBackpressure(controller);
            if (lastBackpressure !== backpressure) {
              WritableStreamUpdateBackpressure(
                  controller[_controlledWritableStream], backpressure);
            }
          }
          WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);
        },
        r => WritableStreamDefaultControllerErrorIfNeeded(controller, r)
        );
  }
  function WritableStreamDefaultControllerGetBackpressure(controller) {
    const desiredSize =
        WritableStreamDefaultControllerGetDesiredSize(controller);
    return desiredSize <= 0;
  }
  function WritableStreamDefaultControllerError(controller, e) {
    const stream = controller[_controlledWritableStream];
    const state = stream[_state];
    TEMP_ASSERT(state === WRITABLE || state === CLOSING,
                'stream.[[state]] is "writable" or "closing".');
    WritableStreamError(stream, e);
    controller[_queue] = new v8.InternalPackedArray();
    controller[_queueSize] = 0;
  }
  function DequeueValueForController(controller) {
    TEMP_ASSERT(controller[_queue].length !== 0,
                'queue is not empty.');
    const result = controller[_queue].shift();
    controller[_queueSize] -= result.size;
    return result.value;
  }
  function EnqueueValueWithSizeForController(controller, value, size) {
    size = Number(size);
    if (!IsFiniteNonNegativeNumber(size)) {
      throw new RangeError(errInvalidSize);
    }
    controller[_queueSize] += size;
    controller[_queue].push({value, size});
  }
  function GetTotalQueueSizeForController(controller) {
    return controller[_queueSize];
  }
  function PeekQueueValue(queue) {
    TEMP_ASSERT(queue.length !== 0,
                'queue is not empty.');
    return queue[0].value;
  }
  function InvokeOrNoop(O, P, args) {
    TEMP_ASSERT(IsPropertyKey(P),
                'P is a valid property key.');
    if (args === undefined) {
      args = [];
    }
    const method = O[P];
    if (method === undefined) {
      return undefined;
    }
    if (typeof method !== 'function') {
      throw new TypeError(templateErrorIsNotAFunction(P));
    }
    return Function_apply(method, O, args);
  }
  function IsFiniteNonNegativeNumber(v) {
    return Number_isFinite(v) && v >= 0;
  }
  function PromiseInvokeOrFallbackOrNoop(O, P1, args1, P2, args2) {
    TEMP_ASSERT(IsPropertyKey(P1),
                'P1 is a valid property key.');
    TEMP_ASSERT(IsPropertyKey(P2),
                'P2 is a valid property key.');
    try {
      const method = O[P1];
      if (method === undefined) {
        return PromiseInvokeOrNoop(O, P2, args2);
      }
      if (typeof method !== 'function') {
        return Promise_reject(new TypeError(templateErrorIsNotAFunction(P1)));
      }
      return Promise_resolve(Function_apply(method, O, args1));
    } catch (e) {
      return Promise_reject(e);
    }
  }
  function PromiseInvokeOrNoop(O, P, args) {
    try {
      return Promise_resolve(InvokeOrNoop(O, P, args));
    } catch (e) {
      return Promise_reject(e);
    }
  }
  function ValidateAndNormalizeQueuingStrategy(size, highWaterMark) {
    if (size !== undefined && typeof size !== 'function') {
      throw new TypeError(errSizeNotAFunction);
    }
    highWaterMark = Number(highWaterMark);
    if (Number_isNaN(highWaterMark) || highWaterMark < 0) {
      throw new RangeError(errInvalidHWM);
    }
    return {size, highWaterMark};
  }
  defineProperty(global, 'WritableStream', {
    value: WritableStream,
    enumerable: false,
    configurable: true,
    writable: true
  });
});