Title: [242649] trunk
- Revision
- 242649
- Author
- tzaga...@apple.com
- Date
- 2019-03-08 11:18:18 -0800 (Fri, 08 Mar 2019)
Log Message
op_check_tdz does not def its argument
https://bugs.webkit.org/show_bug.cgi?id=192880
<rdar://problem/46221598>
Reviewed by Saam Barati.
JSTests:
* microbenchmarks/let-for-in.js: Added.
(foo):
Source/_javascript_Core:
This prevented the for-in loop optimization in the bytecode generator, since
the analysis sees a redefinition of the loop variable.
* bytecode/BytecodeUseDef.h:
(JSC::computeDefsForBytecodeOffset):
Modified Paths
Added Paths
Diff
Modified: trunk/JSTests/ChangeLog (242648 => 242649)
--- trunk/JSTests/ChangeLog 2019-03-08 19:15:19 UTC (rev 242648)
+++ trunk/JSTests/ChangeLog 2019-03-08 19:18:18 UTC (rev 242649)
@@ -1,3 +1,14 @@
+2019-03-08 Tadeu Zagallo <tzaga...@apple.com>
+
+ op_check_tdz does not def its argument
+ https://bugs.webkit.org/show_bug.cgi?id=192880
+ <rdar://problem/46221598>
+
+ Reviewed by Saam Barati.
+
+ * microbenchmarks/let-for-in.js: Added.
+ (foo):
+
2019-03-07 Yusuke Suzuki <ysuz...@apple.com>
[JSC] StringFromCharCode fast path should accept 0xff in DFG and FTL
Added: trunk/JSTests/microbenchmarks/let-for-in.js (0 => 242649)
--- trunk/JSTests/microbenchmarks/let-for-in.js (rev 0)
+++ trunk/JSTests/microbenchmarks/let-for-in.js 2019-03-08 19:18:18 UTC (rev 242649)
@@ -0,0 +1,15 @@
+function foo(o) {
+ var count = 0;
+ for (let p in o) {
+ if (o[p])
+ count++;
+ }
+ return count;
+}
+noInline(foo);
+
+var total = 0;
+for (let j = 0; j < 100000; ++j)
+ total += foo(new Error);
+if (total != 300000)
+ throw new Error("Bad result: " + total);
Modified: trunk/Source/_javascript_Core/ChangeLog (242648 => 242649)
--- trunk/Source/_javascript_Core/ChangeLog 2019-03-08 19:15:19 UTC (rev 242648)
+++ trunk/Source/_javascript_Core/ChangeLog 2019-03-08 19:18:18 UTC (rev 242649)
@@ -1,3 +1,17 @@
+2019-03-08 Tadeu Zagallo <tzaga...@apple.com>
+
+ op_check_tdz does not def its argument
+ https://bugs.webkit.org/show_bug.cgi?id=192880
+ <rdar://problem/46221598>
+
+ Reviewed by Saam Barati.
+
+ This prevented the for-in loop optimization in the bytecode generator, since
+ the analysis sees a redefinition of the loop variable.
+
+ * bytecode/BytecodeUseDef.h:
+ (JSC::computeDefsForBytecodeOffset):
+
2019-03-07 Yusuke Suzuki <ysuz...@apple.com>
[JSC] Make more fields lazy in JSGlobalObject
Modified: trunk/Source/_javascript_Core/bytecode/BytecodeUseDef.h (242648 => 242649)
--- trunk/Source/_javascript_Core/bytecode/BytecodeUseDef.h 2019-03-08 19:15:19 UTC (rev 242648)
+++ trunk/Source/_javascript_Core/bytecode/BytecodeUseDef.h 2019-03-08 19:18:18 UTC (rev 242649)
@@ -295,6 +295,7 @@
case op_end:
case op_throw:
case op_throw_static_error:
+ case op_check_tdz:
case op_debug:
case op_ret:
case op_jmp:
@@ -448,7 +449,6 @@
DEFS(OpMov, dst)
DEFS(OpNewObject, dst)
DEFS(OpToThis, srcDst)
- DEFS(OpCheckTdz, targetVirtualRegister)
DEFS(OpGetScope, dst)
DEFS(OpCreateDirectArguments, dst)
DEFS(OpCreateScopedArguments, dst)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes