mol_tree2 0.0.5 → 1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.nojekyll +0 -0
- package/README.md +3 -0
- package/node.d.ts +210 -229
- package/node.deps.json +1 -1
- package/node.esm.js +1262 -1008
- package/node.esm.js.map +1 -1
- package/node.js +1262 -1008
- package/node.js.map +1 -1
- package/node.test.js +3326 -4195
- package/node.test.js.map +1 -1
- package/package.json +45 -5
- package/test.html +2 -2
- package/web.d.ts +210 -178
- package/web.deps.json +1 -1
- package/web.esm.js +1267 -610
- package/web.esm.js.map +1 -1
- package/web.js +1267 -610
- package/web.js.map +1 -1
- package/web.test.js +1562 -3132
- package/web.test.js.map +1 -1
- package/readme.md +0 -536
package/node.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../mol.jam.js","../../mol.ts","../../ambient/ambient.ts","../../delegate/delegate.ts","../../owning/owning.ts","../../fail/fail.ts","../../fail/hidden/hidden.ts","../../type/writable/writable.js","../../object2/object2.ts","../../span/span.ts","../../deprecated/deprecated.ts","../tree2.ts","../../log3/log3.ts","../../../node/node.node.ts","../../tree/tree.ts","../../log3/log3.node.ts","../../env/env.ts","../../env/env.node.ts","../../exec/exec.node.ts","../../error/syntax/syntax.ts","../from/string/string.ts","../to/string/string.ts","../../test/test.test.ts","../../dom/context/context.ts","../../dom/context/context.node.ts","../../dom/render/children/children.ts","../../type/assert/assert.test.js","../../type/assert/assert.js","../../type/partial/deep/deep.test.js","../../type/partial/deep/deep.js","../../jsx/jsx.test.tsx","../../jsx/jsx.ts","../../compare/deep/deep.test.tsx","../../compare/deep/deep.ts","../../assert/assert.test.ts","../../assert/assert.ts","../../delegate/delegate.test.ts","../../type/writable/writable.test.js","../../span/span.test.ts","../../log3/log3.test.ts","../tree2.test.ts","../../tree/tree.test.ts","../../dom/parse/parse.ts","../../jsx/attach/attach.test.tsx","../../jsx/attach/attach.ts","../../object/object.test.ts","../../object/object.ts","../../wrapper/wrapper.test.ts","../../wrapper/wrapper.ts","../../after/mock/mock.test.ts","../../after/timeout/timeout.test.ts","../../after/timeout/timeout.ts","../../after/frame/frame.node.ts","../../after/frame/frame.test.ts","../../compare/any/any.test.ts","../../compare/any/any.ts","../../conform/conform.test.ts","../../conform/conform.ts","../../array/trim/trim.test.ts","../../array/trim/trim.ts","../../dev/format/format.ts","../../fiber/fiber.test.ts","../../fiber/fiber.ts","../../defer/defer.ts","../../atom2/atom2.test.ts","../../atom2/atom2.ts","../../type/param/param.test.js","../../type/param/param.js","../../type/result/result.test.js","../../type/result/result.js","../../mem/force/force.ts","../../mem/mem.test.ts","../../mem/mem.ts","../../const/const.test.ts","../../const/const.ts","../../atom2/field/field.ts","../../atom2/autorun/autorun.test.ts","../../atom2/autorun/autorun.ts","../../jsx/view/view.test.tsx","../../jsx/view/view.tsx","../../type/equals/equals.test.js","../../type/equals/equals.js","../../diff/path/path.test.ts","../../diff/path/path.ts","../../error/mix/mix.ts","../from/string/string.test.ts"],"names":[],"mappings":"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","file":"node.test.js","sourcesContent":[null,"Error.stackTraceLimit = Infinity;\n\ndeclare let _$_: { new(): {} } & typeof globalThis\ndeclare class $ extends _$_ {}\n\nnamespace $ {\n\texport type $ = typeof $$\n\texport declare class $$ extends $ {}\n\tnamespace $$ {\n\t\texport type $$ = $\n\t}\n}\n\nmodule.exports = $\n","namespace $ {\n\n\texport const $mol_ambient_ref : unique symbol = Symbol( '$mol_ambient_ref' )\n\n\t/** @deprecated use $ instead */\n\texport type $mol_ambient_context = $\n\n\texport function $mol_ambient( this : $ | void , overrides : Partial< $ > ) : $ {\n\t\treturn Object.setPrototypeOf( overrides , this || $ )\n\t}\n\n}\n","namespace $ {\n\n\tconst instances = new WeakSet< any >()\n\n\t/**\n\t * Proxy that delegates all to lazy returned target.\n\t * \n\t * \t$mol_delegate( Array.prototype , ()=> fetch_array() )\n\t */\n export function $mol_delegate< Value extends object >(\n\t\tproto : Value ,\n\t\ttarget : ()=> Value ,\n\t) {\n\n\t\tconst proxy = new Proxy( proto , {\n\n\t\t\tget: ( _ , field )=> {\n\t\t\t\tconst obj = target()\n\t\t\t\tlet val = Reflect.get( obj , field )\n\t\t\t\tif( typeof val === 'function' ) {\n\t\t\t\t\tval = val.bind( obj )\n\t\t\t\t} \n\t\t\t\treturn val\n\t\t\t},\n\t\t\thas: ( _ , field )=> Reflect.has( target(), field ),\n\t\t\tset: ( _ , field , value )=> Reflect.set( target() , field , value ),\n\t\t\t\n\t\t\tgetOwnPropertyDescriptor: ( _ , field )=> Reflect.getOwnPropertyDescriptor( target() , field ),\n\t\t\townKeys: ()=> Reflect.ownKeys( target() ),\n\t\t\t\n\t\t\tgetPrototypeOf: ()=> Reflect.getPrototypeOf( target() ),\n\t\t\tsetPrototypeOf: ( _ , donor )=> Reflect.setPrototypeOf( target() , donor ),\n\t\t\t\n\t\t\tisExtensible: ()=> Reflect.isExtensible( target() ),\n\t\t\tpreventExtensions: ()=> Reflect.preventExtensions( target() ),\n\t\t\t\n\t\t\tapply: ( _ , self , args )=> Reflect.apply( target() as Function , self , args ),\n\t\t\tconstruct: ( _ , args , retarget )=> Reflect.construct( target() as Function , args , retarget ),\n\t\t\t\n\t\t\tdefineProperty: ( _ , field , descr )=> Reflect.defineProperty( target() , field , descr ),\n\t\t\tdeleteProperty: ( _ , field )=> Reflect.deleteProperty( target() , field ),\n\n\t\t} )\n\n\t\tinstances.add( proxy )\n\n\t\treturn proxy\n\n\t}\n\n\tReflect.defineProperty(\n\t\t$mol_delegate ,\n\t\tSymbol.hasInstance ,\n\t\t{\n\t\t\tvalue : ( obj : object )=> instances.has( obj ),\n\t\t},\n\t)\n\n}\n","namespace $ {\n\n\texport const $mol_owning_map = new WeakMap< any , any >()\n\n\texport function $mol_owning_allow< Having >(\n\t\thaving : Having ,\n\t) : having is Having & {\n\t\tdestructor() : void\n\t} {\n\t\ttry {\n\t\t\tif( !having ) return false\n\t\t\tif( typeof having !== 'object' ) return false\n\t\t\tif( having instanceof $mol_delegate ) return false\n\t\t\tif( typeof having['destructor'] !== 'function' ) return false\n\t\t\treturn true\n\t\t} catch {\n\t\t\treturn false\n\t\t}\n\t}\n\n\texport function $mol_owning_get< Having , Owner extends object >( having : Having , Owner? : { new() : Owner } ) : Owner | null {\n\t\n\t\tif( !$mol_owning_allow( having ) ) return null\n\n\t\twhile( true ) {\n\n\t\t\tconst owner = $mol_owning_map.get( having )\n\t\t\tif( !owner ) return owner\n\t\t\tif( !Owner ) return owner\n\t\t\t\n\t\t\tif( owner instanceof Owner ) return owner\n\n\t\t\thaving = owner\n\t\t}\n\n\t}\n\t\n\texport function $mol_owning_check< Owner , Having >(\n\t\towner : Owner ,\n\t\thaving : Having ,\n\t) : having is Having & { destructor() : void } {\n\t\tif( !$mol_owning_allow( having ) ) return false\n\t\tif( $mol_owning_map.get( having ) !== owner ) return false\n\t\treturn true\n\t}\n\t\n\texport function $mol_owning_catch< Owner , Having >(\n\t\towner : Owner ,\n\t\thaving : Having ,\n\t) {\n\t\tif( !$mol_owning_allow( having ) ) return false\n\t\tif( $mol_owning_map.get( having ) ) return false\n\n\t\t$mol_owning_map.set( having , owner )\n\t\treturn true\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_fail( error : any ) : never {\n\t\tthrow error\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_fail_hidden( error : any ) : never {\n\t\tthrow error /// Use 'Never Pause Here' breakpoint in DevTools or simply blackbox this script\n\t}\n\n}\n",null,"namespace $ {\n\n\texport class $mol_object2 {\n\t\t\n\t\tstatic $ = $ as $\n\t\t\n\t\t[ $mol_ambient_ref ] = null as any as $\n\t\tget $() {\n\t\t\tif( this[ $mol_ambient_ref ] ) return this[ $mol_ambient_ref ]\n\t\t\tconst owner = $mol_owning_get( this ) as any\n\t\t\treturn this[ $mol_ambient_ref ] = owner?.$ || $mol_object2.$ as $\n\t\t}\n\t\tset $( next : $ ) {\n\t\t\tif( this[ $mol_ambient_ref ] ) $mol_fail_hidden( new Error( 'Context already defined' ) )\n\t\t\tthis[ $mol_ambient_ref ] = next\n\t\t}\n\n\t\tconstructor( init? : ( obj : any )=> void ) {\n\t\t\tif( init ) init( this )\n\t\t}\n\n\t\tpublic static create< Instance >(\n\t\t\tthis : new( init? : ( instance : any )=> void )=> Instance ,\n\t\t\tinit? : ( instance : $mol_type_writable<Instance> )=> void\n\t\t) : Instance {\n\t\t\treturn new this( init )\n\t\t}\n\t\t\n\t\tstatic [ Symbol.toPrimitive ]() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tstatic toString() {\n\t\t\tif( Symbol.toStringTag in this ) return this[ Symbol.toStringTag ]\n\t\t\treturn this.name\n\t\t}\n\t\t\n\t\tdestructor() { }\n\t\t\n\t\t[ Symbol.toPrimitive ]( hint: string ) {\n\t\t\treturn hint === 'number' ? this.valueOf() : this.toString()\n\t\t}\n\t\t\n\t\ttoString() {\n\t\t\treturn this[ Symbol.toStringTag ] || this.constructor.name + '()'\n\t\t}\n\t\t\n\t\ttoJSON() {\n\t\t\treturn this.toString()\n\t\t}\n\n\t}\n}\n","namespace $ {\n\n\t/** Position in any resource. */\n\texport class $mol_span extends $mol_object2 {\n\n\t\tconstructor(\n\t\t\treadonly uri: string ,\n\t\t\treadonly source: string ,\n\t\t\treadonly row: number ,\n\t\t\treadonly col: number ,\n\t\t\treadonly length: number ,\n\t\t) {\n\t\t\tsuper()\n\t\t}\n\n\t\t[ Symbol.toStringTag ] = `${ this.uri }#${ this.row }:${ this.col }/${ this.length }`\n\n\t\t/** Span for begin of unknown resource */\n\t\tstatic unknown = $mol_span.begin('unknown')\n\n\t\t/** Makes new span for begin of resource. */\n\t\tstatic begin( uri: string, source = '' ) {\n\t\t\treturn new $mol_span( uri , source, 1 , 1 , 0 )\n\t\t}\n\n\t\t/** Makes new span for end of resource. */\n\t\tstatic end( uri: string , source: string ) {\n\t\t\treturn new $mol_span( uri , source, 1 , source.length + 1 , length )\n\t\t}\n\n\t\t/** Makes new span for entire resource. */\n\t\tstatic entire( uri: string , source: string ) {\n\t\t\treturn new $mol_span( uri , source, 1 , 1 , source.length )\n\t\t}\n\n\t\ttoString() {\n\t\t\treturn this[ Symbol.toStringTag ]\n\t\t}\n\n\t\ttoJSON() {\n\t\t\treturn {\n\t\t\t\turi: this.uri,\n\t\t\t\trow: this.row,\n\t\t\t\tcol: this.col,\n\t\t\t\tlength: this.length\n\t\t\t}\n\t\t}\n\n\t\t/** Makes new error for this span. */\n\t\terror( message : string , Class = Error ) {\n\t\t\treturn new Class( `${message}${this}` )\n\t\t}\n\n\t\t/** Makes new span for same uri. */\n\t\tspan( row : number , col : number , length : number ) {\n\t\t\treturn new $mol_span( this.uri , this.source, row , col , length )\n\t\t}\n\n\t\t/** Makes new span after end of this. */\n\t\tafter( length = 0 ) {\n\t\t\treturn new $mol_span( this.uri , this.source, this.row , this.col + this.length , length )\n\t\t}\n\n\t\t/** Makes new span between begin and end. */\n\t\tslice( begin: number, end = -1 ) {\n\t\t\tlet len = this.length\n\t\t\t\n\t\t\tif( begin < 0 ) begin += len\n\t\t\tif( end < 0 ) end += len\n\n\t\t\tif (begin < 0 || begin > len) this.$.$mol_fail(`Begin value '${begin}' out of range ${this}`)\n\t\t\tif (end < 0 || end > len) this.$.$mol_fail(`End value '${end}' out of range ${this}`)\n\t\t\tif (end < begin) this.$.$mol_fail(`End value '${end}' can't be less than begin value ${this}`)\n\n\t\t\treturn this.span( this.row , this.col + begin , end - begin )\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_deprecated( message : string ) {\n\t\treturn <\n\t\t\tMethod extends ( this : Host , ... args : readonly any[] )=> any ,\n\t\t\tHost extends {\n\t\t\t\t[key in Field] : Method\n\t\t\t} & {\n\t\t\t\t$ : $\n\t\t\t},\n\t\t\tField extends keyof Host ,\n\t\t>(\n\t\t\thost : Host ,\n\t\t\tfield : Field ,\n\t\t\tdescr : TypedPropertyDescriptor< Method >\n\t\t)=> {\n\n\t\t\tconst value = descr.value!\n\t\t\tlet warned = false\n\t\t\t\n\t\t\tdescr.value = function $mol_deprecated_wrapper( this : Host , ... args : Parameters< Method > ) : ReturnType< Method > {\n\n\t\t\t\tif( !warned ) {\n\t\t\t\t\tthis.$.$mol_log3_warn({\n\t\t\t\t\t\tplace: `${ host.constructor.name }::${ field }`,\n\t\t\t\t\t\tmessage: `Deprecated` ,\n\t\t\t\t\t\thint: message ,\n\t\t\t\t\t})\n\t\t\t\t\twarned = true\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn value.call( this , ... args )\n\t\t\t\n\t\t\t} as any\n\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\n\t/** Path by types in tree. */\n\texport type $mol_tree2_path =\n\t\tArray< string | number | null >\n\t\n\t/** Hask tool for processing node. */\n\texport type $mol_tree2_hack< Context > =\n\t\t(\n\t\t\tinput : $mol_tree2 ,\n\t\t\tbelt : $mol_tree2_belt< Context > ,\n\t\t\tcontext : Context ,\n\t\t)=> readonly $mol_tree2[]\n\n\t/** Collection of hask tools for processing tree. */\n\texport type $mol_tree2_belt< Context > =\n\t\tRecord< string , $mol_tree2_hack< Context > >\n\n\t/**\n\t * Abstract Syntax Tree with human readable serialization.\n\t * Avoid direct instantiation. Use static factories instead.\n\t * @see https://github.com/nin-jin/tree.d\n\t */\n\texport class $mol_tree2 extends $mol_object2 {\n\t\t\n\t\tconstructor(\n\n\t\t\t/** Type of structural node, `value` should be empty */\n\t\t\treadonly type : string,\n\t\t\t\n\t\t\t/** Content of data node, `type` should be empty */\n\t\t\treadonly value : string,\n\n\t\t\t/** Child nodes */\n\t\t\treadonly kids : readonly $mol_tree2[],\n\t\t\t\n\t\t\t/** Position in most far source resource */\n\t\t\treadonly span : $mol_span,\n\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis[ Symbol.toStringTag ] = type || '\\\\' + value\n\t\t}\n\n\t\t/** Makes collection node. */\n\t\tstatic list(\n\t\t\tkids : readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\t\t\treturn new $mol_tree2( '' , '' , kids , span )\n\t\t}\n\t\t\n\t\t/** Makes new derived collection node. */\n\t\tlist(\n\t\t\tkids : readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.list( kids , this.span )\n\t\t}\n\n\t\t/** Makes data node for any string. */\n\t\tstatic data(\n\t\t\tvalue : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\n\t\t\tconst chunks = value.split( '\\n' )\n\n\t\t\tif( chunks.length > 1 ) {\n\t\t\t\n\t\t\t\tlet kid_span = span.span( span.row , span.col , 0 )\n\n\t\t\t\tconst data = chunks.map( chunk => {\n\t\t\t\t\tkid_span = kid_span.after( chunk.length )\n\t\t\t\t\treturn new $mol_tree2( '' , chunk , [] , kid_span )\n\t\t\t\t} )\n\n\t\t\t\tkids = [ ... data , ... kids ]\n\n\t\t\t\tvalue = ''\n\n\t\t\t}\n\n\t\t\treturn new $mol_tree2( '' , value , kids , span )\n\n\t\t}\n\t\t\n\t\t/** Makes new derived data node. */\n\t\tdata(\n\t\t\tvalue : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.data( value , kids , this.span )\n\t\t}\n\t\t\n\t\t/** Makes struct node. */\n\t\tstatic struct(\n\t\t\ttype : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\n\t\t\tif( /[ \\n\\t\\\\]/.test( type ) ) {\n\t\t\t\tthis.$.$mol_fail( span.error( `Wrong type ${ JSON.stringify( type ) }` ) )\n\t\t\t}\n\n\t\t\treturn new $mol_tree2( type , '' , kids , span )\n\n\t\t}\n\t\t\n\t\t/** Makes new derived structural node. */\n\t\tstruct(\n\t\t\ttype : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.struct( type , kids , this.span )\n\t\t}\n\n\t\t/** Makes new derived node with different kids id defined. */\n\t\tclone( kids : readonly $mol_tree2[], span = this.span ) {\n\t\t\treturn new $mol_tree2( this.type , this.value , kids , span )\n\t\t}\n\n\t\t/** Returns multiline text content. */\n\t\ttext() {\n\n\t\t\tvar values : string[] = []\n\t\t\t\n\t\t\tfor( var kid of this.kids ) {\n\t\t\t\tif( kid.type ) continue\n\t\t\t\tvalues.push( kid.value )\n\t\t\t}\n\t\t\t\n\t\t\treturn this.value + values.join( '\\n' )\n\n\t\t}\n\t\t\n\t\t/** Parses tree format. */\n\t\t@ $mol_deprecated( 'Use $mol_tree2_from_string' )\n\t\tstatic fromString( str : string , uri = 'unknown' ) {\n\t\t\treturn this.$.$mol_tree2_from_string( str, uri )\n\t\t}\n\n\t\t/** Serializes to tree format. */\n\t\ttoString() : string {\n\t\t\treturn this.$.$mol_tree2_to_string( this )\n\t\t}\n\t\t\n\t\t/** Makes new tree with node overrided by path. */\n\t\tinsert( value : $mol_tree2 , ...path : $mol_tree2_path ) : $mol_tree2 {\n\n\t\t\tif( path.length === 0 ) return value\n\t\t\t\n\t\t\tconst type = path[0]\n\t\t\tif( typeof type === 'string' ) {\n\n\t\t\t\tlet replaced = false\n\t\t\t\tconst sub = this.kids.map( ( item , index )=> {\n\t\t\t\t\tif( item.type !== type ) return item\n\t\t\t\t\treplaced = true\n\t\t\t\t\treturn item.insert( value , ... path.slice( 1 ) )\n\t\t\t\t} )\n\t\t\t\t\n\t\t\t\tif( !replaced ) {\n\t\t\t\t\tsub.push( this.struct( type , [] ).insert( value , ... path.slice( 1 ) ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn this.clone( sub )\n\n\t\t\t} else if( typeof type === 'number' ) {\n\t\t\t\t\n\t\t\t\tconst sub = this.kids.slice()\n\t\t\t\tsub[ type ] = ( sub[ type ] || this.list([]) ).insert( value , ... path.slice( 1 ) )\n\t\t\t\t\n\t\t\t\treturn this.clone( sub )\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tconst kids = ( ( this.kids.length === 0 ) ? [ this.list([]) ] : this.kids )\n\t\t\t\t.map( item => item.insert( value , ... path.slice( 1 ) ) )\n\n\t\t\t\treturn this.clone( kids )\n\n\t\t\t}\n\n\t\t}\n\n\t\t/** Query nodes by path. */\n\t\tselect( ...path : $mol_tree2_path ) {\n\n\t\t\tlet next = [ this as $mol_tree2 ]\n\n\t\t\tfor( const type of path ) {\n\n\t\t\t\tif( !next.length ) break\n\t\t\t\t\n\t\t\t\tconst prev = next\n\t\t\t\tnext = []\n\n\t\t\t\tfor( var item of prev ) {\n\n\t\t\t\t\tswitch( typeof( type ) ) {\n\n\t\t\t\t\t\tcase 'string' :\n\n\t\t\t\t\t\t\tfor( var child of item.kids ) {\n\t\t\t\t\t\t\t\tif( child.type == type ) {\n\t\t\t\t\t\t\t\t\tnext.push( child )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\n\t\t\t\t\t\tcase 'number' :\n\n\t\t\t\t\t\t\tif( type < item.kids.length ) next.push( item.kids[ type ] )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\n\t\t\t\t\t\tdefault : next.push( ... item.kids )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.list( next )\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Filter kids by path or value. */\n\t\tfilter( path : string[] , value? : string ) {\n\n\t\t\tconst sub = this.kids.filter( item => {\n\t\t\t\t\t\n\t\t\t\tvar found = item.select( ...path )\n\t\t\t\t\n\t\t\t\tif( value === undefined ) {\n\t\t\t\t\treturn Boolean( found.kids.length )\n\t\t\t\t} else {\n\t\t\t\t\treturn found.kids.some( child => child.value == value )\n\t\t\t\t}\n\t\t\t\n\t\t\t} )\n\t\t\t\n\t\t\treturn this.clone( sub )\n\n\t\t}\n\n\t\t/** Transform tree through context with transformers */\n\t\thack< Context extends { span?: $mol_span; [ key: string ]: unknown } = {} >(\n\t\t\tbelt: $mol_tree2_belt< Context >,\n\t\t\tcontext = {} as Context,\n\t\t) {\n\t\t\t\n\t\t\treturn ( [] as readonly $mol_tree2[] ).concat( ... this.kids.map( child => {\n\n\t\t\t\tlet handle = belt[ child.type ] || belt[ '' ]\n\t\t\t\t\n\t\t\t\tif( !handle || handle === Object.prototype[ child.type ] ) {\n\t\t\t\t\thandle = ( input, belt, context )=> [\n\t\t\t\t\t\tinput.clone( input.hack( belt, context ), context.span )\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\treturn handle( child , belt , context! )\n\t\t\t\t} catch( error ) {\n\t\t\t\t\terror.message += `\\n${ child.clone([]) }${ child.span }`\n\t\t\t\t\t$mol_fail_hidden( error )\n\t\t\t\t}\n\n\t\t\t} ) )\n\n\t\t}\n\n\t\t/** Makes Error with node coordinates. */\n\t\terror( message : string , Class = Error ) {\n\t\t\treturn this.span.error( `${ message }\\n${ this.clone([]) }` , Class )\n\t\t}\n\n\t}\n\n\texport class $mol_tree2_empty extends $mol_tree2 {\n\t\tconstructor() {\n\t\t\tsuper( '' , '' , [] , $mol_span.unknown )\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\n\t/** Logger event data */\n\texport type $mol_log3_event< Fields > = {\n\t\t[ key in string ] : unknown\n\t} & {\n\t\t\n\t\t/** Time of event creation */\n\t\ttime? : string\n\n\t\t/** Place of event creation */\n\t\tplace : unknown\n\n\t\t/** Short description of event */\n\t\tmessage : string\n\n\t} & Fields\n\n\t/** Logger function */\n\texport type $mol_log3_logger< Fields , Res = void > = (\n\t\tthis : $ ,\n\t\tevent : $mol_log3_event< Fields > ,\n\t)=> Res\n\n\t/** Log begin of some task */\n\texport declare let $mol_log3_come : $mol_log3_logger<{}>\n\t\n\t/** Log end of some task */\n\texport declare let $mol_log3_done : $mol_log3_logger<{}>\n\t\n\t/** Log error */\n\texport declare let $mol_log3_fail : $mol_log3_logger<{}>\n\t\n\t/** Log warning message */\n\texport declare let $mol_log3_warn : $mol_log3_logger<{ hint : string }>\n\t\n\t/** Log some generic event */\n\texport declare let $mol_log3_rise : $mol_log3_logger<{}>\n\n\t/** Log begin of log group, returns func to close group */\n\texport declare let $mol_log3_area : $mol_log3_logger< {} , ()=> void >\n\n\t/** Log begin of collapsed group only when some logged inside, returns func to close group */\n\texport function $mol_log3_area_lazy(\n\t\tthis : $ ,\n\t\tevent : $mol_log3_event<{}> ,\n\t) {\n\n\t\tconst self = this\n\t\tconst stack = self.$mol_log3_stack\n\n\t\tconst deep = stack.length\n\t\tlet logged = false\n\n\t\tstack.push( ()=> {\n\t\t\tlogged = true\n\t\t\tself.$mol_log3_area.call( self , event )\n\t\t} )\n\n\t\treturn ()=> {\n\t\t\tif( logged ) self.console.groupEnd()\n\t\t\tif( stack.length > deep ) stack.length = deep\n\t\t}\n\n\t}\n\n\texport let $mol_log3_stack = [] as ( ()=> void )[]\n\n}\n","interface $node {\n\t[key:string]: any\n}\n\nvar $node = new Proxy( { require } as any , {\n\t\n\tget( target , name : string , wrapper ) {\n\n\t\tif( target[ name ] ) return target[ name ]\n\n\t\tconst mod = target.require( 'module' ) as typeof import( 'module' )\n\t\t\n\t\tif( mod.builtinModules.indexOf( name ) >= 0 ) return target.require( name )\n\t\t\n\t\tconst path = target.require( 'path' ) as typeof import( 'path' )\n\t\tconst fs = target.require( 'fs' ) as typeof import( 'fs' )\n\n\t\tlet dir = path.resolve( '.' )\n\t\tconst suffix = `./node_modules/${ name }`\n\n\t\tconst $$ = ( $ as any )\n\t\t\n\t\twhile( !fs.existsSync( path.join( dir , suffix ) ) ) {\n\n\t\t\tconst parent = path.resolve( dir , '..' )\n\n\t\t\tif( parent === dir ) {\n\n\t\t\t\t$$.$mol_exec( '.' , 'npm' , 'install' , name )\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\t$$.$mol_exec( '.' , 'npm' , 'install' , '@types/' + name )\n\t\t\t\t} catch {}\n\n\t\t\t\tbreak\n\n\t\t\t} else {\n\n\t\t\t\tdir = parent\n\n\t\t\t}\n\n\t\t}\n\t\t\n\t\treturn target.require( name )\n\n\t},\n\n\tset( target , name : string , value ) {\n\t\ttarget[ name ] = value\n\t\treturn true\n\t},\n\n} ) as $node\n\nrequire = ( req =>\n\tObject.assign( function require( name : string ) {\n\t\treturn $node[ name ]\n\t} , req )\n)( require )\n\n","namespace $ {\n\n\texport const $mol_tree_convert : unique symbol = Symbol( '$mol_tree_convert' )\n\texport type $mol_tree_path = Array< string | number | null >\n\n\texport type $mol_tree_hack = ( input : $mol_tree , context : $mol_tree_context )=> readonly $mol_tree[]\n\texport type $mol_tree_context = Record< string , $mol_tree_hack >\n\texport type $mol_tree_library = Record< string , $mol_tree_context >\n\t\n\t/**\n\t * Abstract Syntax Tree with human readable serialization.\n\t * @see https://github.com/nin-jin/tree.d\n\t */\n\texport class $mol_tree extends $mol_object2 {\n\t\t\n\t\treadonly type : string\n\t\treadonly data : string\n\t\treadonly sub : readonly $mol_tree[]\n\t\treadonly baseUri : string\n\t\treadonly row : number\n\t\treadonly col : number\n\t\treadonly length : number\n\t\t\n\t\tconstructor( config : Partial<$mol_tree> = {} ) {\n\n\t\t\tsuper()\n\n\t\t\tthis.type = config.type || ''\n\t\t\t\n\t\t\tif( config.value !== undefined ) {\n\n\t\t\t\tvar sub = $mol_tree.values( config.value )\n\t\t\t\t\n\t\t\t\tif( config.type || sub.length > 1 ) {\n\n\t\t\t\t\tthis.sub = [ ... sub , ...( config.sub || [] ) ]\n\t\t\t\t\tthis.data = config.data || ''\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis.data = sub[ 0 ].data\n\t\t\t\t\tthis.sub = config.sub || []\n\n\t\t\t\t}\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tthis.data = config.data || ''\n\t\t\t\tthis.sub = config.sub || []\n\n\t\t\t}\n\t\t\t\n\t\t\tthis.baseUri = config.baseUri || ''\n\t\t\tthis.row = config.row || 0\n\t\t\tthis.col = config.col || 0\n\t\t\tthis.length = config.length || 0\n\n\t\t}\n\t\t\n\t\tstatic values( str : string , baseUri? : string ) {\n\n\t\t\treturn str.split( '\\n' ).map( ( data , index ) => new $mol_tree( {\n\t\t\t\tdata : data ,\n\t\t\t\tbaseUri : baseUri ,\n\t\t\t\trow : index + 1 ,\n\t\t\t\tlength : data.length ,\n\t\t\t} ) )\n\n\t\t}\n\t\t\n\t\t/** Cloning node with overrides. */\n\t\tclone( config : Partial<$mol_tree> = {} ) {\n\n\t\t\treturn new $mol_tree({\n\t\t\t\ttype : ( 'type' in config ) ? config.type : this.type ,\n\t\t\t\tdata : ( 'data' in config ) ? config.data : this.data ,\n\t\t\t\tsub : ( 'sub' in config ) ? config.sub : this.sub ,\n\t\t\t\tbaseUri : ( 'baseUri' in config ) ? config.baseUri : this.baseUri ,\n\t\t\t\trow : ( 'row' in config ) ? config.row : this.row ,\n\t\t\t\tcol : ( 'col' in config ) ? config.col : this.col ,\n\t\t\t\tlength : ( 'length' in config ) ? config.length : this.length ,\n\t\t\t\tvalue : config.value\n\t\t\t})\n\n\t\t}\n\t\t\n\t\t/** Makes new derived node. */\n\t\tmake( config : Partial<$mol_tree> ) {\n\n\t\t\treturn new $mol_tree({\n\t\t\t\tbaseUri : this.baseUri ,\n\t\t\t\trow : this.row ,\n\t\t\t\tcol : this.col ,\n\t\t\t\tlength : this.length ,\n\t\t\t\t... config ,\n\t\t\t})\n\n\t\t}\n\t\t\n\t\t/** Makes new derived data node. */\n\t\tmake_data( value : string , sub? : readonly $mol_tree[] ) {\n\t\t\treturn this.make({ value , sub })\n\t\t}\n\t\t\n\t\t/** Makes new derived structural node. */\n\t\tmake_struct( type : string , sub? : readonly $mol_tree[] ) {\n\t\t\treturn this.make({ type , sub })\n\t\t}\n\t\t\n\t\t/** Parses tree format to AST. */\n\t\tstatic fromString( str : string , baseUri? : string ) {\n\t\t\t\n\t\t\tvar root = new $mol_tree( { baseUri : baseUri } )\n\t\t\tvar stack = [ root ]\n\t\t\t\n\t\t\tvar row = 0\n\t\t\tvar prefix = str.replace( /^\\n?(\\t*)[\\s\\S]*/ , '$1' )\n\t\t\tvar lines = str.replace( new RegExp( '^\\\\t{0,' + prefix.length + '}' , 'mg' ) , '' ).split( '\\n' )\n\n\t\t\tlines.forEach( line => {\n\n\t\t\t\t++row\n\t\t\t\t\n\t\t\t\tvar chunks = /^(\\t*)((?:[^\\n\\t\\\\ ]+ *)*)(\\\\[^\\n]*)?(.*?)(?:$|\\n)/m.exec( line )\n\t\t\t\tif( !chunks || chunks[4] ) return this.$.$mol_fail( new Error( `Syntax error at ${baseUri}:${row}\\n${line}` ) )\n\t\t\t\t\n\t\t\t\tvar indent = chunks[ 1 ]\n\t\t\t\tvar path = chunks[ 2 ]\n\t\t\t\tvar data = chunks[ 3 ]\n\t\t\t\t\n\t\t\t\tvar deep = indent.length\n\t\t\t\tvar types = path ? path.replace( / $/ , '' ).split( / +/ ) : []\n\t\t\t\t\n\t\t\t\tif( stack.length <= deep ) return this.$.$mol_fail( new Error( `Too many tabs at ${baseUri}:${row}\\n${line}` ) )\n\t\t\t\t\n\t\t\t\tstack.length = deep + 1\n\t\t\t\tvar parent = stack[ deep ];\n\t\t\t\t\n\t\t\t\tlet col = deep\n\t\t\t\ttypes.forEach( type => {\n\t\t\t\t\tif( !type ) return this.$.$mol_fail( new Error( `Unexpected space symbol ${baseUri}:${row}\\n${line}` ) )\n\t\t\t\t\tvar next = new $mol_tree({ type , baseUri , row , col , length : type.length })\n\t\t\t\t\tconst parent_sub = parent.sub as $mol_tree[]\n\t\t\t\t\tparent_sub.push( next )\t\n\t\t\t\t\tparent = next\n\t\t\t\t\tcol += type.length + 1\n\t\t\t\t} )\n\t\t\t\t\n\t\t\t\tif( data ) {\n\t\t\t\t\tvar next = new $mol_tree({ data : data.substring( 1 ) , baseUri , row , col , length : data.length })\n\t\t\t\t\tconst parent_sub = parent.sub as $mol_tree[]\n\t\t\t\t\tparent_sub.push( next )\n\t\t\t\t\tparent = next\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstack.push( parent )\n\t\t\t\t\n\t\t\t} )\n\t\t\t\n\t\t\treturn root\n\t\t}\n\t\t\n\t\t/**\n\t\t * Parses json.tree lang to AST.\n\t\t * @todo Move to $mol_tree_json_from\n\t\t */\n\t\tstatic fromJSON( json : any , baseUri = '' ) : $mol_tree {\n\n\t\t\tswitch( true ) {\n\n\t\t\t\tcase typeof json === 'boolean' :\n\t\t\t\tcase typeof json === 'number' :\n\t\t\t\tcase json === null :\n\n\t\t\t\t\treturn new $mol_tree({\n\t\t\t\t\t\ttype : String( json ) ,\n\t\t\t\t\t\tbaseUri : baseUri\n\t\t\t\t\t})\n\t\t\t\t\n\t\t\t\tcase typeof json === 'string' :\n\n\t\t\t\t\treturn new $mol_tree({\n\t\t\t\t\t\tvalue : json ,\n\t\t\t\t\t\tbaseUri : baseUri\n\t\t\t\t\t})\n\n\t\t\t\tcase Array.isArray( json ) :\n\n\t\t\t\t\treturn new $mol_tree({\n\t\t\t\t\t\ttype : \"/\" ,\n\t\t\t\t\t\tsub : ( json as any[] ).map( json => $mol_tree.fromJSON( json , baseUri ) )\n\t\t\t\t\t})\n\n\t\t\t\tcase json instanceof Date :\n\n\t\t\t\t\treturn new $mol_tree({\n\t\t\t\t\t\tvalue : json.toISOString() ,\n\t\t\t\t\t\tbaseUri : baseUri\n\t\t\t\t\t})\n\t\t\t\t\n\t\t\t\tdefault :\n\n\t\t\t\t\tif( typeof json[ $mol_tree_convert ] === 'function' ) {\n\t\t\t\t\t\treturn json[ $mol_tree_convert ]()\n\t\t\t\t\t}\n\n\t\t\t\t\tif( typeof json.toJSON === 'function' ) {\n\t\t\t\t\t\treturn $mol_tree.fromJSON( json.toJSON() )\n\t\t\t\t\t}\n\n\t\t\t\t\tif( json instanceof Error ) {\n\t\t\t\t\t\tconst { name , message , stack } = json\n\t\t\t\t\t\tjson = { ... json , name , message , stack }\n\t\t\t\t\t}\n\n\t\t\t\t\tvar sub : $mol_tree[] = []\n\t\t\t\t\t\n\t\t\t\t\tfor( var key in json ) {\n\n\t\t\t\t\t\tif( json[ key ] === undefined ) continue\n\n\t\t\t\t\t\tconst subsub = $mol_tree.fromJSON( json[ key ] , baseUri )\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( /^[^\\n\\t\\\\ ]+$/.test( key ) ) {\n\n\t\t\t\t\t\t\tvar child = new $mol_tree({\n\t\t\t\t\t\t\t\ttype : key ,\n\t\t\t\t\t\t\t\tbaseUri : baseUri ,\n\t\t\t\t\t\t\t\tsub : [ subsub ] ,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tvar child = new $mol_tree({\n\t\t\t\t\t\t\t\tvalue : key ,\n\t\t\t\t\t\t\t\tbaseUri : baseUri ,\n\t\t\t\t\t\t\t\tsub : [ subsub ] ,\n\t\t\t\t\t\t\t} )\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tsub.push( child )\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\treturn new $mol_tree({\n\t\t\t\t\t\ttype : \"*\" ,\n\t\t\t\t\t\tsub : sub ,\n\t\t\t\t\t\tbaseUri : baseUri\n\t\t\t\t\t})\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\t\t\n\t\tget uri() {\n\t\t\treturn this.baseUri + '#' + this.row + ':' + this.col\n\t\t}\n\t\t\n\t\t/** Serializas to tree format. */\n\t\ttoString( prefix = '' ) : string {\n\t\t\tvar output = ''\n\t\t\t\n\t\t\tif( this.type.length ) {\n\t\t\t\tif( !prefix.length ) {\n\t\t\t\t\tprefix = \"\\t\";\n\t\t\t\t}\n\t\t\t\toutput += this.type\n\t\t\t\tif( this.sub.length == 1 ) {\n\t\t\t\t\treturn output + ' ' + this.sub[ 0 ].toString( prefix )\n\t\t\t\t}\n\t\t\t\toutput += \"\\n\"\n\t\t\t} else if( this.data.length || prefix.length ) {\n\t\t\t\toutput += \"\\\\\" + this.data + \"\\n\"\n\t\t\t}\n\n\t\t\tfor( var child of this.sub ) {\n\t\t\t\toutput += prefix\n\t\t\t\toutput += child.toString( prefix + \"\\t\" )\n\t\t\t}\n\t\t\t\n\t\t\treturn output\n\t\t}\n\t\t\n\t\t/**\n\t\t * Serializes AST to json.tree lang.\n\t\t * @todo Move to $mol_tree_json_to\n\t\t */\n\t\ttoJSON() : any {\n\t\t\tif( !this.type ) return this.value\n\t\t\t\n\t\t\tif( this.type === 'true' ) return true\n\t\t\tif( this.type === 'false' ) return false\n\t\t\tif( this.type === 'null' ) return null\n\t\t\t\n\t\t\tif( this.type === '*' ) {\n\t\t\t\tvar obj = {}\n\t\t\t\tfor( var child of this.sub ) {\n\t\t\t\t\tif( child.type === '-' ) continue\n\t\t\t\t\tvar key = child.type || child.clone({ sub : child.sub.slice( 0 , child.sub.length - 1 ) }).value\n\t\t\t\t\tvar val = child.sub[ child.sub.length - 1 ].toJSON()\n\t\t\t\t\tif( val !== undefined ) ( obj as any )[ key ] = val\n\t\t\t\t}\n\t\t\t\treturn obj\n\t\t\t}\n\t\t\t\n\t\t\tif( this.type === '/' ) {\n\t\t\t\tvar res : any[] = []\n\t\t\t\tthis.sub.forEach(\n\t\t\t\t\tchild => {\n\t\t\t\t\t\tif( child.type === '-' ) return\n\t\t\t\t\t\tvar val = child.toJSON()\n\t\t\t\t\t\tif( val !== undefined ) res.push( val )\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\treturn res\n\t\t\t}\n\t\t\t\n\t\t\tif( this.type === 'time' ) {\n\t\t\t\treturn new Date( this.value )\n\t\t\t}\n\t\t\t\n\t\t\tconst numb = Number( this.type ) \n\t\t\tif( !Number.isNaN( numb ) || this.type === 'NaN' ) return numb\n\t\t\t\n\t\t\tthrow new Error( `Unknown type (${this.type}) at ${this.uri}` )\n\t\t}\n\t\t\n\t\tget value() {\n\t\t\tvar values : string[] = []\n\t\t\tfor( var child of this.sub ) {\n\t\t\t\tif( child.type ) continue\n\t\t\t\tvalues.push( child.value )\n\t\t\t}\n\t\t\treturn this.data + values.join( \"\\n\" )\n\t\t}\n\t\t\n\t\t/** Makes new tree with node overrided by path. */\n\t\tinsert( value : $mol_tree , ...path : $mol_tree_path ) : $mol_tree {\n\t\t\tif( path.length === 0 ) return value\n\t\t\t\n\t\t\tconst type = path[0]\n\t\t\tif( typeof type === 'string' ) {\n\n\t\t\t\tlet replaced = false\n\t\t\t\tconst sub = this.sub.map( ( item , index )=> {\n\t\t\t\t\tif( item.type !== type ) return item\n\t\t\t\t\treplaced = true\n\t\t\t\t\treturn item.insert( value , ... path.slice( 1 ) )\n\t\t\t\t} )\n\t\t\t\t\n\t\t\t\tif( !replaced ) sub.push( new $mol_tree({ type }).insert( value , ... path.slice( 1 ) ) )\n\t\t\t\t\n\t\t\t\treturn this.clone({ sub })\n\n\t\t\t} else if( typeof type === 'number' ) {\n\t\t\t\t\n\t\t\t\tconst sub = this.sub.slice()\n\t\t\t\tsub[ type ] = ( sub[ type ] || new $mol_tree ).insert( value , ... path.slice( 1 ) )\n\t\t\t\t\n\t\t\t\treturn this.clone({ sub })\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\treturn this.clone({ sub : ( ( this.sub.length === 0 ) ? [ new $mol_tree() ] : this.sub ).map( item => item.insert( value , ... path.slice( 1 ) ) ) })\n\n\t\t\t}\n\t\t}\n\n\t\t/** Query nodes by path. */\n\t\tselect( ...path : $mol_tree_path ) {\n\t\t\tvar next = [ this as $mol_tree ]\n\t\t\tfor( var type of path ) {\n\t\t\t\tif( !next.length ) break\n\t\t\t\tvar prev = next\n\t\t\t\tnext = []\n\n\t\t\t\tfor( var item of prev ) {\n\n\t\t\t\t\tswitch( typeof( type ) ) {\n\n\t\t\t\t\t\tcase 'string' :\n\t\t\t\t\t\t\tfor( var child of item.sub ) {\n\t\t\t\t\t\t\t\tif( !type || ( child.type == type ) ) {\n\t\t\t\t\t\t\t\t\tnext.push( child )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\n\t\t\t\t\t\tcase 'number' :\n\t\t\t\t\t\t\tif( type < item.sub.length ) next.push( item.sub[ type ] )\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\n\t\t\t\t\t\tdefault : next.push( ... item.sub )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn new $mol_tree( { sub : next } )\n\t\t}\n\t\t\n\t\t/** Filter subnodes by path or value. */\n\t\tfilter( path : string[] , value? : string ) {\n\t\t\tvar sub = this.sub.filter(\n\t\t\t\tfunction( item ) {\n\t\t\t\t\t\n\t\t\t\t\tvar found = item.select( ...path )\n\t\t\t\t\t\n\t\t\t\t\tif( value == null ) {\n\t\t\t\t\t\treturn Boolean( found.sub.length )\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn found.sub.some( child => child.value == value )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t)\n\t\t\t\n\t\t\treturn new $mol_tree( { sub : sub } )\n\t\t}\n\n\t\t@ $mol_deprecated( 'Use $mol_tree:hack' )\n\t\ttransform( visit : ( stack : $mol_tree[] , sub : ()=> $mol_tree[] )=> $mol_tree | null , stack : $mol_tree[] = [] ) : $mol_tree | null {\n\t\t\tconst sub_stack = [ this , ...stack ]\n\t\t\treturn visit( sub_stack , ()=> this.sub.map( node => node.transform( visit , sub_stack ) ).filter( n => n ) as $mol_tree[] )\n\t\t}\n\n\t\t/** Transform tree through context with transformers */\n\t\thack( context : $mol_tree_context ) : $mol_tree {\n\t\t\t\n\t\t\tconst sub = ( [] as $mol_tree[] ).concat( ... this.sub.map( child => {\n\n\t\t\t\tconst handle = context[ child.type ] || context[ '' ]\n\t\t\t\tif( !handle ) $mol_fail( child.error( 'Handler not defined' ) )\n\t\t\t\t\n\t\t\t\treturn handle( child , context )\n\n\t\t\t} ) )\n\n\t\t\treturn this.clone({ sub })\n\t\t}\n\n\t\t/** Makes Error with node coordinates. */\n\t\terror( message : string ) {\n\t\t\treturn new Error( `${message}:\\n${ this } ${this.baseUri}:${this.row}:${this.col}` )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_log3_node_make(\n\t\tlevel : keyof Console ,\n\t\toutput : 'stdout' | 'stderr',\n\t\ttype : string ,\n\t\tcolor: keyof typeof $node.colorette ,\n\t) {\n\n\t\treturn function $mol_log3_logger(\n\t\t\tthis : $ ,\n\t\t\tevent : $mol_log3_event<{}> ,\n\t\t) {\n\n\t\t\tif( !event.time ) event = { time : new Date().toISOString() , ... event }\n\n\t\t\tconst tree = this.$mol_tree.fromJSON( event ).clone({ type })\n\t\t\tlet str = tree.toString()\n\n\t\t\tif( process[output].isTTY ) {\n\t\t\t\tstr = $node.colorette[ color + 'Bright' ]( str )\n\t\t\t}\n\n\t\t\tthis.console[ level ]( str )\n\t\n\t\t\tconst self = this\n\t\t\treturn ()=> self.console.groupEnd()\n\n\t\t}\n\n\t}\n\n\t$.$mol_log3_come = $mol_log3_node_make( 'info' , 'stdout' , 'come' , 'blue' )\n\t$.$mol_log3_done = $mol_log3_node_make( 'info' , 'stdout' , 'done' , 'green' )\n\t$.$mol_log3_fail = $mol_log3_node_make( 'error' , 'stderr' , 'fail' , 'red' )\n\t$.$mol_log3_warn = $mol_log3_node_make( 'warn' , 'stderr' , 'warn' , 'yellow' )\n\t$.$mol_log3_rise = $mol_log3_node_make( 'log' , 'stdout' , 'rise' , 'magenta' )\n\t$.$mol_log3_area = $mol_log3_node_make( 'log' , 'stdout' , 'area' , 'cyan' )\n\n}\n","namespace $ {\n\texport function $mol_env() {\n\t\treturn {} as Record< string, string | undefined >\n\t}\n}\n","namespace $ {\n\t$.$mol_env = function $mol_env() {\n\t\treturn this.process.env\n\t}\n}\n","namespace $ {\n\texport function $mol_exec(\n\t\tthis : $ ,\n\t\tdir : string ,\n\t\tcommand : string ,\n\t\t...args : string[]\n\t) {\n\n\t\tlet [ app , ... args0 ] = command.split( ' ' )\n\t\targs = [ ... args0 , ... args ]\n\n\t\tthis.$mol_log3_come({\n\t\t\tplace: '$mol_exec' ,\n\t\t\tdir: $node.path.relative( '' , dir ) ,\n\t\t\tmessage: 'Run',\n\t\t\tcommand: `${app} ${ args.join(' ') }` ,\n\t\t})\n\n\t\tvar res = $node['child_process'].spawnSync(\n\t\t\tapp ,\n\t\t\targs,\n\t\t\t{\n\t\t\t\tcwd : $node.path.resolve( dir ) ,\n\t\t\t\tshell : true ,\n\t\t\t\tenv: this.$mol_env(),\n\t\t\t}\n\t\t)\n\t\t\n\t\tif( res.status || res.error ) return $mol_fail( res.error || new Error( res.stderr.toString() ) )\n\t\tif( !res.stdout ) res.stdout = Buffer.from([])\n\n\t\treturn res\n\t}\n}\n","namespace $ {\n\n\t/** Syntax error with cordinates and source line snippet. */\n\texport class $mol_error_syntax extends SyntaxError {\n\t\tconstructor (\n\t\t\tpublic reason: string,\n\t\t\tpublic line: string,\n\t\t\tpublic span: $mol_span,\n\t\t) {\n\t\t\tsuper(`${ reason }\\n${ span }\\n${ line.substring( 0 , span.col - 1 ).replace( /\\S/g, ' ' ) }${ ''.padEnd( span.length, '!' ) }\\n${ line }`)\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t/** Parses tree format from string. */\n\texport function $mol_tree2_from_string(\n\t\tthis: $,\n\t\tstr: string,\n\t\turi = 'unknown',\n\t) : $mol_tree2 {\n\n\t\tconst span = $mol_span.entire( uri, str )\n\n\t\tvar root = $mol_tree2.list( [], span )\n\t\tvar stack = [ root ]\n\n\t\tvar pos = 0, row = 0, min_indent = 0\n\t\t\n\t\twhile( str.length > pos ) {\n\n\t\t\tvar indent = 0\n\t\t\tvar line_start = pos\n\n\t\t\trow++\n\n\t\t\t// read indent\n\t\t\twhile( str.length > pos && str[ pos ] == '\\t' ) {\n\t\t\t\tindent++\n\t\t\t\tpos++\n\t\t\t}\n\n\t\t\tif( ! root.kids.length ) {\n\t\t\t\tmin_indent = indent\n\t\t\t}\n\n\t\t\tindent -= min_indent\n\n\t\t\t// invalid tab size\n\t\t\tif( indent < 0 || indent >= stack.length ) {\n\n\t\t\t\tconst sp = span.span( row, 1, pos - line_start )\n\n\t\t\t\t// skip error line\n\t\t\t\twhile( str.length > pos && str[ pos ] != '\\n' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\n\t\t\t\tif( indent < 0 ) {\n\t\t\t\t\tif( str.length > pos ) {\n\t\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t\t`Too few tabs`,\n\t\t\t\t\t\t\tstr.substring( line_start, pos ),\n\t\t\t\t\t\t\tsp,\n\t\t\t\t\t\t) )\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t`Too many tabs`,\n\t\t\t\t\t\tstr.substring( line_start, pos ),\n\t\t\t\t\t\tsp,\n\t\t\t\t\t) )\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tstack.length = indent + 1\n\t\t\tvar parent = stack[ indent ]\n\n\t\t\t// parse types\n\t\t\twhile( str.length > pos && str[ pos ] != '\\\\' && str[ pos ] != '\\n' ) {\n\n\t\t\t\t// type can not contain space and tab\n\t\t\t\tvar error_start = pos\n\t\t\t\twhile( str.length > pos && ( str[ pos ] == ' ' || str[ pos ] == '\\t' ) ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\n\t\t\t\tif( pos > error_start ) {\n\t\t\t\t\tlet line_end = str.indexOf( '\\n' , pos )\n\t\t\t\t\tif( line_end === -1 ) line_end = str.length\n\t\t\t\t\tconst sp = span.span( row, error_start - line_start, pos - error_start + 1 )\n\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t`Wrong nodes separator`,\n\t\t\t\t\t\tstr.substring( line_start, line_end ),\n\t\t\t\t\t\tsp,\n\t\t\t\t\t) )\n\t\t\t\t}\n\n\t\t\t\t// read type\n\t\t\t\tvar type_start = pos\n\t\t\t\twhile( \n\t\t\t\t\tstr.length > pos && \n\t\t\t\t\tstr[ pos ] != '\\\\' && \n\t\t\t\t\tstr[ pos ] != ' ' && \n\t\t\t\t\tstr[ pos ] != '\\t' && \n\t\t\t\t\tstr[ pos ] != '\\n'\n\t\t\t\t) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t\tif( pos > type_start ) {\n\t\t\t\t\tlet next = new $mol_tree2(\n\t\t\t\t\t\tstr.slice( type_start , pos ),\n\t\t\t\t\t\t'',\n\t\t\t\t\t\t[],\n\t\t\t\t\t\tspan.span( row, type_start - line_start + 1, pos - type_start ),\n\t\t\t\t\t)\n\t\t\t\t\tconst parent_kids = parent.kids as $mol_tree2[]\n\t\t\t\t\tparent_kids.push( next )\n\t\t\t\t\tparent = next\n\t\t\t\t}\n\n\t\t\t\t// read one space if exists\n\t\t\t\tif( str.length > pos && str[ pos ] == ' ' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// read data\n\t\t\tif( str.length > pos && str[ pos ] == '\\\\' ) {\n\t\t\t\tvar data_start = pos\n\t\t\t\twhile( str.length > pos && str[ pos ] != '\\n' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t\tlet next = new $mol_tree2(\n\t\t\t\t\t'',\n\t\t\t\t\tstr.slice( data_start + 1 , pos ),\n\t\t\t\t\t[],\n\t\t\t\t\tspan.span( row, data_start - line_start + 2, pos - data_start - 1 ),\n\t\t\t\t)\n\t\t\t\tconst parent_kids = parent.kids as $mol_tree2[]\n\t\t\t\tparent_kids.push( next )\n\t\t\t\tparent = next\n\t\t\t}\n\n\t\t\t// now must be end of text\n\t\t\tif( str.length === pos && stack.length > 0 ) {\n\t\t\t\tconst sp = span.span( row, pos - line_start + 1, 1 )\n\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t`Undexpected EOF, LF required`,\n\t\t\t\t\tstr.substring( line_start, str.length ),\n\t\t\t\t\tsp,\n\t\t\t\t) )\n\t\t\t}\n\n\t\t\tstack.push( parent )\n\t\t\tpos++\n\t\t}\n\n\t\treturn root\n\t}\n\n}\n","namespace $ {\n\n\t/** Serializes tree to string in tree format. */\n\texport function $mol_tree2_to_string(\n\t\tthis: $,\n\t\ttree: $mol_tree2,\n\t) : string {\n\n\t\tlet output = [] as string[]\n\t\t\n\t\tfunction dump(\n\t\t\ttree: $mol_tree2,\n\t\t\tprefix = '',\n\t\t) {\n\n\t\t\tif( tree.type.length ) {\n\t\t\t\t\n\t\t\t\tif( !prefix.length ) {\n\t\t\t\t\tprefix = \"\\t\";\n\t\t\t\t}\n\n\t\t\t\toutput.push( tree.type )\n\n\t\t\t\tif( tree.kids.length == 1 ) {\n\t\t\t\t\toutput.push( ' ' )\n\t\t\t\t\tdump( tree.kids[ 0 ], prefix )\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\toutput.push( \"\\n\" )\n\n\t\t\t} else if( tree.value.length || prefix.length ) {\n\n\t\t\t\toutput.push( \"\\\\\" + tree.value + \"\\n\" )\n\n\t\t\t}\n\n\t\t\tfor( const kid of tree.kids ) {\n\t\t\t\toutput.push( prefix )\n\t\t\t\tdump( kid, prefix + \"\\t\" )\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tdump( tree )\n\n\t\treturn output.join('')\n\t}\n\t\t\n}\n","namespace $ {\n\n\texport function $mol_test( set : { [ name : string ] : string | ( ( context : $ )=> void ) } ) {\n\t\t\n\t\tfor( let name in set ) {\n\n\t\t\tconst code = set[ name ]\n\t\t\tconst test = ( typeof code === 'string' ) ? new Function( '' , code ) as ()=> void : code\n\t\t\t\n\t\t\t$mol_test_all.push( test )\n\t\t}\n\n\t\t$mol_test_schedule()\n\t}\n\n\texport let $mol_test_mocks = [] as Array< ( context : $ )=> void >\n\n\texport const $mol_test_all = [] as Array< ( context : $ )=> void >\n\n\texport async function $mol_test_run() {\n\n\t\tfor( var test of $mol_test_all ) {\n\n\t\t\tlet context = Object.create( $$ )\n\t\t\tfor( let mock of $mol_test_mocks ) await mock( context )\n\t\t\t\n\t\t\tawait test( context )\n\t\t}\n\t\t\n\t\t$mol_ambient({}).$mol_log3_done({\n\t\t\tplace : '$mol_test' , \n\t\t\tmessage : 'Completed' ,\n\t\t\tcount : $mol_test_all.length ,\n\t\t})\n\t\t\n\t}\n\t\n\tlet scheduled = false\n\texport function $mol_test_schedule() {\n\n\t\tif( scheduled ) return\n\t\tscheduled = true\n\n\t\tsetTimeout( ()=> {\n\t\t\tscheduled = false\n \t\t\t$mol_test_run()\n\t\t} , 0 )\n\t\t\n\t}\n\n\n\t$mol_test_mocks.push( context => {\n\t\tlet seed = 0\n\n\t\tcontext.Math = Object.create( Math )\n\t\tcontext.Math.random = ()=> Math.sin( seed++ )\n\n\t\tconst forbidden = [ 'XMLHttpRequest' , 'fetch' ]\n\n\t\tfor( let api of forbidden ) {\n\t\t\tcontext[ api ] = new Proxy( function(){} , {\n\t\t\t\tget() {\n\t\t\t\t\t$mol_fail_hidden( new Error( `${ api } is forbidden in tests` ) )\n\t\t\t\t} ,\n\t\t\t\tapply() {\n\t\t\t\t\t$mol_fail_hidden( new Error( `${ api } is forbidden in tests` ) )\n\t\t\t\t} ,\n\t\t\t} )\n\t\t}\n\t\t\n\t} )\n\n\t$mol_test({\n\n\t\t'mocked Math.random'( $ ) {\n\t\t\tconsole.assert( $.Math.random() === 0 )\n\t\t\tconsole.assert( $.Math.random() === Math.sin(1) )\n\t\t} ,\n\n\t\t'forbidden XMLHttpRequest'( $ ) {\n\t\t\ttry {\n\t\t\t\tconsole.assert( void new $.XMLHttpRequest )\n\t\t\t} catch( error ) {\n\t\t\t\tconsole.assert( error.message === 'XMLHttpRequest is forbidden in tests' )\n\t\t\t}\n\t\t} ,\n\n\t\t'forbidden fetch'( $ ) {\n\t\t\ttry {\n\t\t\t\tconsole.assert( void $.fetch('') )\n\t\t\t} catch( error ) {\n\t\t\t\tconsole.assert( error.message === 'fetch is forbidden in tests' )\n\t\t\t}\n\t\t} ,\n\n\t})\n\n}\n","namespace $ {\n\t\n\texport var $mol_dom_context : typeof globalThis\n\t\n}\n","namespace $ {\n\t\n\t$mol_dom_context = new $node.jsdom.JSDOM( '' , { url : 'https://localhost/' } ).window as any\n\t\n}\n","namespace $ {\n\n\texport function $mol_dom_render_children (\n\t\tel : Element ,\n\t\tchildNodes : NodeList | Array< Node | string | null >\n\t) {\n\t\tconst node_set = new Set< Node | string | null >( childNodes )\n\t\t\n\t\tlet nextNode : Node | null = el.firstChild\n\t\tfor( let view of childNodes ) {\n\n\t\t\tif( view == null ) continue\n\n\t\t\tif( view instanceof $mol_dom_context.Node ) {\n\t\t\t\t\n\t\t\t\twhile( true ) {\n\t\t\t\t\tif( !nextNode ) {\n\t\t\t\t\t\tel.appendChild( view )\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tif( nextNode == view ) {\n\t\t\t\t\t\tnextNode = nextNode.nextSibling\n\t\t\t\t\t\tbreak\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif( node_set.has( nextNode ) ) {\n\t\t\t\t\t\t\tel.insertBefore( view , nextNode )\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst nn = nextNode.nextSibling\n\t\t\t\t\t\t\tel.removeChild( nextNode )\n\t\t\t\t\t\t\tnextNode = nn\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\tif( nextNode && nextNode.nodeName === '#text' ) {\n\t\t\t\t\tconst str = String( view )\n\t\t\t\t\tif( nextNode.nodeValue !== str ) nextNode.nodeValue = str\n\t\t\t\t\tnextNode = nextNode.nextSibling\n\t\t\t\t} else {\n\t\t\t\t\tconst textNode = $mol_dom_context.document.createTextNode( String( view ) )\n\t\t\t\t\tel.insertBefore( textNode , nextNode )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\twhile( nextNode ) {\n\t\t\tconst currNode = nextNode\n\t\t\tnextNode = currNode.nextSibling\n\t\t\tel.removeChild( currNode )\n\t\t}\n\t}\n\n}\n",null,null,null,null,"/** @jsx $mol_jsx */\nnamespace $ {\n\t\n\t$mol_test({\n\t\t\n\t\t'Make empty div'() {\n\t\t\t$mol_assert_equal( (<div/>).outerHTML , '<div></div>' )\n\t\t} ,\n\t\t\n\t\t'Define native field'() {\n\t\t\t\n\t\t\tconst dom = <input value='123' /> as HTMLInputElement\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML , '<input value=\"123\">' )\n\t\t\t$mol_assert_equal( dom.value , '123' )\n\n\t\t} ,\n\t\t\n\t\t'Define classes'() {\n\t\t\t\n\t\t\tconst dom = <div class={ 'foo bar' } />\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML , '<div class=\"foo bar\"></div>' )\n\n\t\t} ,\n\t\t\n\t\t'Define styles'() {\n\t\t\t\n\t\t\tconst dom = <div style={{ color : 'red' }} />\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML , '<div style=\"color: red;\"></div>' )\n\n\t\t} ,\n\t\t\n\t\t'Define dataset'() {\n\t\t\t\n\t\t\tconst dom = <div dataset={{ foo : 'bar' }} />\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML , '<div data-foo=\"bar\"></div>' )\n\n\t\t} ,\n\t\t\n\t\t'Define attributes'() {\n\t\t\t\n\t\t\tconst dom = <div lang=\"ru\" hidden />\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML , '<div lang=\"ru\" hidden=\"\"></div>' )\n\n\t\t} ,\n\t\t\n\t\t'Define child nodes'() {\n\n\t\t\tconst dom =\n\t\t\t\t<div>\n\t\t\t\t\thello\n\t\t\t\t\t<strong>world</strong>\n\t\t\t\t\t!\n\t\t\t\t</div>\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML , '<div>hello<strong>world</strong>!</div>' )\n\n\t\t} ,\n\n\t\t'Function as component'() {\n\n\t\t\tconst Button = ( { hint } : { hint : string } , target : ()=> string ) => {\n\t\t\t\treturn <button title={ hint } >{ target() }</button>\n\t\t\t}\n\n\t\t\tconst dom = <Button id=\"/foo\" hint=\"click me\">{ ()=> 'hey!' }</Button>\n\n\t\t\t$mol_assert_equal( dom.outerHTML , '<button title=\"click me\" id=\"/foo\">hey!</button>' )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t// 'Standart classes as component'() {\n\n\t\t// \tconst dom = <HTMLButtonElement id=\"/foo\" title=\"click me\">hey!</HTMLButtonElement>\n\n\t\t// \t$mol_assert_equal( dom.outerHTML , '<button title=\"click me\" id=\"/foo\">hey!</button>' )\n\t\t\t\n\t\t// } ,\n\t\t\n\t\t'Nested guid generation'() {\n\n\t\t\tconst Foo = ()=> {\n\t\t\t\treturn <div>\n\t\t\t\t\t<Bar id=\"/bar\">\n\t\t\t\t\t\t<img id=\"/icon\" />\n\t\t\t\t\t</Bar>\n\t\t\t\t</div>\n\t\t\t}\n\n\t\t\tconst Bar = ( props : {} , icon : Element )=> {\n\t\t\t\treturn <span>{ icon }</span>\n\t\t\t}\n\n\t\t\tconst dom = <Foo id=\"/foo\" />\n\n\t\t\t$mol_assert_equal( dom.outerHTML , '<div id=\"/foo\"><span id=\"/foo/bar\"><img id=\"/foo/icon\"></span></div>' )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'Fail on non unique ids'() {\n\n\t\t\tconst App = ()=> {\n\t\t\t\treturn <div>\n\t\t\t\t\t<span id=\"/bar\" />\n\t\t\t\t\t<span id=\"/bar\" />\n\t\t\t\t</div>\n\t\t\t}\n\n\t\t\t$mol_assert_fail( ()=> <App id=\"/foo\" /> , 'JSX already has tag with id \"/bar\"' )\n\t\t\t\n\t\t} ,\n\t\t\n\t})\n\t\n}\n","namespace $ {\n\n\texport let $mol_jsx_prefix = ''\n\n\texport let $mol_jsx_booked = null as null | Set< string >\n\t\n\texport let $mol_jsx_document : $mol_jsx.JSX.ElementClass['ownerDocument'] = {\n\t\tgetElementById : ()=> null ,\n\t\tcreateElement : ( name : string )=> $mol_dom_context.document.createElement( name )\n\t}\n\n\texport function $mol_jsx< Props extends { id? : string } , Children extends Array< Node | string > >(\n\t\tElem : string\n\t\t\t| ( ( props : Props , ... children : Children ) => Element )\n\t\t\t| typeof $mol_jsx_view ,\n\t\tprops : Props ,\n\t\t... childNodes : Children\n\t) : Element {\n\n\t\tconst id = props && props.id || ''\n\n\t\tif( $mol_jsx_booked ) {\n\t\t\tif( $mol_jsx_booked.has( id ) ) {\n\t\t\t\t$mol_fail( new Error( `JSX already has tag with id ${ JSON.stringify( id ) }` ) )\n\t\t\t} else {\n\t\t\t\t$mol_jsx_booked.add( id )\n\t\t\t}\n\t\t}\n\n\t\tconst guid = $mol_jsx_prefix + id\n\n\t\tlet node = guid && $mol_jsx_document.getElementById( guid )\n\n\t\tif( typeof Elem !== 'string' ) {\n\n\t\t\tif( 'prototype' in Elem ) {\n\n\t\t\t\tconst view : $mol_jsx_view = node && node[ Elem as any ] || new ( Elem as any )\n\t\t\t\t\n\t\t\t\tObject.assign( view , props )\n\t\t\t\tview[ Symbol.toStringTag ] = guid\n\t\t\t\t\n\t\t\t\tview.childNodes = childNodes\n\t\t\t\t\n\t\t\t\tif( !view.ownerDocument ) view.ownerDocument = $mol_jsx_document\n\t\t\t\t\n\t\t\t\tnode = view.valueOf()\n\t\t\t\t\n\t\t\t\tnode[ Elem as any ] = view\n\t\t\t\t\n\t\t\t\treturn node\n\n\t\t\t} else {\n\n\t\t\t\tconst prefix = $mol_jsx_prefix\n\t\t\t\tconst booked = $mol_jsx_booked\n\t\t\t\t\n\t\t\t\ttry {\n\t\n\t\t\t\t\t$mol_jsx_prefix = guid\n\t\t\t\t\t$mol_jsx_booked = new Set\n\t\n\t\t\t\t\treturn ( Elem as any )( props , ... childNodes )\n\t\t\t\t\t\n\t\t\t\t} finally {\n\n\t\t\t\t\t$mol_jsx_prefix = prefix\n\t\t\t\t\t$mol_jsx_booked = booked\n\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\tif( !node ) node = $mol_jsx_document.createElement( Elem )\n\n\t\t$mol_dom_render_children( node , ( [] as ( Node | string )[] ).concat( ... childNodes ) )\n\n\t\tfor( const key in props ) {\n\n\t\t\tif( typeof props[ key ] === 'string' ) {\n\n\t\t\t\tnode.setAttribute( key , props[ key as any ] )\n\n\t\t\t} else if(\n\t\t\t\tprops[ key ] &&\n\t\t\t\ttypeof props[ key ] === 'object' &&\n\t\t\t\tReflect.getPrototypeOf( props[ key ] as any ) === Reflect.getPrototypeOf({})\n\t\t\t) {\n\n\t\t\t\tif( typeof node[ key as any ] === 'object' ) {\n\t\t\t\t\tObject.assign( ( node as any )[ key ] , props[ key ] )\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tnode[ key as any ] = props[ key ]\n\n\t\t}\n\n\t\tif( guid ) node.id = guid\n\n\t\treturn node\n\n\t}\n\n\texport declare namespace $mol_jsx.JSX {\n\n\t\texport interface Element extends HTMLElement {\n\t\t\tclass?: string\n\t\t}\n\t\t\n\t\texport interface ElementClass {\n\t\t\tattributes : {}\n\t\t\townerDocument : Pick< Document , 'getElementById' | 'createElement' >\n\t\t\tchildNodes : Array< Node | string >\n\t\t\tvalueOf() : Element\n\t\t}\n\t\t\n\t\t/** Props for html elements */\n\t\texport type IntrinsicElements = {\n\t\t\t[ key in keyof HTMLElementTagNameMap ]? : $.$mol_type_partial_deep< Element & HTMLElementTagNameMap[ key ] >\n\t\t}\n\t\t\n\t\t/** Additional undeclared props */\n\t\texport interface IntrinsicAttributes {\n\t\t\tid? : string\n\t\t}\n\t\t\n\t\texport interface ElementAttributesProperty {\n\t\t\tattributes : {\n\t\t\t}\n\t\t}\n\t\t\n\t\t// export type IntrinsicClassAttributes< Class > = $.$mol_type_partial_deep< Omit< Class , 'valueOf' > >\n\t\t\n\t\tinterface ElementChildrenAttribute {\n\t\t}\n\t\n\t}\n\n}\n","/** @jsx $mol_jsx */\nnamespace $ {\n\n\t$mol_test({\n\n\t\t'nulls & undefineds'() {\n\n\t\t\t$mol_assert_ok( $mol_compare_deep( null , null ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( undefined , undefined ) )\n\t\t\t\n\t\t\t$mol_assert_not( $mol_compare_deep( undefined , null ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( {} , null ) )\n\t\t\t\n\t\t} ,\n\n\t\t'number'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( 1 , 1 ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( Number.NaN , Number.NaN ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( 1 , 2 ) )\n\t\t} ,\n\n\t\t'Number'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( Object( 1 ) , Object( 1 ) ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( Object( Number.NaN ) , Object( Number.NaN ) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( Object( 1 ) , Object( 2 ) ) )\n\t\t} ,\n\n\t\t'empty POJOs'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( {} , {} ) )\n\t\t} ,\n\t\t\n\t\t'different POJOs'() {\n\t\t\t$mol_assert_not( $mol_compare_deep( { a : 1 } , { b : 2 } ) )\n\t\t} ,\n\n\t\t'different POJOs with same keys but different values'() {\n\t\t\t$mol_assert_not( $mol_compare_deep( { a : 1 } , { a : 2 } ) )\n\t\t} ,\n\n\t\t'different POJOs with different keys but same values'() {\n\t\t\t$mol_assert_not( $mol_compare_deep( {} , { a : undefined } ) )\n\t\t} ,\n\n\t\t'Array'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( [] , [] ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( [ 1 , [2] ] , [ 1 , [2] ] ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( [ 1 , 2 ] , [ 1 , 3 ] ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( [ 1 , 2 , ] , [ 1 , 3 , undefined ] ) )\n\t\t} ,\n\n\t\t'same POJO trees'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( { a : { b : 1 } } , { a : { b : 1 } } ) )\n\t\t} ,\n\n\t\t'different classes with same values'() {\n\n\t\t\tclass Obj { foo = 1 }\n\t\t\t\n\t\t\tconst a = new Obj\n\t\t\tconst b = new class extends Obj {}\n\t\t\t\n\t\t\t$mol_assert_not( $mol_compare_deep( a , b ) )\n\n\t\t} ,\n\n\t\t'same POJOs with cyclic reference'() {\n\n\t\t\tconst a = { foo : {} }\n\t\t\ta['self'] = a\n\n\t\t\tconst b = { foo : {} }\n\t\t\tb['self'] = b\n\n\t\t\t$mol_assert_ok( $mol_compare_deep( a , b ) )\n\n\t\t} ,\n\n\t\t'empty Element'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( <div /> , <div /> ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( <div /> , <span /> ) )\n\t\t} ,\n\t\t\n\t\t'Element with attributes'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( <div dir=\"rtl\" /> , <div dir=\"rtl\" /> ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( <div dir=\"rtl\" /> , <div /> ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( <div dir=\"rtl\" /> , <div dir=\"ltr\" /> ) )\n\t\t} ,\n\t\t\n\t\t'Element with styles'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( <div style={{ color : 'red' }} /> , <div style={{ color : 'red' }} /> ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( <div style={{ color : 'red' }} /> , <div style={{ }} /> ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( <div style={{ color : 'red' }} /> , <div style={{ color : 'blue' }} /> ) )\n\t\t} ,\n\t\t\n\t\t'Element with content'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( <div>foo<br/></div> , <div>foo<br/></div> ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( <div>foo<br/></div> , <div>bar<br/></div> ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( <div>foo<br/></div> , <div>foo<hr/></div> ) )\n\t\t} ,\n\t\t\n\t\t'Element with handlers'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( <div onclick={ ()=> 1 } /> , <div onclick={ ()=> 1 } /> ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( <div onclick={ ()=> 1 } /> , <div onclick={ ()=> 2 } /> ) )\n\t\t} ,\n\t\t\n\t\t'Date'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Date( 12345 ) , new Date( 12345 ) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new Date( 12345 ) , new Date( 12346 ) ) )\n\t\t} ,\n\n\t\t'RegExp'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( /\\x22/mig , /\\x22/mig ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( /\\x22/mig , /\\x21/mig ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( /\\x22/mig , /\\x22/mg ) )\n\t\t} ,\n\n\t\t'Map'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Map , new Map ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Map([ [ [1] , [2] ] ]) , new Map([ [ [1] , [2] ] ]) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new Map([ [ 1 , 2 ] ]) , new Map([ [ 1 , 3 ] ]) ) )\n\t\t} ,\n\t\t\n\t\t'Set'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Set , new Set ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Set([ 1 , [2] ]) , new Set([ 1 , [2] ]) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new Set([ 1 ]) , new Set([ 2 ]) ) )\n\t\t} ,\n\t\t\n\t\t'Uint8Array'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Uint8Array , new Uint8Array ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Uint8Array([ 0 ]) , new Uint8Array([ 0 ]) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new Uint8Array([ 0 ]) , new Uint8Array([ 1 ]) ) )\n\t\t} ,\n\t\t\n\t})\n\n}\n","namespace $ {\n\n\tconst a_stack = [] as any[]\n\tconst b_stack = [] as any[]\n\n\tlet cache = null as null | WeakMap< any , WeakMap< any , boolean > >\n\n\texport function $mol_compare_deep< Value >( a : Value , b : Value ) : boolean {\n\n\t\tif( Object.is( a , b ) ) return true\n\n\t\tconst a_type = typeof a\n\t\tconst b_type = typeof b\n\n\t\tif( a_type !== b_type ) return false\n\n\t\tif( a_type === 'function' ) return a['toString']() === b['toString']()\n\t\tif( a_type !== 'object' ) return false\n\n\t\tif( !a || !b ) return false\n\n\t\tif( a instanceof Error ) return false\n\t\tif( a['constructor'] !== b['constructor'] ) return false\n\n\t\tif( a instanceof RegExp ) return a.toString() === b['toString']()\n\n\t\tconst ref = a_stack.indexOf( a )\n\t\t\n\t\tif( ref >= 0 ) {\n\t\t\treturn Object.is( b_stack[ ref ] , b )\n\t\t}\n\n\t\tif( !cache ) cache = new WeakMap\n\n\t\tlet a_cache = cache.get( a )\n\t\tif( a_cache ) {\n\n\t\t\tconst b_cache = a_cache.get( b )\n\t\t\tif( typeof b_cache === 'boolean' ) return b_cache\n\n\t\t} else {\n\n\t\t\ta_cache = new WeakMap< any , boolean >()\n\t\t\tcache.set( a , a_cache )\n\n\t\t}\n\n\t\ta_stack.push( a )\n\t\tb_stack.push( b )\n\n\t\tlet result! : boolean\n\n\t\ttry {\n\n\t\t\tif( Symbol.iterator in a ) {\n\t\t\t\t\n\t\t\t\tconst a_iter = a[ Symbol.iterator ]()\n\t\t\t\tconst b_iter = b[ Symbol.iterator ]()\n\t\n\t\t\t\twhile( true ) {\n\n\t\t\t\t\tconst a_next = a_iter.next()\n\t\t\t\t\tconst b_next = b_iter.next()\n\n\t\t\t\t\tif( a_next.done !== b_next.done ) return result = false\n\t\t\t\t\tif( a_next.done ) break\n\n\t\t\t\t\tif( !$mol_compare_deep( a_next.value , b_next.value ) ) return result = false\n\n\t\t\t\t}\n\n\t\t\t\treturn result = true\n\n\t\t\t}\n\n\t\t\tlet count = 0\n\n\t\t\tfor( let key in a ) {\n\n\t\t\t\ttry {\n\n\t\t\t\t\tif( !$mol_compare_deep( a[key] , b[key] ) ) return result = false\n\t\t\t\t\n\t\t\t\t} catch( error ) {\n\n\t\t\t\t\t$mol_fail_hidden( new $mol_error_mix( `Failed ${ JSON.stringify( key ) } fields comparison of ${a} and ${b}` , error ) )\n\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t++ count\n\n\t\t\t}\n\t\n\t\t\tfor( let key in b ) {\n\n\t\t\t\t--count\n\t\t\t\t\n\t\t\t\tif( count < 0 ) return result = false\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( a instanceof Number || a instanceof String || a instanceof Symbol || a instanceof Boolean || a instanceof Date ) {\n\t\t\t\tif( !Object.is( a['valueOf'](), b['valueOf']() ) ) return result = false\n\t\t\t}\n\n\t\t\treturn result = true\n\n\t\t} finally {\n\t\t\t\n\t\t\ta_stack.pop()\n\t\t\tb_stack.pop()\n\n\t\t\tif( a_stack.length === 0 ) {\n\t\t\t\tcache = null\n\t\t\t} else {\n\t\t\t\ta_cache.set( b , result )\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'must be false'() {\n\t\t\t$mol_assert_not( 0 )\n\t\t} ,\n\t\t\n\t\t'must be true'() {\n\t\t\t$mol_assert_ok( 1 )\n\t\t} ,\n\t\t\n\t\t'two must be equal'() {\n\t\t\t$mol_assert_equal( 2 , 2 )\n\t\t} ,\n\t\t\n\t\t'three must be equal'() {\n\t\t\t$mol_assert_equal( 2 , 2 , 2 )\n\t\t} ,\n\t\t\n\t\t'two must be unique'() {\n\t\t\t$mol_assert_unique( [ 3 ] , [ 3 ] )\n\t\t} ,\n\t\t\n\t\t'three must be unique'() {\n\t\t\t$mol_assert_unique( [ 3 ] , [ 3 ] , [ 3 ] )\n\t\t} ,\n\t\t\n\t\t'two must be alike'() {\n\t\t\t$mol_assert_like( [ 3 ] , [ 3 ] )\n\t\t} ,\n\t\t\n\t\t'three must be alike'() {\n\t\t\t$mol_assert_like( [ 3 ] , [ 3 ] , [ 3 ] )\n\t\t} ,\n\t\t\n\t} )\n}\n","namespace $ {\n\t\n\texport function $mol_assert_ok( value : any ) {\n\t\tif( value ) return\n\t\t$mol_fail( new Error( `${value} ≠ true` ) )\n\t}\n\t\n\texport function $mol_assert_not( value : any ) {\n\t\tif( !value ) return\n\t\t$mol_fail( new Error( `${value} ≠ false` ) )\n\t}\n\t\n\texport function $mol_assert_fail( handler : ()=> any , ErrorRight? : any ) {\n\t\t\n\t\tconst fail = $.$mol_fail\n\t\t\n\t\ttry {\n\t\t\t$.$mol_fail = $.$mol_fail_hidden\n\t\t\t\n\t\t\thandler()\n\n\t\t} catch( error ) {\n\t\t\t\n\t\t\tif( !ErrorRight ) return error\n\t\t\t\n\t\t\t$.$mol_fail = fail\n\n\t\t\tif( typeof ErrorRight === 'string' ) {\n\t\t\t\t$mol_assert_equal( error.message, ErrorRight )\n\t\t\t} else {\n\t\t\t\t$mol_assert_ok( error instanceof ErrorRight )\n\t\t\t}\n\t\t\t\n\t\t\treturn error\n\n\t\t} finally {\n\t\t\t$.$mol_fail = fail\n\t\t}\n\n\t\t$mol_fail( new Error( 'Not failed' ) )\n\t}\n\t\n\texport function $mol_assert_equal< Value >( ... args : [ Value, Value, ...Value[] ] ) {\n\t\tfor( let i = 0 ; i < args.length ; ++i ) {\n\t\t\tfor( let j = 0 ; j < args.length ; ++j ) {\n\t\t\t\tif( i === j ) continue\n\t\t\t\tif( Number.isNaN( args[i] as any as number ) && Number.isNaN( args[j] as any as number ) ) continue\n\t\t\t\tif( args[i] !== args[j] ) $mol_fail( new Error( `Not equal (${i+1}:${j+1})\\n${ args[i] }\\n${ args[j] }` ) )\n\t\t\t}\n\t\t}\n\t}\n\t\n\texport function $mol_assert_unique( ... args : [ any, any, ...any[] ] ) {\n\t\tfor( let i = 0 ; i < args.length ; ++i ) {\n\t\t\tfor( let j = 0 ; j < args.length ; ++j ) {\n\t\t\t\tif( i === j ) continue\n\t\t\t\tif( args[i] === args[j] || ( Number.isNaN( args[i] as any as number ) && Number.isNaN( args[j] as any as number ) ) ) {\n\t\t\t\t\t$mol_fail( new Error( `args[${ i }] = args[${ j }] = ${ args[i] }` ) )\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t\n\texport function $mol_assert_like< Value >( head : Value, ... tail : Value[]) {\n\t\tfor( let [ index, value ] of Object.entries( tail ) ) {\n\n\t\t\tif( !$mol_compare_deep( value , head ) ) {\n\n\t\t\t\tconst print = ( val : any ) => {\n\t\t\t\t\t\n\t\t\t\t\tif( !val ) return val\n\t\t\t\t\tif( typeof val !== 'object' ) return val\n\t\t\t\t\tif( 'outerHTML' in val ) return val.outerHTML\n\t\t\t\t\t\n\t\t\t\t\ttry {\n\t\t\t\t\t\treturn JSON.stringify( val )\n\t\t\t\t\t} catch( error ) {\n\t\t\t\t\t\tconsole.error( error )\n\t\t\t\t\t\treturn val\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn $mol_fail( new Error( `Not like (1:${ + index + 2 })\\n${ print( head ) }\\n---\\n${ print( value ) }` ) )\n\n\t\t\t}\n\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'get'() {\n\t\t\tconst proxy = $mol_delegate( {} as any , ()=> ({ foo : 777 }) )\n\t\t\t$mol_assert_equal( proxy.foo , 777 )\n\t\t},\n\n\t\t'has'() {\n\t\t\tconst proxy = $mol_delegate( {} as any , ()=> ({ foo : 777 }) )\n\t\t\t$mol_assert_equal( 'foo' in proxy , true )\n\t\t},\n\n\t\t'set'() {\n\t\t\tconst target = { foo : 777 }\n\t\t\tconst proxy = $mol_delegate( {} as any , ()=> target )\n\t\t\tproxy.foo = 123\n\t\t\t$mol_assert_equal( target.foo , 123 )\n\t\t},\n\t\t\n\t\t'getOwnPropertyDescriptor'() {\n\n\t\t\tconst proxy = $mol_delegate( {} as any , ()=> ({ foo : 777 }) )\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\tObject.getOwnPropertyDescriptor( proxy , 'foo' ),\n\t\t\t\t{\n\t\t\t\t\tvalue: 777,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t},\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'ownKeys'() {\n\n\t\t\tconst proxy = $mol_delegate(\n\t\t\t\t{} as any ,\n\t\t\t\t()=> ({ foo : 777 , [ Symbol.toStringTag ] : 'bar' }),\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\tReflect.ownKeys( proxy ),\n\t\t\t\t[ 'foo' , Symbol.toStringTag ],\n\t\t\t)\n\n\t\t},\n\n\t\t'getPrototypeOf'() {\n\n\t\t\tclass Foo {}\n\n\t\t\tconst proxy = $mol_delegate(\n\t\t\t\t{} as any ,\n\t\t\t\t()=> new Foo,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tObject.getPrototypeOf( proxy ),\n\t\t\t\tFoo.prototype,\n\t\t\t)\n\n\t\t},\n\n\t\t'setPrototypeOf'() {\n\n\t\t\tclass Foo {}\n\t\t\tconst target = {}\n\n\t\t\tconst proxy = $mol_delegate(\n\t\t\t\t{} ,\n\t\t\t\t()=> target,\n\t\t\t)\n\n\t\t\tObject.setPrototypeOf( proxy , Foo.prototype )\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tObject.getPrototypeOf( target ),\n\t\t\t\tFoo.prototype,\n\t\t\t)\n\n\t\t},\n\n\t\t'instanceof'() {\n\n\t\t\tclass Foo {}\n\n\t\t\tconst proxy = $mol_delegate(\n\t\t\t\t{} ,\n\t\t\t\t()=> new Foo,\n\t\t\t)\n\n\t\t\t$mol_assert_ok( proxy instanceof Foo )\n\t\t\t$mol_assert_ok( proxy instanceof $mol_delegate )\n\n\t\t},\n\n\t\t'autobind'() {\n\n\t\t\tclass Foo {}\n\n\t\t\tconst proxy = $mol_delegate(\n\t\t\t\t{} ,\n\t\t\t\t()=> new Foo,\n\t\t\t)\n\n\t\t\t$mol_assert_ok( proxy instanceof Foo )\n\t\t\t$mol_assert_ok( proxy instanceof $mol_delegate )\n\n\t\t},\n\n\t})\n}\n",null,"namespace $ {\n\t$mol_test( {\n\t\t'span for same uri'( $ ) {\n\t\t\tconst span = new $mol_span('test.ts', '', 1, 3, 4)\n\t\t\tconst child = span.span(4, 5, 8)\n\n\t\t\t$mol_assert_equal(child.uri, 'test.ts')\n\t\t\t$mol_assert_equal(child.row, 4)\n\t\t\t$mol_assert_equal(child.col, 5)\n\t\t\t$mol_assert_equal(child.length, 8)\n\t\t},\n\n\t\t'span after of given position'( $ ) {\n\t\t\tconst span = new $mol_span('test.ts', '', 1, 3, 4)\n\t\t\tconst child = span.after(11)\n\n\t\t\t$mol_assert_equal(child.uri, 'test.ts')\n\t\t\t$mol_assert_equal(child.row, 1)\n\t\t\t$mol_assert_equal(child.col, 7)\n\t\t\t$mol_assert_equal(child.length, 11)\n\t\t},\n\n\t\t'slice span - regular'( $ ) {\n\t\t\tconst span = new $mol_span('test.ts', '', 1, 3, 5)\n\t\t\tconst child = span.slice(1, 4)\n\n\t\t\t$mol_assert_equal(child.row, 1)\n\t\t\t$mol_assert_equal(child.col, 4)\n\t\t\t$mol_assert_equal(child.length, 3)\n\n\t\t\tconst child2 = span.slice(2, 2)\n\n\t\t\t$mol_assert_equal(child2.col, 5)\n\t\t\t$mol_assert_equal(child2.length, 0)\n\t\t},\n\n\t\t'slice span - negative'( $ ) {\n\t\t\tconst span = new $mol_span('test.ts', '', 1, 3, 5)\n\t\t\tconst child = span.slice(-3, -1)\n\n\t\t\t$mol_assert_equal(child.row, 1)\n\t\t\t$mol_assert_equal(child.col, 5)\n\t\t\t$mol_assert_equal(child.length, 2)\n\t\t},\n\n\t\t'slice span - out of range'( $ ) {\n\t\t\tconst span = new $mol_span('test.ts', '', 1, 3, 5)\n\n\t\t\t$mol_assert_fail(() => span.slice(-1, 3))\n\t\t\t$mol_assert_fail(() => span.slice(1, 6))\n\t\t\t$mol_assert_fail(() => span.slice(1, 10))\n\t\t},\n\n\t\t'error handling'( $ ) {\n\t\t\tconst span = new $mol_span('test.ts', '', 1, 3, 4)\n\t\t\tconst error = span.error('Some error\\n')\n\n\t\t\t$mol_assert_equal(error.message, 'Some error\\ntest.ts#1:3/4')\n\t\t}\n\n\t} )\n}\n","namespace $ {\n\n\t$mol_test_mocks.push( $ => {\n\t\t$.$mol_log3_come = ()=> {}\n\t\t$.$mol_log3_done = ()=> {}\n\t\t$.$mol_log3_fail = ()=> {}\n\t\t$.$mol_log3_warn = ()=> {}\n\t\t$.$mol_log3_rise = ()=> {}\n\t\t$.$mol_log3_area = ()=> ()=> {}\n\t} )\n\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'inserting'($) {\n\t\t\t$mol_assert_equal(\n\t\t\t\t$.$mol_tree2_from_string( 'a b c d\\n' )\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , 'a' , 'b' , 'c' )\n\t\t\t\t\t.toString(),\n\t\t\t\t'a b x\\n',\n\t\t\t)\n\t\t\t$mol_assert_equal(\n\t\t\t\t$.$mol_tree2_from_string( 'a b\\n' )\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , 'a' , 'b' , 'c' , 'd' )\n\t\t\t\t\t.toString(),\n\t\t\t\t'a b c x\\n',\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\t$.$mol_tree2_from_string( 'a b c d\\n' )\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , 0 , 0 , 0 )\n\t\t\t\t\t.toString(),\n\t\t\t\t'a b x\\n',\n\t\t\t)\n\t\t\t$mol_assert_equal(\n\t\t\t\t$.$mol_tree2_from_string( 'a b\\n' )\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , 0 , 0 , 0 , 0 )\n\t\t\t\t\t.toString(),\n\t\t\t\t'a b \\\\\\n\\tx\\n'\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\t$.$mol_tree2_from_string( 'a b c d\\n' )\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , null , null , null )\n\t\t\t\t\t.toString(),\n\t\t\t\t'a b x\\n',\n\t\t\t)\n\t\t\t$mol_assert_equal(\n\t\t\t\t$.$mol_tree2_from_string( 'a b\\n' )\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , null , null , null , null )\n\t\t\t\t\t.toString(),\n\t\t\t\t'a b \\\\\\n\\tx\\n',\n\t\t\t)\n\t\t} ,\n\n\t\t'hack'($) {\n\n\t\t\tconst res = $.$mol_tree2_from_string( `foo bar xxx\\n` )\n\t\t\t.hack({\n\t\t\t\t'bar' : ( input , belt )=> [ input.struct( '777' , input.hack( belt ) ) ] ,\n\t\t\t})\n\n\t\t\t$mol_assert_equal( res.toString() , 'foo 777 xxx\\n' )\n\n\t\t} ,\n\n\t} )\t\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'tree parsing'() {\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_tree.fromString( \"foo\\nbar\\n\" ).sub.length , 2 )\n\t\t\t$mol_assert_equal( $mol_tree.fromString( \"foo\\nbar\\n\" ).sub[ 1 ].type , \"bar\" )\n\t\t\t$mol_assert_equal( $mol_tree.fromString( \"foo\\n\\n\\n\" ).sub.length , 1 )\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_tree.fromString( \"=foo\\n\\\\bar\\n\" ).sub.length , 2 )\n\t\t\t$mol_assert_equal( $mol_tree.fromString( \"=foo\\n\\\\bar\\n\" ).sub[ 1 ].data , \"bar\" )\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_tree.fromString( \"foo bar \\\\pol\" ).sub[ 0 ].sub[ 0 ].sub[ 0 ].data , \"pol\" )\n\t\t\t$mol_assert_equal( $mol_tree.fromString( \"foo bar\\n\\t\\\\pol\\n\\t\\\\men\" ).sub[ 0 ].sub[ 0 ].sub[ 1 ].data , \"men\" )\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_tree.fromString( 'foo bar \\\\text\\n' ).toString() , 'foo bar \\\\text\\n' )\n\t\t} ,\n\n\t\t'inserting'() {\n\t\t\t$mol_assert_equal( $mol_tree.fromString( 'a b c d' ).insert( new $mol_tree , 'a' , 'b' , 'c' ).toString() , 'a b \\\\\\n' )\n\t\t\t$mol_assert_equal( $mol_tree.fromString( 'a b' ).insert( new $mol_tree , 'a' , 'b' , 'c' , 'd' ).toString() , 'a b c \\\\\\n' )\n\n\t\t\t$mol_assert_equal( $mol_tree.fromString( 'a b c d' ).insert( new $mol_tree , 0 , 0 , 0 ).toString() , 'a b \\\\\\n' )\n\t\t\t$mol_assert_equal( $mol_tree.fromString( 'a b' ).insert( new $mol_tree , 0 , 0 , 0 , 0 ).toString() , 'a b \\\\\\n\\t\\\\\\n' )\n\n\t\t\t$mol_assert_equal( $mol_tree.fromString( 'a b c d' ).insert( new $mol_tree , null , null , null ).toString() , 'a b \\\\\\n' )\n\t\t\t$mol_assert_equal( $mol_tree.fromString( 'a b' ).insert( new $mol_tree , null , null , null , null ).toString() , 'a b \\\\\\n\\t\\\\\\n' )\n\t\t} ,\n\n\t\t'fromJSON'() {\n\t\t\t$mol_assert_equal( $mol_tree.fromJSON([]).toString() , '/\\n' )\n\t\t\t$mol_assert_equal( $mol_tree.fromJSON([ false , true ]).toString() , '/\\n\\tfalse\\n\\ttrue\\n' )\n\t\t\t$mol_assert_equal( $mol_tree.fromJSON([ 0 , 1 , 2.3 ]).toString() , '/\\n\\t0\\n\\t1\\n\\t2.3\\n' )\n\t\t\t$mol_assert_equal( $mol_tree.fromJSON([ '' , 'foo' , 'bar\\nbaz' ]).toString() , '/\\n\\t\\\\\\n\\t\\\\foo\\n\\t\\\\\\n\\t\\t\\\\bar\\n\\t\\t\\\\baz\\n' )\n\t\t\t$mol_assert_equal( $mol_tree.fromJSON({ 'foo' : false , 'bar\\nbaz' : 'lol' }).toString() , '*\\n\\tfoo false\\n\\t\\\\\\n\\t\\t\\\\bar\\n\\t\\t\\\\baz\\n\\t\\t\\\\lol\\n' )\n\t\t} ,\n\t\t\n\t\t'toJSON'() {\n\t\t\t$mol_assert_equal( JSON.stringify( $mol_tree.fromString( '/\\n' ).sub[0] ) , '[]' )\n\t\t\t$mol_assert_equal( JSON.stringify( $mol_tree.fromString( '/\\n\\tfalse\\n\\ttrue\\n' ).sub[0] ) , '[false,true]' )\n\t\t\t$mol_assert_equal( JSON.stringify( $mol_tree.fromString( '/\\n\\t0\\n\\t1\\n\\t2.3\\n' ).sub[0] ) , '[0,1,2.3]' )\n\t\t\t$mol_assert_equal( JSON.stringify( $mol_tree.fromString( '/\\n\\t\\\\\\n\\t\\\\foo\\n\\t\\\\\\n\\t\\t\\\\bar\\n\\t\\t\\\\baz\\n' ).sub[0] ) , '[\"\",\"foo\",\"bar\\\\nbaz\"]' )\n\t\t\t$mol_assert_equal( JSON.stringify( $mol_tree.fromString( '*\\n\\tfoo false\\n\\t\\\\\\n\\t\\t\\\\bar\\n\\t\\t\\\\baz\\n\\t\\t\\\\lol\\n' ).sub[0] ) , '{\"foo\":false,\"bar\\\\nbaz\":\"lol\"}' )\n\t\t} ,\n\t\t\n\t\t'hack'() {\n\n\t\t\tconst res = $mol_tree.fromString( `foo bar xxx` ).hack({\n\t\t\t\t'' : ( tree , context )=> [ tree.hack( context ) ] ,\n\t\t\t\t'bar' : ( tree , context )=> [ tree.hack( context ).clone({ type : '777' }) ] ,\n\t\t\t})\n\n\t\t\t$mol_assert_equal( res.toString() , new $mol_tree({ type : 'foo 777 xxx' }).toString() )\n\n\t\t} ,\n\n\t\t'errors handling'( $ ) {\n\n\t\t\tconst errors = [] as string[]\n\n\t\t\tclass Tree extends $mol_tree {\n\t\t\t\tstatic $ = $.$mol_ambient({\n\t\t\t\t\t$mol_fail: error => errors.push( error.message ) as never\n\t\t\t\t})\n\t\t\t}\n\t\t\t\n\t\t\tTree.fromString( `\n\t\t\t\t\\t \\tfoo\n\t\t\t\tbar \\\\data\n\t\t\t` , 'test' )\n\n\t\t\t$mol_assert_like( errors , [ 'Syntax error at test:2\\n \\tfoo' ] )\n\n\t\t},\n\n\t} )\t\n}\n","namespace $ {\n\n\texport function $mol_dom_parse(\n\t\ttext : string ,\n\t\ttype : DOMParserSupportedType = 'application/xhtml+xml' ,\n\t) {\n\n\t\tconst parser = new $mol_dom_context.DOMParser()\n\t\tconst doc = parser.parseFromString( text , type )\n\t\t\n\t\tconst error = doc.getElementsByTagName( 'parsererror' )\n\t\tif( error.length ) throw new Error( error[0].textContent! )\n\n\t\treturn doc\n\t}\n\n}\n","/** @jsx $mol_jsx */\nnamespace $ {\n\t\n\t$mol_test({\n\t\t\n\t\t'Attach to document'() {\n\n\t\t\tconst doc = $mol_dom_parse( '<html><body id=\"/foo\"></body></html>' )\n\n\t\t\t$mol_jsx_attach( doc , ()=> <body id=\"/foo\">bar</body> )\n\n\t\t\t$mol_assert_equal( doc.documentElement.outerHTML , '<html><body id=\"/foo\">bar</body></html>' )\n\t\t\t\n\t\t} ,\t\t\n\t\t\n\t})\n\t\n}\n","namespace $ {\n\n\texport function $mol_jsx_attach< Result >( next : typeof $mol_jsx_document , action : ()=> Result ) {\n\t\tconst prev = $mol_jsx_document\n\t\ttry {\n\t\t\t$mol_jsx_document = next\n\t\t\treturn action()\n\t\t} finally {\n\t\t\t$mol_jsx_document = prev\n\t\t}\n\t}\n\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'init with overload'() {\n\t\t\tclass X extends $mol_object {\n\t\t\t\tfoo() {\n\t\t\t\t\treturn 1\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tvar x = X.make({\n\t\t\t\tfoo : ()=> 2 ,\n\t\t\t})\n\t\t\t\n\t\t\t$mol_assert_equal( x.foo() , 2 )\n\t\t} ,\n\t\t\t\n\t} )\n}\n","namespace $ {\n\n\texport namespace $$ { let $ }\n\n\texport const $mol_object_field = Symbol( '$mol_object_field' )\n\t\n\texport class $mol_object extends $mol_object2 {\n\t\t\n\t\tpublic static make< Instance >( this : { new() : Instance } , config : Partial< Instance > ) : Instance {\n\t\t\treturn super.create( obj => {\n\t\t\t\tfor( let key in config ) ( obj as any )[ key ] = config[ key ]!\n\t\t\t} ) as any\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\n\t$mol_test({\n\n\t\t'run callback' () {\n\n\t\t\tclass Plus1 extends $mol_wrapper {\n\t\t\n\t\t\t\tstatic wrap< This , Args extends any[] >( task : ( this : This , ... args : Args )=> number ) {\n\t\t\n\t\t\t\t\treturn function( this : This , ... args : Args ) {\n\t\t\t\t\t\treturn task.call( this , ... args ) + 1 as number\n\t\t\t\t\t}\n\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\n\t\t\t$mol_assert_equal( Plus1.run( ()=> 2 ) , 3 )\n\n\t\t} ,\n\n\t\t'wrap function' () {\n\t\t\n\t\t\tclass Plus1 extends $mol_wrapper {\n\t\t\n\t\t\t\tstatic wrap< This , Args extends any[] >( task : ( this : This , ... args : Args )=> number ) {\n\t\t\n\t\t\t\t\treturn function( this : This , ... args : Args ) {\n\t\t\t\t\t\treturn task.call( this , ... args ) + 1 as number\n\t\t\t\t\t}\n\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\t\n\t\t\tconst obj = {\n\t\t\t\tlevel : 2 ,\n\t\t\t\tpow : Plus1.func( function( this : { level : number } , a ) {\n\t\t\t\t\treturn a ** this.level\n\t\t\t\t} )\n\t\t\t}\n\n\t\t\t$mol_assert_equal( obj.pow( 2 ) , 5 )\n\n\t\t} ,\n\n\t\t'decorate field getter' () {\n\n\t\t\tclass Plus1 extends $mol_wrapper {\n\n\t\t\t\tstatic last = 0\n\t\t\n\t\t\t\tstatic wrap< This , Args extends any[] >( task : ( this : This , ... args : Args )=> number ) {\n\t\t\n\t\t\t\t\treturn function( this : This , ... args : Args ) {\n\t\t\t\t\t\treturn Plus1.last = ( task.call( this , ... args ) || 0 ) + 1 as number\n\t\t\t\t\t}\n\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\n\t\t\tclass Foo {\n\n\t\t\t\t@ Plus1.field\n\t\t\t\tstatic get two() {\n\t\t\t\t\treturn 1\n\t\t\t\t}\n\t\t\t\tstatic set two( next : number ) {}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( Foo.two , 2 )\n\t\t\t\n\t\t\tFoo.two = 3\n\t\t\t$mol_assert_equal( Plus1.last , 2 )\n\t\t\t$mol_assert_equal( Foo.two , 2 )\n\n\t\t} ,\n\n\t\t'decorate instance method' () {\n\n\t\t\tclass Plus1 extends $mol_wrapper {\n\t\t\n\t\t\t\tstatic wrap< This , Args extends any[] >( task : ( this : This , ... args : Args )=> number ) {\n\t\t\n\t\t\t\t\treturn function( this : This , ... args : Args ) {\n\t\t\t\t\t\treturn task.call( this , ... args ) + 1 as number\n\t\t\t\t\t}\n\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\n\t\t\tclass Foo1 {\n\n\t\t\t\tlevel = 2\n\n\t\t\t\t@ Plus1.method\n\t\t\t\tpow( a : number ) {\n\t\t\t\t\treturn a ** this.level\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst Foo2 = Foo1\n\t\t\tconst foo = new Foo2\n\n\t\t\t$mol_assert_equal( foo.pow( 2 ) , 5 )\n\n\t\t} ,\n\n\t\t'decorate static method' () {\n\t\t\t\n\t\t\tclass Plus1 extends $mol_wrapper {\n\t\t\n\t\t\t\tstatic wrap< This , Args extends any[] >( task : ( this : This , ... args : Args )=> number ) {\n\t\t\n\t\t\t\t\treturn function( this : This , ... args : Args ) {\n\t\t\t\t\t\treturn task.call( this , ... args ) + 1 as number\n\t\t\t\t\t}\n\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\n\t\t\tclass Foo {\n\n\t\t\t\tstatic level = 2\n\n\t\t\t\t@ Plus1.method\n\t\t\t\tstatic pow( a : number ) {\n\t\t\t\t\treturn a ** this.level\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t$mol_assert_equal( Foo.pow( 2 ) , 5 )\n\n\t\t} ,\n\n\t\t'decorate class' () {\n\t\t\t\n\t\t\tclass BarInc extends $mol_wrapper {\n\n\t\t\t\tstatic wrap< This , Args extends any[] >( task : ( this : This , ... args : Args )=> Foo ) {\n\t\t\t\t\t\n\t\t\t\t\treturn function( this : This , ... args : Args ) {\n\n\t\t\t\t\t\tconst foo = task.call( this , ...args )\n\t\t\t\t\t\tfoo.bar ++\n\t\t\t\t\t\treturn foo\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\t@ BarInc.class\n\t\t\tclass Foo {\n\t\t\t\tconstructor( public bar : number ) {}\n\t\t\t}\n\n\t\t\t$mol_assert_equal( new Foo( 2 ).bar , 3 )\n\n\t\t} ,\n\n\t})\n}\n","namespace $ {\n\n\texport class $mol_wrapper extends $mol_object2 {\n\n\t\tstatic wrap : ( task : ( ... ags : any[] )=> any )=> ( ... ags : any[] )=> any\n\t\t\n\t\tstatic run< Result >( task : ()=> Result ) : Result {\n\t\t\treturn this.func( task )()\n\t\t}\n\t\n\t\tstatic func< Args extends any[] , Result , Host = void >(\n\t\t\tfunc : ( this : Host , ... args : Args )=> Result\n\t\t) : ( this : Host , ... args : Args )=> Result {\n\t\t\treturn this.wrap( func )\n\t\t}\n\n\t\tstatic get class() {\n\n\t\t\treturn < Class extends new ( ... args : any[] )=> any >(\n\t\t\t\tClass : Class\n\t\t\t) => {\n\n\t\t\t\ttype Args = ConstructorParameters< Class >\n\t\t\t\ttype Result = InstanceType< Class >\n\n\t\t\t\tconst construct = ( target : new ( ... args : Args )=> Result , args : Args )=> new Class( ... args )\n\n\t\t\t\tconst handler = {\n\t\t\t\t\tconstruct : this.func( construct )\n\t\t\t\t}\n\n\t\t\t\thandler[ Symbol.toStringTag ] = Class.name + '#'\n\n\t\t\t\treturn new Proxy( Class , handler )\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\tstatic get method() {\n\t\t\t\n\t\t\treturn (\n\t\t\t\tobj : object,\n\t\t\t\tname : PropertyKey,\n\t\t\t\tdescr : PropertyDescriptor,\n\t\t\t) => {\n\t\t\t\tdescr.value = this.func( descr.value! )\n\t\t\t\treturn descr\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tstatic get field() {\n\t\t\t\n\t\t\treturn <\n\t\t\t\tHost ,\n\t\t\t\tField extends keyof Host ,\n\t\t\t\tArgs extends any[] ,\n\t\t\t\tResult ,\n\t\t\t>(\n\t\t\t\tobj : Host ,\n\t\t\t\tname : Field ,\n\t\t\t\tdescr : TypedPropertyDescriptor< Result >\n\t\t\t) => {\n\t\t\t\tdescr.get = descr.set = this.func( descr.get! )\n\t\t\t\treturn descr\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t/// @todo right orderinng\n\texport let $mol_after_mock_queue = [] as ( ()=> void )[]\n\n\texport function $mol_after_mock_warp() {\n\t\tconst queue = $mol_after_mock_queue.splice( 0 )\n\t\tfor( const task of queue ) task()\n\t}\n\n\texport class $mol_after_mock_commmon extends $mol_object2 {\n\n\t\tpromise = Promise.resolve()\n\t\tcancelled = false\n\t\tid : any\n\n\t\tconstructor( public task : ()=> void ) {\n\t\t\tsuper()\n\t\t\t$mol_after_mock_queue.push( task )\n\t\t}\n\n\t\tdestructor() {\n\t\t\tconst index = $mol_after_mock_queue.indexOf( this.task )\n\t\t\tif( index >= 0 )$mol_after_mock_queue.splice( index , 1 )\n\t\t}\n\n\t}\n\n\texport class $mol_after_mock_timeout extends $mol_after_mock_commmon {\n\n\t\tconstructor(\n\t\t\tpublic delay : number ,\n\t\t\ttask : ()=> void ,\n\t\t) {\n\t\t\tsuper( task )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\n\t$mol_test_mocks.push( $ => {\n\t\t$.$mol_after_timeout = $mol_after_mock_timeout as any as typeof $mol_after_timeout\n\t})\n\n}\n","namespace $ {\n\n\texport class $mol_after_timeout extends $mol_object2 {\n\n\t\tid : any\n\n\t\tconstructor(\n\t\t\tpublic delay : number ,\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis.id = setTimeout( task , delay )\n\t\t}\n\n\t\tdestructor() {\n\t\t\tclearTimeout( this.id )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\n\texport class $mol_after_frame extends $mol_after_timeout {\n\n\t\tconstructor(\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper( 16 , task )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\n\t$mol_test_mocks.push( $ => {\n\t\t$.$mol_after_frame = $mol_after_mock_commmon as any as typeof $mol_after_frame\n\t})\n\n}\n","namespace $ {\n\n\t$mol_test({\n\n\t\t'objects by reference' () {\n\t\t\t$mol_assert_equal( $mol_compare_any( {} , {} ) , false )\n\t\t} ,\n\n\t\t'primitives by value' () {\n\t\t\t$mol_assert_equal( $mol_compare_any( 'a' , 'a' ) , true )\n\t\t} ,\n\n\t\t'NaN by value' () {\n\t\t\t$mol_assert_equal( $mol_compare_any( Number.NaN , Number.NaN ) , true )\n\t\t} ,\n\n\t\t'NaN not equal zero' () {\n\t\t\t$mol_assert_equal( $mol_compare_any( Number.NaN , 0 ) , false )\n\t\t} ,\n\n\t})\n\n}\n","namespace $ {\n\n\texport function $mol_compare_any( a : any , b : any ) {\n\t\t\n\t\tif( a === b ) return true\n\t\t\n\t\tif( !Number.isNaN( a ) ) return false\n\t\tif( !Number.isNaN( b ) ) return false\n\n\t\treturn true\n\t}\n\n}\n","namespace $ {\n\n\t$mol_test({\n\n\t\t'return source when same object'() {\n\t\t\tconst target = {}\n\t\t\t$mol_assert_equal( $mol_conform( target , target ) , target )\n\t\t} ,\n\n\t\t'return target when some is not object'() {\n\t\t\tconst obj = { a : 1 }\n\t\t\t$mol_assert_equal( $mol_conform( true , obj ) , true )\n\t\t\t$mol_assert_equal( $mol_conform( obj , true ) , obj )\n\t\t} ,\n\n\t\t'return target when some is null'() {\n\t\t\tconst obj = { a : 1 }\n\t\t\t$mol_assert_equal( $mol_conform( null , obj ) , null )\n\t\t\t$mol_assert_equal( $mol_conform( obj , null ) , obj )\n\t\t} ,\n\n\t\t'return target when some is undefined'() {\n\t\t\tconst obj = { a : 1 }\n\t\t\t$mol_assert_equal( $mol_conform( undefined , obj ) , undefined )\n\t\t\t$mol_assert_equal( $mol_conform( obj , undefined ) , obj )\n\t\t} ,\n\n\t\t'return target when different keys count'() {\n\t\t\tconst target = [ 1 , 2 , 3 ]\n\t\t\tconst source = [ 1 , 2 , 3 , undefined ]\n\t\t\tconst result = $mol_conform( target , source )\n\t\t\t\n\t\t\t$mol_assert_equal( result , target )\n\t\t\t$mol_assert_equal( result.join(',') , '1,2,3' )\n\t\t} ,\n\n\t\t'return source when array values are strong equal'() {\n\t\t\tconst source = [ 1 , 2 , 3 ]\n\t\t\t$mol_assert_equal( $mol_conform( [ 1 , 2 , 3 ] , source ) , source )\n\t\t} ,\n\n\t\t'return source when object values are strong equal'() {\n\t\t\tconst source = { a : 1 , b : 2 }\n\t\t\t$mol_assert_equal( $mol_conform( { a : 1 , b : 2 } , source ) , source )\n\t\t} ,\n\n\t\t'return target when some values are not equal'() {\n\t\t\tconst target = [ 1 , 2 , 3 ]\n\t\t\tconst source = [ 1 , 2 , 5 ]\n\t\t\tconst result = $mol_conform( target , source )\n\t\t\t\n\t\t\t$mol_assert_equal( result , target )\n\t\t\t$mol_assert_equal( result.join(',') , '1,2,3' )\n\t\t} ,\n\n\t\t'return source when values are deep equal'() {\n\t\t\tconst source = { foo : { bar : 1 } }\n\t\t\t$mol_assert_equal( $mol_conform( { foo : { bar : 1 } } , source ) , source )\n\t\t} ,\n\n\t\t'return target with equal values from source and not equal from target'() {\n\t\t\tconst source = { foo : { xxx : 1 } , bar : { xxx : 2 } }\n\t\t\tconst target = { foo : { xxx : 1 } , bar : { xxx : 3 } }\n\t\t\tconst result = $mol_conform( target , source )\n\n\t\t\t$mol_assert_equal( result , target )\n\t\t\t$mol_assert_equal( result.foo , source.foo )\n\t\t\t$mol_assert_equal( result.bar , target.bar )\n\t\t} ,\n\n\t\t'return target when equal but with different class'() {\n\t\t\tconst target = { '0' : 1 }\n\t\t\t$mol_assert_equal( $mol_conform( target , [ 1 ] ) , target )\n\t\t} ,\n\n\t\t'return target when conformer for class is not defined'() {\n\t\t\tconst Obj = class {}\n\n\t\t\tconst source = new Obj \n\t\t\tconst target = new Obj\n\t\t\tconst result = $mol_conform( target , source )\n\n\t\t\t$mol_assert_equal( result , target )\n\t\t} ,\n\n\t\t'return target when has cyclic reference'() {\n\t\t\tconst source = { foo : {} }\n\t\t\tsource['self'] = source\n\n\t\t\tconst target = { foo : {} }\n\t\t\ttarget['self'] = target\n\n\t\t\tconst result = $mol_conform( target , source )\n\n\t\t\t$mol_assert_equal( result , target )\n\t\t\t$mol_assert_equal( result['self'] , target )\n\t\t\t$mol_assert_equal( result.foo , source.foo )\n\t\t} ,\n\n\t\t'return source when equal dates'() {\n\t\t\tconst source = new Date( 12345 )\n\t\t\tconst target = new Date( 12345 )\n\t\t\tconst result = $mol_conform( target , source )\n\n\t\t\t$mol_assert_equal( result , source )\n\t\t} ,\n\n\t\t'return source when equal regular expressions'() {\n\t\t\tconst source = /\\x22/mig\n\t\t\tconst target = /\\x22/mig\n\t\t\tconst result = $mol_conform( target , source )\n\n\t\t\t$mol_assert_equal( result , source )\n\t\t} ,\n\t\t\n\t\t'return cached value if already conformed'() {\n\t\t\tconst source = { foo : { xxx : 1 } , bar : { xxx : 3 } }\n\t\t\tconst target = { foo : { xxx : 2 } , bar : { xxx : 3 } }\n\t\t\tconst result = $mol_conform( target , source )\n\n\t\t\ttarget.foo.xxx = 1\n\t\t\t$mol_assert_equal( $mol_conform( target.foo , source.foo ) , target.foo )\n\t\t} ,\n\n\t\t'skip readlony fields'() {\n\t\t\tconst source = { foo : {} , bar : {} }\n\n\t\t\tconst target = { foo : {} , bar : {} }\n\t\t\tObject.defineProperty( target , 'bar' , { value : {} , writable : false } )\n\n\t\t\tconst result = $mol_conform( target , source )\n\n\t\t\t$mol_assert_equal( result , target )\n\t\t\t$mol_assert_equal( result.foo , source.foo )\n\t\t\t$mol_assert_equal( result.bar , target.bar )\n\t\t} ,\n\n\t\t'object with NaN'() {\n\n\t\t\tconst source = { foo : Number.NaN }\n\t\t\tconst target = { foo : Number.NaN }\n\n\t\t\tconst result = $mol_conform( target , source )\n\n\t\t\t$mol_assert_equal( result , source )\n\t\t} ,\n\n\t\t'array with NaN'() {\n\n\t\t\tconst source = [ Number.NaN ]\n\t\t\tconst target = [ Number.NaN ]\n\n\t\t\tconst result = $mol_conform( target , source )\n\n\t\t\t$mol_assert_equal( result , source )\n\t\t} ,\n\n\t})\n\n}\n","namespace $ {\n\n\tconst cache = new WeakMap< any , boolean >()\n\n\texport const $mol_conform_stack = [] as any[]\n\n\texport function $mol_conform< Target , Source >( target : Target , source : Source ) : Target {\n\n\t\tif( $mol_compare_any( target , source ) ) return source as any\n\n\t\tif( !target || typeof target !== 'object' ) return target\n\t\tif( !source || typeof source !== 'object' ) return target\n\n\t\tif( target instanceof Error ) return target\n\t\tif( source instanceof Error ) return target\n\t\t\n\t\tif( target['constructor'] !== source['constructor'] ) return target\n\n\t\tif( cache.get( target ) ) return target\n\t\tcache.set( target , true )\n\t\t\n\t\tconst conform = $mol_conform_handlers.get( target['constructor'] )\n\t\tif( !conform ) return target\n\n\t\tif( $mol_conform_stack.indexOf( target ) !== -1 ) return target\n\n\t\t$mol_conform_stack.push( target )\n\n\t\ttry { return conform( target , source ) }\n\t\tfinally { $mol_conform_stack.pop() }\n\n\t}\n\n\texport const $mol_conform_handlers = new WeakMap< Object , ( target : any , source : any )=> any >()\n\n\texport function $mol_conform_handler< Class >(\n\t\tcl : { new( ... args : any[] ) : Class } ,\n\t\thandler : ( target : Class , source : Class )=> Class ,\n\t) {\n\t\t$mol_conform_handlers.set( cl , handler )\n\t}\n\n\texport function $mol_conform_array<\n\t\tValue ,\n\t\tList extends {\n\t\t\t[ index : number ] : Value\n\t\t\tlength : number\n\t\t} ,\n\t>( target : List , source : List ) {\n\t\t\n\t\tif( source.length !== target.length ) return target\n\t\t\n\t\tfor( let i = 0 ; i < target.length ; ++i ) {\n\t\t\tif( !$mol_compare_any( source[i] , target[i] ) ) return target\n\t\t}\n\n\t\treturn source\n\t}\n\n\t$mol_conform_handler( Array , $mol_conform_array )\n\t$mol_conform_handler( Uint8Array , $mol_conform_array )\n\t$mol_conform_handler( Uint16Array , $mol_conform_array )\n\t$mol_conform_handler( Uint32Array , $mol_conform_array )\n\n\t$mol_conform_handler( ({})['constructor'] as any , ( target: Object, source )=> {\n\n\t\tlet count = 0\n\t\tlet equal = true\n\n\t\tfor( let key in target ) {\n\n\t\t\tconst conformed = $mol_conform( target[key] , source[key] )\n\t\t\t\n\t\t\tif( conformed !== target[key] ) {\n\t\t\t\ttry { target[key] = conformed } catch( error ) {}\n\t\t\t\tif( !$mol_compare_any( conformed , target[key] ) ) equal = false\n\t\t\t}\n\t\t\t\n\t\t\tif( !$mol_compare_any( conformed , source[key] ) ) equal = false\n\t\t\t\n\t\t\t++ count\n\t\t}\n\n\t\tfor( let key in source ) if( -- count < 0 ) break\n\n\t\treturn ( equal && count === 0 ) ? source : target\n\t} )\n\n\t$mol_conform_handler( Date , ( target , source )=> {\n\t\tif( target.getTime() === source.getTime() ) return source\n\t\treturn target \n\t} )\n\n\t$mol_conform_handler( RegExp , ( target , source )=> {\n\t\tif( target.toString() === source.toString() ) return source\n\t\treturn target\n\t} )\n\n}\n","namespace $ {\n\n\t$mol_test({\n\n\t\t'trim array'() {\n\n\t\t\tconst array = [ undefined , null , 0, false , null , undefined , undefined ]\n\t\t\tconst correct = [ undefined , null , 0, false , null ]\n\t\t\t\n\t\t\t$mol_array_trim( array )\n\t\t\t\n\t\t\t$mol_assert_like( array , correct )\n\n\t\t}\n\n\t})\n\n}\n","namespace $ {\n\n\texport function $mol_array_trim< Item >( array : Item[] ) {\n\n\t\tlet last = array.length\n\t\twhile( last > 0 ) {\n\t\t\t\n\t\t\t-- last\n\t\t\tconst value = array[ last ]\n\t\t\t\n\t\t\tif( value === undefined ) array.pop()\n\t\t\telse break\n\t\t}\n\n\t\treturn array\n\t}\n\n}\n","namespace $ {\n\n\t// https://docs.google.com/document/d/1FTascZXT9cxfetuPRT2eXPQKXui4nWFivUnS_335T3U/preview#\n\t$['devtoolsFormatters'] = $['devtoolsFormatters'] || []\n\n\texport function $mol_dev_format_register( config : {\n\t\theader : ( val : any , config : any )=> any\n\t\thasBody : ( val : any , config : any )=> false\n\t} | {\n\t\theader : ( val : any , config : any )=> any\n\t\thasBody : ( val : any , config : any )=> boolean\n\t\tbody : ( val : any , config : any )=> any\n\t} ) {\n\t\t$['devtoolsFormatters'].push( config )\n\t}\n\n\texport let $mol_dev_format_head = Symbol( '$mol_dev_format_head' )\n\texport let $mol_dev_format_body = Symbol( '$mol_dev_format_body' )\n\n\t$mol_dev_format_register({\n\n\t\theader : ( val : any , config = false ) => {\n\t\t\t\n\t\t\tif( config ) return null\n\n\t\t\tif( !val ) return null\n\t\t\t\n\t\t\tif( $mol_dev_format_head in val ) {\n\t\t\t\treturn val[ $mol_dev_format_head ]()\n\t\t\t}\n\n\t\t\treturn null\n\t\t\t\n\t\t} ,\n\t\t\n\t\thasBody : val => val[ $mol_dev_format_body ] ,\n\n\t\tbody : val => val[ $mol_dev_format_body ]() ,\n\n\t})\n\n\texport function $mol_dev_format_native( obj : any ) {\n\t\t\n\t\tif( typeof obj === 'undefined' ) return $mol_dev_format_shade( 'undefined' )\n\t\tif( typeof obj !== 'object' ) return obj\n\n\t\treturn [\n\t\t\t'object' ,\n\t\t\t{\n\t\t\t\tobject : obj ,\n\t\t\t\tconfig : true ,\n\t\t\t} ,\n\t\t]\n\n\t}\n\n\texport function $mol_dev_format_auto( obj : any ) {\n\t\t\n\t\tif( obj == null ) return $mol_dev_format_shade( String( obj ) )\n\n\t\tif( typeof obj === 'object' && $mol_dev_format_head in obj ) {\n\t\t\treturn obj[ $mol_dev_format_head ]()\n\t\t}\n\n\t\treturn [\n\t\t\t'object' ,\n\t\t\t{\n\t\t\t\tobject : obj ,\n\t\t\t\tconfig : false ,\n\t\t\t} ,\n\t\t]\n\n\t}\n\n\texport function $mol_dev_format_element( element : string , style : object , ...content : any[] ) {\n\t\t\t\n\t\tconst styles = [] as string[]\n\t\t\n\t\tfor( let key in style ) styles.push( `${ key } : ${ style[key] }` )\n\t\t\n\t\treturn [\n\t\t\telement ,\n\t\t\t{\n\t\t\t\tstyle : styles.join( ' ; ' ) ,\n\t\t\t} ,\n\t\t\t... content ,\n\t\t]\n\n\t}\n\n\texport function $mol_dev_format_span( style : object , ...content : any[] ) {\n\t\treturn $mol_dev_format_element(\n\t\t\t'span' ,\n\t\t\t{\n\t\t\t\t'vertical-align' : '8%',\n\t\t\t\t... style ,\n\t\t\t} ,\n\t\t\t... content ,\n\t\t)\n\t}\n\n\texport let $mol_dev_format_div = $mol_dev_format_element.bind( null , 'div' )\n\texport let $mol_dev_format_ol = $mol_dev_format_element.bind( null , 'ol' )\n\texport let $mol_dev_format_li = $mol_dev_format_element.bind( null , 'li' )\n\texport let $mol_dev_format_table = $mol_dev_format_element.bind( null , 'table' )\n\texport let $mol_dev_format_tr = $mol_dev_format_element.bind( null , 'tr' )\n\texport let $mol_dev_format_td = $mol_dev_format_element.bind( null , 'td' )\n\n\texport let $mol_dev_format_accent = $mol_dev_format_span.bind( null , {\n\t\t'color' : 'magenta' ,\n\t} )\n\n\texport let $mol_dev_format_strong = $mol_dev_format_span.bind( null , {\n\t\t'font-weight' : 'bold' ,\n\t} )\n\n\texport let $mol_dev_format_string = $mol_dev_format_span.bind( null , {\n\t\t'color' : 'green',\n\t} )\n\n\texport let $mol_dev_format_shade = $mol_dev_format_span.bind( null , {\n\t\t'color' : 'gray',\n\t} )\n\n\texport let $mol_dev_format_indent = $mol_dev_format_div.bind( null , {\n\t\t'margin-left': '13px'\n\t} )\n\n}\n","namespace $ {\n\n\t$mol_test_mocks.push( async $ => {\n\t\tawait $mol_fiber_warp()\n\t\t$mol_fiber.deadline = Date.now() + 100\n\t} )\n\t\n\t\n\t$mol_test({\n\n\t\t'sync to async': async $ => {\n\t\t\t\n\t\t\tconst sum = $mol_fiber_async( ( a : number , b : number )=> a + b )\n\t\t\t\n\t\t\tconst res = await sum( 1 , 2 )\n\n\t\t\t$mol_assert_equal( res , 3 )\n\n\t\t},\n\n\t})\n\t\n}\n","namespace $ {\n\n\texport const enum $mol_fiber_status {\n\t\tpersist = -3 ,\n\t\tactual = -2 ,\n\t\tdoubt = -1 ,\n\t\tobsolete = 0 ,\n\t}\n\n\texport function $mol_fiber_defer< Value = void >( calculate : ()=> Value ) {\n\t\t\n\t\tconst fiber = new $mol_fiber\n\t\t\n\t\tfiber.calculate = calculate\n\t\tfiber[ Symbol.toStringTag ] = calculate.name\n\t\t\n\t\tfiber.schedule()\n\t\t\n\t\treturn fiber\n\t}\n\n\texport function $mol_fiber_func<\n\t\tThis ,\n\t\tArgs extends any[] ,\n\t\tResult ,\n\t>( calculate : ( this : This , ... args : Args )=> Result ) {\n\t\t$mol_ambient({}).$mol_log3_warn({\n\t\t\tplace: '$mol_fiber_func',\n\t\t\tmessage: 'Deprecated' ,\n\t\t\thint: 'Use $mol_fiber.func instead',\n\t\t})\n\t\treturn $mol_fiber.func( calculate )\n\t}\n\n\texport function $mol_fiber_root<\n\t\tCalculate extends ( this : This , ... args : any[] )=> Result ,\n\t\tResult = void ,\n\t\tThis = void ,\n\t>( calculate : Calculate ) {\n\t\t\n\t\tconst wrapper = function( ... args : any[] ) {\n\t\t\tconst fiber = new $mol_fiber< Result >()\n\t\t\tfiber.calculate = calculate.bind( this , ... args )\n\t\t\tfiber[ Symbol.toStringTag ] = wrapper[ Symbol.toStringTag ]\n\t\t\treturn fiber.wake()\n\t\t} as Calculate\n\t\t\n\t\twrapper[ Symbol.toStringTag ] = calculate.name\n\t\t\n\t\treturn wrapper\n\t}\n\n\texport function $mol_fiber_method< Host extends object , Value >(\n\t\tobj : Host ,\n\t\tname : keyof Host ,\n\t\tdescr : TypedPropertyDescriptor< ( this : Host , ... args : any[] )=> Value >\n\t) {\n\t\t$mol_ambient({}).$mol_log3_warn({\n\t\t\tplace: '$mol_fiber_method',\n\t\t\tmessage: 'Deprecated' ,\n\t\t\thint: 'Use $mol_fiber.method instead',\n\t\t})\n\t\treturn $mol_fiber.method( obj , name , descr )\n\t}\n\n\texport function $mol_fiber_async< Args extends any[] , Value >( task : ( ... args : Args )=> Value ) {\n\n\t\treturn ( ... args : Args )=> new Promise< Value >( $mol_fiber_root( ( done , fail )=> {\n\n\t\t\ttry {\n\n\t\t\t\tdone( task( ... args ) )\n\n\t\t\t} catch( error ) {\n\n\t\t\t\tif( 'then' in error ) return $mol_fail_hidden( error )\n\n\t\t\t\tfail( error )\n\n\t\t\t}\n\n\t\t} ) )\n\n\t}\n\n\texport function $mol_fiber_sync< Args extends any[] , Value = void , This = void >(\n\t\trequest : ( this : This , ... args : Args )=> PromiseLike< Value >\n\t) : ( ... args : Args )=> Value {\n\n\t\treturn function $mol_fiber_sync_wrapper( this : This , ... args : Args ) {\n\n\t\t\tconst slave = $mol_fiber.current\n\n\t\t\tlet master = slave && slave.master\n\t\t\tif( !master || master.constructor !== $mol_fiber ) {\n\t\t\t\tmaster = new $mol_fiber\n\t\t\t\tmaster.cursor = $mol_fiber_status.persist\n\t\t\t\tmaster.error = ( request.call( this , ... args ) as PromiseLike< Value > ).then(\n\t\t\t\t\t( next : Value )=> master!.push( next ) ,\n\t\t\t\t\t( error : Error )=> master!.fail( error ) ,\n\t\t\t\t)\n\t\t\t\tconst prefix = slave ? `${ slave }/${ slave.cursor / 2 }:` : '/'\n\t\t\t\tmaster[ Symbol.toStringTag ] = prefix + ( request.name || $mol_fiber_sync.name )\n\t\t\t}\n\n\t\t\treturn master.get()\n\n\t\t}\n\n\t}\n\n\texport async function $mol_fiber_warp() {\n\t\tconst deadline = $mol_fiber.deadline\n\t\ttry {\n\t\t\t$mol_fiber.deadline = Number.POSITIVE_INFINITY\n\t\t\twhile( $mol_fiber.queue.length ) await $mol_fiber.tick()\n\t\t\treturn Promise.resolve()\n\t\t} finally {\n\t\t\t$mol_fiber.deadline = deadline\n\t\t}\n\t}\n\n\texport function $mol_fiber_fence( func : ()=> any ) {\n\t\tconst prev = $mol_fiber.current\n\t\ttry {\n\t\t\t$mol_fiber.current = null\n\t\t\treturn func()\n\t\t} finally {\n\t\t\t$mol_fiber.current = prev\n\t\t}\n\t}\n\n\texport function $mol_fiber_unlimit< Result >( task : ()=> Result ) {\n\t\t\n\t\tconst deadline = $mol_fiber.deadline\n\t\t\n\t\ttry {\n\n\t\t\t$mol_fiber.deadline = Number.POSITIVE_INFINITY\n\t\t\t\n\t\t\treturn task()\n\n\t\t} finally {\n\n\t\t\t$mol_fiber.deadline = deadline\n\n\t\t}\n\n\t}\n\n\texport class $mol_fiber_solid extends $mol_wrapper {\n\n\t\tstatic func< This , Args extends any[] , Result >( task : ( this : This , ... args : Args )=> Result ) {\n\n\t\t\tfunction wrapped( this : This , ... args : Args ) {\n\n\t\t\t\tconst deadline = $mol_fiber.deadline\n\n\t\t\t\ttry {\n\n\t\t\t\t\t$mol_fiber.deadline = Number.POSITIVE_INFINITY\n\t\t\t\t\t\n\t\t\t\t\treturn task.call( this , ... args ) as Result\n\n\t\t\t\t} catch( error ) {\n\n\t\t\t\t\tif( 'then' in error ) $mol_fail( new Error( 'Solid fiber can not be suspended.' ) )\n\t\t\t\t\treturn $mol_fail_hidden( error )\n\n\t\t\t\t} finally {\n\n\t\t\t\t\t$mol_fiber.deadline = deadline\n\n\t\t\t\t}\n\t\t\n\t\t\t}\n\n\t\t\treturn $mol_fiber.func( wrapped )\n\n\t\t}\n\n\t}\n\n\texport class $mol_fiber< Value = any > extends $mol_wrapper {\n\n\t\tstatic logs = false\n\n\t\tstatic wrap< Func extends ( ... args : any[] )=> any >( task : Func ) {\n\t\t\t\n\t\t\treturn function $mol_fiber_wrapper( this : ThisParameterType< Func > , ... args : Parameters< Func > ) {\n\n\t\t\t\tconst slave = $mol_fiber.current\n\n\t\t\t\tlet master = slave && slave.master\n\t\t\t\tif( !master || master.constructor !== $mol_fiber ) {\n\t\t\t\t\tmaster = new $mol_fiber\n\t\t\t\t\tmaster.calculate = task.bind( this , ... args )\n\t\t\t\t\tconst prefix = slave ? `${ slave }/${ slave.cursor / 2 }:` : '/'\n\t\t\t\t\tmaster[ Symbol.toStringTag ] = `${ prefix }${ task.name }`\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn master.get()\n\n\t\t\t}\n\n\t\t}\n\n\t\tstatic quant = 16\n\t\tstatic deadline = 0\n\t\tstatic liveline = 0\n\n\t\tstatic current = null as null | $mol_fiber\n\t\t\n\t\tstatic scheduled = null as null | $mol_after_frame\n\t\tstatic queue = [] as ( ()=> PromiseLike< any > )[]\n\t\t\n\t\tstatic async tick() {\n\t\n\t\t\twhile( $mol_fiber.queue.length > 0 ) {\n\n\t\t\t\tconst now = Date.now()\n\n\t\t\t\tif( now >= $mol_fiber.deadline ) {\n\t\t\t\t\t$mol_fiber.schedule()\n\t\t\t\t\t$mol_fiber.liveline = now\n\t\t\t\t\treturn \n\t\t\t\t}\n\n\t\t\t\tconst task = $mol_fiber.queue.shift()!\n\t\t\t\tawait task()\n\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tstatic schedule() {\n\n\t\t\tif( !$mol_fiber.scheduled ) {\n\n\t\t\t\t$mol_fiber.scheduled = new $mol_after_frame( async ()=> {\n\t\t\t\t\t\n\t\t\t\t\tconst now = Date.now()\n\t\t\t\t\tlet quant = $mol_fiber.quant\n\t\t\t\t\t\n\t\t\t\t\tif( $mol_fiber.liveline ) {\n\t\t\t\t\t\tquant = Math.max( quant , Math.floor( ( now - $mol_fiber.liveline ) / 2 ) )\n\t\t\t\t\t\t$mol_fiber.liveline = 0\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t$mol_fiber.deadline = now + quant\n\t\t\t\t\t$mol_fiber.scheduled = null\n\t\t\t\t\t\n\t\t\t\t\tawait $mol_fiber.tick()\n\n\t\t\t\t} )\n\n\t\t\t}\n\n\t\t\tconst promise : Promise< any > = new this.$.Promise( done => this.queue.push( ()=> ( done( null ) , promise ) ) )\n\t\t\treturn promise\n\n\t\t}\n\n\t\tcursor = $mol_fiber_status.obsolete\n\t\tmasters = [] as ( $mol_fiber | number | undefined )[]\n\t\tcalculate! : ()=> Value\n\t\t\n\t\t_value = undefined as unknown as Value\n\t\tget value() { return this._value }\n\t\tset value( next : Value ) {\n\t\t\tthis._value = next\n\t\t}\n\n\t\t_error = null as null | Error | PromiseLike< Value >\n\t\tget error() { return this._error }\n\t\tset error( next : null | Error | PromiseLike< Value > ) {\n\t\t\tthis._error = next\n\t\t}\n\n\t\tschedule() {\n\t\t\t$mol_fiber.schedule().then( ()=> this.wake() )\n\t\t}\n\n\t\twake() {\n\n\t\t\tconst unscoupe = this.$.$mol_log3_area_lazy({\n\t\t\t\tplace : this ,\n\t\t\t\tmessage : 'Wake'\n\t\t\t})\n\t\t\t\n\t\t\ttry {\n\t\t\t\tif( this.cursor > $mol_fiber_status.actual ) return this.get()\n\t\t\t} catch( error ) {\n\t\t\t\tif( 'then' in error ) return\n\t\t\t\t$mol_fail_hidden( error )\n\t\t\t} finally {\n\t\t\t\tunscoupe()\n\t\t\t}\n\n\t\t}\n\n\t\tpush( value : Value ) {\n\t\t\t\n\t\t\tvalue = this.$.$mol_conform( value , this.value )\n\t\t\t\n\t\t\tif( this.error !== null || !Object.is( this.value , value ) ) {\n\t\t\n\t\t\t\tif( $mol_fiber.logs ) this.$.$mol_log3_done({\n\t\t\t\t\tplace : this ,\n\t\t\t\t\tmessage : 'Changed',\n\t\t\t\t\tnext : value , \n\t\t\t\t\tvalue : this.value ,\n\t\t\t\t\terror : this.error ,\n\t\t\t\t})\n\t\t\t\t\n\t\t\t\tthis.obsolete_slaves()\n\t\t\t\t\n\t\t\t\tthis.forget()\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\tif( $mol_fiber.logs ) this.$.$mol_log3_done({\n\t\t\t\t\tplace : this , \n\t\t\t\t\tmessage : 'Same value' ,\n\t\t\t\t\tvalue ,\n\t\t\t\t})\n\t\t\t}\n\t\t\t\n\t\t\tthis.error = null\n\t\t\tthis.value = value\n\t\t\t\n\t\t\tthis.complete()\n\n\t\t\treturn value\n\t\t}\n\n\t\tfail( error : Error ) : Error {\n\t\t\t\n\t\t\tthis.complete()\t\n\t\t\t\n\t\t\tif( $mol_fiber.logs ) this.$.$mol_log3_fail({\n\t\t\t\tplace : this , \n\t\t\t\tmessage : error.message ,\n\t\t\t})\n\t\t\t\n\t\t\tthis.error = error\n\n\t\t\tthis.obsolete_slaves()\n\n\t\t\treturn error\n\t\t}\n\n\t\twait( promise : PromiseLike< Value > ) : PromiseLike< Value > {\n\t\t\tthis.error = promise\n\t\t\tif( $mol_fiber.logs ) this.$.$mol_log3_warn({\n\t\t\t\tplace : this ,\n\t\t\t\tmessage : `Wait` ,\n\t\t\t\thint : `Don't panic, it's normal` , \n\t\t\t\tpromise ,\n\t\t\t})\n\t\t\tthis.cursor = $mol_fiber_status.obsolete\n\t\t\treturn promise\n\t\t}\n\n\t\tcomplete() {\n\n\t\t\tif( this.cursor <= $mol_fiber_status.actual ) return\n\n\t\t\tfor( let index = 0 ; index < this.masters.length ; index += 2 ) {\n\t\t\t\tthis.complete_master( index )\n\t\t\t}\n\t\t\t\n\t\t\tthis.cursor = $mol_fiber_status.actual\n\t\t}\n\t\t\n\t\tcomplete_master( master_index : number ) {\n\t\t\tthis.disobey( master_index )\n\t\t}\n\n\t\tpull() {\n\t\t\t\n\t\t\tif( $mol_fiber.logs ) this.$.$mol_log3_come({\n\t\t\t\tplace : this ,\n\t\t\t\tmessage : 'Pull' ,\n\t\t\t})\n\n\t\t\tthis.push( this.calculate() )\n\n\t\t}\n\n\t\tupdate() {\n\n\t\t\tconst slave = $mol_fiber.current\n\t\t\t\n\t\t\ttry {\n\t\t\t\t\t\n\t\t\t\t// this.limit()\n\t\t\t\t\n\t\t\t\t$mol_fiber.current = this\n\n\t\t\t\tthis.pull()\n\n\t\t\t} catch( error ) {\n\n\t\t\t\tif( Object( error ) !== error ) error = new Error( error )\n\n\t\t\t\tif( 'then' in error ) {\n\t\t\t\t\t\n\t\t\t\t\tif( !slave ) {\n\t\t\t\t\t\tconst listener = ()=> this.wake()\n\t\t\t\t\t\terror = error.then( listener , listener )\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.wait( error )\n\n\t\t\t\t} else {\n\t\t\t\t\tthis.fail( error )\n\t\t\t\t}\n\n\t\t\t} finally {\n\t\t\t\t$mol_fiber.current = slave\n\t\t\t}\n\n\t\t}\n\n\t\tget() {\n\n\t\t\tif( this.cursor > $mol_fiber_status.obsolete ) {\n\t\t\t\tthis.$.$mol_fail( new Error( `Cyclic dependency at ${ this }` ) )\n\t\t\t}\n\t\t\t\n\t\t\tconst slave = $mol_fiber.current\n\t\t\tif( slave ) slave.master = this\n\t\t\t\n\t\t\tif( this.cursor > $mol_fiber_status.actual ) this.update()\n\n\t\t\tif( this.error !== null ) return this.$.$mol_fail_hidden( this.error )\n\t\t\t\n\t\t\treturn this.value\n\n\t\t}\n\n\t\tlimit() {\n\n\t\t\tif( !$mol_fiber.deadline ) return\n\t\t\tif( !$mol_fiber.current ) return\n\n\t\t\tif( Date.now() < $mol_fiber.deadline ) return\n\n\t\t\tthis.$.$mol_fail_hidden( $mol_fiber.schedule() )\n\t\t}\n\n\t\tget master() {\n\t\t\treturn ( this.cursor < this.masters.length ? this.masters[ this.cursor ] : undefined ) as $mol_fiber\n\t\t}\n\t\tset master( next : $mol_fiber ) {\n\n\t\t\tif( this.cursor === $mol_fiber_status.doubt ) return\n\t\t\t\n\t\t\tconst cursor = this.cursor\n\t\t\tconst prev = this.master\n\t\t\t\n\t\t\tif( prev !== next ) {\n\t\t\t\tif( prev ) this.rescue( prev as $mol_fiber , cursor )\n\t\t\t\tthis.masters[ cursor ] = next\n\t\t\t\tthis.masters[ cursor + 1 ] = this.obey( next , cursor )\n\t\t\t}\n\t\t\t\n\t\t\tthis.cursor = cursor + 2\n\t\t}\n\n\t\trescue( master : $mol_fiber , master_index : number ) {}\n\n\t\tobey( master : $mol_fiber , master_index : number ) { return -1 }\n\t\tlead( slave : $mol_fiber , master_index : number ) { return -1 }\n\n\t\tdislead( slave_index : number ) {\n\t\t\tthis.destructor()\n\t\t}\n\n\t\tdisobey( master_index : number ) {\n\t\t\t\n\t\t\tconst master = this.masters[ master_index ] as $mol_fiber\n\t\t\tif( !master ) return\n\n\t\t\tmaster.dislead( this.masters[ master_index + 1 ] as number )\n\t\t\t\n\t\t\tthis.masters[ master_index ] = undefined\n\t\t\tthis.masters[ master_index + 1 ] = undefined\n\n\t\t\tthis.$.$mol_array_trim( this.masters )\n\n\t\t}\n\n\t\tobsolete_slaves() { }\n\n\t\tobsolete( master_index : number ) { }\n\n\t\tforget() {\n\t\t\tthis.value = undefined as unknown as Value\n\t\t}\n\n\t\tabort() {\n\t\t\tthis.forget()\n\t\t\treturn true\n\t\t}\n\n\t\tdestructor() {\n\t\t\tif( !this.abort() ) return\n\t\t\t\n\t\t\tif( $mol_fiber.logs ) this.$.$mol_log3_done({\n\t\t\t\tplace : this , \n\t\t\t\tmessage : 'Destructed' ,\n\t\t\t})\n\n\t\t\tthis.complete()\n\t\t}\n\n\t\t[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_native( this )\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\t\n\texport class $mol_defer extends $mol_object {\n\t\t\n\t\tconstructor( public run : ()=> void ) {\n\t\t\tsuper()\n\t\t\t$mol_defer.add( this )\n\t\t}\n\t\t\n\t\tdestructor() {\n\t\t\t$mol_defer.drop( this )\n\t\t}\n\t\t\n\t\tstatic all : $mol_defer[] = []\n\t\tstatic timer = null as any\n\t\t\n\t\tstatic scheduleNative : ( handler : ()=> void ) => any = ( typeof requestAnimationFrame == 'function' )\n\t\t\t? handler => requestAnimationFrame( handler )\n\t\t\t: handler => setTimeout( handler , 16 )\n\t\t\n\t\tstatic schedule() {\n\t\t\tif( this.timer ) return\n\t\t\t\n\t\t\tthis.timer = this.scheduleNative( ()=> {\n\t\t\t\tthis.timer = null\n\t\t\t\tthis.run()\n\t\t\t} )\n\t\t}\n\t\t\n\t\tstatic unschedule() {\n\t\t\tif( !this.timer ) return\n\t\t\t\n\t\t\tcancelAnimationFrame( this.timer )\n\t\t\tthis.timer = null\n\t\t}\n\t\t\n\t\tstatic add( defer : $mol_defer ) {\n\t\t\tthis.all.push( defer )\n\t\t\tthis.schedule()\n\t\t}\n\t\t\n\t\tstatic drop( defer : $mol_defer ) {\n\t\t\tvar index = this.all.indexOf( defer )\n\t\t\tif( index >= 0 ) this.all.splice( index , 1 )\n\t\t}\n\t\t\n\t\tstatic run() {\n\t\t\tif( this.all.length === 0 ) return\n\t\t\tthis.schedule()\n\t\t\tfor( var defer : $mol_defer | undefined ; defer = this.all.shift() ; ) defer.run()\n\t\t\t//this.unschedule()\n\t\t}\n\t\t\n\t}\n\n}\n","module $ {\n\n\t$mol_test({\n\n\t\t'Value has js-path name' () {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic get title() { return new $mol_object2 }\n\n\t\t\t}\n\n\t\t\t$mol_assert_equal( `${ App.title }` , 'App.title' )\n\n\t\t} ,\n\n\t\t'Simple property' () {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic value = 1\n\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.value , 1 )\n\n\t\t\tApp.value = 2\n\t\t\t$mol_assert_equal( App.value , 2 )\n\n\t\t} ,\n\n\t\t'Instant actualization'( $ ) {\n\n\t\t\tclass Source extends $mol_object2 {\n\t\t\t\t\n\t\t\t\t// Because context sets after field initializer\n\t\t\t\tget $() { return $ }\n\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tvalue = 1\n\n\t\t\t\tdestructor() {}\n\n\t\t\t}\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic get $() { return $ }\n\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic get source() { return Source.create() }\n\t\t\t\t\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic get value() { return this.source.value + 1 }\n\t\t\t\t\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.value , 2 )\n\n\t\t\tApp.source.value = 2\n\t\t\t$mol_assert_equal( App.value , 3 )\n\n\t\t} ,\n\n\t\t'Access to cached value'( $ ) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic get $() { return $ }\n\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic get value() { return 1 }\n\n\t\t\t}\n\n\t\t\t$mol_assert_equal( $mol_atom2_value( ()=> App.value ) , undefined )\n\n\t\t\t$mol_assert_equal( App.value , 1 )\n\t\t\t$mol_assert_equal( $mol_atom2_value( ()=> App.value ) , 1 )\n\n\t\t} ,\n\n\t\t'Do not recalc slaves on equal changes'( $ ) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic get $() { return $ }\n\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic first = [1]\n\n\t\t\t\tstatic counter = 0\n\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic get result() { return this.first[0] + this.counter++ }\n\t\t\t\t\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.result , 1 )\n\n\t\t\tApp.first = [1]\n\t\t\t$mol_assert_equal( App.result , 1 )\n\n\t\t} ,\n\n\t\t'Do not recalc grand slave on equal direct slave result '( $ ) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic get $() { return $ }\n\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic first = 1\n\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic get second() { return Math.abs( this.first ) }\n\n\t\t\t\tstatic counter = 0\n\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic get result() { return this.second + ++this.counter }\n\t\t\t\t\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.result , 2 )\n\n\t\t\tApp.first = -1\n\t\t\t$mol_assert_equal( App.result , 2 )\n\n\t\t} ,\n\n\t\t'Recalc when [not changed master] changes [following master]'( $ ) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic get $() { return $ }\n\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic first = 1\n\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic get second() {\n\t\t\t\t\tthis.third = this.first\n\t\t\t\t\treturn 0\n\t\t\t\t}\n\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic third = 0\n\n\t\t\t\tstatic counter = 0\n\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic get result() { return this.second + this.third + ++this.counter }\n\t\t\t\t\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.result , 2 )\n\n\t\t\tApp.first = 5\n\t\t\t$mol_assert_equal( App.result , 7 )\n\n\t\t} ,\n\n\t\t'Branch switching'( $ ) {\n\n\t\t\tclass App extends $mol_object2 {\n\t\t\t\t\n\t\t\t\tstatic get $() { return $ }\n\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic first = 1\n\t\t\t\t\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic get second() { return 2 }\n\t\t\t\t\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic condition = true\n\t\t\t\t\n\t\t\t\tstatic counter = 0\n\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic get result() {\n\t\t\t\t\treturn ( this.condition ? this.first : this.second ) + this.counter++\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.result , 1 )\n\n\t\t\tApp.condition = false\n\t\t\t$mol_assert_equal( App.result , 3 )\n\n\t\t\tApp.first = 10\n\t\t\t$mol_assert_equal( App.result , 3 )\n\n\t\t} ,\n\n\t\t'Forbidden self invalidation'( $ ) {\n\n\t\t\tclass App extends $mol_object2 {\n\t\t\t\t\n\t\t\t\tstatic get $() { return $ }\n\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic first = 1\n\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic get second() { return this.first + 1 }\n\t\t\t\t\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic get result() {\n\t\t\t\t\tthis.second\n\t\t\t\t\treturn this.first ++\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\n\t\t\t$mol_assert_fail( ()=> App.result )\n\n\t\t} ,\n\n\t\t'Side effect inside computation'( $ ) {\n\n\t\t\tclass App extends $mol_object2 {\n\t\t\t\t\n\t\t\t\tstatic get $() { return $ }\n\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic first = 1\n\n\t\t\t\t@ $mol_fiber.method\n\t\t\t\tstatic increase() { return ++ this.first }\n\t\t\t\t\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic get result() {\n\t\t\t\t\treturn this.increase() + 1\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.result , 3 )\n\n\t\t} ,\n\n\t\t'Forbidden cyclic dependency'( $ ) {\n\n\t\t\tclass App extends $mol_object2 {\n\t\t\t\t\n\t\t\t\tstatic get $() { return $ }\n\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic get first() : number { return this.second - 1 }\n\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic get second() : number { return this.first + 1 }\n\t\t\t\t\n\t\t\t}\n\n\t\t\t$mol_assert_fail( ()=> App.first )\n\n\t\t} ,\n\n\t\t'Forget sub fibers on complete'( $ ) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic get $() { return $ }\n\t\t\t\tstatic counter = 0\n\n\t\t\t\t@ $mol_fiber.method\n\t\t\t\tstatic count() { return this.counter ++ }\n\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic data = 1\n\t\t\t\t\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic get result() { return this.count() + this.data }\n\t\t\t\t\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.result , 1 )\n\n\t\t\tApp.data = 2\n\t\t\t$mol_assert_equal( App.result , 3 )\n\n\t\t} ,\n\n\t\tasync 'Automatic destroy owned value on self destruction'( $ ) {\n\n\t\t\tlet counter = 0\n\n\t\t\tclass Having extends $mol_object2 {\n\t\t\t\tdestructor() { counter++ }\n\t\t\t}\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic get $() { return $ }\n\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic get having() { return Having.create() }\n\t\t\t\t\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic condition = true\n\t\t\t\t\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic get result() {\n\t\t\t\t\tif( this.condition ) this.having\n\t\t\t\t\treturn 0\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\n\t\t\tApp.result\n\t\t\tApp.condition = false\n\t\t\tApp.result\n\n\t\t\t$mol_assert_equal( counter , 0 )\n\n\t\t\tawait $mol_fiber_warp()\n\t\t\t$mol_assert_equal( counter , 1 )\n\n\t\t} ,\n\n\t\tasync 'Do not destroy putted value'( $ ) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic get $() { return $ }\n\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic source : number\n\t\t\t\t\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic condition = true\n\t\t\t\t\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic get target() {\n\t\t\t\t\treturn this.condition ? this.source : 0\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\n\t\t\tApp.source = 1\n\t\t\t$mol_assert_equal( App.target , 1 )\n\t\t\t\n\t\t\tApp.condition = false\n\t\t\t$mol_assert_equal( App.target , 0 )\n\t\t\tawait $mol_fiber_warp()\n\t\t\t\n\t\t\tApp.condition = true\n\t\t\t$mol_assert_equal( App.target , 1 )\n\n\t\t} ,\n\n\t\t'Restore after error'( $ ) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic get $() { return $ }\n\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic condition = false\n\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic get broken() {\n\t\t\t\t\tif( this.condition ) $mol_fail( new Error( 'test error' ) )\n\t\t\t\t\treturn 1\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic get result() { return this.broken }\n\t\t\t\t\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.result , 1 )\n\t\t\t\n\t\t\tApp.condition = true\n\t\t\t$mol_assert_fail( ()=> App.result )\n\t\t\t\n\t\t\tApp.condition = false\n\t\t\t$mol_assert_equal( App.result , 1 )\n\n\t\t} ,\n\t\n\t\tasync 'auto fresh only when alive'( $ ) {\n\n\t\t\tlet state = 1\n\n\t\t\tconst monitor = new $.$mol_atom2\n\t\t\tmonitor.$ = $\n\t\t\tmonitor.calculate = ()=> {\n\t\t\t\tnew $.$mol_after_frame( $mol_atom2.current!.fresh )\n\t\t\t\treturn state\n\t\t\t}\n\t\t\t$mol_assert_equal( monitor.get() , 1 )\n\t\t\t\n\t\t\tstate = 2\n\t\t\t$mol_assert_equal( monitor.get() , 1 )\n\t\t\t\t\n\t\t\t$.$mol_after_mock_warp()\n\t\t\t$mol_assert_equal( monitor.get() , 2 )\n\t\t\t\n\t\t\tstate = 3\n\t\t\t$mol_assert_equal( monitor.get() , 2 )\n\t\t\t\n\t\t\tmonitor.destructor()\n\t\t\t$mol_assert_equal( monitor.value , undefined )\n\t\t\t\n\t\t\t$.$mol_after_mock_warp()\n\t\t\tawait $.$mol_fiber_warp()\n\t\t\t$mol_assert_equal( monitor.value , undefined )\n\t\t\t\n\t\t} ,\n\n\t// \t'thenable interface: wait for value' () {\n\t// \t\t$mol_fiber_warp()\n\t\t\t\n\t// \t\tconst source = new $mol_atom2( 'source', ()=> {\n\t// \t\t\treturn $mol_fiber_async<number>( back => {\n\t// \t\t\t\tnew $mol_defer( back( ()=> 777 ) )\n\t// \t\t\t} )\n\t// \t\t} )\n\n\t// \t\tconst target = source.then( val => val.toString() )\n\t\t\t\n\t// \t\t$mol_assert_fail( ()=> target.value().valueOf() , $mol_fiber_wait.constructor )\n\n\t// \t\t$mol_defer.run() ; $mol_fiber_warp() ; $mol_atom2.sync()\n\n\t// \t\t$mol_assert_equal( target.value() , '777' )\n\t// \t} ,\n\t\t\n\t// \t'thenable interface: negative' () {\n\t// \t\t$mol_fiber_warp()\n\t\t\t\n\t// \t\tconst TestError = class extends Error {}\n\n\t// \t\tconst source = new $mol_atom2( 'source', ()=> {\n\t// \t\t\treturn $mol_fiber_async<number>( back => {\n\t// \t\t\t\tnew $mol_defer( back( ()=> {\n\t// \t\t\t\t\tthrow new TestError( 'Test error' )\n\t// \t\t\t\t} ) )\n\t// \t\t\t} )\n\t// \t\t} )\n\n\t// \t\tconst target = source.then( val => val.toString() )\n\t\t\t\n\t// \t\t$mol_assert_fail( ()=> target.value().valueOf() , $mol_fiber_wait.constructor )\n\t\t\t\n\t// \t\t$mol_defer.run()\n\t\t\t\n\t// \t\t$mol_assert_fail( ()=> { $mol_fiber_warp() } , TestError )\n\t// \t\t$mol_assert_fail( ()=> { $mol_fiber_warp() } , TestError )\n\t// \t\t$mol_assert_fail( ()=> { $mol_fiber_warp() } , TestError )\n\t// \t\t$mol_assert_fail( ()=> { $mol_fiber_warp() } , TestError )\n\n\t// \t\t$mol_assert_fail( ()=> target.value().valueOf() , TestError )\n\t// \t} ,\n\t\t\n\t})\n\t\n}\n","namespace $ {\n\n\texport function $mol_atom2_value< Value >( task : ()=> Value, next?: Value ) : Value | undefined {\n\t\tconst cached = $mol_atom2.cached\n\t\ttry {\n\t\t\t$mol_atom2.cached = true\n\t\t\t$mol_atom2.cached_next = next\n\t\t\treturn task()\n\t\t} finally {\n\t\t\t$mol_atom2.cached = cached\n\t\t}\n\t}\n\n\texport class $mol_atom2< Value = any > extends $mol_fiber< Value > {\n\n\t\tstatic logs = false\n\n\t\tstatic get current() {\n\t\t\tconst atom = $mol_fiber.current\n\t\t\tif( atom instanceof $mol_atom2 ) return atom\n\t\t\treturn null\n\t\t}\n\n\t\tstatic cached = false\n\t\tstatic cached_next = undefined as any\n\n\t\tstatic reap_task = null as null | $mol_fiber\n\t\tstatic reap_queue = [] as $mol_atom2[]\n\n\t\tstatic reap( atom : $mol_atom2 ) {\n\n\t\t\tthis.reap_queue.push( atom )\n\n\t\t\tif( this.reap_task ) return\n\n\t\t\tthis.reap_task = $mol_fiber_defer( ()=> {\n\t\t\t\tthis.reap_task = null\n\t\t\t\t\n\t\t\t\twhile( true ) {\n\t\t\t\t\t\n\t\t\t\t\tconst atom = this.reap_queue.pop()\n\t\t\t\t\tif( !atom ) break\n\t\t\t\t\t\n\t\t\t\t\tif( !atom.alone ) continue\n\t\t\t\t\t\n\t\t\t\t\tatom.destructor()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} )\n\n\t\t}\n\n\t\tslaves = [] as ( $mol_fiber | number | undefined )[]\n\t\t\n\t\trescue( master : $mol_atom2 , cursor : number ) {\n\n\t\t\tif(!( master instanceof $mol_atom2 )) return\n\t\t\t\n\t\t\tconst master_index = this.masters.length\n\t\t\tconst slave_index = this.masters[ cursor + 1 ] as number + 1\n\t\t\t\n\t\t\tmaster.slaves[ slave_index ] = master_index\n\t\t\tthis.masters.push( master , this.masters[ cursor + 1 ] )\n\t\t\t\n\t\t}\n\n\t\tsubscribe( promise : Promise<unknown> ) {\n\t\t\tconst obsolete = ()=> this.obsolete()\n\t\t\treturn promise.then( obsolete , obsolete )\n\t\t}\n\n\t\tget() {\n\n\t\t\tif( $mol_atom2.cached ) {\n\n\t\t\t\tif( $mol_atom2.cached_next !== undefined ) {\n\t\t\t\t\tthis.push( $mol_atom2.cached_next )\n\t\t\t\t\t$mol_atom2.cached_next = undefined\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn this.value\n\t\t\t}\n\t\t\t\n\t\t\tconst value = super.get()\n\t\t\tif( value === undefined ) $mol_fail( new Error( `Not defined: ${ this }` ) )\n\t\t\t\n\t\t\treturn value\n\t\t}\n\n\t\tpull() {\n\t\t\t\n\t\t\tif( this.cursor === $mol_fiber_status.obsolete ) return super.pull()\n\n\t\t\tif( $mol_atom2.logs ) this.$.$mol_log3_come({\n\t\t\t\tplace : this ,\n\t\t\t\tmessage: 'Check doubt masters' ,\n\t\t\t})\n\t\t\t\n\t\t\tconst masters = this.masters\n\n\t\t\tfor( let index = 0 ; index < masters.length ; index += 2 ) {\n\n\t\t\t\tconst master = masters[ index ] as $mol_atom2\n\t\t\t\tif( !master ) continue\n\n\t\t\t\ttry {\n\t\t\t\t\tmaster.get()\n\t\t\t\t} catch( error ) {\n\t\t\t\t\tif( 'then' in error ) $mol_fail_hidden( error )\n\t\t\t\t\tthis.cursor = $mol_fiber_status.obsolete\n\t\t\t\t}\n\n\t\t\t\tif( this.cursor as $mol_fiber_status !== $mol_fiber_status.obsolete ) continue\n\n\t\t\t\tif( $mol_atom2.logs ) this.$.$mol_log3_done({\n\t\t\t\t\tplace : this ,\n\t\t\t\t\tmessage : 'Obsoleted while checking' ,\n\t\t\t\t})\n\n\t\t\t\treturn super.pull()\n\t\t\t}\n\n\t\t\tif( $mol_atom2.logs ) this.$.$mol_log3_done({\n\t\t\t\tplace : this ,\n\t\t\t\tmessage : 'Masters not changed' ,\n\t\t\t})\n\n\t\t\tthis.cursor = $mol_fiber_status.actual\n\n\t\t}\n\t\t\n\t\tget value() { return this._value }\n\t\tset value( next : Value ) {\n\n\t\t\tconst prev = this._value\n\n\t\t\tif( prev && this.$.$mol_owning_check( this , prev ) ) prev.destructor()\n\n\t\t\tif( next && this.$.$mol_owning_catch( this , next ) ) {\n\t\t\t\ttry{ next[ Symbol.toStringTag ] = this[ Symbol.toStringTag ] } catch {}\n\t\t\t\tnext[ $mol_object_field ] = this[ $mol_object_field ]\n\t\t\t}\n\n\t\t\tthis._value = next\n\t\t}\n\n\t\tget error() { return this._error }\n\t\tset error( next : null | Error | PromiseLike< Value > ) {\n\n\t\t\tconst prev = this._error\n\n\t\t\tif( prev && this.$.$mol_owning_check( this , prev ) ) prev.destructor()\n\n\t\t\tif( next && this.$.$mol_owning_catch( this , next ) ) {\n\t\t\t\tnext[ Symbol.toStringTag ] = this[ Symbol.toStringTag ]\n\t\t\t\tnext[ $mol_object_field ] = this[ $mol_object_field ]\n\t\t\t}\n\n\t\t\tthis._error = next\n\t\t}\n\n\t\tput( next : Value ) {\n\t\t\tthis.cursor = this.masters.length\n\t\t\tnext = this.push( next )\n\t\t\tthis.cursor = $mol_fiber_status.persist\n\t\t\treturn next\n\t\t}\n\n\t\tcomplete_master( master_index : number ) {\n\t\t\tif( this.masters[ master_index ] instanceof $mol_atom2 ) {\n\t\t\t\tif( master_index >= this.cursor ) this.disobey( master_index )\n\t\t\t} else {\n\t\t\t\tthis.disobey( master_index )\n\t\t\t}\n\t\t}\n\n\t\tobey( master : $mol_fiber , master_index : number ) : number {\n\t\t\treturn master.lead( this , master_index )\n\t\t}\n\n\t\tlead( slave : $mol_fiber , master_index : number ) {\n\t\t\t\n\t\t\tif( $mol_atom2.logs ) this.$.$mol_log3_rise({\n\t\t\t\tplace : this ,\n\t\t\t\tmessage : 'Leads' ,\n\t\t\t\tslave ,\n\t\t\t})\n\t\t\t\n\t\t\tconst slave_index = this.slaves.length\n\t\t\tthis.slaves[ slave_index ] = slave\n\t\t\tthis.slaves[ slave_index + 1 ] = master_index\n\t\t\t\n\t\t\treturn slave_index\n\t\t}\n\n\t\tdislead( slave_index : number ) {\n\n\t\t\tif( slave_index < 0 ) return // slave is fiber\n\n\t\t\tif( $mol_atom2.logs ) this.$.$mol_log3_rise({\n\t\t\t\tplace : this ,\n\t\t\t\tmessage : 'Disleads' ,\n\t\t\t\tslave : this.slaves[ slave_index ] ,\n\t\t\t})\n\n\t\t\tthis.slaves[ slave_index ] = undefined\n\t\t\tthis.slaves[ slave_index + 1 ] = undefined\n\n\t\t\t$mol_array_trim( this.slaves )\n\n\t\t\tif( this.cursor > $mol_fiber_status.persist && this.alone ) $mol_atom2.reap( this )\n\t\t}\n\n\t\tobsolete( master_index = -1 ) {\n\n\t\t\tif( this.cursor > $mol_fiber_status.obsolete ) {\n\t\t\t\tif( master_index >= this.cursor - 2 ) return\n\n\t\t\t\tconst path = [] as $mol_atom2[]\n\t\t\t\tlet current = this as $mol_atom2\n\t\t\t\t\n\t\t\t\tcollect : while( current ) {\n\t\t\t\t\tpath.push( current )\n\t\t\t\t\tcurrent = current.masters[ current.cursor - 2 ] as $mol_atom2\n\t\t\t\t}\n\n\t\t\t\tthis.$.$mol_fail( new Error( `Obsoleted while calculation \\n\\n${ path.join( '\\n' ) }\\n` ) )\n\t\t\t}\n\t\t\t\n\t\t\tif( this.cursor === $mol_fiber_status.obsolete ) return\n\t\t\t\n\t\t\tif( $mol_atom2.logs ) this.$.$mol_log3_rise({\n\t\t\t\tplace : this ,\n\t\t\t\tmessage : 'Obsoleted' ,\n\t\t\t})\n\n\t\t\tif( this.cursor !== $mol_fiber_status.doubt ) this.doubt_slaves()\n\t\t\t\n\t\t\tthis.cursor = $mol_fiber_status.obsolete\n\t\t\t\n\t\t}\n\n\t\tdoubt( master_index = -1 ) {\n\t\t\t\n\t\t\tif( this.cursor > $mol_fiber_status.obsolete ) {\n\t\t\t\tif( master_index >= this.cursor - 2 ) return\n\n\t\t\t\tconst path = [] as $mol_atom2[]\n\t\t\t\tlet current = this as $mol_atom2\n\t\t\t\t\n\t\t\t\tcollect : while( current ) {\n\t\t\t\t\tpath.push( current )\n\t\t\t\t\tcurrent = current.masters[ current.cursor - 2 ] as $mol_atom2\n\t\t\t\t}\n\n\t\t\t\tthis.$.$mol_fail( new Error( `Doubted while calculation \\n\\n${ path.join( '\\n' ) }\\n` ) )\n\t\t\t}\n\t\t\t\n\t\t\tif( this.cursor >= $mol_fiber_status.doubt ) return\n\t\t\t\t\n\t\t\tif( $mol_atom2.logs ) this.$.$mol_log3_rise({\n\t\t\t\tplace : this ,\n\t\t\t\tmessage : 'Doubted' ,\n\t\t\t})\n\n\t\t\tthis.cursor = $mol_fiber_status.doubt\n\t\t\t\n\t\t\tthis.doubt_slaves()\n\n\t\t}\n\n\t\tobsolete_slaves() {\n\t\t\tfor( let index = 0 ; index < this.slaves.length ; index += 2 ) {\n\t\t\t\tconst slave = this.slaves[ index ] as $mol_atom2\n\t\t\t\tif( slave ) slave.obsolete( this.slaves[ index + 1 ] as number )\n\t\t\t}\n\t\t}\n\n\t\tdoubt_slaves() {\n\t\t\tfor( let index = 0 ; index < this.slaves.length ; index += 2 ) {\n\t\t\t\tconst slave = this.slaves[ index ] as $mol_atom2\n\t\t\t\tif( slave ) slave.doubt( this.slaves[ index + 1 ] as number )\n\t\t\t}\n\t\t}\n\n\t\tget fresh() {\n\t\t\treturn ()=> {\n\t\t\t\tif( this.cursor !== $mol_fiber_status.actual ) return\n\n\t\t\t\tthis.cursor = $mol_fiber_status.obsolete\n\t\t\t\t$mol_fiber_solid.run( ()=> this.update() )\n\t\t\t}\n\t\t}\n\n\t\tget alone() {\n\t\t\treturn this.slaves.length === 0\n\t\t}\n\t\t\n\t\tget derived() {\n\t\t\t\n\t\t\tfor( let index = 0 ; index < this.masters.length ; index += 2 ) {\n\t\t\t\tif( this.masters[ index ] ) return true\n\t\t\t}\n\n\t\t\treturn false\n\t\t}\n\n\t\tdestructor() {\n\n\t\t\tif( !this.abort() ) return\n\t\t\t\n\t\t\tif( $mol_atom2.logs ) this.$.$mol_log3_rise({\n\t\t\t\tplace : this ,\n\t\t\t\tmessage : 'Destructed'\n\t\t\t} )\n\n\t\t\tthis.cursor = $mol_fiber_status.persist\n\n\t\t\tfor( let index = 0 ; index < this.masters.length ; index += 2 ) {\n\t\t\t\tthis.complete_master( index )\n\t\t\t}\n\n\t\t}\n\t\t\n\t}\n\n}\n",null,null,null,null,"namespace $ {\n\n\texport class $mol_mem_force extends Object {\n\t\tconstructor(){ super() }\n\t\t$mol_mem_force = true\n\t\tstatic $mol_mem_force = true\n\t\tstatic toString() { return this.name }\n\t}\n\n\texport class $mol_mem_force_cache extends $mol_mem_force {}\n\texport class $mol_mem_force_update extends $mol_mem_force {}\n\texport class $mol_mem_force_fail extends $mol_mem_force_cache {}\n\n}\n","namespace $ {\n\t$mol_test( {\n\n\t\t'Property method' ($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\n\t\t\t\t@ $mol_mem\n\t\t\t\tstatic value( next = 1 ) { return next + 1 }\n\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.value() , 2 )\n\n\t\t\tApp.value( 2 )\n\t\t\t$mol_assert_equal( App.value() , 3 )\n\n\t\t} ,\n\n\t\t'auto sync of properties'($) {\n\n\t\t\tclass X extends $mol_object2 {\n\n\t\t\t\t@ $mol_mem\n\t\t\t\tfoo( next? : number ) {\n\t\t\t\t\treturn next || 1\n\t\t\t\t}\n\n\t\t\t\t@ $mol_mem\n\t\t\t\tbar() {\n\t\t\t\t\treturn this.foo() + 1\n\t\t\t\t}\n\n\t\t\t\t@ $mol_mem\n\t\t\t\txxx() {\n\t\t\t\t\treturn this.bar() + 1\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst x = new X\n\t\t\tx.$ = $\n\n\t\t\t$mol_assert_equal( x.bar() , 2 )\n\t\t\t$mol_assert_equal( x.xxx() , 3 )\n\n\t\t\tx.foo( 5 )\n\t\t\t$mol_assert_equal( x.xxx() , 7 )\n\t\t} ,\n\n\t\t// 'must fail on recursive dependency'() {\n\t\t\n\t\t// \tclass App extends $mol_object {\n\t\t\n\t\t// \t\t@ $mol_mem\n\t\t// \t\tstatic foo() : number {\n\t\t// \t\t\treturn this.foo() + 1\n\t\t// \t\t}\n\t\t\n\t\t// \t}\n\t\t\n\t\t// \t$mol_assert_fail( ()=> App.foo() )\n\n\t\t// } ,\n\n\t\tasync 'must be deferred destroyed when no longer referenced'($) {\n\n\t\t\tlet foo : any\n\t\t\tlet foo_destroyed = false\n\n\t\t\tclass B extends $mol_object2 {\n\n\t\t\t\t@ $mol_mem\n\t\t\t\tshowing( next? : boolean ) {\n\t\t\t\t\tif( next === void 0 ) return true\n\t\t\t\t\treturn next\n\t\t\t\t}\n\n\t\t\t\t@ $mol_mem\n\t\t\t\tfoo() {\n\t\t\t\t\treturn foo = new class extends $mol_object {\n\t\t\t\t\t\tdestructor() {\n\t\t\t\t\t\t\tfoo_destroyed = true\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t@ $mol_mem\n\t\t\t\tbar() {\n\t\t\t\t\treturn this.showing() ? this.foo() : null\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tvar b = new B\n\t\t\tb.$ = $\n\n\t\t\tvar bar = b.bar()\n\t\t\t$mol_assert_ok( bar )\n\n\t\t\tb.showing( false )\n\t\t\tb.bar()\n\n\t\t\tawait $mol_fiber_warp()\n\t\t\t$mol_assert_ok( foo_destroyed )\n\t\t\t$mol_assert_not( b.bar() )\n\n\t\t\tb.showing( true )\n\t\t\t$mol_defer.run()\n\t\t\t$mol_assert_unique( b.bar() , bar )\n\t\t} ,\n\n\t\tasync 'wait for data'($) {\n\n\t\t\tclass Test extends $mol_object2 {\n\n\t\t\t\t@ $mol_mem\n\t\t\t\tsource() : string {\n\t\t\t\t\treturn $mol_fiber_sync( ()=> new Promise< string >( done => done( 'Jin' ) ) )()\n\t\t\t\t}\n\n\t\t\t\t@ $mol_mem\n\t\t\t\tmiddle() {\n\t\t\t\t\treturn this.source()\n\t\t\t\t}\n\n\t\t\t\t@ $mol_mem\n\t\t\t\ttarget() {\n\t\t\t\t\treturn this.middle()\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst t = new Test\n\t\t\tt.$ = $\n\n\t\t\t$mol_assert_fail( ()=> t.target().valueOf() , Promise )\n\n\t\t\tawait $mol_fiber_warp()\n\n\t\t\t$mol_assert_equal( t.target() , 'Jin' )\n\t\t} ,\n\n\t} )\n\n}\n","namespace $ {\n\n\texport let $mol_mem_cached = $mol_atom2_value\n\n\texport function $mol_mem_persist() {\n\n\t\tconst atom = $mol_atom2.current\n\t\tif( !atom ) return\n\t\t\n\t\tif( atom.hasOwnProperty( 'destructor' ) ) return\n\t\t\n\t\tatom.destructor = ()=> {}\n\t\t\n\t}\n\n\texport function $mol_mem<\n\t\tHost extends object ,\n\t\tField extends keyof Host ,\n\t\tProp extends Extract< Host[ Field ] , ( next? : any )=> any >,\n\t>(\n\t\tproto : Host ,\n\t\tname : Field ,\n\t\tdescr? : TypedPropertyDescriptor< Prop >\n\t) {\n\n\t\ttype Input = $mol_type_param< Prop , 0 >\n\t\ttype Output = $mol_type_result< Prop >\n\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( proto , name )\n\t\tconst orig = descr!.value! as Function\n\t\t\n\t\tconst store = new WeakMap< Host , $mol_atom2< Output > >()\n\n\t\tObject.defineProperty( proto , name + \"()\" , {\n\t\t\tget : function() {\n\t\t\t\treturn store.get( this )\n\t\t\t}\n\t\t} )\n\n\t\tconst get_cache = ( host : Host )=> {\n\t\t\t\n\t\t\tlet cache = store.get( host )!\n\t\t\tif( cache ) return cache\n\n\t\t\tlet cache2 = new $mol_atom2\n\t\t\tcache2.calculate = orig.bind( host )\n\t\t\tcache2[ Symbol.toStringTag ] = `${ host }.${ name }()`\n\t\t\tcache2.abort = ()=> {\n\t\t\t\tstore.delete( host )\n\t\t\t\tcache2.forget()\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t$mol_owning_catch( host , cache2 )\n\t\t\tcache2[ $mol_object_field ] = name\n\t\t\tstore.set( host , cache2 )\n\n\t\t\treturn cache2\n\t\t}\n\n\t\tfunction value( this : Host , next? : Input , force? : $mol_mem_force ) {\n\t\t\t\t\n\t\t\tif( next === undefined ) {\n\t\t\t\t\n\t\t\t\tconst cache = get_cache( this )\n\t\t\t\tif( force === $mol_mem_force_cache ) return cache.obsolete( Number.NaN )\n\t\t\t\t\n\t\t\t\tif( $mol_atom2.current ) return cache.get()\n\t\t\t\telse return $mol_fiber.run( ()=> cache.get() )\n\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn $mol_fiber.run( ()=> {\n\t\t\t\tif( force === $mol_mem_force_fail ) return get_cache( this ).fail( next as any )\n\t\t\t\tif( force !== $mol_mem_force_cache ) next = orig.call( this , next )\n\t\t\t\treturn get_cache( this ).put( next )\n\t\t\t} )\n\t\t\t\n\t\t}\n\t\t\n\t\treturn {\n\t\t\t... descr || {} ,\n\t\t\tvalue : Object.assign( value , { orig } )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\t$mol_test( { \n\t\t\n\t\t'const returns stored value'() {\n\t\t\n\t\t\tconst foo = { bar : $mol_const( Math.random() ) }\n\t\t\t\n\t\t\t$mol_assert_equal( foo.bar() , foo.bar() )\n\t\t\t$mol_assert_equal( foo.bar() , foo.bar['()'] )\n\t\t\t\n\t\t} ,\n\n\t} )\n}\n","namespace $ { \n\texport function $mol_const< Value >( value : Value ) {\n\t\tvar getter = <{ () : Value , '()' : Value }> ( () => value )\n\t\tgetter['()'] = value\n\t\tgetter[ Symbol.toStringTag ] = value\n\t\treturn getter\n\t}\n}\n","namespace $ {\n\n\texport function $mol_atom2_field<\n\t\tHost extends object ,\n\t\tField extends keyof Host ,\n\t\tValue extends Host[ Field ]\n\t>(\n\t\tproto : Host ,\n\t\tname : Field ,\n\t\tdescr? : TypedPropertyDescriptor< Value >\n\t) : any {\n\t\t\n\t\tif( !descr ) descr = Object.getOwnPropertyDescriptor( proto , name )\n\n\t\tconst get = descr ? ( descr.get || $mol_const( descr.value! ) ) : ( ()=> undefined as unknown as Value )\n\t\tconst set = descr && descr.set || function( this : Host , next ) { get_cache( this ).put( next ) }\n\t\t\n\t\tconst store = new WeakMap< Host , $mol_atom2< Value > >()\n\n\t\tObject.defineProperty( proto , name + \"@\" , {\n\t\t\tget : function() {\n\t\t\t\treturn store.get( this )\n\t\t\t}\n\t\t} )\n\n\t\tconst get_cache = ( host : Host )=> {\n\t\t\t\n\t\t\tlet cache = store.get( host )\n\t\t\t\n\t\t\tif( !cache ) {\n\t\t\t\tcache = new $mol_atom2\n\t\t\t\tcache.calculate = get.bind( host )\n\t\t\t\tcache[ Symbol.toStringTag ] = `${ host }.${ name }`\n\t\t\t\tcache.abort = ()=> {\n\t\t\t\t\tstore.delete( host )\n\t\t\t\t\tcache!.forget()\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\t$mol_owning_catch( host , cache )\n\t\t\t\tstore.set( host , cache )\n\t\t\t}\n\n\t\t\treturn cache!\n\t\t}\n\n\t\treturn {\n\t\t\t\n\t\t\tget() {\n\t\t\t\treturn get_cache( this ).get()\n\t\t\t},\n\n\t\t\tset ,\n\n\t\t\t// set( next : Value ) {\n\t\t\t\t\n\t\t\t\t// const slave = $mol_fiber.current \n\n\t\t\t\t// let master = slave && slave.master as $mol_fiber< void >\n\t\t\t\t// if( !master ) {\n\t\t\t\t// \tmaster = new $mol_fiber\n\t\t\t\t// \tmaster.calculate = ()=> {\n\t\t\t\t\t\t// set.call( this , next )\n\t\t\t\t// \t}\n\t\t\t\t// \tmaster[ Symbol.toStringTag ] = `${ this }.${ name }=`\n\t\t\t\t// }\n\n\t\t\t\t// master.get()\n\n\t\t\t// }\n\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t$mol_test({\n\n\t\tasync 'Autorun' ($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic state = 1\n\t\t\t\t\n\t\t\t\tstatic counter = 0\n\n\t\t\t\t@ $mol_atom2_field\n\t\t\t\tstatic get init() {\n\t\t\t\t\t++ this.counter\n\t\t\t\t\treturn this.state\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst autorun = $mol_atom2_autorun( ()=> App.init )\n\t\t\tautorun.$ = $\n\n\t\t\ttry {\n\n\t\t\t\tawait $mol_fiber_warp()\n\t\t\t\t$mol_assert_equal( App.counter , 1 )\n\t\t\t\t\n\t\t\t\tApp.state = 2\n\t\t\t\t$mol_assert_equal( App.counter , 1 )\n\n\t\t\t\tawait $mol_fiber_warp()\n\t\t\t\t$mol_assert_equal( App.counter , 2 )\n\t\t\t\t\n\t\t\t\tApp.state = 3\n\n\t\t\t} finally {\n\t\t\t\tautorun.destructor()\n\t\t\t}\n\n\t\t\tApp.state = 4\n\t\t\tawait $mol_fiber_warp()\n\t\t\t$mol_assert_equal( App.counter , 2 )\n\n\t\t} ,\n\n\t})\n\n}\n","namespace $ {\n\n\texport function $mol_atom2_autorun( calculate : ()=> any ) {\n\t\t\n\t\treturn $mol_atom2.create( atom => {\n\t\t\t\n\t\t\tatom.calculate = calculate\n\t\t\tatom.obsolete_slaves = atom.schedule\n\t\t\tatom.doubt_slaves = atom.schedule\n\t\t\t\n\t\t\tif( Symbol.toStringTag in calculate ) {\n\t\t\t\tatom[ Symbol.toStringTag ] = calculate[ Symbol.toStringTag ]\n\t\t\t} else {\n\t\t\t\tatom[ Symbol.toStringTag ] = calculate.name || '$mol_atom2_autorun'\n\t\t\t}\n\t\t\t\n\t\t\tatom.schedule()\n\t\t\t\n\t\t} )\n\n\t}\n\n}\n","/** @jsx $mol_jsx */\nnamespace $ {\n\t\n\t$mol_test({\n\t\t\n\t\t'Class as component'() {\n\n\t\t\tclass Foo extends $mol_jsx_view {\n\n\t\t\t\ttitle = ''\n\t\t\t\t\n\t\t\t\trender() {\n\t\t\t\t\treturn <div>{ this.title } { this.childNodes.join( '-' ) }</div>\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst dom = <Foo id=\"/foo\" title=\"bar\">xxx{123}</Foo>\n\n\t\t\t$mol_assert_equal( dom.outerHTML , '<div id=\"/foo\">bar xxx-123</div>' )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'View by element'() {\n\n\t\t\tclass Br extends $mol_jsx_view {\n\n\t\t\t\trender() {\n\t\t\t\t\tview = this\n\t\t\t\t\treturn <br id=\"/foo\" />\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tlet view! : Br\n\n\t\t\t$mol_assert_equal( Br.of( <Br /> ) , view )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'Attached view rerender'() {\n\n\t\t\tconst doc = $mol_dom_parse( '<html><body id=\"/foo\"></body></html>' )\n\t\t\t\n\t\t\tclass Title extends $mol_jsx_view {\n\n\t\t\t\tvalue = 'foo'\n\t\t\t\t\n\t\t\t\trender() {\n\t\t\t\t\treturn <div>{ this.value }</div>\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\tconst dom = $mol_jsx_attach( doc , ()=> <Title id=\"/foo\" /> )\n\t\t\tconst title = Title.of( dom )\n\t\t\t\n\t\t\t$mol_assert_equal( title.ownerDocument , doc )\n\t\t\t$mol_assert_equal( doc.documentElement.outerHTML , '<html><body id=\"/foo\">foo</body></html>' )\n\t\t\t\n\t\t\ttitle.value = 'bar'\n\t\t\ttitle.valueOf()\n\t\t\t\n\t\t\t$mol_assert_equal( doc.documentElement.outerHTML , '<html><body id=\"/foo\">bar</body></html>' )\n\t\t\t\n\t\t} ,\n\t\t\n\t\tasync 'Reactive attached view'($) {\n\n\t\t\tconst doc = $mol_dom_parse( '<html><body id=\"/foo\"></body></html>' )\n\t\t\t\n\t\t\tclass Task extends $mol_object2 {\n\n\t\t\t\t@ $mol_mem\n\t\t\t\ttitle( next? : string ) { return next || 'foo' }\n\t\t\t\t\n\t\t\t}\n\n\t\t\tclass App extends $mol_jsx_view {\n\t\t\t\t\n\t\t\t\t@ $mol_mem\n\t\t\t\ttask() { return new Task }\n\n\t\t\t\t@ $mol_mem\n\t\t\t\tvalueOf() {\n\t\t\t\t\treturn super.valueOf()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\trender() {\n\t\t\t\t\treturn <div>{ this.task().title() }</div>\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst task = new Task\n\t\t\ttask.$ = $\n\n\t\t\tconst autorun = $.$mol_atom2_autorun( ()=> $mol_jsx_attach( doc , ()=> <App $={$} id=\"/foo\" task={ ()=> task } /> ) )\n\t\t\tautorun.$ = $\n\t\t\t\n\t\t\tawait $mol_fiber_warp()\n\t\t\t$mol_assert_equal( doc.documentElement.outerHTML , '<html><body id=\"/foo\">foo</body></html>' )\n\n\t\t\ttask.title( 'bar' )\n\t\t\tawait $mol_fiber_warp()\n\t\t\t$mol_assert_equal( doc.documentElement.outerHTML , '<html><body id=\"/foo\">bar</body></html>' )\n\t\t\t\n\t\t} ,\n\t\t\n\t})\n\t\n}\n","/** @jsx $mol_jsx */\nnamespace $ {\n\n\texport class $mol_jsx_view extends $mol_object2 {\n\n\t\tstatic of< This extends typeof $mol_jsx_view >( this : This , node : Element ) {\n\t\t\treturn node[ this as any ] as InstanceType< This >\n\t\t}\n\t\t\n\t\t[ Symbol.toStringTag ] : string\n\t\t\n\t\tattributes! : Partial< Pick< this , Exclude< keyof this , 'valueOf' > > >\n\t\townerDocument! : typeof $mol_jsx_document\n\t\tchildNodes! : Array< Node | string >\n\t\t\n\t\tvalueOf() {\n\t\t\t\n\t\t\tconst prefix = $mol_jsx_prefix\n\t\t\tconst booked = $mol_jsx_booked\n\t\t\tconst document = $mol_jsx_document\n\t\t\t\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\t$mol_jsx_prefix = this[ Symbol.toStringTag ]\n\t\t\t\t$mol_jsx_booked = new Set\n\t\t\t\t$mol_jsx_document = this.ownerDocument\n\n\t\t\t\treturn this.render()\n\n\t\t\t} finally {\n\n\t\t\t\t$mol_jsx_prefix = prefix\n\t\t\t\t$mol_jsx_booked = booked\n\t\t\t\t$mol_jsx_document = document\n\n\t\t\t}\n\n\t\t}\n\t\t\n\t\trender() : HTMLElement {\n\t\t\treturn $mol_fail( new Error( 'dom_tree() not implemented' ) )\n\t\t}\n\n\t}\n\n}\n",null,null,"namespace $ {\n\n\t$mol_test({\n\n\t\t'equal paths' () {\n\n\t\t\tconst diff = $mol_diff_path( [1,2,3,4] , [1,2,3,4] , [1,2,3,4] )\n\t\t\t\n\t\t\t$mol_assert_like( diff , {\n\t\t\t\tprefix : [1,2,3,4] , \n\t\t\t\tsuffix : [ [] , [] , [] ] ,\n\t\t\t} )\n\n\t\t} ,\n\n\t\t'different suffix' () {\n\n\t\t\tconst diff = $mol_diff_path( [1,2,3,4] , [1,2,3,5] , [1,2,5,4] )\n\t\t\t\n\t\t\t$mol_assert_like( diff , {\n\t\t\t\tprefix : [1,2] , \n\t\t\t\tsuffix : [ [3,4] , [3,5] , [5,4] ] ,\n\t\t\t} )\n\n\t\t} ,\n\n\t\t'one contains other' () {\n\t\t\t\n\t\t\tconst diff = $mol_diff_path( [1,2,3,4] , [1,2] , [1,2,3] )\n\t\t\t\n\t\t\t$mol_assert_like( diff , {\n\t\t\t\tprefix : [1,2] , \n\t\t\t\tsuffix : [ [3,4] , [] , [3] ] ,\n\t\t\t} )\n\n\t\t} ,\n\n\t\t'fully different' () {\n\n\t\t\tconst diff = $mol_diff_path( [1,2] , [3,4] , [5,6] )\n\t\t\t\n\t\t\t$mol_assert_like( diff , {\n\t\t\t\tprefix : [] , \n\t\t\t\tsuffix : [ [1,2] , [3,4] , [5,6] ] ,\n\t\t\t} )\n\n\t\t} ,\n\n\t})\n\n}\n","namespace $ {\n\n\texport function $mol_diff_path< Item >( ... paths : Item[][] ) {\n\n\t\tconst limit = Math.min( ... paths.map( path => path.length ) )\n\n\t\tlookup: for( var i = 0 ; i < limit ; ++i ) {\n\n\t\t\tconst first = paths[0][i]\n\n\t\t\tfor( let j = 1 ; j < paths.length ; ++j ) {\n\t\t\t\tif( paths[j][i] !== first ) break lookup\n\t\t\t}\n\n\t\t}\n\n\t\treturn {\n\t\t\tprefix : paths[0].slice( 0 , i ) ,\n\t\t\tsuffix : paths.map( path => path.slice( i ) ) ,\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\texport class $mol_error_mix extends Error {\n\n\t\terrors : Error[]\n\n\t\tconstructor( message : string , ... errors : Error[] ) {\n\n\t\t\tsuper( message )\n\t\t\t\n\t\t\tthis.errors = errors\n\n\t\t\tif( errors.length ) {\n\n\t\t\t\tconst stacks = [ ... errors.map( error => error.message ) , this.stack ]\n\t\t\t\t\n\t\t\t\tconst diff = $mol_diff_path( ... stacks.map( stack => {\n\t\t\t\t\tif( !stack ) return []\n\t\t\t\t\treturn stack.split( '\\n' ).reverse()\n\t\t\t\t} ) )\n\t\t\t\t\n\t\t\t\tconst head = diff.prefix.reverse().join( '\\n' )\n\t\t\t\tconst tails = diff.suffix.map( path => path.reverse().map( line => line.replace( /^(?!\\s+at)/ , '\\tat (.) ' ) ).join( '\\n' ) ).join( '\\n\\tat (.) -----\\n' )\n\n\t\t\t\tthis.stack = `Error: ${ this.constructor.name }\\n\\tat (.) /\"\"\"\\\\\\n${ tails }\\n\\tat (.) \\\\___/\\n${ head }`\n\t\t\t\tthis.message += errors.map( error => '\\n' + error.message ).join( '' )\n\n\t\t\t}\n\n\t\t}\n\n\t\ttoJSON() {\n\t\t\treturn this.message\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'tree parsing'( $ ) {\n\t\t\t\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"foo\\nbar\\n\" ).kids.length , 2 )\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"foo\\nbar\\n\" ).kids[ 1 ].type , \"bar\" )\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"foo\\n\\n\\n\" ).kids.length , 1 )\n\t\t\t\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"=foo\\n\\\\bar\\n\" ).kids.length , 2 )\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"=foo\\n\\\\bar\\n\" ).kids[ 1 ].value , \"bar\" )\n\t\t\t\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"foo bar \\\\pol\\n\" ).kids[ 0 ].kids[ 0 ].kids[ 0 ].value , \"pol\" )\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"foo bar\\n\\t\\\\pol\\n\\t\\\\men\\n\" ).kids[ 0 ].kids[ 0 ].kids[ 1 ].value , \"men\" )\n\t\t\t\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( 'foo bar \\\\text\\n' ).toString() , 'foo bar \\\\text\\n' )\n\t\t} ,\n\n\t\t'Too many tabs'( $ ) {\n\n\t\t\tconst tree = `\n\t\t\t\tfoo\n\t\t\t\t\t\tbar\n\t\t\t`\n\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$.$mol_tree2_from_string( tree , 'test' )\n\t\t\t}, 'Too many tabs\\ntest#3:1/6\\n!!!!!!\\n\\t\\t\\t\\t\\t\\tbar' )\n\n\t\t},\n\n\t\t'Too few tabs'( $ ) {\n\n\t\t\tconst tree = `\n\t\t\t\t\tfoo\n\t\t\t\tbar\n\t\t\t`\n\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$.$mol_tree2_from_string( tree , 'test' )\n\t\t\t}, 'Too few tabs\\ntest#3:1/4\\n!!!!\\n\\t\\t\\t\\tbar' )\n\n\t\t},\n\n\t\t'Wrong nodes separator'( $ ) {\n\n\t\t\tconst tree = `foo bar\\n`\n\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$.$mol_tree2_from_string( tree , 'test' )\n\t\t\t}, 'Wrong nodes separator\\ntest#1:4/2\\n !!\\nfoo bar' )\n\n\t\t},\n\n\t\t'Undexpected EOF, LF required'( $ ) {\n\n\t\t\tconst tree = `\tfoo`\n\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$.$mol_tree2_from_string( tree , 'test' )\n\t\t\t}, 'Undexpected EOF, LF required\\ntest#1:5/1\\n\t !\\n\tfoo' )\n\n\t\t},\n\n\t\t'Errors skip and collect'( $ ) {\n\n\t\t\tconst tree = `foo bar`\n\t\t\tconst errors = [] as string[]\n\n\t\t\tconst $$ = $.$mol_ambient({\n\t\t\t\t$mol_fail: ( error: any ) => {\n\t\t\t\t\terrors.push( error.message )\n\t\t\t\t\treturn null as never\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tconst res = $$.$mol_tree2_from_string( tree , 'test' )\n\n\t\t\t$mol_assert_like( errors, [\n\t\t\t\t'Wrong nodes separator\\ntest#1:4/2\\n !!\\nfoo bar',\n\t\t\t\t'Undexpected EOF, LF required\\ntest#1:9/1\\n !\\nfoo bar',\n\t\t\t] )\n\n\t\t\t$mol_assert_equal( res.toString(), 'foo bar\\n' )\n\n\t\t},\n\n\t} )\t\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../mam.jam.js","../../../../mam.ts","../../../ambient/mol/ambient/ambient.ts","../../../delegate/mol/delegate/delegate.ts","../../../owning/mol/owning/owning.ts","../../../fail/mol/fail/fail.ts","../../../fail/hidden/mol/fail/hidden/hidden.ts","../../../type/writable/writable.ts","../../../object2/mol/object2/object2.ts","../../../span/mol/span/span.ts","../../../error/syntax/mol/error/syntax/syntax.ts","../../from/string/mol/tree2/from/string/string.ts","../../to/string/mol/tree2/to/string/string.ts","../../mol/tree2/tree2.ts","../../from/json/mol/tree2/from/json/json.ts","../../js/to/text/mol/tree2/js/to/text/text.ts","../../span/imprint/mol/tree2/span/imprint/imprint.ts","../../span/reuse/mol/tree2/span/reuse/reuse.ts","../../text/to/string/mol/tree2/text/to/string/string.ts","../../../vlq/mol/vlq/vlq.ts","../../text/to/sourcemap/mol/tree2/text/to/sourcemap/sourcemap.ts","../../text/to/string/mapped/mol/tree2/text/to/string/mapped/mapped.ts","../../text/to/sourcemap/vis/mol/tree2/text/to/sourcemap/vis/vis.ts","../../to/json/mol/tree2/to/json/json.ts","../../to/stream/mol/tree2/to/stream/stream.ts","../../xml/from/dom/mol/tree2/xml/from/dom/dom.ts","../../../html/encode/mol/html/encode/encode.ts","../../xml/to/text/mol/tree2/xml/to/text/text.ts","../../../test/mol/test/test.node.test.ts","../../../test/mol/test/test.test.ts","../../../dom/context/mol/dom/context/context.ts","../../../../node/node.ts","../../../../node/node/node.node.ts","../../../log3/mol/log3/log3.ts","../../../term/color/mol/term/color/color.ts","../../../log3/mol/log3/log3.node.ts","../../../log3/mol/log3/log3.test.ts","../../../env/mol/env/env.ts","../../../env/mol/env/env.node.ts","../../../exec/mol/exec/exec.node.ts","../../../dom/context/mol/dom/context/context.node.ts","../../../dom/render/children/mol/dom/render/children/children.ts","../../../type/error/error.ts","../../../type/assert/assert.test.ts","../../../type/assert/assert.ts","../../../type/equals/equals.test.ts","../../../type/equals/equals.ts","../../../type/partial/deep/deep.test.ts","../../../type/partial/deep/deep.ts","../../../jsx/mol/jsx/jsx.test.tsx","../../../jsx/mol/jsx/jsx.ts","../../../compare/deep/mol/compare/deep/deep.test.tsx","../../../compare/deep/mol/compare/deep/deep.ts","../../../dom/serialize/mol/dom/serialize/serialize.ts","../../../assert/mol/assert/assert.test.ts","../../../assert/mol/assert/assert.ts","../../../delegate/mol/delegate/delegate.test.ts","../../../type/writable/writable.test.ts","../../../span/mol/span/span.test.ts","../../from/string/mol/tree2/from/string/string.test.ts","../../../tree/mol/tree/tree.test.ts","../../../tree/mol/tree/tree.ts","../../../func/name/mol/func/name/name.test.ts","../../../func/name/mol/func/name/name.ts","../../mol/tree2/tree2.test.ts","../../from/json/mol/tree2/from/json/json.test.ts","../../../type/unary/unary.ts","../../../type/param/param.test.ts","../../../type/param/param.ts","../../../type/tail/tail.test.ts","../../../type/tail/tail.ts","../../../data/value/value.ts","../../../data/setup/mol/data/setup/setup.test.ts","../../../data/setup/mol/data/setup/setup.ts","../../../func/is/class/mol/func/is/class/class.test.ts","../../../func/is/class/mol/func/is/class/class.ts","../../../type/result/result.test.ts","../../../type/result/result.ts","../../../type/foot/foot.test.ts","../../../type/foot/foot.ts","../../../data/pipe/mol/data/pipe/pipe.test.ts","../../../data/pipe/mol/data/pipe/pipe.ts","../../js/to/text/mol/tree2/js/to/text/text.test.ts","../../../vlq/mol/vlq/vlq.test.ts","../../text/to/sourcemap/mol/tree2/text/to/sourcemap/sourcemap.test.ts","../../to/json/mol/tree2/to/json/json.test.ts"],"names":[],"mappings":"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","file":"node.test.js","sourcesContent":[null,"Error.stackTraceLimit = 50;\n\ndeclare let _$_: { new(): {} } & typeof globalThis\ndeclare class $ extends _$_ {}\n\nnamespace $ {\n\texport type $ = typeof $$\n\texport declare class $$ extends $ {}\n\tnamespace $$ {\n\t\texport type $$ = $\n\t}\n}\n\nmodule.exports = $\n","namespace $ {\n\n\texport const $mol_ambient_ref : unique symbol = Symbol( '$mol_ambient_ref' )\n\n\t/** @deprecated use $ instead */\n\texport type $mol_ambient_context = $\n\n\texport function $mol_ambient( this : $ | void , overrides : Partial< $ > ) : $ {\n\t\treturn Object.setPrototypeOf( overrides , this || $ )\n\t}\n\n}\n","namespace $ {\n\n\tconst instances = new WeakSet< any >()\n\n\t/**\n\t * Proxy that delegates all to lazy returned target.\n\t * \n\t * \t$mol_delegate( Array.prototype , ()=> fetch_array() )\n\t */\n export function $mol_delegate< Value extends object >(\n\t\tproto : Value ,\n\t\ttarget : ()=> Value ,\n\t) {\n\n\t\tconst proxy = new Proxy( proto , {\n\n\t\t\tget: ( _ , field )=> {\n\t\t\t\tconst obj = target()\n\t\t\t\tlet val = Reflect.get( obj , field )\n\t\t\t\tif( typeof val === 'function' ) {\n\t\t\t\t\tval = val.bind( obj )\n\t\t\t\t} \n\t\t\t\treturn val\n\t\t\t},\n\t\t\thas: ( _ , field )=> Reflect.has( target(), field ),\n\t\t\tset: ( _ , field , value )=> Reflect.set( target() , field , value ),\n\t\t\t\n\t\t\tgetOwnPropertyDescriptor: ( _ , field )=> Reflect.getOwnPropertyDescriptor( target() , field ),\n\t\t\townKeys: ()=> Reflect.ownKeys( target() ),\n\t\t\t\n\t\t\tgetPrototypeOf: ()=> Reflect.getPrototypeOf( target() ),\n\t\t\tsetPrototypeOf: ( _ , donor )=> Reflect.setPrototypeOf( target() , donor ),\n\t\t\t\n\t\t\tisExtensible: ()=> Reflect.isExtensible( target() ),\n\t\t\tpreventExtensions: ()=> Reflect.preventExtensions( target() ),\n\t\t\t\n\t\t\tapply: ( _ , self , args )=> Reflect.apply( target() as Function , self , args ),\n\t\t\tconstruct: ( _ , args , retarget )=> Reflect.construct( target() as Function , args , retarget ),\n\t\t\t\n\t\t\tdefineProperty: ( _ , field , descr )=> Reflect.defineProperty( target() , field , descr ),\n\t\t\tdeleteProperty: ( _ , field )=> Reflect.deleteProperty( target() , field ),\n\n\t\t} )\n\n\t\tinstances.add( proxy )\n\n\t\treturn proxy\n\n\t}\n\n\tReflect.defineProperty(\n\t\t$mol_delegate ,\n\t\tSymbol.hasInstance ,\n\t\t{\n\t\t\tvalue : ( obj : object )=> instances.has( obj ),\n\t\t},\n\t)\n\n}\n","namespace $ {\n\n\texport const $mol_owning_map = new WeakMap< any , any >()\n\n\texport function $mol_owning_allow< Having >(\n\t\thaving : Having ,\n\t) : having is Having & {\n\t\tdestructor() : void\n\t} {\n\t\ttry {\n\t\t\tif( !having ) return false\n\t\t\tif( typeof having !== 'object' ) return false\n\t\t\tif( having instanceof $mol_delegate ) return false\n\t\t\tif( typeof having['destructor'] !== 'function' ) return false\n\t\t\treturn true\n\t\t} catch {\n\t\t\treturn false\n\t\t}\n\t}\n\n\texport function $mol_owning_get< Having , Owner extends object >( having : Having , Owner? : { new() : Owner } ) : Owner | null {\n\t\n\t\tif( !$mol_owning_allow( having ) ) return null\n\n\t\twhile( true ) {\n\n\t\t\tconst owner = $mol_owning_map.get( having )\n\t\t\tif( !owner ) return owner\n\t\t\tif( !Owner ) return owner\n\t\t\t\n\t\t\tif( owner instanceof Owner ) return owner\n\n\t\t\thaving = owner\n\t\t}\n\n\t}\n\t\n\texport function $mol_owning_check< Owner , Having >(\n\t\towner : Owner ,\n\t\thaving : Having ,\n\t) : having is Having & { destructor() : void } {\n\t\tif( !$mol_owning_allow( having ) ) return false\n\t\tif( $mol_owning_map.get( having ) !== owner ) return false\n\t\treturn true\n\t}\n\t\n\texport function $mol_owning_catch< Owner , Having >(\n\t\towner : Owner ,\n\t\thaving : Having ,\n\t) {\n\t\tif( !$mol_owning_allow( having ) ) return false\n\t\tif( $mol_owning_map.get( having ) ) return false\n\n\t\t$mol_owning_map.set( having , owner )\n\t\treturn true\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_fail( error : any ) : never {\n\t\tthrow error\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_fail_hidden( error : any ) : never {\n\t\tthrow error /// Use 'Never Pause Here' breakpoint in DevTools or simply blackbox this script\n\t}\n\n}\n",null,"namespace $ {\n\n\texport class $mol_object2 {\n\t\t\n\t\tstatic $ = $ as $\n\t\t\n\t\t[ $mol_ambient_ref ] = null as any as $\n\t\tget $() {\n\t\t\tif( this[ $mol_ambient_ref ] ) return this[ $mol_ambient_ref ]\n\t\t\tconst owner = $mol_owning_get( this ) as any\n\t\t\treturn this[ $mol_ambient_ref ] = owner?.$ || $mol_object2.$ as $\n\t\t}\n\t\tset $( next : $ ) {\n\t\t\tif( this[ $mol_ambient_ref ] ) $mol_fail_hidden( new Error( 'Context already defined' ) )\n\t\t\tthis[ $mol_ambient_ref ] = next\n\t\t}\n\n\t\tpublic static create< Instance >(\n\t\t\tthis : new( init? : ( instance : any )=> void )=> Instance ,\n\t\t\tinit? : ( instance : $mol_type_writable<Instance> )=> void\n\t\t) : Instance {\n\t\t\tconst obj = new this\n\t\t\tif( init ) init( obj )\n\t\t\treturn obj\n\t\t}\n\t\t\n\t\tstatic [ Symbol.toPrimitive ]() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tstatic toString() {\n\t\t\tif( Symbol.toStringTag in this ) return this[ Symbol.toStringTag ]\n\t\t\treturn this.name\n\t\t}\n\t\t\n\t\tdestructor() { }\n\t\t\n\t\t//[ Symbol.toPrimitive ]( hint: string ) {\n\t\t//\treturn hint === 'number' ? this.valueOf() : this.toString()\n\t\t//}\n\t\t\n\t\ttoString() {\n\t\t\treturn this[ Symbol.toStringTag ] || this.constructor.name + '()'\n\t\t}\n\t\t\n\t\ttoJSON() {\n\t\t\treturn this.toString()\n\t\t}\n\n\t}\n}\n","namespace $ {\n\n\t/** Position in any resource. */\n\texport class $mol_span extends $mol_object2 {\n\n\t\tconstructor(\n\t\t\treadonly uri: string ,\n\t\t\treadonly source: string ,\n\t\t\treadonly row: number ,\n\t\t\treadonly col: number ,\n\t\t\treadonly length: number ,\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis[ Symbol.toStringTag ] = `${ this.uri }#${ this.row }:${ this.col }/${ this.length }`\n\t\t}\n\n\t\t/** Span for begin of unknown resource */\n\t\tstatic unknown = $mol_span.begin('unknown')\n\n\t\t/** Makes new span for begin of resource. */\n\t\tstatic begin( uri: string, source = '' ) {\n\t\t\treturn new $mol_span( uri , source, 1 , 1 , 0 )\n\t\t}\n\n\t\t/** Makes new span for end of resource. */\n\t\tstatic end( uri: string , source: string ) {\n\t\t\treturn new $mol_span( uri , source, 1 , source.length + 1 , length )\n\t\t}\n\n\t\t/** Makes new span for entire resource. */\n\t\tstatic entire( uri: string , source: string ) {\n\t\t\treturn new $mol_span( uri , source, 1 , 1 , source.length )\n\t\t}\n\n\t\ttoString() {\n\t\t\treturn this[ Symbol.toStringTag ]\n\t\t}\n\n\t\ttoJSON() {\n\t\t\treturn {\n\t\t\t\turi: this.uri,\n\t\t\t\trow: this.row,\n\t\t\t\tcol: this.col,\n\t\t\t\tlength: this.length\n\t\t\t}\n\t\t}\n\n\t\t/** Makes new error for this span. */\n\t\terror( message : string , Class = Error ) {\n\t\t\treturn new Class( `${message}${this}` )\n\t\t}\n\n\t\t/** Makes new span for same uri. */\n\t\tspan( row : number , col : number , length : number ) {\n\t\t\treturn new $mol_span( this.uri , this.source, row , col , length )\n\t\t}\n\n\t\t/** Makes new span after end of this. */\n\t\tafter( length = 0 ) {\n\t\t\treturn new $mol_span( this.uri , this.source, this.row , this.col + this.length , length )\n\t\t}\n\n\t\t/** Makes new span between begin and end. */\n\t\tslice( begin: number, end = -1 ) {\n\t\t\tlet len = this.length\n\t\t\t\n\t\t\tif( begin < 0 ) begin += len\n\t\t\tif( end < 0 ) end += len\n\n\t\t\tif (begin < 0 || begin > len) this.$.$mol_fail(`Begin value '${begin}' out of range ${this}`)\n\t\t\tif (end < 0 || end > len) this.$.$mol_fail(`End value '${end}' out of range ${this}`)\n\t\t\tif (end < begin) this.$.$mol_fail(`End value '${end}' can't be less than begin value ${this}`)\n\n\t\t\treturn this.span( this.row , this.col + begin , end - begin )\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t/** Syntax error with cordinates and source line snippet. */\n\texport class $mol_error_syntax extends SyntaxError {\n\t\tconstructor (\n\t\t\tpublic reason: string,\n\t\t\tpublic line: string,\n\t\t\tpublic span: $mol_span,\n\t\t) {\n\t\t\tsuper(`${ reason }\\n${ span }\\n${ line.substring( 0 , span.col - 1 ).replace( /\\S/g, ' ' ) }${ ''.padEnd( span.length, '!' ) }\\n${ line }`)\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t/** Parses tree format from string. */\n\texport function $mol_tree2_from_string(\n\t\tthis: $,\n\t\tstr: string,\n\t\turi = 'unknown',\n\t) : $mol_tree2 {\n\n\t\tconst span = $mol_span.entire( uri, str )\n\n\t\tvar root = $mol_tree2.list( [], span )\n\t\tvar stack = [ root ]\n\n\t\tvar pos = 0, row = 0, min_indent = 0\n\t\t\n\t\twhile( str.length > pos ) {\n\n\t\t\tvar indent = 0\n\t\t\tvar line_start = pos\n\n\t\t\trow++\n\n\t\t\t// read indent\n\t\t\twhile( str.length > pos && str[ pos ] == '\\t' ) {\n\t\t\t\tindent++\n\t\t\t\tpos++\n\t\t\t}\n\n\t\t\tif( ! root.kids.length ) {\n\t\t\t\tmin_indent = indent\n\t\t\t}\n\n\t\t\tindent -= min_indent\n\n\t\t\t// invalid tab size\n\t\t\tif( indent < 0 || indent >= stack.length ) {\n\n\t\t\t\tconst sp = span.span( row, 1, pos - line_start )\n\n\t\t\t\t// skip error line\n\t\t\t\twhile( str.length > pos && str[ pos ] != '\\n' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\n\t\t\t\tif( indent < 0 ) {\n\t\t\t\t\tif( str.length > pos ) {\n\t\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t\t`Too few tabs`,\n\t\t\t\t\t\t\tstr.substring( line_start, pos ),\n\t\t\t\t\t\t\tsp,\n\t\t\t\t\t\t) )\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t`Too many tabs`,\n\t\t\t\t\t\tstr.substring( line_start, pos ),\n\t\t\t\t\t\tsp,\n\t\t\t\t\t) )\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tstack.length = indent + 1\n\t\t\tvar parent = stack[ indent ]\n\n\t\t\t// parse types\n\t\t\twhile( str.length > pos && str[ pos ] != '\\\\' && str[ pos ] != '\\n' ) {\n\n\t\t\t\t// type can not contain space and tab\n\t\t\t\tvar error_start = pos\n\t\t\t\twhile( str.length > pos && ( str[ pos ] == ' ' || str[ pos ] == '\\t' ) ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\n\t\t\t\tif( pos > error_start ) {\n\t\t\t\t\tlet line_end = str.indexOf( '\\n' , pos )\n\t\t\t\t\tif( line_end === -1 ) line_end = str.length\n\t\t\t\t\tconst sp = span.span( row, error_start - line_start, pos - error_start + 1 )\n\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t`Wrong nodes separator`,\n\t\t\t\t\t\tstr.substring( line_start, line_end ),\n\t\t\t\t\t\tsp,\n\t\t\t\t\t) )\n\t\t\t\t}\n\n\t\t\t\t// read type\n\t\t\t\tvar type_start = pos\n\t\t\t\twhile( \n\t\t\t\t\tstr.length > pos && \n\t\t\t\t\tstr[ pos ] != '\\\\' && \n\t\t\t\t\tstr[ pos ] != ' ' && \n\t\t\t\t\tstr[ pos ] != '\\t' && \n\t\t\t\t\tstr[ pos ] != '\\n'\n\t\t\t\t) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t\tif( pos > type_start ) {\n\t\t\t\t\tlet next = new $mol_tree2(\n\t\t\t\t\t\tstr.slice( type_start , pos ),\n\t\t\t\t\t\t'',\n\t\t\t\t\t\t[],\n\t\t\t\t\t\tspan.span( row, type_start - line_start + 1, pos - type_start ),\n\t\t\t\t\t)\n\t\t\t\t\tconst parent_kids = parent.kids as $mol_tree2[]\n\t\t\t\t\tparent_kids.push( next )\n\t\t\t\t\tparent = next\n\t\t\t\t}\n\n\t\t\t\t// read one space if exists\n\t\t\t\tif( str.length > pos && str[ pos ] == ' ' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// read data\n\t\t\tif( str.length > pos && str[ pos ] == '\\\\' ) {\n\t\t\t\tvar data_start = pos\n\t\t\t\twhile( str.length > pos && str[ pos ] != '\\n' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t\tlet next = new $mol_tree2(\n\t\t\t\t\t'',\n\t\t\t\t\tstr.slice( data_start + 1 , pos ),\n\t\t\t\t\t[],\n\t\t\t\t\tspan.span( row, data_start - line_start + 2, pos - data_start - 1 ),\n\t\t\t\t)\n\t\t\t\tconst parent_kids = parent.kids as $mol_tree2[]\n\t\t\t\tparent_kids.push( next )\n\t\t\t\tparent = next\n\t\t\t}\n\n\t\t\t// now must be end of text\n\t\t\tif( str.length === pos && stack.length > 0 ) {\n\t\t\t\tconst sp = span.span( row, pos - line_start + 1, 1 )\n\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t`Undexpected EOF, LF required`,\n\t\t\t\t\tstr.substring( line_start, str.length ),\n\t\t\t\t\tsp,\n\t\t\t\t) )\n\t\t\t}\n\n\t\t\tstack.push( parent )\n\t\t\tpos++\n\t\t}\n\n\t\treturn root\n\t}\n\n}\n","namespace $ {\n\n\t/** Serializes tree to string in tree format. */\n\texport function $mol_tree2_to_string(\n\t\tthis: $,\n\t\ttree: $mol_tree2,\n\t) : string {\n\n\t\tlet output = [] as string[]\n\t\t\n\t\tfunction dump(\n\t\t\ttree: $mol_tree2,\n\t\t\tprefix = '',\n\t\t) {\n\n\t\t\tif( tree.type.length ) {\n\t\t\t\t\n\t\t\t\tif( !prefix.length ) {\n\t\t\t\t\tprefix = \"\\t\";\n\t\t\t\t}\n\n\t\t\t\toutput.push( tree.type )\n\n\t\t\t\tif( tree.kids.length == 1 ) {\n\t\t\t\t\toutput.push( ' ' )\n\t\t\t\t\tdump( tree.kids[ 0 ], prefix )\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\toutput.push( \"\\n\" )\n\n\t\t\t} else if( tree.value.length || prefix.length ) {\n\n\t\t\t\toutput.push( \"\\\\\" + tree.value + \"\\n\" )\n\n\t\t\t}\n\n\t\t\tfor( const kid of tree.kids ) {\n\t\t\t\toutput.push( prefix )\n\t\t\t\tdump( kid, prefix + \"\\t\" )\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tdump( tree )\n\n\t\treturn output.join('')\n\t}\n\t\t\n}\n","namespace $ {\n\n\t/** Path by types in tree. */\n\texport type $mol_tree2_path =\n\t\tArray< string | number | null >\n\t\n\t/** Hask tool for processing node. */\n\texport type $mol_tree2_hack< Context > =\n\t\t(\n\t\t\tinput : $mol_tree2 ,\n\t\t\tbelt : $mol_tree2_belt< Context > ,\n\t\t\tcontext : Context ,\n\t\t)=> readonly $mol_tree2[]\n\n\t/** Collection of hask tools for processing tree. */\n\texport type $mol_tree2_belt< Context > =\n\t\tRecord< string , $mol_tree2_hack< Context > >\n\n\t/**\n\t * Abstract Syntax Tree with human readable serialization.\n\t * Avoid direct instantiation. Use static factories instead.\n\t * @see https://github.com/nin-jin/tree.d\n\t */\n\texport class $mol_tree2 extends Object {\n\t\t\n\t\tconstructor(\n\n\t\t\t/** Type of structural node, `value` should be empty */\n\t\t\treadonly type : string,\n\t\t\t\n\t\t\t/** Content of data node, `type` should be empty */\n\t\t\treadonly value : string,\n\n\t\t\t/** Child nodes */\n\t\t\treadonly kids : readonly $mol_tree2[],\n\t\t\t\n\t\t\t/** Position in most far source resource */\n\t\t\treadonly span : $mol_span,\n\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis[ Symbol.toStringTag ] = type || '\\\\' + value\n\t\t}\n\n\t\t/** Makes collection node. */\n\t\tstatic list(\n\t\t\tkids : readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\t\t\treturn new $mol_tree2( '' , '' , kids , span )\n\t\t}\n\t\t\n\t\t/** Makes new derived collection node. */\n\t\tlist(\n\t\t\tkids : readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.list( kids , this.span )\n\t\t}\n\n\t\t/** Makes data node for any string. */\n\t\tstatic data(\n\t\t\tvalue : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\n\t\t\tconst chunks = value.split( '\\n' )\n\n\t\t\tif( chunks.length > 1 ) {\n\t\t\t\n\t\t\t\tlet kid_span = span.span( span.row , span.col , 0 )\n\n\t\t\t\tconst data = chunks.map( chunk => {\n\t\t\t\t\tkid_span = kid_span.after( chunk.length )\n\t\t\t\t\treturn new $mol_tree2( '' , chunk , [] , kid_span )\n\t\t\t\t} )\n\n\t\t\t\tkids = [ ... data , ... kids ]\n\n\t\t\t\tvalue = ''\n\n\t\t\t}\n\n\t\t\treturn new $mol_tree2( '' , value , kids , span )\n\n\t\t}\n\t\t\n\t\t/** Makes new derived data node. */\n\t\tdata(\n\t\t\tvalue : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.data( value , kids , this.span )\n\t\t}\n\t\t\n\t\t/** Makes struct node. */\n\t\tstatic struct(\n\t\t\ttype : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\n\t\t\tif( /[ \\n\\t\\\\]/.test( type ) ) {\n\t\t\t\t$$.$mol_fail( span.error( `Wrong type ${ JSON.stringify( type ) }` ) )\n\t\t\t}\n\n\t\t\treturn new $mol_tree2( type , '' , kids , span )\n\n\t\t}\n\t\t\n\t\t/** Makes new derived structural node. */\n\t\tstruct(\n\t\t\ttype : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.struct( type , kids , this.span )\n\t\t}\n\n\t\t/** Makes new derived node with different kids id defined. */\n\t\tclone( kids : readonly $mol_tree2[], span = this.span ) {\n\t\t\treturn new $mol_tree2( this.type , this.value , kids , span )\n\t\t}\n\n\t\t/** Returns multiline text content. */\n\t\ttext() {\n\n\t\t\tvar values : string[] = []\n\t\t\t\n\t\t\tfor( var kid of this.kids ) {\n\t\t\t\tif( kid.type ) continue\n\t\t\t\tvalues.push( kid.value )\n\t\t\t}\n\t\t\t\n\t\t\treturn this.value + values.join( '\\n' )\n\n\t\t}\n\t\t\n\t\t/** Parses tree format. */\n\t\t/** @deprecated Use $mol_tree2_from_string */\n\t\tstatic fromString( str : string , uri = 'unknown' ) {\n\t\t\treturn $$.$mol_tree2_from_string( str, uri )\n\t\t}\n\n\t\t/** Serializes to tree format. */\n\t\ttoString() : string {\n\t\t\treturn $$.$mol_tree2_to_string( this )\n\t\t}\n\t\t\n\t\t/** Makes new tree with node overrided by path. */\n\t\tinsert( value : $mol_tree2 | null , ...path : $mol_tree2_path ) : $mol_tree2 {\n\n\t\t\tif( path.length === 0 ) return value!\n\t\t\t\n\t\t\tconst type = path[0]\n\t\t\tif( typeof type === 'string' ) {\n\n\t\t\t\tlet replaced = false\n\t\t\t\tconst sub = this.kids.map( ( item , index )=> {\n\t\t\t\t\tif( item.type !== type ) return item\n\t\t\t\t\treplaced = true\n\t\t\t\t\treturn item.insert( value , ... path.slice( 1 ) )\n\t\t\t\t} ).filter( Boolean )\n\t\t\t\t\n\t\t\t\tif( !replaced && value ) {\n\t\t\t\t\tsub.push( this.struct( type , [] ).insert( value , ... path.slice( 1 ) ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn this.clone( sub )\n\n\t\t\t} else if( typeof type === 'number' ) {\n\t\t\t\t\n\t\t\t\tconst sub = this.kids.slice()\n\t\t\t\tsub[ type ] = ( sub[ type ] || this.list([]) )\n\t\t\t\t\t.insert( value , ... path.slice( 1 ) )\n\t\t\t\t\n\t\t\t\treturn this.clone( sub.filter( Boolean ) )\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tconst kids = ( ( this.kids.length === 0 ) ? [ this.list([]) ] : this.kids )\n\t\t\t\t.map( item => item.insert( value , ... path.slice( 1 ) ) )\n\t\t\t\t.filter( Boolean )\n\n\t\t\t\treturn this.clone( kids )\n\n\t\t\t}\n\n\t\t}\n\n\t\t/** Query nodes by path. */\n\t\tselect( ...path : $mol_tree2_path ) {\n\n\t\t\tlet next = [ this as $mol_tree2 ]\n\n\t\t\tfor( const type of path ) {\n\n\t\t\t\tif( !next.length ) break\n\t\t\t\t\n\t\t\t\tconst prev = next\n\t\t\t\tnext = []\n\n\t\t\t\tfor( var item of prev ) {\n\n\t\t\t\t\tswitch( typeof( type ) ) {\n\n\t\t\t\t\t\tcase 'string' :\n\n\t\t\t\t\t\t\tfor( var child of item.kids ) {\n\t\t\t\t\t\t\t\tif( child.type == type ) {\n\t\t\t\t\t\t\t\t\tnext.push( child )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\n\t\t\t\t\t\tcase 'number' :\n\n\t\t\t\t\t\t\tif( type < item.kids.length ) next.push( item.kids[ type ] )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\n\t\t\t\t\t\tdefault : next.push( ... item.kids )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.list( next )\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Filter kids by path or value. */\n\t\tfilter( path : string[] , value? : string ) {\n\n\t\t\tconst sub = this.kids.filter( item => {\n\t\t\t\t\t\n\t\t\t\tvar found = item.select( ...path )\n\t\t\t\t\n\t\t\t\tif( value === undefined ) {\n\t\t\t\t\treturn Boolean( found.kids.length )\n\t\t\t\t} else {\n\t\t\t\t\treturn found.kids.some( child => child.value == value )\n\t\t\t\t}\n\t\t\t\n\t\t\t} )\n\t\t\t\n\t\t\treturn this.clone( sub )\n\n\t\t}\n\n\t\t/** Transform tree through context with transformers */\n\t\thack< Context extends { span?: $mol_span; [ key: string ]: unknown } = {} >(\n\t\t\tbelt: $mol_tree2_belt< Context >,\n\t\t\tcontext = {} as Context,\n\t\t) {\n\t\t\t\n\t\t\treturn ( [] as readonly $mol_tree2[] ).concat( ... this.kids.map( child => {\n\n\t\t\t\tlet handle = belt[ child.type ] || belt[ '' ]\n\t\t\t\t\n\t\t\t\tif( !handle || handle === Object.prototype[ child.type ] ) {\n\t\t\t\t\thandle = ( input, belt, context )=> [\n\t\t\t\t\t\tinput.clone( input.hack( belt, context ), context.span )\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\treturn handle( child , belt , context! )\n\t\t\t\t} catch( error: any ) {\n\t\t\t\t\terror.message += `\\n${ child.clone([]) }${ child.span }`\n\t\t\t\t\t$mol_fail_hidden( error )\n\t\t\t\t}\n\n\t\t\t} ) )\n\n\t\t}\n\n\t\t/** Makes Error with node coordinates. */\n\t\terror( message : string , Class = Error ) {\n\t\t\treturn this.span.error( `${ message }\\n${ this.clone([]) }` , Class )\n\t\t}\n\n\t}\n\n\texport class $mol_tree2_empty extends $mol_tree2 {\n\t\tconstructor() {\n\t\t\tsuper( '' , '' , [] , $mol_span.unknown )\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_tree2_from_json( json: any, span = $mol_span.unknown ): $mol_tree2 {\n\n\t\tif( typeof json === 'boolean' || typeof json === 'number' || json === null ) {\n\t\t\treturn new $mol_tree2( String( json ) , '' , [] , span )\n\t\t}\n\t\t\n\t\tif( typeof json === 'string' ) {\n\t\t\treturn $mol_tree2.data( json , [], span )\n\t\t}\n\n\t\tif( Array.isArray( json ) ) {\n\t\t\tconst sub = json.map( json => $mol_tree2_from_json( json , span ) )\n\t\t\treturn new $mol_tree2( '/' , '', sub, span )\n\t\t}\n\t\t\t\n\t\tif( json instanceof Date ) {\n\t\t\treturn new $mol_tree2( '', json.toISOString() , [] , span )\n\t\t}\n\n\t\tif( typeof json.toJSON === 'function' ) {\n\t\t\treturn $mol_tree2_from_json( json.toJSON() )\n\t\t}\n\n\t\tif( json instanceof Error ) {\n\t\t\tconst { name , message , stack } = json\n\t\t\tjson = { ... json, name, message, stack }\n\t\t}\n\n\t\tconst sub = [] as $mol_tree2[]\n\t\t\n\t\tfor( var key in json ) {\n\n\t\t\tconst val = json[ key ]\n\n\t\t\tif( val === undefined ) continue\n\n\t\t\tconst subsub = $mol_tree2_from_json( val, span )\n\t\t\t\n\t\t\tif( /^[^\\n\\t\\\\ ]+$/.test( key ) ) {\n\t\t\t\tsub.push( new $mol_tree2( key, '', [ subsub ], span ) )\n\t\t\t} else {\n\t\t\t\tsub.push( $mol_tree2.data( key, [ subsub ], span ) )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\treturn new $mol_tree2( '*' , '', sub , span )\n\t\t\t\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_tree2_js_to_text( this: $, js: $mol_tree2 ) {\n\n\t\tfunction sequence( open?: string, separator?: string, close?: string ) {\n\t\t\treturn ( input: $mol_tree2, belt: $mol_tree2_belt< never > )=> [\n\t\t\t\t... open ? [ input.data( open ) ] : [],\n\t\t\t\tinput.struct( separator && input.kids.length > 2 ? 'indent' : 'line',\n\t\t\t\t\t( [] as $mol_tree2[] ).concat(\n\t\t\t\t\t\t... input.kids.map( ( kid, index ) => [\n\t\t\t\t\t\t\tkid.struct( 'line', [\n\t\t\t\t\t\t\t\t... kid.list([ kid ]).hack( belt ),\n\t\t\t\t\t\t\t\t... ( separator && index < input.kids.length - 1 ) ? [ input.data( separator ) ] : [],\n\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t] ),\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t\t... close ? [ input.data( close ) ] : [],\n\t\t\t]\n\t\t}\n\n\t\tfunction duplet( open?: string, separator?: string, close?: string ) {\n\t\t\treturn ( input: $mol_tree2, belt: $mol_tree2_belt< never > )=> [\n\t\t\t\t... open ? [ input.data( open ) ] : [],\n\t\t\t\t... input.list( input.kids.slice( 0, 1 ) ).hack( belt ),\n\t\t\t\t... ( separator && input.kids.length > 1 ) ? [ input.data( separator ) ] : [],\n\t\t\t\t... input.list( input.kids.slice( 1, 2 ) ).hack( belt ),\n\t\t\t\t... close ? [ input.data( close ) ] : [],\n\t\t\t]\n\t\t}\n\n\t\tfunction triplet( open?: string, separator12?: string, separator23?: string, close?: string ) {\n\t\t\treturn ( input: $mol_tree2, belt: $mol_tree2_belt< never > )=> [\n\t\t\t\t... open ? [ input.data( open ) ] : [],\n\t\t\t\t... input.list( input.kids.slice( 0, 1 ) ).hack( belt ),\n\t\t\t\t... ( separator12 && input.kids.length > 1 ) ? [ input.data( separator12 ) ] : [],\n\t\t\t\t... input.list( input.kids.slice( 1, 2 ) ).hack( belt ),\n\t\t\t\t... ( separator23 && input.kids.length > 2 ) ? [ input.data( separator23 ) ] : [],\n\t\t\t\t... input.list( input.kids.slice( 2, 3 ) ).hack( belt ),\n\t\t\t\t... close ? [ input.data( close ) ] : [],\n\t\t\t]\n\t\t}\n\n\t\treturn js.list([ js.struct( 'line', js.hack({\n\n\t\t\t'+': sequence( '+' ),\n\t\t\t'-': sequence( '-' ),\n\t\t\t'!': sequence( '!' ),\n\t\t\t'~': sequence( '~' ),\n\n\t\t\t'return': sequence( 'return ' ),\n\t\t\t'break': sequence( 'break ' ),\n\t\t\t'continue': sequence( 'continue ' ),\n\t\t\t'yield': sequence( 'yield ' ),\n\t\t\t'yield*': sequence( 'yield* ' ),\n\t\t\t'await': sequence( 'await ' ),\n\t\t\t'void': sequence( 'void ' ),\n\t\t\t'delete': sequence( 'delete ' ),\n\t\t\t'typeof': sequence( 'typeof ' ),\n\t\t\t'new': sequence( 'new ' ),\n\t\t\t'...': sequence( '...' ),\n\n\t\t\t'@++': sequence( '', '', '++' ),\n\t\t\t'@--': sequence( '', '', '--' ),\n\t\t\t\n\t\t\t'(in)': sequence( '(', ' in ', ')' ),\n\t\t\t'(instanceof)': sequence( '(', ' instanceof ', ')' ),\n\n\t\t\t'(+)': sequence( '(', ' + ', ')' ),\n\t\t\t'(-)': sequence( '(', ' - ', ')' ),\n\t\t\t'(*)': sequence( '(', ' * ', ')' ),\n\t\t\t'(/)': sequence( '(', ' / ', ')' ),\n\t\t\t'(%)': sequence( '(', ' % ', ')' ),\n\t\t\t'(**)': sequence( '(', ' ** ', ')' ),\n\t\t\t\n\t\t\t'(<)': sequence( '(', ' < ', ')' ),\n\t\t\t'(<=)': sequence( '(', ' <= ', ')' ),\n\t\t\t'(>)': sequence( '(', ' > ', ')' ),\n\t\t\t'(>=)': sequence( '(', ' >= ', ')' ),\n\t\t\t'(==)': sequence( '(', ' == ', ')' ),\n\t\t\t'(!=)': sequence( '(', ' != ', ')' ),\n\t\t\t'(===)': sequence( '(', ' === ', ')' ),\n\t\t\t'(!==)': sequence( '(', ' !== ', ')' ),\n\t\t\t\n\t\t\t'(<<)': sequence( '(', ' << ', ')' ),\n\t\t\t'(>>)': sequence( '(', ' >> ', ')' ),\n\t\t\t'(>>>)': sequence( '(', ' >>> ', ')' ),\n\t\t\t'(&)': sequence( '(', ' & ', ')' ),\n\t\t\t'(|)': sequence( '(', ' | ', ')' ),\n\t\t\t'(^)': sequence( '(', ' ^ ', ')' ),\n\t\t\t\n\t\t\t'(&&)': sequence( '(', ' && ', ')' ),\n\t\t\t'(||)': sequence( '(', ' || ', ')' ),\n\t\t\t'(,)': sequence( '(', ', ', ')' ),\n\t\t\t'{;}': sequence( '{', '; ', '}' ),\n\t\t\t';': sequence( '', ';', '' ),\n\t\t\t'[,]': sequence( '[', ', ', ']' ),\n\t\t\t'{,}': sequence( '{', ', ', '}' ),\n\n\t\t\t'()': sequence( '(', '', ')' ),\n\t\t\t'{}': sequence( '{', '', '}' ),\n\t\t\t\n\t\t\t'[]': ( input, belt )=> {\n\t\t\t\tconst first = input.kids[0]\n\t\t\t\tif( first.type ) return sequence( '[', '', ']' )( input, belt )\n\t\t\t\telse return [ input.data( '.' + first.text() ) ]\n\t\t\t},\n\t\t\t\n\t\t\t':': ( input, belt )=> {\n\t\t\t\tconst first = input.kids[0]\n\t\t\t\tif( first.type ) return duplet( '[', ']: ' )( input, belt )\n\t\t\t\telse return duplet( '', ': ' )( input, belt )\n\t\t\t},\n\t\t\t\n\t\t\t'let': duplet( 'let ', ' = ' ),\n\t\t\t'const': duplet( 'const ', ' = ' ),\n\t\t\t'var': duplet( 'var ', ' = ' ),\n\n\t\t\t'=': duplet( '', ' = ' ),\n\t\t\t'+=': duplet( '', ' += ' ),\n\t\t\t'-=': duplet( '', ' -= ' ),\n\t\t\t'*=': duplet( '', ' *= ' ),\n\t\t\t'/=': duplet( '', ' /= ' ),\n\t\t\t'%=': duplet( '', ' %= ' ),\n\t\t\t'**=': duplet( '', ' **= ' ),\n\t\t\t'<<=': duplet( '', ' <<= ' ),\n\t\t\t'>>=': duplet( '', ' >>= ' ),\n\t\t\t'>>>=': duplet( '', ' >>>= ' ),\n\t\t\t'&=': duplet( '', ' &= ' ),\n\t\t\t'|=': duplet( '', ' |= ' ),\n\t\t\t'^=': duplet( '', ' ^= ' ),\n\t\t\t'&&=': duplet( '', ' &&= ' ),\n\t\t\t'||=': duplet( '', ' ||= ' ),\n\n\t\t\t'=>': duplet( '', ' => ' ),\n\t\t\t'async=>': duplet( 'async ', ' => ' ),\n\t\t\t'function': triplet( 'function ' ),\n\t\t\t'function*': triplet( 'function* ' ),\n\t\t\t'async': triplet( 'async function ' ),\n\t\t\t'async*': triplet( 'async function* ' ),\n\n\t\t\t'class': triplet( 'class ', ' ' ),\n\t\t\t'extends': sequence( 'extends ', '', ' ' ),\n\n\t\t\t'if': triplet( 'if', ' ', 'else' ),\n\t\t\t'?:': triplet( '', ' ? ', ' : ' ),\n\n\t\t\t'.': ( input, belt )=> {\n\t\t\t\tconst first = input.kids[0]\n\t\t\t\tif( first.type ) return triplet( '[', ']' )( input, belt )\n\t\t\t\telse return [\n\t\t\t\t\tinput.data( first.text() ),\n\t\t\t\t\t... input.list( input.kids.slice(1) ).hack( belt ),\n\t\t\t\t]\n\t\t\t},\n\n\t\t\t'get': triplet( 'get [', ']' ),\n\t\t\t'set': triplet( 'set [', ']' ),\n\t\t\t'static': triplet( 'static [', ']' ),\n\t\t\t\n\t\t\t'/./': sequence(),\n\t\t\t'.global': sequence( 'g' ),\n\t\t\t'.multiline': sequence( 'm' ),\n\t\t\t'.ignoreCase': sequence( 'i' ),\n\t\t\t'.source': ( input, belt )=> [\n\t\t\t\tinput.data( '/' ),\n\t\t\t\tinput.data( JSON.stringify( input.text() ).slice( 1, -1 ) ),\n\t\t\t\tinput.data( '/' ),\n\t\t\t],\n\n\t\t\t'``': ( input, belt )=> {\n\t\t\t\treturn [\n\t\t\t\t\tinput.data( '`' ),\n\t\t\t\t\t... ( [] as $mol_tree2[] ).concat( ... input.kids.map( kid => {\n\t\t\t\t\t\tif( kid.type ) {\n\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\tkid.data( '${' ),\n\t\t\t\t\t\t\t\t... kid.list([ kid ]).hack( belt ),\n\t\t\t\t\t\t\t\tkid.data( '}' ),\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\tinput.data( JSON.stringify( kid.text() ).slice( 1, -1 ) ),\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) ),\n\t\t\t\t\tinput.data( '`' ),\n\t\t\t\t]\n\t\t\t},\n\n\t\t\t'': ( input, belt )=> {\n\n\t\t\t\t// string\n\t\t\t\tif( !input.type ) return [\n\t\t\t\t\tinput.data( JSON.stringify( input.text() ) ),\n\t\t\t\t]\n\t\t\t\t\n\t\t\t\t// variable\n\t\t\t\tif( /^[\\w$#][\\w0-9$]*$/i.test( input.type ) ) return [\n\t\t\t\t\tinput.data( input.type ),\n\t\t\t\t\t// ... input.hack( context ),\n\t\t\t\t]\n\t\t\t\t\n\t\t\t\t// number\n\t\t\t\tif( input.type === 'NaN' || !Number.isNaN( Number( input.type ) ) ) return [\n\t\t\t\t\tinput.data( input.type )\n\t\t\t\t]\n\n\t\t\t\t$mol_fail( new SyntaxError( `Wrong node type` ) )\n\n\t\t\t},\n\n\t\t}) ) ])\n\n\t}\n\n}\n","namespace $ {\n\texport function $mol_tree2_span_imprint( tree: $mol_tree2 ) {\n\n\t\tconst sources = new Map< string, $mol_tree2 >()\n\n\t\tconst res = tree.clone( tree.hack({\n\t\t\t'': ( input, belt )=> {\n\n\t\t\t\tif( !sources.has( input.span.uri ) ) {\n\t\t\t\t\tsources.set( input.span.uri,\n\t\t\t\t\t\ttree.struct( input.span.uri, [\n\t\t\t\t\t\t\ttree.data( input.span.source )\n\t\t\t\t\t\t] ),\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\tinput.clone([\n\t\t\t\t\t\tinput.data( input.span.toString() ),\n\t\t\t\t\t\t... input.hack( belt ),\n\t\t\t\t\t]),\n\t\t\t\t]\n\n\t\t\t},\n\t\t}) )\n\n\t\treturn tree.clone([\n\t\t\t... sources.values(),\n\t\t\tres,\n\t\t])\n\n\t}\n}\n","namespace $ {\n\texport function $mol_tree2_span_reuse( tree: $mol_tree2 ) {\n\t\t\n\t\tconst sources = new Map< string, string >()\n\n\t\treturn tree.clone(\n\t\t\ttree.hack({\n\t\t\t\t'': ( input, belt )=> {\n\n\t\t\t\t\tif( input.type ) {\n\t\t\t\t\t\tsources.set( input.type, input.kids[0].text() )\n\t\t\t\t\t\treturn []\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\treturn input.hack({\n\t\t\t\t\t\t'': ( input, belt )=> {\n\t\t\t\t\t\t\tconst kids = input.list( input.kids.slice(1) ).hack( belt )\n\t\t\t\t\t\t\tconst [ _, uri, row, col, length ] = /^(.*)#(\\d+):(\\d+)\\/(\\d+)$/.exec( input.kids[0].text() )!\n\t\t\t\t\t\t\tconst span = new $mol_span( uri, sources.get( uri )!, Number( row ), Number( col ), Number( length ) )\n\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\tnew $mol_tree2( input.type , input.value , kids, span ),\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\n\t\t\t\t},\n\t\t\t}),\n\t\t)\n\n\t}\n}\n","namespace $ {\n\n\texport function $mol_tree2_text_to_string( this: $, text: $mol_tree2 ) {\n\n\t\tlet res = ''\n\t\t\n\t\tfunction visit( text: $mol_tree2, prefix: string, inline: boolean ) {\n\n\t\t\tif( text.type === 'indent' ) {\n\n\t\t\t\tif( inline ) res += '\\n'\n\t\t\t\t\n\t\t\t\tfor( let kid of text.kids ) {\n\t\t\t\t\tvisit( kid, prefix + '\\t', false )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( inline ) res += prefix\n\n\t\t\t} else if( text.type === 'line' ) {\n\t\t\t\t\n\t\t\t\tif( !inline ) res += prefix\n\t\t\t\t\n\t\t\t\tfor( let kid of text.kids ) {\n\t\t\t\t\tvisit( kid, prefix, true )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( !inline ) res += '\\n'\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tif( !inline ) res += prefix\n\t\t\t\t\n\t\t\t\tres += text.text()\n\t\t\t\t\n\t\t\t\tif( !inline ) res += '\\n'\n\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tfor( let kid of text.kids ) {\n\t\t\tvisit( kid, '', false )\n\t\t}\n\t\t\n\t\treturn res\n\t}\n\n}\n","namespace $ {\n\n\tconst alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\n\n\texport function $mol_vlq_encode( val: number ): string {\n\n\t\tconst sign = val < 0 ? 1 : 0\n\t\tif( sign ) val = -val\n\n\t\tlet index = sign | ( ( val & 0b1111 ) << 1 )\n\t\tval >>>= 4\n\t\t\n\t\tlet res = ''\n\n\t\twhile( val ) {\n\n\t\t\tindex |= 1 << 5\n\t\t\tres += alphabet[ index ]\n\t\t\t\n\t\t\tif( !val ) break\n\t\t\t\n\t\t\tindex = val & 0b11111\n\t\t\tval >>>= 5\n\t\t\t\n\t\t}\n\n\t\tres += alphabet[ index ]\n\n\t\treturn res\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_tree2_text_to_sourcemap( this: $, tree: $mol_tree2 ) {\n\n\t\tlet col = 1\n\t\tlet prev_span: $mol_span | undefined\n\t\tlet prev_index = 0\n\t\tlet prev_col = 1\n\t\tlet mappings = ''\n\t\tlet line = [] as string[]\n\n\t\tconst file_indexes = new Map< string, number >()\n\t\tconst file_sources = new Map< string, string >()\n\n\t\tfunction span2index( span: $mol_span ) {\n\t\t\tif( file_indexes.has( span.uri ) ) return file_indexes.get( span.uri )!\n\t\t\tconst index = file_indexes.size\n\t\t\tfile_indexes.set( span.uri, index )\n\t\t\tfile_sources.set( span.uri, span.source )\n\t\t\treturn index\n\t\t}\n\t\t\n\t\tfunction next_line() {\n\t\t\tif( !line.length ) return\n\t\t\tmappings += line.join(',') + ';'\n\t\t\tline = []\n\t\t\tcol = 1\n\t\t\tprev_col = 1\n\t\t}\n\t\t\n\t\tfunction visit( text: $mol_tree2, prefix: number, inline: boolean ) {\n\n\t\t\tfunction indent() {\n\t\t\t\tcol += prefix\n\t\t\t}\n\t\n\t\t\tif( inline && text.type === 'indent' ) next_line()\n\t\t\t\n\t\t\tif( prev_span !== text.span || col === 1 ) {\n\n\t\t\t\tconst index = span2index( text.span )\n\t\t\t\t\n\t\t\t\tline.push(\n\t\t\t\t\t$mol_vlq_encode( col - prev_col ) + \n\t\t\t\t\t$mol_vlq_encode( index - prev_index ) +\n\t\t\t\t\t$mol_vlq_encode( text.span.row - ( prev_span?.row ?? 1 ) ) +\n\t\t\t\t\t$mol_vlq_encode( text.span.col - ( prev_span?.col ?? 1 ) )\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tprev_col = col\n\t\t\t\tprev_span = text.span\n\t\t\t\tprev_index = index\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( text.type === 'indent' ) {\n\n\t\t\t\tfor( let kid of text.kids ) {\n\t\t\t\t\tvisit( kid, prefix + 1, false )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( inline ) indent()\n\n\t\t\t} else if( text.type === 'line' ) {\n\t\t\t\t\n\t\t\t\tif( !inline ) indent()\n\t\t\t\t\n\t\t\t\tfor( let kid of text.kids ) {\n\t\t\t\t\tvisit( kid, prefix, true )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( !inline ) next_line()\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tif( !inline ) indent()\n\t\t\t\t\n\t\t\t\tcol += text.text().length\n\t\t\t\t\n\t\t\t\tif( !inline ) next_line()\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\tfor( let kid of tree.kids ) {\n\t\t\tvisit( kid, 0, false )\n\t\t}\n\t\tnext_line()\n\t\t\n\t\tconst map = {\n\t\t\tversion: 3,\n\t\t\tsources: [ ... file_sources.keys() ],\n\t\t\tsourcesContent: [ ... file_sources.values() ],\n\t\t\tmappings,\n\t\t}\n\n\t\treturn map\n\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_tree2_text_to_string_mapped( this: $, text: $mol_tree2, type: 'js' | 'css' ) {\n\t\t\n\t\tconst code = this.$mol_tree2_text_to_string( text )\n\t\tconst map = this.$mol_tree2_text_to_sourcemap( text )\n\t\tmap.mappings = ';;' + map.mappings\n\t\t\n\t\tlet res = code\n\t\t\n\t\tconst map_uri = `data:application/json,${ this.encodeURIComponent( JSON.stringify( map ) ) }`\n\t\t\n\t\tif( type === 'js' ) res += `\\n//# sourceMappingURL=${ map_uri }`\n\t\telse res += `\\n/*# sourceMappingURL=${ map_uri } */`\n\t\t\n\t\treturn res\n\n\t}\n\n\texport function $mol_tree2_text_to_string_mapped_js( this: $, text: $mol_tree2 ) {\n\t\treturn this.$mol_tree2_text_to_string_mapped( text, 'js' )\n\t}\n\t\n\texport function $mol_tree2_text_to_string_mapped_css( this: $, text: $mol_tree2 ) {\n\t\treturn this.$mol_tree2_text_to_string_mapped( text, 'css' )\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_tree2_text_to_sourcemap_vis( this: $, text: $mol_tree2 ) {\n\t\t\n\t\tconst code = this.$mol_tree2_text_to_string( text )\n\t\tconst map = this.$mol_tree2_text_to_sourcemap( text )\n\t\t\n\t\tconst uri = [\n\t\t\t'https://sokra.github.io/source-map-visualization/#base64',\n\t\t\tbtoa( code ),\n\t\t\tbtoa( JSON.stringify( map ) ),\n\t\t\t... map.sourcesContent.map( btoa ),\n\t\t].join( ',' )\n\n\t\treturn uri\n\n\t}\n\n}\n","namespace $ {\n\t\n\t/** Makes JSON from json.tree. */\n\texport function $mol_tree2_to_json(\n\t\tthis: $,\n\t\ttree: $mol_tree2,\n\t): unknown {\n\n\t\tif( !tree.type ) return tree.text()\n\t\t\n\t\tif( tree.type === '-' ) return undefined\n\t\tif( tree.type === 'true' ) return true\n\t\tif( tree.type === 'false' ) return false\n\t\tif( tree.type === 'null' ) return null\n\t\t\n\t\tif( tree.type === '*' ) {\n\t\t\t\n\t\t\tconst obj = {} as Record< string, unknown >\n\t\t\t\n\t\t\tfor( const kid of tree.kids ) {\n\t\t\t\tif( kid.type === '-' ) continue\n\t\t\t\t\n\t\t\t\tconst key = kid.type || kid.clone( kid.kids.slice( 0, -1 ) ).text()\n\t\t\t\tconst val = this.$mol_tree2_to_json( kid.kids[ kid.kids.length - 1 ] )\n\t\t\t\t\n\t\t\t\tif( val !== undefined ) obj[ key ] = val\n\t\t\t}\n\t\t\t\n\t\t\treturn obj\n\t\t}\n\t\t\n\t\tif( tree.type === '/' ) {\n\t\t\t\n\t\t\tconst res = [] as unknown[]\n\t\t\t\n\t\t\tfor( const kid of tree.kids ) {\n\t\t\t\tif( kid.type === '-' ) continue\n\t\t\t\t\n\t\t\t\tvar val = this.$mol_tree2_to_json( kid )\n\t\t\t\tif( val !== undefined ) res.push( val )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn res\n\t\t}\n\t\t\n\t\tconst numb = Number( tree.type ) \n\t\tif( !Number.isNaN( numb ) || tree.type === 'NaN' ) return numb\n\t\t\n\t\tthis.$mol_fail( new Error( `Unknown json type (${tree.type}) at ${tree.span}` ) )\n\t}\n\n}\n","namespace $ {\n\t\n\texport async function $mol_tree2_to_stream(\n\t\ttree: $mol_tree2,\n\t\toutput: {\n\t\t\twrite( chunk: string ): boolean\n\t\t\tonce?( event: 'drain', cb: ()=> void ): void\n\t\t},\n\t\tprefix = '',\n\t) {\n\n\t\tconst pause = ()=> {\n\t\t\treturn new Promise( done => {\n\t\t\t\toutput.once!( 'drain', ()=> done( null ) )\n\t\t\t} )\n\t\t}\n\n\t\tlet out = ''\n\n\t\tif( tree.type.length ) {\n\t\t\t\n\t\t\tif( !prefix.length ) {\n\t\t\t\tprefix = \"\\t\";\n\t\t\t}\n\n\t\t\tout += tree.type\n\n\t\t\tif( tree.kids.length == 1 ) {\n\t\t\t\toutput.write( out + ' ' )\n\t\t\t\tawait $mol_tree2_to_stream( tree.kids[ 0 ], output, prefix )\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tout += \"\\n\"\n\n\t\t} else if( tree.value.length || prefix.length ) {\n\n\t\t\tout += \"\\\\\" + tree.value + \"\\n\"\n\n\t\t}\n\n\t\toutput.write( out )\n\n\t\tfor( const kid of tree.kids ) {\n\t\t\tif( !output.write( prefix ) ) await pause()\n\t\t\tawait $mol_tree2_to_stream( kid, output, prefix + \"\\t\" )\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_tree2_xml_from_dom( dom: Node ): $mol_tree2 {\n\t\t\n\t\tswitch( dom.nodeType ) {\n\t\t\t\n\t\t\tcase dom.DOCUMENT_NODE: {\n\t\t\t\tlet kids = [] as $mol_tree2[]\n\t\t\t\t\n\t\t\t\tfor( const kid of dom.childNodes ) {\n\t\t\t\t\tkids.push( $mol_tree2_xml_from_dom( kid ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn $mol_tree2.list( kids )\n\t\t\t}\n\t\t\t\n\t\t\tcase dom.PROCESSING_INSTRUCTION_NODE: {\n\t\t\t\treturn $mol_tree2.struct( '?', [\n\t\t\t\t\t$mol_tree2.struct( dom.nodeName, \n\t\t\t\t\t\tdom.nodeValue!.split(' ').map( chunk => {\n\t\t\t\t\t\t\tconst [, name, value ] = /^(.*?)(?:=\"(.*?)\")?$/.exec( chunk )!\n\t\t\t\t\t\t\tconst kids = value ? [ $mol_tree2.data( value ) ] : []\n\t\t\t\t\t\t\treturn $mol_tree2.struct( name, kids )\n\t\t\t\t\t\t} )\n\t\t\t\t\t)\n\t\t\t\t] )\n\t\t\t}\n\t\t\t\n\t\t\tcase dom.DOCUMENT_TYPE_NODE: {\n\t\t\t\tconst dom2 = dom as DocumentType\n\t\t\t\treturn $mol_tree2.struct( '!', [\n\t\t\t\t\t$mol_tree2.struct( 'DOCTYPE', [ \n\t\t\t\t\t\t$mol_tree2.struct( dom2.name )\n\t\t\t\t\t] )\n\t\t\t\t] )\n\t\t\t}\n\t\t\t\n\t\t\tcase dom.ELEMENT_NODE: {\n\t\t\t\tlet kids = [] as $mol_tree2[]\n\t\t\t\t\n\t\t\t\tfor( const attr of ( dom as Element ).attributes ) {\n\t\t\t\t\tkids.push(\n\t\t\t\t\t\t$mol_tree2.struct( '@', [\n\t\t\t\t\t\t\t$mol_tree2.struct( attr.nodeName, [\n\t\t\t\t\t\t\t\t$mol_tree2.data( attr.nodeValue! )\n\t\t\t\t\t\t\t] )\n\t\t\t\t\t\t] )\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfor( const kid of dom.childNodes ) {\n\t\t\t\t\tconst k = $mol_tree2_xml_from_dom( kid ) \n\t\t\t\t\tif( k.type || k.value ) kids.push( k )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn $mol_tree2.struct( dom.nodeName, kids )\n\t\t\t}\n\t\t\t\n\t\t\tcase dom.COMMENT_NODE: {\n\t\t\t\treturn $mol_tree2.struct( '--', [\n\t\t\t\t\t$mol_tree2.data( dom.nodeValue! )\n\t\t\t\t] )\n\t\t\t}\n\t\t\t\n\t\t\tcase dom.TEXT_NODE: {\n\t\t\t\tif( !dom.nodeValue!.trim() ) return $mol_tree2.list([])\n\t\t\t\treturn $mol_tree2.data(\n\t\t\t\t\tdom.nodeValue!.replace( /\\s+/g, ' ' )\n\t\t\t\t)\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\treturn $mol_fail( new Error( `Unsupported node ${ dom.nodeName }` ) )\n\t}\n\t\n}\n","namespace $ {\n\t\n\tconst mapping = {\n\t\t'<' : '<' ,\n\t\t'>' : '>' ,\n\t\t'\"' : '"' ,\n\t\t'&' : '&' ,\n\t}\n\t\n\texport function $mol_html_encode( text : string ) {\n\t\treturn text.replace( /[&<\">]/gi , str => mapping[ str ] )\n\t}\n\t\n}\n","namespace $ {\n\n\tfunction attrs_belt( separator : string ) : Record< string, $mol_tree2_hack<never> > {\n\t\treturn {\n\n\t\t\t'': ( input )=> [\n\t\t\t\tinput.data( ' ' ),\n\t\t\t\tinput.data( $mol_html_encode( input.type ) ),\n\t\t\t\t... input.value ? [\n\t\t\t\t\tinput.data( '\"' ),\n\t\t\t\t\tinput.data( $mol_html_encode( input.value ) ),\n\t\t\t\t\tinput.data( '\"' ),\n\t\t\t\t] : [],\n\t\t\t\t... input.hack({\n\n\t\t\t\t\t'': ( input )=> {\n\n\t\t\t\t\t\tif( !input.type ) return [\n\t\t\t\t\t\t\tinput.data( separator ),\n\t\t\t\t\t\t\tinput.data( '\"' ),\n\t\t\t\t\t\t\tinput.data( $mol_html_encode( input.text() ) ),\n\t\t\t\t\t\t\tinput.data( '\"' ),\n\t\t\t\t\t\t]\n\n\t\t\t\t\t\t$mol_fail( new SyntaxError( 'Wrong attribute value' ) )\n\n\t\t\t\t\t},\n\n\t\t\t\t}),\n\t\t\t],\n\n\t\t}\n\t}\n\t\n\texport function $mol_tree2_xml_to_text( xml: $mol_tree2 ) {\n\t\treturn xml.list(\n\t\t\txml.hack({\n\n\t\t\t\t'@': ( input, belt )=> [],\n\n\t\t\t\t'--': ( input, belt )=> [\n\t\t\t\t\txml.struct( 'line', [\n\t\t\t\t\t\tinput.data( '<!-- ' ),\n\t\t\t\t\t\t... input.hack( belt ),\n\t\t\t\t\t\tinput.data( ' -->' ),\n\t\t\t\t\t] ),\n\t\t\t\t],\n\n\t\t\t\t'?': ( input, belt )=> [\n\t\t\t\t\txml.struct( 'line', [\n\t\t\t\t\t\tinput.data( '<?' ),\n\t\t\t\t\t\tinput.kids[0].data( input.kids[0].type ),\n\t\t\t\t\t\t... input.kids[0].hack( attrs_belt( '=' ) ),\n\t\t\t\t\t\tinput.data( '?>' ),\n\t\t\t\t\t] ),\n\t\t\t\t],\n\n\t\t\t\t'!': ( input, belt )=> [\n\t\t\t\t\txml.struct( 'line', [\n\t\t\t\t\t\tinput.data( '<!' ),\n\t\t\t\t\t\tinput.kids[0].data( input.kids[0].type ),\n\t\t\t\t\t\t... input.kids[0].hack( attrs_belt( ' ' ) ),\n\t\t\t\t\t\tinput.data( '>' ),\n\t\t\t\t\t] ),\n\t\t\t\t],\n\n\t\t\t\t'': ( input, belt )=> {\n\n\t\t\t\t\tif( !input.type ) return [\n\t\t\t\t\t\tinput.data( $mol_html_encode( input.text() ) ),\n\t\t\t\t\t]\n\n\t\t\t\t\tconst attrs = input.select( '@', null ).hack( attrs_belt( '=' ) )\n\t\t\t\t\tconst content = input.hack( belt )\n\t\t\t\t\t\n\t\t\t\t\treturn [\n\t\t\t\t\t\tinput.struct( 'line', [\n\t\t\t\t\t\t\tinput.data( `<` ),\n\t\t\t\t\t\t\tinput.data( input.type ),\n\t\t\t\t\t\t\t... attrs,\n\t\t\t\t\t\t\t... content.length ? [\n\t\t\t\t\t\t\t\tinput.data( `>` ),\n\t\t\t\t\t\t\t\tinput.struct( 'indent', content ),\n\t\t\t\t\t\t\t\tinput.data( `</` ),\n\t\t\t\t\t\t\t\tinput.data( input.type ),\n\t\t\t\t\t\t\t\tinput.data( `>` ),\n\t\t\t\t\t\t\t] : [\n\t\t\t\t\t\t\t\tinput.data( ` />` ),\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t] ),\n\t\t\t\t\t]\n\n\t\t\t\t},\n\n\t\t\t}),\n\t\t)\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_test_complete() {\n\t\tprocess.exit(0)\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_test( set : { [ name : string ] : string | ( ( context : $ )=> void ) } ) {\n\t\t\n\t\tfor( let name in set ) {\n\n\t\t\tconst code = set[ name ]\n\t\t\tconst test = ( typeof code === 'string' ) ? new Function( '' , code ) as ()=> void : code\n\t\t\t\n\t\t\t$mol_test_all.push( test )\n\t\t}\n\n\t\t$mol_test_schedule()\n\t}\n\n\texport let $mol_test_mocks = [] as Array< ( context : $ )=> void >\n\n\texport const $mol_test_all = [] as Array< ( context : $ )=> any >\n\n\texport async function $mol_test_run() {\n\n\t\tfor( var test of $mol_test_all ) {\n\n\t\t\tlet context = Object.create( $$ )\n\t\t\tfor( let mock of $mol_test_mocks ) await mock( context )\n\t\t\t\n\t\t\tconst res = test( context )\n\t\t\tif( res instanceof Promise ) {\n\t\t\t\tawait new Promise( ( done, fail )=> {\n\t\t\t\t\tres.then( done, fail )\n\t\t\t\t\tsetTimeout( ()=> fail( new Error( 'Test timeout: ' + test.name ) ), 1000 )\n\t\t\t\t} )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t$$.$mol_log3_done({\n\t\t\tplace: '$mol_test',\n\t\t\tmessage: 'All tests passed',\n\t\t\tcount: $mol_test_all.length,\n\t\t})\n\t\t\n\t}\n\t\n\tlet scheduled = false\n\texport function $mol_test_schedule() {\n\n\t\tif( scheduled ) return\n\t\tscheduled = true\n\n\t\tsetTimeout( async ()=> {\n\t\t\t\n\t\t\tscheduled = false\n \t\t\t\n\t\t\tawait $mol_test_run()\n\t\t\t$$.$mol_test_complete()\n\t\t\t\n\t\t} , 0 )\n\t\t\n\t}\n\n\t$mol_test_mocks.push( context => {\n\t\tlet seed = 0\n\n\t\tcontext.Math = Object.create( Math )\n\t\tcontext.Math.random = ()=> Math.sin( seed++ )\n\n\t\tconst forbidden = [ 'XMLHttpRequest' , 'fetch' ]\n\n\t\tfor( let api of forbidden ) {\n\t\t\tcontext[ api ] = new Proxy( function(){} , {\n\t\t\t\tget() {\n\t\t\t\t\t$mol_fail_hidden( new Error( `${ api } is forbidden in tests` ) )\n\t\t\t\t} ,\n\t\t\t\tapply() {\n\t\t\t\t\t$mol_fail_hidden( new Error( `${ api } is forbidden in tests` ) )\n\t\t\t\t} ,\n\t\t\t} )\n\t\t}\n\t\t\n\t} )\n\n\t$mol_test({\n\n\t\t'mocked Math.random'( $ ) {\n\t\t\tconsole.assert( $.Math.random() === 0 )\n\t\t\tconsole.assert( $.Math.random() === Math.sin(1) )\n\t\t} ,\n\n\t\t'forbidden XMLHttpRequest'( $ ) {\n\t\t\ttry {\n\t\t\t\tconsole.assert( void new $.XMLHttpRequest )\n\t\t\t} catch( error: any ) {\n\t\t\t\tconsole.assert( error.message === 'XMLHttpRequest is forbidden in tests' )\n\t\t\t}\n\t\t} ,\n\n\t\t'forbidden fetch'( $ ) {\n\t\t\ttry {\n\t\t\t\tconsole.assert( void $.fetch('') )\n\t\t\t} catch( error: any ) {\n\t\t\t\tconsole.assert( error.message === 'fetch is forbidden in tests' )\n\t\t\t}\n\t\t} ,\n\n\t})\n\n}\n","namespace $ {\n\t\n\texport var $mol_dom_context : typeof globalThis\n\t\n}\n",null,"interface $node {\n\t[key:string]: any\n}\n\nvar $node = new Proxy( { require } as any , {\n\t\n\tget( target , name : string , wrapper ) {\n\n\t\tif( target[ name ] ) return target[ name ]\n\n\t\tconst mod = target.require( 'module' ) as typeof import( 'module' )\n\t\t\n\t\tif( mod.builtinModules.indexOf( name ) >= 0 ) return target.require( name )\n\t\tif( name[0] === '.' ) return target.require( name )\n\t\t\n\t\tconst path = target.require( 'path' ) as typeof import( 'path' )\n\t\tconst fs = target.require( 'fs' ) as typeof import( 'fs' )\n\n\t\tlet dir = path.resolve( '.' )\n\t\tconst suffix = `./node_modules/${ name }`\n\n\t\tconst $$ = ( $ as any )\n\t\t\n\t\twhile( !fs.existsSync( path.join( dir , suffix ) ) ) {\n\n\t\t\tconst parent = path.resolve( dir , '..' )\n\n\t\t\tif( parent === dir ) {\n\n\t\t\t\t$$.$mol_exec( '.' , 'npm' , 'install' , '--omit=dev', name )\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\t$$.$mol_exec( '.' , 'npm' , 'install' , '--omit=dev', '@types/' + name )\n\t\t\t\t} catch {}\n\n\t\t\t\tbreak\n\n\t\t\t} else {\n\n\t\t\t\tdir = parent\n\n\t\t\t}\n\n\t\t}\n\t\t\n\t\treturn target.require( name )\n\n\t},\n\n\tset( target , name : string , value ) {\n\t\ttarget[ name ] = value\n\t\treturn true\n\t},\n\n} ) as $node\n\nrequire = ( req =>\n\tObject.assign( function require( name : string ) {\n\t\treturn $node[ name ]\n\t} , req )\n)( require )\n\n","namespace $ {\n\n\t/** Logger event data */\n\texport type $mol_log3_event< Fields > = {\n\t\t[ key in string ] : unknown\n\t} & {\n\t\t\n\t\t/** Time of event creation */\n\t\ttime? : string\n\n\t\t/** Place of event creation */\n\t\tplace : unknown\n\n\t\t/** Short description of event */\n\t\tmessage : string\n\n\t} & Fields\n\n\t/** Logger function */\n\texport type $mol_log3_logger< Fields , Res = void > = (\n\t\tthis : $ ,\n\t\tevent : $mol_log3_event< Fields > ,\n\t)=> Res\n\n\t/** Log begin of some task */\n\texport declare let $mol_log3_come : $mol_log3_logger<{}>\n\t\n\t/** Log end of some task */\n\texport declare let $mol_log3_done : $mol_log3_logger<{}>\n\t\n\t/** Log error */\n\texport declare let $mol_log3_fail : $mol_log3_logger<{}>\n\t\n\t/** Log warning message */\n\texport declare let $mol_log3_warn : $mol_log3_logger<{ hint : string }>\n\t\n\t/** Log some generic event */\n\texport declare let $mol_log3_rise : $mol_log3_logger<{}>\n\n\t/** Log begin of log group, returns func to close group */\n\texport declare let $mol_log3_area : $mol_log3_logger< {} , ()=> void >\n\n\t/** Log begin of collapsed group only when some logged inside, returns func to close group */\n\texport function $mol_log3_area_lazy(\n\t\tthis : $ ,\n\t\tevent : $mol_log3_event<{}> ,\n\t) {\n\n\t\tconst self = this\n\t\tconst stack = self.$mol_log3_stack\n\n\t\tconst deep = stack.length\n\t\tlet logged = false\n\n\t\tstack.push( ()=> {\n\t\t\tlogged = true\n\t\t\tself.$mol_log3_area.call( self , event )\n\t\t} )\n\n\t\treturn ()=> {\n\t\t\tif( logged ) self.console.groupEnd()\n\t\t\tif( stack.length > deep ) stack.length = deep\n\t\t}\n\n\t}\n\n\texport let $mol_log3_stack = [] as ( ()=> void )[]\n\n}\n","namespace $ {\n\t\n\texport class $mol_term_color {\n\t\t\n\t\tstatic reset = this.ansi( 0, 0 )\n\t\tstatic bold = this.ansi( 1, 22 )\n\t\tstatic italic = this.ansi( 3, 23 )\n\t\tstatic underline = this.ansi( 4, 24 )\n\t\tstatic inverse = this.ansi( 7, 27 )\n\t\tstatic hidden = this.ansi( 8, 28 )\n\t\tstatic strike = this.ansi( 9, 29 )\n\t\t\n\t\tstatic gray = this.ansi( 90, 39 )\n\t\tstatic red = this.ansi( 91, 39 )\n\t\tstatic green = this.ansi( 92, 39 )\n\t\tstatic yellow = this.ansi( 93, 39 )\n\t\tstatic blue = this.ansi( 94, 39 )\n\t\tstatic magenta = this.ansi( 95, 39 )\n\t\tstatic cyan = this.ansi( 96, 39 )\n\t\t\n\t\tstatic Gray = ( str: string )=> this.inverse( this.gray( str ) )\n\t\tstatic Red = ( str: string )=> this.inverse( this.red( str ) )\n\t\tstatic Green = ( str: string )=> this.inverse( this.green( str ) )\n\t\tstatic Yellow = ( str: string )=> this.inverse( this.yellow( str ) )\n\t\tstatic Blue = ( str: string )=> this.inverse( this.blue( str ) )\n\t\tstatic Magenta = ( str: string )=> this.inverse( this.magenta( str ) )\n\t\tstatic Cyan = ( str: string )=> this.inverse( this.cyan( str ) )\n\t\t\n\t\tstatic ansi( open: number, close: number ) {\n\t\n\t\t\tif( typeof process === 'undefined' ) return String\n\t\t\tif( !process.stdout.isTTY ) return String\n\t\t\n\t\t\tconst prefix = `\\x1b[${open}m`\n\t\t\tconst postfix = `\\x1b[${close}m`\n\t\t\t\n\t\t\tconst suffix_regexp = new RegExp( postfix.replace( '[', '\\\\[' ), 'g' )\n\t\t\n\t\t\treturn function colorer( str: string ) {\n\t\t\n\t\t\t\tstr = String( str )\n\t\t\t\tif( str === '' ) return str\n\t\t\n\t\t\t\tconst suffix = str.replace( suffix_regexp, prefix )\n\t\t\t\treturn prefix + suffix + postfix\n\t\t\n\t\t\t}\n\t\t\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_log3_node_make(\n\t\tlevel : keyof Console ,\n\t\toutput : 'stdout' | 'stderr',\n\t\ttype : string ,\n\t\tcolor: ( str: string )=> string ,\n\t) {\n\n\t\treturn function $mol_log3_logger(\n\t\t\tthis : $ ,\n\t\t\tevent : $mol_log3_event<{}> ,\n\t\t) {\n\n\t\t\tif( !event.time ) event = { time : new Date().toISOString() , ... event }\n\n\t\t\tconst tree = this.$mol_tree.fromJSON( event ).clone({ type })\n\t\t\tlet str = color( tree.toString() )\n\n\t\t\t;( this.console[ level ] as any )( str )\n\t\n\t\t\tconst self = this\n\t\t\treturn ()=> self.console.groupEnd()\n\n\t\t}\n\n\t}\n\n\t$.$mol_log3_come = $mol_log3_node_make( 'info' , 'stdout' , 'come' , $mol_term_color.blue )\n\t$.$mol_log3_done = $mol_log3_node_make( 'info' , 'stdout' , 'done' , $mol_term_color.green )\n\t$.$mol_log3_fail = $mol_log3_node_make( 'error' , 'stderr' , 'fail' , $mol_term_color.red )\n\t$.$mol_log3_warn = $mol_log3_node_make( 'warn' , 'stderr' , 'warn' , $mol_term_color.yellow )\n\t$.$mol_log3_rise = $mol_log3_node_make( 'log' , 'stdout' , 'rise' , $mol_term_color.magenta )\n\t$.$mol_log3_area = $mol_log3_node_make( 'log' , 'stdout' , 'area' , $mol_term_color.cyan )\n\n}\n","namespace $ {\n\n\t$mol_test_mocks.push( $ => {\n\t\t$.$mol_log3_come = ()=> {}\n\t\t$.$mol_log3_done = ()=> {}\n\t\t$.$mol_log3_fail = ()=> {}\n\t\t$.$mol_log3_warn = ()=> {}\n\t\t$.$mol_log3_rise = ()=> {}\n\t\t$.$mol_log3_area = ()=> ()=> {}\n\t} )\n\n}\n","namespace $ {\n\texport function $mol_env() {\n\t\treturn {} as Record< string, string | undefined >\n\t}\n}\n","namespace $ {\n\t$.$mol_env = function $mol_env() {\n\t\treturn this.process.env\n\t}\n}\n","namespace $ {\n\texport function $mol_exec(\n\t\tthis : $ ,\n\t\tdir : string ,\n\t\tcommand : string ,\n\t\t...args : string[]\n\t) {\n\n\t\tlet [ app , ... args0 ] = command.split( ' ' )\n\t\targs = [ ... args0 , ... args ]\n\n\t\tthis.$mol_log3_come({\n\t\t\tplace: '$mol_exec' ,\n\t\t\tdir: $node.path.relative( '' , dir ) ,\n\t\t\tmessage: 'Run',\n\t\t\tcommand: `${app} ${ args.join(' ') }` ,\n\t\t})\n\n\t\tvar res = $node['child_process'].spawnSync(\n\t\t\tapp ,\n\t\t\targs,\n\t\t\t{\n\t\t\t\tcwd : $node.path.resolve( dir ) ,\n\t\t\t\tshell : true ,\n\t\t\t\tenv: this.$mol_env(),\n\t\t\t}\n\t\t)\n\t\t\n\t\tif( res.status || res.error ) return $mol_fail( res.error || new Error( res.stderr.toString() ) )\n\t\tif( !res.stdout ) res.stdout = Buffer.from([])\n\n\t\treturn res\n\t}\n}\n","namespace $ {\n\t\n\t$.$mol_dom_context = new $node.jsdom.JSDOM( '' , { url : 'https://localhost/' } ).window as any\n\t\n}\n","namespace $ {\n\n\texport function $mol_dom_render_children (\n\t\tel : Element | DocumentFragment ,\n\t\tchildNodes : NodeList | Array< Node | string | null >\n\t) {\n\t\tconst node_set = new Set< Node | string | null >( childNodes )\n\t\t\n\t\tlet nextNode : Node | null = el.firstChild\n\t\tfor( let view of childNodes ) {\n\n\t\t\tif( view == null ) continue\n\n\t\t\tif( view instanceof $mol_dom_context.Node ) {\n\t\t\t\t\n\t\t\t\twhile( true ) {\n\t\t\t\t\tif( !nextNode ) {\n\t\t\t\t\t\tel.appendChild( view )\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tif( nextNode == view ) {\n\t\t\t\t\t\tnextNode = nextNode.nextSibling\n\t\t\t\t\t\tbreak\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif( node_set.has( nextNode ) ) {\n\t\t\t\t\t\t\tel.insertBefore( view , nextNode )\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst nn = nextNode.nextSibling\n\t\t\t\t\t\t\tel.removeChild( nextNode )\n\t\t\t\t\t\t\tnextNode = nn\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\tif( nextNode && nextNode.nodeName === '#text' ) {\n\t\t\t\t\tconst str = String( view )\n\t\t\t\t\tif( nextNode.nodeValue !== str ) nextNode.nodeValue = str\n\t\t\t\t\tnextNode = nextNode.nextSibling\n\t\t\t\t} else {\n\t\t\t\t\tconst textNode = $mol_dom_context.document.createTextNode( String( view ) )\n\t\t\t\t\tel.insertBefore( textNode , nextNode )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\twhile( nextNode ) {\n\t\t\tconst currNode = nextNode\n\t\t\tnextNode = currNode.nextSibling\n\t\t\tel.removeChild( currNode )\n\t\t}\n\t}\n\n}\n",null,null,null,null,null,null,null,"/** @jsx $mol_jsx */\nnamespace $ {\n\t\n\t$mol_test({\n\t\t\n\t\t'Make empty div'() {\n\t\t\t$mol_assert_equal( (<div/>).outerHTML , '<div></div>' )\n\t\t} ,\n\t\t\n\t\t'Define native field'() {\n\t\t\t\n\t\t\tconst dom = <input value='123' /> as HTMLInputElement\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML, '<input value=\"123\">' )\n\t\t\t$mol_assert_equal( dom.value, '123' )\n\n\t\t} ,\n\t\t\n\t\t'Define classes'() {\n\t\t\t\n\t\t\tconst dom = <div class={ 'foo bar' } />\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div class=\"foo bar\"></div>' )\n\n\t\t} ,\n\t\t\n\t\t'Define styles'() {\n\t\t\t\n\t\t\tconst dom = <div style={{ color: 'red' }} />\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div style=\"color: red;\"></div>' )\n\n\t\t} ,\n\t\t\n\t\t'Define dataset'() {\n\t\t\t\n\t\t\tconst dom = <div dataset={{ foo: 'bar' }} />\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div data-foo=\"bar\"></div>' )\n\n\t\t} ,\n\t\t\n\t\t'Define attributes'() {\n\t\t\t\n\t\t\tconst dom = <div lang=\"ru\" hidden />\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div lang=\"ru\" hidden=\"\"></div>' )\n\n\t\t} ,\n\t\t\n\t\t'Define child nodes'() {\n\n\t\t\tconst dom =\n\t\t\t\t<div>\n\t\t\t\t\thello\n\t\t\t\t\t<strong>world</strong>\n\t\t\t\t\t!\n\t\t\t\t</div>\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div>hello<strong>world</strong>!</div>' )\n\n\t\t} ,\n\n\t\t'Function as component'() {\n\n\t\t\tconst Button = (\n\t\t\t\tprops: { hint: string },\n\t\t\t\ttarget: ()=> string,\n\t\t\t) => {\n\t\t\t\treturn <button title={ props.hint } >{ target() }</button>\n\t\t\t}\n\n\t\t\tconst dom = <Button id=\"foo\" hint=\"click me\">{ ()=> 'hey!' }</Button>\n\n\t\t\t$mol_assert_equal( dom.outerHTML, '<button id=\"foo\" title=\"click me\" class=\"Button\">hey!</button>' )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'Nested guid generation'() {\n\n\t\t\tconst Foo = ()=> {\n\t\t\t\treturn <div>\n\t\t\t\t\t<Bar id=\"bar\">\n\t\t\t\t\t\t<img id=\"icon\" />\n\t\t\t\t\t</Bar>\n\t\t\t\t</div>\n\t\t\t}\n\n\t\t\tconst Bar = ( props: {}, icon: Element )=> {\n\t\t\t\treturn <span>{ icon }<i id=\"label\"/></span>\n\t\t\t}\n\n\t\t\tconst dom = <Foo id=\"foo\" />\n\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div id=\"foo\" class=\"Foo\"><span id=\"foo/bar\" class=\"Foo_bar Bar\"><img id=\"foo/icon\" class=\"Foo_icon\"><i id=\"foo/bar/label\" class=\"Foo_bar_label Bar_label\"></i></span></div>' )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'Fail on non unique ids'() {\n\n\t\t\tconst App = ()=> {\n\t\t\t\treturn <div>\n\t\t\t\t\t<span id=\"bar\" />\n\t\t\t\t\t<span id=\"bar\" />\n\t\t\t\t</div>\n\t\t\t}\n\n\t\t\t$mol_assert_fail( ()=> <App id=\"foo\" />, 'JSX already has tag with id \"foo/bar\"' )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'Owner based guid generationn'() {\n\n\t\t\tconst Foo = ()=> {\n\t\t\t\treturn <div>\n\t\t\t\t\t<Bar id=\"middle\" icon={ ()=> <img id=\"icon\" /> } />\n\t\t\t\t</div>\n\t\t\t}\n\n\t\t\tconst Bar = ( props: { icon: ()=> Element } )=> {\n\t\t\t\treturn <span>{ props.icon() }</span>\n\t\t\t}\n\n\t\t\tconst dom = <Foo id=\"app\" />\n\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div id=\"app\" class=\"Foo\"><span id=\"app/middle\" class=\"Foo_middle Bar\"><img id=\"app/icon\" class=\"Foo_icon\"></span></div>' )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'Fail on same ids from different caller'() {\n\n\t\t\tconst Foo = ()=> {\n\t\t\t\treturn <div>\n\t\t\t\t\t<img id=\"icon\" />\n\t\t\t\t\t<Bar id=\"bar\" icon={ ()=> <img id=\"icon\" /> } />\n\t\t\t\t</div>\n\t\t\t}\n\n\t\t\tconst Bar = ( props: { icon: ()=> Element } )=> {\n\t\t\t\treturn <span>{ props.icon() }</span>\n\t\t\t}\n\n\t\t\t$mol_assert_fail( ()=> <Foo id=\"foo\" />, 'JSX already has tag with id \"foo/icon\"' )\n\t\t\t\n\t\t} ,\n\t\t\n\t})\n\t\n}\n","namespace $ {\n\n\texport let $mol_jsx_prefix = ''\n\texport let $mol_jsx_crumbs = ''\n\n\texport let $mol_jsx_booked = null as null | Set< string >\n\t\n\texport let $mol_jsx_document : $mol_jsx.JSX.ElementClass['ownerDocument'] = {\n\t\tgetElementById : ()=> null ,\n\t\tcreateElementNS : ( space: string, name : string )=> $mol_dom_context.document.createElementNS( space, name ) as any,\n\t\tcreateDocumentFragment : ()=> $mol_dom_context.document.createDocumentFragment(),\n\t}\n\t\n\texport const $mol_jsx_frag = ''\n\n\texport function $mol_jsx<\n\t\tProps extends $mol_jsx.JSX.IntrinsicAttributes,\n\t\tChildren extends Array< Node | string >\n\t>(\n\t\tElem : string\n\t\t\t| ( ( props : Props , ... children : Children ) => Element ) ,\n\t\tprops : Props ,\n\t\t... childNodes : Children\n\t) : Element | DocumentFragment {\n\n\t\tconst id = props && props.id || ''\n\t\tconst guid = id ? $mol_jsx_prefix ? $mol_jsx_prefix + '/'+ id : id : $mol_jsx_prefix\n\t\tconst crumbs_self = id ? $mol_jsx_crumbs.replace( /(\\S+)/g, `$1_${ id.replace( /\\/.*/i, '' ) }` ) : $mol_jsx_crumbs\n\t\t\n\t\tif( Elem && $mol_jsx_booked ) {\n\t\t\tif( $mol_jsx_booked.has( id ) ) {\n\t\t\t\t$mol_fail( new Error( `JSX already has tag with id ${ JSON.stringify( guid ) }` ) )\n\t\t\t} else {\n\t\t\t\t$mol_jsx_booked.add( id )\n\t\t\t}\n\t\t}\n\n\t\tlet node: Element | DocumentFragment | null = guid ? $mol_jsx_document.getElementById( guid ) : null\n\n\t\tif( $mol_jsx_prefix ) {\n\t\t\t\n\t\t\tconst prefix_ext = $mol_jsx_prefix\n\t\t\tconst booked_ext = $mol_jsx_booked\n\t\t\tconst crumbs_ext = $mol_jsx_crumbs\n\t\t\t\n\t\t\tfor( const field in props ) {\n\t\t\t\t\n\t\t\t\tconst func = props[ field ]\n\t\t\t\tif( typeof func !== 'function' ) continue\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tconst wrapper = function( this: any, ... args: any[] ) {\n\t\t\t\t\t\n\t\t\t\t\tconst prefix = $mol_jsx_prefix\n\t\t\t\t\tconst booked = $mol_jsx_booked\n\t\t\t\t\tconst crumbs = $mol_jsx_crumbs\n\t\t\t\t\t\n\t\t\t\t\ttry {\n\t\t\n\t\t\t\t\t\t$mol_jsx_prefix = prefix_ext\n\t\t\t\t\t\t$mol_jsx_booked = booked_ext\n\t\t\t\t\t\t$mol_jsx_crumbs = crumbs_ext\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn func.call( this, ... args )\n\t\t\t\t\t\t\n\t\t\t\t\t} finally {\n\t\t\t\t\t\t\n\t\t\t\t\t\t$mol_jsx_prefix = prefix\n\t\t\t\t\t\t$mol_jsx_booked = booked\n\t\t\t\t\t\t$mol_jsx_crumbs = crumbs\n\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t$mol_func_name_from( wrapper, func )\n\t\t\t\tprops[ field ] = wrapper as any\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tif( typeof Elem !== 'string' ) {\n\n\t\t\tif( 'prototype' in Elem ) {\n\n\t\t\t\tconst view = node && node[ Elem as any ] || new ( Elem as any )\n\t\t\t\t\n\t\t\t\tObject.assign( view , props )\n\t\t\t\tview[ Symbol.toStringTag ] = guid\n\t\t\t\t\n\t\t\t\tview.childNodes = childNodes\n\t\t\t\t\n\t\t\t\tif( !view.ownerDocument ) view.ownerDocument = $mol_jsx_document\n\t\t\t\tview.className = ( crumbs_self ? crumbs_self + ' ' : '' ) + ( Elem['name'] || Elem )\n\t\t\t\t\n\t\t\t\tnode = view.valueOf()\n\t\t\t\t\n\t\t\t\tnode![ Elem as any ] = view\n\t\t\t\t\n\t\t\t\treturn node!\n\n\t\t\t} else {\n\n\t\t\t\tconst prefix = $mol_jsx_prefix\n\t\t\t\tconst booked = $mol_jsx_booked\n\t\t\t\tconst crumbs = $mol_jsx_crumbs\n\t\t\t\t\n\t\t\t\ttry {\n\t\n\t\t\t\t\t$mol_jsx_prefix = guid\n\t\t\t\t\t$mol_jsx_booked = new Set\n\t\t\t\t\t$mol_jsx_crumbs = ( crumbs_self ? crumbs_self + ' ' : '' ) + ( Elem['name'] || Elem )\n\t\n\t\t\t\t\treturn ( Elem as any )( props , ... childNodes )\n\t\t\t\t\t\n\t\t\t\t} finally {\n\n\t\t\t\t\t$mol_jsx_prefix = prefix\n\t\t\t\t\t$mol_jsx_booked = booked\n\t\t\t\t\t$mol_jsx_crumbs = crumbs\n\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\tif( !node ) {\n\t\t\tnode = Elem\n\t\t\t\t? $mol_jsx_document.createElementNS( props?.xmlns ?? 'http://www.w3.org/1999/xhtml', Elem )\n\t\t\t\t: $mol_jsx_document.createDocumentFragment()\n\t\t}\n\n\t\t$mol_dom_render_children( node , ( [] as ( Node | string )[] ).concat( ... childNodes ) )\n\t\tif( !Elem ) return node\n\n\t\tif( guid ) ( node as Element ).id = guid\n\t\tfor( const key in props ) {\n\t\t\tif( key === 'id' ) continue\n\n\t\t\tif( typeof props[ key ] === 'string' ) {\n\n\t\t\t\t;( node as Element ).setAttribute( key , props[ key as any ] )\n\n\t\t\t} else if(\n\t\t\t\tprops[ key ] &&\n\t\t\t\ttypeof props[ key ] === 'object' &&\n\t\t\t\tReflect.getPrototypeOf( props[ key ] as any ) === Reflect.getPrototypeOf({})\n\t\t\t) {\n\n\t\t\t\tif( typeof node[ key as any ] === 'object' ) {\n\t\t\t\t\tObject.assign( ( node as any )[ key ] , props[ key ] )\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tnode[ key as any ] = props[ key ]\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\tif( $mol_jsx_crumbs ) ( node as Element ).className = ( props?.['class'] ? props['class'] + ' ' : '' ) + crumbs_self\n\n\t\treturn node\n\n\t}\n\n\texport declare namespace $mol_jsx.JSX {\n\n\t\texport interface Element extends HTMLElement {\n\t\t\tclass?: string\n\t\t}\n\t\t\n\t\texport interface ElementClass {\n\t\t\tattributes : {}\n\t\t\townerDocument : Pick< Document , 'getElementById' | 'createElementNS' | 'createDocumentFragment' >\n\t\t\tchildNodes : Array< Node | string >\n\t\t\tvalueOf() : Element\n\t\t}\n\t\t\n\t\ttype OrString< Dict > = {\n\t\t\t[ key in keyof Dict ]: Dict[ key ] | string\n\t\t}\n\t\t\n\t\t/** Props for html elements */\n\t\texport type IntrinsicElements = {\n\t\t\t[ key in keyof ElementTagNameMap ]? : $.$mol_type_partial_deep< OrString<\n\t\t\t\t& Element\n\t\t\t\t& IntrinsicAttributes\n\t\t\t\t& ElementTagNameMap[ key ]\n\t\t\t> >\n\t\t}\n\t\t\n\t\t/** Additional undeclared props */\n\t\texport interface IntrinsicAttributes {\n\t\t\tid? : string\n\t\t\txmlns? : string\n\t\t}\n\t\t\n\t\texport interface ElementAttributesProperty {\n\t\t\tattributes : {\n\t\t\t}\n\t\t}\n\t\t\n\t\t// export type IntrinsicClassAttributes< Class > = $.$mol_type_partial_deep< Omit< Class , 'valueOf' > >\n\t\t\n\t\tinterface ElementChildrenAttribute {\n\t\t}\n\t\n\t}\n\n}\n","/** @jsx $mol_jsx */\nnamespace $ {\n\n\t$mol_test({\n\n\t\t'nulls & undefineds'() {\n\n\t\t\t$mol_assert_ok( $mol_compare_deep( null , null ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( undefined , undefined ) )\n\t\t\t\n\t\t\t$mol_assert_not( $mol_compare_deep( undefined , null ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( {} , null ) )\n\t\t\t\n\t\t} ,\n\n\t\t'number'() {\n\t\t\t\n\t\t\t$mol_assert_ok( $mol_compare_deep( 1 , 1 ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( Number.NaN , Number.NaN ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( 1 , 2 ) )\n\t\t\t\n\t\t\t$mol_assert_ok( $mol_compare_deep( Object( 1 ) , Object( 1 ) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( Object( 1 ) , Object( 2 ) ) )\n\t\t\t\n\t\t} ,\n\n\t\t'POJO'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( {} , {} ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( { a : 1 } , { b : 2 } ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( { a : 1 } , { a : 2 } ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( {} , { a : undefined } ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( { a: 1, b: 2 } , { b: 2, a: 1 } ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( { a : { b : 1 } } , { a : { b : 1 } } ) )\n\t\t} ,\n\n\t\t'Array'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( [] , [] ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( [ 1 , [2] ] , [ 1 , [2] ] ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( [ 1 , 2 ] , [ 1 , 3 ] ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( [ 1 , 2 , ] , [ 1 , 3 , undefined ] ) )\n\t\t} ,\n\n\t\t'Non POJO are different'() {\n\t\t\t\n\t\t\tclass Thing extends Object {}\n\t\t\t$mol_assert_not( $mol_compare_deep( new Thing , new Thing ) )\n\t\t\t\n\t\t\t$mol_assert_not( $mol_compare_deep( ()=> 1 , ()=>1 ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new RangeError( 'Test error' ) , new RangeError( 'Test error' ) ) )\n\t\t\t\n\t\t} ,\n\n\t\t'same POJOs with cyclic reference'() {\n\n\t\t\tconst a = { foo : {} }\n\t\t\ta['self'] = a\n\n\t\t\tconst b = { foo : {} }\n\t\t\tb['self'] = b\n\n\t\t\t$mol_assert_ok( $mol_compare_deep( a , b ) )\n\n\t\t} ,\n\n\t\t'Date'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Date( 12345 ) , new Date( 12345 ) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new Date( 12345 ) , new Date( 12346 ) ) )\n\t\t} ,\n\n\t\t'RegExp'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( /\\x22/mig , /\\x22/mig ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( /\\x22/mig , /\\x21/mig ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( /\\x22/mig , /\\x22/mg ) )\n\t\t} ,\n\n\t\t'Error'() {\n\t\t\t\n\t\t\t$mol_assert_not( $mol_compare_deep( new Error( 'xxx' ) , new Error( 'xxx' ) ) )\n\n\t\t\tconst fail = ( message: string )=> new Error( message )\n\t\t\t\n\t\t\t$mol_assert_ok( $mol_compare_deep(\n\t\t\t\t... [ 'xxx' , 'xxx' ].map( msg => new Error( msg ) ) as [ Error, Error ]\n\t\t\t) )\n\t\t\t\n\t\t\t$mol_assert_not( $mol_compare_deep(\n\t\t\t\t... [ 'xxx' , 'yyy' ].map( msg => new Error( msg ) ) as [ Error, Error ]\n\t\t\t) )\n\t\t\t\n\t\t} ,\n\n\t\t'Map'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Map , new Map ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Map([ [ 1 , [2] ] ]) , new Map([ [ 1 , [2] ] ]) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new Map([ [ 1 , 2 ] ]) , new Map([ [ 1 , 3 ] ]) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new Map([ [ [1] , 2 ] ]) , new Map([ [ [1] , 2 ] ]) ) )\n\t\t} ,\n\t\t\n\t\t'Set'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Set , new Set ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Set([ 1 , [2] ]) , new Set([ 1 , [2] ]) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new Set([ 1 ]) , new Set([ 2 ]) ) )\n\t\t} ,\n\t\t\n\t\t'Uint8Array'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Uint8Array , new Uint8Array ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Uint8Array([ 0 ]) , new Uint8Array([ 0 ]) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new Uint8Array([ 0 ]) , new Uint8Array([ 1 ]) ) )\n\t\t} ,\n\t\t\n\t\t'Custom comparator'() {\n\t\t\t\n\t\t\tclass User {\n\t\t\t\t\n\t\t\t\tconstructor(\n\t\t\t\t\treadonly name: string,\n\t\t\t\t\treadonly rand = Math.random(),\n\t\t\t\t) {}\n\t\t\t\t\n\t\t\t\t[ Symbol.toPrimitive ]( mode: 'default' | 'number' | 'string' ) {\n\t\t\t\t\treturn this.name\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_ok( $mol_compare_deep( new User( 'Jin' ), new User( 'Jin' ) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new User( 'Jin' ), new User( 'John' ) ) )\n\t\t\t\n\t\t} ,\n\t\t\n\t})\n\n}\n","namespace $ {\n\n\texport let $mol_compare_deep_cache = new WeakMap< any , WeakMap< any , boolean > >()\n\t\n\t/**\n\t * Deeply compares two values. Returns true if equal.\n\t * Define `Symbol.toPrimitive` to customize.\n\t */\n\texport function $mol_compare_deep< Value >( left: Value, right: Value ): boolean {\n\n\t\tif( Object.is( left , right ) ) return true\n\n\t\tif( left === null ) return false\n\t\tif( right === null ) return false\n\n\t\tif( typeof left !== 'object' ) return false\n\t\tif( typeof right !== 'object' ) return false\n\n\t\tconst left_proto = Reflect.getPrototypeOf( left as any )\n\t\tconst right_proto = Reflect.getPrototypeOf( right as any )\n\t\t\n\t\tif( left_proto !== right_proto ) return false\n\n\t\tif( left instanceof Boolean ) return Object.is( left.valueOf(), right['valueOf']() )\n\t\tif( left instanceof Number ) return Object.is( left.valueOf(), right['valueOf']() )\n\t\tif( left instanceof String ) return Object.is( left.valueOf(), right['valueOf']() )\n\t\tif( left instanceof Date ) return Object.is( left.valueOf(), right['valueOf']() )\n\t\tif( left instanceof RegExp ) return left.source === right['source'] && left.flags === right['flags']\n\t\tif( left instanceof Error ) return left.stack === right['stack']\n\n\t\tlet left_cache = $mol_compare_deep_cache.get( left )\n\t\tif( left_cache ) {\n\n\t\t\tconst right_cache = left_cache.get( right )\n\t\t\tif( typeof right_cache === 'boolean' ) return right_cache\n\n\t\t} else {\n\t\t\t\n\t\t\tleft_cache = new WeakMap< any , boolean >([[ right, true ]])\n\t\t\t$mol_compare_deep_cache.set( left , left_cache )\n\n\t\t}\n\n\t\tlet result!: boolean\n\n\t\ttry {\n\t\t\t\n\t\t\tif( left_proto && !Reflect.getPrototypeOf( left_proto ) ) result = compare_pojo( left, right as any )\n\t\t\telse if( Array.isArray( left ) ) result = compare_array( left, right as any )\n\t\t\telse if( left instanceof Set ) result = compare_set( left, right as any )\n\t\t\telse if( left instanceof Map ) result = compare_map( left, right as any )\n\t\t\telse if( ArrayBuffer.isView( left ) ) result = compare_buffer( left, right as any )\n\t\t\telse if( Symbol.toPrimitive in left ) result = compare_primitive( left, right )\n\t\t\telse result = false\n\n\t\t} finally {\n\t\t\tleft_cache.set( right , result )\n\t\t}\n\t\t\n\t\treturn result\n\t}\n\n\tfunction compare_array< Value extends any[] >( left: Value, right: Value ): boolean {\n\t\t\n\t\tconst len = left.length\n\t\tif( len !== right.length ) return false\n\t\t\n\t\tfor( let i = 0; i < len; ++i ) {\n\t\t\tif( !$mol_compare_deep( left[i] , right[i] ) ) return false\n\t\t}\n\t\t\n\t\treturn true\n\t}\n\t\n\tfunction compare_buffer( left: ArrayBufferView, right: ArrayBufferView ): boolean {\n\t\t\n\t\tconst len = left.byteLength\n\t\tif( len !== right.byteLength ) return false\n\t\t\n\t\tfor( let i = 0; i < len; ++i ) {\n\t\t\tif( left[i] !== right[i] ) return false\n\t\t}\n\t\t\n\t\treturn true\n\t}\n\t\n\tfunction compare_iterator< Value extends IterableIterator<any> >(\n\t\tleft: Value,\n\t\tright: Value,\n\t\tcompare: ( left: any, right: any )=> boolean\n\t): boolean {\n\t\t\n\t\twhile( true ) {\n\n\t\t\tconst left_next = left.next()\n\t\t\tconst right_next = right.next()\n\n\t\t\tif( left_next.done !== right_next.done ) return false\n\t\t\tif( left_next.done ) break\n\n\t\t\tif( !compare( left_next.value , right_next.value ) ) return false\n\n\t\t}\n\n\t\treturn true\n\n\t}\n\t\n\tfunction compare_set< Value extends Set<any> >( left: Value, right: Value ): boolean {\n\t\tif( left.size !== right.size ) return false\n\t\treturn compare_iterator( left.values(), right.values(), $mol_compare_deep )\n\t}\n\t\n\tfunction compare_map< Key, Value >( left: Map< Key, Value > , right: Map< Key, Value > ): boolean {\n\t\tif( left.size !== right.size ) return false\n\t\treturn compare_iterator( left.keys(), right.keys(), Object.is )\n\t\t\t&& compare_iterator( left.values(), right.values(), $mol_compare_deep )\n\t}\n\t\n\tfunction compare_pojo( left: {}, right: {} ): boolean {\n\t\t\n\t\tconst left_keys = Object.getOwnPropertyNames( left )\n\t\tconst right_keys = Object.getOwnPropertyNames( right )\n\t\t\n\t\tif( left_keys.length !== right_keys.length ) return false\n\n\t\tfor( let key of left_keys ) {\n\t\t\tif( !$mol_compare_deep( left[ key ], Reflect.get( right, key ) ) ) return false\n\t\t}\n\n\t\treturn true\n\t}\n\t\n\tfunction compare_primitive( left: {}, right: {} ): boolean {\n\t\treturn Object.is(\n\t\t\tleft[ Symbol.toPrimitive ]( 'default' ),\n\t\t\tright[ Symbol.toPrimitive ]( 'default' ),\n\t\t)\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_dom_serialize(\n\t\tnode: Node\n\t) {\n\t\tconst serializer = new $mol_dom_context.XMLSerializer\n\t\treturn serializer.serializeToString( node )\n\t}\n\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'must be false'() {\n\t\t\t$mol_assert_not( 0 )\n\t\t} ,\n\t\t\n\t\t'must be true'() {\n\t\t\t$mol_assert_ok( 1 )\n\t\t} ,\n\t\t\n\t\t'two must be equal'() {\n\t\t\t$mol_assert_equal( 2 , 2 )\n\t\t} ,\n\t\t\n\t\t'three must be equal'() {\n\t\t\t$mol_assert_equal( 2 , 2 , 2 )\n\t\t} ,\n\t\t\n\t\t'two must be unique'() {\n\t\t\t$mol_assert_unique( [ 3 ] , [ 3 ] )\n\t\t} ,\n\t\t\n\t\t'three must be unique'() {\n\t\t\t$mol_assert_unique( [ 3 ] , [ 3 ] , [ 3 ] )\n\t\t} ,\n\t\t\n\t\t'two must be alike'() {\n\t\t\t$mol_assert_like( [ 3 ] , [ 3 ] )\n\t\t} ,\n\t\t\n\t\t'three must be alike'() {\n\t\t\t$mol_assert_like( [ 3 ] , [ 3 ] , [ 3 ] )\n\t\t} ,\n\t\t\n\t} )\n}\n","namespace $ {\n\t\n\texport function $mol_assert_ok( value : any ) {\n\t\tif( value ) return\n\t\t$mol_fail( new Error( `${value} ≠ true` ) )\n\t}\n\t\n\texport function $mol_assert_not( value : any ) {\n\t\tif( !value ) return\n\t\t$mol_fail( new Error( `${value} ≠ false` ) )\n\t}\n\t\n\texport function $mol_assert_fail( handler : ()=> any , ErrorRight? : any ) {\n\t\t\n\t\tconst fail = $.$mol_fail\n\t\t\n\t\ttry {\n\t\t\t$.$mol_fail = $.$mol_fail_hidden\n\t\t\t\n\t\t\thandler()\n\n\t\t} catch( error: any ) {\n\t\t\t\n\t\t\tif( !ErrorRight ) return error\n\t\t\t\n\t\t\t$.$mol_fail = fail\n\n\t\t\tif( typeof ErrorRight === 'string' ) {\n\t\t\t\t$mol_assert_equal( error.message, ErrorRight )\n\t\t\t} else {\n\t\t\t\t$mol_assert_ok( error instanceof ErrorRight )\n\t\t\t}\n\t\t\t\n\t\t\treturn error\n\n\t\t} finally {\n\t\t\t$.$mol_fail = fail\n\t\t}\n\n\t\t$mol_fail( new Error( 'Not failed' ) )\n\t}\n\t\n\texport function $mol_assert_equal< Value >( ... args : [ Value, Value, ...Value[] ] ) {\n\t\tfor( let i = 0 ; i < args.length ; ++i ) {\n\t\t\tfor( let j = 0 ; j < args.length ; ++j ) {\n\t\t\t\tif( i === j ) continue\n\t\t\t\tif( Number.isNaN( args[i] as any as number ) && Number.isNaN( args[j] as any as number ) ) continue\n\t\t\t\tif( args[i] !== args[j] ) $mol_fail( new Error( `Not equal (${i+1}:${j+1})\\n${ args[i] }\\n${ args[j] }` ) )\n\t\t\t}\n\t\t}\n\t}\n\t\n\texport function $mol_assert_unique( ... args : [ any, any, ...any[] ] ) {\n\t\tfor( let i = 0 ; i < args.length ; ++i ) {\n\t\t\tfor( let j = 0 ; j < args.length ; ++j ) {\n\t\t\t\tif( i === j ) continue\n\t\t\t\tif( args[i] === args[j] || ( Number.isNaN( args[i] as any as number ) && Number.isNaN( args[j] as any as number ) ) ) {\n\t\t\t\t\t$mol_fail( new Error( `args[${ i }] = args[${ j }] = ${ args[i] }` ) )\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t\n\texport function $mol_assert_like< Value >( head : Value, ... tail : Value[]) {\n\t\tfor( let [ index, value ] of Object.entries( tail ) ) {\n\n\t\t\tif( !$mol_compare_deep( value , head ) ) {\n\n\t\t\t\tconst print = ( val : any ) => {\n\t\t\t\t\t\n\t\t\t\t\tif( !val ) return val\n\t\t\t\t\tif( typeof val !== 'object' ) return val\n\t\t\t\t\tif( 'outerHTML' in val ) return val.outerHTML\n\t\t\t\t\t\n\t\t\t\t\ttry {\n\t\t\t\t\t\treturn JSON.stringify( val )\n\t\t\t\t\t} catch( error: any ) {\n\t\t\t\t\t\tconsole.error( error )\n\t\t\t\t\t\treturn val\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn $mol_fail( new Error( `Not like (1:${ + index + 2 })\\n${ print( head ) }\\n---\\n${ print( value ) }` ) )\n\n\t\t\t}\n\n\t\t}\n\t}\n\t\n\texport function $mol_assert_dom( left: Element, right: Element ) {\n\t\t$mol_assert_equal( $mol_dom_serialize( left ), $mol_dom_serialize( right ) )\n\t}\n\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'get'() {\n\t\t\tconst proxy = $mol_delegate( {} as any , ()=> ({ foo : 777 }) )\n\t\t\t$mol_assert_equal( proxy.foo , 777 )\n\t\t},\n\n\t\t'has'() {\n\t\t\tconst proxy = $mol_delegate( {} as any , ()=> ({ foo : 777 }) )\n\t\t\t$mol_assert_equal( 'foo' in proxy , true )\n\t\t},\n\n\t\t'set'() {\n\t\t\tconst target = { foo : 777 }\n\t\t\tconst proxy = $mol_delegate( {} as any , ()=> target )\n\t\t\tproxy.foo = 123\n\t\t\t$mol_assert_equal( target.foo , 123 )\n\t\t},\n\t\t\n\t\t'getOwnPropertyDescriptor'() {\n\n\t\t\tconst proxy = $mol_delegate( {} as any , ()=> ({ foo : 777 }) )\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\tObject.getOwnPropertyDescriptor( proxy , 'foo' ),\n\t\t\t\t{\n\t\t\t\t\tvalue: 777,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t},\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'ownKeys'() {\n\n\t\t\tconst proxy = $mol_delegate(\n\t\t\t\t{} as any ,\n\t\t\t\t()=> ({ foo : 777 , [ Symbol.toStringTag ] : 'bar' }),\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\tReflect.ownKeys( proxy ),\n\t\t\t\t[ 'foo' , Symbol.toStringTag ],\n\t\t\t)\n\n\t\t},\n\n\t\t'getPrototypeOf'() {\n\n\t\t\tclass Foo {}\n\n\t\t\tconst proxy = $mol_delegate(\n\t\t\t\t{} as any ,\n\t\t\t\t()=> new Foo,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tObject.getPrototypeOf( proxy ),\n\t\t\t\tFoo.prototype,\n\t\t\t)\n\n\t\t},\n\n\t\t'setPrototypeOf'() {\n\n\t\t\tclass Foo {}\n\t\t\tconst target = {}\n\n\t\t\tconst proxy = $mol_delegate(\n\t\t\t\t{} ,\n\t\t\t\t()=> target,\n\t\t\t)\n\n\t\t\tObject.setPrototypeOf( proxy , Foo.prototype )\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tObject.getPrototypeOf( target ),\n\t\t\t\tFoo.prototype,\n\t\t\t)\n\n\t\t},\n\n\t\t'instanceof'() {\n\n\t\t\tclass Foo {}\n\n\t\t\tconst proxy = $mol_delegate(\n\t\t\t\t{} ,\n\t\t\t\t()=> new Foo,\n\t\t\t)\n\n\t\t\t$mol_assert_ok( proxy instanceof Foo )\n\t\t\t$mol_assert_ok( proxy instanceof $mol_delegate )\n\n\t\t},\n\n\t\t'autobind'() {\n\n\t\t\tclass Foo {}\n\n\t\t\tconst proxy = $mol_delegate(\n\t\t\t\t{} ,\n\t\t\t\t()=> new Foo,\n\t\t\t)\n\n\t\t\t$mol_assert_ok( proxy instanceof Foo )\n\t\t\t$mol_assert_ok( proxy instanceof $mol_delegate )\n\n\t\t},\n\n\t})\n}\n",null,"namespace $ {\n\t$mol_test( {\n\t\t'span for same uri'( $ ) {\n\t\t\tconst span = new $mol_span('test.ts', '', 1, 3, 4)\n\t\t\tconst child = span.span(4, 5, 8)\n\n\t\t\t$mol_assert_equal(child.uri, 'test.ts')\n\t\t\t$mol_assert_equal(child.row, 4)\n\t\t\t$mol_assert_equal(child.col, 5)\n\t\t\t$mol_assert_equal(child.length, 8)\n\t\t},\n\n\t\t'span after of given position'( $ ) {\n\t\t\tconst span = new $mol_span('test.ts', '', 1, 3, 4)\n\t\t\tconst child = span.after(11)\n\n\t\t\t$mol_assert_equal(child.uri, 'test.ts')\n\t\t\t$mol_assert_equal(child.row, 1)\n\t\t\t$mol_assert_equal(child.col, 7)\n\t\t\t$mol_assert_equal(child.length, 11)\n\t\t},\n\n\t\t'slice span - regular'( $ ) {\n\t\t\tconst span = new $mol_span('test.ts', '', 1, 3, 5)\n\t\t\tconst child = span.slice(1, 4)\n\n\t\t\t$mol_assert_equal(child.row, 1)\n\t\t\t$mol_assert_equal(child.col, 4)\n\t\t\t$mol_assert_equal(child.length, 3)\n\n\t\t\tconst child2 = span.slice(2, 2)\n\n\t\t\t$mol_assert_equal(child2.col, 5)\n\t\t\t$mol_assert_equal(child2.length, 0)\n\t\t},\n\n\t\t'slice span - negative'( $ ) {\n\t\t\tconst span = new $mol_span('test.ts', '', 1, 3, 5)\n\t\t\tconst child = span.slice(-3, -1)\n\n\t\t\t$mol_assert_equal(child.row, 1)\n\t\t\t$mol_assert_equal(child.col, 5)\n\t\t\t$mol_assert_equal(child.length, 2)\n\t\t},\n\n\t\t'slice span - out of range'( $ ) {\n\t\t\tconst span = new $mol_span('test.ts', '', 1, 3, 5)\n\n\t\t\t$mol_assert_fail(() => span.slice(-1, 3))\n\t\t\t$mol_assert_fail(() => span.slice(1, 6))\n\t\t\t$mol_assert_fail(() => span.slice(1, 10))\n\t\t},\n\n\t\t'error handling'( $ ) {\n\t\t\tconst span = new $mol_span('test.ts', '', 1, 3, 4)\n\t\t\tconst error = span.error('Some error\\n')\n\n\t\t\t$mol_assert_equal(error.message, 'Some error\\ntest.ts#1:3/4')\n\t\t}\n\n\t} )\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'tree parsing'( $ ) {\n\t\t\t\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"foo\\nbar\\n\" ).kids.length , 2 )\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"foo\\nbar\\n\" ).kids[ 1 ].type , \"bar\" )\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"foo\\n\\n\\n\" ).kids.length , 1 )\n\t\t\t\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"=foo\\n\\\\bar\\n\" ).kids.length , 2 )\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"=foo\\n\\\\bar\\n\" ).kids[ 1 ].value , \"bar\" )\n\t\t\t\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"foo bar \\\\pol\\n\" ).kids[ 0 ].kids[ 0 ].kids[ 0 ].value , \"pol\" )\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"foo bar\\n\\t\\\\pol\\n\\t\\\\men\\n\" ).kids[ 0 ].kids[ 0 ].kids[ 1 ].value , \"men\" )\n\t\t\t\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( 'foo bar \\\\text\\n' ).toString() , 'foo bar \\\\text\\n' )\n\t\t} ,\n\n\t\t'Too many tabs'( $ ) {\n\n\t\t\tconst tree = `\n\t\t\t\tfoo\n\t\t\t\t\t\tbar\n\t\t\t`\n\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$.$mol_tree2_from_string( tree , 'test' )\n\t\t\t}, 'Too many tabs\\ntest#3:1/6\\n!!!!!!\\n\\t\\t\\t\\t\\t\\tbar' )\n\n\t\t},\n\n\t\t'Too few tabs'( $ ) {\n\n\t\t\tconst tree = `\n\t\t\t\t\tfoo\n\t\t\t\tbar\n\t\t\t`\n\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$.$mol_tree2_from_string( tree , 'test' )\n\t\t\t}, 'Too few tabs\\ntest#3:1/4\\n!!!!\\n\\t\\t\\t\\tbar' )\n\n\t\t},\n\n\t\t'Wrong nodes separator'( $ ) {\n\n\t\t\tconst tree = `foo bar\\n`\n\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$.$mol_tree2_from_string( tree , 'test' )\n\t\t\t}, 'Wrong nodes separator\\ntest#1:4/2\\n !!\\nfoo bar' )\n\n\t\t},\n\n\t\t'Undexpected EOF, LF required'( $ ) {\n\n\t\t\tconst tree = `\tfoo`\n\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$.$mol_tree2_from_string( tree , 'test' )\n\t\t\t}, 'Undexpected EOF, LF required\\ntest#1:5/1\\n\t !\\n\tfoo' )\n\n\t\t},\n\n\t\t'Errors skip and collect'( $ ) {\n\n\t\t\tconst tree = `foo bar`\n\t\t\tconst errors = [] as string[]\n\n\t\t\tconst $$ = $.$mol_ambient({\n\t\t\t\t$mol_fail: ( error: any ) => {\n\t\t\t\t\terrors.push( error.message )\n\t\t\t\t\treturn null as never\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tconst res = $$.$mol_tree2_from_string( tree , 'test' )\n\n\t\t\t$mol_assert_like( errors, [\n\t\t\t\t'Wrong nodes separator\\ntest#1:4/2\\n !!\\nfoo bar',\n\t\t\t\t'Undexpected EOF, LF required\\ntest#1:9/1\\n !\\nfoo bar',\n\t\t\t] )\n\n\t\t\t$mol_assert_equal( res.toString(), 'foo bar\\n' )\n\n\t\t},\n\n\t} )\t\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'tree parsing'() {\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_tree.fromString( \"foo\\nbar\\n\" ).sub.length , 2 )\n\t\t\t$mol_assert_equal( $mol_tree.fromString( \"foo\\nbar\\n\" ).sub[ 1 ].type , \"bar\" )\n\t\t\t$mol_assert_equal( $mol_tree.fromString( \"foo\\n\\n\\n\" ).sub.length , 1 )\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_tree.fromString( \"=foo\\n\\\\bar\\n\" ).sub.length , 2 )\n\t\t\t$mol_assert_equal( $mol_tree.fromString( \"=foo\\n\\\\bar\\n\" ).sub[ 1 ].data , \"bar\" )\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_tree.fromString( \"foo bar \\\\pol\" ).sub[ 0 ].sub[ 0 ].sub[ 0 ].data , \"pol\" )\n\t\t\t$mol_assert_equal( $mol_tree.fromString( \"foo bar\\n\\t\\\\pol\\n\\t\\\\men\" ).sub[ 0 ].sub[ 0 ].sub[ 1 ].data , \"men\" )\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_tree.fromString( 'foo bar \\\\text\\n' ).toString() , 'foo bar \\\\text\\n' )\n\t\t} ,\n\n\t\t'inserting'() {\n\t\t\t$mol_assert_equal( $mol_tree.fromString( 'a b c d' ).insert( new $mol_tree , 'a' , 'b' , 'c' ).toString() , 'a b \\\\\\n' )\n\t\t\t$mol_assert_equal( $mol_tree.fromString( 'a b' ).insert( new $mol_tree , 'a' , 'b' , 'c' , 'd' ).toString() , 'a b c \\\\\\n' )\n\n\t\t\t$mol_assert_equal( $mol_tree.fromString( 'a b c d' ).insert( new $mol_tree , 0 , 0 , 0 ).toString() , 'a b \\\\\\n' )\n\t\t\t$mol_assert_equal( $mol_tree.fromString( 'a b' ).insert( new $mol_tree , 0 , 0 , 0 , 0 ).toString() , 'a b \\\\\\n\\t\\\\\\n' )\n\n\t\t\t$mol_assert_equal( $mol_tree.fromString( 'a b c d' ).insert( new $mol_tree , null , null , null ).toString() , 'a b \\\\\\n' )\n\t\t\t$mol_assert_equal( $mol_tree.fromString( 'a b' ).insert( new $mol_tree , null , null , null , null ).toString() , 'a b \\\\\\n\\t\\\\\\n' )\n\t\t} ,\n\n\t\t'fromJSON'() {\n\t\t\t$mol_assert_equal( $mol_tree.fromJSON([]).toString() , '/\\n' )\n\t\t\t$mol_assert_equal( $mol_tree.fromJSON([ false , true ]).toString() , '/\\n\\tfalse\\n\\ttrue\\n' )\n\t\t\t$mol_assert_equal( $mol_tree.fromJSON([ 0 , 1 , 2.3 ]).toString() , '/\\n\\t0\\n\\t1\\n\\t2.3\\n' )\n\t\t\t$mol_assert_equal( $mol_tree.fromJSON([ '' , 'foo' , 'bar\\nbaz' ]).toString() , '/\\n\\t\\\\\\n\\t\\\\foo\\n\\t\\\\\\n\\t\\t\\\\bar\\n\\t\\t\\\\baz\\n' )\n\t\t\t$mol_assert_equal( $mol_tree.fromJSON({ 'foo' : false , 'bar\\nbaz' : 'lol' }).toString() , '*\\n\\tfoo false\\n\\t\\\\\\n\\t\\t\\\\bar\\n\\t\\t\\\\baz\\n\\t\\t\\\\lol\\n' )\n\t\t} ,\n\t\t\n\t\t'toJSON'() {\n\t\t\t$mol_assert_equal( JSON.stringify( $mol_tree.fromString( '/\\n' ).sub[0] ) , '[]' )\n\t\t\t$mol_assert_equal( JSON.stringify( $mol_tree.fromString( '/\\n\\tfalse\\n\\ttrue\\n' ).sub[0] ) , '[false,true]' )\n\t\t\t$mol_assert_equal( JSON.stringify( $mol_tree.fromString( '/\\n\\t0\\n\\t1\\n\\t2.3\\n' ).sub[0] ) , '[0,1,2.3]' )\n\t\t\t$mol_assert_equal( JSON.stringify( $mol_tree.fromString( '/\\n\\t\\\\\\n\\t\\\\foo\\n\\t\\\\\\n\\t\\t\\\\bar\\n\\t\\t\\\\baz\\n' ).sub[0] ) , '[\"\",\"foo\",\"bar\\\\nbaz\"]' )\n\t\t\t$mol_assert_equal( JSON.stringify( $mol_tree.fromString( '*\\n\\tfoo false\\n\\t\\\\\\n\\t\\t\\\\bar\\n\\t\\t\\\\baz\\n\\t\\t\\\\lol\\n' ).sub[0] ) , '{\"foo\":false,\"bar\\\\nbaz\":\"lol\"}' )\n\t\t} ,\n\t\t\n\t\t'hack'() {\n\n\t\t\tconst res = $mol_tree.fromString( `foo bar xxx` ).hack({\n\t\t\t\t'' : ( tree , context )=> [ tree.hack( context ) ] ,\n\t\t\t\t'bar' : ( tree , context )=> [ tree.hack( context ).clone({ type : '777' }) ] ,\n\t\t\t})\n\n\t\t\t$mol_assert_equal( res.toString() , new $mol_tree({ type : 'foo 777 xxx' }).toString() )\n\n\t\t} ,\n\n\t\t'errors handling'( $ ) {\n\n\t\t\tconst errors = [] as string[]\n\n\t\t\tclass Tree extends $mol_tree {\n\t\t\t\tstatic $ = $.$mol_ambient({\n\t\t\t\t\t$mol_fail: error => errors.push( error.message ) as never\n\t\t\t\t})\n\t\t\t}\n\t\t\t\n\t\t\tTree.fromString( `\n\t\t\t\t\\t \\tfoo\n\t\t\t\tbar \\\\data\n\t\t\t` , 'test' )\n\n\t\t\t$mol_assert_like( errors , [ 'Syntax error at test:2\\n \\tfoo' ] )\n\n\t\t},\n\n\t} )\t\n}\n","namespace $ {\n\n\texport const $mol_tree_convert : unique symbol = Symbol( '$mol_tree_convert' )\n\texport type $mol_tree_path = Array< string | number | null >\n\n\texport type $mol_tree_hack = ( input : $mol_tree , context : $mol_tree_context )=> readonly $mol_tree[]\n\texport type $mol_tree_context = Record< string , $mol_tree_hack >\n\texport type $mol_tree_library = Record< string , $mol_tree_context >\n\t\n\t/**\n\t * Abstract Syntax Tree with human readable serialization.\n\t * @see https://github.com/nin-jin/tree.d\n\t */\n\texport class $mol_tree extends $mol_object2 {\n\t\t\n\t\treadonly type : string\n\t\treadonly data : string\n\t\treadonly sub : readonly $mol_tree[]\n\t\treadonly baseUri : string\n\t\treadonly row : number\n\t\treadonly col : number\n\t\treadonly length : number\n\t\t\n\t\tconstructor( config : Partial<$mol_tree> = {} ) {\n\n\t\t\tsuper()\n\n\t\t\tthis.type = config.type || ''\n\t\t\t\n\t\t\tif( config.value !== undefined ) {\n\n\t\t\t\tvar sub = $mol_tree.values( config.value )\n\t\t\t\t\n\t\t\t\tif( config.type || sub.length > 1 ) {\n\n\t\t\t\t\tthis.sub = [ ... sub , ...( config.sub || [] ) ]\n\t\t\t\t\tthis.data = config.data || ''\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis.data = sub[ 0 ].data\n\t\t\t\t\tthis.sub = config.sub || []\n\n\t\t\t\t}\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tthis.data = config.data || ''\n\t\t\t\tthis.sub = config.sub || []\n\n\t\t\t}\n\t\t\t\n\t\t\tthis.baseUri = config.baseUri || ''\n\t\t\tthis.row = config.row || 0\n\t\t\tthis.col = config.col || 0\n\t\t\tthis.length = config.length || 0\n\n\t\t}\n\t\t\n\t\tstatic values( str : string , baseUri? : string ) {\n\n\t\t\treturn str.split( '\\n' ).map( ( data , index ) => new $mol_tree( {\n\t\t\t\tdata : data ,\n\t\t\t\tbaseUri : baseUri ,\n\t\t\t\trow : index + 1 ,\n\t\t\t\tlength : data.length ,\n\t\t\t} ) )\n\n\t\t}\n\t\t\n\t\t/** Cloning node with overrides. */\n\t\tclone( config : Partial<$mol_tree> = {} ) {\n\n\t\t\treturn new $mol_tree({\n\t\t\t\ttype : ( 'type' in config ) ? config.type : this.type ,\n\t\t\t\tdata : ( 'data' in config ) ? config.data : this.data ,\n\t\t\t\tsub : ( 'sub' in config ) ? config.sub : this.sub ,\n\t\t\t\tbaseUri : ( 'baseUri' in config ) ? config.baseUri : this.baseUri ,\n\t\t\t\trow : ( 'row' in config ) ? config.row : this.row ,\n\t\t\t\tcol : ( 'col' in config ) ? config.col : this.col ,\n\t\t\t\tlength : ( 'length' in config ) ? config.length : this.length ,\n\t\t\t\tvalue : config.value\n\t\t\t})\n\n\t\t}\n\t\t\n\t\t/** Makes new derived node. */\n\t\tmake( config : Partial<$mol_tree> ) {\n\n\t\t\treturn new $mol_tree({\n\t\t\t\tbaseUri : this.baseUri ,\n\t\t\t\trow : this.row ,\n\t\t\t\tcol : this.col ,\n\t\t\t\tlength : this.length ,\n\t\t\t\t... config ,\n\t\t\t})\n\n\t\t}\n\t\t\n\t\t/** Makes new derived data node. */\n\t\tmake_data( value : string , sub? : readonly $mol_tree[] ) {\n\t\t\treturn this.make({ value , sub })\n\t\t}\n\t\t\n\t\t/** Makes new derived structural node. */\n\t\tmake_struct( type : string , sub? : readonly $mol_tree[] ) {\n\t\t\treturn this.make({ type , sub })\n\t\t}\n\t\t\n\t\t/** Parses tree format to AST. */\n\t\tstatic fromString( str : string , baseUri? : string ) {\n\t\t\t\n\t\t\tvar root = new $mol_tree( { baseUri : baseUri } )\n\t\t\tvar stack = [ root ]\n\t\t\t\n\t\t\tvar row = 0\n\t\t\tvar prefix = str.replace( /^\\n?(\\t*)[\\s\\S]*/ , '$1' )\n\t\t\tvar lines = str.replace( new RegExp( '^\\\\t{0,' + prefix.length + '}' , 'mg' ) , '' ).split( '\\n' )\n\n\t\t\tlines.forEach( line => {\n\n\t\t\t\t++row\n\t\t\t\t\n\t\t\t\tvar chunks = /^(\\t*)((?:[^\\n\\t\\\\ ]+ *)*)(\\\\[^\\n]*)?(.*?)(?:$|\\n)/m.exec( line )\n\t\t\t\tif( !chunks || chunks[4] ) return this.$.$mol_fail( new Error( `Syntax error at ${baseUri}:${row}\\n${line}` ) )\n\t\t\t\t\n\t\t\t\tvar indent = chunks[ 1 ]\n\t\t\t\tvar path = chunks[ 2 ]\n\t\t\t\tvar data = chunks[ 3 ]\n\t\t\t\t\n\t\t\t\tvar deep = indent.length\n\t\t\t\tvar types = path ? path.replace( / $/ , '' ).split( / +/ ) : []\n\t\t\t\t\n\t\t\t\tif( stack.length <= deep ) return this.$.$mol_fail( new Error( `Too many tabs at ${baseUri}:${row}\\n${line}` ) )\n\t\t\t\t\n\t\t\t\tstack.length = deep + 1\n\t\t\t\tvar parent = stack[ deep ];\n\t\t\t\t\n\t\t\t\tlet col = deep\n\t\t\t\ttypes.forEach( type => {\n\t\t\t\t\tif( !type ) return this.$.$mol_fail( new Error( `Unexpected space symbol ${baseUri}:${row}\\n${line}` ) )\n\t\t\t\t\tvar next = new $mol_tree({ type , baseUri , row , col , length : type.length })\n\t\t\t\t\tconst parent_sub = parent.sub as $mol_tree[]\n\t\t\t\t\tparent_sub.push( next )\t\n\t\t\t\t\tparent = next\n\t\t\t\t\tcol += type.length + 1\n\t\t\t\t} )\n\t\t\t\t\n\t\t\t\tif( data ) {\n\t\t\t\t\tvar next = new $mol_tree({ data : data.substring( 1 ) , baseUri , row , col , length : data.length })\n\t\t\t\t\tconst parent_sub = parent.sub as $mol_tree[]\n\t\t\t\t\tparent_sub.push( next )\n\t\t\t\t\tparent = next\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstack.push( parent )\n\t\t\t\t\n\t\t\t} )\n\t\t\t\n\t\t\treturn root\n\t\t}\n\t\t\n\t\t/**\n\t\t * Parses json.tree lang to AST.\n\t\t * @todo Move to $mol_tree_json_from\n\t\t */\n\t\tstatic fromJSON( json : any , baseUri = '' ) : $mol_tree {\n\n\t\t\tswitch( true ) {\n\n\t\t\t\tcase typeof json === 'boolean' :\n\t\t\t\tcase typeof json === 'number' :\n\t\t\t\tcase json === null :\n\n\t\t\t\t\treturn new $mol_tree({\n\t\t\t\t\t\ttype : String( json ) ,\n\t\t\t\t\t\tbaseUri : baseUri\n\t\t\t\t\t})\n\t\t\t\t\n\t\t\t\tcase typeof json === 'string' :\n\n\t\t\t\t\treturn new $mol_tree({\n\t\t\t\t\t\tvalue : json ,\n\t\t\t\t\t\tbaseUri : baseUri\n\t\t\t\t\t})\n\n\t\t\t\tcase Array.isArray( json ) :\n\n\t\t\t\t\treturn new $mol_tree({\n\t\t\t\t\t\ttype : \"/\" ,\n\t\t\t\t\t\tsub : ( json as any[] ).map( json => $mol_tree.fromJSON( json , baseUri ) )\n\t\t\t\t\t})\n\n\t\t\t\tcase json instanceof Date :\n\n\t\t\t\t\treturn new $mol_tree({\n\t\t\t\t\t\tvalue : json.toISOString() ,\n\t\t\t\t\t\tbaseUri : baseUri\n\t\t\t\t\t})\n\t\t\t\t\n\t\t\t\tdefault :\n\n\t\t\t\t\tif( typeof json[ $mol_tree_convert ] === 'function' ) {\n\t\t\t\t\t\treturn json[ $mol_tree_convert ]()\n\t\t\t\t\t}\n\n\t\t\t\t\tif( typeof json.toJSON === 'function' ) {\n\t\t\t\t\t\treturn $mol_tree.fromJSON( json.toJSON() )\n\t\t\t\t\t}\n\n\t\t\t\t\tif( json instanceof Error ) {\n\t\t\t\t\t\tconst { name , message , stack } = json\n\t\t\t\t\t\tjson = { ... json , name , message , stack }\n\t\t\t\t\t}\n\n\t\t\t\t\tvar sub : $mol_tree[] = []\n\t\t\t\t\t\n\t\t\t\t\tfor( var key in json ) {\n\n\t\t\t\t\t\tif( json[ key ] === undefined ) continue\n\n\t\t\t\t\t\tconst subsub = $mol_tree.fromJSON( json[ key ] , baseUri )\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( /^[^\\n\\t\\\\ ]+$/.test( key ) ) {\n\n\t\t\t\t\t\t\tvar child = new $mol_tree({\n\t\t\t\t\t\t\t\ttype : key ,\n\t\t\t\t\t\t\t\tbaseUri : baseUri ,\n\t\t\t\t\t\t\t\tsub : [ subsub ] ,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tvar child = new $mol_tree({\n\t\t\t\t\t\t\t\tvalue : key ,\n\t\t\t\t\t\t\t\tbaseUri : baseUri ,\n\t\t\t\t\t\t\t\tsub : [ subsub ] ,\n\t\t\t\t\t\t\t} )\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tsub.push( child )\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\treturn new $mol_tree({\n\t\t\t\t\t\ttype : \"*\" ,\n\t\t\t\t\t\tsub : sub ,\n\t\t\t\t\t\tbaseUri : baseUri\n\t\t\t\t\t})\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\t\t\n\t\tget uri() {\n\t\t\treturn this.baseUri + '#' + this.row + ':' + this.col\n\t\t}\n\t\t\n\t\t/** Serializas to tree format. */\n\t\ttoString( prefix = '' ) : string {\n\t\t\tvar output = ''\n\t\t\t\n\t\t\tif( this.type.length ) {\n\t\t\t\tif( !prefix.length ) {\n\t\t\t\t\tprefix = \"\\t\";\n\t\t\t\t}\n\t\t\t\toutput += this.type\n\t\t\t\tif( this.sub.length == 1 ) {\n\t\t\t\t\treturn output + ' ' + this.sub[ 0 ].toString( prefix )\n\t\t\t\t}\n\t\t\t\toutput += \"\\n\"\n\t\t\t} else if( this.data.length || prefix.length ) {\n\t\t\t\toutput += \"\\\\\" + this.data + \"\\n\"\n\t\t\t}\n\n\t\t\tfor( var child of this.sub ) {\n\t\t\t\toutput += prefix\n\t\t\t\toutput += child.toString( prefix + \"\\t\" )\n\t\t\t}\n\t\t\t\n\t\t\treturn output\n\t\t}\n\t\t\n\t\t/**\n\t\t * Serializes AST to json.tree lang.\n\t\t * @todo Move to $mol_tree_json_to\n\t\t */\n\t\ttoJSON() : any {\n\t\t\tif( !this.type ) return this.value\n\t\t\t\n\t\t\tif( this.type === 'true' ) return true\n\t\t\tif( this.type === 'false' ) return false\n\t\t\tif( this.type === 'null' ) return null\n\t\t\t\n\t\t\tif( this.type === '*' ) {\n\t\t\t\tvar obj = {}\n\t\t\t\tfor( var child of this.sub ) {\n\t\t\t\t\tif( child.type === '-' ) continue\n\t\t\t\t\tvar key = child.type || child.clone({ sub : child.sub.slice( 0 , child.sub.length - 1 ) }).value\n\t\t\t\t\tvar val = child.sub[ child.sub.length - 1 ].toJSON()\n\t\t\t\t\tif( val !== undefined ) ( obj as any )[ key ] = val\n\t\t\t\t}\n\t\t\t\treturn obj\n\t\t\t}\n\t\t\t\n\t\t\tif( this.type === '/' ) {\n\t\t\t\tvar res : any[] = []\n\t\t\t\tthis.sub.forEach(\n\t\t\t\t\tchild => {\n\t\t\t\t\t\tif( child.type === '-' ) return\n\t\t\t\t\t\tvar val = child.toJSON()\n\t\t\t\t\t\tif( val !== undefined ) res.push( val )\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\treturn res\n\t\t\t}\n\t\t\t\n\t\t\tif( this.type === 'time' ) {\n\t\t\t\treturn new Date( this.value )\n\t\t\t}\n\t\t\t\n\t\t\tconst numb = Number( this.type ) \n\t\t\tif( !Number.isNaN( numb ) || this.type === 'NaN' ) return numb\n\t\t\t\n\t\t\tthrow new Error( `Unknown type (${this.type}) at ${this.uri}` )\n\t\t}\n\t\t\n\t\tget value() {\n\t\t\tvar values : string[] = []\n\t\t\tfor( var child of this.sub ) {\n\t\t\t\tif( child.type ) continue\n\t\t\t\tvalues.push( child.value )\n\t\t\t}\n\t\t\treturn this.data + values.join( \"\\n\" )\n\t\t}\n\t\t\n\t\t/** Makes new tree with node overrided by path. */\n\t\tinsert( value : $mol_tree , ...path : $mol_tree_path ) : $mol_tree {\n\t\t\tif( path.length === 0 ) return value\n\t\t\t\n\t\t\tconst type = path[0]\n\t\t\tif( typeof type === 'string' ) {\n\n\t\t\t\tlet replaced = false\n\t\t\t\tconst sub = this.sub.map( ( item , index )=> {\n\t\t\t\t\tif( item.type !== type ) return item\n\t\t\t\t\treplaced = true\n\t\t\t\t\treturn item.insert( value , ... path.slice( 1 ) )\n\t\t\t\t} )\n\t\t\t\t\n\t\t\t\tif( !replaced ) sub.push( new $mol_tree({ type }).insert( value , ... path.slice( 1 ) ) )\n\t\t\t\t\n\t\t\t\treturn this.clone({ sub })\n\n\t\t\t} else if( typeof type === 'number' ) {\n\t\t\t\t\n\t\t\t\tconst sub = this.sub.slice()\n\t\t\t\tsub[ type ] = ( sub[ type ] || new $mol_tree ).insert( value , ... path.slice( 1 ) )\n\t\t\t\t\n\t\t\t\treturn this.clone({ sub })\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\treturn this.clone({ sub : ( ( this.sub.length === 0 ) ? [ new $mol_tree() ] : this.sub ).map( item => item.insert( value , ... path.slice( 1 ) ) ) })\n\n\t\t\t}\n\t\t}\n\n\t\t/** Query nodes by path. */\n\t\tselect( ...path : $mol_tree_path ) {\n\t\t\tvar next = [ this as $mol_tree ]\n\t\t\tfor( var type of path ) {\n\t\t\t\tif( !next.length ) break\n\t\t\t\tvar prev = next\n\t\t\t\tnext = []\n\n\t\t\t\tfor( var item of prev ) {\n\n\t\t\t\t\tswitch( typeof( type ) ) {\n\n\t\t\t\t\t\tcase 'string' :\n\t\t\t\t\t\t\tfor( var child of item.sub ) {\n\t\t\t\t\t\t\t\tif( !type || ( child.type == type ) ) {\n\t\t\t\t\t\t\t\t\tnext.push( child )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\n\t\t\t\t\t\tcase 'number' :\n\t\t\t\t\t\t\tif( type < item.sub.length ) next.push( item.sub[ type ] )\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\n\t\t\t\t\t\tdefault : next.push( ... item.sub )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn new $mol_tree( { sub : next } )\n\t\t}\n\t\t\n\t\t/** Filter subnodes by path or value. */\n\t\tfilter( path : string[] , value? : string ) {\n\t\t\tvar sub = this.sub.filter(\n\t\t\t\tfunction( item ) {\n\t\t\t\t\t\n\t\t\t\t\tvar found = item.select( ...path )\n\t\t\t\t\t\n\t\t\t\t\tif( value == null ) {\n\t\t\t\t\t\treturn Boolean( found.sub.length )\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn found.sub.some( child => child.value == value )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t)\n\t\t\t\n\t\t\treturn new $mol_tree( { sub : sub } )\n\t\t}\n\n\t\t/** @deprecated Use $mol_tree:hack */\n\t\ttransform( visit : ( stack : $mol_tree[] , sub : ()=> $mol_tree[] )=> $mol_tree | null , stack : $mol_tree[] = [] ) : $mol_tree | null {\n\t\t\tconst sub_stack = [ this , ...stack ]\n\t\t\treturn visit( sub_stack , ()=> this.sub.map( node => node.transform( visit , sub_stack ) ).filter( n => n ) as $mol_tree[] )\n\t\t}\n\n\t\t/** Transform tree through context with transformers */\n\t\thack( context : $mol_tree_context ) : $mol_tree {\n\t\t\t\n\t\t\tconst sub = ( [] as $mol_tree[] ).concat( ... this.sub.map( child => {\n\n\t\t\t\tconst handle = context[ child.type ] || context[ '' ]\n\t\t\t\tif( !handle ) $mol_fail( child.error( 'Handler not defined' ) )\n\t\t\t\t\n\t\t\t\treturn handle( child , context )\n\n\t\t\t} ) )\n\n\t\t\treturn this.clone({ sub })\n\t\t}\n\n\t\t/** Makes Error with node coordinates. */\n\t\terror( message : string ) {\n\t\t\treturn new Error( `${message}:\\n${ this } ${this.baseUri}:${this.row}:${this.col}` )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\n\t$mol_test({\n\t\t\n\t\t'FQN of anon function'($) {\n\t\t\tconst $$ = Object.assign( $ , { $mol_func_name_test : ( ()=> ()=> {} )() } )\n\t\t\t$mol_assert_equal( $$.$mol_func_name_test.name , '' )\n\t\t\t$mol_assert_equal( $$.$mol_func_name( $$.$mol_func_name_test ) , '$mol_func_name_test' )\n\t\t\t$mol_assert_equal( $$.$mol_func_name_test.name , '$mol_func_name_test' )\n\t\t},\n\n\t})\n\n}\n","namespace $ {\n\t\n\texport function $mol_func_name( this : $ , func : Function ) : string {\n\t\t\n\t\tlet name = func.name\n\t\tif( name?.length > 1 ) return name\n\n\t\tfor( let key in this ) {\n\t\t\ttry {\n\t\t\t\tif( this[ key ] !== func ) continue\n\t\t\t\tname = key\n\t\t\t\tObject.defineProperty( func , 'name' , { value : name } )\n\t\t\t\tbreak\n\t\t\t} catch {}\n\t\t}\n\n\t\treturn name\n\t}\n\n\texport function $mol_func_name_from< Target extends Function >( target : Target , source : Function ) {\n\t\tObject.defineProperty( target , 'name' , { value : source.name } )\n\t\treturn target\n\t}\n\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'inserting'($) {\n\t\t\t$mol_assert_equal(\n\t\t\t\t$.$mol_tree2_from_string( 'a b c d\\n' )\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , 'a' , 'b' , 'c' )\n\t\t\t\t\t.toString(),\n\t\t\t\t'a b x\\n',\n\t\t\t)\n\t\t\t$mol_assert_equal(\n\t\t\t\t$.$mol_tree2_from_string( 'a b\\n' )\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , 'a' , 'b' , 'c' , 'd' )\n\t\t\t\t\t.toString(),\n\t\t\t\t'a b c x\\n',\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\t$.$mol_tree2_from_string( 'a b c d\\n' )\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , 0 , 0 , 0 )\n\t\t\t\t\t.toString(),\n\t\t\t\t'a b x\\n',\n\t\t\t)\n\t\t\t$mol_assert_equal(\n\t\t\t\t$.$mol_tree2_from_string( 'a b\\n' )\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , 0 , 0 , 0 , 0 )\n\t\t\t\t\t.toString(),\n\t\t\t\t'a b \\\\\\n\\tx\\n'\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\t$.$mol_tree2_from_string( 'a b c d\\n' )\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , null , null , null )\n\t\t\t\t\t.toString(),\n\t\t\t\t'a b x\\n',\n\t\t\t)\n\t\t\t$mol_assert_equal(\n\t\t\t\t$.$mol_tree2_from_string( 'a b\\n' )\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , null , null , null , null )\n\t\t\t\t\t.toString(),\n\t\t\t\t'a b \\\\\\n\\tx\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t'deleting'($) {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\t$.$mol_tree2_from_string( 'a b c d\\n' )\n\t\t\t\t\t.insert( null , 'a' , 'b' , 'c' )\n\t\t\t\t\t.toString(),\n\t\t\t\t'a b\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$.$mol_tree2_from_string( 'a b c d\\n' )\n\t\t\t\t\t.insert( null , 0, 0, 0 )\n\t\t\t\t\t.toString(),\n\t\t\t\t'a b\\n',\n\t\t\t)\n\t\t\t\n\t\t} ,\n\n\t\t'hack'($) {\n\n\t\t\tconst res = $.$mol_tree2_from_string( `foo bar xxx\\n` )\n\t\t\t.hack({\n\t\t\t\t'bar' : ( input , belt )=> [ input.struct( '777' , input.hack( belt ) ) ] ,\n\t\t\t})\n\n\t\t\t$mol_assert_equal( res.toString() , 'foo 777 xxx\\n' )\n\n\t\t} ,\n\n\t} )\t\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'fromJSON'() {\n\t\t\t$mol_assert_equal( $mol_tree2_from_json([]).toString() , '/\\n' )\n\t\t\t$mol_assert_equal( $mol_tree2_from_json([ false , true ]).toString() , '/\\n\\tfalse\\n\\ttrue\\n' )\n\t\t\t$mol_assert_equal( $mol_tree2_from_json([ 0 , 1 , 2.3 ]).toString() , '/\\n\\t0\\n\\t1\\n\\t2.3\\n' )\n\t\t\t$mol_assert_equal( $mol_tree2_from_json([ '' , 'foo' , 'bar\\nbaz' ]).toString() , '/\\n\\t\\\\\\n\\t\\\\foo\\n\\t\\\\\\n\\t\\t\\\\bar\\n\\t\\t\\\\baz\\n' )\n\t\t\t$mol_assert_equal( $mol_tree2_from_json({ 'foo' : false , 'bar\\nbaz' : 'lol' }).toString() , '*\\n\\tfoo false\\n\\t\\\\\\n\\t\\t\\\\bar\\n\\t\\t\\\\baz\\n\\t\\t\\\\lol\\n' )\n\t\t} ,\n\t\t\n\t} )\t\n}\n",null,null,null,null,null,null,"namespace $ {\n\n\t$mol_test({\n\n\t\t'config by value'() {\n\n\t\t\tconst N = $mol_data_setup( ( a : number )=> a , 5 )\n\t\t\t\n\t\t\t$mol_assert_equal( N.config , 5 )\n\t\t\t\n\t\t\ttype record_value = $mol_type_assert<\n\t\t\t\ttypeof N.Value ,\n\t\t\t\tnumber\n\t\t\t>\n\t\t\t\n\t\t} ,\n\n\t})\n\n}\n","namespace $ {\n\n\texport function $mol_data_setup<\n\t\tValue extends $mol_data_value ,\n\t\tConfig = never\n\t>(\n\t\tvalue : Value ,\n\t\tconfig : Config ,\n\t) {\n\t\t\n\t\treturn Object.assign( value , {\n\t\t\tconfig ,\n\t\t\tValue : null as any as ReturnType< Value >\n\t\t} )\n\n\t}\n\n}\n","namespace $ {\n\t$mol_test({\n\n\t\t'function'() {\n\t\t\t$mol_assert_not( $mol_func_is_class( function() {} ) )\n\t\t},\n\t\t\n\t\t'generator'() {\n\t\t\t$mol_assert_not( $mol_func_is_class( function*(){} ) )\n\t\t},\n\n\t\t'async'() {\n\t\t\t$mol_assert_not( $mol_func_is_class( async function(){} ) )\n\t\t},\n\n\t\t'arrow'() {\n\t\t\t$mol_assert_not( $mol_func_is_class( ()=> null ) )\n\t\t},\n\n\t\t'named class'() {\n\t\t\t$mol_assert_ok( $mol_func_is_class( class Foo {} ) )\n\t\t},\n\n\t\t'unnamed class'() {\n\t\t\t$mol_assert_ok( $mol_func_is_class( class {} ) )\n\t\t},\n\n\t})\n}\n","namespace $ {\n\n\texport function $mol_func_is_class( func: Function ) {\n\t\treturn Object.getOwnPropertyDescriptor( func, 'prototype' )?.writable === false\n\t}\n\n}\n",null,null,null,null,"namespace $ {\n\n\t$mol_test({\n\n\t\t// @todo enable on strict\n\t\t// 'no functions'() {\n\t\t\t\n\t\t// \tconst stringify = $mol_data_pipe()\n\t\t\t\n\t\t// \ttype Type = $mol_type_assert<\n\t\t// \t\ttypeof stringify,\n\t\t// \t\t( input : never )=> never\n\t\t// \t>\n\t\n\t\t// },\n\n\t\t'single function'() {\n\t\t\t\n\t\t\tconst stringify = $mol_data_pipe(\n\t\t\t\t( input : number )=> input.toString() ,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal( stringify( 5 ) , '5' )\n\t\t\t\n\t\t},\n\n\t\t'two functions'() {\n\n\t\t\tconst isLong = $mol_data_pipe(\n\t\t\t\t( input : number )=> input.toString() ,\n\t\t\t\t( input : string )=> input.length > 2 ,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal( isLong( 5.0 ) , false )\n\t\t\t$mol_assert_equal( isLong( 5.1 ) , true )\n\t\t\t\n\t\t},\n\n\t\t'three functions'() {\n\n\t\t\tconst pattern = $mol_data_pipe(\n\t\t\t\t( input : number )=> input.toString() ,\n\t\t\t\t( input : string )=> new RegExp( input ) ,\n\t\t\t\t( input : RegExp )=> input.toString() ,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal( pattern( 5 ) , '/5/' )\n\t\t\t\n\t\t},\n\n\t\t'classes'() {\n\n\t\t\tclass Box {\n\t\t\t\tconstructor( public value : string ) {}\n\t\t\t}\n\n\t\t\tconst boxify = $mol_data_pipe(\n\t\t\t\t( input : number )=> input.toString() ,\n\t\t\t\tBox\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_ok( boxify( 5 ) instanceof Box )\n\t\t\t$mol_assert_like( boxify( 5 ).value, '5' )\n\t\t\t\n\t\t},\n\n\t})\n\n}\n","namespace $ {\n\n\ttype Guard_value<\n\t\tFuncs extends $mol_type_unary[] ,\n\t\tIndex extends keyof Funcs\n\t> = $mol_type_param<\n\t\tIndex extends keyof $mol_type_tail< Funcs >\n\t\t\t? $mol_type_tail< Funcs >[ Index ]\n\t\t\t: any ,\n\t\t0\n\t>\n\n\ttype Guard<\n\t\tFuncs extends $mol_type_unary[]\n\t> = {\n\t\t[ Index in keyof Funcs ] : (\n\t\t\tFuncs[Index] extends $mol_type_unary_func\n\t\t\t\t? (\n\t\t\t\t\tinput : $mol_type_param< Funcs[Index] , 0 >\n\t\t\t\t) => Guard_value< Funcs , Index >\n\t\t\t\t: new(\n\t\t\t\t\tinput : $mol_type_param< Funcs[Index] , 0 >\n\t\t\t\t) => Guard_value< Funcs , Index >\n\t\t)\n\t}\n\n\t/**\n\t * Combines list of unary functions/classes to one function.\n\t * \n\t * \tconst reparse = $mol_data_pipe( JSON.stringify , JSON.parse )\n\t **/\n\texport function $mol_data_pipe<\n\t\tFuncs extends $mol_type_unary[]\n\t>(\n\t\t... funcs : Funcs & Guard< Funcs >\n\t) {\n\n\t\treturn $mol_data_setup(\n\t\t\tfunction( this: any, input : $mol_type_param< Funcs[0] , 0 > ) {\n\t\t\t\tlet value : any = input\n\t\t\t\tfor( const func of funcs as any ) value = $mol_func_is_class( func ) ? new func( value ) : func.call( this, value )\n\t\t\t\treturn value as $mol_type_result<\n\t\t\t\t\t$mol_type_foot< Funcs >\n\t\t\t\t>\n\t\t\t},\n\t\t\t{ funcs }\n\t\t)\n\n\t}\n\n}\n","namespace $ {\n\n\tconst convert = $mol_data_pipe(\n\t\t$mol_tree2_from_string,\n\t\t$mol_tree2_js_to_text,\n\t\t$mol_tree2_text_to_string,\n\t)\n\n\t$mol_test({\n\n\t\t'boolean'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\ttrue\n\t\t\t\t`),\n\t\t\t\t'true\\n',\n\t\t\t)\n\t\t},\n\t\t\n\t\t'number'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t1.2\n\t\t\t\t`),\n\t\t\t\t'1.2\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t1e+2\n\t\t\t\t`),\n\t\t\t\t'1e+2\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t-Infinity\n\t\t\t\t`),\n\t\t\t\t'-Infinity\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tNaN\n\t\t\t\t`),\n\t\t\t\t'NaN\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t'variable'() {\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\ta\n\t\t\t\t`),\n\t\t\t\t'a\\n',\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t$\n\t\t\t\t`),\n\t\t\t\t'$\\n',\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\ta0\n\t\t\t\t`),\n\t\t\t\t'a0\\n',\n\t\t\t)\n\n\t\t},\n\t\t\n\t\t'string'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t\\\\\n\t\t\t\t\t\t\\\\foo\n\t\t\t\t\t\t\\\\bar\n\t\t\t\t`),\n\t\t\t\t'\"foo\\\\nbar\"\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t\\`\\`\n\t\t\t\t\t\t\\\\foo\n\t\t\t\t\t\tbar\n\t\t\t\t`),\n\t\t\t\t'`foo${bar}`\\n',\n\t\t\t)\n\n\t\t},\n\n\t\t'wrong name'() {\n\t\t\t$mol_assert_fail(\n\t\t\t\t()=> convert(`\n\t\t\t\t\tfoo+bar\n\t\t\t\t`),\n\t\t\t\t'Wrong node type\\nfoo+bar\\nunknown#2:6/7',\n\t\t\t)\n\t\t},\n\n\t\t'array'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t[,]\n\t\t\t\t`),\n\t\t\t\t'[]\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t[,]\n\t\t\t\t\t\t1\n\t\t\t\t\t\t2\n\t\t\t\t`),\n\t\t\t\t'[1, 2]\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'last'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t(,)\n\t\t\t\t\t\t1\n\t\t\t\t\t\t2\n\t\t\t\t`),\n\t\t\t\t'(1, 2)\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'scope'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t{;}\n\t\t\t\t\t\t1\n\t\t\t\t\t\t2\n\t\t\t\t`),\n\t\t\t\t'{1; 2}\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'object'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t{,}\n\t\t\t\t`),\n\t\t\t\t'{}\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t{,}\n\t\t\t\t\t\tfoo\n\t\t\t\t\t\tbar\n\t\t\t\t`),\n\t\t\t\t'{foo, bar}\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t{,}\n\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\\\\foo\n\t\t\t\t\t\t\t1\n\t\t\t\t\t\t:\n\t\t\t\t\t\t\tbar\n\t\t\t\t\t\t\t2\n\t\t\t\t`),\n\t\t\t\t'{\"foo\": 1, [bar]: 2}\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'regexp'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t/./\n\t\t\t\t\t\t.source \\\\foo\\\\n\n\t\t\t\t\t\t.multiline\n\t\t\t\t\t\t.ignoreCase\n\t\t\t\t\t\t.global\n\t\t\t\t`),\n\t\t\t\t'/foo\\\\\\\\n/mig\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'unary'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tvoid yield* yield await ~ ! - + 1\n\t\t\t\t`),\n\t\t\t\t'void yield* yield await ~!-+1\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'binary'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t(+)\n\t\t\t\t\t\t1\n\t\t\t\t\t\t2\n\t\t\t\t\t\t3\n\t\t\t\t`),\n\t\t\t\t'(\\n\\t1 + \\n\\t2 + \\n\\t3\\n)\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t@++ foo\n\t\t\t\t`),\n\t\t\t\t'foo++\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'chain'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t()\n\t\t\t\t\t\tfoo\n\t\t\t\t\t\t[] \\\\bar\n\t\t\t\t\t\t[] 1\n\t\t\t\t`),\n\t\t\t\t'(foo.bar[1])\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t()\n\t\t\t\t\t\tfoo\n\t\t\t\t\t\t[] 1\n\t\t\t\t\t\t(,)\n\t\t\t\t`),\n\t\t\t\t'(foo[1]())\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t()\n\t\t\t\t\t\t[,] 0\n\t\t\t\t\t\t[] 1\n\t\t\t\t\t\t(,)\n\t\t\t\t\t\t\t2\n\t\t\t\t\t\t\t3\n\t\t\t\t`),\n\t\t\t\t'([0][1](2, 3))\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'function'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t=>\n\t\t\t\t\t\t(,)\n\t\t\t\t\t\t1\n\t\t\t\t`),\n\t\t\t\t'() => 1\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tasync=>\n\t\t\t\t\t\t(,)\n\t\t\t\t\t\t1\n\t\t\t\t`),\n\t\t\t\t'async () => 1\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tfunction\n\t\t\t\t\t\tfoo\n\t\t\t\t\t\t(,)\n\t\t\t\t\t\t{;}\n\t\t\t\t`),\n\t\t\t\t'function foo(){}\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tfunction\n\t\t\t\t\t\t(,) foo\n\t\t\t\t\t\t{;} debugger\n\t\t\t\t`),\n\t\t\t\t'function (foo){debugger}\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tfunction*\n\t\t\t\t\t\t(,)\n\t\t\t\t\t\t{;}\n\t\t\t\t`),\n\t\t\t\t'function* (){}\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tasync\n\t\t\t\t\t\t(,)\n\t\t\t\t\t\t{;}\n\t\t\t\t`),\n\t\t\t\t'async function (){}\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tasync*\n\t\t\t\t\t\t(,) foo\n\t\t\t\t\t\t{;} debugger\n\t\t\t\t`),\n\t\t\t\t'async function* (foo){debugger}\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'class'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tclass\n\t\t\t\t\t\tFoo\n\t\t\t\t\t\t{}\n\t\t\t\t`),\n\t\t\t\t'class Foo {}\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tclass\n\t\t\t\t\t\tFoo\n\t\t\t\t\t\textends Bar\n\t\t\t\t\t\t{}\n\t\t\t\t`),\n\t\t\t\t'class Foo extends Bar {}\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tclass {}\n\t\t\t\t\t\t.\n\t\t\t\t\t\t\t\\\\foo\n\t\t\t\t\t\t\t(,)\n\t\t\t\t\t\t\t{;}\n\t\t\t\t`),\n\t\t\t\t'class {foo(){}}\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tclass {}\n\t\t\t\t\t\tstatic\n\t\t\t\t\t\t\t\\\\foo\n\t\t\t\t\t\t\t(,)\n\t\t\t\t\t\t\t{;}\n\t\t\t\t`),\n\t\t\t\t'class {static [\"foo\"](){}}\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tclass {}\n\t\t\t\t\t\tget\n\t\t\t\t\t\t\t\\\\foo\n\t\t\t\t\t\t\t(,)\n\t\t\t\t\t\t\t{;}\n\t\t\t\t`),\n\t\t\t\t'class {get [\"foo\"](){}}\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tclass {}\n\t\t\t\t\t\tset\n\t\t\t\t\t\t\t\\\\foo\n\t\t\t\t\t\t\t(,) bar\n\t\t\t\t\t\t\t{;}\n\t\t\t\t`),\n\t\t\t\t'class {set [\"foo\"](bar){}}\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'if'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t?:\n\t\t\t\t\t\t1\n\t\t\t\t\t\t2\n\t\t\t\t\t\t3\n\t\t\t\t`),\n\t\t\t\t'1 ? 2 : 3\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tif\n\t\t\t\t\t\t() 1\n\t\t\t\t\t\t{;} 2\n\t\t\t\t`),\n\t\t\t\t'if(1) {2}\\n',\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tif\n\t\t\t\t\t\t() 1\n\t\t\t\t\t\t{;} 2\n\t\t\t\t\t\t{;} 3\n\t\t\t\t`),\n\t\t\t\t'if(1) {2}else{3}\\n',\n\t\t\t)\n\n\t\t},\n\n\t\t'assign'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t=\n\t\t\t\t\t\tfoo\n\t\t\t\t\t\tbar\n\t\t\t\t`),\n\t\t\t\t'foo = bar\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t=\n\t\t\t\t\t\t[,]\n\t\t\t\t\t\t\tfoo\n\t\t\t\t\t\t\tbar\n\t\t\t\t\t\t[,]\n\t\t\t\t\t\t\t1\n\t\t\t\t\t\t\t2\n\t\t\t\t`),\n\t\t\t\t'[foo, bar] = [1, 2]\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tlet foo\n\t\t\t\t`),\n\t\t\t\t'let foo\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tlet\n\t\t\t\t\t\tfoo\n\t\t\t\t\t\tbar\n\t\t\t\t`),\n\t\t\t\t'let foo = bar\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t+=\n\t\t\t\t\t\tfoo\n\t\t\t\t\t\tbar\n\t\t\t\t`),\n\t\t\t\t'foo += bar\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t})\n\n}\n","namespace $ {\n\t$mol_test({\n\n\t\t'min'() {\n\t\t\t$mol_assert_equal( $mol_vlq_encode( Number.MIN_SAFE_INTEGER ), '//////H' )\n\t\t},\n\n\t\t'negative'() {\n\t\t\t$mol_assert_equal( $mol_vlq_encode( -1 ), 'D' )\n\t\t},\n\n\t\t'zero'() {\n\t\t\t$mol_assert_equal( $mol_vlq_encode( 0 ), 'A' )\n\t\t},\n\n\t\t'binom'() {\n\t\t\t$mol_assert_equal( $mol_vlq_encode( 67 ), 'mE' )\n\t\t},\n\n\t\t'max'() {\n\t\t\t$mol_assert_equal( $mol_vlq_encode( Number.MAX_SAFE_INTEGER ), '+/////H' )\n\t\t},\n\n\t})\n}\n","namespace $ {\n\t$mol_test({\n\t\t'sample source mapped lang'( $ ) {\n\n\t\t\tconst source = {\n\t\t\t\tscript1: `1@\\n2`,\n\t\t\t\tscript2: `***`\n\t\t\t}\n\n\t\t\tconst span = {\n\t\t\t\tscript1: $mol_span.entire( 'script1', source.script1 ),\n\t\t\t\tscript2: $mol_span.entire( 'script2', source.script2 ),\n\t\t\t}\n\n\t\t\tconst tree = $mol_tree2.list([\n\t\t\t\t$mol_tree2.struct( 'line', [\n\t\t\t\t\t$mol_tree2.data( '\"use strict\";', [], span.script1.after() ),\n\t\t\t\t\t$mol_tree2.data( 'console.log(11);', [], span.script1.slice( 0, 1 ) ),\n\t\t\t\t\t$mol_tree2.data( 'console.log(21);', [], span.script2 ),\n\t\t\t\t\t$mol_tree2.data( 'console.log(12);', [], span.script1.span( 2, 1, 1 ) ),\n\t\t\t\t], span.script1 ),\n\t\t\t], span.script1 )\n\n\t\t\t$mol_assert_like(\n\t\t\t\t$.$mol_tree2_text_to_string( tree ),\n\t\t\t\t'\"use strict\";console.log(11);console.log(21);console.log(12);\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\t$.$mol_tree2_text_to_sourcemap( tree ),\n\t\t\t\t{\n\t\t\t\t\t\"version\": 3,\n\t\t\t\t\t\"sources\": [\n\t\t\t\t\t\t\"script1\",\n\t\t\t\t\t\t\"script2\"\n\t\t\t\t\t],\n\t\t\t\t\t\"sourcesContent\": [ source.script1, source.script2 ],\n\t\t\t\t\t\"mappings\": \"AAAA,AAAI,aAAJ,gBCAA,gBDCA;\"\n\t\t\t\t}\n\t\t\t)\n\n\t\t}\n\t})\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'atoms'($) {\n\t\t\t$mol_assert_equal( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"null\\n\" ).kids[0] ) , null )\n\t\t\t$mol_assert_equal( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"true\\n\" ).kids[0] ) , true )\n\t\t\t$mol_assert_equal( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"false\\n\" ).kids[0] ) , false )\n\t\t},\n\t\t\n\t\t'numbers'($) {\n\t\t\t$mol_assert_equal( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"1\\n\" ).kids[0] ) , 1 )\n\t\t\t$mol_assert_equal( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"1.2\\n\" ).kids[0] ) , 1.2 )\n\t\t\t$mol_assert_equal( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"1.2e+2\\n\" ).kids[0] ) , 120 )\n\t\t\t$mol_assert_equal( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"NaN\\n\" ).kids[0] ) , Number.NaN )\n\t\t\t$mol_assert_equal( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"+Infinity\\n\" ).kids[0] ) , Number.POSITIVE_INFINITY )\n\t\t\t$mol_assert_equal( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"-Infinity\\n\" ).kids[0] ) , Number.NEGATIVE_INFINITY )\n\t\t},\n\t\t\n\t\t'string'($) {\n\t\t\t$mol_assert_equal( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"\\\\foo\\n\" ).kids[0] ) , 'foo' )\n\t\t\t$mol_assert_equal( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"\\\\\\n\\t\\\\foo\\n\\t\\\\bar\\n\" ).kids[0] ) , 'foo\\nbar' )\n\t\t},\n\t\t\n\t\t'array'($) {\n\t\t\t$mol_assert_like( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"/\\n\" ).kids[0] ) , [] )\n\t\t\t$mol_assert_like( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"/\\n\\t\\\\foo\\n\\t\\\\bar\\n\" ).kids[0] ) , [ 'foo', 'bar' ] )\n\t\t\t$mol_assert_like( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"/\\n\\t- \\\\foo\\n\\t\\\\bar\\n\" ).kids[0] ) , [ 'bar' ] )\n\t\t},\n\t\t\n\t\t'object'($) {\n\t\t\t$mol_assert_like( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"*\\n\" ).kids[0] ) , {} )\n\t\t\t$mol_assert_like( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"*\\n\\t\\\\foo\\n\\t\\t\\\\bar\\n\" ).kids[0] ) , { foo: 'bar' } )\n\t\t\t$mol_assert_like( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"*\\n\\t\\\\\\n\\t\\t\\\\foo\\n\\t\\t\\\\bar\\n\\t\\t\\\\lol\\n\" ).kids[0] ) , { 'foo\\nbar': 'lol' } )\n\t\t},\n\t\t\n\t})\n}\n"]}
|