Mercurial > hg > truffle
diff graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLDefineFunctionBuiltin.java @ 13882:afd6fa5e8229
SL: Feedback from reviewers
author | Christian Wimmer <christian.wimmer@oracle.com> |
---|---|
date | Wed, 05 Feb 2014 08:02:15 -0800 |
parents | b16ec83edc73 |
children | 89ac75425681 |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLDefineFunctionBuiltin.java Wed Feb 05 15:50:36 2014 +0100 +++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLDefineFunctionBuiltin.java Wed Feb 05 08:02:15 2014 -0800 @@ -22,10 +22,12 @@ */ package com.oracle.truffle.sl.builtins; +import com.oracle.truffle.api.CompilerDirectives.SlowPath; import com.oracle.truffle.api.*; import com.oracle.truffle.api.dsl.*; import com.oracle.truffle.api.nodes.*; import com.oracle.truffle.sl.parser.*; +import com.oracle.truffle.sl.runtime.*; /** * Builtin function to define (or redefine) functions. The provided source code is parsed the same @@ -36,9 +38,14 @@ @Specialization public String defineFunction(String code) { - Source source = getContext().getSourceManager().get("[defineFunction]", code); + return doDefineFunction(getContext(), code); + } + + @SlowPath + private static String doDefineFunction(SLContext context, String code) { + Source source = context.getSourceManager().get("[defineFunction]", code); /* The same parsing code as for parsing the initial source. */ - Parser.parseSL(getContext(), source); + Parser.parseSL(context, source); return code; } }