Title: [203416] trunk/Source/_javascript_Core
Revision
203416
Author
[email protected]
Date
2016-07-19 13:15:51 -0700 (Tue, 19 Jul 2016)

Log Message

REGRESSION (r203348-r203368): ASSERTION FAILED: from.isCell() && from.asCell()->JSCell::inherits(std::remove_pointer<To>::type::info())
https://bugs.webkit.org/show_bug.cgi?id=159930

Reviewed by Geoffrey Garen.
        
The problem is that the 32-bit DFG can flush the scope register as an unboxed cell, but the
Register::scope() method was causing us to assert that it's a JSValue with proper cell
boxing. We could have forced the DFG to flush it as a boxed JSValue, but I don't think that
would have made anything better. This fixes the issue by teaching Register::scope() that it
might see unboxed cells.

* runtime/JSScope.h:
(JSC::Register::scope):
(JSC::ExecState::lexicalGlobalObject):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (203415 => 203416)


--- trunk/Source/_javascript_Core/ChangeLog	2016-07-19 20:10:02 UTC (rev 203415)
+++ trunk/Source/_javascript_Core/ChangeLog	2016-07-19 20:15:51 UTC (rev 203416)
@@ -1,5 +1,22 @@
 2016-07-19  Filip Pizlo  <[email protected]>
 
+        REGRESSION (r203348-r203368): ASSERTION FAILED: from.isCell() && from.asCell()->JSCell::inherits(std::remove_pointer<To>::type::info())
+        https://bugs.webkit.org/show_bug.cgi?id=159930
+
+        Reviewed by Geoffrey Garen.
+        
+        The problem is that the 32-bit DFG can flush the scope register as an unboxed cell, but the
+        Register::scope() method was causing us to assert that it's a JSValue with proper cell
+        boxing. We could have forced the DFG to flush it as a boxed JSValue, but I don't think that
+        would have made anything better. This fixes the issue by teaching Register::scope() that it
+        might see unboxed cells.
+
+        * runtime/JSScope.h:
+        (JSC::Register::scope):
+        (JSC::ExecState::lexicalGlobalObject):
+
+2016-07-19  Filip Pizlo  <[email protected]>
+
         B3 methods that mutate the successors array should take FrequentedBlock by value
         https://bugs.webkit.org/show_bug.cgi?id=159935
 

Modified: trunk/Source/_javascript_Core/runtime/JSScope.h (203415 => 203416)


--- trunk/Source/_javascript_Core/runtime/JSScope.h	2016-07-19 20:10:02 UTC (rev 203415)
+++ trunk/Source/_javascript_Core/runtime/JSScope.h	2016-07-19 20:15:51 UTC (rev 203416)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2015  Apple Inc. All Rights Reserved.
+ * Copyright (C) 2012-2016 Apple Inc. All Rights Reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -142,7 +142,7 @@
 
 inline JSScope* Register::scope() const
 {
-    return jsCast<JSScope*>(jsValue());
+    return jsCast<JSScope*>(unboxedCell());
 }
 
 inline JSGlobalObject* ExecState::lexicalGlobalObject() const
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to