Title: [200200] trunk/Source/_javascript_Core
- Revision
- 200200
- Author
- [email protected]
- Date
- 2016-04-28 11:18:58 -0700 (Thu, 28 Apr 2016)
Log Message
DebuggerScope::className() should not assert scope->isValid().
https://bugs.webkit.org/show_bug.cgi?id=157143
Reviewed by Keith Miller.
DebuggerScope::className() should not assert scope->isValid() because the
TypeProfiler logs objects it encounters, and may indirectly call
JSObject::calculatedClassName() on those objects later, thereby calling
DebuggerScope::className() on an invalidated DebuggerScope.
The existing handling in DebuggerScope::className() for an invalidated scope
(that returns a null string) is sufficient.
* debugger/DebuggerScope.cpp:
(JSC::DebuggerScope::className):
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (200199 => 200200)
--- trunk/Source/_javascript_Core/ChangeLog 2016-04-28 17:58:12 UTC (rev 200199)
+++ trunk/Source/_javascript_Core/ChangeLog 2016-04-28 18:18:58 UTC (rev 200200)
@@ -1,3 +1,21 @@
+2016-04-28 Mark Lam <[email protected]>
+
+ DebuggerScope::className() should not assert scope->isValid().
+ https://bugs.webkit.org/show_bug.cgi?id=157143
+
+ Reviewed by Keith Miller.
+
+ DebuggerScope::className() should not assert scope->isValid() because the
+ TypeProfiler logs objects it encounters, and may indirectly call
+ JSObject::calculatedClassName() on those objects later, thereby calling
+ DebuggerScope::className() on an invalidated DebuggerScope.
+
+ The existing handling in DebuggerScope::className() for an invalidated scope
+ (that returns a null string) is sufficient.
+
+ * debugger/DebuggerScope.cpp:
+ (JSC::DebuggerScope::className):
+
2016-04-28 Caitlin Potter <[email protected]>
[JSC] implement spec changes for String#padStart and String#padEnd
Modified: trunk/Source/_javascript_Core/debugger/DebuggerScope.cpp (200199 => 200200)
--- trunk/Source/_javascript_Core/debugger/DebuggerScope.cpp 2016-04-28 17:58:12 UTC (rev 200199)
+++ trunk/Source/_javascript_Core/debugger/DebuggerScope.cpp 2016-04-28 18:18:58 UTC (rev 200200)
@@ -60,7 +60,8 @@
String DebuggerScope::className(const JSObject* object)
{
const DebuggerScope* scope = jsCast<const DebuggerScope*>(object);
- ASSERT(scope->isValid());
+ // We cannot assert that scope->isValid() because the TypeProfiler may encounter an invalidated
+ // DebuggerScope in its log entries. We just need to handle it appropriately as below.
if (!scope->isValid())
return String();
JSObject* thisObject = JSScope::objectAtScope(scope->jsScope());
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes