Files
sdk/pkg/vm/testcases/bytecode/asserts.dart.expect
T
Jens Johansen feefcf0c94 [kernel/CFE] Simplified toString on (ast) nodes
This is a bare-bones implementation (and test) for having an explicit
toString on all `Node`s.
This can then be extended as-needed to better suit our debugging
purposes. It's not allowed to leak, though.

Change-Id: I8d3f5a9cd13b292ed7a6bf33762e507286f3fa7d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139805
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2020-03-23 10:25:23 +00:00

97 lines
2.2 KiB
Plaintext

main = #lib::main;
[@vm.bytecode=
BytecodeMetadata {
Bytecode (version: stable)
Main library: #lib
Library '#lib'
name '#lib'
script '#lib'
Class '', script = '#lib'
Function 'test1', static, reflectable, debuggable
parameters [dart:core::bool 'condition'] (required: 1)
return-type void
Bytecode {
Entry 0
CheckStack 0
JumpIfNoAsserts L1
Push FP[-5]
AssertBoolean 0
JumpIfTrue L1
PushInt 0
PushInt 0
PushNull
DirectCall CP#0, 3
Drop1
L1:
PushNull
ReturnTOS
}
ConstantPool {
[0] = DirectCall 'dart:core::_AssertionError::_throwNew', ArgDesc num-args 3, num-type-args 0, names []
[1] = Reserved
}
Function 'test2', static, reflectable, debuggable
parameters [FunctionType () -> dart:core::bool 'condition', FunctionType () -> dart:core::String 'message'] (required: 2)
return-type void
Bytecode {
Entry 1
CheckStack 0
JumpIfNoAsserts L1
Push FP[-6]
StoreLocal r0
Push r0
UncheckedClosureCall CP#0, 1
AssertBoolean 0
JumpIfTrue L1
PushInt 0
PushInt 0
Push FP[-5]
StoreLocal r0
Push r0
UncheckedClosureCall CP#0, 1
DirectCall CP#1, 3
Drop1
L1:
PushNull
ReturnTOS
}
ConstantPool {
[0] = ObjectRef ArgDesc num-args 1, num-type-args 0, names []
[1] = DirectCall 'dart:core::_AssertionError::_throwNew', ArgDesc num-args 3, num-type-args 0, names []
[2] = Reserved
}
Function 'main', static, reflectable, debuggable
parameters [] (required: 0)
return-type dynamic
Bytecode {
Entry 0
CheckStack 0
PushNull
ReturnTOS
}
ConstantPool {
}
}
]library #lib from "#lib" as #lib {
static method test1(dart.core::bool* condition) → void {
assert(condition);
}
static method test2(() →* dart.core::bool* condition, () →* dart.core::String* message) → void {
assert([@vm.call-site-attributes.metadata=receiverType:FunctionType()] condition.call(), [@vm.call-site-attributes.metadata=receiverType:FunctionType()] message.call());
}
static method main() → dynamic {}
}