2017-01-23 09:03:35 +00:00
|
|
|
#
|
|
|
|
# Autogenerated by generate-bytecode-expectations.
|
|
|
|
#
|
|
|
|
|
|
|
|
---
|
|
|
|
wrap: yes
|
|
|
|
|
|
|
|
---
|
|
|
|
snippet: "
|
|
|
|
class A { constructor(...args) { this.args = args; } }
|
|
|
|
new A(...[1, 2, 3]);
|
|
|
|
"
|
2019-10-10 14:33:02 +00:00
|
|
|
frame size: 6
|
2017-01-23 09:03:35 +00:00
|
|
|
parameter count: 1
|
2020-02-10 16:09:27 +00:00
|
|
|
bytecode array length: 47
|
2017-01-23 09:03:35 +00:00
|
|
|
bytecodes: [
|
2020-02-10 16:09:27 +00:00
|
|
|
/* 30 E> */ B(CreateBlockContext), U8(0),
|
2019-10-10 14:33:02 +00:00
|
|
|
B(PushContext), R(1),
|
2017-01-23 09:03:35 +00:00
|
|
|
B(LdaTheHole),
|
2019-10-10 14:33:02 +00:00
|
|
|
B(Star), R(5),
|
2018-12-12 12:54:21 +00:00
|
|
|
B(CreateClosure), U8(2), U8(0), U8(2),
|
2019-10-10 14:33:02 +00:00
|
|
|
B(Star), R(2),
|
2018-12-12 12:54:21 +00:00
|
|
|
B(LdaConstant), U8(1),
|
2017-05-04 17:00:44 +00:00
|
|
|
B(Star), R(3),
|
2019-10-10 14:33:02 +00:00
|
|
|
B(Mov), R(2), R(4),
|
|
|
|
B(CallRuntime), U16(Runtime::kDefineClass), R(3), U8(3),
|
|
|
|
B(Star), R(3),
|
|
|
|
B(PopContext), R(1),
|
|
|
|
B(Mov), R(4), R(0),
|
|
|
|
/* 89 S> */ B(CreateArrayLiteral), U8(3), U8(0), U8(37),
|
|
|
|
B(Star), R(2),
|
2019-01-31 15:36:58 +00:00
|
|
|
B(Ldar), R(0),
|
2019-10-10 14:33:02 +00:00
|
|
|
/* 89 E> */ B(ConstructWithSpread), R(0), R(2), U8(1), U8(1),
|
2017-01-23 09:03:35 +00:00
|
|
|
B(LdaUndefined),
|
|
|
|
/* 110 S> */ B(Return),
|
|
|
|
]
|
|
|
|
constant pool: [
|
2018-12-12 12:54:21 +00:00
|
|
|
SCOPE_INFO_TYPE,
|
2017-11-16 16:45:46 +00:00
|
|
|
FIXED_ARRAY_TYPE,
|
2017-01-23 09:03:35 +00:00
|
|
|
SHARED_FUNCTION_INFO_TYPE,
|
2018-07-05 18:34:09 +00:00
|
|
|
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
|
2017-01-23 09:03:35 +00:00
|
|
|
]
|
|
|
|
handlers: [
|
|
|
|
]
|
|
|
|
|
|
|
|
---
|
|
|
|
snippet: "
|
|
|
|
class A { constructor(...args) { this.args = args; } }
|
|
|
|
new A(0, ...[1, 2, 3]);
|
|
|
|
"
|
2019-10-10 14:33:02 +00:00
|
|
|
frame size: 6
|
2017-01-23 09:03:35 +00:00
|
|
|
parameter count: 1
|
2020-02-10 16:09:27 +00:00
|
|
|
bytecode array length: 50
|
2017-01-23 09:03:35 +00:00
|
|
|
bytecodes: [
|
2020-02-10 16:09:27 +00:00
|
|
|
/* 30 E> */ B(CreateBlockContext), U8(0),
|
2019-10-10 14:33:02 +00:00
|
|
|
B(PushContext), R(1),
|
2017-01-23 09:03:35 +00:00
|
|
|
B(LdaTheHole),
|
2019-10-10 14:33:02 +00:00
|
|
|
B(Star), R(5),
|
2018-12-12 12:54:21 +00:00
|
|
|
B(CreateClosure), U8(2), U8(0), U8(2),
|
2019-10-10 14:33:02 +00:00
|
|
|
B(Star), R(2),
|
2018-12-12 12:54:21 +00:00
|
|
|
B(LdaConstant), U8(1),
|
2017-05-04 17:00:44 +00:00
|
|
|
B(Star), R(3),
|
2019-10-10 14:33:02 +00:00
|
|
|
B(Mov), R(2), R(4),
|
|
|
|
B(CallRuntime), U16(Runtime::kDefineClass), R(3), U8(3),
|
|
|
|
B(Star), R(3),
|
|
|
|
B(PopContext), R(1),
|
|
|
|
B(Mov), R(4), R(0),
|
|
|
|
/* 89 S> */ B(LdaZero),
|
|
|
|
B(Star), R(2),
|
2019-03-08 14:57:54 +00:00
|
|
|
B(CreateArrayLiteral), U8(3), U8(0), U8(37),
|
2019-10-10 14:33:02 +00:00
|
|
|
B(Star), R(3),
|
2019-01-31 15:36:58 +00:00
|
|
|
B(Ldar), R(0),
|
2019-10-10 14:33:02 +00:00
|
|
|
/* 89 E> */ B(ConstructWithSpread), R(0), R(2), U8(2), U8(1),
|
2017-01-23 09:03:35 +00:00
|
|
|
B(LdaUndefined),
|
|
|
|
/* 113 S> */ B(Return),
|
|
|
|
]
|
|
|
|
constant pool: [
|
2018-12-12 12:54:21 +00:00
|
|
|
SCOPE_INFO_TYPE,
|
2017-11-16 16:45:46 +00:00
|
|
|
FIXED_ARRAY_TYPE,
|
2017-01-23 09:03:35 +00:00
|
|
|
SHARED_FUNCTION_INFO_TYPE,
|
2018-07-05 18:34:09 +00:00
|
|
|
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
|
2017-01-23 09:03:35 +00:00
|
|
|
]
|
|
|
|
handlers: [
|
|
|
|
]
|
|
|
|
|
|
|
|
---
|
|
|
|
snippet: "
|
|
|
|
class A { constructor(...args) { this.args = args; } }
|
|
|
|
new A(0, ...[1, 2, 3], 4);
|
|
|
|
"
|
2019-10-10 14:33:02 +00:00
|
|
|
frame size: 7
|
2017-01-23 09:03:35 +00:00
|
|
|
parameter count: 1
|
2020-02-10 16:09:27 +00:00
|
|
|
bytecode array length: 121
|
2017-01-23 09:03:35 +00:00
|
|
|
bytecodes: [
|
2020-02-10 16:09:27 +00:00
|
|
|
/* 30 E> */ B(CreateBlockContext), U8(0),
|
2019-10-10 14:33:02 +00:00
|
|
|
B(PushContext), R(1),
|
2017-01-23 09:03:35 +00:00
|
|
|
B(LdaTheHole),
|
2019-10-10 14:33:02 +00:00
|
|
|
B(Star), R(5),
|
2018-12-12 12:54:21 +00:00
|
|
|
B(CreateClosure), U8(2), U8(0), U8(2),
|
2019-10-10 14:33:02 +00:00
|
|
|
B(Star), R(2),
|
2018-12-12 12:54:21 +00:00
|
|
|
B(LdaConstant), U8(1),
|
2019-10-10 14:33:02 +00:00
|
|
|
B(Star), R(3),
|
|
|
|
B(Mov), R(2), R(4),
|
|
|
|
B(CallRuntime), U16(Runtime::kDefineClass), R(3), U8(3),
|
|
|
|
B(Star), R(3),
|
|
|
|
B(PopContext), R(1),
|
|
|
|
B(Mov), R(4), R(0),
|
2019-03-08 14:57:54 +00:00
|
|
|
/* 89 S> */ B(CreateArrayLiteral), U8(3), U8(0), U8(37),
|
2018-09-05 07:50:48 +00:00
|
|
|
B(Star), R(3),
|
2019-10-10 14:33:02 +00:00
|
|
|
B(LdaConstant), U8(4),
|
|
|
|
B(Star), R(2),
|
2019-03-08 14:57:54 +00:00
|
|
|
/* 101 S> */ B(CreateArrayLiteral), U8(5), U8(1), U8(37),
|
Reland "[parsing] inline ArrayLiteral creation for spread calls"
This reverts commit f48e7349035430ea13dd0ce1ed1e775f6eecabeb.
Reason for revert: innocent!!
Original change's description:
> Revert "[parsing] inline ArrayLiteral creation for spread calls"
>
> This reverts commit 93fc3841c3da0fc85662e66a57d881555238d634.
>
> Reason for revert: may break node.js integration
>
> Original change's description:
> > [parsing] inline ArrayLiteral creation for spread calls
> >
> > Instead of using runtime calls to generate the Array Literal passed to
> > %reflect_call / %reflect_construct, we create an ArrayLiteral from the
> > list of arguments, and perform spreads using the interpreter mechanism for
> > spreading in ArrayLiterals (thus, the spreading becomes inline). This
> > array literal is still passed to %reflect_call / %reflect_construct as
> > before.
> >
> > This cuts the runtime for bench-spread-call.js -> testSpread roughly in
> > half, and will likely improve further once
> > https://chromium-review.googlesource.com/c/v8/v8/+/915364 has landed.
> >
> > BUG=v8:7446
> > R=neis@chromium.org, adamk@chromium.org
> >
> > Change-Id: I74a6acd3a60aad422e4ac575275c7b567659d8ad
> > Reviewed-on: https://chromium-review.googlesource.com/939587
> > Commit-Queue: Georg Neis <neis@chromium.org>
> > Reviewed-by: Georg Neis <neis@chromium.org>
> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#51678}
>
> TBR=adamk@chromium.org,neis@chromium.org,caitp@igalia.com,bmeurer@chromium.org
>
> Change-Id: I4730077591bce0e5e7b2ce7d59678e8b7135cc08
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: v8:7446
> Reviewed-on: https://chromium-review.googlesource.com/945769
> Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
> Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#51682}
TBR=adamk@chromium.org,neis@chromium.org,sigurds@chromium.org,caitp@igalia.com,bmeurer@chromium.org
Change-Id: I977513bea06a4f3fba03fa4a89270298475422e2
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7446
Reviewed-on: https://chromium-review.googlesource.com/945808
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51686}
2018-03-02 10:03:27 +00:00
|
|
|
B(Star), R(6),
|
2019-10-10 14:33:02 +00:00
|
|
|
B(GetIterator), R(6), U8(2), U8(4),
|
2019-12-20 14:06:40 +00:00
|
|
|
B(Mov), R(4), R(1),
|
|
|
|
B(JumpIfJSReceiver), U8(7),
|
|
|
|
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
|
2018-03-02 20:30:34 +00:00
|
|
|
B(Star), R(5),
|
2019-10-10 14:33:02 +00:00
|
|
|
B(LdaNamedProperty), R(5), U8(6), U8(6),
|
|
|
|
B(Star), R(4),
|
|
|
|
B(CallProperty0), R(4), R(5), U8(15),
|
|
|
|
B(Star), R(6),
|
Reland "[parsing] inline ArrayLiteral creation for spread calls"
This reverts commit f48e7349035430ea13dd0ce1ed1e775f6eecabeb.
Reason for revert: innocent!!
Original change's description:
> Revert "[parsing] inline ArrayLiteral creation for spread calls"
>
> This reverts commit 93fc3841c3da0fc85662e66a57d881555238d634.
>
> Reason for revert: may break node.js integration
>
> Original change's description:
> > [parsing] inline ArrayLiteral creation for spread calls
> >
> > Instead of using runtime calls to generate the Array Literal passed to
> > %reflect_call / %reflect_construct, we create an ArrayLiteral from the
> > list of arguments, and perform spreads using the interpreter mechanism for
> > spreading in ArrayLiterals (thus, the spreading becomes inline). This
> > array literal is still passed to %reflect_call / %reflect_construct as
> > before.
> >
> > This cuts the runtime for bench-spread-call.js -> testSpread roughly in
> > half, and will likely improve further once
> > https://chromium-review.googlesource.com/c/v8/v8/+/915364 has landed.
> >
> > BUG=v8:7446
> > R=neis@chromium.org, adamk@chromium.org
> >
> > Change-Id: I74a6acd3a60aad422e4ac575275c7b567659d8ad
> > Reviewed-on: https://chromium-review.googlesource.com/939587
> > Commit-Queue: Georg Neis <neis@chromium.org>
> > Reviewed-by: Georg Neis <neis@chromium.org>
> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#51678}
>
> TBR=adamk@chromium.org,neis@chromium.org,caitp@igalia.com,bmeurer@chromium.org
>
> Change-Id: I4730077591bce0e5e7b2ce7d59678e8b7135cc08
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: v8:7446
> Reviewed-on: https://chromium-review.googlesource.com/945769
> Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
> Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#51682}
TBR=adamk@chromium.org,neis@chromium.org,sigurds@chromium.org,caitp@igalia.com,bmeurer@chromium.org
Change-Id: I977513bea06a4f3fba03fa4a89270298475422e2
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7446
Reviewed-on: https://chromium-review.googlesource.com/945808
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51686}
2018-03-02 10:03:27 +00:00
|
|
|
B(JumpIfJSReceiver), U8(7),
|
2019-10-10 14:33:02 +00:00
|
|
|
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(6), U8(1),
|
|
|
|
B(LdaNamedProperty), R(6), U8(7), U8(17),
|
2019-01-02 16:12:54 +00:00
|
|
|
B(JumpIfToBooleanTrue), U8(19),
|
2019-10-10 14:33:02 +00:00
|
|
|
B(LdaNamedProperty), R(6), U8(8), U8(8),
|
|
|
|
B(StaInArrayLiteral), R(3), R(2), U8(13),
|
|
|
|
B(Ldar), R(2),
|
2019-03-08 14:57:54 +00:00
|
|
|
B(Inc), U8(12),
|
2019-10-10 14:33:02 +00:00
|
|
|
B(Star), R(2),
|
2019-01-02 16:12:54 +00:00
|
|
|
B(JumpLoop), U8(33), I8(0),
|
Reland "[parsing] inline ArrayLiteral creation for spread calls"
This reverts commit f48e7349035430ea13dd0ce1ed1e775f6eecabeb.
Reason for revert: innocent!!
Original change's description:
> Revert "[parsing] inline ArrayLiteral creation for spread calls"
>
> This reverts commit 93fc3841c3da0fc85662e66a57d881555238d634.
>
> Reason for revert: may break node.js integration
>
> Original change's description:
> > [parsing] inline ArrayLiteral creation for spread calls
> >
> > Instead of using runtime calls to generate the Array Literal passed to
> > %reflect_call / %reflect_construct, we create an ArrayLiteral from the
> > list of arguments, and perform spreads using the interpreter mechanism for
> > spreading in ArrayLiterals (thus, the spreading becomes inline). This
> > array literal is still passed to %reflect_call / %reflect_construct as
> > before.
> >
> > This cuts the runtime for bench-spread-call.js -> testSpread roughly in
> > half, and will likely improve further once
> > https://chromium-review.googlesource.com/c/v8/v8/+/915364 has landed.
> >
> > BUG=v8:7446
> > R=neis@chromium.org, adamk@chromium.org
> >
> > Change-Id: I74a6acd3a60aad422e4ac575275c7b567659d8ad
> > Reviewed-on: https://chromium-review.googlesource.com/939587
> > Commit-Queue: Georg Neis <neis@chromium.org>
> > Reviewed-by: Georg Neis <neis@chromium.org>
> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#51678}
>
> TBR=adamk@chromium.org,neis@chromium.org,caitp@igalia.com,bmeurer@chromium.org
>
> Change-Id: I4730077591bce0e5e7b2ce7d59678e8b7135cc08
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: v8:7446
> Reviewed-on: https://chromium-review.googlesource.com/945769
> Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
> Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#51682}
TBR=adamk@chromium.org,neis@chromium.org,sigurds@chromium.org,caitp@igalia.com,bmeurer@chromium.org
Change-Id: I977513bea06a4f3fba03fa4a89270298475422e2
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7446
Reviewed-on: https://chromium-review.googlesource.com/945808
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51686}
2018-03-02 10:03:27 +00:00
|
|
|
B(LdaSmi), I8(4),
|
2019-10-10 14:33:02 +00:00
|
|
|
B(StaInArrayLiteral), R(3), R(2), U8(13),
|
|
|
|
B(Mov), R(3), R(2),
|
|
|
|
B(CallJSRuntime), U8(%reflect_construct), R(1), U8(2),
|
2017-01-23 09:03:35 +00:00
|
|
|
B(LdaUndefined),
|
|
|
|
/* 116 S> */ B(Return),
|
|
|
|
]
|
|
|
|
constant pool: [
|
2018-12-12 12:54:21 +00:00
|
|
|
SCOPE_INFO_TYPE,
|
2017-11-16 16:45:46 +00:00
|
|
|
FIXED_ARRAY_TYPE,
|
2017-01-23 09:03:35 +00:00
|
|
|
SHARED_FUNCTION_INFO_TYPE,
|
2018-07-05 18:34:09 +00:00
|
|
|
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
|
2018-03-02 20:30:34 +00:00
|
|
|
Smi [1],
|
2018-07-05 18:34:09 +00:00
|
|
|
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
|
Reland "[parsing] inline ArrayLiteral creation for spread calls"
This reverts commit f48e7349035430ea13dd0ce1ed1e775f6eecabeb.
Reason for revert: innocent!!
Original change's description:
> Revert "[parsing] inline ArrayLiteral creation for spread calls"
>
> This reverts commit 93fc3841c3da0fc85662e66a57d881555238d634.
>
> Reason for revert: may break node.js integration
>
> Original change's description:
> > [parsing] inline ArrayLiteral creation for spread calls
> >
> > Instead of using runtime calls to generate the Array Literal passed to
> > %reflect_call / %reflect_construct, we create an ArrayLiteral from the
> > list of arguments, and perform spreads using the interpreter mechanism for
> > spreading in ArrayLiterals (thus, the spreading becomes inline). This
> > array literal is still passed to %reflect_call / %reflect_construct as
> > before.
> >
> > This cuts the runtime for bench-spread-call.js -> testSpread roughly in
> > half, and will likely improve further once
> > https://chromium-review.googlesource.com/c/v8/v8/+/915364 has landed.
> >
> > BUG=v8:7446
> > R=neis@chromium.org, adamk@chromium.org
> >
> > Change-Id: I74a6acd3a60aad422e4ac575275c7b567659d8ad
> > Reviewed-on: https://chromium-review.googlesource.com/939587
> > Commit-Queue: Georg Neis <neis@chromium.org>
> > Reviewed-by: Georg Neis <neis@chromium.org>
> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#51678}
>
> TBR=adamk@chromium.org,neis@chromium.org,caitp@igalia.com,bmeurer@chromium.org
>
> Change-Id: I4730077591bce0e5e7b2ce7d59678e8b7135cc08
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: v8:7446
> Reviewed-on: https://chromium-review.googlesource.com/945769
> Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
> Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#51682}
TBR=adamk@chromium.org,neis@chromium.org,sigurds@chromium.org,caitp@igalia.com,bmeurer@chromium.org
Change-Id: I977513bea06a4f3fba03fa4a89270298475422e2
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7446
Reviewed-on: https://chromium-review.googlesource.com/945808
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51686}
2018-03-02 10:03:27 +00:00
|
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
|
|
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
|
|
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
|
2017-01-23 09:03:35 +00:00
|
|
|
]
|
|
|
|
handlers: [
|
|
|
|
]
|
|
|
|
|