simple-squiggle

A restricted subset of Squiggle
Log | Files | Refs | README

toPrimitive.js (455B)


      1 import _typeof from "./typeof.js";
      2 export default function _toPrimitive(input, hint) {
      3   if (_typeof(input) !== "object" || input === null) return input;
      4   var prim = input[Symbol.toPrimitive];
      5 
      6   if (prim !== undefined) {
      7     var res = prim.call(input, hint || "default");
      8     if (_typeof(res) !== "object") return res;
      9     throw new TypeError("@@toPrimitive must return a primitive value.");
     10   }
     11 
     12   return (hint === "string" ? String : Number)(input);
     13 }