v8/test/cctest/interpreter/bytecode_expectations/CreateArguments.golden
Victor Gomes c07c02e1c4 [runtime] Remove extension slots from context objects
Context objects have an extension slot, which contains further
additional data that depends on the type of the context.

This CL removes the extension slot from contexts that don't need
them, hence reducing memory.

The following contexts will still have an extension slot: native,
module, await, block and with contexts. See objects/contexts.h for
what the slot is used for.
The following contexts will not have an extension slot anymore (they
were not used before): script, catch and builtin contexts.
Eval and function contexts only have the extension slot if they
contain a sloppy eval.

Bug: v8:9744
Change-Id: I8ca56c22fa02437bbac392ea72174ebfca80e030
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1863191
Commit-Queue: Victor Gomes <victorgomes@google.com>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Auto-Submit: Victor Gomes <victorgomes@google.com>
Cr-Commit-Position: refs/heads/master@{#64372}
2019-10-18 09:39:09 +00:00

141 lines
2.6 KiB
Plaintext

#
# Autogenerated by generate-bytecode-expectations.
#
---
wrap: no
test function name: f
---
snippet: "
function f() { return arguments; }
f();
"
frame size: 1
parameter count: 1
bytecode array length: 5
bytecodes: [
B(CreateMappedArguments),
B(Star), R(0),
/* 10 E> */ B(StackCheck),
/* 32 S> */ B(Return),
]
constant pool: [
]
handlers: [
]
---
snippet: "
function f() { return arguments[0]; }
f();
"
frame size: 1
parameter count: 1
bytecode array length: 9
bytecodes: [
B(CreateMappedArguments),
B(Star), R(0),
/* 10 E> */ B(StackCheck),
/* 15 S> */ B(LdaZero),
/* 31 E> */ B(LdaKeyedProperty), R(0), U8(0),
/* 35 S> */ B(Return),
]
constant pool: [
]
handlers: [
]
---
snippet: "
function f() { 'use strict'; return arguments; }
f();
"
frame size: 1
parameter count: 1
bytecode array length: 5
bytecodes: [
B(CreateUnmappedArguments),
B(Star), R(0),
/* 10 E> */ B(StackCheck),
/* 46 S> */ B(Return),
]
constant pool: [
]
handlers: [
]
---
snippet: "
function f(a) { return arguments[0]; }
f();
"
frame size: 2
parameter count: 2
bytecode array length: 18
bytecodes: [
B(CreateFunctionContext), U8(0), U8(1),
B(PushContext), R(1),
B(Ldar), R(arg0),
B(StaCurrentContextSlot), U8(2),
B(CreateMappedArguments),
B(Star), R(0),
/* 10 E> */ B(StackCheck),
/* 16 S> */ B(LdaZero),
/* 32 E> */ B(LdaKeyedProperty), R(0), U8(0),
/* 36 S> */ B(Return),
]
constant pool: [
SCOPE_INFO_TYPE,
]
handlers: [
]
---
snippet: "
function f(a, b, c) { return arguments; }
f();
"
frame size: 2
parameter count: 4
bytecode array length: 22
bytecodes: [
B(CreateFunctionContext), U8(0), U8(3),
B(PushContext), R(1),
B(Ldar), R(arg0),
B(StaCurrentContextSlot), U8(4),
B(Ldar), R(arg1),
B(StaCurrentContextSlot), U8(3),
B(Ldar), R(arg2),
B(StaCurrentContextSlot), U8(2),
B(CreateMappedArguments),
B(Star), R(0),
/* 10 E> */ B(StackCheck),
/* 39 S> */ B(Return),
]
constant pool: [
SCOPE_INFO_TYPE,
]
handlers: [
]
---
snippet: "
function f(a, b, c) { 'use strict'; return arguments; }
f();
"
frame size: 1
parameter count: 4
bytecode array length: 5
bytecodes: [
B(CreateUnmappedArguments),
B(Star), R(0),
/* 10 E> */ B(StackCheck),
/* 53 S> */ B(Return),
]
constant pool: [
]
handlers: [
]