}else if((typeof(k)==='boolean') ){ l=new BooleanMirror(k); }else if((typeof(k)==='number')){ l=new NumberMirror(k); }else if((typeof(k)==='string')){ l=new StringMirror(k); }else if((typeof(k)==='symbol')){ l=new SymbolMirror(k); }else if((%_IsArray(k))){ l=new ArrayMirror(k); }else if((%IsDate(k)) ){ l=new DateMirror(k); }else if((%IsFunction(k))){ l=new FunctionMirror(k); }else if(%IsRegExp(k)){ l=new RegExpMirror(k); }else if((%IsJSError(k)) ){ l=new ErrorMirror(k); }else if((%IsScriptWrapper(k)) ){ l=new ScriptMirror(k); }else if((%_IsJSMap(k)) ||(%_IsJSWeakMap(k))){ l=new MapMirror(k); }else if((%_IsJSSet(k)) ||(%_IsJSWeakSet(k))){ l=new SetMirror(k); }else if((%IsJSMapIterator(k)) ||(%IsJSSetIterator(k)) ){ l=new IteratorMirror(k); }else if(%is_promise(k)){ l=new PromiseMirror(k); }else if((%IsJSGeneratorObject(k)) ){ l=new GeneratorMirror(k); }else{ l=new ObjectMirror(k,j.OBJECT_TYPE); } return l; } function GetUndefinedMirror(){ return MakeMirror((void 0)); } function inherits(m,n){ var o=function(){}; o.prototype=n.prototype; m.super_=n.prototype; m.prototype=new o(); m.prototype.constructor=m; } var p=80; var q={}; q.Data=0; q.Accessor=1; var r={}; r.None=0; r.ReadOnly=1; r.DontEnum=2; r.DontDelete=4; var s={Global:0, Local:1, With:2, Closure:3, Catch:4, Block:5, Script:6, Eval:7, Module:8, }; function Mirror(t){ this.type_=t; } 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.toText=function(){ return"#<"+this.constructor.name+">"; }; function ValueMirror(t,k){ %_Call(Mirror,this,t); this.value_=k; } inherits(ValueMirror,Mirror); ValueMirror.prototype.isPrimitive=function(){ var t=this.type(); return t==='undefined'|| t==='null'|| t==='boolean'|| t==='number'|| t==='string'|| t==='symbol'; }; ValueMirror.prototype.value=function(){ return this.value_; }; function UndefinedMirror(){ %_Call(ValueMirror,this,j.UNDEFINED_TYPE,(void 0)); } inherits(UndefinedMirror,ValueMirror); UndefinedMirror.prototype.toText=function(){ return'undefined'; }; function NullMirror(){ %_Call(ValueMirror,this,j.NULL_TYPE,null); } inherits(NullMirror,ValueMirror); NullMirror.prototype.toText=function(){ return'null'; }; function BooleanMirror(k){ %_Call(ValueMirror,this,j.BOOLEAN_TYPE,k); } inherits(BooleanMirror,ValueMirror); BooleanMirror.prototype.toText=function(){ return this.value_?'true':'false'; }; function NumberMirror(k){ %_Call(ValueMirror,this,j.NUMBER_TYPE,k); } inherits(NumberMirror,ValueMirror); NumberMirror.prototype.toText=function(){ return''+this.value_; }; function StringMirror(k){ %_Call(ValueMirror,this,j.STRING_TYPE,k); } inherits(StringMirror,ValueMirror); StringMirror.prototype.length=function(){ return this.value_.length; }; StringMirror.prototype.getTruncatedValue=function(u){ if(u!=-1&&this.length()>u){ return this.value_.substring(0,u)+ '... (length: '+this.length()+')'; } return this.value_; }; StringMirror.prototype.toText=function(){ return this.getTruncatedValue(p); }; function SymbolMirror(k){ %_Call(ValueMirror,this,j.SYMBOL_TYPE,k); } inherits(SymbolMirror,ValueMirror); SymbolMirror.prototype.description=function(){ return %SymbolDescription(%ValueOf(this.value_)); } SymbolMirror.prototype.toText=function(){ return %SymbolDescriptiveString(%ValueOf(this.value_)); } function ObjectMirror(k,t){ t=t||j.OBJECT_TYPE; %_Call(ValueMirror,this,t,k); } 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 v=%GetInterceptorInfo(this.value_); return(v&2)!=0; }; ObjectMirror.prototype.hasIndexedInterceptor=function(){ var v=%GetInterceptorInfo(this.value_); return(v&1)!=0; }; ObjectMirror.prototype.propertyNames=function(){ return %GetOwnPropertyKeys(this.value_,0); }; ObjectMirror.prototype.properties=function(){ var w=this.propertyNames(); var x=new c(w.length); for(var y=0;y'; }; ObjectMirror.GetInternalProperties=function(k){ var x=%DebugGetInternalProperties(k); var D=[]; for(var y=0;yK)return new c(); var L=new c(K-J+1); for(var y=J;y<=K;y++){ var A=%DebugGetPropertyDetails(this.value_,(%_ToString(y))); var k; if(A){ k=new PropertyMirror(this,y,A); }else{ k=GetUndefinedMirror(); } L[y-J]=k; } return L; }; function DateMirror(k){ %_Call(ObjectMirror,this,k); } inherits(DateMirror,ObjectMirror); DateMirror.prototype.toText=function(){ var M=e(this.value_); return M.substring(1,M.length-1); }; function RegExpMirror(k){ %_Call(ObjectMirror,this,k,j.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(k){ %_Call(ObjectMirror,this,k,j.ERROR_TYPE); } inherits(ErrorMirror,ObjectMirror); ErrorMirror.prototype.message=function(){ return this.value_.message; }; ErrorMirror.prototype.toText=function(){ var N; try{ N=%ErrorToString(this.value_); }catch(e){ N='#'; } return N; }; function PromiseMirror(k){ %_Call(ObjectMirror,this,k,j.PROMISE_TYPE); } inherits(PromiseMirror,ObjectMirror); function PromiseGetStatus_(k){ var O=%PromiseStatus(k); if(O==0)return"pending"; if(O==1)return"resolved"; return"rejected"; } function PromiseGetValue_(k){ return %PromiseResult(k); } PromiseMirror.prototype.status=function(){ return PromiseGetStatus_(this.value_); }; PromiseMirror.prototype.promiseValue=function(){ return MakeMirror(PromiseGetValue_(this.value_)); }; function MapMirror(k){ %_Call(ObjectMirror,this,k,j.MAP_TYPE); } inherits(MapMirror,ObjectMirror); MapMirror.prototype.entries=function(P){ var D=[]; if((%_IsJSWeakMap(this.value_))){ var Q=%GetWeakMapEntries(this.value_,P||0); for(var y=0;y3){ this.exception_=A[3]; this.getter_=A[4]; this.setter_=A[5]; } } inherits(PropertyMirror,Mirror); PropertyMirror.prototype.isReadOnly=function(){ return(this.attributes()&r.ReadOnly)!=0; }; PropertyMirror.prototype.isEnum=function(){ return(this.attributes()&r.DontEnum)==0; }; PropertyMirror.prototype.canDelete=function(){ return(this.attributes()&r.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 y=0;y0; }; FrameDetails.prototype.inlinedFrameIndex=function(){ %CheckExecutionState(this.break_id_); var ap=an; return(this.details_[ag]&ap)>>2; }; FrameDetails.prototype.argumentCount=function(){ %CheckExecutionState(this.break_id_); return this.details_[ab]; }; FrameDetails.prototype.argumentName=function(G){ %CheckExecutionState(this.break_id_); if(G>=0&&G=0&&G=0&&G=0&&G0){ for(var y=0;y0){ D+=this.lineOffset(); D+='-'; D+=this.lineOffset()+this.lineCount()-1; }else{ D+=this.lineCount(); } D+=')'; return D; }; function ContextMirror(aQ){ %_Call(Mirror,this,j.CONTEXT_TYPE); this.data_=aQ; } inherits(ContextMirror,Mirror); ContextMirror.prototype.data=function(){ return this.data_; }; b.InstallConstants(a,[ "MakeMirror",MakeMirror, "ScopeType",s, "PropertyType",q, "PropertyAttribute",r, "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, ]); }) (function(a,b){ "use strict"; var c=a.FrameMirror; var d=a.Array; var e=a.RegExp; var f=a.isNaN; var g=a.MakeMirror; var h=a.Math.min; var i=a.Mirror; var j=a.ValueMirror; var k={}; k.DebugEvent={Break:1, Exception:2, AfterCompile:3, CompileError:4, AsyncTaskEvent:5}; k.ExceptionBreak={Caught:0, Uncaught:1}; k.StepAction={StepOut:0, StepNext:1, StepIn:2}; k.ScriptType={Native:0, Extension:1, Normal:2, Wasm:3}; k.ScriptCompilationType={Host:0, Eval:1, JSON:2}; function ScriptTypeFlag(l){ return(1<=this.frameCount()){ throw %make_type_error(44); } return new c(this.break_id,E); }; ExecutionState.prototype.setSelectedFrame=function(F){ var s=(%_ToNumber(F)); if(s<0||s>=this.frameCount()){ throw %make_type_error(44); } this.selected_frame=s; }; ExecutionState.prototype.selectedFrame=function(){ return this.selected_frame; }; function MakeExceptionEvent(B,G,H,I){ return new ExceptionEvent(B,G,H,I); } function ExceptionEvent(B,G,H,I){ this.exec_state_=new ExecutionState(B); this.exception_=G; this.uncaught_=H; this.promise_=I; } ExceptionEvent.prototype.eventType=function(){ return k.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(); }; function MakeCompileEvent(t,l){ return new CompileEvent(t,l); } function CompileEvent(t,l){ this.script_=g(t); this.type_=l; } CompileEvent.prototype.eventType=function(){ return this.type_; }; CompileEvent.prototype.script=function(){ return this.script_; }; function MakeScriptObject_(t,J){ var K={id:t.id(), name:t.name(), lineOffset:t.lineOffset(), columnOffset:t.columnOffset(), lineCount:t.lineCount(), }; if(!(t.data()===(void 0))){ K.data=t.data(); } if(J){ K.source=t.source(); } return K; } function MakeAsyncTaskEvent(l,L){ return new AsyncTaskEvent(l,L); } function AsyncTaskEvent(l,L){ this.type_=l; this.id_=L; } AsyncTaskEvent.prototype.type=function(){ return this.type_; } AsyncTaskEvent.prototype.id=function(){ return this.id_; } b.InstallConstants(a,[ "Debug",k, "CompileEvent",CompileEvent, ]); b.InstallConstants(b,[ "MakeExecutionState",MakeExecutionState, "MakeExceptionEvent",MakeExceptionEvent, "MakeCompileEvent",MakeCompileEvent, "MakeAsyncTaskEvent",MakeAsyncTaskEvent, ]); }) (function(a,b){ "use strict"; var c=a.Debug.findScriptSourcePosition; var d=a.Array; var e=a.Math.floor; var f=a.Math.max; var g=a.SyntaxError; var h; function ApplyPatchMultiChunk(script,diff_array,new_source,preview_only, change_log){ var i=script.source; var j=GatherCompileInfo(i,script); var k=BuildCodeInfoTree(j); var l=new PosTranslator(diff_array); MarkChangedFunctions(k,l.GetChunks()); FindLiveSharedInfos(k,script); var m; try{ m=GatherCompileInfo(new_source,script); }catch(e){ var n= new Failure("Failed to compile new version of script: "+e); if(e instanceof g){ var o={ type:"liveedit_compile_error", syntaxErrorMessage:e.message }; CopyErrorPositionToDetails(e,o); n.details=o; } throw n; } var p=m.reduce( (max,info)=>f(max,info.function_literal_id),0); var q=BuildCodeInfoTree(m); FindCorrespondingFunctions(k,q); var r=new d(); var s=new d(); var t=new d(); var u=new d(); function HarvestTodo(v){ function CollectDamaged(w){ s.push(w); for(var x=0;xO[E].start_position){ R=E; } } if(R!=x){ var S=O[R]; var T=P[R]; O[R]=O[x]; P[R]=P[x]; O[x]=S; P[x]=T; } } var U=0; function ResetIndexes(V,W){ var X=-1; while(U=ay.pos1+ay.len1){ return as+ay.pos2+ay.len2-ay.pos1-ay.len1; } if(!at){ at=PosTranslator.DefaultInsideChunkHandler; } return at(as,ay); }; PosTranslator.DefaultInsideChunkHandler=function(as,az){ Assert(false,"Cannot translate position in changed area"); }; PosTranslator.ShiftWithTopInsideChunkHandler= function(as,az){ return as-az.pos1+az.pos2; }; var h={ UNCHANGED:"unchanged", SOURCE_CHANGED:"source changed", CHANGED:"changed", DAMAGED:"damaged" }; function CodeInfoTreeNode(aA,aB,aC){ this.info=aA; this.children=aB; this.array_index=aC; this.parent=(void 0); this.status=h.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(aD){ var aE=0; function BuildNode(){ var aF=aE; aE++; var aG=new d(); while(aE=am.length;}; this.TranslatePos=function(as){return as+aL;}; }; function ProcessInternals(aM){ aM.new_start_pos=aJ.TranslatePos( aM.info.start_position); var aN=0; var aO=false; var aP=false; while(!aJ.done()&& aJ.current().pos1= aJ.current().pos1+aJ.current().len1){ aO=true; aJ.next(); continue; }else if(aQ.info.start_position<=aJ.current().pos1&& aQ.info.end_position>=aJ.current().pos1+ aJ.current().len1){ ProcessInternals(aQ); aP=aP|| (aQ.status!=h.UNCHANGED); aO=aO|| (aQ.status==h.DAMAGED); aN++; continue; }else{ aO=true; aQ.status=h.DAMAGED; aQ.status_explanation= "Text diff overlaps with function boundary"; aN++; continue; } }else{ if(aJ.current().pos1+aJ.current().len1<= aM.info.end_position){ aM.status=h.CHANGED; aJ.next(); continue; }else{ aM.status=h.DAMAGED; aM.status_explanation= "Text diff overlaps with function boundary"; return; } } Assert("Unreachable",false); } while(aN0){ return bd; } } function TraverseTree(w){ w.live_shared_function_infos=FindFunctionInfos(w.info); for(var x=0;x ["+bl+"]"; } return; } var bm; function CheckStackActivations(old_shared_wrapper_list, new_shared_list, Z){ var bn=new d(); for(var x=0;x0){ Z.push({dropped_from_stack:bq}); } if(bp.length>0){ Z.push({functions_on_stack:bp}); throw new Failure("Blocked by functions on stack"); } return bq.length; } var bm={ 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 }; bm.SymbolName=function(bt){ var bu=bm; for(var bv in bu){ if(bu[bv]==bt){ return bv; } } }; function Failure(ag){ this.message=ag; } Failure.prototype.toString=function(){ return"LiveEdit Failure: "+this.message; }; function CopyErrorPositionToDetails(bw,o){ function createPositionStruct(M,bx){ if(bx==-1)return; var by=%ScriptPositionInfo(M,bx,true); if(by==null)return; return{ line:by.line+1, column:by.column+1, position:bx }; } if(!("scriptObject"in bw)||!("startPosition"in bw)){ return; } var M=bw.scriptObject; var bz={ start:createPositionStruct(M,bw.startPosition), end:createPositionStruct(M,bw.endPosition) }; o.position=bz; } function SetScriptSource(M,bA,bB,Z){ var i=M.source; var bC=CompareStrings(i,bA); return ApplyPatchMultiChunk(M,bC,bA,bB, Z); } function CompareStrings(bD,bE){ return %LiveEditCompareStrings(bD,bE); } function ApplySingleChunkPatch(M,change_pos,change_len,new_str, Z){ var i=M.source; var bA=i.substring(0,change_pos)+ new_str+i.substring(change_pos+change_len); return ApplyPatchMultiChunk(M, [change_pos,change_pos+change_len,change_pos+new_str.length], bA,false,Z); } function DescribeChangeTree(aR){ function ProcessOldNode(w){ var bF=[]; for(var x=0;x>1); var j=2|4|1; for(var k=0;k>1)+(fields?fields.length:0); if(n>=4){ %OptimizeObjectForAddingMultipleProperties(m,n); } if(fields){ for(var k=0;k>2; var D=%EstimateNumberOfElements(l); return(DD*4); } function Stack(){ this.length=0; this.values=new e(); } Stack.prototype.length=null; Stack.prototype.values=null; function StackPush(E,F){ E.values[E.length++]=F; } function StackPop(E){ E.values[--E.length]=null } function StackHas(E,G){ var m=E.length; var H=E.values; for(var t=0;t=K){ var O=l[z]; if(!(O===(void 0))||z in l){ %CreateDataProperty(N,z-K,O); } } } } } function SparseMove(l,K,L,M,Q){ if(Q===L)return; var R=new e( g(M-L+Q,0xffffffff)); var S; var q=%GetArrayKeys(l,M); if((typeof(q)==='number')){ var r=q; for(var t=0;t=K+L){ var O=l[z]; if(!(O===(void 0))||z in l){ var T=z-L+Q; R[T]=O; if(T>0xfffffffe){ S=S||new e(); S.push(T); } } } } } %MoveArrayContents(R,l); if(!(S===(void 0))){ var m=S.length; for(var t=0;tL){ for(var t=M-L;t>K;t--){ var V=t+L-1; var W=t+Q-1; if(V in l){ l[W]=l[V]; }else{ delete l[W]; } } }else{ for(var t=K;tM-L+Q;t--){ delete l[t-1]; } } } } var X; %DefineMethodsInternal(d.prototype,class{toString(){ var l; var Y; if((%_IsArray(this))){ Y=this.join; if(Y===X){ return Join(this,this.length,',',false); } l=this; }else{ l=(%_ToObject(this)); Y=l.join; } if(!(typeof(Y)==='function')){ return %_Call(i,l); } return %_Call(Y,l); }},-1); function InnerArrayToLocaleString(l,m){ return Join(l,(%_ToLength(m)),',',true); } %DefineMethodsInternal(d.prototype,class{toLocaleString(){ var l=(%_ToObject(this)); var Z=l.length; return InnerArrayToLocaleString(l,Z); }},-1); function InnerArrayJoin(w,l,m){ if((w===(void 0))){ w=','; }else{ w=(%_ToString(w)); } if(m===1){ var u=l[0]; if((u==null))return''; return(%_ToString(u)); } return Join(l,m,w,false); } %DefineMethodsInternal(d.prototype,class{join(w){ var l=(%_ToObject(this)); var m=(%_ToLength(l.length)); return InnerArrayJoin(w,l,m); }},-1); function ArrayPopFallback(){ var l=(%_ToObject(this)); var aa=(%_ToLength(l.length)); if(aa==0){ l.length=aa; return; } aa--; var F=l[aa]; delete l[aa]; l.length=aa; return F; } function ArrayPushFallback(){ var l=(%_ToObject(this)); var aa=(%_ToLength(l.length)); var ab=arguments.length; if(ab>9007199254740991-aa)throw %make_type_error(260,ab,aa); for(var t=0;t=t){ ah=t; while(s[++ae]==t){} ai=M-t-1; } var aj=l[ah]; if(!(aj===(void 0))||ah in l){ var ak=l[ai]; if(!(ak===(void 0))||ai in l){ l[ah]=ak; l[ai]=aj; }else{ l[ai]=aj; delete l[ah]; } }else{ var ak=l[ai]; if(!(ak===(void 0))||ai in l){ l[ah]=ak; delete l[ai]; } } } } function PackedArrayReverse(l,M){ var af=M-1; for(var t=0;t0){ if(new_len>=2**53)throw %make_type_error(176); if(M>0&&UseSparseVariant(l,M,(%_IsArray(l)),M)&& !%object_is_sealed(l)){ SparseMove(l,0,0,M,ao); }else{ SimpleMove(l,0,0,M,ao); } for(var t=0;tM?M:K; } function ComputeSpliceDeleteCount(ar,ao,M,K){ var L=0; if(ao==1) return M-K; L=(%_ToInteger(ar)); if(L<0) return 0; if(L>M-K) return M-K; return L; } function ArraySpliceFallback(ap,ar){ var ao=arguments.length; var l=(%_ToObject(this)); var M=(%_ToLength(l.length)); var K=ComputeSpliceStartIndex((%_ToInteger(ap)),M); var L=ComputeSpliceDeleteCount(ar,ao,M, K); var as=ao>2?ao-2:0; const new_len=M-L+as; if(new_len>=2**53)throw %make_type_error(176); var N=ArraySpeciesCreate(l,L); N.length=L; var at=L; if(as!=L){ at+=M-K-L; } if(UseSparseVariant(l,M,(%_IsArray(l)),at)){ %NormalizeElements(l); if((%_IsArray(N)))%NormalizeElements(N); SparseSlice(l,K,L,M,N); SparseMove(l,K,L,M,as); }else{ SimpleSlice(l,K,L,M,N); SimpleMove(l,K,L,M,as); } var t=K; var au=2; var av=arguments.length; while(au=ay;af--){ var aB=o[af]; var aC=aw(aB,aA); if(aC>0){ o[af+1]=aB; }else{ break; } } o[af+1]=aA; } }; function GetThirdIndex(o,ay,az){ var aD=new e(); var aE=200+((az-ay)&15); var af=0; ay+=1; az-=1; for(var t=ay;t>1][0]; return aF; } function QuickSort(o,ay,az){ var aF=0; while(true){ if(az-ay<=10){ InsertionSort(o,ay,az); return; } if(az-ay>1000){ aF=GetThirdIndex(o,ay,az); }else{ aF=ay+((az-ay)>>1); } var aG=o[ay]; var aH=o[az-1]; var aI=o[aF]; var aJ=aw(aG,aH); if(aJ>0){ var aB=aG; aG=aH; aH=aB; } var aK=aw(aG,aI); if(aK>=0){ var aB=aG; aG=aI; aI=aH; aH=aB; }else{ var aL=aw(aH,aI); if(aL>0){ var aB=aH; aH=aI; aI=aB; } } o[ay]=aG; o[az-1]=aI; var aM=aH; var aN=ay+1; var aO=az-1; o[aF]=o[aN]; o[aN]=aM; partition:for(var t=aN+1;t0){ do{ aO--; if(aO==t)break partition; var aP=o[aO]; aC=aw(aP,aM); }while(aC>0); o[t]=o[aO]; o[aO]=aA; if(aC<0){ aA=o[t]; o[t]=o[aN]; o[aN]=aA; aN++; } } } if(az-aO=m)U=m-1; } var aR=0; var aS=U; if(UseSparseVariant(l,m,(%_IsArray(l)),U)){ %NormalizeElements(l); var q=%GetArrayKeys(l,U+1); if((typeof(q)==='number')){ aS=q; }else{ if(q.length==0)return-1; var aT=GetSortedArrayKeys(l,q); var t=aT.length-1; while(t>=0){ var z=aT[t]; if(l[z]===aA)return z; t--; } return-1; } } if(!(aA===(void 0))){ for(var t=aS;t>=aR;t--){ if(l[t]===aA)return t; } return-1; } for(var t=aS;t>=aR;t--){ if((l[t]===(void 0))&&t in l){ return t; } } return-1; }},1); %DefineMethodsInternal(d.prototype,class{copyWithin(target,ap,aq){ var l=(%_ToObject(this)); var m=(%_ToLength(l.length)); target=(%_ToInteger(target)); var az; if(target<0){ az=f(m+target,0); }else{ az=g(target,m); } ap=(%_ToInteger(ap)); var ay; if(ap<0){ ay=f(m+ap,0); }else{ ay=g(ap,m); } aq=(aq===(void 0))?m:(%_ToInteger(aq)); var aU; if(aq<0){ aU=f(m+aq,0); }else{ aU=g(aq,m); } var aV=g(aU-ay,m-az); var aW=1; if(ay0){ if(ay in l){ l[az]=l[ay]; }else{ delete l[az]; } ay=ay+aW; az=az+aW; aV--; } return l; }},2); %DefineMethodsInternal(d.prototype,class{fill(F,ap,aq){ var l=(%_ToObject(this)); var m=(%_ToLength(l.length)); var t=(ap===(void 0))?0:(%_ToInteger(ap)); var aq=(aq===(void 0))?m:(%_ToInteger(aq)); if(t<0){ t+=m; if(t<0)t=0; }else{ if(t>m)t=m; } if(aq<0){ aq+=m; if(aq<0)aq=0; }else{ if(aq>m)aq=m; } for(;timplementation(z,fst,snd))) ; }else if(length===1){ A=(0,(fst=>implementation(z,fst))) ; }else{ A=(0,((...args)=>{ if(args.length>0){ return implementation(z,args[0]); }else{ return implementation(z); } })) ; } %SetNativeFlag(A); z[y]=A; } return z[y]; }},-1); } function IntlConstruct(z,constructor,create,newTarget,args, compat){ var B=args[0]; var C=args[1]; var D=create(B,C); if(compat&&(newTarget===(void 0))&&z instanceof constructor){ %object_define_property(z,o,{value:D}); return z; } return D; } function Unwrap(z,E,F,G,H){ if(!%IsInitializedIntlObjectOfType(z,E)){ if(H&&z instanceof F){ let fallback=z[o]; if(%IsInitializedIntlObjectOfType(fallback,E)){ return fallback; } } throw %make_type_error(59,G,z); } return z; } var I={ 'collator':(void 0), 'numberformat':(void 0), 'dateformat':(void 0), 'breakiterator':(void 0), 'pluralrules':(void 0), }; var J=(void 0); function GetDefaultICULocaleJS(){ if((J===(void 0))){ J=%GetDefaultICULocale(); } return J; } var K=(void 0); function GetUnicodeExtensionRE(){ if(((void 0)===(void 0))){ K=new m('-u(-[a-z0-9]{2,8})+','g'); } return K; } var L=(void 0); function GetAnyExtensionRE(){ if((L===(void 0))){ L=new m('-[a-z0-9]{1}-.*','g'); } return L; } var M=(void 0); function GetQuotedStringRE(){ if((M===(void 0))){ M=new m("'[^']+'",'g'); } return M; } var N=(void 0); function GetServiceRE(){ if((N===(void 0))){ N= new m('^('+%_Call(c,s(I),'|')+')$'); } return N; } var O=(void 0); function GetLanguageTagRE(){ if((O===(void 0))){ BuildLanguageTagREs(); } return O; } var P=(void 0); function GetLanguageVariantRE(){ if((P===(void 0))){ BuildLanguageTagREs(); } return P; } var Q=(void 0); function GetLanguageSingletonRE(){ if((Q===(void 0))){ BuildLanguageTagREs(); } return Q; } var R=(void 0); function GetTimezoneNameCheckRE(){ if((R===(void 0))){ R=new m( '^([A-Za-z]+)/([A-Za-z_-]+)((?:\/[A-Za-z_-]+)+)*$'); } return R; } var S=(void 0); function GetTimezoneNameLocationPartRE(){ if((S===(void 0))){ S= new m('^([A-Za-z]+)((?:[_-][A-Za-z]+)+)*$'); } return S; } function supportedLocalesOf(T,B,C){ if((%regexp_internal_match(GetServiceRE(),T)===null)){ throw %make_error(8,T); } if((C===(void 0))){ C={__proto__:null}; }else{ C=(%_ToObject(C)); } var U=C.localeMatcher; if(!(U===(void 0))){ U=(%_ToString(U)); if(U!=='lookup'&&U!=='best fit'){ throw %make_range_error(195,U); } }else{ U='best fit'; } var V=initializeLocaleList(B); var W=getAvailableLocalesOf(T); if(U==='best fit'){ return initializeLocaleList(bestFitSupportedLocalesOf( V,W)); } return initializeLocaleList(lookupSupportedLocalesOf( V,W)); } function lookupSupportedLocalesOf(V,W){ var X=new p(); for(var Y=0;Y=3&&at<=8&&!(as===(void 0))){ if((ah===(void 0))){ ah=au; }else{ ah=ah+"-"+au; } }else{ return{__proto__:null}; } } if(!(as===(void 0))&&!(as in ar)){ ar[as]=ah; } return ar; } function setOptions(av,ar,aw,ac,ax){ var an=''; var ay=function updateExtension(as,ah){ return'-'+as+'-'+(%_ToString(ah)); } var az=function updateProperty(ad,ae,ah){ if(ae==='boolean'&&(typeof ah==='string')){ ah=(ah==='true')?true:false; } if(!(ad===(void 0))){ defineWEProperty(ax,ad,ah); } } for(var as in aw){ if((%_Call(r,aw,as))){ var ah=(void 0); var aA=aw[as]; if(!(aA.property===(void 0))){ ah=ac(aA.property,aA.type,aA.values); } if(!(ah===(void 0))){ az(aA.property,aA.type,ah); an+=ay(as,ah); continue; } if((%_Call(r,ar,as))){ ah=ar[as]; if(!(ah===(void 0))){ az(aA.property,aA.type,ah); an+=ay(as,ah); }else if(aA.type==='boolean'){ az(aA.property,aA.type,true); an+=ay(as,true); } } } } return an===''?'':'-u'+an; } function freezeArray(aB){ var aC=[]; var aD=aB.length; for(var Y=0;Ybx){ throw %make_range_error(201,ad); } return %math_floor(ah); } return by; } function getNumberOption(C,ad,bw,bx,by){ var ah=C[ad]; return defaultNumberOption(ah,bw,bx,by,ad); } function SetNumberFormatDigitOptions(bl,C, mnfdDefault,mxfdDefault){ var bz=getNumberOption(C,'minimumIntegerDigits',1,21,1); defineWEProperty(bl,'minimumIntegerDigits',bz); var bA=getNumberOption(C,'minimumFractionDigits',0,20, mnfdDefault); defineWEProperty(bl,'minimumFractionDigits',bA); var bB=q(bA,mxfdDefault); var bC=getNumberOption(C,'maximumFractionDigits',bA,20, bB); defineWEProperty(bl,'maximumFractionDigits',bC); var bD=C['minimumSignificantDigits']; var bE=C['maximumSignificantDigits']; if(!(bD===(void 0))||!(bE===(void 0))){ bD=defaultNumberOption(bD,1,21,1,'minimumSignificantDigits'); defineWEProperty(bl,'minimumSignificantDigits',bD); bE=defaultNumberOption(bE,bD,21,21,'maximumSignificantDigits'); defineWEProperty(bl,'maximumSignificantDigits',bE); } } function CreateNumberFormat(B,C){ if((C===(void 0))){ C={__proto__:null}; } var ac=getGetOption(C,'numberformat'); var Z=resolveLocale('numberformat',B,C); var bl={__proto__:null}; defineWEProperty(bl,'style',ac( 'style','string',['decimal','percent','currency'],'decimal')); var bv=ac('currency','string'); if(!(bv===(void 0))&&!isWellFormedCurrencyCode(bv)){ throw %make_range_error(180,bv); } if(bl.style==='currency'&&(bv===(void 0))){ throw %make_type_error(40); } var bF,bG; var bH=ac( 'currencyDisplay','string',['code','symbol','name'],'symbol'); if(bl.style==='currency'){ defineWEProperty(bl,'currency',%StringToUpperCaseIntl(bv)); defineWEProperty(bl,'currencyDisplay',bH); bF=bG=%CurrencyDigits(bl.currency); }else{ bF=0; bG=bl.style==='percent'?0:3; } SetNumberFormatDigitOptions(bl,C,bF, bG); defineWEProperty(bl,'useGrouping',ac( 'useGrouping','boolean',(void 0),true)); var ar=parseExtension(Z.extension); var bI={ 'nu':{'property':(void 0),'type':'string'} }; var an=setOptions(C,ar,bI, ac,bl); var aj=Z.locale+an; var ai=%object_define_properties({__proto__:null},{ currency:{writable:true}, currencyDisplay:{writable:true}, locale:{writable:true}, maximumFractionDigits:{writable:true}, minimumFractionDigits:{writable:true}, minimumIntegerDigits:{writable:true}, numberingSystem:{writable:true}, requestedLocale:{value:aj,writable:true}, style:{value:bl.style,writable:true}, useGrouping:{writable:true} }); if((%_Call(r,bl,'minimumSignificantDigits'))){ defineWEProperty(ai,'minimumSignificantDigits',(void 0)); } if((%_Call(r,bl,'maximumSignificantDigits'))){ defineWEProperty(ai,'maximumSignificantDigits',(void 0)); } var bJ=%CreateNumberFormat(aj,bl, ai); if(bl.style==='currency'){ %object_define_property(ai,'currencyDisplay', {value:bH,writable:true}); } %MarkAsInitializedIntlObjectOfType(bJ,'numberformat'); bJ[u]=ai; return bJ; } function NumberFormatConstructor(){ return IntlConstruct(this,h,CreateNumberFormat, new.target,arguments,true); } %SetCode(h,NumberFormatConstructor); %DefineMethodsInternal(h.prototype,class{resolvedOptions(){ var bK=Unwrap(this,'numberformat',h, 'resolvedOptions',true); var ao={ locale:bK[u].locale, numberingSystem:bK[u].numberingSystem, style:bK[u].style, useGrouping:bK[u].useGrouping, minimumIntegerDigits:bK[u].minimumIntegerDigits, minimumFractionDigits:bK[u].minimumFractionDigits, maximumFractionDigits:bK[u].maximumFractionDigits, }; if(ao.style==='currency'){ defineWECProperty(ao,'currency',bK[u].currency); defineWECProperty(ao,'currencyDisplay', bK[u].currencyDisplay); } if((%_Call(r,bK[u],'minimumSignificantDigits'))){ defineWECProperty(ao,'minimumSignificantDigits', bK[u].minimumSignificantDigits); } if((%_Call(r,bK[u],'maximumSignificantDigits'))){ defineWECProperty(ao,'maximumSignificantDigits', bK[u].maximumSignificantDigits); } return ao; }},-1); %DefineMethodsInternal(h,class{supportedLocalesOf(B){ return supportedLocalesOf('numberformat',B,arguments[1]); }},-1); function formatNumber(bL,ah){ var bM=(%_ToNumber(ah))+0; return %InternalNumberFormat(bL,bM); } AddBoundMethod(h,'format',formatNumber,1, 'numberformat',true); function toLDMLString(C){ var ac=getGetOption(C,'dateformat'); var bN=''; var bO=ac('weekday','string',['narrow','short','long']); bN+=appendToLDMLString( bO,{narrow:'EEEEE',short:'EEE',long:'EEEE'}); bO=ac('era','string',['narrow','short','long']); bN+=appendToLDMLString( bO,{narrow:'GGGGG',short:'GGG',long:'GGGG'}); bO=ac('year','string',['2-digit','numeric']); bN+=appendToLDMLString(bO,{'2-digit':'yy','numeric':'y'}); bO=ac('month','string', ['2-digit','numeric','narrow','short','long']); bN+=appendToLDMLString(bO,{'2-digit':'MM','numeric':'M', 'narrow':'MMMMM','short':'MMM','long':'MMMM'}); bO=ac('day','string',['2-digit','numeric']); bN+=appendToLDMLString( bO,{'2-digit':'dd','numeric':'d'}); var bP=ac('hour12','boolean'); bO=ac('hour','string',['2-digit','numeric']); if((bP===(void 0))){ bN+=appendToLDMLString(bO,{'2-digit':'jj','numeric':'j'}); }else if(bP===true){ bN+=appendToLDMLString(bO,{'2-digit':'hh','numeric':'h'}); }else{ bN+=appendToLDMLString(bO,{'2-digit':'HH','numeric':'H'}); } bO=ac('minute','string',['2-digit','numeric']); bN+=appendToLDMLString(bO,{'2-digit':'mm','numeric':'m'}); bO=ac('second','string',['2-digit','numeric']); bN+=appendToLDMLString(bO,{'2-digit':'ss','numeric':'s'}); bO=ac('timeZoneName','string',['short','long']); bN+=appendToLDMLString(bO,{short:'z',long:'zzzz'}); return bN; } function appendToLDMLString(bO,bQ){ if(!(bO===(void 0))){ return bQ[bO]; }else{ return''; } } function fromLDMLString(bN){ bN=%RegExpInternalReplace(GetQuotedStringRE(),bN,''); var C={__proto__:null}; var aJ=%regexp_internal_match(/E{3,5}/,bN); C=appendToDateTimeObject( C,'weekday',aJ,{EEEEE:'narrow',EEE:'short',EEEE:'long'}); aJ=%regexp_internal_match(/G{3,5}/,bN); C=appendToDateTimeObject( C,'era',aJ,{GGGGG:'narrow',GGG:'short',GGGG:'long'}); aJ=%regexp_internal_match(/y{1,2}/,bN); C=appendToDateTimeObject( C,'year',aJ,{y:'numeric',yy:'2-digit'}); aJ=%regexp_internal_match(/M{1,5}/,bN); C=appendToDateTimeObject(C,'month',aJ,{MM:'2-digit', M:'numeric',MMMMM:'narrow',MMM:'short',MMMM:'long'}); aJ=%regexp_internal_match(/L{1,5}/,bN); C=appendToDateTimeObject(C,'month',aJ,{LL:'2-digit', L:'numeric',LLLLL:'narrow',LLL:'short',LLLL:'long'}); aJ=%regexp_internal_match(/d{1,2}/,bN); C=appendToDateTimeObject( C,'day',aJ,{d:'numeric',dd:'2-digit'}); aJ=%regexp_internal_match(/h{1,2}/,bN); if(aJ!==null){ C['hour12']=true; } C=appendToDateTimeObject( C,'hour',aJ,{h:'numeric',hh:'2-digit'}); aJ=%regexp_internal_match(/H{1,2}/,bN); if(aJ!==null){ C['hour12']=false; } C=appendToDateTimeObject( C,'hour',aJ,{H:'numeric',HH:'2-digit'}); aJ=%regexp_internal_match(/m{1,2}/,bN); C=appendToDateTimeObject( C,'minute',aJ,{m:'numeric',mm:'2-digit'}); aJ=%regexp_internal_match(/s{1,2}/,bN); C=appendToDateTimeObject( C,'second',aJ,{s:'numeric',ss:'2-digit'}); aJ=%regexp_internal_match(/z|zzzz/,bN); C=appendToDateTimeObject( C,'timeZoneName',aJ,{z:'short',zzzz:'long'}); return C; } function appendToDateTimeObject(C,bO,aJ,bQ){ if((aJ===null)){ if(!(%_Call(r,C,bO))){ defineWEProperty(C,bO,(void 0)); } return C; } var ad=aJ[0]; defineWEProperty(C,bO,bQ[ad]); return C; } function toDateTimeOptions(C,bR,bS){ if((C===(void 0))){ C={__proto__:null}; }else{ C=(%_ToObject(C)); } C=%object_create(C); var bT=true; if((bR==='date'||bR==='any')&& (!(C.weekday===(void 0))||!(C.year===(void 0))|| !(C.month===(void 0))||!(C.day===(void 0)))){ bT=false; } if((bR==='time'||bR==='any')&& (!(C.hour===(void 0))||!(C.minute===(void 0))|| !(C.second===(void 0)))){ bT=false; } if(bT&&(bS==='date'||bS==='all')){ %object_define_property(C,'year',{value:'numeric', writable:true, enumerable:true, configurable:true}); %object_define_property(C,'month',{value:'numeric', writable:true, enumerable:true, configurable:true}); %object_define_property(C,'day',{value:'numeric', writable:true, enumerable:true, configurable:true}); } if(bT&&(bS==='time'||bS==='all')){ %object_define_property(C,'hour',{value:'numeric', writable:true, enumerable:true, configurable:true}); %object_define_property(C,'minute',{value:'numeric', writable:true, enumerable:true, configurable:true}); %object_define_property(C,'second',{value:'numeric', writable:true, enumerable:true, configurable:true}); } return C; } function CreateDateTimeFormat(B,C){ if((C===(void 0))){ C={__proto__:null}; } var Z=resolveLocale('dateformat',B,C); C=toDateTimeOptions(C,'any','date'); var ac=getGetOption(C,'dateformat'); var U=ac('formatMatcher','string', ['basic','best fit'],'best fit'); var bN=toLDMLString(C); var bU=canonicalizeTimeZoneID(C.timeZone); var bl={__proto__:null}; var ar=parseExtension(Z.extension); var bV={ 'ca':{'property':(void 0),'type':'string'}, 'nu':{'property':(void 0),'type':'string'} }; var an=setOptions(C,ar,bV, ac,bl); var aj=Z.locale+an; var ai=%object_define_properties({__proto__:null},{ 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}, [t]:{writable:true}, requestedLocale:{value:aj,writable:true}, second:{writable:true}, timeZone:{writable:true}, timeZoneName:{writable:true}, tz:{value:bU,writable:true}, weekday:{writable:true}, year:{writable:true} }); var bW=%CreateDateTimeFormat( aj,{skeleton:bN,timeZone:bU},ai); if(ai.timeZone==="Etc/Unknown"){ throw %make_range_error(207,bU); } %MarkAsInitializedIntlObjectOfType(bW,'dateformat'); bW[u]=ai; return bW; } function DateTimeFormatConstructor(){ return IntlConstruct(this,g,CreateDateTimeFormat, new.target,arguments,true); } %SetCode(g,DateTimeFormatConstructor); %DefineMethodsInternal(g.prototype,class{resolvedOptions(){ var bK=Unwrap(this,'dateformat',g, 'resolvedOptions',true); var bX={ 'gregorian':'gregory', 'ethiopic-amete-alem':'ethioaa' }; var bY=fromLDMLString(bK[u][t]); var bZ=bX[bK[u].calendar]; if((bZ===(void 0))){ bZ=bK[u].calendar; } var ao={ locale:bK[u].locale, numberingSystem:bK[u].numberingSystem, calendar:bZ, timeZone:bK[u].timeZone }; addWECPropertyIfDefined(ao,'timeZoneName',bY.timeZoneName); addWECPropertyIfDefined(ao,'era',bY.era); addWECPropertyIfDefined(ao,'year',bY.year); addWECPropertyIfDefined(ao,'month',bY.month); addWECPropertyIfDefined(ao,'day',bY.day); addWECPropertyIfDefined(ao,'weekday',bY.weekday); addWECPropertyIfDefined(ao,'hour12',bY.hour12); addWECPropertyIfDefined(ao,'hour',bY.hour); addWECPropertyIfDefined(ao,'minute',bY.minute); addWECPropertyIfDefined(ao,'second',bY.second); return ao; }},-1); %DefineMethodsInternal(g,class{supportedLocalesOf(B){ return supportedLocalesOf('dateformat',B,arguments[1]); }},-1); function formatDate(bL,ca){ var cb; if((ca===(void 0))){ cb=%DateCurrentTime(); }else{ cb=(%_ToNumber(ca)); } return %InternalDateFormat(bL,cb); } AddBoundMethod(g,'format',formatDate,1,'dateformat', true); function canonicalizeTimeZoneID(cc){ if((cc===(void 0))){ return cc; } cc=(%_ToString(cc)); var cd=%StringToUpperCaseIntl(cc); if(cd==='UTC'||cd==='GMT'|| cd==='ETC/UTC'||cd==='ETC/GMT'){ return'UTC'; } var aJ=%regexp_internal_match(GetTimezoneNameCheckRE(),cc); if((aJ===null))throw %make_range_error(172,cc); var ao=toTitleCaseTimezoneLocation(aJ[1])+'/'+ toTitleCaseTimezoneLocation(aJ[2]); if(!(aJ[3]===(void 0))&&30?B[0]:GetDefaultICULocaleJS(); } var aa=%StringIndexOf(bi,'-',0); if(aa!==-1){ bi=%_Call(w,bi,0,aa); } return %StringLocaleConvertCase(cn,co,bi); } %DefineMethodsInternal(n.prototype,class{localeCompare(that){ if((this==null)){ throw %make_type_error(72); } var B=arguments[1]; var C=arguments[2]; var bq=cachedOrNewService('collator',B,C); return compare(bq,this,that); }},-1); %DefineMethodsInternal(n.prototype,class{ toLocaleLowerCase(B){ if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(25,"String.prototype.toLocaleLowerCase"); return LocaleConvertCase((%_ToString(this)),B,false); } toLocaleUpperCase(B){ if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(25,"String.prototype.toLocaleUpperCase"); return LocaleConvertCase((%_ToString(this)),B,true); } },0); %DefineMethodsInternal(l.prototype,class{toLocaleString(){ if(!(this instanceof l)&&typeof(this)!=='number'){ throw %make_type_error(73,"Number"); } var B=arguments[0]; var C=arguments[1]; var bJ=cachedOrNewService('numberformat',B,C); return formatNumber(bJ,this); }},-1); function toLocaleDateTime(cp,B,C,bR,bS,T){ if(!(cp instanceof e)){ throw %make_type_error(73,"Date"); } var ca=(%_ToNumber(cp)); if((%IS_VAR(ca)!==ca) )return'Invalid Date'; var bl=toDateTimeOptions(C,bR,bS); var bW= cachedOrNewService(T,B,C,bl); return formatDate(bW,cp); } %DefineMethodsInternal(e.prototype,class{toLocaleString(){ var B=arguments[0]; var C=arguments[1]; return toLocaleDateTime( this,B,C,'any','all','dateformatall'); }},-1); %DefineMethodsInternal(e.prototype,class{toLocaleDateString(){ var B=arguments[0]; var C=arguments[1]; return toLocaleDateTime( this,B,C,'date','date','dateformatdate'); }},-1); %DefineMethodsInternal(e.prototype,class{toLocaleTimeString(){ var B=arguments[0]; var C=arguments[1]; return toLocaleDateTime( this,B,C,'time','time','dateformattime'); }},-1); }) dummy