{"record":{"id":"fecbdad5ae7b51e6","repo":"OrchardCMS/OrchardCore","slug":"toprimitive-must-return-a-primitive-value-fontawesome","errorCode":null,"errorMessage":"@@toPrimitive must return a primitive value.","messagePattern":"@@toPrimitive must return a primitive value\\.","errorType":"exception","errorClass":"TypeError","httpStatus":null,"severity":"error","filePath":"src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Vendor/fontawesome-free-6.7.2/js/fontawesome.js","lineNumber":61,"sourceCode":"        _defineProperty(e, r, t[r]);\n      }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n        Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n      });\n    }\n    return e;\n  }\n  function _setPrototypeOf(t, e) {\n    return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n      return t.__proto__ = e, t;\n    }, _setPrototypeOf(t, e);\n  }\n  function _toPrimitive(t, r) {\n    if (\"object\" != typeof t || !t) return t;\n    var e = t[Symbol.toPrimitive];\n    if (void 0 !== e) {\n      var i = e.call(t, r || \"default\");\n      if (\"object\" != typeof i) return i;\n      throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n    }\n    return (\"string\" === r ? String : Number)(t);\n  }\n  function _toPropertyKey(t) {\n    var i = _toPrimitive(t, \"string\");\n    return \"symbol\" == typeof i ? i : i + \"\";\n  }\n  function _wrapRegExp() {\n    _wrapRegExp = function (e, r) {\n      return new BabelRegExp(e, void 0, r);\n    };\n    var e = RegExp.prototype,\n      r = new WeakMap();\n    function BabelRegExp(e, t, p) {\n      var o = RegExp(e, t);\n      return r.set(o, p || r.get(e)), _setPrototypeOf(o, BabelRegExp.prototype);\n    }\n    function buildGroups(e, t) {","sourceCodeStart":43,"sourceCodeEnd":79,"githubUrl":"https://github.com/OrchardCMS/OrchardCore/blob/4306c0717fe573f6fca1b4955909ddab6a192807/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Vendor/fontawesome-free-6.7.2/js/fontawesome.js#L43-L79","documentation":"Same Babel _toPrimitive helper as the conflict-detection bundle: Font Awesome's fontawesome.js throws this TypeError when a Symbol.toPrimitive implementation returns an object rather than a primitive during property-key conversion.","triggerScenarios":"Object with a Symbol.toPrimitive returning an object passed through _toPropertyKey (e.g. used as a computed class property key) inside the transpiled Font Awesome bundle.","commonSituations":"Buggy polyfill overriding Symbol.toPrimitive; custom objects with invalid toPrimitive used near Font Awesome internals; mismatched transpiled helper versions in the bundle.","solutions":["Fix the Symbol.toPrimitive implementation to return a primitive","Remove conflicting polyfills","Rebuild/refresh the Font Awesome vendor bundle to a consistent version"],"exampleFix":"// before\nfoo[Symbol.toPrimitive] = () => ({ });\n// after\nfoo[Symbol.toPrimitive] = () => 'foo-key';","handlingStrategy":"type-guard","validationCode":"function keyIsPrimitive(o) { const p = o?.[Symbol.toPrimitive]?.('string'); return p === undefined || ['string','number','symbol'].includes(typeof p); }","typeGuard":"function isPrimitive(v) { return v === null || ['string','number','symbol','boolean','bigint'].includes(typeof v); }","tryCatchPattern":"try { render(); } catch (e) { if (e instanceof TypeError && e.message.includes('toPrimitive')) console.error('Bad Symbol.toPrimitive return value'); }","preventionTips":["Return strings/numbers/symbols from Symbol.toPrimitive","Do not monkey-patch Object/Symbol prototypes","Bundle consistent Babel helper versions"],"tags":["javascript","fontawesome","babel","typeerror"],"backgroundTag":"type-mismatch","analyzedSha":"4306c0717fe573f6fca1b4955909ddab6a192807","analyzedAt":"2026-09-13T17:41:05.024Z","contentChangedAt":"2026-09-13T17:41:05.024Z","schemaVersion":2},"datasetVersion":"2026-09-16T04:17:20.429Z"}