Skip to content
This repository was archived by the owner on Mar 3, 2023. It is now read-only.
This repository was archived by the owner on Mar 3, 2023. It is now read-only.

Constructor serialization #27

@wizzard0

Description

@wizzard0

Serializing constructor like this:

  var generate = require('escodegen').generate
  var lave = require('lave')
  var fs = require('fs')

    function Greeter(message) {
        this.greeting = message;
    }
    Greeter.prototype.greet = function () {
        return "Hello, " + this.greeting;
    };
var greeter = new Greeter("world");
  var js = lave(greeter, {generate, format: 'module'})
console.log(js);

outputs

var a = {
        'constructor': function Greeter(message) {
        this.greeting = message;
    },
        'greet': function () {
        return "Hello, " + this.greeting;
    }
    }, b = Object.create(a);
function Greeter(message) {
        this.greeting = message;
    }.prototype = a;
b.greeting = 'world';
export default b;

instead of something like

var a = {
        'constructor': function Greeter(message) {
        this.greeting = message;
    },
        'greet': function () {
        return "Hello, " + this.greeting;
    }
    }, b = Object.create(a);
function Greeter(message) {
        this.greeting = message;
    };
Greeter.prototype = a;
b.greeting = 'world';
export default b;

which results in

    }.prototype = a;
     ^
SyntaxError: Unexpected token .
    at Object.exports.runInThisContext (vm.js:76:16)
    at Module._compile (module.js:542:28)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions