Skip to content

Commit 7631fa5

Browse files
committed
Do not allow complex types in error messages
1 parent 16f20c1 commit 7631fa5

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

py_mini_racer/extension/mini_racer_extension.cc

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -684,14 +684,18 @@ static BinaryValue* MiniRacer_eval_context_unsafe(
684684
Local<Value> tmp = Local<Value>::New(context_info->isolate,
685685
*eval_result.message);
686686

687-
bmessage = convert_v8_to_binary(context_info->isolate, *context_info->context, tmp);
687+
if (eval_params.basic_only) {
688+
bmessage = convert_basic_v8_to_binary(context_info->isolate, *context_info->context, tmp);
689+
} else {
690+
bmessage = convert_v8_to_binary(context_info->isolate, *context_info->context, tmp);
691+
}
688692
}
689693

690694
if (eval_result.backtrace) {
691695

692696
Local<Value> tmp = Local<Value>::New(context_info->isolate,
693697
*eval_result.backtrace);
694-
bbacktrace = convert_v8_to_binary(context_info->isolate, *context_info->context, tmp);
698+
bbacktrace = convert_basic_v8_to_binary(context_info->isolate, *context_info->context, tmp);
695699
}
696700
}
697701

tests/test_strict.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,7 @@ def test_call(self):
3232

3333
self.assertIsNone(self.mr.eval(js_func))
3434
self.assertEqual(self.mr.call('f', list(range(5))), 5)
35+
36+
def test_message(self):
37+
with self.assertRaises(py_mini_racer.JSEvalException):
38+
res = self.mr.eval("throw new EvalError('Hello', 'someFile.js', 10);")

0 commit comments

Comments
 (0)