UNPKG

pixi.js

Version:

<p align="center"> <a href="https://pixijs.com" target="_blank" rel="noopener noreferrer"> <img height="150" src="https://files.pixijs.download/branding/pixijs-logo-transparent-dark.svg?v=1" alt="PixiJS logo"> </a> </p> <br/> <p align="center">

1 lines 4.01 MB
{"version":3,"file":"webworker.min.mjs","sources":["../src/environment-browser/BrowserAdapter.ts","../src/environment/adapter.ts","../node_modules/@xmldom/xmldom/lib/conventions.js","../node_modules/@xmldom/xmldom/lib/dom.js","../node_modules/@xmldom/xmldom/lib/entities.js","../node_modules/@xmldom/xmldom/lib/sax.js","../node_modules/@xmldom/xmldom/lib/dom-parser.js","../node_modules/@xmldom/xmldom/lib/index.js","../src/environment-webworker/WebWorkerAdapter.ts","../src/extensions/Extensions.ts","../src/app/ResizePlugin.ts","../src/ticker/const.ts","../src/ticker/TickerListener.ts","../src/ticker/Ticker.ts","../src/app/TickerPlugin.ts","../src/app/init.ts","../src/assets/loader/parsers/LoaderParser.ts","../src/utils/path.ts","../src/assets/utils/convertToList.ts","../src/assets/utils/createStringVariations.ts","../src/assets/utils/isSingleItem.ts","../src/assets/resolver/Resolver.ts","../src/assets/utils/copySearchParams.ts","../node_modules/eventemitter3/index.js","../src/maths/misc/const.ts","../src/maths/point/Point.ts","../src/maths/matrix/Matrix.ts","../src/maths/matrix/groupD8.ts","../src/maths/shapes/Rectangle.ts","../src/utils/data/uid.ts","../src/utils/misc/NOOP.ts","../src/maths/misc/pow2.ts","../src/scene/container/utils/definedProps.ts","../src/rendering/renderers/shared/texture/TextureStyle.ts","../src/rendering/renderers/shared/texture/sources/TextureSource.ts","../src/rendering/renderers/shared/texture/sources/BufferImageSource.ts","../src/rendering/renderers/shared/texture/TextureMatrix.ts","../src/rendering/renderers/shared/texture/Texture.ts","../src/spritesheet/Spritesheet.ts","../src/spritesheet/spritesheetAsset.ts","../src/spritesheet/init.ts","../src/maths/point/ObservablePoint.ts","../src/utils/data/updateQuadBounds.ts","../src/scene/container/bounds/Bounds.ts","../node_modules/@pixi/colord/index.mjs","../node_modules/@pixi/colord/plugins/names.mjs","../src/color/Color.ts","../src/culling/cullingMixin.ts","../src/utils/pool/GlobalResourceRegistry.ts","../src/utils/pool/Pool.ts","../src/utils/pool/PoolGroup.ts","../src/scene/container/container-mixins/cacheAsTextureMixin.ts","../src/utils/data/removeItems.ts","../src/scene/container/container-mixins/childrenHelperMixin.ts","../src/scene/container/container-mixins/collectRenderablesMixin.ts","../src/filters/FilterEffect.ts","../src/rendering/mask/MaskEffectManager.ts","../src/scene/container/container-mixins/effectsMixin.ts","../src/scene/container/container-mixins/findMixin.ts","../src/scene/container/bounds/utils/matrixAndBoundsPool.ts","../src/scene/container/container-mixins/getFastGlobalBoundsMixin.ts","../src/scene/container/bounds/getGlobalBounds.ts","../src/scene/container/utils/multiplyHexColors.ts","../src/scene/container/utils/multiplyColors.ts","../src/scene/container/container-mixins/getGlobalMixin.ts","../src/scene/container/bounds/getLocalBounds.ts","../src/scene/container/utils/checkChildrenDidChange.ts","../src/scene/container/container-mixins/measureMixin.ts","../src/scene/container/container-mixins/onRenderMixin.ts","../src/scene/container/container-mixins/sortMixin.ts","../src/scene/container/container-mixins/toLocalGlobalMixin.ts","../src/rendering/renderers/shared/instructions/InstructionSet.ts","../src/rendering/renderers/shared/texture/TexturePool.ts","../src/scene/container/RenderGroup.ts","../src/scene/container/utils/assignWithIgnore.ts","../src/scene/container/Container.ts","../src/scene/view/ViewContainer.ts","../src/scene/sprite/Sprite.ts","../src/rendering/mask/utils/addMaskBounds.ts","../src/rendering/mask/utils/addMaskLocalBounds.ts","../src/rendering/mask/alpha/AlphaMask.ts","../src/rendering/mask/color/ColorMask.ts","../src/rendering/mask/stencil/StencilMask.ts","../src/rendering/renderers/shared/texture/sources/CanvasSource.ts","../src/rendering/renderers/shared/texture/sources/ImageSource.ts","../src/utils/browser/detectVideoAlphaMode.ts","../src/rendering/renderers/shared/texture/sources/VideoSource.ts","../src/assets/cache/Cache.ts","../src/rendering/renderers/shared/texture/utils/textureFrom.ts","../src/rendering/init.ts","../src/rendering/renderers/gpu/shader/BindGroup.ts","../src/rendering/batcher/gpu/getTextureBatchBindGroup.ts","../src/utils/data/ViewableBuffer.ts","../src/utils/logging/deprecation.ts","../src/rendering/renderers/shared/buffer/utils/fastCopy.ts","../src/rendering/renderers/shared/state/const.ts","../src/rendering/renderers/shared/state/getAdjustedBlendModeBlend.ts","../src/rendering/renderers/gl/shader/program/getTestContext.ts","../src/rendering/batcher/gl/utils/checkMaxIfStatementsInShader.ts","../src/rendering/batcher/gl/utils/maxRecommendedTextures.ts","../src/rendering/batcher/shared/BatchTextureArray.ts","../src/rendering/batcher/shared/Batcher.ts","../src/rendering/renderers/shared/buffer/const.ts","../src/rendering/renderers/shared/buffer/Buffer.ts","../src/rendering/renderers/shared/geometry/utils/ensureIsBuffer.ts","../src/rendering/renderers/shared/geometry/utils/getGeometryBounds.ts","../src/rendering/renderers/shared/geometry/Geometry.ts","../src/rendering/batcher/shared/BatchGeometry.ts","../src/rendering/renderers/shared/utils/createIdFromString.ts","../src/rendering/renderers/gl/shader/program/getMaxFragmentPrecision.ts","../src/rendering/renderers/gl/shader/program/preprocessors/addProgramDefines.ts","../src/rendering/renderers/gl/shader/program/preprocessors/ensurePrecision.ts","../src/rendering/renderers/gl/shader/program/preprocessors/insertVersion.ts","../src/rendering/renderers/gl/shader/program/preprocessors/setProgramName.ts","../src/rendering/renderers/gl/shader/program/preprocessors/stripVersion.ts","../src/rendering/renderers/gl/shader/GlProgram.ts","../src/rendering/renderers/shared/geometry/utils/getAttributeInfoFromFormat.ts","../src/rendering/renderers/gpu/shader/utils/extractAttributesFromGpuProgram.ts","../src/rendering/renderers/gpu/shader/utils/extractStructAndGroups.ts","../src/rendering/renderers/shared/shader/const.ts","../src/rendering/renderers/gpu/shader/utils/generateGpuLayoutGroups.ts","../src/rendering/renderers/gpu/shader/utils/generateLayoutHash.ts","../src/rendering/renderers/gpu/shader/utils/removeStructAndGroupDuplicates.ts","../src/rendering/renderers/gpu/shader/GpuProgram.ts","../src/rendering/high-shader/compiler/utils/addBits.ts","../src/rendering/high-shader/compiler/utils/compileHooks.ts","../src/rendering/high-shader/compiler/utils/compileInputs.ts","../src/rendering/high-shader/compiler/utils/compileOutputs.ts","../src/rendering/high-shader/compiler/utils/injectBits.ts","../src/rendering/high-shader/compiler/compileHighShader.ts","../src/rendering/high-shader/defaultProgramTemplate.ts","../src/rendering/high-shader/shader-bits/globalUniformsBit.ts","../src/rendering/high-shader/compileHighShaderToProgram.ts","../src/rendering/high-shader/shader-bits/colorBit.ts","../src/rendering/high-shader/shader-bits/generateTextureBatchBit.ts","../src/rendering/high-shader/shader-bits/roundPixelsBit.ts","../src/rendering/renderers/shared/shader/types.ts","../src/rendering/renderers/shared/shader/utils/getDefaultUniformValue.ts","../src/rendering/renderers/shared/shader/UniformGroup.ts","../src/rendering/renderers/gl/shader/getBatchSamplersUniformGroup.ts","../src/rendering/renderers/types.ts","../src/rendering/renderers/shared/shader/Shader.ts","../src/rendering/batcher/shared/DefaultShader.ts","../src/rendering/batcher/shared/DefaultBatcher.ts","../src/utils/data/GCManagedHash.ts","../src/rendering/renderers/shared/geometry/utils/buildUvs.ts","../src/rendering/renderers/shared/geometry/utils/transformVertices.ts","../src/scene/graphics/shared/BatchableGraphics.ts","../src/scene/graphics/shared/buildCommands/buildCircle.ts","../src/scene/graphics/shared/const.ts","../src/scene/graphics/shared/utils/getOrientationOfPoints.ts","../src/scene/graphics/shared/buildCommands/buildLine.ts","../src/scene/graphics/shared/buildCommands/buildPixelLine.ts","../node_modules/earcut/src/earcut.js","../src/utils/utils.ts","../src/scene/graphics/shared/utils/triangulateWithHoles.ts","../src/scene/graphics/shared/buildCommands/buildPolygon.ts","../src/scene/graphics/shared/buildCommands/buildRectangle.ts","../src/scene/graphics/shared/buildCommands/buildTriangle.ts","../src/scene/graphics/shared/fill/FillGradient.ts","../src/scene/graphics/shared/utils/generateTextureFillMatrix.ts","../src/scene/graphics/shared/utils/buildContextBatches.ts","../src/scene/graphics/shared/GraphicsContextSystem.ts","../src/rendering/renderers/shared/state/State.ts","../src/scene/graphics/gpu/colorToUniform.ts","../src/scene/graphics/shared/GraphicsPipe.ts","../src/scene/graphics/init.ts","../src/scene/mesh/shared/BatchableMesh.ts","../src/scene/mesh/shared/MeshPipe.ts","../src/scene/mesh/init.ts","../src/scene/particle-container/gl/GlParticleContainerAdaptor.ts","../src/scene/particle-container/shared/utils/createIndicesForQuads.ts","../src/scene/particle-container/shared/utils/generateParticleUpdateFunction.ts","../src/scene/particle-container/shared/ParticleBuffer.ts","../src/scene/particle-container/shared/shader/ParticleShader.ts","../src/scene/particle-container/shared/ParticleContainerPipe.ts","../src/scene/particle-container/shared/GlParticleContainerPipe.ts","../src/scene/particle-container/gpu/GpuParticleContainerAdaptor.ts","../src/scene/particle-container/shared/GpuParticleContainerPipe.ts","../src/scene/particle-container/init.ts","../src/scene/text/utils/updateTextBounds.ts","../src/scene/sprite/BatchableSprite.ts","../src/scene/text/canvas/BatchableText.ts","../src/scene/text/canvas/CanvasTextPipe.ts","../src/scene/graphics/shared/fill/FillPattern.ts","../node_modules/parse-svg-path/index.js","../src/scene/graphics/shared/svg/parseSVGPath.ts","../src/maths/shapes/Circle.ts","../src/maths/shapes/Ellipse.ts","../src/maths/misc/squaredDistanceToLineSegment.ts","../src/maths/shapes/Polygon.ts","../src/maths/shapes/RoundedRectangle.ts","../src/scene/graphics/shared/buildCommands/buildAdaptiveBezier.ts","../src/scene/graphics/shared/buildCommands/buildAdaptiveQuadratic.ts","../src/scene/graphics/shared/buildCommands/buildArc.ts","../src/scene/graphics/shared/buildCommands/buildArcTo.ts","../src/scene/graphics/shared/buildCommands/buildArcToSvg.ts","../src/scene/graphics/shared/path/roundShape.ts","../src/scene/graphics/shared/path/ShapePath.ts","../src/scene/graphics/shared/path/GraphicsPath.ts","../src/utils/logging/warn.ts","../src/scene/graphics/shared/svg/parseSVGFloatAttribute.ts","../src/scene/graphics/shared/svg/parseSVGDefinitions.ts","../src/scene/graphics/shared/svg/utils/extractSvgUrlId.ts","../src/scene/graphics/shared/svg/parseSVGStyle.ts","../src/scene/graphics/shared/svg/utils/fillOperations.ts","../src/scene/graphics/shared/svg/utils/pathOperations.ts","../src/scene/graphics/shared/svg/SVGParser.ts","../src/scene/graphics/shared/utils/convertFillInputToFillStyle.ts","../src/scene/graphics/shared/GraphicsContext.ts","../src/scene/text/TextStyle.ts","../src/scene/text/utils/getPo2TextureFromSource.ts","../src/rendering/renderers/shared/texture/CanvasPool.ts","../src/utils/canvas/getCanvasBoundingBox.ts","../node_modules/tiny-lru/dist/tiny-lru.js","../src/scene/text/canvas/utils/fontStringFromTextStyle.ts","../src/scene/text/canvas/CanvasTextMetrics.ts","../src/scene/text/canvas/utils/getCanvasFillStyle.ts","../src/scene/text/canvas/CanvasTextGenerator.ts","../src/scene/text/canvas/CanvasTextSystem.ts","../src/scene/text/init.ts","../src/scene/graphics/shared/Graphics.ts","../src/scene/text/sdfShader/shader-bits/localUniformMSDFBit.ts","../src/scene/text/sdfShader/shader-bits/mSDFBit.ts","../src/scene/text/sdfShader/SdfShader.ts","../src/scene/text-bitmap/AbstractBitmapFont.ts","../src/scene/text-bitmap/DynamicBitmapFont.ts","../src/scene/text-bitmap/utils/getBitmapTextLayout.ts","../src/scene/text-bitmap/utils/resolveCharacters.ts","../src/scene/text-bitmap/BitmapFontManager.ts","../src/scene/text-bitmap/BitmapTextPipe.ts","../src/scene/text-bitmap/init.ts","../src/scene/text-html/BatchableHTMLText.ts","../src/scene/text-html/HTMLTextPipe.ts","../src/utils/browser/isSafari.ts","../src/scene/text-html/HTMLTextRenderData.ts","../src/scene/text-html/utils/extractFontFamilies.ts","../src/scene/text-html/utils/loadFontAsBase64.ts","../src/scene/text-html/utils/loadFontCSS.ts","../src/scene/text-html/utils/getFontCss.ts","../src/scene/text-html/utils/getSVGUrl.ts","../src/scene/text-html/utils/getTemporaryCanvasFromImage.ts","../src/scene/text-html/utils/loadSVGImage.ts","../src/scene/text-html/utils/measureHtmlText.ts","../src/scene/text-html/HTMLTextSystem.ts","../src/scene/text-html/init.ts","../src/scene/mesh/shared/MeshGeometry.ts","../src/rendering/high-shader/shader-bits/localUniformBit.ts","../src/scene/sprite-tiling/shader/tilingBit.ts","../src/scene/sprite-tiling/shader/TilingSpriteShader.ts","../src/scene/sprite-tiling/utils/QuadGeometry.ts","../src/scene/sprite-tiling/utils/setPositions.ts","../src/scene/sprite-tiling/utils/applyMatrix.ts","../src/scene/sprite-tiling/utils/setUvs.ts","../src/scene/sprite-tiling/TilingSpritePipe.ts","../src/scene/sprite-tiling/init.ts","../src/scene/mesh-plane/PlaneGeometry.ts","../src/scene/sprite-nine-slice/NineSliceGeometry.ts","../src/scene/sprite-nine-slice/NineSliceSpritePipe.ts","../src/scene/sprite-nine-slice/init.ts","../src/filters/FilterPipe.ts","../src/filters/Filter.ts","../src/filters/defaults/passthrough/PassthroughFilter.ts","../src/maths/point/pointInTriangle.ts","../src/maths/shapes/Triangle.ts","../src/scene/container/bounds/getRenderableBounds.ts","../src/filters/FilterSystem.ts","../src/filters/init.ts","../src/environment/autoDetectEnvironment.ts","../src/utils/browser/unsafeEvalSupported.ts","../src/rendering/renderers/gl/const.ts","../src/rendering/renderers/shared/system/SystemRunner.ts","../src/rendering/renderers/shared/system/AbstractRenderer.ts","../src/utils/browser/isWebGLSupported.ts","../src/utils/browser/isWebGPUSupported.ts","../src/rendering/renderers/autoDetectRenderer.ts","../src/utils/const.ts","../src/utils/global/globalHooks.ts","../src/app/Application.ts","../src/scene/text-bitmap/BitmapFont.ts","../src/scene/text-bitmap/asset/bitmapFontTextParser.ts","../src/scene/text-bitmap/asset/bitmapFontXMLParser.ts","../src/scene/text-bitmap/asset/bitmapFontXMLStringParser.ts","../src/scene/text-bitmap/asset/loadBitmapFont.ts","../src/assets/BackgroundLoader.ts","../src/assets/cache/parsers/cacheTextureArray.ts","../src/assets/detections/utils/testImageFormat.ts","../src/assets/detections/parsers/detectAvif.ts","../src/assets/detections/parsers/detectDefaults.ts","../src/assets/detections/utils/testVideoFormat.ts","../src/assets/detections/parsers/detectMp4.ts","../src/assets/detections/parsers/detectOgv.ts","../src/assets/detections/parsers/detectWebm.ts","../src/assets/detections/parsers/detectWebp.ts","../src/assets/loader/Loader.ts","../src/assets/utils/checkDataUrl.ts","../src/assets/utils/checkExtension.ts","../src/assets/loader/parsers/loadJson.ts","../src/assets/loader/parsers/loadTxt.ts","../src/assets/loader/parsers/loadWebFont.ts","../src/utils/network/getResolutionOfUrl.ts","../src/assets/loader/parsers/textures/utils/createTexture.ts","../src/assets/loader/parsers/textures/loadSVG.ts","../src/assets/loader/workers/WorkerManager.ts","../src/assets/loader/parsers/textures/loadTextures.ts","../src/assets/loader/parsers/textures/loadVideoTextures.ts","../src/assets/resolver/parsers/resolveTextureUrl.ts","../src/assets/resolver/parsers/resolveJsonUrl.ts","../src/assets/Assets.ts","../src/compressed-textures/basis/detectBasis.ts","../src/rendering/renderers/shared/texture/sources/CompressedSource.ts","../src/rendering/renderers/gl/texture/utils/getSupportedGlCompressedTextureFormats.ts","../src/rendering/renderers/gpu/texture/utils/getSupportedGPUCompressedTextureFormats.ts","../src/rendering/renderers/shared/texture/utils/getSupportedCompressedTextureFormats.ts","../src/rendering/renderers/shared/texture/utils/getSupportedTextureFormats.ts","../src/compressed-textures/basis/utils/setBasisTranscoderPath.ts","../src/compressed-textures/basis/worker/loadBasisOnWorker.ts","../src/compressed-textures/basis/loadBasis.ts","../src/compressed-textures/basis/utils/createLevelBuffers.ts","../src/compressed-textures/basis/utils/gpuFormatToBasisTranscoderFormat.ts","../src/compressed-textures/dds/const.ts","../src/compressed-textures/dds/parseDDS.ts","../src/compressed-textures/dds/loadDDS.ts","../src/compressed-textures/ktx2/const.ts","../src/compressed-textures/ktx/parseKTX.ts","../src/compressed-textures/ktx/loadKTX.ts","../src/compressed-textures/ktx2/utils/setKTXTranscoderPath.ts","../src/compressed-textures/ktx2/worker/loadKTX2onWorker.ts","../src/compressed-textures/ktx2/loadKTX2.ts","../src/compressed-textures/ktx2/utils/convertFormatIfRequired.ts","../src/compressed-textures/ktx2/utils/createLevelBuffersFromKTX.ts","../src/compressed-textures/ktx2/utils/glFormatToGPUFormat.ts","../src/compressed-textures/ktx2/utils/vkFormatToGPUFormat.ts","../src/compressed-textures/ktx2/utils/getTextureFormatFromKTXTexture.ts","../src/compressed-textures/ktx2/utils/gpuFormatToKTXBasisTranscoderFormat.ts","../src/compressed-textures/shared/resolveCompressedTextureUrl.ts","../src/compressed-textures/shared/detectCompressed.ts","../src/culling/Culler.ts","../src/culling/CullerPlugin.ts","../src/environment-webworker/webworkerExt.ts","../src/filters/blend-modes/BlendModeFilter.ts","../src/filters/blend-modes/hls/GLhls.ts","../src/filters/blend-modes/hls/GPUhls.ts","../src/filters/defaults/alpha/AlphaFilter.ts","../src/filters/defaults/blur/const.ts","../src/filters/defaults/blur/gl/generateBlurFragSource.ts","../src/filters/defaults/blur/gl/generateBlurVertSource.ts","../src/filters/defaults/blur/gl/generateBlurGlProgram.ts","../src/filters/defaults/blur/gpu/generateBlurProgram.ts","../src/filters/defaults/blur/BlurFilterPass.ts","../src/filters/defaults/blur/BlurFilter.ts","../src/filters/defaults/color-matrix/ColorMatrixFilter.ts","../src/filters/defaults/displacement/DisplacementFilter.ts","../src/filters/defaults/noise/NoiseFilter.ts","../src/filters/mask/MaskFilter.ts","../src/prepare/PrepareBase.ts","../src/scene/mesh/shared/Mesh.ts","../src/scene/sprite-animated/AnimatedSprite.ts","../src/utils/misc/Transform.ts","../src/scene/sprite-tiling/TilingSprite.ts","../src/scene/text/AbstractText.ts","../src/scene/text/Text.ts","../src/prepare/PrepareQueue.ts","../src/scene/text-bitmap/BitmapText.ts","../src/scene/text-html/utils/textStyleToCSS.ts","../src/scene/text-html/HTMLTextStyle.ts","../src/scene/text-html/HTMLText.ts","../src/prepare/PrepareUpload.ts","../src/prepare/PrepareSystem.ts","../src/rendering/batcher/gl/GlBatchAdaptor.ts","../src/rendering/batcher/gpu/generateGPULayout.ts","../src/rendering/batcher/gpu/generateLayout.ts","../src/rendering/batcher/gpu/GpuBatchAdaptor.ts","../src/rendering/batcher/shared/BatcherPipe.ts","../src/rendering/high-shader/compiler/utils/formatShader.ts","../src/rendering/high-shader/shader-bits/textureBit.ts","../src/rendering/mask/alpha/AlphaMaskPipe.ts","../src/rendering/mask/color/ColorMaskPipe.ts","../src/rendering/mask/scissor/ScissorMask.ts","../src/rendering/mask/stencil/StencilMaskPipe.ts","../src/rendering/renderers/gl/buffer/const.ts","../src/rendering/renderers/gl/buffer/GlBuffer.ts","../src/rendering/renderers/gl/buffer/GlBufferSystem.ts","../src/rendering/renderers/gl/context/GlContextSystem.ts","../src/rendering/renderers/gl/shader/program/ensureAttributes.ts","../src/rendering/renderers/gl/texture/const.ts","../src/rendering/renderers/gl/geometry/utils/getGlTypeFromFormat.ts","../src/rendering/renderers/gl/geometry/GlGeometrySystem.ts","../src/rendering/renderers/gl/GlBackBufferSystem.ts","../src/rendering/renderers/gl/GlColorMaskSystem.ts","../src/rendering/renderers/gl/GlEncoderSystem.ts","../src/rendering/renderers/gl/GlLimitsSystem.ts","../src/rendering/renderers/gl/GlRenderTarget.ts","../src/rendering/renderers/gpu/state/GpuStencilModesToPixi.ts","../src/rendering/renderers/gl/GlStencilSystem.ts","../src/rendering/renderers/shared/shader/UboSystem.ts","../src/rendering/renderers/gl/shader/utils/createUboElementsSTD40.ts","../src/rendering/renderers/shared/shader/utils/uniformParsers.ts","../src/rendering/renderers/shared/shader/utils/createUboSyncFunction.ts","../src/rendering/renderers/shared/shader/utils/uboSyncFunctions.ts","../src/rendering/renderers/gl/shader/utils/generateArraySyncSTD40.ts","../src/rendering/renderers/gl/shader/utils/createUboSyncSTD40.ts","../src/rendering/renderers/gl/GlUboSystem.ts","../src/rendering/renderers/gl/renderTarget/GlRenderTargetAdaptor.ts","../src/rendering/renderers/gpu/renderTarget/calculateProjection.ts","../src/rendering/renderers/shared/texture/utils/getCanvasTexture.ts","../src/rendering/renderers/shared/renderTarget/isRenderingToScreen.ts","../src/rendering/renderers/shared/renderTarget/RenderTarget.ts","../src/rendering/renderers/shared/renderTarget/RenderTargetSystem.ts","../src/rendering/renderers/gl/renderTarget/GlRenderTargetSystem.ts","../src/rendering/renderers/shared/buffer/BufferResource.ts","../src/rendering/renderers/gl/shader/GenerateShaderSyncCode.ts","../src/rendering/renderers/gl/shader/GlProgramData.ts","../src/rendering/renderers/gl/shader/program/compileShader.ts","../src/rendering/renderers/gl/shader/program/defaultValue.ts","../src/rendering/renderers/gl/shader/program/mapType.ts","../src/rendering/renderers/gl/shader/program/extractAttributesFromGlProgram.ts","../src/rendering/renderers/gl/shader/program/getUboData.ts","../src/rendering/renderers/gl/shader/program/getUniformData.ts","../src/rendering/renderers/gl/shader/program/logProgramError.ts","../src/rendering/renderers/gl/shader/program/generateProgram.ts","../src/rendering/renderers/gl/shader/GlShaderSystem.ts","../src/rendering/renderers/gl/shader/utils/generateUniformsSyncTypes.ts","../src/rendering/renderers/gl/shader/utils/generateUniformsSync.ts","../src/rendering/renderers/gl/shader/GlUniformGroupSystem.ts","../src/rendering/renderers/gl/shader/migrateFragmentFromV7toV8.ts","../src/rendering/renderers/gl/shader/program/mapSize.ts","../src/rendering/renderers/gl/state/mapWebGLBlendModesToPixi.ts","../src/rendering/renderers/gl/state/GlStateSystem.ts","../src/rendering/renderers/gl/texture/GlTexture.ts","../src/rendering/renderers/gl/texture/uploaders/glUploadBufferImageResource.ts","../src/rendering/renderers/gl/texture/uploaders/glUploadCompressedTextureResource.ts","../src/rendering/renderers/gl/texture/uploaders/glUploadImageResource.ts","../src/rendering/renderers/gl/texture/uploaders/glUploadVideoResource.ts","../src/rendering/renderers/gl/texture/utils/pixiToGlMaps.ts","../src/rendering/renderers/gl/texture/utils/applyStyleParams.ts","../src/rendering/renderers/gl/texture/utils/mapFormatToGlFormat.ts","../src/rendering/renderers/gl/texture/utils/mapFormatToGlInternalFormat.ts","../src/rendering/renderers/gl/texture/utils/mapFormatToGlType.ts","../src/rendering/renderers/gl/texture/utils/unpremultiplyAlpha.ts","../src/rendering/renderers/gl/texture/GlTextureSystem.ts","../src/scene/graphics/gl/GlGraphicsAdaptor.ts","../src/scene/mesh/gl/GlMeshAdaptor.ts","../src/scene/container/CustomRenderPipe.ts","../src/scene/container/utils/executeInstructions.ts","../src/scene/container/RenderGroupPipe.ts","../src/scene/container/utils/clearList.ts","../src/scene/container/utils/updateRenderGroupTransforms.ts","../src/scene/container/utils/validateRenderables.ts","../src/scene/container/RenderGroupSystem.ts","../src/scene/sprite/SpritePipe.ts","../src/rendering/renderers/shared/background/BackgroundSystem.ts","../src/rendering/renderers/shared/blendModes/BlendModePipe.ts","../src/rendering/renderers/shared/extract/ExtractSystem.ts","../src/rendering/renderers/shared/texture/RenderTexture.ts","../src/rendering/renderers/shared/extract/GenerateTextureSystem.ts","../src/rendering/renderers/shared/GCSystem.ts","../src/rendering/renderers/shared/renderTarget/GlobalUniformSystem.ts","../src/rendering/renderers/shared/SchedulerSystem.ts","../src/utils/sayHello.ts","../src/rendering/renderers/shared/startup/HelloSystem.ts","../src/utils/data/clean.ts","../src/rendering/renderers/shared/texture/RenderableGCSystem.ts","../src/rendering/renderers/shared/texture/TextureGCSystem.ts","../src/rendering/renderers/shared/view/ViewSystem.ts","../src/rendering/renderers/shared/system/SharedSystems.ts","../src/rendering/renderers/gl/WebGLRenderer.ts","../src/rendering/renderers/gpu/BindGroupSystem.ts","../src/rendering/renderers/gpu/buffer/GpuBufferSystem.ts","../src/rendering/renderers/gpu/buffer/UboBatch.ts","../src/rendering/renderers/gpu/GpuColorMaskSystem.ts","../src/rendering/renderers/gpu/GpuDeviceSystem.ts","../src/rendering/renderers/gpu/GpuEncoderSystem.ts","../src/rendering/renderers/gpu/GpuLimitsSystem.ts","../src/rendering/renderers/gpu/GpuStencilSystem.ts","../src/rendering/renderers/gpu/shader/utils/createUboElementsWGSL.ts","../src/rendering/renderers/gpu/shader/utils/generateArraySyncWGSL.ts","../src/rendering/renderers/gpu/shader/utils/createUboSyncFunctionWGSL.ts","../src/rendering/renderers/gpu/GpuUboSystem.ts","../src/rendering/renderers/gpu/GpuUniformBatchPipe.ts","../src/rendering/renderers/gpu/pipeline/PipelineSystem.ts","../src/rendering/renderers/gpu/renderTarget/GpuRenderTarget.ts","../src/rendering/renderers/gpu/renderTarget/GpuRenderTargetAdaptor.ts","../src/rendering/renderers/gpu/renderTarget/GpuRenderTargetSystem.ts","../src/rendering/renderers/gpu/shader/GpuShaderSystem.ts","../src/rendering/renderers/gpu/state/GpuBlendModesToPixi.ts","../src/rendering/renderers/gpu/state/GpuStateSystem.ts","../src/rendering/renderers/gpu/texture/uploaders/gpuUploadBufferImageResource.ts","../src/rendering/renderers/gpu/texture/uploaders/gpuUploadCompressedTextureResource.ts","../src/rendering/renderers/gpu/texture/uploaders/gpuUploadImageSource.ts","../src/rendering/renderers/gpu/texture/uploaders/gpuUploadVideoSource.ts","../src/rendering/renderers/gpu/texture/utils/GpuMipmapGenerator.ts","../src/rendering/renderers/gpu/texture/GpuTextureSystem.ts","../src/scene/graphics/gpu/GpuGraphicsAdaptor.ts","../src/scene/mesh/gpu/GpuMeshAdapter.ts","../src/rendering/renderers/gpu/WebGPURenderer.ts","../src/rendering/renderers/shared/geometry/const.ts","../src/rendering/renderers/shared/texture/const.ts","../src/rendering/renderers/shared/texture/TextureUvs.ts","../src/rendering/renderers/shared/utils/parseFunctionBody.ts","../src/scene/container/bounds/getFastGlobalBounds.ts","../src/scene/container/RenderContainer.ts","../src/scene/container/utils/collectAllRenderables.ts","../src/scene/container/utils/updateLocalTransform.ts","../src/scene/container/utils/updateWorldTransform.ts","../src/scene/graphics/shared/utils/buildGeometryFromPath.ts","../src/scene/layers/RenderLayer.ts","../src/scene/mesh-perspective/utils/applyProjectiveTransformationToPlane.ts","../src/scene/mesh-perspective/utils/compute2DProjections.ts","../src/scene/mesh-perspective/PerspectivePlaneGeometry.ts","../src/scene/mesh-perspective/PerspectiveMesh.ts","../src/scene/mesh-plane/MeshPlane.ts","../src/scene/mesh-simple/RopeGeometry.ts","../src/scene/mesh-simple/MeshRope.ts","../src/scene/mesh-simple/MeshSimple.ts","../src/scene/mesh/shared/getTextureDefaultMatrix.ts","../src/scene/particle-container/shared/Particle.ts","../src/scene/particle-container/shared/particleData.ts","../src/scene/particle-container/shared/ParticleContainer.ts","../src/scene/sprite-nine-slice/NineSliceSprite.ts","../src/scene/text-bitmap/utils/bitmapTextSplit.ts","../src/scene/text-split/AbstractSplitText.ts","../src/scene/text-split/SplitBitmapText.ts","../src/scene/text/utils/canvasTextSplit.ts","../src/scene/text-split/SplitText.ts","../src/scene/text/utils/generateTextStyleKey.ts","../node_modules/ismobilejs/esm/isMobile.js","../src/utils/browser/isMobile.ts","../src/utils/logging/logDebugTexture.ts","../src/utils/logging/logScene.ts","../src/bundle.webworker.ts"],"sourcesContent":["/* eslint-disable no-restricted-globals */\nimport { type Adapter } from '../environment/adapter';\nimport { type ImageLike } from '../environment/ImageLike';\n\n/**\n * This is an implementation of the {@link Adapter} interface.\n * It can be used to make Pixi work in the browser.\n * @category environment\n * @property {Function} createCanvas - Creates a canvas element of the given size.\n * This canvas is created using the browser's native canvas element.\n * @property {Function} getCanvasRenderingContext2D - Returns a 2D rendering context.\n * @property {Function} getWebGLRenderingContext - Returns a WebGL rendering context.\n * @property {Function} getNavigator - Returns browsers window.navigator\n * @property {Function} getBaseUrl - Returns the current base URL for browser environments this is either\n * the document.baseURI or window.location.href\n * @property {Function} getFontFaceSet - Return the font face set if available\n * @property {Function} fetch - Returns a Response object that has been fetched from the given URL.\n * @property {Function} parseXML - Returns Document object that has been parsed from the given XML string.\n * @advanced\n */\nexport const BrowserAdapter = {\n createCanvas: (width: number, height: number): HTMLCanvasElement =>\n {\n const canvas = document.createElement('canvas');\n\n canvas.width = width;\n canvas.height = height;\n\n return canvas;\n },\n createImage: (): ImageLike => new Image(),\n getCanvasRenderingContext2D: () => CanvasRenderingContext2D,\n getWebGLRenderingContext: () => WebGLRenderingContext,\n getNavigator: () => navigator,\n getBaseUrl: () => (document.baseURI ?? window.location.href),\n getFontFaceSet: () => document.fonts,\n fetch: (url: RequestInfo, options?: RequestInit) => fetch(url, options),\n parseXML: (xml: string) =>\n {\n const parser = new DOMParser();\n\n return parser.parseFromString(xml, 'text/xml');\n },\n} as Adapter;\n","import { BrowserAdapter } from '../environment-browser/BrowserAdapter';\nimport { type ImageLike } from './ImageLike';\n\nimport type { ICanvas } from './canvas/ICanvas';\nimport type { ICanvasRenderingContext2D } from './canvas/ICanvasRenderingContext2D';\n\n/**\n * This interface describes all the DOM dependent calls that Pixi makes throughout its codebase.\n * Implementations of this interface can be used to make sure Pixi will work in any environment,\n * such as browser, Web Workers, and Node.js.\n * @category environment\n * @advanced\n */\nexport interface Adapter\n{\n /** Returns a canvas object that can be used to create a webgl context. */\n createCanvas: (width?: number, height?: number) => ICanvas;\n /** Returns an IImage (HTMLImageElement) that can be used to create a texture. */\n createImage: () => ImageLike;\n /** Returns a 2D rendering context. */\n getCanvasRenderingContext2D: () => { prototype: ICanvasRenderingContext2D; };\n /** Returns a WebGL rendering context. */\n getWebGLRenderingContext: () => typeof WebGLRenderingContext;\n /** Returns a partial implementation of the browsers window.navigator */\n getNavigator: () => { userAgent: string, gpu: GPU | null };\n /** Returns the current base URL For browser environments this is either the document.baseURI or window.location.href */\n getBaseUrl: () => string;\n /** Return the font face set if available */\n getFontFaceSet: () => FontFaceSet | null;\n /** Returns a Response object that has been fetched from the given URL. */\n fetch: (url: RequestInfo, options?: RequestInit) => Promise<Response>;\n /** Returns Document object that has been parsed from the given XML string. */\n parseXML: (xml: string) => Document;\n}\n\nlet currentAdapter: Adapter = BrowserAdapter;\n\n/**\n * The DOMAdapter is a singleton that allows PixiJS to perform DOM operations, such as creating a canvas.\n * This allows PixiJS to be used in any environment, such as a web browser, Web Worker, or Node.js.\n * It uses the {@link Adapter} interface to abstract away the differences between these environments\n * and uses the {@link BrowserAdapter} by default.\n *\n * It has two methods: `get():Adapter` and `set(adapter: Adapter)`.\n *\n * Defaults to the {@link BrowserAdapter}.\n * @example\n * import { DOMAdapter, WebWorkerAdapter } from 'pixi.js';\n *\n * // WebWorkerAdapter is an implementation of the Adapter interface\n * DOMAdapter.set(WebWorkerAdapter);\n *\n * // use the adapter to create a canvas (in this case an OffscreenCanvas)\n * DOMAdapter.get().createCanvas(800, 600);\n * @category environment\n * @advanced\n */\nexport const DOMAdapter = {\n /**\n * Returns the current adapter.\n * @returns {environment.Adapter} The current adapter.\n */\n get(): Adapter\n {\n return currentAdapter;\n },\n /**\n * Sets the current adapter.\n * @param adapter - The new adapter.\n */\n set(adapter: Adapter): void\n {\n currentAdapter = adapter;\n },\n};\n","'use strict'\n\n/**\n * Ponyfill for `Array.prototype.find` which is only available in ES6 runtimes.\n *\n * Works with anything that has a `length` property and index access properties, including NodeList.\n *\n * @template {unknown} T\n * @param {Array<T> | ({length:number, [number]: T})} list\n * @param {function (item: T, index: number, list:Array<T> | ({length:number, [number]: T})):boolean} predicate\n * @param {Partial<Pick<ArrayConstructor['prototype'], 'find'>>?} ac `Array.prototype` by default,\n * \t\t\t\tallows injecting a custom implementation in tests\n * @returns {T | undefined}\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find\n * @see https://tc39.es/ecma262/multipage/indexed-collections.html#sec-array.prototype.find\n */\nfunction find(list, predicate, ac) {\n\tif (ac === undefined) {\n\t\tac = Array.prototype;\n\t}\n\tif (list && typeof ac.find === 'function') {\n\t\treturn ac.find.call(list, predicate);\n\t}\n\tfor (var i = 0; i < list.length; i++) {\n\t\tif (Object.prototype.hasOwnProperty.call(list, i)) {\n\t\t\tvar item = list[i];\n\t\t\tif (predicate.call(undefined, item, i, list)) {\n\t\t\t\treturn item;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * \"Shallow freezes\" an object to render it immutable.\n * Uses `Object.freeze` if available,\n * otherwise the immutability is only in the type.\n *\n * Is used to create \"enum like\" objects.\n *\n * @template T\n * @param {T} object the object to freeze\n * @param {Pick<ObjectConstructor, 'freeze'> = Object} oc `Object` by default,\n * \t\t\t\tallows to inject custom object constructor for tests\n * @returns {Readonly<T>}\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze\n */\nfunction freeze(object, oc) {\n\tif (oc === undefined) {\n\t\toc = Object\n\t}\n\treturn oc && typeof oc.freeze === 'function' ? oc.freeze(object) : object\n}\n\n/**\n * Since we can not rely on `Object.assign` we provide a simplified version\n * that is sufficient for our needs.\n *\n * @param {Object} target\n * @param {Object | null | undefined} source\n *\n * @returns {Object} target\n * @throws TypeError if target is not an object\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n * @see https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.assign\n */\nfunction assign(target, source) {\n\tif (target === null || typeof target !== 'object') {\n\t\tthrow new TypeError('target is not an object')\n\t}\n\tfor (var key in source) {\n\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\ttarget[key] = source[key]\n\t\t}\n\t}\n\treturn target\n}\n\n/**\n * All mime types that are allowed as input to `DOMParser.parseFromString`\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString#Argument02 MDN\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#domparsersupportedtype WHATWG HTML Spec\n * @see DOMParser.prototype.parseFromString\n */\nvar MIME_TYPE = freeze({\n\t/**\n\t * `text/html`, the only mime type that triggers treating an XML document as HTML.\n\t *\n\t * @see DOMParser.SupportedType.isHTML\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring WHATWG HTML Spec\n\t */\n\tHTML: 'text/html',\n\n\t/**\n\t * Helper method to check a mime type if it indicates an HTML document\n\t *\n\t * @param {string} [value]\n\t * @returns {boolean}\n\t *\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring \t */\n\tisHTML: function (value) {\n\t\treturn value === MIME_TYPE.HTML\n\t},\n\n\t/**\n\t * `application/xml`, the standard mime type for XML documents.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xml IANA MimeType registration\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.1 RFC 7303\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */\n\tXML_APPLICATION: 'application/xml',\n\n\t/**\n\t * `text/html`, an alias for `application/xml`.\n\t *\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.2 RFC 7303\n\t * @see https://www.iana.org/assignments/media-types/text/xml IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */\n\tXML_TEXT: 'text/xml',\n\n\t/**\n\t * `application/xhtml+xml`, indicates an XML document that has the default HTML namespace,\n\t * but is parsed as an XML document.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xhtml+xml IANA MimeType registration\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument WHATWG DOM Spec\n\t * @see https://en.wikipedia.org/wiki/XHTML Wikipedia\n\t */\n\tXML_XHTML_APPLICATION: 'application/xhtml+xml',\n\n\t/**\n\t * `image/svg+xml`,\n\t *\n\t * @see https://www.iana.org/assignments/media-types/image/svg+xml IANA MimeType registration\n\t * @see https://www.w3.org/TR/SVG11/ W3C SVG 1.1\n\t * @see https://en.wikipedia.org/wiki/Scalable_Vector_Graphics Wikipedia\n\t */\n\tXML_SVG_IMAGE: 'image/svg+xml',\n})\n\n/**\n * Namespaces that are used in this code base.\n *\n * @see http://www.w3.org/TR/REC-xml-names\n */\nvar NAMESPACE = freeze({\n\t/**\n\t * The XHTML namespace.\n\t *\n\t * @see http://www.w3.org/1999/xhtml\n\t */\n\tHTML: 'http://www.w3.org/1999/xhtml',\n\n\t/**\n\t * Checks if `uri` equals `NAMESPACE.HTML`.\n\t *\n\t * @param {string} [uri]\n\t *\n\t * @see NAMESPACE.HTML\n\t */\n\tisHTML: function (uri) {\n\t\treturn uri === NAMESPACE.HTML\n\t},\n\n\t/**\n\t * The SVG namespace.\n\t *\n\t * @see http://www.w3.org/2000/svg\n\t */\n\tSVG: 'http://www.w3.org/2000/svg',\n\n\t/**\n\t * The `xml:` namespace.\n\t *\n\t * @see http://www.w3.org/XML/1998/namespace\n\t */\n\tXML: 'http://www.w3.org/XML/1998/namespace',\n\n\t/**\n\t * The `xmlns:` namespace\n\t *\n\t * @see https://www.w3.org/2000/xmlns/\n\t */\n\tXMLNS: 'http://www.w3.org/2000/xmlns/',\n})\n\nexports.assign = assign;\nexports.find = find;\nexports.freeze = freeze;\nexports.MIME_TYPE = MIME_TYPE;\nexports.NAMESPACE = NAMESPACE;\n","var conventions = require(\"./conventions\");\n\nvar find = conventions.find;\nvar NAMESPACE = conventions.NAMESPACE;\n\n/**\n * A prerequisite for `[].filter`, to drop elements that are empty\n * @param {string} input\n * @returns {boolean}\n */\nfunction notEmptyString (input) {\n\treturn input !== ''\n}\n/**\n * @see https://infra.spec.whatwg.org/#split-on-ascii-whitespace\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n *\n * @param {string} input\n * @returns {string[]} (can be empty)\n */\nfunction splitOnASCIIWhitespace(input) {\n\t// U+0009 TAB, U+000A LF, U+000C FF, U+000D CR, U+0020 SPACE\n\treturn input ? input.split(/[\\t\\n\\f\\r ]+/).filter(notEmptyString) : []\n}\n\n/**\n * Adds element as a key to current if it is not already present.\n *\n * @param {Record<string, boolean | undefined>} current\n * @param {string} element\n * @returns {Record<string, boolean | undefined>}\n */\nfunction orderedSetReducer (current, element) {\n\tif (!current.hasOwnProperty(element)) {\n\t\tcurrent[element] = true;\n\t}\n\treturn current;\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#ordered-set\n * @param {string} input\n * @returns {string[]}\n */\nfunction toOrderedSet(input) {\n\tif (!input) return [];\n\tvar list = splitOnASCIIWhitespace(input);\n\treturn Object.keys(list.reduce(orderedSetReducer, {}))\n}\n\n/**\n * Uses `list.indexOf` to implement something like `Array.prototype.includes`,\n * which we can not rely on being available.\n *\n * @param {any[]} list\n * @returns {function(any): boolean}\n */\nfunction arrayIncludes (list) {\n\treturn function(element) {\n\t\treturn list && list.indexOf(element) !== -1;\n\t}\n}\n\nfunction copy(src,dest){\n\tfor(var p in src){\n\t\tif (Object.prototype.hasOwnProperty.call(src, p)) {\n\t\t\tdest[p] = src[p];\n\t\t}\n\t}\n}\n\n/**\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*((?:.*\\{\\s*?[\\r\\n][\\s\\S]*?^})|\\S.*?(?=[;\\r\\n]));?\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*(\\S.*?(?=[;\\r\\n]));?\n */\nfunction _extends(Class,Super){\n\tvar pt = Class.prototype;\n\tif(!(pt instanceof Super)){\n\t\tfunction t(){};\n\t\tt.prototype = Super.prototype;\n\t\tt = new t();\n\t\tcopy(pt,t);\n\t\tClass.prototype = pt = t;\n\t}\n\tif(pt.constructor != Class){\n\t\tif(typeof Class != 'function'){\n\t\t\tconsole.error(\"unknown Class:\"+Class)\n\t\t}\n\t\tpt.constructor = Class\n\t}\n}\n\n// Node Types\nvar NodeType = {}\nvar ELEMENT_NODE = NodeType.ELEMENT_NODE = 1;\nvar ATTRIBUTE_NODE = NodeType.ATTRIBUTE_NODE = 2;\nvar TEXT_NODE = NodeType.TEXT_NODE = 3;\nvar CDATA_SECTION_NODE = NodeType.CDATA_SECTION_NODE = 4;\nvar ENTITY_REFERENCE_NODE = NodeType.ENTITY_REFERENCE_NODE = 5;\nvar ENTITY_NODE = NodeType.ENTITY_NODE = 6;\nvar PROCESSING_INSTRUCTION_NODE = NodeType.PROCESSING_INSTRUCTION_NODE = 7;\nvar COMMENT_NODE = NodeType.COMMENT_NODE = 8;\nvar DOCUMENT_NODE = NodeType.DOCUMENT_NODE = 9;\nvar DOCUMENT_TYPE_NODE = NodeType.DOCUMENT_TYPE_NODE = 10;\nvar DOCUMENT_FRAGMENT_NODE = NodeType.DOCUMENT_FRAGMENT_NODE = 11;\nvar NOTATION_NODE = NodeType.NOTATION_NODE = 12;\n\n// ExceptionCode\nvar ExceptionCode = {}\nvar ExceptionMessage = {};\nvar INDEX_SIZE_ERR = ExceptionCode.INDEX_SIZE_ERR = ((ExceptionMessage[1]=\"Index size error\"),1);\nvar DOMSTRING_SIZE_ERR = ExceptionCode.DOMSTRING_SIZE_ERR = ((ExceptionMessage[2]=\"DOMString size error\"),2);\nvar HIERARCHY_REQUEST_ERR = ExceptionCode.HIERARCHY_REQUEST_ERR = ((ExceptionMessage[3]=\"Hierarchy request error\"),3);\nvar WRONG_DOCUMENT_ERR = ExceptionCode.WRONG_DOCUMENT_ERR = ((ExceptionMessage[4]=\"Wrong document\"),4);\nvar INVALID_CHARACTER_ERR = ExceptionCode.INVALID_CHARACTER_ERR = ((ExceptionMessage[5]=\"Invalid character\"),5);\nvar NO_DATA_ALLOWED_ERR = ExceptionCode.NO_DATA_ALLOWED_ERR = ((ExceptionMessage[6]=\"No data allowed\"),6);\nvar NO_MODIFICATION_ALLOWED_ERR = ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ((ExceptionMessage[7]=\"No modification allowed\"),7);\nvar NOT_FOUND_ERR = ExceptionCode.NOT_FOUND_ERR = ((ExceptionMessage[8]=\"Not found\"),8);\nvar NOT_SUPPORTED_ERR = ExceptionCode.NOT_SUPPORTED_ERR = ((ExceptionMessage[9]=\"Not supported\"),9);\nvar INUSE_ATTRIBUTE_ERR = ExceptionCode.INUSE_ATTRIBUTE_ERR = ((ExceptionMessage[10]=\"Attribute in use\"),10);\n//level2\nvar INVALID_STATE_ERR \t= ExceptionCode.INVALID_STATE_ERR \t= ((ExceptionMessage[11]=\"Invalid state\"),11);\nvar SYNTAX_ERR \t= ExceptionCode.SYNTAX_ERR \t= ((ExceptionMessage[12]=\"Syntax error\"),12);\nvar INVALID_MODIFICATION_ERR \t= ExceptionCode.INVALID_MODIFICATION_ERR \t= ((ExceptionMessage[13]=\"Invalid modification\"),13);\nvar NAMESPACE_ERR \t= ExceptionCode.NAMESPACE_ERR \t= ((ExceptionMessage[14]=\"Invalid namespace\"),14);\nvar INVALID_ACCESS_ERR \t= ExceptionCode.INVALID_ACCESS_ERR \t= ((ExceptionMessage[15]=\"Invalid access\"),15);\n\n/**\n * DOM Level 2\n * Object DOMException\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n * @see http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html\n */\nfunction DOMException(code, message) {\n\tif(message instanceof Error){\n\t\tvar error = message;\n\t}else{\n\t\terror = this;\n\t\tError.call(this, ExceptionMessage[code]);\n\t\tthis.message = ExceptionMessage[code];\n\t\tif(Error.captureStackTrace) Error.captureStackTrace(this, DOMException);\n\t}\n\terror.code = code;\n\tif(message) this.message = this.message + \": \" + message;\n\treturn error;\n};\nDOMException.prototype = Error.prototype;\ncopy(ExceptionCode,DOMException)\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177\n * The NodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. NodeList objects in the DOM are live.\n * The items in the NodeList are accessible via an integral index, starting from 0.\n */\nfunction NodeList() {\n};\nNodeList.prototype = {\n\t/**\n\t * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive.\n\t * @standard level1\n\t */\n\tlength:0,\n\t/**\n\t * Returns the indexth item in the collection. If index is greater than or equal to the number of nodes in the list, this returns null.\n\t * @standard level1\n\t * @param index unsigned long\n\t * Index into the collection.\n\t * @return Node\n\t * \tThe node at the indexth position in the NodeList, or null if that is not a valid index.\n\t */\n\titem: function(index) {\n\t\treturn index >= 0 && index < this.length ? this[index] : null;\n\t},\n\ttoString:function(isHTML,nodeFilter){\n\t\tfor(var buf = [], i = 0;i<this.length;i++){\n\t\t\tserializeToString(this[i],buf,isHTML,nodeFilter);\n\t\t}\n\t\treturn buf.join('');\n\t},\n\t/**\n\t * @private\n\t * @param {function (Node):boolean} predicate\n\t * @returns {Node[]}\n\t */\n\tfilter: function (predicate) {\n\t\treturn Array.prototype.filter.call(this, predicate);\n\t},\n\t/**\n\t * @private\n\t * @param {Node} item\n\t * @returns {number}\n\t */\n\tindexOf: function (item) {\n\t\treturn Array.prototype.indexOf.call(this, item);\n\t},\n};\n\nfunction LiveNodeList(node,refresh){\n\tthis._node = node;\n\tthis._refresh = refresh\n\t_updateLiveList(this);\n}\nfunction _updateLiveList(list){\n\tvar inc = list._node._inc || list._node.ownerDocument._inc;\n\tif (list._inc !== inc) {\n\t\tvar ls = list._refresh(list._node);\n\t\t__set__(list,'length',ls.length);\n\t\tif (!list.$$length || ls.length < list.$$length) {\n\t\t\tfor (var i = ls.length; i in list; i++) {\n\t\t\t\tif (Object.prototype.hasOwnProperty.call(list, i)) {\n\t\t\t\t\tdelete list[i];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcopy(ls,list);\n\t\tlist._inc = inc;\n\t}\n}\nLiveNodeList.prototype.item = function(i){\n\t_updateLiveList(this);\n\treturn this[i] || null;\n}\n\n_extends(LiveNodeList,NodeList);\n\n/**\n * Objects implementing the NamedNodeMap interface are used\n * to represent collections of nodes that can be accessed by name.\n * Note that NamedNodeMap does not inherit from NodeList;\n * NamedNodeMaps are not maintained in any particular order.\n * Objects contained in an object implementing NamedNodeMap may also be accessed by an ordinal index,\n * but this is simply to allow convenient enumeration of the contents of a NamedNodeMap,\n * and does not imply that the DOM specifies an order to these Nodes.\n * NamedNodeMap objects in the DOM are live.\n * used for attributes or DocumentType entities\n */\nfunction NamedNodeMap() {\n};\n\nfunction _findNodeIndex(list,node){\n\tvar i = list.length;\n\twhile(i--){\n\t\tif(list[i] === node){return i}\n\t}\n}\n\nfunction _addNamedNode(el,list,newAttr,oldAttr){\n\tif(oldAttr){\n\t\tlist[_findNodeIndex(list,oldAttr)] = newAttr;\n\t}else{\n\t\tlist[list.length++] = newAttr;\n\t}\n\tif(el){\n\t\tnewAttr.ownerElement = el;\n\t\tvar doc = el.ownerDocument;\n\t\tif(doc){\n\t\t\toldAttr && _onRemoveAttribute(doc,el,oldAttr);\n\t\t\t_onAddAttribute(doc,el,newAttr);\n\t\t}\n\t}\n}\nfunction _removeNamedNode(el,list,attr){\n\t//console.log('remove attr:'+attr)\n\tvar i = _findNodeIndex(list,attr);\n\tif(i>=0){\n\t\tvar lastIndex = list.length-1\n\t\twhile(i<lastIndex){\n\t\t\tlist[i] = list[++i]\n\t\t}\n\t\tlist.length = lastIndex;\n\t\tif(el){\n\t\t\tvar doc = el.ownerDocument;\n\t\t\tif(doc){\n\t\t\t\t_onRemoveAttribute(doc,el,attr);\n\t\t\t\tattr.ownerElement = null;\n\t\t\t}\n\t\t}\n\t}else{\n\t\tthrow new DOMException(NOT_FOUND_ERR,new Error(el.tagName+'@'+attr))\n\t}\n}\nNamedNodeMap.prototype = {\n\tlength:0,\n\titem:NodeList.prototype.item,\n\tgetN