tfcconnection/.shadow-cljs/builds/app/dev/goog-js/com.cognitect.transit.impl.writer.js

1 line
76 KiB
JavaScript

["^ ","~:resource-id",["~:shadow.build.classpath/resource","com/cognitect/transit/impl/writer.js"],"~:js","goog.provide(\"com.cognitect.transit.impl.writer\");\ngoog.require(\"com.cognitect.transit.util\");\ngoog.require(\"com.cognitect.transit.caching\");\ngoog.require(\"com.cognitect.transit.handlers\");\ngoog.require(\"com.cognitect.transit.types\");\ngoog.require(\"com.cognitect.transit.delimiters\");\ngoog.require(\"goog.math.Long\");\ngoog.scope(function() {\n var writer = com.cognitect.transit.impl.writer, util = com.cognitect.transit.util, caching = com.cognitect.transit.caching, handlers = com.cognitect.transit.handlers, types = com.cognitect.transit.types, d = com.cognitect.transit.delimiters, Long = goog.math.Long;\n writer.escape = function(string) {\n if (string.length > 0) {\n var c = string.charAt(0);\n if (c === d.ESC || c === d.SUB || c === d.RES) {\n return d.ESC + string;\n } else {\n return string;\n }\n } else {\n return string;\n }\n };\n writer.JSONMarshaller = function Transit$JSONMarshaller(opts) {\n this.opts = opts || {};\n this.preferStrings = this.opts[\"preferStrings\"] != null ? this.opts[\"preferStrings\"] : true;\n this.objectBuilder = this.opts[\"objectBuilder\"] || null;\n this.transform = this.opts[\"transform\"] || null;\n this.handlers = new handlers.Handlers();\n var optsHandlers = this.opts[\"handlers\"];\n if (optsHandlers) {\n if (util.isArray(optsHandlers) || !optsHandlers.forEach) {\n throw new Error('transit writer \"handlers\" option must be a map');\n }\n var self = this;\n optsHandlers.forEach(function(v, k) {\n if (k !== undefined) {\n self.handlers.set(k, v);\n } else {\n throw new Error(\"Cannot create handler for JavaScript undefined\");\n }\n });\n }\n this.handlerForForeign = this.opts[\"handlerForForeign\"];\n this.unpack = this.opts[\"unpack\"] || function(x) {\n if (types.isArrayMap(x) && x.backingMap === null) {\n return x._entries;\n } else {\n return false;\n }\n };\n this.verbose = this.opts && this.opts[\"verbose\"] || false;\n };\n writer.JSONMarshaller.prototype.handler = function(obj) {\n var h = this.handlers.get(handlers.constructor(obj));\n if (h != null) {\n return h;\n } else {\n var tag = obj && obj[\"transitTag\"];\n if (tag) {\n return this.handlers.get(tag);\n } else {\n return null;\n }\n }\n };\n writer.JSONMarshaller.prototype.registerHandler = function(ctor, handler) {\n this.handlers.set(ctor, handler);\n };\n writer.JSONMarshaller.prototype.emitNil = function(asMapKey, cache) {\n if (asMapKey) {\n return this.emitString(d.ESC, \"_\", \"\", asMapKey, cache);\n } else {\n return null;\n }\n };\n writer.JSONMarshaller.prototype.emitString = function(prefix, tag, s, asMapKey, cache) {\n var string = prefix + tag + s;\n if (cache) {\n return cache.write(string, asMapKey);\n } else {\n return string;\n }\n };\n writer.JSONMarshaller.prototype.emitBoolean = function(b, asMapKey, cache) {\n if (asMapKey) {\n var s = b.toString();\n return this.emitString(d.ESC, \"?\", s[0], asMapKey, cache);\n } else {\n return b;\n }\n };\n writer.JSONMarshaller.prototype.emitInteger = function(i, asMapKey, cache) {\n if (i === Infinity) {\n return this.emitString(d.ESC, \"z\", \"INF\", asMapKey, cache);\n } else if (i === -Infinity) {\n return this.emitString(d.ESC, \"z\", \"-INF\", asMapKey, cache);\n } else if (isNaN(i)) {\n return this.emitString(d.ESC, \"z\", \"NaN\", asMapKey, cache);\n } else if (asMapKey || typeof i === \"string\" || i instanceof Long) {\n return this.emitString(d.ESC, \"i\", i.toString(), asMapKey, cache);\n } else {\n return i;\n }\n };\n writer.JSONMarshaller.prototype.emitDouble = function(d, asMapKey, cache) {\n if (asMapKey) {\n return this.emitString(d.ESC, \"d\", d, asMapKey, cache);\n } else {\n return d;\n }\n };\n writer.JSONMarshaller.prototype.emitBinary = function(b, asMapKey, cache) {\n return this.emitString(d.ESC, \"b\", b, asMapKey, cache);\n };\n writer.JSONMarshaller.prototype.emitQuoted = function(em, obj, cache) {\n if (em.verbose) {\n var ret = {}, k = this.emitString(d.ESC_TAG, \"'\", \"\", true, cache);\n ret[k] = writer.marshal(this, obj, false, cache);\n return ret;\n } else {\n return [this.emitString(d.ESC_TAG, \"'\", \"\", true, cache), writer.marshal(this, obj, false, cache)];\n }\n };\n writer.emitObjects = function(em, iterable, cache) {\n var ret = [];\n if (util.isArray(iterable)) {\n for (var i = 0; i < iterable.length; i++) {\n ret.push(writer.marshal(em, iterable[i], false, cache));\n }\n } else {\n iterable.forEach(function(v, i) {\n ret.push(writer.marshal(em, v, false, cache));\n });\n }\n return ret;\n };\n writer.emitArray = function(em, iterable, skip, cache) {\n return writer.emitObjects(em, iterable, cache);\n };\n writer.isStringableKey = function(em, k) {\n if (typeof k !== \"string\") {\n var h = em.handler(k);\n return h && h.tag(k).length === 1;\n } else {\n return true;\n }\n };\n writer.stringableKeys = function(em, obj) {\n var arr = em.unpack(obj), stringableKeys = true;\n if (arr) {\n for (var i = 0; i < arr.length; i += 2) {\n stringableKeys = writer.isStringableKey(em, arr[i]);\n if (!stringableKeys) {\n break;\n }\n }\n return stringableKeys;\n } else if (obj.keys) {\n var iter = obj.keys(), step = null;\n if (iter.next) {\n step = iter.next();\n while (!step.done) {\n stringableKeys = writer.isStringableKey(em, step.value);\n if (!stringableKeys) {\n break;\n }\n step = iter.next();\n }\n return stringableKeys;\n }\n }\n if (obj.forEach) {\n obj.forEach(function(v, k) {\n stringableKeys = stringableKeys && writer.isStringableKey(em, k);\n });\n return stringableKeys;\n } else {\n throw new Error(\"Cannot walk keys of object type \" + handlers.constructor(obj).name);\n }\n };\n writer.isForeignObject = function(x) {\n if (x.constructor[\"transit$isObject\"]) {\n return true;\n }\n var ret = x.constructor.toString();\n ret = ret.substr(\"function \".length);\n ret = ret.substr(0, ret.indexOf(\"(\"));\n var isObject = ret == \"Object\";\n if (typeof Object.defineProperty != \"undefined\") {\n Object.defineProperty(x.constructor, \"transit$isObject\", {value:isObject, enumerable:false});\n } else {\n x.constructor[\"transit$isObject\"] = isObject;\n }\n return isObject;\n };\n writer.emitMap = function(em, obj, skip, cache) {\n var arr = null, rep = null, tag = null, ks = null, i = 0;\n if (obj.constructor === Object || obj.forEach != null || em.handlerForForeign && writer.isForeignObject(obj)) {\n if (em.verbose) {\n if (obj.forEach != null) {\n if (writer.stringableKeys(em, obj)) {\n var ret = {};\n obj.forEach(function(v, k) {\n ret[writer.marshal(em, k, true, false)] = writer.marshal(em, v, false, cache);\n });\n return ret;\n } else {\n arr = em.unpack(obj);\n rep = [];\n tag = em.emitString(d.ESC_TAG, \"cmap\", \"\", true, cache);\n if (arr) {\n for (; i < arr.length; i += 2) {\n rep.push(writer.marshal(em, arr[i], false, false));\n rep.push(writer.marshal(em, arr[i + 1], false, cache));\n }\n } else {\n obj.forEach(function(v, k) {\n rep.push(writer.marshal(em, k, false, false));\n rep.push(writer.marshal(em, v, false, cache));\n });\n }\n ret = {};\n ret[tag] = rep;\n return ret;\n }\n } else {\n ks = util.objectKeys(obj);\n ret = {};\n for (; i < ks.length; i++) {\n ret[writer.marshal(em, ks[i], true, false)] = writer.marshal(em, obj[ks[i]], false, cache);\n }\n return ret;\n }\n } else {\n if (obj.forEach != null) {\n if (writer.stringableKeys(em, obj)) {\n arr = em.unpack(obj);\n ret = [\"^ \"];\n if (arr) {\n for (; i < arr.length; i += 2) {\n ret.push(writer.marshal(em, arr[i], true, cache));\n ret.push(writer.marshal(em, arr[i + 1], false, cache));\n }\n } else {\n obj.forEach(function(v, k) {\n ret.push(writer.marshal(em, k, true, cache));\n ret.push(writer.marshal(em, v, false, cache));\n });\n }\n return ret;\n } else {\n arr = em.unpack(obj);\n rep = [];\n tag = em.emitString(d.ESC_TAG, \"cmap\", \"\", true, cache);\n if (arr) {\n for (; i < arr.length; i += 2) {\n rep.push(writer.marshal(em, arr[i], false, cache));\n rep.push(writer.marshal(em, arr[i + 1], false, cache));\n }\n } else {\n obj.forEach(function(v, k) {\n rep.push(writer.marshal(em, k, false, cache));\n rep.push(writer.marshal(em, v, false, cache));\n });\n }\n return [tag, rep];\n }\n } else {\n ret = [\"^ \"];\n ks = util.objectKeys(obj);\n for (; i < ks.length; i++) {\n ret.push(writer.marshal(em, ks[i], true, cache));\n ret.push(writer.marshal(em, obj[ks[i]], false, cache));\n }\n return ret;\n }\n }\n } else if (em.objectBuilder != null) {\n return em.objectBuilder(obj, function(k) {\n return writer.marshal(em, k, true, cache);\n }, function(v) {\n return writer.marshal(em, v, false, cache);\n });\n } else {\n var name = handlers.constructor(obj).name, err = new Error(\"Cannot write \" + name);\n err.data = {obj:obj, type:name};\n throw err;\n }\n };\n writer.emitTaggedMap = function(em, tag, rep, skip, cache) {\n if (em.verbose) {\n var ret = {};\n ret[em.emitString(d.ESC_TAG, tag, \"\", true, cache)] = writer.marshal(em, rep, false, cache);\n return ret;\n } else {\n return [em.emitString(d.ESC_TAG, tag, \"\", true, cache), writer.marshal(em, rep, false, cache)];\n }\n };\n writer.emitEncoded = function(em, h, tag, rep, obj, asMapKey, cache) {\n if (tag.length === 1) {\n if (typeof rep === \"string\") {\n return em.emitString(d.ESC, tag, rep, asMapKey, cache);\n } else if (asMapKey || em.preferStrings) {\n var vh = em.verbose && h.getVerboseHandler();\n if (vh) {\n tag = vh.tag(obj);\n rep = vh.stringRep(obj, vh);\n } else {\n rep = h.stringRep(obj, h);\n }\n if (rep !== null) {\n return em.emitString(d.ESC, tag, rep, asMapKey, cache);\n } else {\n var err = new Error('Tag \"' + tag + '\" cannot be encoded as string');\n err.data = {tag:tag, rep:rep, obj:obj};\n throw err;\n }\n } else {\n return writer.emitTaggedMap(em, tag, rep, asMapKey, cache);\n }\n } else {\n return writer.emitTaggedMap(em, tag, rep, asMapKey, cache);\n }\n };\n writer.marshal = function(em, obj, asMapKey, cache) {\n if (em.transform !== null) {\n obj = em.transform(obj);\n }\n var h = em.handler(obj) || (em.handlerForForeign ? em.handlerForForeign(obj, em.handlers) : null), tag = h ? h.tag(obj) : null, rep = h ? h.rep(obj) : null;\n if (h != null && tag != null) {\n switch(tag) {\n case \"_\":\n return em.emitNil(asMapKey, cache);\n break;\n case \"s\":\n return em.emitString(\"\", \"\", writer.escape(rep), asMapKey, cache);\n break;\n case \"?\":\n return em.emitBoolean(rep, asMapKey, cache);\n break;\n case \"i\":\n return em.emitInteger(rep, asMapKey, cache);\n break;\n case \"d\":\n return em.emitDouble(rep, asMapKey, cache);\n break;\n case \"b\":\n return em.emitBinary(rep, asMapKey, cache);\n break;\n case \"'\":\n return em.emitQuoted(em, rep, cache);\n break;\n case \"array\":\n return writer.emitArray(em, rep, asMapKey, cache);\n break;\n case \"map\":\n return writer.emitMap(em, rep, asMapKey, cache);\n break;\n default:\n return writer.emitEncoded(em, h, tag, rep, obj, asMapKey, cache);\n break;\n }\n } else {\n var name = handlers.constructor(obj).name, err = new Error(\"Cannot write \" + name);\n err.data = {obj:obj, type:name};\n throw err;\n }\n };\n writer.maybeQuoted = function(em, obj) {\n var h = em.handler(obj) || (em.handlerForForeign ? em.handlerForForeign(obj, em.handlers) : null);\n if (h != null) {\n if (h.tag(obj).length === 1) {\n return types.quoted(obj);\n } else {\n return obj;\n }\n } else {\n var name = handlers.constructor(obj).name, err = new Error(\"Cannot write \" + name);\n err.data = {obj:obj, type:name};\n throw err;\n }\n };\n writer.marshalTop = function(em, obj, asMapKey, cache) {\n return JSON.stringify(writer.marshal(em, writer.maybeQuoted(em, obj), asMapKey, cache));\n };\n writer.Writer = function Transit$Writer(marshaller, options) {\n this._marshaller = marshaller;\n this.options = options || {};\n if (this.options[\"cache\"] === false) {\n this.cache = null;\n } else {\n this.cache = this.options[\"cache\"] ? this.options[\"cache\"] : new caching.WriteCache();\n }\n };\n writer.Writer.prototype.marshaller = function() {\n return this._marshaller;\n };\n writer.Writer.prototype[\"marshaller\"] = writer.Writer.prototype.marshaller;\n writer.Writer.prototype.write = function(obj, opts) {\n var ret = null, ropts = opts || {}, asMapKey = ropts[\"asMapKey\"] || false, cache = this._marshaller.verbose ? false : this.cache;\n if (ropts[\"marshalTop\"] === false) {\n ret = writer.marshal(this._marshaller, obj, asMapKey, cache);\n } else {\n ret = writer.marshalTop(this._marshaller, obj, asMapKey, cache);\n }\n if (this.cache != null) {\n this.cache.clear();\n }\n return ret;\n };\n writer.Writer.prototype[\"write\"] = writer.Writer.prototype.write;\n writer.Writer.prototype.register = function(type, handler) {\n this._marshaller.registerHandler(type, handler);\n };\n writer.Writer.prototype[\"register\"] = writer.Writer.prototype.register;\n});\n","~:source","// Copyright 2014 Cognitect. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS-IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\ngoog.provide(\"com.cognitect.transit.impl.writer\");\ngoog.require(\"com.cognitect.transit.util\");\ngoog.require(\"com.cognitect.transit.caching\");\ngoog.require(\"com.cognitect.transit.handlers\");\ngoog.require(\"com.cognitect.transit.types\");\ngoog.require(\"com.cognitect.transit.delimiters\");\ngoog.require(\"goog.math.Long\");\n\ngoog.scope(function () {\n\n var writer = com.cognitect.transit.impl.writer,\n util = com.cognitect.transit.util,\n caching = com.cognitect.transit.caching,\n handlers = com.cognitect.transit.handlers,\n types = com.cognitect.transit.types,\n d = com.cognitect.transit.delimiters,\n Long = goog.math.Long;\n\n writer.escape = function (string) {\n if (string.length > 0) {\n var c = string.charAt(0);\n if (c === d.ESC || c === d.SUB || c === d.RES) {\n return d.ESC + string;\n } else {\n return string;\n }\n } else {\n return string;\n }\n };\n\n /**\n * @constructor\n */\n writer.JSONMarshaller = function Transit$JSONMarshaller(opts) {\n this.opts = opts || {};\n this.preferStrings = this.opts[\"preferStrings\"] != null ? this.opts[\"preferStrings\"] : true;\n\n this.objectBuilder = this.opts[\"objectBuilder\"] || null;\n this.transform = this.opts[\"transform\"] || null;\n\n this.handlers = new handlers.Handlers();\n\n var optsHandlers = this.opts[\"handlers\"];\n if (optsHandlers) {\n if (util.isArray(optsHandlers) || !optsHandlers.forEach) {\n throw new Error(\"transit writer \\\"handlers\\\" option must be a map\");\n }\n var self = this;\n optsHandlers.forEach(function (v, k) {\n if (k !== undefined) {\n self.handlers.set(k, v);\n } else {\n throw new Error(\"Cannot create handler for JavaScript undefined\");\n }\n });\n }\n\n // Multiple JS context helper\n this.handlerForForeign = this.opts[\"handlerForForeign\"];\n\n this.unpack = this.opts[\"unpack\"] || function (x) {\n if (types.isArrayMap(x) && x.backingMap === null) {\n return x._entries;\n } else {\n return false;\n }\n };\n\n this.verbose = (this.opts && this.opts[\"verbose\"]) || false;\n };\n\n writer.JSONMarshaller.prototype.handler = function (obj) {\n var h = this.handlers.get(handlers.constructor(obj));\n\n if (h != null) {\n return h;\n } else {\n var tag = obj && obj[\"transitTag\"];\n if (tag) {\n return this.handlers.get(tag)\n } else {\n return null;\n }\n }\n };\n\n writer.JSONMarshaller.prototype.registerHandler = function (ctor, handler) {\n this.handlers.set(ctor, handler);\n };\n\n writer.JSONMarshaller.prototype.emitNil = function (asMapKey, cache) {\n if (asMapKey) {\n return this.emitString(d.ESC, \"_\", \"\", asMapKey, cache);\n } else {\n return null;\n }\n };\n\n writer.JSONMarshaller.prototype.emitString = function (prefix, tag, s, asMapKey, cache) {\n var string = prefix + tag + s;\n if (cache) {\n return cache.write(string, asMapKey);\n } else {\n return string;\n }\n };\n\n writer.JSONMarshaller.prototype.emitBoolean = function (b, asMapKey, cache) {\n if (asMapKey) {\n var s = b.toString();\n return this.emitString(d.ESC, \"?\", s[0], asMapKey, cache);\n } else {\n return b;\n }\n };\n\n writer.JSONMarshaller.prototype.emitInteger = function (i, asMapKey, cache) {\n if (i === Infinity) {\n return this.emitString(d.ESC, \"z\", \"INF\", asMapKey, cache);\n } else if (i === -Infinity) {\n return this.emitString(d.ESC, \"z\", \"-INF\", asMapKey, cache);\n } else if (isNaN(i)) {\n return this.emitString(d.ESC, \"z\", \"NaN\", asMapKey, cache);\n } else if (asMapKey || (typeof i === \"string\") || (i instanceof Long)) {\n return this.emitString(d.ESC, \"i\", i.toString(), asMapKey, cache);\n } else {\n return i;\n }\n };\n\n writer.JSONMarshaller.prototype.emitDouble = function (d, asMapKey, cache) {\n if (asMapKey) {\n return this.emitString(d.ESC, \"d\", d, asMapKey, cache);\n } else {\n return d;\n }\n };\n\n writer.JSONMarshaller.prototype.emitBinary = function (b, asMapKey, cache) {\n return this.emitString(d.ESC, \"b\", b, asMapKey, cache);\n };\n\n writer.JSONMarshaller.prototype.emitQuoted = function (em, obj, cache) {\n if (em.verbose) {\n var ret = {},\n k = this.emitString(d.ESC_TAG, \"'\", \"\", true, cache);\n ret[k] = writer.marshal(this, obj, false, cache);\n return ret;\n } else {\n return [this.emitString(d.ESC_TAG, \"'\", \"\", true, cache), writer.marshal(this, obj, false, cache)];\n }\n };\n\n writer.emitObjects = function (em, iterable, cache) {\n var ret = [];\n if (util.isArray(iterable)) {\n for (var i = 0; i < iterable.length; i++) {\n ret.push(writer.marshal(em, iterable[i], false, cache));\n }\n } else {\n iterable.forEach(function (v, i) {\n ret.push(writer.marshal(em, v, false, cache));\n });\n }\n return ret;\n };\n\n writer.emitArray = function (em, iterable, skip, cache) {\n return writer.emitObjects(em, iterable, cache);\n };\n\n writer.isStringableKey = function (em, k) {\n if (typeof k !== \"string\") {\n var h = em.handler(k);\n return h && h.tag(k).length === 1;\n } else {\n return true;\n }\n };\n\n /**\n * Returns true if map-like obj parameter has only stringable keys -\n * strings, symbols or keywords. If false, obj is a cmap value.\n * @param em\n * @param obj\n * @returns {boolean}\n */\n writer.stringableKeys = function (em, obj) {\n var arr = em.unpack(obj),\n stringableKeys = true;\n\n if (arr) {\n for (var i = 0; i < arr.length; i += 2) {\n stringableKeys = writer.isStringableKey(em, arr[i]);\n if (!stringableKeys) {\n break;\n }\n }\n return stringableKeys;\n } else if (obj.keys) {\n var iter = obj.keys(),\n step = null;\n\n if (iter.next) {\n step = iter.next();\n while (!step.done) {\n stringableKeys = writer.isStringableKey(em, step.value);\n if (!stringableKeys) {\n break;\n }\n step = iter.next();\n }\n return stringableKeys;\n }\n }\n\n if (obj.forEach) {\n obj.forEach(function (v, k) {\n stringableKeys = stringableKeys && writer.isStringableKey(em, k);\n });\n return stringableKeys;\n } else {\n throw new Error(\"Cannot walk keys of object type \" + handlers.constructor(obj).name);\n }\n };\n\n /**\n * Returns true if x is an Object instance from a different JavaScript\n * context.\n * @param x\n * @returns {boolean}\n */\n writer.isForeignObject = function (x) {\n if (x.constructor[\"transit$isObject\"]) {\n return true;\n }\n\n var ret = x.constructor.toString();\n\n ret = ret.substr('function '.length);\n ret = ret.substr(0, ret.indexOf('('));\n var isObject = ret == \"Object\";\n\n if (typeof Object.defineProperty != \"undefined\") {\n Object.defineProperty(x.constructor, \"transit$isObject\", {\n value: isObject,\n enumerable: false\n });\n } else {\n x.constructor[\"transit$isObject\"] = isObject;\n }\n\n return isObject;\n };\n\n writer.emitMap = function (em, obj, skip, cache) {\n var arr = null, rep = null, tag = null, ks = null, i = 0;\n\n if ((obj.constructor === Object) ||\n (obj.forEach != null) ||\n (em.handlerForForeign && writer.isForeignObject(obj))) {\n if (em.verbose) {\n if (obj.forEach != null) {\n if (writer.stringableKeys(em, obj)) {\n var ret = {};\n obj.forEach(function (v, k) {\n ret[writer.marshal(em, k, true, false)] = writer.marshal(em, v, false, cache);\n });\n return ret;\n } else {\n arr = em.unpack(obj);\n rep = [];\n tag = em.emitString(d.ESC_TAG, \"cmap\", \"\", true, cache);\n if (arr) {\n for (; i < arr.length; i += 2) {\n rep.push(writer.marshal(em, arr[i], false, false));\n rep.push(writer.marshal(em, arr[i + 1], false, cache));\n }\n } else {\n obj.forEach(function (v, k) {\n rep.push(writer.marshal(em, k, false, false));\n rep.push(writer.marshal(em, v, false, cache));\n });\n }\n ret = {};\n ret[tag] = rep;\n return ret;\n }\n } else {\n ks = util.objectKeys(obj);\n ret = {};\n for (; i < ks.length; i++) {\n ret[writer.marshal(em, ks[i], true, false)] = writer.marshal(em, obj[ks[i]], false, cache);\n }\n return ret;\n }\n } else {\n if (obj.forEach != null) {\n if (writer.stringableKeys(em, obj)) {\n arr = em.unpack(obj);\n ret = [\"^ \"];\n if (arr) {\n for (; i < arr.length; i += 2) {\n ret.push(writer.marshal(em, arr[i], true, cache));\n ret.push(writer.marshal(em, arr[i + 1], false, cache));\n }\n } else {\n obj.forEach(function (v, k) {\n ret.push(writer.marshal(em, k, true, cache));\n ret.push(writer.marshal(em, v, false, cache));\n });\n }\n return ret;\n } else {\n arr = em.unpack(obj);\n rep = [];\n tag = em.emitString(d.ESC_TAG, \"cmap\", \"\", true, cache);\n if (arr) {\n for (; i < arr.length; i += 2) {\n rep.push(writer.marshal(em, arr[i], false, cache));\n rep.push(writer.marshal(em, arr[i + 1], false, cache));\n }\n } else {\n obj.forEach(function (v, k) {\n rep.push(writer.marshal(em, k, false, cache));\n rep.push(writer.marshal(em, v, false, cache));\n });\n }\n return [tag, rep];\n }\n } else {\n ret = [\"^ \"];\n ks = util.objectKeys(obj);\n for (; i < ks.length; i++) {\n ret.push(writer.marshal(em, ks[i], true, cache));\n ret.push(writer.marshal(em, obj[ks[i]], false, cache));\n }\n return ret;\n }\n }\n } else if (em.objectBuilder != null) {\n return em.objectBuilder(obj, function (k) {\n return writer.marshal(em, k, true, cache);\n },\n function (v) {\n return writer.marshal(em, v, false, cache);\n });\n } else {\n var name = handlers.constructor(obj).name,\n err = new Error(\"Cannot write \" + name);\n err.data = {obj: obj, type: name};\n throw err;\n }\n };\n\n writer.emitTaggedMap = function (em, tag, rep, skip, cache) {\n if (em.verbose) {\n var ret = {};\n ret[em.emitString(d.ESC_TAG, tag, \"\", true, cache)] = writer.marshal(em, rep, false, cache);\n return ret;\n } else {\n return [em.emitString(d.ESC_TAG, tag, \"\", true, cache), writer.marshal(em, rep, false, cache)];\n }\n };\n\n writer.emitEncoded = function (em, h, tag, rep, obj, asMapKey, cache) {\n if (tag.length === 1) {\n if (typeof rep === \"string\") {\n return em.emitString(d.ESC, tag, rep, asMapKey, cache);\n } else if (asMapKey || em.preferStrings) {\n var vh = em.verbose && h.getVerboseHandler();\n if (vh) {\n tag = vh.tag(obj);\n rep = vh.stringRep(obj, vh);\n } else {\n rep = h.stringRep(obj, h);\n }\n if (rep !== null) {\n return em.emitString(d.ESC, tag, rep, asMapKey, cache);\n } else {\n var err = new Error(\"Tag \\\"\" + tag + \"\\\" cannot be encoded as string\");\n err.data = {tag: tag, rep: rep, obj: obj};\n throw err;\n }\n } else {\n return writer.emitTaggedMap(em, tag, rep, asMapKey, cache);\n }\n } else {\n return writer.emitTaggedMap(em, tag, rep, asMapKey, cache);\n }\n };\n\n writer.marshal = function (em, obj, asMapKey, cache) {\n if(em.transform !== null) {\n obj = em.transform(obj);\n }\n\n var h = em.handler(obj) || (em.handlerForForeign ? em.handlerForForeign(obj, em.handlers) : null),\n tag = h ? h.tag(obj) : null,\n rep = h ? h.rep(obj) : null;\n\n if (h != null && tag != null) {\n switch (tag) {\n case \"_\":\n return em.emitNil(asMapKey, cache);\n break;\n case \"s\":\n return em.emitString(\"\", \"\", writer.escape(rep), asMapKey, cache);\n break;\n case \"?\":\n return em.emitBoolean(rep, asMapKey, cache);\n break;\n case \"i\":\n return em.emitInteger(rep, asMapKey, cache);\n break;\n case \"d\":\n return em.emitDouble(rep, asMapKey, cache);\n break;\n case \"b\":\n return em.emitBinary(rep, asMapKey, cache);\n break;\n case \"'\":\n return em.emitQuoted(em, rep, cache);\n break;\n case \"array\":\n return writer.emitArray(em, rep, asMapKey, cache);\n break;\n case \"map\":\n return writer.emitMap(em, rep, asMapKey, cache);\n break;\n default:\n return writer.emitEncoded(em, h, tag, rep, obj, asMapKey, cache);\n break;\n }\n } else {\n var name = handlers.constructor(obj).name,\n err = new Error(\"Cannot write \" + name);\n err.data = {obj: obj, type: name};\n throw err;\n }\n };\n\n writer.maybeQuoted = function (em, obj) {\n var h = em.handler(obj) || (em.handlerForForeign ? em.handlerForForeign(obj, em.handlers) : null);\n\n if (h != null) {\n if (h.tag(obj).length === 1) {\n return types.quoted(obj);\n } else {\n return obj;\n }\n } else {\n var name = handlers.constructor(obj).name,\n err = new Error(\"Cannot write \" + name);\n err.data = {obj: obj, type: name};\n throw err;\n }\n };\n\n writer.marshalTop = function (em, obj, asMapKey, cache) {\n return JSON.stringify(writer.marshal(em, writer.maybeQuoted(em, obj), asMapKey, cache));\n };\n\n /**\n * @constructor\n */\n writer.Writer = function Transit$Writer(marshaller, options) {\n this._marshaller = marshaller;\n this.options = options || {};\n if (this.options[\"cache\"] === false) {\n this.cache = null;\n } else {\n this.cache = this.options[\"cache\"] ? this.options[\"cache\"] : new caching.WriteCache();\n }\n };\n\n writer.Writer.prototype.marshaller = function () {\n return this._marshaller;\n };\n writer.Writer.prototype[\"marshaller\"] = writer.Writer.prototype.marshaller;\n\n writer.Writer.prototype.write = function (obj, opts) {\n var ret = null,\n ropts = opts || {},\n asMapKey = ropts[\"asMapKey\"] || false,\n cache = this._marshaller.verbose ? false : this.cache;\n\n if (ropts[\"marshalTop\"] === false) {\n ret = writer.marshal(this._marshaller, obj, asMapKey, cache)\n } else {\n ret = writer.marshalTop(this._marshaller, obj, asMapKey, cache)\n }\n if (this.cache != null) {\n this.cache.clear();\n }\n return ret;\n };\n writer.Writer.prototype[\"write\"] = writer.Writer.prototype.write;\n\n writer.Writer.prototype.register = function (type, handler) {\n this._marshaller.registerHandler(type, handler);\n };\n writer.Writer.prototype[\"register\"] = writer.Writer.prototype.register;\n\n});\n","~:compiled-at",1684858198124,"~:source-map-json","{\n\"version\":3,\n\"file\":\"com.cognitect.transit.impl.writer.js\",\n\"lineCount\":416,\n\"mappings\":\"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\",\n\"sources\":[\"com/cognitect/transit/impl/writer.js\"],\n\"sourcesContent\":[\"// Copyright 2014 Cognitect. All Rights Reserved.\\n//\\n// Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n// you may not use this file except in compliance with the License.\\n// You may obtain a copy of the License at\\n//\\n// http://www.apache.org/licenses/LICENSE-2.0\\n//\\n// Unless required by applicable law or agreed to in writing, software\\n// distributed under the License is distributed on an \\\"AS-IS\\\" BASIS,\\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n// See the License for the specific language governing permissions and\\n// limitations under the License.\\n\\ngoog.provide(\\\"com.cognitect.transit.impl.writer\\\");\\ngoog.require(\\\"com.cognitect.transit.util\\\");\\ngoog.require(\\\"com.cognitect.transit.caching\\\");\\ngoog.require(\\\"com.cognitect.transit.handlers\\\");\\ngoog.require(\\\"com.cognitect.transit.types\\\");\\ngoog.require(\\\"com.cognitect.transit.delimiters\\\");\\ngoog.require(\\\"goog.math.Long\\\");\\n\\ngoog.scope(function () {\\n\\n var writer = com.cognitect.transit.impl.writer,\\n util = com.cognitect.transit.util,\\n caching = com.cognitect.transit.caching,\\n handlers = com.cognitect.transit.handlers,\\n types = com.cognitect.transit.types,\\n d = com.cognitect.transit.delimiters,\\n Long = goog.math.Long;\\n\\n writer.escape = function (string) {\\n if (string.length > 0) {\\n var c = string.charAt(0);\\n if (c === d.ESC || c === d.SUB || c === d.RES) {\\n return d.ESC + string;\\n } else {\\n return string;\\n }\\n } else {\\n return string;\\n }\\n };\\n\\n /**\\n * @constructor\\n */\\n writer.JSONMarshaller = function Transit$JSONMarshaller(opts) {\\n this.opts = opts || {};\\n this.preferStrings = this.opts[\\\"preferStrings\\\"] != null ? this.opts[\\\"preferStrings\\\"] : true;\\n\\n this.objectBuilder = this.opts[\\\"objectBuilder\\\"] || null;\\n this.transform = this.opts[\\\"transform\\\"] || null;\\n\\n this.handlers = new handlers.Handlers();\\n\\n var optsHandlers = this.opts[\\\"handlers\\\"];\\n if (optsHandlers) {\\n if (util.isArray(optsHandlers) || !optsHandlers.forEach) {\\n throw new Error(\\\"transit writer \\\\\\\"handlers\\\\\\\" option must be a map\\\");\\n }\\n var self = this;\\n optsHandlers.forEach(function (v, k) {\\n if (k !== undefined) {\\n self.handlers.set(k, v);\\n } else {\\n throw new Error(\\\"Cannot create handler for JavaScript undefined\\\");\\n }\\n });\\n }\\n\\n // Multiple JS context helper\\n this.handlerForForeign = this.opts[\\\"handlerForForeign\\\"];\\n\\n this.unpack = this.opts[\\\"unpack\\\"] || function (x) {\\n if (types.isArrayMap(x) && x.backingMap === null) {\\n return x._entries;\\n } else {\\n return false;\\n }\\n };\\n\\n this.verbose = (this.opts && this.opts[\\\"verbose\\\"]) || false;\\n };\\n\\n writer.JSONMarshaller.prototype.handler = function (obj) {\\n var h = this.handlers.get(handlers.constructor(obj));\\n\\n if (h != null) {\\n return h;\\n } else {\\n var tag = obj && obj[\\\"transitTag\\\"];\\n if (tag) {\\n return this.handlers.get(tag)\\n } else {\\n return null;\\n }\\n }\\n };\\n\\n writer.JSONMarshaller.prototype.registerHandler = function (ctor, handler) {\\n this.handlers.set(ctor, handler);\\n };\\n\\n writer.JSONMarshaller.prototype.emitNil = function (asMapKey, cache) {\\n if (asMapKey) {\\n return this.emitString(d.ESC, \\\"_\\\", \\\"\\\", asMapKey, cache);\\n } else {\\n return null;\\n }\\n };\\n\\n writer.JSONMarshaller.prototype.emitString = function (prefix, tag, s, asMapKey, cache) {\\n var string = prefix + tag + s;\\n if (cache) {\\n return cache.write(string, asMapKey);\\n } else {\\n return string;\\n }\\n };\\n\\n writer.JSONMarshaller.prototype.emitBoolean = function (b, asMapKey, cache) {\\n if (asMapKey) {\\n var s = b.toString();\\n return this.emitString(d.ESC, \\\"?\\\", s[0], asMapKey, cache);\\n } else {\\n return b;\\n }\\n };\\n\\n writer.JSONMarshaller.prototype.emitInteger = function (i, asMapKey, cache) {\\n if (i === Infinity) {\\n return this.emitString(d.ESC, \\\"z\\\", \\\"INF\\\", asMapKey, cache);\\n } else if (i === -Infinity) {\\n return this.emitString(d.ESC, \\\"z\\\", \\\"-INF\\\", asMapKey, cache);\\n } else if (isNaN(i)) {\\n return this.emitString(d.ESC, \\\"z\\\", \\\"NaN\\\", asMapKey, cache);\\n } else if (asMapKey || (typeof i === \\\"string\\\") || (i instanceof Long)) {\\n return this.emitString(d.ESC, \\\"i\\\", i.toString(), asMapKey, cache);\\n } else {\\n return i;\\n }\\n };\\n\\n writer.JSONMarshaller.prototype.emitDouble = function (d, asMapKey, cache) {\\n if (asMapKey) {\\n return this.emitString(d.ESC, \\\"d\\\", d, asMapKey, cache);\\n } else {\\n return d;\\n }\\n };\\n\\n writer.JSONMarshaller.prototype.emitBinary = function (b, asMapKey, cache) {\\n return this.emitString(d.ESC, \\\"b\\\", b, asMapKey, cache);\\n };\\n\\n writer.JSONMarshaller.prototype.emitQuoted = function (em, obj, cache) {\\n if (em.verbose) {\\n var ret = {},\\n k = this.emitString(d.ESC_TAG, \\\"'\\\", \\\"\\\", true, cache);\\n ret[k] = writer.marshal(this, obj, false, cache);\\n return ret;\\n } else {\\n return [this.emitString(d.ESC_TAG, \\\"'\\\", \\\"\\\", true, cache), writer.marshal(this, obj, false, cache)];\\n }\\n };\\n\\n writer.emitObjects = function (em, iterable, cache) {\\n var ret = [];\\n if (util.isArray(iterable)) {\\n for (var i = 0; i < iterable.length; i++) {\\n ret.push(writer.marshal(em, iterable[i], false, cache));\\n }\\n } else {\\n iterable.forEach(function (v, i) {\\n ret.push(writer.marshal(em, v, false, cache));\\n });\\n }\\n return ret;\\n };\\n\\n writer.emitArray = function (em, iterable, skip, cache) {\\n return writer.emitObjects(em, iterable, cache);\\n };\\n\\n writer.isStringableKey = function (em, k) {\\n if (typeof k !== \\\"string\\\") {\\n var h = em.handler(k);\\n return h && h.tag(k).length === 1;\\n } else {\\n return true;\\n }\\n };\\n\\n /**\\n * Returns true if map-like obj parameter has only stringable keys -\\n * strings, symbols or keywords. If false, obj is a cmap value.\\n * @param em\\n * @param obj\\n * @returns {boolean}\\n */\\n writer.stringableKeys = function (em, obj) {\\n var arr = em.unpack(obj),\\n stringableKeys = true;\\n\\n if (arr) {\\n for (var i = 0; i < arr.length; i += 2) {\\n stringableKeys = writer.isStringableKey(em, arr[i]);\\n if (!stringableKeys) {\\n break;\\n }\\n }\\n return stringableKeys;\\n } else if (obj.keys) {\\n var iter = obj.keys(),\\n step = null;\\n\\n if (iter.next) {\\n step = iter.next();\\n while (!step.done) {\\n stringableKeys = writer.isStringableKey(em, step.value);\\n if (!stringableKeys) {\\n break;\\n }\\n step = iter.next();\\n }\\n return stringableKeys;\\n }\\n }\\n\\n if (obj.forEach) {\\n obj.forEach(function (v, k) {\\n stringableKeys = stringableKeys && writer.isStringableKey(em, k);\\n });\\n return stringableKeys;\\n } else {\\n throw new Error(\\\"Cannot walk keys of object type \\\" + handlers.constructor(obj).name);\\n }\\n };\\n\\n /**\\n * Returns true if x is an Object instance from a different JavaScript\\n * context.\\n * @param x\\n * @returns {boolean}\\n */\\n writer.isForeignObject = function (x) {\\n if (x.constructor[\\\"transit$isObject\\\"]) {\\n return true;\\n }\\n\\n var ret = x.constructor.toString();\\n\\n ret = ret.substr('function '.length);\\n ret = ret.substr(0, ret.indexOf('('));\\n var isObject = ret == \\\"Object\\\";\\n\\n if (typeof Object.defineProperty != \\\"undefined\\\") {\\n Object.defineProperty(x.constructor, \\\"transit$isObject\\\", {\\n value: isObject,\\n enumerable: false\\n });\\n } else {\\n x.constructor[\\\"transit$isObject\\\"] = isObject;\\n }\\n\\n return isObject;\\n };\\n\\n writer.emitMap = function (em, obj, skip, cache) {\\n var arr = null, rep = null, tag = null, ks = null, i = 0;\\n\\n if ((obj.constructor === Object) ||\\n (obj.forEach != null) ||\\n (em.handlerForForeign && writer.isForeignObject(obj))) {\\n if (em.verbose) {\\n if (obj.forEach != null) {\\n if (writer.stringableKeys(em, obj)) {\\n var ret = {};\\n obj.forEach(function (v, k) {\\n ret[writer.marshal(em, k, true, false)] = writer.marshal(em, v, false, cache);\\n });\\n return ret;\\n } else {\\n arr = em.unpack(obj);\\n rep = [];\\n tag = em.emitString(d.ESC_TAG, \\\"cmap\\\", \\\"\\\", true, cache);\\n if (arr) {\\n for (; i < arr.length; i += 2) {\\n rep.push(writer.marshal(em, arr[i], false, false));\\n rep.push(writer.marshal(em, arr[i + 1], false, cache));\\n }\\n } else {\\n obj.forEach(function (v, k) {\\n rep.push(writer.marshal(em, k, false, false));\\n rep.push(writer.marshal(em, v, false, cache));\\n });\\n }\\n ret = {};\\n ret[tag] = rep;\\n return ret;\\n }\\n } else {\\n ks = util.objectKeys(obj);\\n ret = {};\\n for (; i < ks.length; i++) {\\n ret[writer.marshal(em, ks[i], true, false)] = writer.marshal(em, obj[ks[i]], false, cache);\\n }\\n return ret;\\n }\\n } else {\\n if (obj.forEach != null) {\\n if (writer.stringableKeys(em, obj)) {\\n arr = em.unpack(obj);\\n ret = [\\\"^ \\\"];\\n if (arr) {\\n for (; i < arr.length; i += 2) {\\n ret.push(writer.marshal(em, arr[i], true, cache));\\n ret.push(writer.marshal(em, arr[i + 1], false, cache));\\n }\\n } else {\\n obj.forEach(function (v, k) {\\n ret.push(writer.marshal(em, k, true, cache));\\n ret.push(writer.marshal(em, v, false, cache));\\n });\\n }\\n return ret;\\n } else {\\n arr = em.unpack(obj);\\n rep = [];\\n tag = em.emitString(d.ESC_TAG, \\\"cmap\\\", \\\"\\\", true, cache);\\n if (arr) {\\n for (; i < arr.length; i += 2) {\\n rep.push(writer.marshal(em, arr[i], false, cache));\\n rep.push(writer.marshal(em, arr[i + 1], false, cache));\\n }\\n } else {\\n obj.forEach(function (v, k) {\\n rep.push(writer.marshal(em, k, false, cache));\\n rep.push(writer.marshal(em, v, false, cache));\\n });\\n }\\n return [tag, rep];\\n }\\n } else {\\n ret = [\\\"^ \\\"];\\n ks = util.objectKeys(obj);\\n for (; i < ks.length; i++) {\\n ret.push(writer.marshal(em, ks[i], true, cache));\\n ret.push(writer.marshal(em, obj[ks[i]], false, cache));\\n }\\n return ret;\\n }\\n }\\n } else if (em.objectBuilder != null) {\\n return em.objectBuilder(obj, function (k) {\\n return writer.marshal(em, k, true, cache);\\n },\\n function (v) {\\n return writer.marshal(em, v, false, cache);\\n });\\n } else {\\n var name = handlers.constructor(obj).name,\\n err = new Error(\\\"Cannot write \\\" + name);\\n err.data = {obj: obj, type: name};\\n throw err;\\n }\\n };\\n\\n writer.emitTaggedMap = function (em, tag, rep, skip, cache) {\\n if (em.verbose) {\\n var ret = {};\\n ret[em.emitString(d.ESC_TAG, tag, \\\"\\\", true, cache)] = writer.marshal(em, rep, false, cache);\\n return ret;\\n } else {\\n return [em.emitString(d.ESC_TAG, tag, \\\"\\\", true, cache), writer.marshal(em, rep, false, cache)];\\n }\\n };\\n\\n writer.emitEncoded = function (em, h, tag, rep, obj, asMapKey, cache) {\\n if (tag.length === 1) {\\n if (typeof rep === \\\"string\\\") {\\n return em.emitString(d.ESC, tag, rep, asMapKey, cache);\\n } else if (asMapKey || em.preferStrings) {\\n var vh = em.verbose && h.getVerboseHandler();\\n if (vh) {\\n tag = vh.tag(obj);\\n rep = vh.stringRep(obj, vh);\\n } else {\\n rep = h.stringRep(obj, h);\\n }\\n if (rep !== null) {\\n return em.emitString(d.ESC, tag, rep, asMapKey, cache);\\n } else {\\n var err = new Error(\\\"Tag \\\\\\\"\\\" + tag + \\\"\\\\\\\" cannot be encoded as string\\\");\\n err.data = {tag: tag, rep: rep, obj: obj};\\n throw err;\\n }\\n } else {\\n return writer.emitTaggedMap(em, tag, rep, asMapKey, cache);\\n }\\n } else {\\n return writer.emitTaggedMap(em, tag, rep, asMapKey, cache);\\n }\\n };\\n\\n writer.marshal = function (em, obj, asMapKey, cache) {\\n if(em.transform !== null) {\\n obj = em.transform(obj);\\n }\\n\\n var h = em.handler(obj) || (em.handlerForForeign ? em.handlerForForeign(obj, em.handlers) : null),\\n tag = h ? h.tag(obj) : null,\\n rep = h ? h.rep(obj) : null;\\n\\n if (h != null && tag != null) {\\n switch (tag) {\\n case \\\"_\\\":\\n return em.emitNil(asMapKey, cache);\\n break;\\n case \\\"s\\\":\\n return em.emitString(\\\"\\\", \\\"\\\", writer.escape(rep), asMapKey, cache);\\n break;\\n case \\\"?\\\":\\n return em.emitBoolean(rep, asMapKey, cache);\\n break;\\n case \\\"i\\\":\\n return em.emitInteger(rep, asMapKey, cache);\\n break;\\n case \\\"d\\\":\\n return em.emitDouble(rep, asMapKey, cache);\\n break;\\n case \\\"b\\\":\\n return em.emitBinary(rep, asMapKey, cache);\\n break;\\n case \\\"'\\\":\\n return em.emitQuoted(em, rep, cache);\\n break;\\n case \\\"array\\\":\\n return writer.emitArray(em, rep, asMapKey, cache);\\n break;\\n case \\\"map\\\":\\n return writer.emitMap(em, rep, asMapKey, cache);\\n break;\\n default:\\n return writer.emitEncoded(em, h, tag, rep, obj, asMapKey, cache);\\n break;\\n }\\n } else {\\n var name = handlers.constructor(obj).name,\\n err = new Error(\\\"Cannot write \\\" + name);\\n err.data = {obj: obj, type: name};\\n throw err;\\n }\\n };\\n\\n writer.maybeQuoted = function (em, obj) {\\n var h = em.handler(obj) || (em.handlerForForeign ? em.handlerForForeign(obj, em.handlers) : null);\\n\\n if (h != null) {\\n if (h.tag(obj).length === 1) {\\n return types.quoted(obj);\\n } else {\\n return obj;\\n }\\n } else {\\n var name = handlers.constructor(obj).name,\\n err = new Error(\\\"Cannot write \\\" + name);\\n err.data = {obj: obj, type: name};\\n throw err;\\n }\\n };\\n\\n writer.marshalTop = function (em, obj, asMapKey, cache) {\\n return JSON.stringify(writer.marshal(em, writer.maybeQuoted(em, obj), asMapKey, cache));\\n };\\n\\n /**\\n * @constructor\\n */\\n writer.Writer = function Transit$Writer(marshaller, options) {\\n this._marshaller = marshaller;\\n this.options = options || {};\\n if (this.options[\\\"cache\\\"] === false) {\\n this.cache = null;\\n } else {\\n this.cache = this.options[\\\"cache\\\"] ? this.options[\\\"cache\\\"] : new caching.WriteCache();\\n }\\n };\\n\\n writer.Writer.prototype.marshaller = function () {\\n return this._marshaller;\\n };\\n writer.Writer.prototype[\\\"marshaller\\\"] = writer.Writer.prototype.marshaller;\\n\\n writer.Writer.prototype.write = function (obj, opts) {\\n var ret = null,\\n ropts = opts || {},\\n asMapKey = ropts[\\\"asMapKey\\\"] || false,\\n cache = this._marshaller.verbose ? false : this.cache;\\n\\n if (ropts[\\\"marshalTop\\\"] === false) {\\n ret = writer.marshal(this._marshaller, obj, asMapKey, cache)\\n } else {\\n ret = writer.marshalTop(this._marshaller, obj, asMapKey, cache)\\n }\\n if (this.cache != null) {\\n this.cache.clear();\\n }\\n return ret;\\n };\\n writer.Writer.prototype[\\\"write\\\"] = writer.Writer.prototype.write;\\n\\n writer.Writer.prototype.register = function (type, handler) {\\n this._marshaller.registerHandler(type, handler);\\n };\\n writer.Writer.prototype[\\\"register\\\"] = writer.Writer.prototype.register;\\n\\n});\\n\"],\n\"names\":[\"goog\",\"provide\",\"require\",\"scope\",\"writer\",\"com\",\"cognitect\",\"transit\",\"impl\",\"util\",\"caching\",\"handlers\",\"types\",\"d\",\"delimiters\",\"Long\",\"math\",\"escape\",\"writer.escape\",\"string\",\"length\",\"c\",\"charAt\",\"ESC\",\"SUB\",\"RES\",\"JSONMarshaller\",\"writer.JSONMarshaller\",\"Transit$JSONMarshaller\",\"opts\",\"preferStrings\",\"objectBuilder\",\"transform\",\"Handlers\",\"optsHandlers\",\"isArray\",\"forEach\",\"Error\",\"self\",\"v\",\"k\",\"undefined\",\"set\",\"handlerForForeign\",\"unpack\",\"x\",\"isArrayMap\",\"backingMap\",\"_entries\",\"verbose\",\"prototype\",\"handler\",\"writer.JSONMarshaller.prototype.handler\",\"obj\",\"h\",\"get\",\"constructor\",\"tag\",\"registerHandler\",\"writer.JSONMarshaller.prototype.registerHandler\",\"ctor\",\"emitNil\",\"writer.JSONMarshaller.prototype.emitNil\",\"asMapKey\",\"cache\",\"emitString\",\"writer.JSONMarshaller.prototype.emitString\",\"prefix\",\"s\",\"write\",\"emitBoolean\",\"writer.JSONMarshaller.prototype.emitBoolean\",\"b\",\"toString\",\"emitInteger\",\"writer.JSONMarshaller.prototype.emitInteger\",\"i\",\"Infinity\",\"isNaN\",\"emitDouble\",\"writer.JSONMarshaller.prototype.emitDouble\",\"emitBinary\",\"writer.JSONMarshaller.prototype.emitBinary\",\"emitQuoted\",\"writer.JSONMarshaller.prototype.emitQuoted\",\"em\",\"ret\",\"ESC_TAG\",\"marshal\",\"emitObjects\",\"writer.emitObjects\",\"iterable\",\"push\",\"emitArray\",\"writer.emitArray\",\"skip\",\"isStringableKey\",\"writer.isStringableKey\",\"stringableKeys\",\"writer.stringableKeys\",\"arr\",\"keys\",\"iter\",\"step\",\"next\",\"done\",\"value\",\"name\",\"isForeignObject\",\"writer.isForeignObject\",\"substr\",\"indexOf\",\"isObject\",\"Object\",\"defineProperty\",\"enumerable\",\"emitMap\",\"writer.emitMap\",\"rep\",\"ks\",\"objectKeys\",\"err\",\"data\",\"type\",\"emitTaggedMap\",\"writer.emitTaggedMap\",\"emitEncoded\",\"writer.emitEncoded\",\"vh\",\"getVerboseHandler\",\"stringRep\",\"writer.marshal\",\"maybeQuoted\",\"writer.maybeQuoted\",\"quoted\",\"marshalTop\",\"writer.marshalTop\",\"JSON\",\"stringify\",\"Writer\",\"writer.Writer\",\"Transit$Writer\",\"marshaller\",\"options\",\"_marshaller\",\"WriteCache\",\"writer.Writer.prototype.marshaller\",\"writer.Writer.prototype.write\",\"ropts\",\"clear\",\"register\",\"writer.Writer.prototype.register\"]\n}\n"]