Files
sdk/pkg/vm/testcases/bytecode/asserts.dart.expect
T
Alexander Markov 68de477535 [vm/bytecode] Compact encoding of bytecode instructions (part 3/3)
Corresponding VM changes:
https://dart-review.googlesource.com/c/sdk/+/101062

On a large app, size of bytecode instructions:
Before: 12115384
After: 6282376 (-48.1%)

Total size of the app:
Before: 29790240
After: 23681504 (-20.5%)

Change-Id: Idd8f97e991236c25d663d1bcf18a51a53e73a2b7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/99400
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2019-05-08 17:33:15 +00:00

100 lines
2.3 KiB
Plaintext

main = #lib::main;
[@vm.bytecode=
ComponentBytecodeMetadata {
Bytecode (version: stable)
Main library: #lib
}
] [@vm.bytecode=
MembersBytecodeMetadata {
Members {
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 0
CheckStack 0
JumpIfNoAsserts L1
Push FP[-6]
DynamicCall CP#1, 1
AssertBoolean 0
JumpIfTrue L1
PushInt 0
PushInt 0
Push FP[-5]
DynamicCall CP#2, 1
DirectCall CP#3, 3
Drop1
L1:
PushNull
ReturnTOS
}
ConstantPool {
[0] = ObjectRef 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] = DirectCall 'dart:core::_AssertionError::_throwNew', ArgDesc num-args 3, num-type-args 0, names []
[4] = 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:() → dart.core::bool] condition.call(), [@vm.call-site-attributes.metadata=receiverType:() → dart.core::String] message.call());
}
static method main() → dynamic {}
}