<div dir="ltr">You can permanently fix any such type-checks by `function isObject(x) { return x && (typeof x === 'object' || typeof x === 'function'); }`, or `function isObject(x) { return x && Object(x) === x; }`, etc.</div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jul 17, 2018 at 7:05 PM, Kai Zhu <span dir="ltr"><<a href="mailto:kaizhu256@yahoo.com" target="_blank">kaizhu256@yahoo.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><span style="font-family:sans-serif" id="m_357983050540574580yMail_cursorElementTracker_1531877347050">>You already can't use `new` with `Symbol`, and you don't ever want to use `new` with a primitive's constructor anyways.</span><div><span style="font-family:sans-serif" id="m_357983050540574580yMail_cursorElementTracker_1531877389773"><br></span></div></span><div><span style="font-family:sans-serif" id="m_357983050540574580yMail_cursorElementTracker_1531877391127">this would be *okay* if we limit the number of primitive-types in the language to a small-number (maybe add BigDecimal, but that's it), so its easy to remember.  i'm concerned that we have one too many needless primitives already (Symbol should've been an object, and it not requiring 'new' looks more like a wart to me).</span></div><div><span style="font-family:sans-serif" id="m_357983050540574580yMail_cursorElementTracker_1531878050661"><br></span></div><div id="m_357983050540574580yMail_cursorElementTracker_1531878355411"><font face="sans-serif" id="m_357983050540574580yMail_cursorElementTracker_1531878356864">adding more primitives at this point, will only make this pedantic-rule look more like a wart, and trip-up beginners (and their prejudice on the language's inconsistencies).  it also complicates integration-work on web-projects, due to difficulty baton-passing new primitives around via JSON, and having to continually refactor type-checks that rely on typeof.</font></div></blockquote></div><br></div>