Title: [241613] trunk
- Revision
- 241613
- Author
- [email protected]
- Date
- 2019-02-15 13:34:19 -0800 (Fri, 15 Feb 2019)
Log Message
[JSC] CodeBlock::jettison should clear related watchpoints
https://bugs.webkit.org/show_bug.cgi?id=194544
Reviewed by Mark Lam.
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::jettison):
* dfg/DFGCommonData.h:
(JSC::DFG::CommonData::clearWatchpoints): Added.
* dfg/CommonData.cpp:
(JSC::DFG::CommonData::clearWatchpoints): Added.
Modified Paths
Added Paths
Diff
Modified: trunk/JSTests/ChangeLog (241612 => 241613)
--- trunk/JSTests/ChangeLog 2019-02-15 21:27:54 UTC (rev 241612)
+++ trunk/JSTests/ChangeLog 2019-02-15 21:34:19 UTC (rev 241613)
@@ -1,3 +1,12 @@
+2019-02-15 Robin Morisset <[email protected]>
+ CodeBlock::jettison should clear related watchpoints
+ https://bugs.webkit.org/show_bug.cgi?id=194544
+
+ Reviewed by Mark Lam.
+
+ * stress/regexp-replace-double-watchpoint.js: Added.
+ (foo):
+
2019-02-15 Saam barati <[email protected]>
[WebAssembly] Write a new register allocator for Air O0 and make BBQ use it
Added: trunk/JSTests/stress/regexp-replace-double-watchpoint.js (0 => 241613)
--- trunk/JSTests/stress/regexp-replace-double-watchpoint.js (rev 0)
+++ trunk/JSTests/stress/regexp-replace-double-watchpoint.js 2019-02-15 21:34:19 UTC (rev 241613)
@@ -0,0 +1,19 @@
+function foo() {
+ for (const x in []) {
+ new Float64Array(65493);
+ }
+
+ const nullRegexp = RegExp();
+
+ for (let i = 0; i < 10000; i++) {
+ function bar() {
+ nullRegexp.test("asdf");
+ }
+ bar();
+ }
+
+ for (let j = 13.37; j < 10000; j++) {
+ [].__proto__[j] = 0;
+ }
+}
+"ii".replace(/i/g, foo);
Modified: trunk/Source/_javascript_Core/ChangeLog (241612 => 241613)
--- trunk/Source/_javascript_Core/ChangeLog 2019-02-15 21:27:54 UTC (rev 241612)
+++ trunk/Source/_javascript_Core/ChangeLog 2019-02-15 21:34:19 UTC (rev 241613)
@@ -1,3 +1,17 @@
+2019-02-15 Robin Morisset <[email protected]>
+
+ CodeBlock::jettison should clear related watchpoints
+ https://bugs.webkit.org/show_bug.cgi?id=194544
+
+ Reviewed by Mark Lam.
+
+ * bytecode/CodeBlock.cpp:
+ (JSC::CodeBlock::jettison):
+ * dfg/DFGCommonData.h:
+ (JSC::DFG::CommonData::clearWatchpoints): Added.
+ * dfg/CommonData.cpp:
+ (JSC::DFG::CommonData::clearWatchpoints): Added.
+
2019-02-15 Tadeu Zagallo <[email protected]>
Move bytecode cache-related filesystem code out of CodeCache
Modified: trunk/Source/_javascript_Core/bytecode/CodeBlock.cpp (241612 => 241613)
--- trunk/Source/_javascript_Core/bytecode/CodeBlock.cpp 2019-02-15 21:27:54 UTC (rev 241612)
+++ trunk/Source/_javascript_Core/bytecode/CodeBlock.cpp 2019-02-15 21:34:19 UTC (rev 241613)
@@ -1997,6 +1997,9 @@
// 2) Make sure that if we call the owner executable, then we shouldn't call this CodeBlock.
#if ENABLE(DFG_JIT)
+ if (JITCode::isOptimizingJIT(jitType()))
+ jitCode()->dfgCommon()->clearWatchpoints();
+
if (reason != Profiler::JettisonDueToOldAge) {
Profiler::Compilation* compilation = jitCode()->dfgCommon()->compilation.get();
if (UNLIKELY(compilation))
Modified: trunk/Source/_javascript_Core/dfg/DFGCommonData.cpp (241612 => 241613)
--- trunk/Source/_javascript_Core/dfg/DFGCommonData.cpp 2019-02-15 21:27:54 UTC (rev 241612)
+++ trunk/Source/_javascript_Core/dfg/DFGCommonData.cpp 2019-02-15 21:34:19 UTC (rev 241613)
@@ -205,6 +205,13 @@
#endif
}
+void CommonData::clearWatchpoints()
+{
+ watchpoints.clear();
+ adaptiveStructureWatchpoints.clear();
+ adaptiveInferredPropertyValueWatchpoints.clear();
+}
+
} } // namespace JSC::DFG
#endif // ENABLE(DFG_JIT)
Modified: trunk/Source/_javascript_Core/dfg/DFGCommonData.h (241612 => 241613)
--- trunk/Source/_javascript_Core/dfg/DFGCommonData.h 2019-02-15 21:27:54 UTC (rev 241612)
+++ trunk/Source/_javascript_Core/dfg/DFGCommonData.h 2019-02-15 21:34:19 UTC (rev 241613)
@@ -114,6 +114,8 @@
void validateReferences(const TrackedReferences&);
static ptrdiff_t frameRegisterCountOffset() { return OBJECT_OFFSETOF(CommonData, frameRegisterCount); }
+
+ void clearWatchpoints();
RefPtr<InlineCallFrameSet> inlineCallFrames;
Vector<CodeOrigin, 0, UnsafeVectorOverflow> codeOrigins;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes