summaryrefslogtreecommitdiff
path: root/Lib/javascript
diff options
context:
space:
mode:
authorWilliam S Fulton <wsf@fultondesigns.co.uk>2021-02-28 22:00:55 +0000
committerWilliam S Fulton <wsf@fultondesigns.co.uk>2021-02-28 22:00:55 +0000
commit30216c4fb8a92296283019412aa814f1c4b60d14 (patch)
treed8ce3bac173d9873978c4974084d064f56467c3a /Lib/javascript
parent00e64d7a49e0f3ad24574144095d2442313e8877 (diff)
parentf768fd2b9d7f2816e431f7cd73f7c54c17742f03 (diff)
downloadswig-30216c4fb8a92296283019412aa814f1c4b60d14.tar.gz
Merge branch 'js-fix-626'
* js-fix-626: Added check to prevent crash on illegal constructor call
Diffstat (limited to 'Lib/javascript')
-rw-r--r--Lib/javascript/v8/javascriptcode.swg6
1 files changed, 4 insertions, 2 deletions
diff --git a/Lib/javascript/v8/javascriptcode.swg b/Lib/javascript/v8/javascriptcode.swg
index fb41f33ba..0b0f1304e 100644
--- a/Lib/javascript/v8/javascriptcode.swg
+++ b/Lib/javascript/v8/javascriptcode.swg
@@ -10,9 +10,10 @@
%fragment("js_ctor", "templates") %{
static SwigV8ReturnValue $jswrapper(const SwigV8Arguments &args) {
SWIGV8_HANDLESCOPE();
-
+
SWIGV8_OBJECT self = args.Holder();
$jslocals
+ if(self->InternalFieldCount() < 1) SWIG_exception_fail(SWIG_ERROR, "Illegal call of constructor $jswrapper.");
if(args.Length() != $jsargcount) SWIG_exception_fail(SWIG_ERROR, "Illegal number of arguments for $jswrapper.");
$jscode
@@ -77,9 +78,10 @@ fail:
%fragment("js_overloaded_ctor", "templates") %{
static SwigV8ReturnValue $jswrapper(const SwigV8Arguments &args, V8ErrorHandler &SWIGV8_ErrorHandler) {
SWIGV8_HANDLESCOPE();
-
+
SWIGV8_OBJECT self = args.Holder();
$jslocals
+ if(self->InternalFieldCount() < 1) SWIG_exception_fail(SWIG_ERROR, "Illegal call of constructor $jswrapper.");
if(args.Length() != $jsargcount) SWIG_exception_fail(SWIG_ERROR, "Illegal number of arguments for $jswrapper.");
$jscode