{
  "version": 3,
  "file": "main.cjs",
  "sources": [
    "../../src/internal/isComposite.js",
    "../../src/internal/global-value-path.js",
    "../../src/internal/decompose.js",
    "../../src/internal/sortRecipe.js",
    "../../src/internal/escapeString.js",
    "../../src/uneval.js"
  ],
  "sourcesContent": [
    "// https://developer.mozilla.org/en-US/docs/Glossary/Primitive\n\nexport const isComposite = (value) => {\n  if (value === null) {\n    return false\n  }\n\n  const type = typeof value\n  if (type === \"object\") {\n    return true\n  }\n\n  if (type === \"function\") {\n    return true\n  }\n\n  return false\n}\n",
    "import { isComposite } from \"./isComposite.js\"\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap\nconst compositeWellKnownMap = new WeakMap()\nconst primitiveWellKnownMap = new Map()\n\nexport const getCompositeGlobalPath = (value) => compositeWellKnownMap.get(value)\n\nexport const getPrimitiveGlobalPath = (value) => primitiveWellKnownMap.get(value)\n\nconst visitGlobalObject = (value) => {\n  const visitValue = (value, path) => {\n    if (isComposite(value)) {\n      // prevent infinite recursion\n      if (compositeWellKnownMap.has(value)) {\n        return\n      }\n      compositeWellKnownMap.set(value, path)\n\n      const visitProperty = (property) => {\n        let descriptor\n        try {\n          descriptor = Object.getOwnPropertyDescriptor(value, property)\n        } catch (e) {\n          if (e.name === \"SecurityError\") {\n            return\n          }\n          throw e\n        }\n\n        if (!descriptor) {\n          // it's apparently possible to have getOwnPropertyNames returning\n          // a property that later returns a null descriptor\n          // for instance window.showModalDialog in webkit 13.0\n          return\n        }\n\n        // do not trigger getter/setter\n        if (\"value\" in descriptor) {\n          const propertyValue = descriptor.value\n          visitValue(propertyValue, [...path, property])\n        }\n      }\n\n      Object.getOwnPropertyNames(value).forEach((name) => visitProperty(name))\n      Object.getOwnPropertySymbols(value).forEach((symbol) => visitProperty(symbol))\n    }\n\n    primitiveWellKnownMap.set(value, path)\n    return\n  }\n\n  visitValue(value, [])\n}\n\nif (typeof window === \"object\") visitGlobalObject(window)\n\nif (typeof global === \"object\") visitGlobalObject(global)\n",
    "/**\n * transforms a javascript value into an object describing it.\n *\n */\n\nimport { isComposite } from \"./isComposite.js\"\nimport { getCompositeGlobalPath, getPrimitiveGlobalPath } from \"./global-value-path.js\"\n\nexport const decompose = (mainValue, { functionAllowed, prototypeStrict, ignoreSymbols }) => {\n  const valueMap = {}\n  const recipeArray = []\n\n  const valueToIdentifier = (value, path = []) => {\n    if (!isComposite(value)) {\n      const existingIdentifier = identifierForPrimitive(value)\n      if (existingIdentifier !== undefined) {\n        return existingIdentifier\n      }\n      const identifier = identifierForNewValue(value)\n      recipeArray[identifier] = primitiveToRecipe(value)\n      return identifier\n    }\n\n    if (typeof Promise === \"function\" && value instanceof Promise) {\n      throw new Error(createPromiseAreNotSupportedMessage({ path }))\n    }\n    if (typeof WeakSet === \"function\" && value instanceof WeakSet) {\n      throw new Error(createWeakSetAreNotSupportedMessage({ path }))\n    }\n    if (typeof WeakMap === \"function\" && value instanceof WeakMap) {\n      throw new Error(createWeakMapAreNotSupportedMessage({ path }))\n    }\n    if (typeof value === \"function\" && !functionAllowed) {\n      throw new Error(createForbiddenFunctionMessage({ path }))\n    }\n\n    const existingIdentifier = identifierForComposite(value)\n    if (existingIdentifier !== undefined) {\n      return existingIdentifier\n    }\n    const identifier = identifierForNewValue(value)\n\n    const compositeGlobalPath = getCompositeGlobalPath(value)\n    if (compositeGlobalPath) {\n      recipeArray[identifier] = createGlobalReferenceRecipe(compositeGlobalPath)\n      return identifier\n    }\n\n    const propertyDescriptionArray = []\n    Object.getOwnPropertyNames(value).forEach((propertyName) => {\n      const propertyDescriptor = Object.getOwnPropertyDescriptor(value, propertyName)\n      const propertyNameIdentifier = valueToIdentifier(propertyName, [...path, propertyName])\n      const propertyDescription = computePropertyDescription(propertyDescriptor, propertyName, path)\n      propertyDescriptionArray.push({ propertyNameIdentifier, propertyDescription })\n    })\n\n    const symbolDescriptionArray = []\n    if (!ignoreSymbols) {\n      Object.getOwnPropertySymbols(value).forEach((symbol) => {\n        const propertyDescriptor = Object.getOwnPropertyDescriptor(value, symbol)\n        const symbolIdentifier = valueToIdentifier(symbol, [...path, `[${symbol.toString()}]`])\n        const propertyDescription = computePropertyDescription(propertyDescriptor, symbol, path)\n        symbolDescriptionArray.push({ symbolIdentifier, propertyDescription })\n      })\n    }\n\n    const methodDescriptionArray = computeMethodDescriptionArray(value, path)\n\n    const extensible = Object.isExtensible(value)\n\n    recipeArray[identifier] = createCompositeRecipe({\n      propertyDescriptionArray,\n      symbolDescriptionArray,\n      methodDescriptionArray,\n      extensible,\n    })\n    return identifier\n  }\n\n  const computePropertyDescription = (propertyDescriptor, propertyNameOrSymbol, path) => {\n    if (propertyDescriptor.set && !functionAllowed) {\n      throw new Error(createForbiddenPropertySetterMessage({ path, propertyNameOrSymbol }))\n    }\n    if (propertyDescriptor.get && !functionAllowed) {\n      throw new Error(createForbiddenPropertyGetterMessage({ path, propertyNameOrSymbol }))\n    }\n\n    return {\n      configurable: propertyDescriptor.configurable,\n      writable: propertyDescriptor.writable,\n      enumerable: propertyDescriptor.enumerable,\n      getIdentifier:\n        \"get\" in propertyDescriptor\n          ? valueToIdentifier(propertyDescriptor.get, [\n              ...path,\n              String(propertyNameOrSymbol),\n              \"[[descriptor:get]]\",\n            ])\n          : undefined,\n      setIdentifier:\n        \"set\" in propertyDescriptor\n          ? valueToIdentifier(propertyDescriptor.set, [\n              ...path,\n              String(propertyNameOrSymbol),\n              \"[[descriptor:set]]\",\n            ])\n          : undefined,\n      valueIdentifier:\n        \"value\" in propertyDescriptor\n          ? valueToIdentifier(propertyDescriptor.value, [\n              ...path,\n              String(propertyNameOrSymbol),\n              \"[[descriptor:value]]\",\n            ])\n          : undefined,\n    }\n  }\n\n  const computeMethodDescriptionArray = (value, path) => {\n    const methodDescriptionArray = []\n\n    if (typeof Set === \"function\" && value instanceof Set) {\n      const callArray = []\n      value.forEach((entryValue, index) => {\n        const entryValueIdentifier = valueToIdentifier(entryValue, [\n          ...path,\n          `[[SetEntryValue]]`,\n          index,\n        ])\n        callArray.push([entryValueIdentifier])\n      })\n      methodDescriptionArray.push({ methodNameIdentifier: valueToIdentifier(\"add\"), callArray })\n    }\n\n    if (typeof Map === \"function\" && value instanceof Map) {\n      const callArray = []\n      value.forEach((entryValue, entryKey) => {\n        const entryKeyIdentifier = valueToIdentifier(entryKey, [\n          ...path,\n          \"[[MapEntryKey]]\",\n          entryKey,\n        ])\n        const entryValueIdentifier = valueToIdentifier(entryValue, [\n          ...path,\n          \"[[MapEntryValue]]\",\n          entryValue,\n        ])\n        callArray.push([entryKeyIdentifier, entryValueIdentifier])\n      })\n      methodDescriptionArray.push({ methodNameIdentifier: valueToIdentifier(\"set\"), callArray })\n    }\n\n    return methodDescriptionArray\n  }\n\n  const identifierForPrimitive = (value) => {\n    return Object.keys(valueMap).find((existingIdentifier) => {\n      const existingValue = valueMap[existingIdentifier]\n      if (Object.is(value, existingValue)) return true\n      return value === existingValue\n    })\n  }\n\n  const identifierForComposite = (value) => {\n    return Object.keys(valueMap).find((existingIdentifier) => {\n      const existingValue = valueMap[existingIdentifier]\n      return value === existingValue\n    })\n  }\n\n  const identifierForNewValue = (value) => {\n    const identifier = nextIdentifier()\n    valueMap[identifier] = value\n    return identifier\n  }\n\n  let currentIdentifier = -1\n  const nextIdentifier = () => {\n    const identifier = String(parseInt(currentIdentifier) + 1)\n    currentIdentifier = identifier\n    return identifier\n  }\n\n  const mainIdentifier = valueToIdentifier(mainValue)\n\n  // prototype, important to keep after the whole structure was visited\n  // so that we discover if any prototype is part of the value\n  const prototypeValueToIdentifier = (prototypeValue) => {\n    // prototype is null\n    if (prototypeValue === null) {\n      return valueToIdentifier(prototypeValue)\n    }\n\n    // prototype found somewhere already\n    const prototypeExistingIdentifier = identifierForComposite(prototypeValue)\n    if (prototypeExistingIdentifier !== undefined) {\n      return prototypeExistingIdentifier\n    }\n\n    // mark prototype as visited\n    const prototypeIdentifier = identifierForNewValue(prototypeValue)\n\n    // prototype is a global reference ?\n    const prototypeGlobalPath = getCompositeGlobalPath(prototypeValue)\n    if (prototypeGlobalPath) {\n      recipeArray[prototypeIdentifier] = createGlobalReferenceRecipe(prototypeGlobalPath)\n      return prototypeIdentifier\n    }\n\n    // otherwise prototype is unknown\n    if (prototypeStrict) {\n      throw new Error(createUnknownPrototypeMessage({ prototypeValue }))\n    }\n\n    return prototypeValueToIdentifier(Object.getPrototypeOf(prototypeValue), true)\n  }\n  const identifierForValueOf = (value, path = []) => {\n    if (value instanceof Array) {\n      return valueToIdentifier(value.length, [...path, \"length\"])\n    }\n\n    if (\"valueOf\" in value === false) {\n      return undefined\n    }\n\n    if (typeof value.valueOf !== \"function\") {\n      return undefined\n    }\n\n    const valueOfReturnValue = value.valueOf()\n    if (!isComposite(valueOfReturnValue)) {\n      return valueToIdentifier(valueOfReturnValue, [...path, \"valueOf()\"])\n    }\n\n    if (valueOfReturnValue === value) {\n      return undefined\n    }\n\n    throw new Error(createUnexpectedValueOfReturnValueMessage())\n  }\n\n  recipeArray.slice().forEach((recipe, index) => {\n    if (recipe.type === \"composite\") {\n      const value = valueMap[index]\n\n      if (typeof value === \"function\") {\n        const valueOfIdentifier = nextIdentifier()\n        recipeArray[valueOfIdentifier] = {\n          type: \"primitive\",\n          value,\n        }\n        recipe.valueOfIdentifier = valueOfIdentifier\n        return\n      }\n\n      if (value instanceof RegExp) {\n        const valueOfIdentifier = nextIdentifier()\n        recipeArray[valueOfIdentifier] = {\n          type: \"primitive\",\n          value,\n        }\n        recipe.valueOfIdentifier = valueOfIdentifier\n        return\n      }\n\n      // valueOf, mandatory to uneval new Date(10) for instance.\n      recipe.valueOfIdentifier = identifierForValueOf(value)\n      const prototypeValue = Object.getPrototypeOf(value)\n      recipe.prototypeIdentifier = prototypeValueToIdentifier(prototypeValue, true)\n    }\n  })\n\n  return {\n    recipeArray,\n    mainIdentifier,\n    valueMap,\n  }\n}\n\nconst primitiveToRecipe = (value) => {\n  if (typeof value === \"symbol\") {\n    return symbolToRecipe(value)\n  }\n\n  return createPimitiveRecipe(value)\n}\n\nconst symbolToRecipe = (symbol) => {\n  const globalSymbolKey = Symbol.keyFor(symbol)\n  if (globalSymbolKey !== undefined) {\n    return createGlobalSymbolRecipe(globalSymbolKey)\n  }\n\n  const symbolGlobalPath = getPrimitiveGlobalPath(symbol)\n  if (!symbolGlobalPath) {\n    throw new Error(createUnknownSymbolMessage({ symbol }))\n  }\n\n  return createGlobalReferenceRecipe(symbolGlobalPath)\n}\n\nconst createPimitiveRecipe = (value) => {\n  return {\n    type: \"primitive\",\n    value,\n  }\n}\n\nconst createGlobalReferenceRecipe = (path) => {\n  const recipe = {\n    type: \"global-reference\",\n    path,\n  }\n  return recipe\n}\n\nconst createGlobalSymbolRecipe = (key) => {\n  return {\n    type: \"global-symbol\",\n    key,\n  }\n}\n\nconst createCompositeRecipe = ({\n  prototypeIdentifier,\n  valueOfIdentifier,\n  propertyDescriptionArray,\n  symbolDescriptionArray,\n  methodDescriptionArray,\n  extensible,\n}) => {\n  return {\n    type: \"composite\",\n    prototypeIdentifier,\n    valueOfIdentifier,\n    propertyDescriptionArray,\n    symbolDescriptionArray,\n    methodDescriptionArray,\n    extensible,\n  }\n}\n\nconst createPromiseAreNotSupportedMessage = ({ path }) => {\n  if (path.length === 0) {\n    return `promise are not supported.`\n  }\n\n  return `promise are not supported.\npromise found at: ${path.join(\"\")}`\n}\n\nconst createWeakSetAreNotSupportedMessage = ({ path }) => {\n  if (path.length === 0) {\n    return `weakSet are not supported.`\n  }\n\n  return `weakSet are not supported.\nweakSet found at: ${path.join(\"\")}`\n}\n\nconst createWeakMapAreNotSupportedMessage = ({ path }) => {\n  if (path.length === 0) {\n    return `weakMap are not supported.`\n  }\n\n  return `weakMap are not supported.\nweakMap found at: ${path.join(\"\")}`\n}\n\nconst createForbiddenFunctionMessage = ({ path }) => {\n  if (path.length === 0) {\n    return `function are not allowed.`\n  }\n\n  return `function are not allowed.\nfunction found at: ${path.join(\"\")}`\n}\n\nconst createForbiddenPropertyGetterMessage = ({\n  path,\n  propertyNameOrSymbol,\n}) => `property getter are not allowed.\ngetter found on property: ${String(propertyNameOrSymbol)}\nat: ${path.join(\"\")}`\n\nconst createForbiddenPropertySetterMessage = ({\n  path,\n  propertyNameOrSymbol,\n}) => `property setter are not allowed.\nsetter found on property: ${String(propertyNameOrSymbol)}\nat: ${path.join(\"\")}`\n\nconst createUnexpectedValueOfReturnValueMessage = () =>\n  `valueOf() must return a primitive of the object itself.`\n\nconst createUnknownSymbolMessage = ({\n  symbol,\n}) => `symbol must be global, like Symbol.iterator, or created using Symbol.for().\nsymbol: ${symbol.toString()}`\n\nconst createUnknownPrototypeMessage = ({ prototypeValue }) =>\n  `prototype must be global, like Object.prototype, or somewhere in the value.\nprototype constructor name: ${prototypeValue.constructor.name}`\n",
    "// be carefull because this function is mutating recipe objects inside the recipeArray.\n// this is not an issue because each recipe object is not accessible from the outside\n// when used internally by uneval\nexport const sortRecipe = (recipeArray) => {\n  const findInRecipePrototypeChain = (recipe, callback) => {\n    let currentRecipe = recipe\n    // eslint-disable-next-line no-constant-condition\n    while (true) {\n      if (currentRecipe.type !== \"composite\") {\n        break\n      }\n\n      const prototypeIdentifier = currentRecipe.prototypeIdentifier\n      if (prototypeIdentifier === undefined) {\n        break\n      }\n\n      currentRecipe = recipeArray[prototypeIdentifier]\n\n      if (callback(currentRecipe, prototypeIdentifier)) {\n        return prototypeIdentifier\n      }\n    }\n    return undefined\n  }\n\n  const recipeArrayOrdered = recipeArray.slice()\n  recipeArrayOrdered.sort((leftRecipe, rightRecipe) => {\n    const leftType = leftRecipe.type\n    const rightType = rightRecipe.type\n\n    if (leftType === \"composite\" && rightType === \"composite\") {\n      const rightRecipeIsInLeftRecipePrototypeChain = findInRecipePrototypeChain(\n        leftRecipe,\n        (recipeCandidate) => recipeCandidate === rightRecipe,\n      )\n      // if left recipe requires right recipe, left must be after right\n      if (rightRecipeIsInLeftRecipePrototypeChain) {\n        return 1\n      }\n\n      const leftRecipeIsInRightRecipePrototypeChain = findInRecipePrototypeChain(\n        rightRecipe,\n        (recipeCandidate) => recipeCandidate === leftRecipe,\n      )\n      // if right recipe requires left recipe, right must be after left\n      if (leftRecipeIsInRightRecipePrototypeChain) {\n        return -1\n      }\n    }\n\n    if (leftType !== rightType) {\n      // if left is a composite, left must be after right\n      if (leftType === \"composite\") {\n        return 1\n      }\n\n      // if right is a composite, right must be after left\n      if (rightType === \"composite\") {\n        return -1\n      }\n    }\n\n    const leftIndex = recipeArray.indexOf(leftRecipe)\n    const rightIndex = recipeArray.indexOf(rightRecipe)\n    // left was before right, don't change that\n    if (leftIndex < rightIndex) {\n      return -1\n    }\n\n    // right was after left, don't change that\n    return 1\n  })\n\n  return recipeArrayOrdered\n}\n",
    "// https://github.com/joliss/js-string-escape/blob/master/index.js\n// http://javascript.crockford.com/remedial.html\nexport const escapeString = (value) => {\n  const string = String(value)\n  let i = 0\n  const j = string.length\n  var escapedString = \"\"\n  while (i < j) {\n    const char = string[i]\n    let escapedChar\n    if (char === '\"' || char === \"'\" || char === \"\\\\\") {\n      escapedChar = `\\\\${char}`\n    } else if (char === \"\\n\") {\n      escapedChar = \"\\\\n\"\n    } else if (char === \"\\r\") {\n      escapedChar = \"\\\\r\"\n    } else if (char === \"\\u2028\") {\n      escapedChar = \"\\\\u2028\"\n    } else if (char === \"\\u2029\") {\n      escapedChar = \"\\\\u2029\"\n    } else {\n      escapedChar = char\n    }\n    escapedString += escapedChar\n    i++\n  }\n  return escapedString\n}\n",
    "import { decompose } from \"./internal/decompose.js\"\nimport { sortRecipe } from \"./internal/sortRecipe.js\"\nimport { escapeString } from \"./internal/escapeString.js\"\n\nexport const uneval = (\n  value,\n  { functionAllowed = false, prototypeStrict = false, ignoreSymbols = false } = {},\n) => {\n  const { recipeArray, mainIdentifier, valueMap } = decompose(value, {\n    functionAllowed,\n    prototypeStrict,\n    ignoreSymbols,\n  })\n  const recipeArraySorted = sortRecipe(recipeArray)\n\n  let source = `(function () {\nvar globalObject\ntry {\n  globalObject = Function('return this')() || (42, eval)('this');\n} catch(e) {\n  globalObject = window;\n}\n\nfunction safeDefineProperty(object, propertyNameOrSymbol, descriptor) {\n  var currentDescriptor = Object.getOwnPropertyDescriptor(object, propertyNameOrSymbol);\n  if (currentDescriptor && !currentDescriptor.configurable) return\n  Object.defineProperty(object, propertyNameOrSymbol, descriptor)\n};\n`\n\n  const variableNameMap = {}\n  recipeArray.forEach((recipe, index) => {\n    const indexSorted = recipeArraySorted.indexOf(recipe)\n    variableNameMap[index] = `_${indexSorted}`\n  })\n\n  const identifierToVariableName = (identifier) => variableNameMap[identifier]\n\n  const recipeToSetupSource = (recipe) => {\n    if (recipe.type === \"primitive\") return primitiveRecipeToSetupSource(recipe)\n    if (recipe.type === \"global-symbol\") return globalSymbolRecipeToSetupSource(recipe)\n    if (recipe.type === \"global-reference\") return globalReferenceRecipeToSetupSource(recipe)\n    return compositeRecipeToSetupSource(recipe)\n  }\n\n  const primitiveRecipeToSetupSource = ({ value }) => {\n    const type = typeof value\n\n    if (type === \"string\") {\n      return `\"${escapeString(value)}\";`\n    }\n\n    if (type === \"bigint\") {\n      return `${value.toString()}n`\n    }\n\n    if (Object.is(value, -0)) {\n      return \"-0;\"\n    }\n\n    return `${String(value)};`\n  }\n\n  const globalSymbolRecipeToSetupSource = (recipe) => {\n    return `Symbol.for(\"${escapeString(recipe.key)}\");`\n  }\n\n  const globalReferenceRecipeToSetupSource = (recipe) => {\n    const pathSource = recipe.path.map((part) => `[\"${escapeString(part)}\"]`).join(\"\")\n    return `globalObject${pathSource};`\n  }\n\n  const compositeRecipeToSetupSource = ({ prototypeIdentifier, valueOfIdentifier }) => {\n    if (prototypeIdentifier === undefined) {\n      return identifierToVariableName(valueOfIdentifier)\n    }\n\n    const prototypeValue = valueMap[prototypeIdentifier]\n    if (prototypeValue === null) {\n      return `Object.create(null);`\n    }\n\n    const prototypeConstructor = prototypeValue.constructor\n    if (prototypeConstructor === Object) {\n      return `Object.create(${identifierToVariableName(prototypeIdentifier)});`\n    }\n\n    if (valueOfIdentifier === undefined) {\n      return `new ${prototypeConstructor.name}();`\n    }\n\n    if (prototypeConstructor.name === \"BigInt\") {\n      return `Object(${identifierToVariableName(valueOfIdentifier)})`\n    }\n\n    return `new ${prototypeConstructor.name}(${identifierToVariableName(valueOfIdentifier)});`\n  }\n\n  recipeArraySorted.forEach((recipe) => {\n    const recipeVariableName = identifierToVariableName(recipeArray.indexOf(recipe))\n    source += `var ${recipeVariableName} = ${recipeToSetupSource(recipe, recipeVariableName)}\n`\n  })\n\n  const recipeToMutateSource = (recipe, recipeVariableName) => {\n    if (recipe.type === \"composite\") {\n      return compositeRecipeToMutateSource(recipe, recipeVariableName)\n    }\n    return ``\n  }\n\n  const compositeRecipeToMutateSource = (\n    { propertyDescriptionArray, symbolDescriptionArray, methodDescriptionArray, extensible },\n    recipeVariableName,\n  ) => {\n    let mutateSource = ``\n\n    propertyDescriptionArray.forEach(({ propertyNameIdentifier, propertyDescription }) => {\n      mutateSource += generateDefinePropertySource(\n        recipeVariableName,\n        propertyNameIdentifier,\n        propertyDescription,\n      )\n    })\n\n    symbolDescriptionArray.forEach(({ symbolIdentifier, propertyDescription }) => {\n      mutateSource += generateDefinePropertySource(\n        recipeVariableName,\n        symbolIdentifier,\n        propertyDescription,\n      )\n    })\n\n    methodDescriptionArray.forEach(({ methodNameIdentifier, callArray }) => {\n      mutateSource += generateMethodCallSource(recipeVariableName, methodNameIdentifier, callArray)\n    })\n\n    if (!extensible) {\n      mutateSource += generatePreventExtensionSource(recipeVariableName)\n    }\n\n    return mutateSource\n  }\n\n  const generateDefinePropertySource = (\n    recipeVariableName,\n    propertyNameOrSymbolIdentifier,\n    propertyDescription,\n  ) => {\n    const propertyOrSymbolVariableName = identifierToVariableName(propertyNameOrSymbolIdentifier)\n\n    const propertyDescriptorSource = generatePropertyDescriptorSource(propertyDescription)\n    return `safeDefineProperty(${recipeVariableName}, ${propertyOrSymbolVariableName}, ${propertyDescriptorSource});`\n  }\n\n  const generatePropertyDescriptorSource = ({\n    configurable,\n    writable,\n    enumerable,\n    getIdentifier,\n    setIdentifier,\n    valueIdentifier,\n  }) => {\n    if (valueIdentifier === undefined) {\n      return `{\n  configurable: ${configurable},\n  enumerable: ${enumerable},\n  get: ${getIdentifier === undefined ? undefined : identifierToVariableName(getIdentifier)},\n  set: ${setIdentifier === undefined ? undefined : identifierToVariableName(setIdentifier)},\n}`\n    }\n\n    return `{\n  configurable: ${configurable},\n  writable: ${writable},\n  enumerable: ${enumerable},\n  value: ${valueIdentifier === undefined ? undefined : identifierToVariableName(valueIdentifier)}\n}`\n  }\n\n  const generateMethodCallSource = (recipeVariableName, methodNameIdentifier, callArray) => {\n    let methodCallSource = ``\n\n    const methodVariableName = identifierToVariableName(methodNameIdentifier)\n    callArray.forEach((argumentIdentifiers) => {\n      const argumentVariableNames = argumentIdentifiers.map((argumentIdentifier) =>\n        identifierToVariableName(argumentIdentifier),\n      )\n\n      methodCallSource += `${recipeVariableName}[${methodVariableName}](${argumentVariableNames.join(\n        \",\",\n      )});`\n    })\n\n    return methodCallSource\n  }\n\n  const generatePreventExtensionSource = (recipeVariableName) => {\n    return `Object.preventExtensions(${recipeVariableName});`\n  }\n\n  recipeArraySorted.forEach((recipe) => {\n    const recipeVariableName = identifierToVariableName(recipeArray.indexOf(recipe))\n    source += `${recipeToMutateSource(recipe, recipeVariableName)}`\n  })\n\n  source += `return ${identifierToVariableName(mainIdentifier)}; })()`\n\n  return source\n}\n"
  ],
  "names": [
    "isComposite",
    "value",
    "type",
    "compositeWellKnownMap",
    "WeakMap",
    "primitiveWellKnownMap",
    "Map",
    "getCompositeGlobalPath",
    "get",
    "getPrimitiveGlobalPath",
    "visitGlobalObject",
    "visitValue",
    "path",
    "has",
    "set",
    "visitProperty",
    "property",
    "descriptor",
    "Object",
    "getOwnPropertyDescriptor",
    "e",
    "name",
    "propertyValue",
    "getOwnPropertyNames",
    "forEach",
    "getOwnPropertySymbols",
    "symbol",
    "window",
    "global",
    "decompose",
    "mainValue",
    "functionAllowed",
    "prototypeStrict",
    "ignoreSymbols",
    "valueMap",
    "recipeArray",
    "valueToIdentifier",
    "existingIdentifier",
    "identifierForPrimitive",
    "undefined",
    "identifier",
    "identifierForNewValue",
    "primitiveToRecipe",
    "Promise",
    "Error",
    "createPromiseAreNotSupportedMessage",
    "WeakSet",
    "createWeakSetAreNotSupportedMessage",
    "createWeakMapAreNotSupportedMessage",
    "createForbiddenFunctionMessage",
    "identifierForComposite",
    "compositeGlobalPath",
    "createGlobalReferenceRecipe",
    "propertyDescriptionArray",
    "propertyName",
    "propertyDescriptor",
    "propertyNameIdentifier",
    "propertyDescription",
    "computePropertyDescription",
    "push",
    "symbolDescriptionArray",
    "symbolIdentifier",
    "toString",
    "methodDescriptionArray",
    "computeMethodDescriptionArray",
    "extensible",
    "isExtensible",
    "createCompositeRecipe",
    "propertyNameOrSymbol",
    "createForbiddenPropertySetterMessage",
    "createForbiddenPropertyGetterMessage",
    "configurable",
    "writable",
    "enumerable",
    "getIdentifier",
    "String",
    "setIdentifier",
    "valueIdentifier",
    "Set",
    "callArray",
    "entryValue",
    "index",
    "entryValueIdentifier",
    "methodNameIdentifier",
    "entryKey",
    "entryKeyIdentifier",
    "keys",
    "find",
    "existingValue",
    "is",
    "nextIdentifier",
    "currentIdentifier",
    "parseInt",
    "mainIdentifier",
    "prototypeValueToIdentifier",
    "prototypeValue",
    "prototypeExistingIdentifier",
    "prototypeIdentifier",
    "prototypeGlobalPath",
    "createUnknownPrototypeMessage",
    "getPrototypeOf",
    "identifierForValueOf",
    "Array",
    "length",
    "valueOf",
    "valueOfReturnValue",
    "createUnexpectedValueOfReturnValueMessage",
    "slice",
    "recipe",
    "valueOfIdentifier",
    "RegExp",
    "symbolToRecipe",
    "createPimitiveRecipe",
    "globalSymbolKey",
    "Symbol",
    "keyFor",
    "createGlobalSymbolRecipe",
    "symbolGlobalPath",
    "createUnknownSymbolMessage",
    "key",
    "join",
    "constructor",
    "sortRecipe",
    "findInRecipePrototypeChain",
    "callback",
    "currentRecipe",
    "recipeArrayOrdered",
    "sort",
    "leftRecipe",
    "rightRecipe",
    "leftType",
    "rightType",
    "rightRecipeIsInLeftRecipePrototypeChain",
    "recipeCandidate",
    "leftRecipeIsInRightRecipePrototypeChain",
    "leftIndex",
    "indexOf",
    "rightIndex",
    "escapeString",
    "string",
    "i",
    "j",
    "escapedString",
    "char",
    "escapedChar",
    "uneval",
    "recipeArraySorted",
    "source",
    "variableNameMap",
    "indexSorted",
    "identifierToVariableName",
    "recipeToSetupSource",
    "primitiveRecipeToSetupSource",
    "globalSymbolRecipeToSetupSource",
    "globalReferenceRecipeToSetupSource",
    "compositeRecipeToSetupSource",
    "pathSource",
    "map",
    "part",
    "prototypeConstructor",
    "recipeVariableName",
    "recipeToMutateSource",
    "compositeRecipeToMutateSource",
    "mutateSource",
    "generateDefinePropertySource",
    "generateMethodCallSource",
    "generatePreventExtensionSource",
    "propertyNameOrSymbolIdentifier",
    "propertyOrSymbolVariableName",
    "propertyDescriptorSource",
    "generatePropertyDescriptorSource",
    "methodCallSource",
    "methodVariableName",
    "argumentIdentifiers",
    "argumentVariableNames",
    "argumentIdentifier"
  ],
  "mappings": "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"
}