blob: a71a37a70d52c111433eb062a31abe1cdd50651d [file] [log] [blame]
main = #lib::main;
[@vm.bytecode=
ComponentBytecodeMetadata {
Bytecode (version: stable)
Main library: #lib
}
] [@vm.bytecode=
MembersBytecodeMetadata {
Members {
Field '_stdinFD', type = dart:core::int, reflectable, static
value = const 0
Field '_stdoutFD', type = dart:core::int, reflectable, static
value = const 1
Field '_stderrFD', type = dart:core::int, reflectable, static
value = const 2
Field '_rawScript', type = dart:core::String, reflectable, static
value = null
Field '_stdin', type = #lib::Stdin, reflectable, static
value = null
Function '_printString', static, reflectable, debuggable, native 'Builtin_PrintString'
parameters [dart:core::String 's'] (required: 1)
return-type void
Bytecode {
Entry 0
CheckStack 0
Push FP[-5]
NativeCall CP#0
ReturnTOS
}
ConstantPool {
[0] = NativeEntry Builtin_PrintString
}
Function '_print', static, reflectable, debuggable
parameters [dynamic 'arg'] (required: 1)
return-type void
Bytecode {
Entry 0
CheckStack 0
Push FP[-5]
InterfaceCall 1, CP#0
DirectCall 1, CP#2
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = InterfaceCall 'dart:core::Object::toString', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
[2] = DirectCall '#lib::_printString', ArgDesc num-args 1, num-type-args 0, names []
[3] = Reserved
}
Function '_getPrintClosure', static, reflectable, debuggable
parameters [] (required: 0)
return-type dynamic
Bytecode {
Entry 0
CheckStack 0
PushConstant CP#0
ReturnTOS
}
ConstantPool {
[0] = ObjectRef const tear-off #lib::_print
}
Function '_setScheduleImmediateClosure', static, reflectable, debuggable
parameters [FunctionType (FunctionType () -> void) -> void 'closure'] (required: 1)
return-type void
Bytecode {
Entry 1
CheckStack 0
Push FP[-5]
StoreStaticTOS CP#0
PushNull
ReturnTOS
}
ConstantPool {
[0] = StaticField #lib::_ScheduleImmediate::_closure (field)
}
Function '_setStdioFDs', static, reflectable, debuggable
parameters [dart:core::int 'stdin', dart:core::int 'stdout', dart:core::int 'stderr'] (required: 3)
return-type void
Bytecode {
Entry 1
CheckStack 0
Push FP[-7]
StoreStaticTOS CP#0
Push FP[-6]
StoreStaticTOS CP#1
Push FP[-5]
StoreStaticTOS CP#2
PushNull
ReturnTOS
}
ConstantPool {
[0] = StaticField #lib::_stdinFD (field)
[1] = StaticField #lib::_stdoutFD (field)
[2] = StaticField #lib::_stderrFD (field)
}
Function '_scriptUri', static, reflectable, debuggable
parameters [] (required: 0)
return-type dart:core::Uri
Bytecode {
Entry 2
CheckStack 0
PushConstant CP#0
PushStatic CP#0
PushConstant CP#1
InterfaceCall 2, CP#2
AssertBoolean 0
JumpIfTrue L1
PushConstant CP#0
PushStatic CP#0
PushConstant CP#4
InterfaceCall 2, CP#2
AssertBoolean 0
PopLocal r1
Jump L2
L1:
PushTrue
PopLocal r1
L2:
Push r1
JumpIfTrue L3
PushConstant CP#0
PushStatic CP#0
PushConstant CP#5
InterfaceCall 2, CP#2
AssertBoolean 0
PopLocal r0
Jump L4
L3:
PushTrue
PopLocal r0
L4:
Push r0
JumpIfFalse L5
PushConstant CP#0
PushStatic CP#0
DirectCall 1, CP#6
ReturnTOS
L5:
DirectCall 0, CP#8
PushNull
PushConstant CP#0
PushStatic CP#0
DirectCall 2, CP#10
InterfaceCall 2, CP#12
ReturnTOS
}
ConstantPool {
[0] = StaticField #lib::_rawScript (field)
[1] = ObjectRef 'http:'
[2] = InterfaceCall 'dart:core::String::startsWith', ArgDesc num-args 2, num-type-args 0, names []
[3] = Reserved
[4] = ObjectRef 'https:'
[5] = ObjectRef 'file:'
[6] = DirectCall 'dart:core::Uri::parse', ArgDesc num-args 1, num-type-args 0, names []
[7] = Reserved
[8] = DirectCall 'dart:core::Uri::get:base', ArgDesc num-args 0, num-type-args 0, names []
[9] = Reserved
[10] = DirectCall 'dart:core::_Uri::file (constructor)', ArgDesc num-args 2, num-type-args 0, names []
[11] = Reserved
[12] = InterfaceCall 'dart:core::Uri::resolveUri', ArgDesc num-args 2, num-type-args 0, names []
[13] = Reserved
}
Function '_setupHooks', static, reflectable, debuggable
parameters [] (required: 0)
return-type dynamic
Bytecode {
Entry 1
CheckStack 0
PushConstant CP#0
DirectCall 1, CP#1
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = ObjectRef const tear-off #lib::_scriptUri
[1] = DirectCall '#lib::VMLibraryHooks::set:platformScript', ArgDesc num-args 1, num-type-args 0, names []
[2] = Reserved
}
Function 'get:stdin', getter, static, reflectable, debuggable
parameters [] (required: 0)
return-type #lib::Stdin
Bytecode {
Entry 2
CheckStack 0
PushConstant CP#0
PushStatic CP#0
EqualsNull
JumpIfFalse L1
PushConstant CP#1
PushStatic CP#1
DirectCall 1, CP#2
StoreLocal r1
Push r1
StoreStaticTOS CP#0
PopLocal r0
Jump L2
L1:
PushNull
PopLocal r0
L2:
Push r0
Drop1
PushConstant CP#0
PushStatic CP#0
ReturnTOS
}
ConstantPool {
[0] = StaticField #lib::_stdin (field)
[1] = StaticField #lib::_stdinFD (field)
[2] = DirectCall '#lib::_StdIOUtils::_getStdioInputStream', ArgDesc num-args 1, num-type-args 0, names []
[3] = 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 {
typedef _ScheduleImmediateClosure = (() void) void;
[@vm.bytecode=
MembersBytecodeMetadata {
Members {
Field '_closure', type = FunctionType (FunctionType () -> void) -> void, reflectable, static
value = null
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::_ScheduleImmediate
Bytecode {
Entry 0
CheckStack 0
Push FP[-5]
DirectCall 1, CP#0
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = DirectCall 'dart:core::Object:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
}
}
}
] class _ScheduleImmediate extends dart.core::Object {
static field (() void) void _closure = null;
synthetic constructor •() #lib::_ScheduleImmediate
: super dart.core::Object::•()
;
}
[@vm.bytecode=
MembersBytecodeMetadata {
Members {
Field '_cachedNamespace', type = #lib::_NamespaceImpl, reflectable, static
value = null
Function '_', constructor, reflectable, debuggable
parameters [] (required: 0)
return-type #lib::_NamespaceImpl
Bytecode {
Entry 0
CheckStack 0
Push FP[-5]
DirectCall 1, CP#0
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = DirectCall 'dart:core::Object:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
}
Function '_create', static, reflectable, debuggable, native 'Namespace_Create'
parameters [#lib::_NamespaceImpl 'namespace', dynamic 'n'] (required: 2)
return-type #lib::_NamespaceImpl
Bytecode {
Entry 0
CheckStack 0
Push FP[-6]
Push FP[-5]
NativeCall CP#0
ReturnTOS
}
ConstantPool {
[0] = NativeEntry Namespace_Create
}
Function '_getPointer', static, reflectable, debuggable, native 'Namespace_GetPointer'
parameters [#lib::_NamespaceImpl 'namespace'] (required: 1)
return-type dart:core::int
Bytecode {
Entry 0
CheckStack 0
Push FP[-5]
NativeCall CP#0
ReturnTOS
}
ConstantPool {
[0] = NativeEntry Namespace_GetPointer
}
Function '_getDefault', static, reflectable, debuggable, native 'Namespace_GetDefault'
parameters [] (required: 0)
return-type dart:core::int
Bytecode {
Entry 0
CheckStack 0
NativeCall CP#0
ReturnTOS
}
ConstantPool {
[0] = NativeEntry Namespace_GetDefault
}
Function '_setupNamespace', static, reflectable, debuggable
parameters [dynamic 'namespace'] (required: 1)
return-type void
Bytecode {
Entry 2
CheckStack 0
Allocate CP#0
StoreLocal r1
Push r1
DirectCall 1, CP#1
Drop1
Push FP[-5]
DirectCall 2, CP#3
StoreStaticTOS CP#5
PushNull
ReturnTOS
}
ConstantPool {
[0] = Class #lib::_NamespaceImpl
[1] = DirectCall '#lib::_NamespaceImpl::_ (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[2] = Reserved
[3] = DirectCall '#lib::_NamespaceImpl::_create', ArgDesc num-args 2, num-type-args 0, names []
[4] = Reserved
[5] = StaticField #lib::_NamespaceImpl::_cachedNamespace (field)
}
Function 'get:_namespace', getter, static, reflectable, debuggable
parameters [] (required: 0)
return-type #lib::_NamespaceImpl
Bytecode {
Entry 2
CheckStack 0
PushConstant CP#0
PushStatic CP#0
EqualsNull
JumpIfFalse L1
Allocate CP#1
StoreLocal r1
Push r1
DirectCall 1, CP#2
Drop1
DirectCall 0, CP#4
DirectCall 2, CP#6
StoreStaticTOS CP#0
L1:
PushConstant CP#0
PushStatic CP#0
ReturnTOS
}
ConstantPool {
[0] = StaticField #lib::_NamespaceImpl::_cachedNamespace (field)
[1] = Class #lib::_NamespaceImpl
[2] = DirectCall '#lib::_NamespaceImpl::_ (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[3] = Reserved
[4] = DirectCall '#lib::_NamespaceImpl::_getDefault', ArgDesc num-args 0, num-type-args 0, names []
[5] = Reserved
[6] = DirectCall '#lib::_NamespaceImpl::_create', ArgDesc num-args 2, num-type-args 0, names []
[7] = Reserved
}
Function 'get:_namespacePointer', getter, static, reflectable, debuggable
parameters [] (required: 0)
return-type dart:core::int
Bytecode {
Entry 0
CheckStack 0
DirectCall 0, CP#0
DirectCall 1, CP#2
ReturnTOS
}
ConstantPool {
[0] = DirectCall '#lib::_NamespaceImpl::get:_namespace', ArgDesc num-args 0, num-type-args 0, names []
[1] = Reserved
[2] = DirectCall '#lib::_NamespaceImpl::_getPointer', ArgDesc num-args 1, num-type-args 0, names []
[3] = Reserved
}
}
}
] class _NamespaceImpl extends dart.core::Object implements #lib::_Namespace {
static field #lib::_NamespaceImpl _cachedNamespace = null;
constructor _() #lib::_NamespaceImpl
: super dart.core::Object::•()
;
@dart._internal::ExternalName::•("Namespace_Create")
external static method _create(#lib::_NamespaceImpl namespace, dynamic n) #lib::_NamespaceImpl;
@dart._internal::ExternalName::•("Namespace_GetPointer")
external static method _getPointer(#lib::_NamespaceImpl namespace) dart.core::int;
@dart._internal::ExternalName::•("Namespace_GetDefault")
external static method _getDefault() dart.core::int;
static method _setupNamespace(dynamic namespace) void {
#lib::_NamespaceImpl::_cachedNamespace = #lib::_NamespaceImpl::_create(new #lib::_NamespaceImpl::_(), namespace);
}
static get _namespace() #lib::_NamespaceImpl {
if(#lib::_NamespaceImpl::_cachedNamespace.{dart.core::Object::==}(null)) {
#lib::_NamespaceImpl::_cachedNamespace = #lib::_NamespaceImpl::_create(new #lib::_NamespaceImpl::_(), #lib::_NamespaceImpl::_getDefault());
}
return #lib::_NamespaceImpl::_cachedNamespace;
}
static get _namespacePointer() dart.core::int
return #lib::_NamespaceImpl::_getPointer(#lib::_NamespaceImpl::_namespace);
}
[@vm.bytecode=
MembersBytecodeMetadata {
Members {
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::_Namespace
Bytecode {
Entry 0
CheckStack 0
Push FP[-5]
DirectCall 1, CP#0
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = DirectCall 'dart:core::Object:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
}
Function '_setupNamespace', static, reflectable, debuggable
parameters [dynamic 'namespace'] (required: 1)
return-type void
Bytecode {
Entry 0
CheckStack 0
Push FP[-5]
DirectCall 1, CP#0
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = DirectCall '#lib::_NamespaceImpl::_setupNamespace', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
}
Function 'get:_namespace', getter, static, reflectable, debuggable
parameters [] (required: 0)
return-type #lib::_Namespace
Bytecode {
Entry 0
CheckStack 0
DirectCall 0, CP#0
ReturnTOS
}
ConstantPool {
[0] = DirectCall '#lib::_NamespaceImpl::get:_namespace', ArgDesc num-args 0, num-type-args 0, names []
[1] = Reserved
}
Function 'get:_namespacePointer', getter, static, reflectable, debuggable
parameters [] (required: 0)
return-type dart:core::int
Bytecode {
Entry 0
CheckStack 0
DirectCall 0, CP#0
ReturnTOS
}
ConstantPool {
[0] = DirectCall '#lib::_NamespaceImpl::get:_namespacePointer', ArgDesc num-args 0, num-type-args 0, names []
[1] = Reserved
}
}
}
] class _Namespace extends dart.core::Object {
synthetic constructor •() #lib::_Namespace
: super dart.core::Object::•()
;
static method _setupNamespace(dynamic namespace) void {
#lib::_NamespaceImpl::_setupNamespace(namespace);
}
static get _namespace() #lib::_Namespace
return #lib::_NamespaceImpl::_namespace;
static get _namespacePointer() dart.core::int
return #lib::_NamespaceImpl::_namespacePointer;
}
[@vm.bytecode=
MembersBytecodeMetadata {
Members {
Field 'timerFactory', type = dynamic, reflectable, static
value = null
Field 'eventHandlerSendData', type = dynamic, reflectable, static
value = null
Field 'timerMillisecondClock', type = dynamic, reflectable, static
value = null
Field 'resourceReadAsBytes', type = dynamic, reflectable, static
value = null
Field 'packageRootString', type = dynamic, reflectable, static
value = null
Field 'packageConfigString', type = dynamic, reflectable, static
value = null
Field 'packageRootUriFuture', type = dynamic, reflectable, static
value = null
Field 'packageConfigUriFuture', type = dynamic, reflectable, static
value = null
Field 'resolvePackageUriFuture', type = dynamic, reflectable, static
value = null
Field '_computeScriptUri', type = dynamic, reflectable, static
value = null
Field '_cachedScript', type = dynamic, reflectable, static
value = null
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::VMLibraryHooks
Bytecode {
Entry 0
CheckStack 0
Push FP[-5]
DirectCall 1, CP#0
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = DirectCall 'dart:core::Object:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
}
Function 'set:platformScript', setter, static, reflectable, debuggable
parameters [dynamic 'f'] (required: 1)
return-type void
Bytecode {
Entry 1
CheckStack 0
Push FP[-5]
StoreStaticTOS CP#0
PushNull
StoreStaticTOS CP#1
PushNull
ReturnTOS
}
ConstantPool {
[0] = StaticField #lib::VMLibraryHooks::_computeScriptUri (field)
[1] = StaticField #lib::VMLibraryHooks::_cachedScript (field)
}
Function 'get:platformScript', getter, static, reflectable, debuggable
parameters [] (required: 0)
return-type dynamic
Bytecode {
Entry 1
CheckStack 0
PushConstant CP#0
PushStatic CP#0
EqualsNull
JumpIfFalse L1
PushConstant CP#1
PushStatic CP#1
EqualsNull
BooleanNegateTOS
PopLocal r0
Jump L2
L1:
PushFalse
PopLocal r0
L2:
Push r0
JumpIfFalse L3
PushConstant CP#1
PushStatic CP#1
DynamicCall 1, CP#3
StoreStaticTOS CP#0
L3:
PushConstant CP#0
PushStatic CP#0
ReturnTOS
}
ConstantPool {
[0] = StaticField #lib::VMLibraryHooks::_cachedScript (field)
[1] = StaticField #lib::VMLibraryHooks::_computeScriptUri (field)
[2] = ObjectRef ArgDesc num-args 1, num-type-args 0, names []
[3] = ICData dynamic target-name 'call', arg-desc CP#2
}
}
}
] class VMLibraryHooks extends dart.core::Object {
static field dynamic timerFactory = null;
static field dynamic eventHandlerSendData = null;
static field dynamic timerMillisecondClock = null;
static field dynamic resourceReadAsBytes = null;
static field dynamic packageRootString = null;
static field dynamic packageConfigString = null;
static field dynamic packageRootUriFuture = null;
static field dynamic packageConfigUriFuture = null;
static field dynamic resolvePackageUriFuture = null;
static field dynamic _computeScriptUri = null;
static field dynamic _cachedScript = null;
synthetic constructor •() #lib::VMLibraryHooks
: super dart.core::Object::•()
;
static set platformScript(dynamic f) void {
#lib::VMLibraryHooks::_computeScriptUri = f;
#lib::VMLibraryHooks::_cachedScript = null;
}
static get platformScript() dynamic {
if(#lib::VMLibraryHooks::_cachedScript.{dart.core::Object::==}(null) && !#lib::VMLibraryHooks::_computeScriptUri.{dart.core::Object::==}(null)) {
#lib::VMLibraryHooks::_cachedScript = [@vm.call-site-attributes.metadata=receiverType:dynamic] #lib::VMLibraryHooks::_computeScriptUri.call();
}
return #lib::VMLibraryHooks::_cachedScript;
}
}
[@vm.bytecode=
MembersBytecodeMetadata {
Members {
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::Stdin
Bytecode {
Entry 0
CheckStack 0
Push FP[-5]
DirectCall 1, CP#0
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = DirectCall 'dart:core::Object:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
}
}
}
] class Stdin extends dart.core::Object {
synthetic constructor •() #lib::Stdin
: super dart.core::Object::•()
;
}
[@vm.bytecode=
MembersBytecodeMetadata {
Members {
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::_StdIOUtils
Bytecode {
Entry 0
CheckStack 0
Push FP[-5]
DirectCall 1, CP#0
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = DirectCall 'dart:core::Object:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
}
Function '_getStdioInputStream', static, reflectable, debuggable
parameters [dart:core::int 'fd'] (required: 1)
return-type #lib::Stdin
Bytecode {
Entry 0
CheckStack 0
PushNull
ReturnTOS
}
ConstantPool {
}
}
}
] class _StdIOUtils extends dart.core::Object {
synthetic constructor •() #lib::_StdIOUtils
: super dart.core::Object::•()
;
static method _getStdioInputStream(dart.core::int fd) #lib::Stdin
return null;
}
static field dart.core::int _stdinFD = 0;
static field dart.core::int _stdoutFD = 1;
static field dart.core::int _stderrFD = 2;
static field dart.core::String _rawScript;
static field #lib::Stdin _stdin;
@dart._internal::ExternalName::•("Builtin_PrintString")
external static method _printString(dart.core::String s) void;
static method _print(dynamic arg) void {
#lib::_printString(arg.{dart.core::Object::toString}());
}
static method _getPrintClosure() dynamic
return #lib::_print;
static method _setScheduleImmediateClosure((() void) void closure) void {
#lib::_ScheduleImmediate::_closure = closure;
}
static method _setStdioFDs(dart.core::int stdin, dart.core::int stdout, dart.core::int stderr) void {
#lib::_stdinFD = stdin;
#lib::_stdoutFD = stdout;
#lib::_stderrFD = stderr;
}
static method _scriptUri() dart.core::Uri {
if(#lib::_rawScript.{dart.core::String::startsWith}("http:") || #lib::_rawScript.{dart.core::String::startsWith}("https:") || #lib::_rawScript.{dart.core::String::startsWith}("file:")) {
return dart.core::Uri::parse(#lib::_rawScript);
}
else {
return dart.core::Uri::base.{dart.core::Uri::resolveUri}(dart.core::_Uri::file(#lib::_rawScript));
}
}
static method _setupHooks() dynamic {
#lib::VMLibraryHooks::platformScript = #lib::_scriptUri;
}
static get stdin() #lib::Stdin {
#lib::_stdin.{dart.core::Object::==}(null) ?{#lib::Stdin} #lib::_stdin = #lib::_StdIOUtils::_getStdioInputStream(#lib::_stdinFD) : null;
return #lib::_stdin;
}
static method main() dynamic {}
}