2016-02-25 12:07:07 +00:00
|
|
|
#
|
|
|
|
# Autogenerated by generate-bytecode-expectations.
|
|
|
|
#
|
|
|
|
|
|
|
|
---
|
|
|
|
wrap: yes
|
|
|
|
|
|
|
|
---
|
|
|
|
snippet: "
|
|
|
|
return [ 1, 2 ];
|
|
|
|
"
|
|
|
|
frame size: 0
|
|
|
|
parameter count: 1
|
|
|
|
bytecode array length: 6
|
|
|
|
bytecodes: [
|
2016-05-11 12:21:56 +00:00
|
|
|
/* 30 E> */ B(StackCheck),
|
2017-07-27 12:45:00 +00:00
|
|
|
/* 34 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(37),
|
2017-07-14 17:50:09 +00:00
|
|
|
/* 50 S> */ B(Return),
|
2016-02-25 12:07:07 +00:00
|
|
|
]
|
|
|
|
constant pool: [
|
2018-07-05 18:34:09 +00:00
|
|
|
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
|
2016-02-25 12:07:07 +00:00
|
|
|
]
|
|
|
|
handlers: [
|
|
|
|
]
|
|
|
|
|
|
|
|
---
|
|
|
|
snippet: "
|
|
|
|
var a = 1; return [ a, a + 1 ];
|
|
|
|
"
|
2016-05-27 15:57:35 +00:00
|
|
|
frame size: 3
|
2016-02-25 12:07:07 +00:00
|
|
|
parameter count: 1
|
2017-04-10 09:30:51 +00:00
|
|
|
bytecode array length: 36
|
2016-02-25 12:07:07 +00:00
|
|
|
bytecodes: [
|
2016-05-11 12:21:56 +00:00
|
|
|
/* 30 E> */ B(StackCheck),
|
2017-01-25 17:39:24 +00:00
|
|
|
/* 42 S> */ B(LdaSmi), I8(1),
|
2016-05-23 13:31:53 +00:00
|
|
|
B(Star), R(0),
|
2017-10-19 15:12:42 +00:00
|
|
|
/* 45 S> */ B(CreateArrayLiteral), U8(0), U8(0), 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(2),
|
2018-09-05 07:50:48 +00:00
|
|
|
B(LdaZero),
|
|
|
|
B(Star), R(1),
|
2016-06-09 13:32:33 +00:00
|
|
|
B(Ldar), R(0),
|
2018-09-05 07:50:48 +00:00
|
|
|
/* 54 E> */ B(StaInArrayLiteral), R(2), R(1), U8(1),
|
2017-01-25 17:39:24 +00:00
|
|
|
B(LdaSmi), I8(1),
|
2018-09-05 07:50:48 +00:00
|
|
|
B(Star), R(1),
|
2017-04-10 09:30:51 +00:00
|
|
|
B(Ldar), R(0),
|
2017-10-19 15:12:42 +00:00
|
|
|
/* 59 E> */ B(AddSmi), I8(1), U8(3),
|
2018-09-05 07:50:48 +00:00
|
|
|
B(StaInArrayLiteral), R(2), R(1), U8(1),
|
|
|
|
B(Ldar), R(2),
|
2017-07-14 17:50:09 +00:00
|
|
|
/* 65 S> */ B(Return),
|
2016-02-25 12:07:07 +00:00
|
|
|
]
|
|
|
|
constant pool: [
|
2018-07-05 18:34:09 +00:00
|
|
|
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
|
2016-02-25 12:07:07 +00:00
|
|
|
]
|
|
|
|
handlers: [
|
|
|
|
]
|
|
|
|
|
|
|
|
---
|
|
|
|
snippet: "
|
|
|
|
return [ [ 1, 2 ], [ 3 ] ];
|
|
|
|
"
|
|
|
|
frame size: 0
|
|
|
|
parameter count: 1
|
|
|
|
bytecode array length: 6
|
|
|
|
bytecodes: [
|
2016-05-11 12:21:56 +00:00
|
|
|
/* 30 E> */ B(StackCheck),
|
2017-10-19 15:12:42 +00:00
|
|
|
/* 34 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(4),
|
2017-07-14 17:50:09 +00:00
|
|
|
/* 61 S> */ B(Return),
|
2016-02-25 12:07:07 +00:00
|
|
|
]
|
|
|
|
constant pool: [
|
2018-07-05 18:34:09 +00:00
|
|
|
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
|
2016-02-25 12:07:07 +00:00
|
|
|
]
|
|
|
|
handlers: [
|
|
|
|
]
|
|
|
|
|
|
|
|
---
|
|
|
|
snippet: "
|
|
|
|
var a = 1; return [ [ a, 2 ], [ a + 2 ] ];
|
|
|
|
"
|
2016-05-27 15:57:35 +00:00
|
|
|
frame size: 5
|
2016-02-25 12:07:07 +00:00
|
|
|
parameter count: 1
|
2017-04-10 09:30:51 +00:00
|
|
|
bytecode array length: 66
|
2016-02-25 12:07:07 +00:00
|
|
|
bytecodes: [
|
2016-05-11 12:21:56 +00:00
|
|
|
/* 30 E> */ B(StackCheck),
|
2017-01-25 17:39:24 +00:00
|
|
|
/* 42 S> */ B(LdaSmi), I8(1),
|
2016-05-23 13:31:53 +00:00
|
|
|
B(Star), R(0),
|
2017-10-19 15:12:42 +00:00
|
|
|
/* 45 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(4),
|
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(2),
|
|
|
|
B(LdaZero),
|
2018-09-05 07:50:48 +00:00
|
|
|
B(Star), R(1),
|
|
|
|
B(CreateArrayLiteral), U8(1), U8(1), 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(LdaZero),
|
|
|
|
B(Star), R(3),
|
2016-06-09 13:32:33 +00:00
|
|
|
B(Ldar), R(0),
|
2018-09-05 07:50:48 +00:00
|
|
|
/* 56 E> */ B(StaInArrayLiteral), R(4), R(3), U8(2),
|
|
|
|
B(Ldar), R(4),
|
|
|
|
B(StaInArrayLiteral), R(2), R(1), U8(4),
|
2017-01-25 17:39:24 +00:00
|
|
|
B(LdaSmi), I8(1),
|
2018-09-05 07:50:48 +00:00
|
|
|
B(Star), R(1),
|
2018-03-05 10:22:47 +00:00
|
|
|
B(CreateArrayLiteral), U8(2), U8(6), 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(LdaZero),
|
|
|
|
B(Star), R(3),
|
2017-04-10 09:30:51 +00:00
|
|
|
B(Ldar), R(0),
|
2018-08-28 11:22:58 +00:00
|
|
|
/* 68 E> */ B(AddSmi), I8(2), U8(7),
|
2018-09-05 07:50:48 +00:00
|
|
|
B(StaInArrayLiteral), R(4), R(3), U8(8),
|
|
|
|
B(Ldar), R(4),
|
|
|
|
B(StaInArrayLiteral), R(2), R(1), U8(4),
|
|
|
|
B(Ldar), R(2),
|
2017-07-14 17:50:09 +00:00
|
|
|
/* 76 S> */ B(Return),
|
2016-02-25 12:07:07 +00:00
|
|
|
]
|
|
|
|
constant pool: [
|
2018-07-05 18:34:09 +00:00
|
|
|
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
|
|
|
|
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
|
|
|
|
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
|
2016-02-25 12:07:07 +00:00
|
|
|
]
|
|
|
|
handlers: [
|
|
|
|
]
|
|
|
|
|
2018-08-21 10:05:08 +00:00
|
|
|
---
|
|
|
|
snippet: "
|
|
|
|
var a = [ 1, 2 ]; return [ ...a ];
|
|
|
|
"
|
2018-09-05 07:50:48 +00:00
|
|
|
frame size: 1
|
2018-08-21 10:05:08 +00:00
|
|
|
parameter count: 1
|
2018-09-05 07:50:48 +00:00
|
|
|
bytecode array length: 9
|
2018-08-21 10:05:08 +00:00
|
|
|
bytecodes: [
|
|
|
|
/* 30 E> */ B(StackCheck),
|
|
|
|
/* 42 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(37),
|
|
|
|
B(Star), R(0),
|
2018-09-05 07:50:48 +00:00
|
|
|
/* 52 S> */ B(CreateArrayFromIterable),
|
2018-08-21 10:05:08 +00:00
|
|
|
/* 68 S> */ B(Return),
|
|
|
|
]
|
|
|
|
constant pool: [
|
|
|
|
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
|
|
|
|
]
|
|
|
|
handlers: [
|
|
|
|
]
|
|
|
|
|
|
|
|
---
|
|
|
|
snippet: "
|
|
|
|
var a = [ 1, 2 ]; return [ 0, ...a ];
|
|
|
|
"
|
|
|
|
frame size: 8
|
|
|
|
parameter count: 1
|
|
|
|
bytecode array length: 86
|
|
|
|
bytecodes: [
|
|
|
|
/* 30 E> */ B(StackCheck),
|
|
|
|
/* 42 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(37),
|
|
|
|
B(Star), R(0),
|
|
|
|
/* 52 S> */ B(CreateArrayLiteral), U8(1), U8(1), U8(37),
|
2018-09-05 07:50:48 +00:00
|
|
|
B(Star), R(2),
|
2018-08-21 10:05:08 +00:00
|
|
|
B(LdaConstant), U8(2),
|
2018-09-05 07:50:48 +00:00
|
|
|
/* 67 S> */ B(Star), R(1),
|
|
|
|
B(LdaNamedProperty), R(0), U8(3), U8(5),
|
2018-08-21 10:05:08 +00:00
|
|
|
B(Star), R(7),
|
2018-09-05 07:50:48 +00:00
|
|
|
B(CallProperty0), R(7), R(0), U8(7),
|
2018-08-21 10:05:08 +00:00
|
|
|
B(Mov), R(0), R(6),
|
|
|
|
B(JumpIfJSReceiver), U8(7),
|
|
|
|
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
|
|
|
|
B(Star), R(5),
|
2018-09-05 07:50:48 +00:00
|
|
|
B(LdaNamedProperty), R(5), U8(4), U8(9),
|
2018-08-21 10:05:08 +00:00
|
|
|
B(Star), R(4),
|
2018-09-05 07:50:48 +00:00
|
|
|
B(CallProperty0), R(4), R(5), U8(11),
|
2018-08-21 10:05:08 +00:00
|
|
|
B(Star), R(3),
|
|
|
|
B(JumpIfJSReceiver), U8(7),
|
|
|
|
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(3), U8(1),
|
2018-09-05 07:50:48 +00:00
|
|
|
B(LdaNamedProperty), R(3), U8(5), U8(13),
|
2018-08-21 10:05:08 +00:00
|
|
|
B(JumpIfToBooleanTrue), U8(21),
|
2018-09-05 07:50:48 +00:00
|
|
|
B(LdaNamedProperty), R(3), U8(6), U8(15),
|
2018-08-21 10:05:08 +00:00
|
|
|
B(Star), R(3),
|
2018-09-05 07:50:48 +00:00
|
|
|
B(StaInArrayLiteral), R(2), R(1), U8(3),
|
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(Ldar), R(1),
|
2018-09-05 07:50:48 +00:00
|
|
|
B(Inc), U8(2),
|
|
|
|
B(Star), R(1),
|
|
|
|
B(JumpLoop), U8(35), I8(0),
|
|
|
|
B(Ldar), R(2),
|
2018-08-21 10:05:08 +00:00
|
|
|
/* 71 S> */ B(Return),
|
|
|
|
]
|
|
|
|
constant pool: [
|
|
|
|
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
|
|
|
|
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
|
|
|
|
Smi [1],
|
|
|
|
SYMBOL_TYPE,
|
|
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
|
|
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
|
|
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
|
|
|
|
]
|
|
|
|
handlers: [
|
|
|
|
]
|
|
|
|
|
|
|
|
---
|
|
|
|
snippet: "
|
|
|
|
var a = [ 1, 2 ]; return [ ...a, 3 ];
|
|
|
|
"
|
2018-09-05 07:50:48 +00:00
|
|
|
frame size: 3
|
2018-08-21 10:05:08 +00:00
|
|
|
parameter count: 1
|
2018-09-05 07:50:48 +00:00
|
|
|
bytecode array length: 25
|
2018-08-21 10:05:08 +00:00
|
|
|
bytecodes: [
|
|
|
|
/* 30 E> */ B(StackCheck),
|
|
|
|
/* 42 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(37),
|
|
|
|
B(Star), R(0),
|
2018-09-05 07:50:48 +00:00
|
|
|
/* 52 S> */ B(CreateArrayFromIterable),
|
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(2),
|
2018-09-05 07:50:48 +00:00
|
|
|
B(LdaNamedProperty), R(2), U8(1), U8(1),
|
|
|
|
B(Star), R(1),
|
2018-08-21 10:05:08 +00:00
|
|
|
B(LdaSmi), I8(3),
|
2018-09-05 07:50:48 +00:00
|
|
|
B(StaInArrayLiteral), R(2), R(1), U8(3),
|
2018-08-21 10:05:08 +00:00
|
|
|
B(Ldar), R(2),
|
|
|
|
/* 71 S> */ B(Return),
|
|
|
|
]
|
|
|
|
constant pool: [
|
|
|
|
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
|
2018-09-05 07:50:48 +00:00
|
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["length"],
|
2018-08-21 10:05:08 +00:00
|
|
|
]
|
|
|
|
handlers: [
|
|
|
|
]
|
|
|
|
|