diff --git a/lib/v8.js b/lib/v8.js index 9c1cdccb80839e..7cdf4598c4fdcd 100644 --- a/lib/v8.js +++ b/lib/v8.js @@ -15,14 +15,20 @@ 'use strict'; const { Buffer } = require('buffer'); -const serdesBindings = process.binding('serdes'); +const { + Serializer: _Serializer, + Deserializer: _Deserializer + } = process.binding('serdes'); const { copy } = process.binding('buffer'); const { objectToString } = require('internal/util'); const { FastBuffer } = require('internal/buffer'); -class Serializer extends serdesBindings.Serializer {} +// Calling exposed c++ functions directly throws exception as it expected to be +// called with new operator and caused an assert to fire. +// Creating JS wrapper so that it gets caught at JS layer. +class Serializer extends _Serializer { } -class Deserializer extends serdesBindings.Deserializer {} +class Deserializer extends _Deserializer { } const { cachedDataVersionTag,