["^ ","~:foreign-libs",[],"~:externs",[],"~:resources",[["^ ","~:js-str-offsets",[],"~:classpath",true,"~:js-esm",false,"~:cache-key",["0abe5e8068014ccb34cf075637a00b7ce37e4a8c"],"~:js-imports",[],"~:js-invalid-requires",[],"~:goog-provides",[],"~:js-language","es3","~:goog-module",null,"~:ns","~$module$com$oracle$truffle$js$runtime$resources$parser","~:output-name","module$com$oracle$truffle$js$runtime$resources$parser.js","~:resource-id",["~:shadow.build.classpath/resource","com/oracle/truffle/js/runtime/resources/parser.js"],"~:resource-name","com/oracle/truffle/js/runtime/resources/parser.js","~:type","~:js","~:js-requires",[],"~:source","/*\n * Copyright (c) 2018, 2018, Oracle and/or its affiliates. All rights reserved.\n * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.\n *\n * Licensed under the Universal Permissive License v 1.0 as shown at http://oss.oracle.com/licenses/upl.\n */\n\n/**\n * Parse function returns a JSON object representing ECMAScript code passed.\n * name is optional name for the code source and location param tells whether to\n * include location information for AST nodes or not.\n *\n * Example:\n *\n *    load(\"nashorn:parser.js\");\n *    try {\n *        var json = parse(\"print('hello')\");\n *        print(JSON.stringify(json));\n *    } catch (e) {\n *        print(e);\n *    }\n */\nfunction parse(code, name, location) {\n    var jsonStr = parseToJSON(code, name, location);\n    return JSON.parse(jsonStr,\n        function (prop, value) {\n            if (typeof value === \"string\" && prop === \"value\") {\n                // handle regexps and strings - both are encoded as strings but strings\n                // do not start with '/'. If regexp, then eval it to make RegExp object\n                return value.startsWith('/') ? eval(value) : value.substring(1);\n            } else {\n                // anything else is returned \"as is\"\"\n                return value;\n            }\n        });\n}\n","~:last-modified",1598798249654,"~:requires",["~#set",[]],"~:pom-info",["^ ","~:group-id","~$org.graalvm.js","~:artifact-id","~$js","~:version","20.1.0","~:url","http://www.graalvm.org/","~:name","Graaljs","~:description","Graal JavaScript engine","~:id","~$org.graalvm.js/js","~:coordinate",["^S","20.1.0"]],"~:goog-requires",[],"~:inspect-info",["^ ","^3",[],"^5",false,"^7",[],"^8",[],"^9",[],"^:","es3","^;",null,"^D",[],"^U",[],"~:uses-global-buffer",false,"~:uses-global-process",false],"^O",["~#url","jar:file:/home/justin/.m2/repository/org/graalvm/js/js/20.1.0/js-20.1.0.jar!/com/oracle/truffle/js/runtime/resources/parser.js"],"~:provides",["^H",["^="]],"^W",false,"~:from-jar",true,"~:deps",[],"^X",false],["^ ","^3",[],"^4",true,"^5",false,"^6",["0abe5e8068014ccb34cf075637a00b7ce37e4a8c"],"^7",[],"^8",[],"^9",[],"^:","es5","^;",null,"^<","~$module$com$oracle$truffle$js$runtime$resources$mozilla_compat","^>","module$com$oracle$truffle$js$runtime$resources$mozilla_compat.js","^?",["^@","com/oracle/truffle/js/runtime/resources/mozilla_compat.js"],"^A","com/oracle/truffle/js/runtime/resources/mozilla_compat.js","^B","^C","^D",[],"^E","/*\n * Copyright (c) 2018, 2018, Oracle and/or its affiliates. All rights reserved.\n * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.\n *\n * Licensed under the Universal Permissive License v 1.0 as shown at http://oss.oracle.com/licenses/upl.\n */\n\n/**\n * This script contains non-standard, Mozilla compatibility functionality on\n * the standard global objects. Please note that it is incomplete. Only the most\n * often used functionality is supported.\n */\n\n// JavaAdapter\nObject.defineProperty(this, \"JavaAdapter\", {\n    configurable: true, enumerable: false, writable: true,\n    value: function() {\n        if (arguments.length < 2) {\n            throw new TypeError(\"JavaAdapter requires at least two arguments\");\n        }\n\n        var types = Array.prototype.slice.call(arguments, 0, arguments.length - 1);\n        var NewType = Java.extend.apply(Java, types);\n        return new NewType(arguments[arguments.length - 1]);\n    }\n});\n\n\n// importPackage\n// avoid unnecessary chaining of __noSuchProperty__ again\n// in case user loads this script more than once.\nif (typeof importPackage == 'undefined') {\n\nObject.defineProperty(this, \"importPackage\", {\n    configurable: true, enumerable: false, writable: true,\n    value: (function() {\n        var _packages = [];\n        var global = this;\n        var oldNoSuchProperty = global.__noSuchProperty__;\n        var __noSuchProperty__ = function(name) {\n            'use strict';\n            for (var i in _packages) {\n                try {\n                    var type = Java.type(_packages[i] + \".\" + name);\n                    global[name] = type;\n                    return type;\n                } catch (e) {}\n            }\n\n            if (oldNoSuchProperty) {\n                return oldNoSuchProperty.call(this, name);\n            } else {\n                if (this === undefined) {\n                    throw new ReferenceError(name + \" is not defined\");\n                } else {\n                    return undefined;\n                }\n            }\n        }\n\n        Object.defineProperty(global, \"__noSuchProperty__\", {\n            writable: true, configurable: true, enumerable: false,\n            value: __noSuchProperty__\n        });\n\n        var prefix = \"[JavaPackage \";\n        return function() {\n            for (var i in arguments) {\n                var pkgName = arguments[i];\n                if ((typeof pkgName) != 'string') {\n                    pkgName = String(pkgName);\n                    // extract name from JavaPackage object\n                    if (pkgName.startsWith(prefix)) {\n                        pkgName = pkgName.substring(prefix.length, pkgName.length - 1);\n                    }\n                }\n                _packages.push(pkgName);\n            }\n        }\n    })()\n});\n\n}\n\n// sync\nObject.defineProperty(this, \"sync\", {\n    configurable: true, enumerable: false, writable: true,\n    value: function(func, syncobj) {\n        if (arguments.length < 1 || arguments.length > 2 ) {\n            throw \"sync(function [,object]) parameter count mismatch\";\n        }\n        return Java.synchronized(func, syncobj);\n    }\n});\n\n// Object.prototype.toSource\nObject.defineProperty(Object.prototype, \"toSource\", {\n    configurable: true, enumerable: false, writable: true,\n    value: (function(){\n        var MySet = typeof Set == 'function' ? Set : (function(){\n              function ES5Set() {\n                  this.elements = [];\n              }\n              Object.defineProperties(ES5Set.prototype, {\n                  has: {value: function has(e) {return this.elements.indexOf(e) >= 0;}, configurable: true, writable: true},\n                  add: {value: function add(e) {return this.elements.push(e);}, configurable: true, writable: true},\n              });\n              return ES5Set;\n        })();\n        return function toSource(state) {\n            if (!state) {\n                state = new MySet();\n            }\n            if (state.has(this)) {\n                return \"{}\";\n            }\n            state.add(this);\n            var str = '({', sep = '';\n            for (var i in this) {\n                str += sep;\n                str += i;\n                str += ':';\n                if (this[i] instanceof Object && typeof(this[i].toSource) == 'function') {\n                    str += this[i].toSource(state);\n                } else {\n                    str += String(this[i]);\n                }\n                sep = ', ';\n            }\n            str += '})';\n            return String(str);\n        }\n    })()\n});\n\n// Boolean.prototype.toSource\nObject.defineProperty(Boolean.prototype, \"toSource\", {\n    configurable: true, enumerable: false, writable: true,\n    value: function() {\n        return '(new Boolean(' + this.toString() + '))';\n    }\n});\n\n// Date.prototype.toSource\nObject.defineProperty(Date.prototype, \"toSource\", {\n    configurable: true, enumerable: false, writable: true,\n    value: function() {\n        return '(new Date(' + this.valueOf() + '))';\n    }\n});\n\n// Number.prototype.toSource\nObject.defineProperty(Number.prototype, \"toSource\", {\n    configurable: true, enumerable: false, writable: true,\n    value: function() {\n        return '(new Number(' + this.toString() + '))';\n    }\n});\n\n// RegExp.prototype.toSource\nObject.defineProperty(RegExp.prototype, \"toSource\", {\n    configurable: true, enumerable: false, writable: true,\n    value: function() {\n        return this.toString();\n    }\n});\n\n// String.prototype.toSource\nObject.defineProperty(String.prototype, \"toSource\", {\n    configurable: true, enumerable: false, writable: true,\n    value: function() {\n        return '(new String(' + this.quote() + '))';\n    }\n});\n\n// Error.prototype.toSource\nObject.defineProperty(Error.prototype, \"toSource\", {\n    configurable: true, enumerable: false, writable: true,\n    value: function() {\n        var msg = this.message? String(this.message).quote() : \"''\";\n        return '(new ' + this.name + '(' + msg + '))';\n    }\n});\n\n// Function.prototype.arity\nObject.defineProperty(Function.prototype, \"arity\", {\n    configurable: true, enumerable: false,\n    get: function() { return this.length; },\n    set: function(x) {\n        throw new TypeError(\"Function arity can not be modified\");\n    }\n});\n\n// String.prototype.quote\nObject.defineProperty(String.prototype, \"quote\", {\n    configurable: true, enumerable: false, writable: true,\n    value: function() {\n        return JSON.stringify(this);\n    }\n});\n\n// Rhino: global.importClass\nObject.defineProperty(this, \"importClass\", {\n    configurable: true, enumerable: false, writable: true,\n    value: function() {\n        for (var i = 0; i < arguments.length; i++) {\n            var clazz = arguments[i];\n            if (Java.isType(clazz)) {\n                var className = Java.typeName(clazz);\n                var simpleName = className.substring(className.lastIndexOf('.') + 1);\n                this[simpleName] = clazz;\n            } else {\n                throw new TypeError(clazz + \" is not a Java class\");\n            }\n        }\n    }\n});\n","^F",1598798249654,"^G",["^H",[]],"^I",["^ ","^J","^K","^L","^M","^N","20.1.0","^O","http://www.graalvm.org/","^P","Graaljs","^Q","Graal JavaScript engine","^R","^S","^T",["^S","20.1.0"]],"^U",[],"^V",["^ ","^3",[],"^5",false,"^7",[],"^8",[],"^9",[],"^:","es5","^;",null,"^D",[],"^U",[],"^W",false,"^X",false],"^O",["^Y","jar:file:/home/justin/.m2/repository/org/graalvm/js/js/20.1.0/js-20.1.0.jar!/com/oracle/truffle/js/runtime/resources/mozilla_compat.js"],"^Z",["^H",["^11"]],"^W",false,"^[",true,"^10",[],"^X",false]],"~:data-readers",null,"~:shadow.build.classpath/CACHE-TIMESTAMP",1598798247000]