Big news!Introducing Socket AI - ChatGPT-Powered Threat Analysis.Learn more
Socket
Socket

which-boxed-primitive

Package Overview
Dependencies
5
Maintainers
1
Versions
3
Issues
File Explorer

Advanced tools

which-boxed-primitive

Which kind of boxed JS primitive is this?

    1.0.2latest
    GitHub
    npm

Version published
Maintainers
1
Weekly downloads
23,674,089
increased by4.86%

Weekly downloads

Changelog

Source

v1.0.2 - 2020-12-14

Commits

Readme

Source

which-boxed-primitive Version Badge

dependency status dev dependency status License Downloads

npm badge

Which kind of boxed JS primitive is this? This module works cross-realm/iframe, does not depend on instanceof or mutable properties, and works despite ES6 Symbol.toStringTag.

Example

var whichBoxedPrimitive = require('which-boxed-primitive'); var assert = require('assert'); // unboxed primitives return `null` // boxed primitives return the builtin constructor name assert.equal(whichBoxedPrimitive(undefined), null); assert.equal(whichBoxedPrimitive(null), null); assert.equal(whichBoxedPrimitive(false), null); assert.equal(whichBoxedPrimitive(true), null); assert.equal(whichBoxedPrimitive(new Boolean(false)), 'Boolean'); assert.equal(whichBoxedPrimitive(new Boolean(true)), 'Boolean'); assert.equal(whichBoxedPrimitive(42), null); assert.equal(whichBoxedPrimitive(NaN), null); assert.equal(whichBoxedPrimitive(Infinity), null); assert.equal(whichBoxedPrimitive(new Number(42)), 'Number'); assert.equal(whichBoxedPrimitive(new Number(NaN)), 'Number'); assert.equal(whichBoxedPrimitive(new Number(Infinity)), 'Number'); assert.equal(whichBoxedPrimitive(''), null); assert.equal(whichBoxedPrimitive('foo'), null); assert.equal(whichBoxedPrimitive(new String('')), 'String'); assert.equal(whichBoxedPrimitive(new String('foo')), 'String'); assert.equal(whichBoxedPrimitive(Symbol()), null); assert.equal(whichBoxedPrimitive(Object(Symbol()), 'Symbol'); assert.equal(whichBoxedPrimitive(42n), null); assert.equal(whichBoxedPrimitive(Object(42n), 'BigInt'); // non-boxed-primitive objects return `undefined` assert.equal(whichBoxedPrimitive([]), undefined); assert.equal(whichBoxedPrimitive({}), undefined); assert.equal(whichBoxedPrimitive(/a/g), undefined); assert.equal(whichBoxedPrimitive(new RegExp('a', 'g')), undefined); assert.equal(whichBoxedPrimitive(new Date()), undefined); assert.equal(whichBoxedPrimitive(function () {}), undefined); assert.equal(whichBoxedPrimitive(function* () {}), undefined); assert.equal(whichBoxedPrimitive(x => x * x), undefined); assert.equal(whichBoxedPrimitive([]), undefined);

Tests

Simply clone the repo, npm install, and run npm test

Keywords

FAQs

Last updated on 14 Dec 2020

Did you know?

Socket installs a Github app to automatically flag issues on every pull request and report the health of your dependencies. Find out what is inside your node modules and prevent malicious activity before you update the dependencies.

Install Socket
Socket
Socket SOC 2 Logo

Product

  • Package Issues
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc