Files
sdk/pkg/vm/testcases/bytecode/asserts.dart.expect
T
Alexander Markov 76091c13db [vm/bytecode] Add PushNull, PushTrue, PushFalse and PushInt bytecodes
These bytecode instructions are added in order to shrink constant pools
and reduce time spent for reading constant pool entries.

Change-Id: I8522f73dc7a6236969ac0422c6cb89b945559b2d
Reviewed-on: https://dart-review.googlesource.com/75125
Reviewed-by: Zach Anderson <zra@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2018-09-15 17:55:46 +00:00

74 lines
1.8 KiB
Plaintext

library #lib;
import self as self;
import "dart:core" as core;
[@vm.bytecode=
Bytecode {
Entry 0
CheckStack
JumpIfNoAsserts L1
Push FP[-5]
AssertBoolean 0
PushTrue
IfEqStrictTOS
Jump L1
PushInt 0
PushInt 0
PushNull
PushConstant CP#1
IndirectStaticCall 3, CP#0
Drop1
L1:
PushNull
ReturnTOS
}
ConstantPool {
[0] = ArgDesc num-args 3, num-type-args 0, names []
[1] = StaticICData target 'dart.core::_AssertionError::_throwNew', arg-desc CP#0
}
]static method test1(core::bool condition) → void {
assert(condition);
}
[@vm.bytecode=
Bytecode {
Entry 0
CheckStack
JumpIfNoAsserts L1
Push FP[-6]
InstanceCall 1, CP#1
AssertBoolean 0
PushTrue
IfEqStrictTOS
Jump L1
PushInt 0
PushInt 0
Push FP[-5]
InstanceCall 1, CP#2
PushConstant CP#4
IndirectStaticCall 3, CP#3
Drop1
L1:
PushNull
ReturnTOS
}
ConstantPool {
[0] = ArgDesc num-args 1, num-type-args 0, names []
[1] = ICData dynamic target-name 'call', arg-desc CP#0
[2] = ICData dynamic target-name 'call', arg-desc CP#0
[3] = ArgDesc num-args 3, num-type-args 0, names []
[4] = StaticICData target 'dart.core::_AssertionError::_throwNew', arg-desc CP#3
}
]static method test2(() → core::bool condition, () → core::String message) → void {
assert([@vm.call-site-attributes.metadata=receiverType:() → dart.core::bool] condition.call(), [@vm.call-site-attributes.metadata=receiverType:() → dart.core::String] message.call());
}
[@vm.bytecode=
Bytecode {
Entry 0
CheckStack
PushNull
ReturnTOS
}
ConstantPool {
}
]static method main() → dynamic {}