25
25
26
26
#include " async_wrap-inl.h"
27
27
#include " env-inl.h"
28
+ #include " node_errors.h"
28
29
#include " node_external_reference.h"
29
30
#include " threadpoolwork-inl.h"
30
31
#include " util-inl.h"
@@ -271,6 +272,8 @@ class CompressionStream : public AsyncWrap, public ThreadPoolWork {
271
272
CHECK_EQ (unreported_allocations_, 0 );
272
273
}
273
274
275
+ Environment* env () const { return this ->ThreadPoolWork ::env (); }
276
+
274
277
void Close () {
275
278
if (write_in_progress_) {
276
279
pending_close_ = true ;
@@ -694,7 +697,11 @@ class BrotliCompressionStream final :
694
697
static_cast <CompressionStream<CompressionContext>*>(wrap));
695
698
if (err.IsError ()) {
696
699
wrap->EmitError (err);
697
- args.GetReturnValue ().Set (false );
700
+ // TODO(addaleax): Sometimes we generate better error codes in C++ land,
701
+ // e.g. ERR_BROTLI_PARAM_SET_FAILED -- it's hard to access them with
702
+ // the current bindings setup, though.
703
+ THROW_ERR_ZLIB_INITIALIZATION_FAILED (wrap->env (),
704
+ " Initialization failed" );
698
705
return ;
699
706
}
700
707
@@ -708,12 +715,11 @@ class BrotliCompressionStream final :
708
715
err = wrap->context ()->SetParams (i, data[i]);
709
716
if (err.IsError ()) {
710
717
wrap->EmitError (err);
711
- args.GetReturnValue ().Set (false );
718
+ THROW_ERR_ZLIB_INITIALIZATION_FAILED (wrap->env (),
719
+ " Initialization failed" );
712
720
return ;
713
721
}
714
722
}
715
-
716
- args.GetReturnValue ().Set (true );
717
723
}
718
724
719
725
static void Params (const FunctionCallbackInfo<Value>& args) {
0 commit comments