File tree Expand file tree Collapse file tree 1 file changed +18
-1
lines changed
graal-js/src/com.oracle.truffle.js/src/com/oracle/truffle/js/nodes/binary Expand file tree Collapse file tree 1 file changed +18
-1
lines changed Original file line number Diff line number Diff line change 5959import com .oracle .truffle .api .library .CachedLibrary ;
6060import com .oracle .truffle .api .object .DynamicObject ;
6161import com .oracle .truffle .api .profiles .BranchProfile ;
62+ import com .oracle .truffle .js .lang .JavaScriptLanguage ;
6263import com .oracle .truffle .js .nodes .JavaScriptNode ;
6364import com .oracle .truffle .js .nodes .access .JSConstantNode ;
6465import com .oracle .truffle .js .nodes .access .JSConstantNode .JSConstantStringNode ;
@@ -181,11 +182,27 @@ public InstrumentableNode materializeInstrumentableNodes(Set<Class<? extends Tag
181182 }
182183 }
183184
185+ private JavaScriptLanguage getLanguageSafe () {
186+ JavaScriptLanguage language = null ;
187+ try {
188+ language = getRootNode ().getLanguage (JavaScriptLanguage .class );
189+ if (language == null ) {
190+ language = getLanguage ();
191+ }
192+ } finally {
193+ return language ;
194+ }
195+ }
196+
184197 private Object [] parseMaterializationInfo () {
185198 String literal ;
186199 boolean identity ;
187200 boolean typeofAsLeftOperand ;
188- JSContext context = getLanguage ().getJSContext ();
201+ JavaScriptLanguage language = getLanguageSafe ();
202+ if (language == null ) {
203+ return null ;
204+ }
205+ JSContext context = language .getJSContext ();
189206 try {
190207 Expression expression = context .getEvaluator ().parseExpression (context , getSourceSection ().getCharacters ().toString ());
191208 if (expression instanceof BinaryNode ) {
You can’t perform that action at this time.
0 commit comments