2017-01-23 09:03:35 +00:00
|
|
|
#
|
|
|
|
# Autogenerated by generate-bytecode-expectations.
|
|
|
|
#
|
|
|
|
|
|
|
|
---
|
|
|
|
wrap: yes
|
|
|
|
|
|
|
|
---
|
|
|
|
snippet: "
|
|
|
|
Math.max(...[1, 2, 3]);
|
|
|
|
"
|
|
|
|
frame size: 3
|
|
|
|
parameter count: 1
|
2020-02-10 16:09:27 +00:00
|
|
|
bytecode array length: 24
|
2017-01-23 09:03:35 +00:00
|
|
|
bytecodes: [
|
2017-10-19 15:12:42 +00:00
|
|
|
/* 34 S> */ B(LdaGlobal), U8(0), U8(0),
|
2017-01-23 09:03:35 +00:00
|
|
|
B(Star), R(1),
|
2017-10-19 15:12:42 +00:00
|
|
|
/* 39 E> */ B(LdaNamedProperty), R(1), U8(1), U8(2),
|
2017-01-23 09:03:35 +00:00
|
|
|
B(Star), R(0),
|
2017-10-19 15:12:42 +00:00
|
|
|
B(CreateArrayLiteral), U8(2), U8(4), U8(37),
|
2017-01-23 09:03:35 +00:00
|
|
|
B(Star), R(2),
|
2018-03-05 10:22:47 +00:00
|
|
|
/* 39 E> */ B(CallWithSpread), R(0), R(1), U8(2), U8(5),
|
2017-01-23 09:03:35 +00:00
|
|
|
B(LdaUndefined),
|
|
|
|
/* 58 S> */ B(Return),
|
|
|
|
]
|
|
|
|
constant pool: [
|
|
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["Math"],
|
|
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["max"],
|
2018-07-05 18:34:09 +00:00
|
|
|
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
|
2017-01-23 09:03:35 +00:00
|
|
|
]
|
|
|
|
handlers: [
|
|
|
|
]
|
|
|
|
|
|
|
|
---
|
|
|
|
snippet: "
|
|
|
|
Math.max(0, ...[1, 2, 3]);
|
|
|
|
"
|
|
|
|
frame size: 4
|
|
|
|
parameter count: 1
|
2020-02-10 16:09:27 +00:00
|
|
|
bytecode array length: 27
|
2017-01-23 09:03:35 +00:00
|
|
|
bytecodes: [
|
2017-10-19 15:12:42 +00:00
|
|
|
/* 34 S> */ B(LdaGlobal), U8(0), U8(0),
|
2017-01-23 09:03:35 +00:00
|
|
|
B(Star), R(1),
|
2017-10-19 15:12:42 +00:00
|
|
|
/* 39 E> */ B(LdaNamedProperty), R(1), U8(1), U8(2),
|
2017-01-23 09:03:35 +00:00
|
|
|
B(Star), R(0),
|
|
|
|
B(LdaZero),
|
|
|
|
B(Star), R(2),
|
2017-10-19 15:12:42 +00:00
|
|
|
B(CreateArrayLiteral), U8(2), U8(4), U8(37),
|
2017-01-23 09:03:35 +00:00
|
|
|
B(Star), R(3),
|
2018-03-05 10:22:47 +00:00
|
|
|
/* 39 E> */ B(CallWithSpread), R(0), R(1), U8(3), U8(5),
|
2017-01-23 09:03:35 +00:00
|
|
|
B(LdaUndefined),
|
|
|
|
/* 61 S> */ B(Return),
|
|
|
|
]
|
|
|
|
constant pool: [
|
|
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["Math"],
|
|
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["max"],
|
2018-07-05 18:34:09 +00:00
|
|
|
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
|
2017-01-23 09:03:35 +00:00
|
|
|
]
|
|
|
|
handlers: [
|
|
|
|
]
|
|
|
|
|
|
|
|
---
|
|
|
|
snippet: "
|
|
|
|
Math.max(0, ...[1, 2, 3], 4);
|
|
|
|
"
|
2019-09-06 12:41:00 +00:00
|
|
|
frame size: 8
|
2017-01-23 09:03:35 +00:00
|
|
|
parameter count: 1
|
2020-03-20 11:13:04 +00:00
|
|
|
bytecode array length: 100
|
2017-01-23 09:03:35 +00:00
|
|
|
bytecodes: [
|
2017-09-06 22:48:36 +00:00
|
|
|
/* 34 S> */ B(LdaGlobal), U8(0), U8(0),
|
2017-01-23 09:03:35 +00:00
|
|
|
B(Star), R(0),
|
2017-07-27 12:45:00 +00:00
|
|
|
B(LdaNamedProperty), R(0), U8(1), U8(2),
|
2017-09-06 22:48:36 +00:00
|
|
|
B(Star), R(1),
|
2017-07-27 12:45:00 +00:00
|
|
|
B(CreateArrayLiteral), U8(2), U8(4), U8(37),
|
Revert "[interpreter] Add bytecode for leading array spreads."
This reverts commit 1c48d52bb1ee9bb28e146c60eda08cd4afaa5745.
Reason for revert: Clusterfuzz found something.
Original change's description:
> [interpreter] Add bytecode for leading array spreads.
>
> This CL improves the performance of creating [...a, b] or [...a].
> If the array literal has a leading spread, this CL emits the bytecode
> [CreateArrayFromIterable] to create the literal. CreateArrayFromIterable
> is implemented by [IterableToListDefault] builtin to create the initial
> array for the leading spread. IterableToListDefault has a fast path to
> clone efficiently if the spread is an actual array.
>
> The bytecode generated is now shorter. Bytecode generation is refactored
> into to BuildCreateArrayLiteral, which allows VisitCallSuper to benefit
> from this optimization also.
> For now, turbofan also lowers the bytecode to the builtin.
>
> The idiomatic use of [...a] to clone the array a now performs better
> than a simple for-loop, but still does not match the performance of slice.
>
> Bug: v8:7980
>
> Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
> Change-Id: Ibde659c82d3c7aa1b1777a3d2f6426ac8cc15e35
> Reviewed-on: https://chromium-review.googlesource.com/1181024
> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
> Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Reviewed-by: Georg Neis <neis@chromium.org>
> Commit-Queue: Georg Neis <neis@chromium.org>
> Commit-Queue: Hai Dang <dhai@google.com>
> Cr-Commit-Position: refs/heads/master@{#55520}
TBR=rmcilroy@chromium.org,neis@chromium.org,sigurds@chromium.org,gsathya@chromium.org,jgruber@chromium.org,dhai@google.com
Change-Id: I1c86ddcc24274da9f5a8dd3d8bf8d869cbb55cb6
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7980
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Reviewed-on: https://chromium-review.googlesource.com/1199303
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55544}
2018-08-31 11:43:24 +00:00
|
|
|
B(Star), R(4),
|
2018-09-05 07:50:48 +00:00
|
|
|
B(LdaConstant), U8(3),
|
|
|
|
B(Star), R(3),
|
2019-01-02 16:12:54 +00:00
|
|
|
/* 49 S> */ B(CreateArrayLiteral), U8(4), U8(5), U8(37),
|
|
|
|
B(Star), R(7),
|
2019-09-06 12:41:00 +00:00
|
|
|
B(GetIterator), R(7), U8(6), U8(8),
|
2019-12-20 14:06:40 +00:00
|
|
|
B(Mov), R(0), R(2),
|
|
|
|
B(JumpIfJSReceiver), U8(7),
|
|
|
|
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(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(Star), R(6),
|
2019-08-08 20:43:41 +00:00
|
|
|
B(LdaNamedProperty), R(6), U8(5), U8(10),
|
2018-03-02 20:30:34 +00:00
|
|
|
B(Star), R(5),
|
2019-01-02 16:12:54 +00:00
|
|
|
B(CallProperty0), R(5), R(6), U8(19),
|
2019-08-23 14:23:52 +00:00
|
|
|
B(Star), R(7),
|
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-08-23 14:23:52 +00:00
|
|
|
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(7), U8(1),
|
|
|
|
B(LdaNamedProperty), R(7), U8(6), U8(21),
|
2020-03-20 11:13:04 +00:00
|
|
|
B(JumpIfToBooleanTrue), U8(19),
|
2019-08-23 14:23:52 +00:00
|
|
|
B(LdaNamedProperty), R(7), U8(7), U8(12),
|
2019-01-02 16:12:54 +00:00
|
|
|
B(StaInArrayLiteral), R(4), R(3), U8(17),
|
2018-09-05 07:50:48 +00:00
|
|
|
B(Ldar), R(3),
|
2019-01-02 16:12:54 +00:00
|
|
|
B(Inc), U8(16),
|
2018-09-05 07:50:48 +00:00
|
|
|
B(Star), R(3),
|
2020-03-20 11:13:04 +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-01-02 16:12:54 +00:00
|
|
|
B(StaInArrayLiteral), R(4), R(3), U8(17),
|
2018-09-05 07:50:48 +00:00
|
|
|
B(Mov), R(4), R(3),
|
2017-09-06 22:48:36 +00:00
|
|
|
B(CallJSRuntime), U8(%reflect_apply), R(1), U8(3),
|
2017-01-23 09:03:35 +00:00
|
|
|
B(LdaUndefined),
|
|
|
|
/* 64 S> */ B(Return),
|
|
|
|
]
|
|
|
|
constant pool: [
|
|
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["Math"],
|
|
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["max"],
|
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: [
|
|
|
|
]
|
|
|
|
|