1c0c5fda26
Moves the context chain search loop out of generated bytecode, and into the (Lda|Ldr|Sda)ContextSlot handler, by passing the context depth in as an additional operand. This should decrease the bytecode size and increase performance for deep context chain searches, at the cost of slightly increasing bytecode size for shallow context access. Review-Url: https://codereview.chromium.org/2336643002 Cr-Commit-Position: refs/heads/master@{#39378}
276 lines
6.0 KiB
Plaintext
276 lines
6.0 KiB
Plaintext
#
|
|
# Autogenerated by generate-bytecode-expectations.
|
|
#
|
|
|
|
---
|
|
execute: yes
|
|
wrap: yes
|
|
|
|
---
|
|
snippet: "
|
|
var a = 1; return ++a;
|
|
"
|
|
frame size: 1
|
|
parameter count: 1
|
|
bytecode array length: 10
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaSmi), U8(1),
|
|
B(Star), R(0),
|
|
/* 45 S> */ B(Inc), U8(1),
|
|
B(Star), R(0),
|
|
/* 57 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var a = 1; return a++;
|
|
"
|
|
frame size: 2
|
|
parameter count: 1
|
|
bytecode array length: 14
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaSmi), U8(1),
|
|
B(Star), R(0),
|
|
/* 45 S> */ B(ToNumber), R(1),
|
|
B(Inc), U8(1),
|
|
B(Star), R(0),
|
|
B(Ldar), R(1),
|
|
/* 57 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var a = 1; return --a;
|
|
"
|
|
frame size: 1
|
|
parameter count: 1
|
|
bytecode array length: 10
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaSmi), U8(1),
|
|
B(Star), R(0),
|
|
/* 45 S> */ B(Dec), U8(1),
|
|
B(Star), R(0),
|
|
/* 57 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var a = 1; return a--;
|
|
"
|
|
frame size: 2
|
|
parameter count: 1
|
|
bytecode array length: 14
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaSmi), U8(1),
|
|
B(Star), R(0),
|
|
/* 45 S> */ B(ToNumber), R(1),
|
|
B(Dec), U8(1),
|
|
B(Star), R(0),
|
|
B(Ldar), R(1),
|
|
/* 57 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var a = { val: 1 }; return a.val++;
|
|
"
|
|
frame size: 3
|
|
parameter count: 1
|
|
bytecode array length: 24
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1), R(1),
|
|
B(Mov), R(1), R(0),
|
|
/* 54 S> */ B(LdaNamedProperty), R(0), U8(1), U8(1),
|
|
B(ToNumber), R(2),
|
|
B(Inc), U8(5),
|
|
/* 66 E> */ B(StaNamedPropertySloppy), R(0), U8(1), U8(3),
|
|
B(Ldar), R(2),
|
|
/* 70 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
FIXED_ARRAY_TYPE,
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["val"],
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var a = { val: 1 }; return --a.val;
|
|
"
|
|
frame size: 2
|
|
parameter count: 1
|
|
bytecode array length: 20
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1), R(1),
|
|
B(Mov), R(1), R(0),
|
|
/* 54 S> */ B(LdaNamedProperty), R(0), U8(1), U8(1),
|
|
B(Dec), U8(5),
|
|
/* 65 E> */ B(StaNamedPropertySloppy), R(0), U8(1), U8(3),
|
|
/* 70 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
FIXED_ARRAY_TYPE,
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["val"],
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var name = 'var'; var a = { val: 1 }; return a[name]--;
|
|
"
|
|
frame size: 5
|
|
parameter count: 1
|
|
bytecode array length: 29
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 45 S> */ B(LdaConstant), U8(0),
|
|
B(Star), R(0),
|
|
/* 60 S> */ B(CreateObjectLiteral), U8(1), U8(0), U8(1), R(2),
|
|
B(Mov), R(2), R(1),
|
|
/* 72 S> */ B(Ldar), R(0),
|
|
/* 81 E> */ B(LdaKeyedProperty), R(1), U8(1),
|
|
B(ToNumber), R(4),
|
|
B(Dec), U8(5),
|
|
/* 86 E> */ B(StaKeyedPropertySloppy), R(1), R(0), U8(3),
|
|
B(Ldar), R(4),
|
|
/* 90 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["var"],
|
|
FIXED_ARRAY_TYPE,
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var name = 'var'; var a = { val: 1 }; return ++a[name];
|
|
"
|
|
frame size: 3
|
|
parameter count: 1
|
|
bytecode array length: 25
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 45 S> */ B(LdaConstant), U8(0),
|
|
B(Star), R(0),
|
|
/* 60 S> */ B(CreateObjectLiteral), U8(1), U8(0), U8(1), R(2),
|
|
B(Mov), R(2), R(1),
|
|
/* 72 S> */ B(Ldar), R(0),
|
|
/* 83 E> */ B(LdaKeyedProperty), R(1), U8(1),
|
|
B(Inc), U8(5),
|
|
/* 87 E> */ B(StaKeyedPropertySloppy), R(1), R(0), U8(3),
|
|
/* 90 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["var"],
|
|
FIXED_ARRAY_TYPE,
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var a = 1; var b = function() { return a }; return ++a;
|
|
"
|
|
frame size: 2
|
|
parameter count: 1
|
|
bytecode array length: 27
|
|
bytecodes: [
|
|
B(CreateFunctionContext), U8(1),
|
|
B(PushContext), R(1),
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaSmi), U8(1),
|
|
/* 42 E> */ B(StaContextSlot), R(context), U8(4), U8(0),
|
|
/* 53 S> */ B(CreateClosure), U8(0), U8(2),
|
|
B(Star), R(0),
|
|
/* 78 S> */ B(LdaContextSlot), R(context), U8(4), U8(0),
|
|
B(Inc), U8(1),
|
|
/* 87 E> */ B(StaContextSlot), R(context), U8(4), U8(0),
|
|
/* 90 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var a = 1; var b = function() { return a }; return a--;
|
|
"
|
|
frame size: 3
|
|
parameter count: 1
|
|
bytecode array length: 31
|
|
bytecodes: [
|
|
B(CreateFunctionContext), U8(1),
|
|
B(PushContext), R(1),
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaSmi), U8(1),
|
|
/* 42 E> */ B(StaContextSlot), R(context), U8(4), U8(0),
|
|
/* 53 S> */ B(CreateClosure), U8(0), U8(2),
|
|
B(Star), R(0),
|
|
/* 78 S> */ B(LdaContextSlot), R(context), U8(4), U8(0),
|
|
B(ToNumber), R(2),
|
|
B(Dec), U8(1),
|
|
/* 86 E> */ B(StaContextSlot), R(context), U8(4), U8(0),
|
|
B(Ldar), R(2),
|
|
/* 90 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var idx = 1; var a = [1, 2]; return a[idx++] = 2;
|
|
"
|
|
frame size: 4
|
|
parameter count: 1
|
|
bytecode array length: 26
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 44 S> */ B(LdaSmi), U8(1),
|
|
B(Star), R(0),
|
|
/* 55 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(1),
|
|
B(Star), R(1),
|
|
/* 63 S> */ B(Ldar), R(0),
|
|
B(ToNumber), R(3),
|
|
B(Inc), U8(1),
|
|
B(Star), R(0),
|
|
B(LdaSmi), U8(2),
|
|
/* 79 E> */ B(StaKeyedPropertySloppy), R(1), R(3), U8(2),
|
|
/* 84 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
FIXED_ARRAY_TYPE,
|
|
]
|
|
handlers: [
|
|
]
|
|
|