facebookarchive/prepack

CompilerDiagnostics in visitor or serialize cause crash

Open

#2072 opened on Jun 1, 2018

View on GitHub
 (0 comments) (0 reactions) (0 assignees)JavaScript (14,268 stars) (520 forks)batch import
bughelp wantedpriority: lowserializer

Description

Prepacking this...

let c = __abstract("boolean", "(c)");
let obj = {};
if (c) Object.freeze(obj);
global.obj = obj;

Causes Prepack to crash:

~/git/prepack$ node lib/prepack-cli.js /tmp/test2.js
Errors found while prepacking
In input file /tmp/test2.js(2:11) RecoverableError PP9000: Object that might or might not be sealed or frozen are not supported in residual heap. (https://github.com/facebook/prepack/wiki/PP9000)
Invariant Violation: undefined
This is likely a bug in Prepack, not your code. Feel free to open an issue on GitHub.
    at invariant (/Users/nikolait/git/prepack/lib/invariant.js:22:15)
    at statistics.total.measure (/Users/nikolait/git/prepack/lib/serializer/serializer.js:205:31)
    at PerformanceTracker.measure (/Users/nikolait/git/prepack/lib/statistics.js:90:14)
    at Serializer.init (/Users/nikolait/git/prepack/lib/serializer/serializer.js:115:35)
    at prepackSources (/Users/nikolait/git/prepack/lib/prepack-standalone.js:85:33)
    at prepackFileSync (/Users/nikolait/git/prepack/lib/prepack-node.js:163:49)
    at run (/Users/nikolait/git/prepack/lib/prepack-cli.js:384:24)
    at Object.<anonymous> (/Users/nikolait/git/prepack/lib/prepack-cli.js:471:3)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)

Note that it's okay to not support conditionally frozen objects; that's not the problem here. The problem is that it causes Prepack to crash with an invariant violation.

Contributor guide