diff options
author | Rajaram Gaunker <zimbabao@gmail.com> | 2017-06-08 01:17:02 -0700 |
---|---|---|
committer | Anna Henningsen <anna@addaleax.net> | 2017-06-12 14:08:49 +0200 |
commit | 12fd63d6bb38d4fbd41dc4dd8d1b106ee64d1f7c (patch) | |
tree | d81f459b6bfe61059855336305e24c8b1a553f8f /lib/v8.js | |
parent | e2617a03888aed62965ebc208f13e1bb3e183aeb (diff) | |
download | android-node-v8-12fd63d6bb38d4fbd41dc4dd8d1b106ee64d1f7c.tar.gz android-node-v8-12fd63d6bb38d4fbd41dc4dd8d1b106ee64d1f7c.tar.bz2 android-node-v8-12fd63d6bb38d4fbd41dc4dd8d1b106ee64d1f7c.zip |
v8: add a js class for Serializer/Dserializer
Calling Serializer/Deserializer without new crashes node.
Adding a js class which just inherits cpp bindings.
Added regression tests.
Fixes: https://github.com/nodejs/node/issues/13326
PR-URL: https://github.com/nodejs/node/pull/13541
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Diffstat (limited to 'lib/v8.js')
-rw-r--r-- | lib/v8.js | 12 |
1 files changed, 11 insertions, 1 deletions
@@ -15,11 +15,21 @@ 'use strict'; const { Buffer } = require('buffer'); -const { Serializer, Deserializer } = 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'); +// 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 _Deserializer { } + const { cachedDataVersionTag, setFlagsFromString, |