Title: [259636] trunk
- Revision
- 259636
- Author
- ysuz...@apple.com
- Date
- 2020-04-07 08:48:08 -0700 (Tue, 07 Apr 2020)
Log Message
[JSC] $.evalScript should check exception when accessing "global"
https://bugs.webkit.org/show_bug.cgi?id=210114
<rdar://problem/61388482>
Reviewed by Keith Miller.
JSTests:
* stress/eval-script-global-access-exception-check.js: Added.
(shouldThrow):
Source/_javascript_Core:
$.evalScript should check exception after "global" property access since it can throw an error if it is an accessor.
* jsc.cpp:
(functionDollarEvalScript):
Modified Paths
Added Paths
Diff
Modified: trunk/JSTests/ChangeLog (259635 => 259636)
--- trunk/JSTests/ChangeLog 2020-04-07 15:23:33 UTC (rev 259635)
+++ trunk/JSTests/ChangeLog 2020-04-07 15:48:08 UTC (rev 259636)
@@ -1,3 +1,14 @@
+2020-04-07 Yusuke Suzuki <ysuz...@apple.com>
+
+ [JSC] $.evalScript should check exception when accessing "global"
+ https://bugs.webkit.org/show_bug.cgi?id=210114
+ <rdar://problem/61388482>
+
+ Reviewed by Keith Miller.
+
+ * stress/eval-script-global-access-exception-check.js: Added.
+ (shouldThrow):
+
2020-04-06 Rick Waldron <waldron.r...@gmail.com> and Alexey Shvayka <shvaikal...@gmail.com>
Remove unnecessary Test262 harness file and implement $262.IsHTMLDDA
Added: trunk/JSTests/stress/eval-script-global-access-exception-check.js (0 => 259636)
--- trunk/JSTests/stress/eval-script-global-access-exception-check.js (rev 0)
+++ trunk/JSTests/stress/eval-script-global-access-exception-check.js 2020-04-07 15:48:08 UTC (rev 259636)
@@ -0,0 +1,20 @@
+function shouldThrow(func, errorMessage) {
+ var errorThrown = false;
+ var error = null;
+ try {
+ func();
+ } catch (e) {
+ errorThrown = true;
+ error = e;
+ }
+ if (!errorThrown)
+ throw new Error('not thrown');
+ if (String(error) !== errorMessage)
+ throw new Error(`bad error: ${String(error)}`);
+}
+
+const o = {};
+o.__proto__ = RegExp();
+shouldThrow(() => {
+ $.evalScript.call(o);
+}, `TypeError: The RegExp.prototype.global getter can only be called on a RegExp object`);
Modified: trunk/Source/_javascript_Core/ChangeLog (259635 => 259636)
--- trunk/Source/_javascript_Core/ChangeLog 2020-04-07 15:23:33 UTC (rev 259635)
+++ trunk/Source/_javascript_Core/ChangeLog 2020-04-07 15:48:08 UTC (rev 259636)
@@ -1,3 +1,16 @@
+2020-04-07 Yusuke Suzuki <ysuz...@apple.com>
+
+ [JSC] $.evalScript should check exception when accessing "global"
+ https://bugs.webkit.org/show_bug.cgi?id=210114
+ <rdar://problem/61388482>
+
+ Reviewed by Keith Miller.
+
+ $.evalScript should check exception after "global" property access since it can throw an error if it is an accessor.
+
+ * jsc.cpp:
+ (functionDollarEvalScript):
+
2020-04-06 Devin Rousso <drou...@apple.com>
Web Inspector: `console.log(...)` appear as `CONSOLE LOG LOG` in the system console
Modified: trunk/Source/_javascript_Core/jsc.cpp (259635 => 259636)
--- trunk/Source/_javascript_Core/jsc.cpp 2020-04-07 15:23:33 UTC (rev 259635)
+++ trunk/Source/_javascript_Core/jsc.cpp 2020-04-07 15:48:08 UTC (rev 259636)
@@ -1859,9 +1859,10 @@
String sourceCode = callFrame->argument(0).toWTFString(globalObject);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
- GlobalObject* realm = jsDynamicCast<GlobalObject*>(vm,
- callFrame->thisValue().get(globalObject, Identifier::fromString(vm, "global")));
+ JSValue global = callFrame->thisValue().get(globalObject, Identifier::fromString(vm, "global"));
RETURN_IF_EXCEPTION(scope, encodedJSValue());
+ GlobalObject* realm = jsDynamicCast<GlobalObject*>(vm, global);
+ RETURN_IF_EXCEPTION(scope, encodedJSValue());
if (!realm)
return JSValue::encode(throwException(globalObject, scope, createError(globalObject, "Expected global to point to a global object"_s)));
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes