0.3.1 • Published 9 years ago

tosource-polyfill v0.3.1

Weekly downloads
30
License
-
Repository
github
Last release
9 years ago

tosource-polyfill

toSource polyfill that converts JavaScript objects back to source code

It got inspiration on node-tosource

Introduction

This module set on objects prototype the Mozilla toSource() function that allow to get a source code representation of an object. It also has a helper function that allow to serialize some extra objects like null or undefined.

Installation

npm install tosource-polyfill

Examples

The following code:

var toSource = require('tosource-polyfill')
console.log(toSource(
    [ 4, 5, 6, "hello", {
        a:2,
        'b':3,
        '1':4,
        'if':5,
        yes:true,
        no:false,
        nan:NaN,
        infinity:Infinity,
        'undefined':undefined,
        'null':null,
        foo: function(bar) {
            console.log("woo! a is "+a)
            console.log("and bar is "+bar)
        }
    },
    /we$/gi,
    new Date("Wed, 09 Aug 1995 00:00:00 GMT")]
))

Output:

[ 4,
  5,
  6,
  "hello",
  { "1":4,
    a:2,
    b:3,
    "if":5,
    yes:true,
    no:false,
    nan:NaN,
    infinity:Infinity,
    "undefined":undefined,
    "null":null,
    foo:function (bar) {
            console.log("woo! a is "+a)
            console.log("and bar is "+bar)
        } },
  /we$/gi,
  new Date(807926400000) ]

See test.js for more examples.

Supported Types

  • Numbers
  • Strings
  • Array literals
  • object literals
  • function
  • RegExp literals
  • Dates
  • true
  • false
  • undefined
  • null
  • NaN
  • Infinity

Notes

  • Functions are serialized with func.toString(), no closure properties are serialized
  • Multiple references to the same object become copies
  • Circular references are encoded as {$circularReference:1}

License

toSource is open source software under the zlib license.