src/jdk/nashorn/internal/runtime/RecompilableScriptFunctionData.java

Print this page




 275 
 276     @Override
 277     public boolean inDynamicContext() {
 278         return (flags & IN_DYNAMIC_CONTEXT) != 0;
 279     }
 280 
 281     private static String functionName(final FunctionNode fn) {
 282         if (fn.isAnonymous()) {
 283             return "";
 284         }
 285         final FunctionNode.Kind kind = fn.getKind();
 286         if (kind == FunctionNode.Kind.GETTER || kind == FunctionNode.Kind.SETTER) {
 287             final String name = NameCodec.decode(fn.getIdent().getName());
 288             return name.substring(GET_SET_PREFIX_LENGTH);
 289         }
 290         return fn.getIdent().getName();
 291     }
 292 
 293     private static long tokenFor(final FunctionNode fn) {
 294         final int  position  = Token.descPosition(fn.getFirstToken());
 295         final long lastToken = fn.getLastToken();
 296         // EOL uses length field to store the line number
 297         final int  length    = Token.descPosition(lastToken) - position + (Token.descType(lastToken) == TokenType.EOL ? 0 : Token.descLength(lastToken));
 298 
 299         return Token.toDesc(TokenType.FUNCTION, position, length);
 300     }
 301 
 302     private static int getFlags(final FunctionNode functionNode) {
 303         int flags = IS_CONSTRUCTOR;
 304         if (functionNode.isStrict()) {
 305             flags |= IS_STRICT;
 306         }
 307         if (functionNode.needsCallee()) {
 308             flags |= NEEDS_CALLEE;
 309         }
 310         if (functionNode.usesThis() || functionNode.hasEval()) {
 311             flags |= USES_THIS;
 312         }
 313         if (functionNode.isVarArg()) {
 314             flags |= IS_VARIABLE_ARITY;
 315         }




 275 
 276     @Override
 277     public boolean inDynamicContext() {
 278         return (flags & IN_DYNAMIC_CONTEXT) != 0;
 279     }
 280 
 281     private static String functionName(final FunctionNode fn) {
 282         if (fn.isAnonymous()) {
 283             return "";
 284         }
 285         final FunctionNode.Kind kind = fn.getKind();
 286         if (kind == FunctionNode.Kind.GETTER || kind == FunctionNode.Kind.SETTER) {
 287             final String name = NameCodec.decode(fn.getIdent().getName());
 288             return name.substring(GET_SET_PREFIX_LENGTH);
 289         }
 290         return fn.getIdent().getName();
 291     }
 292 
 293     private static long tokenFor(final FunctionNode fn) {
 294         final int  position  = Token.descPosition(fn.getFirstToken());
 295         final long lastToken = Token.withDelimiter(fn.getLastToken());
 296         // EOL uses length field to store the line number
 297         final int  length    = Token.descPosition(lastToken) - position + (Token.descType(lastToken) == TokenType.EOL ? 0 : Token.descLength(lastToken));
 298 
 299         return Token.toDesc(TokenType.FUNCTION, position, length);
 300     }
 301 
 302     private static int getFlags(final FunctionNode functionNode) {
 303         int flags = IS_CONSTRUCTOR;
 304         if (functionNode.isStrict()) {
 305             flags |= IS_STRICT;
 306         }
 307         if (functionNode.needsCallee()) {
 308             flags |= NEEDS_CALLEE;
 309         }
 310         if (functionNode.usesThis() || functionNode.hasEval()) {
 311             flags |= USES_THIS;
 312         }
 313         if (functionNode.isVarArg()) {
 314             flags |= IS_VARIABLE_ARITY;
 315         }