{"version":3,"sources":["webpack:///webpack/bootstrap 504aacfe173dcc5e2d40","webpack:///./js/main.js","webpack:///./js/webgl.js","webpack:///./~/blob-util/lib/index.js","webpack:///./~/blob/index.js","webpack:///./~/native-or-lie/index.js","webpack:///./~/lie/lib/browser.js","webpack:///./~/immediate/lib/browser.js","webpack:///./js/assetmgr.js","webpack:///./js/math.js","webpack:///./js/states/preloader.js","webpack:///./js/gfxutils.js","webpack:///./js/states/loader.js","webpack:///./js/transitions.js","webpack:///./js/states/play.js","webpack:///./js/keyboard.js","webpack:///./js/sound.js"],"names":[],"mappings":"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ACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iBAAgB;AAChB;AACA,0EAAyE,8BAA8B;AACvG;AACA,YAAW,MAAM;AACjB,YAAW,OAAO,+BAA+B,oBAAoB;AACrE,cAAa;AACb;AACA;AACA;AACA;AACA,gBAAe,eAAe;AAC9B;AACA;AACA;;AAEA;AACA;AACA,4BAA2B;AAC3B;AACA;AACA,YAAW,KAAK;AAChB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA2B;AAC3B;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,KAAK;AAChB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,iBAAiB;AAC5B,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,sCAAqC,WAAW;AAChD,IAAG;AACH;;AAEA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,iBAAiB;AAC5B,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA,YAAW,KAAK;AAChB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA,gCAA+B;AAC/B;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA,wCAAuC;AACvC;;AAEA;AACA,gCAA+B,WAAW;AAC1C,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,iBAAiB;AAC5B,YAAW,iBAAiB;AAC5B;AACA,YAAW,iBAAiB;AAC5B;AACA,cAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;;AAEA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,iBAAiB;AAC5B,YAAW,iBAAiB;AAC5B;AACA,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,iBAAiB;AAC5B,YAAW,iBAAiB;AAC5B;AACA,YAAW,iBAAiB;AAC5B;AACA,cAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA,YAAW,YAAY;AACvB,YAAW,iBAAiB;AAC5B,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA,YAAW,KAAK;AAChB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpTA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,EAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAiB,gBAAgB;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,kBAAiB,gBAAgB;AACjC;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qCAAoC;AACpC;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA,EAAC;;;;;;;;AC/FD;;;;;;;ACAA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;;;;;;AC5PA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAG;A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","file":"bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 504aacfe173dcc5e2d40\n **/","import {WebGLRenderer} from \"./webgl.js\";\nimport {PreloaderState} from \"./states/preloader.js\";\nimport {AssetManager} from \"./assetmgr.js\";\nimport {SoundEngine} from \"./sound.js\";\n\nlet game = {};\nwindow.theGame = game;\n\nwindow.onload = () => {\n try {\n let canvas = document.getElementById(\"gamecanvas\");\n game.render = WebGLRenderer(game, canvas, canvas.getContext(\"webgl\", {\n alpha: false,\n stencil: true\n }) || canvas.getContext(\"experimental-webgl\", {\n alpha: false,\n stencil: true \n }));\n game.sound = SoundEngine(game);\n game.mouse = {x: 0, y: 0};\n \n game.switchState = (newstate) => {\n if(game.state && game.state.destroy) {\n game.state.destroy();\n }\n game.state = newstate;\n if(newstate.initialize) {\n newstate.initialize();\n }\n };\n \n game.switchState(PreloaderState(game));\n \n AssetManager.addAssetLoader(game.render.createAssetLoader());\n AssetManager.addAssetLoader(game.sound.createAssetLoader());\n } catch(err) {\n document.write(err);\n return;\n }\n \n let lastTick = performance.now();\n game.tick = (timestamp) => {\n let delta = timestamp - lastTick;\n lastTick = timestamp;\n\n game.render.manageSize();\n game.render.initMatrices();\n game.render.clearBuffers();\n \n if(game.state && game.state.tick) {\n game.state.tick(delta);\n }\n\n if(game.state && game.state.getKeyboard) {\n game.state.getKeyboard().update();\n }\n \n window.requestAnimationFrame(game.tick);\n };\n window.requestAnimationFrame(game.tick);\n\n document.addEventListener(\"keydown\", (evt) => {\n if(game.state && game.state.getKeyboard) {\n game.state.getKeyboard().keyDown(evt);\n }\n });\n\n document.addEventListener(\"keyup\", (evt) => {\n if(game.state && game.state.getKeyboard) {\n game.state.getKeyboard().keyUp(evt);\n }\n });\n\n document.addEventListener(\"mousemove\", (evt) => {\n game.mouse.x = evt.clientX;\n game.mouse.y = evt.clientY;\n });\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./js/main.js\n **/","import * as BlobUtil from \"blob-util\";\n\nimport {AssetManager} from \"./assetmgr.js\";\nimport {Mat4, MatrixTransformer} from \"./math.js\";\n\nexport let WebGLRenderer = (game, canvas, gl) => {\n if(!gl) {\n if(!canvas.getContext(\"webgl\")) {\n throw \"Could not open any WebGL context\";\n }\n if(!canvas.getContext(\"webgl\", {alpha: false})) {\n throw \"Could not open WebGL context {alpha: false}\";\n }\n if(!canvas.getContext(\"webgl\", {stencil: true})) {\n throw \"Could not open WebGL context with stencil\";\n }\n if(!canvas.getContext(\"webgl\", {alpha: false, stencil: true})) {\n throw \"Could not open WebGL context with no alpha and with stencil\";\n }\n throw \"Could not open WebGL context\";\n }\n gl.enable(gl.BLEND);\n gl.disable(gl.STENCIL_TEST);\n gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA);\n gl.stencilFunc(gl.ALWAYS, 0, 0xFF); // fill stencil buffer with ones\n gl.stencilOp(gl.REPLACE, gl.REPLACE, gl.REPLACE);\n gl.stencilMask(0);\n \n let workingMatrix = Mat4.create();\n let currentFb = null;\n \n let render = {\n manageSize() {\n if(canvas.width != window.innerWidth || canvas.height != window.innerHeight) {\n canvas.width = window.innerWidth;\n canvas.height = window.innerHeight;\n\n gl.viewport(0, 0, canvas.width, canvas.height);\n \n if(game.state && game.state.updateSize) {\n game.state.updateSize(canvas.width, canvas.height);\n }\n }\n },\n\n initMatrices() {\n render.pixelMatrix.load.identity();\n render.pixelCenteredMatrix.load.identity();\n workingMatrix.load.scale(2/render.fbwidth(), -2/render.fbheight(), 1); // scale down to pixels and flip\n render.pixelMatrix.multiply(workingMatrix);\n render.pixelCenteredMatrix.multiply(workingMatrix);\n workingMatrix.load.translate(-render.fbwidth()/2, -render.fbheight()/2, 0);\n render.pixelMatrix.multiply(workingMatrix);\n },\n\n clearBuffers() {\n gl.clearColor(0, 0, 0, 1);\n gl.clearStencil(0);\n gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT | gl.STENCIL_BUFFER_BIT);\n },\n \n clear(color) {\n gl.clearColor(color.r, color.g, color.b, color.a);\n gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);\n },\n\n drawStencil() {\n gl.stencilMask(0xFF);\n gl.stencilFunc(gl.ALWAYS, 1, 0xFF); // write ones to stencil buffer\n gl.stencilOp(gl.REPLACE, gl.REPLACE, gl.REPLACE);\n gl.colorMask(0, 0, 0, 0);\n },\n\n drawColor() {\n gl.stencilMask(0x00); // disable writing to stencil buffer\n gl.stencilFunc(gl.EQUAL, 1, 0xFF);\n gl.stencilOp(gl.KEEP, gl.KEEP, gl.KEEP);\n gl.colorMask(1, 1, 1, 1);\n },\n\n setStencil(enabled) {\n if(enabled) {\n gl.enable(gl.STENCIL_TEST);\n } else {\n gl.disable(gl.STENCIL_TEST);\n }\n },\n\n // padding is extra space beyond the edges of the canvas that is guarenteed to be there\n // margin space is not guarenteed to be there; it serves only to make resizing smoother\n // margin defaults to 50 pixels\n createFramebuffer(padding, margin) {\n if(margin === undefined) {\n margin = 50;\n }\n \n let fb = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, fb);\n\n let width = render.width() + 2*padding + 2*margin;\n let height = render.height() + 2*padding + 2*margin;\n \n let tex = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, tex);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n let depthrb = gl.createRenderbuffer();\n gl.bindRenderbuffer(gl.RENDERBUFFER, depthrb);\n gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_COMPONENT16, width, height);\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, tex, 0);\n gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.RENDERBUFFER, depthrb);\n // Unfortunately, no stencilling in framebuffers cause we can't have the depth and stencil\n // buffers be seperate renderbufferes and there's no way to have them both in the same\n // renderbuffer until WebGL2.\n// let stencilrb = gl.createRenderbuffer();\n// gl.bindRenderbuffer(gl.RENDERBUFFER, stencilrb);\n// gl.renderbufferStorage(gl.RENDERBUFFER, gl.STENCIL_INDEX8, width, height);\n// gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.STENCIL_ATTACHMENT, gl.RENDERBUFFER, stencilrb);\n\n switch(gl.checkFramebufferStatus(gl.FRAMEBUFFER)) {\n case gl.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:\n throw \"FRAMEBUFFER_INCOMPLETE_ATTACHMENT\";\n case gl.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:\n throw \"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT\";\n case gl.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:\n throw \"FRAMEBUFFER_INCOMPLETE_DIMENSIONS\";\n case gl.FRAMEBUFFER_UNSUPPORTED:\n throw \"FRAMEBUFFER_UNSUPPORTED\";\n case gl.FRAMEBUFFER_COMPLETE:\n break;\n default:\n throw \"WTF?\"\n }\n \n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.bindRenderbuffer(gl.RENDERBUFFER, null);\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n\n let texObj = {\n glTex: tex,\n width: width,\n height: height\n };\n\n let attributes = [];\n\n let pixmat = Mat4.create();\n let pixcentmat = Mat4.create();\n\n let self = {\n bind() {\n if(render.width() + 2*padding > width\n || render.height() + 2*padding > height) {\n width = render.width() + 2*padding + 2*margin;\n height = render.height() + 2*padding + 2*margin;\n texObj.width = width;\n texObj.height = height;\n gl.bindTexture(gl.TEXTURE_2D, tex);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n gl.bindRenderbuffer(gl.RENDERBUFFER, depthrb);\n gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_COMPONENT16, width, height);\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.bindRenderbuffer(gl.RENDERBUFFER, null);\n }\n\n gl.bindFramebuffer(gl.FRAMEBUFFER, fb);\n currentFb = texObj;\n\n pixmat.load.from(render.pixelMatrix);\n pixcentmat.load.from(render.pixelCenteredMatrix);\n render.initMatrices();\n\n workingMatrix.load.translate((width-render.width())/2,\n (height-render.height())/2, 0);\n render.pixelMatrix.multiply(workingMatrix);\n render.pixelCenteredMatrix.multiply(workingMatrix);\n gl.viewport(0, 0, width, height);\n },\n unbind() {\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n currentFb = null;\n render.pixelMatrix.load.from(pixmat);\n render.pixelCenteredMatrix.load.from(pixcentmat);\n gl.viewport(0, 0, canvas.width, canvas.height);\n },\n getTexture() {\n return texObj;\n },\n getAttributes() {\n let i = 0;\n let x = (width-render.width())/(2*width);\n let y = (height-render.height())/(2*height);\n attributes[i++] = 0;\n attributes[i++] = 0;\n attributes[i++] = 0;\n attributes[i++] = x;\n attributes[i++] = 1-y;\n\n attributes[i++] = render.width();\n attributes[i++] = 0;\n attributes[i++] = 0;\n attributes[i++] = 1-x;\n attributes[i++] = 1-y;\n \n attributes[i++] = 0;\n attributes[i++] = render.height();\n attributes[i++] = 0;\n attributes[i++] = x;\n attributes[i++] = y;\n \n attributes[i++] = render.width();\n attributes[i++] = render.height();\n attributes[i++] = 0;\n attributes[i++] = 1-x;\n attributes[i++] = y;\n return attributes;\n },\n\n xtoc(x) {\n return (2*x + width-render.width())/(2*width);\n },\n ytoc(y) {\n return 1.0-(2*y + height-render.height())/(2*height);\n }\n };\n return self;\n },\n\n width() {\n return canvas.width;\n },\n height() {\n return canvas.height;\n },\n\n fbwidth() { // including padding and margin\n return currentFb === null ? canvas.width : currentFb.width;\n },\n fbheight() { // including padding and margin\n return currentFb === null ? canvas.height : currentFb.height;\n },\n\n createAssetLoader() {\n let loaders = {\n \"font\": (placeholder) => {\n return AssetManager.getFile(placeholder.spec.xml).then((blob) => {\n/* return new Promise((resolve, reject) => {\n let xhr = new XMLHttpRequest();\n \n xhr.onload = () => {\n if(xhr.status != 200) {\n throw xhr.statusText;\n } else {\n resolve(xhr.responseXML);\n }\n };\n\n xhr.onerror = reject;\n \n xhr.responseType = \"document\";\n \n xhr.open(\"GET\", URL.createObjectURL(blob));\n xhr.send();\n });*/\n return BlobUtil.blobToBinaryString(blob).then((str) => {\n return new DOMParser().parseFromString(str, \"application/xml\");\n });\n }).then((doc) => {\n let root = doc.firstChild;\n if(root.nodeName != \"Font\") {\n throw \"Bad font descriptor file (root element is <\" + root.nodeName + \">)\";\n }\n \n let font = {\n height: parseInt(root.getAttribute(\"height\")),\n glyphs: {}\n };\n\n for(let i = 0; i < root.children.length; i++) {\n let ch = root.children[i];\n let glyph = {};\n\n let offset = ch.getAttribute(\"offset\").split(\" \");\n glyph.offsetx = parseInt(offset[0]);\n glyph.offsety = parseInt(offset[1]);\n\n let rect = ch.getAttribute(\"rect\").split(\" \").map((str) => {\n return parseInt(str);\n });\n glyph.rectx = rect[0];\n glyph.recty = rect[1];\n glyph.rectw = rect[2];\n glyph.recth = rect[3];\n\n glyph.width = parseInt(ch.getAttribute(\"width\"));\n \n font.glyphs[ch.getAttribute(\"code\")] = glyph;\n }\n return placeholder.depend(placeholder.spec.texture).then((tex) => {\n font.texture = tex;\n return font;\n });\n });\n },\n \"texture\": (placeholder) => {\n return AssetManager.getFile(placeholder.spec.src).then((blob) => {\n return new Promise((resolve, reject) => {\n let image = new Image();\n image.onload = () => {\n resolve(image);\n };\n image.onerror = (evt) => {\n reject(evt.type);\n };\n image.src = URL.createObjectURL(blob);\n });\n }).then((img) => {\n let texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, img);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR_MIPMAP_NEAREST);\n gl.generateMipmap(gl.TEXTURE_2D);\n gl.bindTexture(gl.TEXTURE_2D, null);\n return {\n glTex: texture,\n width: img.width,\n height: img.height\n };\n });\n },\n \"shader\": (placeholder) => {\n if(placeholder.spec.shadertype == \"fragment\" || placeholder.spec.shadertype == \"vertex\") {\n return AssetManager.getFile(placeholder.spec.src).then((blob) => {\n return BlobUtil.blobToBinaryString(blob);\n }).then((src) => {\n let shader = gl.createShader({fragment: gl.FRAGMENT_SHADER, vertex: gl.VERTEX_SHADER}[placeholder.spec.shadertype]);\n gl.shaderSource(shader, src);\n gl.compileShader(shader);\n if(!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n let log = gl.getShaderInfoLog(shader);\n gl.deleteShader(shader);\n throw \"Could not compile shader: \" + log;\n }\n\n return shader;\n });\n }\n if(placeholder.spec.shadertype == \"program\") {\n let promises = placeholder.spec.shaders.map((id) => {\n return placeholder.depend(id);\n });\n return Promise.all(promises).then((shaders) => {\n let program = gl.createProgram();\n for(let i = 0; i < shaders.length; i++) {\n gl.attachShader(program, shaders[i]);\n }\n gl.linkProgram(program);\n\n if(!gl.getProgramParameter(program, gl.LINK_STATUS)) {\n throw \"Could not link program: \" + gl.getProgramInfoLog(program);\n }\n\n let runtime = {\n stride: 0,\n numComponents: 0\n };\n\n let attribOffset = 0;\n let attributes = placeholder.spec.attributes.map((attrib) => {\n let loc = gl.getAttribLocation(program, attrib.name);\n if(loc == -1) {\n throw \"Could not find attribute '\" + attrib.name + \"'\";\n }\n runtime.stride+= attrib.components * 4; // 4 bytes / float\n runtime.numComponents+= attrib.components;\n \n attrib.location = loc;\n attrib.runtime = {};\n attrib.runtime.components = [];\n attrib.runtime.offset = attribOffset;\n attribOffset+= attrib.components * 4; // 4 bytes / float\n attrib.runtime.loadData = (args, i) => {\n switch(attrib.datatype) {\n case \"color\":\n let arg = args[i++];\n attrib.runtime.components[0] = arg.r;\n attrib.runtime.components[1] = arg.g;\n attrib.runtime.components[2] = arg.b;\n attrib.runtime.components[3] = 1;\n break;\n case \"vec\":\n for(let j = 0; j < attrib.components; j++) {\n attrib.runtime.components[j] = args[i++];\n }\n break;\n default:\n throw \"bad attribute data type '\" + attrib.datatype + \"'\";\n }\n\n return i;\n };\n\n return attrib;\n });\n\n let uniforms = placeholder.spec.uniforms.map((uniform) => {\n let loc = gl.getUniformLocation(program, uniform.name);\n if(loc == -1) {\n throw \"Could not find uniform '\" + uniform.name + \"'\";\n }\n \n uniform.location = loc;\n\n return uniform;\n });\n\n \n return {\n program,\n attributes,\n uniforms,\n runtime\n };\n });\n }\n throw \"bad shadertype: \" + placeholder.spec.shadertype\n }\n };\n \n return {\n canLoad(placeholder) {\n return loaders[placeholder.spec.type] != undefined;\n },\n load(placeholder) {\n return loaders[placeholder.spec.type](placeholder);\n }\n };\n },\n\n createFontRenderer(font, shader) {\n let material = render.createMaterial(shader, {\n matrix: render.pixelMatrix,\n tex: font.texture\n });\n\n let rects = render.createShapeDrawer();\n rects.useMaterial(material);\n \n let self = {\n height: font.height,\n draw(color, x, y, string) {\n for(let i = 0; i < string.length; i++) {\n let glyph = font.glyphs[string[i]];\n\n rects.drawTexturedAndColoredRect(\n color,\n x + glyph.offsetx, y + glyph.offsety,\n x + glyph.offsetx + glyph.rectw, y + glyph.offsety + glyph.recth,\n glyph.rectx / font.texture.width,\n glyph.recty / font.texture.height,\n (glyph.rectx + glyph.rectw) / font.texture.width,\n (glyph.recty + glyph.recth) / font.texture.height);\n \n x+= glyph.width;\n }\n },\n useMatrix(mat) {\n rects.useMatrix(mat);\n },\n computeWidth(string) {\n let x = 0;\n \n for(let i = 0; i < string.length; i++) {\n let glyph = font.glyphs[string[i]];\n x+= glyph.width;\n }\n\n return x;\n },\n drawCentered(color, x, y, string) {\n self.draw(color, x - self.computeWidth(string)/2, y, string);\n },\n flush() {\n rects.flush();\n }\n };\n\n return self;\n },\n \n createShapeDrawer() { // trades flexibility for lack of allocations\n let params = []\n let material;\n let tform = MatrixTransformer.create();\n \n let self = {\n useMaterial(mat) {\n if(material) {\n material.flush();\n }\n material = mat\n },\n useMatrix(mat) {\n tform.useMatrix(mat);\n },\n drawColoredRect(color, x1, y1, x2, y2) {\n let i = 0;\n params[i++] = color;\n i = tform.into(params, i, x1, y1, 0);\n i = tform.into(params, i, x2, y1, 0);\n i = tform.into(params, i, x1, y2, 0);\n i = tform.into(params, i, x2, y2, 0); \n material.drawQuad(params);\n },\n drawColoredTriangle(color, x1, y1, x2, y2, x3, y3) {\n let i = 0;\n params[i++] = color;\n i = tform.into(params, i, x1, y1, 0);\n i = tform.into(params, i, x2, y2, 0);\n i = tform.into(params, i, x3, y3, 0);\n material.drawTri(params);\n },\n drawTexturedRect(x1, y1, x2, y2, tx1, ty1, tx2, ty2) {\n let i = 0;\n i = tform.into(params, i, x1, y1, 0);\n params[i++] = tx1;\n params[i++] = ty1;\n i = tform.into(params, i, x2, y1, 0);\n params[i++] = tx2;\n params[i++] = ty1;\n i = tform.into(params, i, x1, y2, 0);\n params[i++] = tx1;\n params[i++] = ty2;\n i = tform.into(params, i, x2, y2, 0); \n params[i++] = tx2;\n params[i++] = ty2;\n material.drawQuad(params);\n },\n drawTexturedAndColoredRect(c, x1, y1, x2, y2, tx1, ty1, tx2, ty2) {\n let i = 0;\n params[i++] = c;\n i = tform.into(params, i, x1, y1, 0);\n params[i++] = tx1;\n params[i++] = ty1;\n i = tform.into(params, i, x2, y1, 0);\n params[i++] = tx2;\n params[i++] = ty1;\n i = tform.into(params, i, x1, y2, 0);\n params[i++] = tx1;\n params[i++] = ty2;\n i = tform.into(params, i, x2, y2, 0); \n params[i++] = tx2;\n params[i++] = ty2;\n material.drawQuad(params);\n },\n flush() {\n material.flush();\n }\n };\n return self;\n },\n\n pixelMatrix: Mat4.create(),\n pixelCenteredMatrix: Mat4.create(),\n \n createMaterial(shader, uniforms) {\n let triangles = 2048;\n \n let vertBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, vertBuffer);\n\n let perVertex = [];\n let perShape = [];\n for(let i = 0; i < shader.attributes.length; i++) {\n let attrib = shader.attributes[i];\n\n switch(attrib.type) {\n case \"per-vertex\":\n perVertex.push(attrib);\n break;\n case \"per-shape\":\n perShape.push(attrib);\n break;\n default:\n throw \"Bad attribute type '\" + attrib.type + \"' on \" + attrib.name;\n }\n }\n \n let buffer = new Float32Array(triangles\n * 3 // 3 vertices per triangle\n * shader.runtime.numComponents);\n let bp = 0; // buffer pos\n let numTris = 0;\n \n gl.bufferData(gl.ARRAY_BUFFER, buffer, gl.DYNAMIC_DRAW);\n\n let bufferFromAttributes = () => {\n for(let i = 0; i < shader.attributes.length; i++) {\n let attrib = shader.attributes[i];\n for(let j = 0; j < attrib.components; j++) {\n buffer[bp++] = attrib.runtime.components[j];\n }\n }\n };\n \n let self = {\n drawQuad(args) {\n if(numTris + 2 > triangles) {\n self.flush();\n }\n \n let argI = 0;\n for(let i = 0; i < perShape.length; i++) {\n argI = perShape[i].runtime.loadData(args, argI);\n }\n \n for(let i = 0; i < perVertex.length; i++) {\n argI = perVertex[i].runtime.loadData(args, argI);\n }\n bufferFromAttributes();\n let tri2argI = argI;\n for(let h = 0; h < 2; h++) {\n for(let i = 0; i < perVertex.length; i++) {\n argI = perVertex[i].runtime.loadData(args, argI);\n }\n bufferFromAttributes();\n }\n argI = tri2argI; //rewind argument iterator to where it was after the first vertex was read\n for(let h = 0; h < 3; h++) {\n for(let i = 0; i < perVertex.length; i++) {\n argI = perVertex[i].runtime.loadData(args, argI);\n }\n bufferFromAttributes();\n }\n \n numTris+= 2;\n },\n\n drawTri(args) {\n if(numTris + 1 > triangles) {\n self.flush();\n }\n\n let argI = 0;\n for(let i = 0; i < perShape.length; i++) {\n argI = perShape[i].runtime.loadData(args, argI);\n }\n for(let i = 0; i < 3; i++) {\n for(let j = 0; j < perVertex.length; j++) {\n argI = perVertex[j].runtime.loadData(args, argI);\n }\n bufferFromAttributes();\n }\n\n numTris++;\n },\n\n flush: () => {\n gl.bindBuffer(gl.ARRAY_BUFFER, vertBuffer);\n gl.bufferSubData(gl.ARRAY_BUFFER, 0, buffer);\n\n gl.useProgram(shader.program);\n\n for(let i = 0; i < shader.attributes.length; i++) {\n let attrib = shader.attributes[i];\n gl.enableVertexAttribArray(attrib.location);\n gl.vertexAttribPointer(attrib.location,\n attrib.components,\n gl.FLOAT, false,\n shader.runtime.stride,\n attrib.runtime.offset);\n }\n\n let texunit = 0;\n for(let i = 0; i < shader.uniforms.length; i++) {\n let uniform = shader.uniforms[i];\n\n let value = uniforms[uniform.name]\n if(shader.uniforms[i].callback) {\n value = value();\n }\n \n switch(shader.uniforms[i].datatype) {\n case \"mat4\":\n gl.uniformMatrix4fv(uniform.location, false, value.toGL());\n break;\n case \"tex2d\":\n gl.activeTexture(gl.TEXTURE0 + texunit);\n gl.bindTexture(gl.TEXTURE_2D, value.glTex);\n gl.uniform1i(uniform.location, texunit);\n texunit++;\n break;\n case \"float\":\n gl.uniform1f(uniform.location, value);\n }\n }\n \n gl.drawArrays(gl.TRIANGLES, 0, numTris * 3);\n\n for(let i = 0; i < shader.attributes.length; i++) {\n gl.disableVertexAttribArray(shader.attributes[i].location);\n }\n \n bp = 0;\n numTris = 0;\n }\n };\n\n return self;\n }\n };\n return render;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./js/webgl.js\n **/","'use strict';\n\n/* jshint -W079 */\nvar Blob = require('blob');\nvar Promise = require('native-or-lie');\n\n//\n// PRIVATE\n//\n\n// From http://stackoverflow.com/questions/14967647/ (continues on next line)\n// encode-decode-image-with-base64-breaks-image (2013-04-21)\nfunction binaryStringToArrayBuffer(binary) {\n var length = binary.length;\n var buf = new ArrayBuffer(length);\n var arr = new Uint8Array(buf);\n var i = -1;\n while (++i < length) {\n arr[i] = binary.charCodeAt(i);\n }\n return buf;\n}\n\n// Can't find original post, but this is close\n// http://stackoverflow.com/questions/6965107/ (continues on next line)\n// converting-between-strings-and-arraybuffers\nfunction arrayBufferToBinaryString(buffer) {\n var binary = '';\n var bytes = new Uint8Array(buffer);\n var length = bytes.byteLength;\n var i = -1;\n while (++i < length) {\n binary += String.fromCharCode(bytes[i]);\n }\n return binary;\n}\n\n// doesn't download the image more than once, because\n// browsers aren't dumb. uses the cache\nfunction loadImage(src, crossOrigin) {\n return new Promise(function (resolve, reject) {\n var img = new Image();\n if (crossOrigin) {\n img.crossOrigin = crossOrigin;\n }\n img.onload = function () {\n resolve(img);\n };\n img.onerror = reject;\n img.src = src;\n });\n}\n\nfunction imgToCanvas(img) {\n var canvas = document.createElement('canvas');\n\n canvas.width = img.width;\n canvas.height = img.height;\n\n // copy the image contents to the canvas\n var context = canvas.getContext('2d');\n context.drawImage(\n img,\n 0, 0,\n img.width, img.height,\n 0, 0,\n img.width, img.height);\n\n return canvas;\n}\n\n//\n// PUBLIC\n//\n\n/**\n * Shim for\n * [new Blob()]{@link https://developer.mozilla.org/en-US/docs/Web/API/Blob.Blob}\n * to support\n * [older browsers that use the deprecated BlobBuilder
API]{@link http://caniuse.com/blob}.\n *\n * @param {Array} parts - content of the Blob
\n * @param {Object} options - usually just {type: myContentType}
\n * @returns {Blob}\n */\nfunction createBlob(parts, options) {\n options = options || {};\n if (typeof options === 'string') {\n options = {type: options}; // do you a solid here\n }\n return new Blob(parts, options);\n}\n\n/**\n * Shim for\n * [URL.createObjectURL()]{@link https://developer.mozilla.org/en-US/docs/Web/API/URL.createObjectURL}\n * to support browsers that only have the prefixed\n * webkitURL
(e.g. Android <4.4).\n * @param {Blob} blob\n * @returns {string} url\n */\nfunction createObjectURL(blob) {\n return (window.URL || window.webkitURL).createObjectURL(blob);\n}\n\n/**\n * Shim for\n * [URL.revokeObjectURL()]{@link https://developer.mozilla.org/en-US/docs/Web/API/URL.revokeObjectURL}\n * to support browsers that only have the prefixed\n * webkitURL
(e.g. Android <4.4).\n * @param {string} url\n */\nfunction revokeObjectURL(url) {\n return (window.URL || window.webkitURL).revokeObjectURL(url);\n}\n\n/**\n * Convert a Blob
to a binary string. Returns a Promise.\n *\n * @param {Blob} blob\n * @returns {Promise} Promise that resolves with the binary string\n */\nfunction blobToBinaryString(blob) {\n return new Promise(function (resolve, reject) {\n var reader = new FileReader();\n var hasBinaryString = typeof reader.readAsBinaryString === 'function';\n reader.onloadend = function (e) {\n var result = e.target.result || '';\n if (hasBinaryString) {\n return resolve(result);\n }\n resolve(arrayBufferToBinaryString(result));\n };\n reader.onerror = reject;\n if (hasBinaryString) {\n reader.readAsBinaryString(blob);\n } else {\n reader.readAsArrayBuffer(blob);\n }\n });\n}\n\n/**\n * Convert a base64-encoded string to a Blob
. Returns a Promise.\n * @param {string} base64\n * @param {string|undefined} type - the content type (optional)\n * @returns {Promise} Promise that resolves with the Blob
\n */\nfunction base64StringToBlob(base64, type) {\n return Promise.resolve().then(function () {\n var parts = [binaryStringToArrayBuffer(atob(base64))];\n return type ? createBlob(parts, {type: type}) : createBlob(parts);\n });\n}\n\n/**\n * Convert a binary string to a Blob
. Returns a Promise.\n * @param {string} binary\n * @param {string|undefined} type - the content type (optional)\n * @returns {Promise} Promise that resolves with the Blob
\n */\nfunction binaryStringToBlob(binary, type) {\n return Promise.resolve().then(function () {\n return base64StringToBlob(btoa(binary), type);\n });\n}\n\n/**\n * Convert a Blob
to a binary string. Returns a Promise.\n * @param {Blob} blob\n * @returns {Promise} Promise that resolves with the binary string\n */\nfunction blobToBase64String(blob) {\n return blobToBinaryString(blob).then(function (binary) {\n return btoa(binary);\n });\n}\n\n/**\n * Convert a data URL string\n * (e.g. 'data:image/png;base64,iVBORw0KG...'
)\n * to a Blob
. Returns a Promise.\n * @param {string} dataURL\n * @returns {Promise} Promise that resolves with the Blob
\n */\nfunction dataURLToBlob(dataURL) {\n return Promise.resolve().then(function () {\n var type = dataURL.match(/data:([^;]+)/)[1];\n var base64 = dataURL.replace(/^[^,]+,/, '');\n\n var buff = binaryStringToArrayBuffer(atob(base64));\n return createBlob([buff], {type: type});\n });\n}\n\n/**\n * Convert an image's src
URL to a data URL by loading the image and painting\n * it to a canvas
. Returns a Promise.\n *\n *
canvas
to a Blob
. Returns a Promise.\n * @param {string} canvas\n * @param {string|undefined} type - the content type (optional, defaults to 'image/png')\n * @param {number|undefined} quality - a number between 0 and 1 indicating image quality\n * if the requested type is 'image/jpeg' or 'image/webp'\n * @returns {Promise} Promise that resolves with the Blob
\n */\nfunction canvasToBlob(canvas, type, quality) {\n return Promise.resolve().then(function () {\n if (typeof canvas.toBlob === 'function') {\n return new Promise(function (resolve) {\n canvas.toBlob(resolve, type, quality);\n });\n }\n return dataURLToBlob(canvas.toDataURL(type, quality));\n });\n}\n\n/**\n * Convert an image's src
URL to a Blob
by loading the image and painting\n * it to a canvas
. Returns a Promise.\n *\n * Note: this will coerce the image to the desired content type, and it\n * will only paint the first frame of an animated GIF.\n *\n * @param {string} src\n * @param {string|undefined} type - the content type (optional, defaults to 'image/png')\n * @param {string|undefined} crossOrigin - for CORS-enabled images, set this to\n * 'Anonymous' to avoid \"tainted canvas\" errors\n * @param {number|undefined} quality - a number between 0 and 1 indicating image quality\n * if the requested type is 'image/jpeg' or 'image/webp'\n * @returns {Promise} Promise that resolves with the Blob
\n */\nfunction imgSrcToBlob(src, type, crossOrigin, quality) {\n type = type || 'image/png';\n\n return loadImage(src, crossOrigin).then(function (img) {\n return imgToCanvas(img);\n }).then(function (canvas) {\n return canvasToBlob(canvas, type, quality);\n });\n}\n\n/**\n * Convert an ArrayBuffer
to a Blob
. Returns a Promise.\n *\n * @param {ArrayBuffer} buffer\n * @param {string|undefined} type - the content type (optional)\n * @returns {Promise} Promise that resolves with the Blob
\n */\nfunction arrayBufferToBlob(buffer, type) {\n return Promise.resolve().then(function () {\n return createBlob([buffer], type);\n });\n}\n\n/**\n * Convert a Blob
to an ArrayBuffer
. Returns a Promise.\n * @param {Blob} blob\n * @returns {Promise} Promise that resolves with the ArrayBuffer
\n */\nfunction blobToArrayBuffer(blob) {\n return new Promise(function (resolve, reject) {\n var reader = new FileReader();\n reader.onloadend = function (e) {\n var result = e.target.result || new ArrayBuffer(0);\n resolve(result);\n };\n reader.onerror = reject;\n reader.readAsArrayBuffer(blob);\n });\n}\n\nmodule.exports = {\n createBlob : createBlob,\n createObjectURL : createObjectURL,\n revokeObjectURL : revokeObjectURL,\n imgSrcToBlob : imgSrcToBlob,\n imgSrcToDataURL : imgSrcToDataURL,\n canvasToBlob : canvasToBlob,\n dataURLToBlob : dataURLToBlob,\n blobToBase64String : blobToBase64String,\n base64StringToBlob : base64StringToBlob,\n binaryStringToBlob : binaryStringToBlob,\n blobToBinaryString : blobToBinaryString,\n arrayBufferToBlob : arrayBufferToBlob,\n blobToArrayBuffer : blobToArrayBuffer\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/blob-util/lib/index.js\n ** module id = 2\n ** module chunks = 0\n **/","/**\n * Create a blob builder even when vendor prefixes exist\n */\n\nvar BlobBuilder = global.BlobBuilder\n || global.WebKitBlobBuilder\n || global.MSBlobBuilder\n || global.MozBlobBuilder;\n\n/**\n * Check if Blob constructor is supported\n */\n\nvar blobSupported = (function() {\n try {\n var a = new Blob(['hi']);\n return a.size === 2;\n } catch(e) {\n return false;\n }\n})();\n\n/**\n * Check if Blob constructor supports ArrayBufferViews\n * Fails in Safari 6, so we need to map to ArrayBuffers there.\n */\n\nvar blobSupportsArrayBufferView = blobSupported && (function() {\n try {\n var b = new Blob([new Uint8Array([1,2])]);\n return b.size === 2;\n } catch(e) {\n return false;\n }\n})();\n\n/**\n * Check if BlobBuilder is supported\n */\n\nvar blobBuilderSupported = BlobBuilder\n && BlobBuilder.prototype.append\n && BlobBuilder.prototype.getBlob;\n\n/**\n * Helper function that maps ArrayBufferViews to ArrayBuffers\n * Used by BlobBuilder constructor and old browsers that didn't\n * support it in the Blob constructor.\n */\n\nfunction mapArrayBufferViews(ary) {\n for (var i = 0; i < ary.length; i++) {\n var chunk = ary[i];\n if (chunk.buffer instanceof ArrayBuffer) {\n var buf = chunk.buffer;\n\n // if this is a subarray, make a copy so we only\n // include the subarray region from the underlying buffer\n if (chunk.byteLength !== buf.byteLength) {\n var copy = new Uint8Array(chunk.byteLength);\n copy.set(new Uint8Array(buf, chunk.byteOffset, chunk.byteLength));\n buf = copy.buffer;\n }\n\n ary[i] = buf;\n }\n }\n}\n\nfunction BlobBuilderConstructor(ary, options) {\n options = options || {};\n\n var bb = new BlobBuilder();\n mapArrayBufferViews(ary);\n\n for (var i = 0; i < ary.length; i++) {\n bb.append(ary[i]);\n }\n\n return (options.type) ? bb.getBlob(options.type) : bb.getBlob();\n};\n\nfunction BlobConstructor(ary, options) {\n mapArrayBufferViews(ary);\n return new Blob(ary, options || {});\n};\n\nmodule.exports = (function() {\n if (blobSupported) {\n return blobSupportsArrayBufferView ? global.Blob : BlobConstructor;\n } else if (blobBuilderSupported) {\n return BlobBuilderConstructor;\n } else {\n return undefined;\n }\n})();\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/blob/index.js\n ** module id = 3\n ** module chunks = 0\n **/","module.exports = typeof Promise === 'function' ? Promise : require('lie');\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/native-or-lie/index.js\n ** module id = 4\n ** module chunks = 0\n **/","'use strict';\nvar immediate = require('immediate');\n\n/* istanbul ignore next */\nfunction INTERNAL() {}\n\nvar handlers = {};\n\nvar REJECTED = ['REJECTED'];\nvar FULFILLED = ['FULFILLED'];\nvar PENDING = ['PENDING'];\n\nmodule.exports = Promise;\n\nfunction Promise(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('resolver must be a function');\n }\n this.state = PENDING;\n this.queue = [];\n this.outcome = void 0;\n if (resolver !== INTERNAL) {\n safelyResolveThenable(this, resolver);\n }\n}\n\nPromise.prototype[\"catch\"] = function (onRejected) {\n return this.then(null, onRejected);\n};\nPromise.prototype.then = function (onFulfilled, onRejected) {\n if (typeof onFulfilled !== 'function' && this.state === FULFILLED ||\n typeof onRejected !== 'function' && this.state === REJECTED) {\n return this;\n }\n var promise = new this.constructor(INTERNAL);\n if (this.state !== PENDING) {\n var resolver = this.state === FULFILLED ? onFulfilled : onRejected;\n unwrap(promise, resolver, this.outcome);\n } else {\n this.queue.push(new QueueItem(promise, onFulfilled, onRejected));\n }\n\n return promise;\n};\nfunction QueueItem(promise, onFulfilled, onRejected) {\n this.promise = promise;\n if (typeof onFulfilled === 'function') {\n this.onFulfilled = onFulfilled;\n this.callFulfilled = this.otherCallFulfilled;\n }\n if (typeof onRejected === 'function') {\n this.onRejected = onRejected;\n this.callRejected = this.otherCallRejected;\n }\n}\nQueueItem.prototype.callFulfilled = function (value) {\n handlers.resolve(this.promise, value);\n};\nQueueItem.prototype.otherCallFulfilled = function (value) {\n unwrap(this.promise, this.onFulfilled, value);\n};\nQueueItem.prototype.callRejected = function (value) {\n handlers.reject(this.promise, value);\n};\nQueueItem.prototype.otherCallRejected = function (value) {\n unwrap(this.promise, this.onRejected, value);\n};\n\nfunction unwrap(promise, func, value) {\n immediate(function () {\n var returnValue;\n try {\n returnValue = func(value);\n } catch (e) {\n return handlers.reject(promise, e);\n }\n if (returnValue === promise) {\n handlers.reject(promise, new TypeError('Cannot resolve promise with itself'));\n } else {\n handlers.resolve(promise, returnValue);\n }\n });\n}\n\nhandlers.resolve = function (self, value) {\n var result = tryCatch(getThen, value);\n if (result.status === 'error') {\n return handlers.reject(self, result.value);\n }\n var thenable = result.value;\n\n if (thenable) {\n safelyResolveThenable(self, thenable);\n } else {\n self.state = FULFILLED;\n self.outcome = value;\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callFulfilled(value);\n }\n }\n return self;\n};\nhandlers.reject = function (self, error) {\n self.state = REJECTED;\n self.outcome = error;\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callRejected(error);\n }\n return self;\n};\n\nfunction getThen(obj) {\n // Make sure we only access the accessor once as required by the spec\n var then = obj && obj.then;\n if (obj && typeof obj === 'object' && typeof then === 'function') {\n return function appyThen() {\n then.apply(obj, arguments);\n };\n }\n}\n\nfunction safelyResolveThenable(self, thenable) {\n // Either fulfill, reject or reject with error\n var called = false;\n function onError(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.reject(self, value);\n }\n\n function onSuccess(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.resolve(self, value);\n }\n\n function tryToUnwrap() {\n thenable(onSuccess, onError);\n }\n\n var result = tryCatch(tryToUnwrap);\n if (result.status === 'error') {\n onError(result.value);\n }\n}\n\nfunction tryCatch(func, value) {\n var out = {};\n try {\n out.value = func(value);\n out.status = 'success';\n } catch (e) {\n out.status = 'error';\n out.value = e;\n }\n return out;\n}\n\nPromise.resolve = resolve;\nfunction resolve(value) {\n if (value instanceof this) {\n return value;\n }\n return handlers.resolve(new this(INTERNAL), value);\n}\n\nPromise.reject = reject;\nfunction reject(reason) {\n var promise = new this(INTERNAL);\n return handlers.reject(promise, reason);\n}\n\nPromise.all = all;\nfunction all(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var values = new Array(len);\n var resolved = 0;\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n allResolver(iterable[i], i);\n }\n return promise;\n function allResolver(value, i) {\n self.resolve(value).then(resolveFromAll, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n function resolveFromAll(outValue) {\n values[i] = outValue;\n if (++resolved === len && !called) {\n called = true;\n handlers.resolve(promise, values);\n }\n }\n }\n}\n\nPromise.race = race;\nfunction race(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n resolver(iterable[i]);\n }\n return promise;\n function resolver(value) {\n self.resolve(value).then(function (response) {\n if (!called) {\n called = true;\n handlers.resolve(promise, response);\n }\n }, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n }\n}\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lie/lib/browser.js\n ** module id = 5\n ** module chunks = 0\n **/","'use strict';\nvar Mutation = global.MutationObserver || global.WebKitMutationObserver;\n\nvar scheduleDrain;\n\n{\n if (Mutation) {\n var called = 0;\n var observer = new Mutation(nextTick);\n var element = global.document.createTextNode('');\n observer.observe(element, {\n characterData: true\n });\n scheduleDrain = function () {\n element.data = (called = ++called % 2);\n };\n } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') {\n var channel = new global.MessageChannel();\n channel.port1.onmessage = nextTick;\n scheduleDrain = function () {\n channel.port2.postMessage(0);\n };\n } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) {\n scheduleDrain = function () {\n\n // Create a