1
1
subject : " END block"
2
2
description : " END { ... }"
3
3
notes : >
4
- Is trasnalted into a `Truffle::KernelOperations.at_exit(false) { ... }` call.
4
+ Is translated into a `Truffle::KernelOperations.at_exit(false) { ... }` call.
5
+ yarp_specific : true # don't optimize reading KernelOperations constant
6
+ # with TruffleKernelOperationsModuleLiteralNode
5
7
focused_on_node : " org.truffleruby.language.control.OnceNode"
6
8
ruby : |
7
9
END {
@@ -11,7 +13,7 @@ ruby: |
11
13
ast : |
12
14
OnceNode
13
15
attributes:
14
- flags = 0
16
+ flags = 1
15
17
holder = org.truffleruby.language.control.OnceNode$Holder@...
16
18
children:
17
19
child =
56
58
callTargets = ProcCallTargets(callTargetForProc = block in <top (required)>, callTargetForLambda = null, altCallTargetCompiler = ...$$Lambda$.../0x...@...)
57
59
flags = 0
58
60
frameOnStackMarkerSlot = 2
59
- sharedMethodInfo = SharedMethodInfo(staticLexicalScope = :: Object, arity = Arity{preRequired = 0, optional = 0, hasRest = false, postRequired = 0, keywordArguments = [], requiredKeywordArgumentsCount = 0, hasKeywordsRest = false}, originName = block in <top (required)>, blockDepth = 1, parseName = block in <top (required)>, notes = <top (required)>, argumentDescriptors = [])
61
+ sharedMethodInfo = SharedMethodInfo(staticLexicalScope = :: Object, arity = Arity{preRequired = 0, optional = 0, hasRest = false, isImplicitRest = false, postRequired = 0, keywordArguments = [], requiredKeywordArgumentsCount = 0, hasKeywordsRest = false}, originName = block in <top (required)>, blockDepth = 1, parseName = block in <top (required)>, notes = <top (required)>, argumentDescriptors = [])
60
62
type = PROC
61
63
call targets:
62
64
RubyProcRootNode
70
72
redoProfile = false
71
73
retryProfile = false
72
74
returnID = org.truffleruby.language.control.ReturnID@...
73
- sharedMethodInfo = SharedMethodInfo(staticLexicalScope = :: Object, arity = Arity{preRequired = 0, optional = 0, hasRest = false, postRequired = 0, keywordArguments = [], requiredKeywordArgumentsCount = 0, hasKeywordsRest = false}, originName = block in <top (required)>, blockDepth = 1, parseName = block in <top (required)>, notes = <top (required)>, argumentDescriptors = [])
75
+ sharedMethodInfo = SharedMethodInfo(staticLexicalScope = :: Object, arity = Arity{preRequired = 0, optional = 0, hasRest = false, isImplicitRest = false, postRequired = 0, keywordArguments = [], requiredKeywordArgumentsCount = 0, hasKeywordsRest = false}, originName = block in <top (required)>, blockDepth = 1, parseName = block in <top (required)>, notes = <top (required)>, argumentDescriptors = [])
74
76
split = HEURISTIC
75
77
children:
76
78
body =
@@ -103,6 +105,16 @@ ast: |
103
105
value = 2
104
106
]
105
107
receiver =
106
- TruffleKernelOperationsModuleLiteralNode
108
+ ReadConstantWithLexicalScopeNode
107
109
attributes:
108
- flags = 0
110
+ flags = 0
111
+ lexicalScope = :: Object
112
+ name = "KernelOperations"
113
+ children:
114
+ getConstantNode =
115
+ GetConstantNodeGen
116
+ lookupConstantNode =
117
+ LookupConstantWithLexicalScopeNodeGen
118
+ attributes:
119
+ lexicalScope = :: Object
120
+ name = "KernelOperations"
0 commit comments