Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(267)

Unified Diff: test/cctest/interpreter/bytecode_expectations/SuperCallAndSpread.golden

Issue 2540593003: Move desugaring of super calls with trailing spread to one runtime call. (Closed)
Patch Set: fix potential evaluation order issue Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/runtime/runtime-array.cc ('k') | test/cctest/interpreter/test-bytecode-generator.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/cctest/interpreter/bytecode_expectations/SuperCallAndSpread.golden
diff --git a/test/cctest/interpreter/bytecode_expectations/SuperCallAndSpread.golden b/test/cctest/interpreter/bytecode_expectations/SuperCallAndSpread.golden
new file mode 100644
index 0000000000000000000000000000000000000000..6d95afcf75f183a0e57a9dddefe6db46e9ba2cde
--- /dev/null
+++ b/test/cctest/interpreter/bytecode_expectations/SuperCallAndSpread.golden
@@ -0,0 +1,166 @@
+#
+# Autogenerated by generate-bytecode-expectations.
+#
+
+---
+wrap: no
+test function name: test
+
+---
+snippet: "
+ var test;
+ (function() {
+ class A {
+ constructor(...args) { this.baseArgs = args; }
+ }
+ class B extends A {}
+ test = new B(1, 2, 3).constructor;
+ })();
+"
+frame size: 9
+parameter count: 1
+bytecode array length: 40
+bytecodes: [
+ B(CreateRestParameter),
+ B(Star), R(2),
+ B(Mov), R(closure), R(1),
+ B(Mov), R(new_target), R(0),
+ B(Ldar), R(new_target),
+ /* 93 E> */ B(StackCheck),
+ /* 93 S> */ B(CallRuntime), U16(Runtime::k_GetSuperConstructor), R(1), U8(1),
+ B(Star), R(3),
+ B(CallRuntime), U16(Runtime::kSpreadIterablePrepareVarargs), R(2), U8(1),
+ B(Star), R(7),
+ B(LdaUndefined),
+ B(Star), R(5),
+ B(Mov), R(3), R(6),
+ B(Mov), R(0), R(8),
+ /* 93 E> */ B(CallJSRuntime), U8(150), R(5), U8(4),
+ /* 93 S> */ B(Return),
+]
+constant pool: [
+]
+handlers: [
+]
+
+---
+snippet: "
+ var test;
+ (function() {
+ class A {
+ constructor(...args) { this.baseArgs = args; }
+ }
+ class B extends A {
+ constructor(...args) { super(1, ...args); }
+ }
+ test = new B(1, 2, 3).constructor;
+ })();
+"
+frame size: 10
+parameter count: 1
+bytecode array length: 80
+bytecodes: [
+ B(CreateRestParameter),
+ B(Star), R(2),
+ B(Mov), R(closure), R(1),
+ B(Mov), R(new_target), R(0),
+ B(Ldar), R(new_target),
+ /* 128 E> */ B(StackCheck),
+ /* 140 S> */ B(CallRuntime), U16(Runtime::k_GetSuperConstructor), R(1), U8(1),
+ B(Star), R(3),
+ B(LdaSmi), U8(1),
+ B(Star), R(4),
+ B(Mov), R(2), R(5),
+ /* 152 E> */ B(CallRuntime), U16(Runtime::kSpreadIterablePrepareVarargs), R(4), U8(2),
+ B(Star), R(8),
+ B(LdaUndefined),
+ B(Star), R(6),
+ B(Mov), R(3), R(7),
+ B(Mov), R(0), R(9),
+ /* 140 E> */ B(CallJSRuntime), U8(150), R(6), U8(4),
+ B(Star), R(3),
+ B(Ldar), R(this),
+ B(JumpIfNotHole), U8(4),
+ B(Jump), U8(11),
+ B(LdaConstant), U8(0),
+ B(Star), R(4),
+ /* 140 E> */ B(CallRuntime), U16(Runtime::kThrowReferenceError), R(4), U8(1),
+ B(Mov), R(3), R(this),
+ B(Ldar), R(this),
+ B(JumpIfNotHole), U8(11),
+ B(LdaConstant), U8(0),
+ B(Star), R(3),
+ B(CallRuntime), U16(Runtime::kThrowReferenceError), R(3), U8(1),
+ /* 159 S> */ B(Return),
+]
+constant pool: [
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["this"],
+]
+handlers: [
+]
+
+---
+snippet: "
+ var test;
+ (function() {
+ class A {
+ constructor(...args) { this.baseArgs = args; }
+ }
+ class B extends A {
+ constructor(...args) { super(1, ...args, 1); }
+ }
+ test = new B(1, 2, 3).constructor;
+ })();
+"
+frame size: 13
+parameter count: 1
+bytecode array length: 96
+bytecodes: [
+ B(CreateRestParameter),
+ B(Star), R(2),
+ B(Mov), R(closure), R(1),
+ B(Mov), R(new_target), R(0),
+ B(Ldar), R(new_target),
+ /* 128 E> */ B(StackCheck),
+ /* 140 S> */ B(LdaUndefined),
+ B(Star), R(3),
+ /* 140 E> */ B(CallRuntime), U16(Runtime::k_GetSuperConstructor), R(1), U8(1),
+ B(Star), R(4),
+ B(LdaUndefined),
+ B(Star), R(7),
+ B(CreateArrayLiteral), U8(0), U8(0), U8(9),
+ B(Star), R(8),
+ B(LdaUndefined),
+ B(Star), R(11),
+ B(Mov), R(2), R(12),
+ /* 152 E> */ B(CallJSRuntime), U8(154), R(11), U8(2),
+ B(Star), R(9),
+ B(CreateArrayLiteral), U8(1), U8(1), U8(9),
+ B(Star), R(10),
+ B(CallJSRuntime), U8(153), R(7), U8(4),
+ B(Star), R(5),
+ B(Mov), R(0), R(6),
+ /* 140 E> */ B(CallJSRuntime), U8(150), R(3), U8(4),
+ B(Star), R(3),
+ B(Ldar), R(this),
+ B(JumpIfNotHole), U8(4),
+ B(Jump), U8(11),
+ B(LdaConstant), U8(2),
+ B(Star), R(4),
+ /* 140 E> */ B(CallRuntime), U16(Runtime::kThrowReferenceError), R(4), U8(1),
+ B(Mov), R(3), R(this),
+ B(Ldar), R(this),
+ B(JumpIfNotHole), U8(11),
+ B(LdaConstant), U8(2),
+ B(Star), R(3),
+ B(CallRuntime), U16(Runtime::kThrowReferenceError), R(3), U8(1),
+ /* 162 S> */ B(Return),
+]
+constant pool: [
+ FIXED_ARRAY_TYPE,
+ FIXED_ARRAY_TYPE,
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["this"],
+]
+handlers: [
+]
+
« no previous file with comments | « src/runtime/runtime-array.cc ('k') | test/cctest/interpreter/test-bytecode-generator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698