Skip to content

Commit 8b56215

Browse files
authored
Fix more v8 errors (bellard#336)
- change error message for `Object.create` invalid property descriptor - disable v8 test cases for deprecated legacy RegExp static properties and invalid left hand side error type - update v8.txt - fix v8.sh behavior for single tests
1 parent f80a5b0 commit 8b56215

File tree

4 files changed

+19
-274
lines changed

4 files changed

+19
-274
lines changed

quickjs.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34950,7 +34950,7 @@ static int js_obj_to_desc(JSContext *ctx, JSPropertyDescriptor *d,
3495034950
}
3495134951
if ((flags & (JS_PROP_HAS_SET | JS_PROP_HAS_GET)) &&
3495234952
(flags & (JS_PROP_HAS_VALUE | JS_PROP_HAS_WRITABLE))) {
34953-
JS_ThrowTypeError(ctx, "cannot have setter/getter and value or writable");
34953+
JS_ThrowTypeError(ctx, "Invalid property descriptor. Cannot both specify accessors and a value or writable attribute");
3495434954
goto fail;
3495534955
}
3495634956
d->flags = flags;

v8.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,22 @@ const exclude = [
1515
"disallow-codegen-from-strings.js", // --disallow-code-generation-from-strings
1616
"cyclic-array-to-string.js", // unstable output due to stack overflow
1717
"error-tostring.js", // unstable output due to stack overflow
18+
"invalid-lhs.js", // v8 expects ReferenceError but ECMA says SyntaxError
1819
"regexp.js", // invalid, legitimate early SyntaxError
1920
"regexp-capture-3.js", // slow
21+
"regexp-cache-replace.js", // deprecated RegExp.$1 etc.
2022
"regexp-indexof.js", // deprecated RegExp.lastMatch etc.
2123
"regexp-static.js", // deprecated RegExp static properties.
24+
"regexp-modifiers-autogenerated-i18n.js", // invalid group
25+
"regexp-modifiers-autogenerated.js", // invalid group
26+
"regexp-modifiers-dotall.js", // invalid group
27+
"regexp-modifiers-i18n.js", // invalid group
28+
"regexp-modifiers.js", // invalid group
29+
"regexp-override-symbol-match-all.js", // missing g flag
30+
"serialize-embedded-error.js", // parseInt() = 0;
2231
"string-replace.js", // unstable output
32+
"string-match.js", // deprecated RegExp.$1 etc.
33+
"string-slices-regexp.js", // deprecated RegExp.$1 etc.
2334
"omit-default-ctors-array-iterator.js",
2435

2536
"mjsunit.js",

v8.sh

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
#!/bin/sh
22
set -e
33
: ${QJS:=build/qjs}
4-
"$QJS" v8.js $* 2>&1 | tee v8.txt$$
5-
diff -uw v8.txt v8.txt$$ || exit 1
6-
rm v8.txt$$
4+
if [ "x" = "x$1" ] ; then
5+
"$QJS" v8.js $* 2>&1 | tee v8.txt$$
6+
diff -uw v8.txt v8.txt$$ || exit 1
7+
rm v8.txt$$
8+
else
9+
"$QJS" v8.js $* 2>&1
10+
fi

0 commit comments

Comments
 (0)