Title: [242810] trunk
- Revision
- 242810
- Author
- [email protected]
- Date
- 2019-03-12 12:02:22 -0700 (Tue, 12 Mar 2019)
Log Message
The HasIndexedProperty node does GC.
https://bugs.webkit.org/show_bug.cgi?id=195559
<rdar://problem/48767923>
Reviewed by Yusuke Suzuki.
JSTests:
* stress/HasIndexedProperty-does-gc.js: Added.
Source/_javascript_Core:
HasIndexedProperty can call the slow path operationHasIndexedPropertyByInt(),
which can eventually call JSString::getIndex(), which can resolve a rope.
* dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
Modified Paths
Added Paths
Diff
Modified: trunk/JSTests/ChangeLog (242809 => 242810)
--- trunk/JSTests/ChangeLog 2019-03-12 18:59:29 UTC (rev 242809)
+++ trunk/JSTests/ChangeLog 2019-03-12 19:02:22 UTC (rev 242810)
@@ -1,3 +1,13 @@
+2019-03-12 Mark Lam <[email protected]>
+
+ The HasIndexedProperty node does GC.
+ https://bugs.webkit.org/show_bug.cgi?id=195559
+ <rdar://problem/48767923>
+
+ Reviewed by Yusuke Suzuki.
+
+ * stress/HasIndexedProperty-does-gc.js: Added.
+
2019-03-11 Caio Lima <[email protected]>
[ESNext][BigInt] Implement "~" unary operation
Added: trunk/JSTests/stress/HasIndexedProperty-does-gc.js (0 => 242810)
--- trunk/JSTests/stress/HasIndexedProperty-does-gc.js (rev 0)
+++ trunk/JSTests/stress/HasIndexedProperty-does-gc.js 2019-03-12 19:02:22 UTC (rev 242810)
@@ -0,0 +1,9 @@
+// This test should not crash.
+function foo(a) {
+ return 0 in a;
+}
+for (let i = 0; i < 100000; i++) {
+ const str = new String('asdf');
+ str[42] = 'x'; // Give it ArrayStorage
+ foo(str);
+}
Modified: trunk/Source/_javascript_Core/ChangeLog (242809 => 242810)
--- trunk/Source/_javascript_Core/ChangeLog 2019-03-12 18:59:29 UTC (rev 242809)
+++ trunk/Source/_javascript_Core/ChangeLog 2019-03-12 19:02:22 UTC (rev 242810)
@@ -1,3 +1,17 @@
+2019-03-12 Mark Lam <[email protected]>
+
+ The HasIndexedProperty node does GC.
+ https://bugs.webkit.org/show_bug.cgi?id=195559
+ <rdar://problem/48767923>
+
+ Reviewed by Yusuke Suzuki.
+
+ HasIndexedProperty can call the slow path operationHasIndexedPropertyByInt(),
+ which can eventually call JSString::getIndex(), which can resolve a rope.
+
+ * dfg/DFGDoesGC.cpp:
+ (JSC::DFG::doesGC):
+
2019-03-12 Devin Rousso <[email protected]>
Web Inspector: Audit: there should be a centralized place for reusable code
Modified: trunk/Source/_javascript_Core/dfg/DFGDoesGC.cpp (242809 => 242810)
--- trunk/Source/_javascript_Core/dfg/DFGDoesGC.cpp 2019-03-12 18:59:29 UTC (rev 242809)
+++ trunk/Source/_javascript_Core/dfg/DFGDoesGC.cpp 2019-03-12 19:02:22 UTC (rev 242810)
@@ -195,7 +195,6 @@
case GetByOffset:
case GetGetterSetterByOffset:
case GetEnumerableLength:
- case HasIndexedProperty:
case FiatInt52:
case BooleanToNumber:
case CheckBadCell:
@@ -282,6 +281,7 @@
case GetDynamicVar:
case GetMapBucket:
case HasGenericProperty:
+ case HasIndexedProperty:
case HasOwnProperty:
case HasStructureProperty:
case InById:
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes