当前位置: 首页>>代码示例>>Java>>正文


Java Type.getDescriptor方法代码示例

本文整理汇总了Java中jdk.nashorn.internal.codegen.types.Type.getDescriptor方法的典型用法代码示例。如果您正苦于以下问题:Java Type.getDescriptor方法的具体用法?Java Type.getDescriptor怎么用?Java Type.getDescriptor使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在jdk.nashorn.internal.codegen.types.Type的用法示例。


在下文中一共展示了Type.getDescriptor方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: optimisticTypeToString

import jdk.nashorn.internal.codegen.types.Type; //导入方法依赖的package包/类
void optimisticTypeToString(final StringBuilder sb, final boolean optimistic) {
    sb.append('{');
    final Type type = getType();
    final String desc = type == Type.UNDEFINED ? "U" : type.getDescriptor();

    sb.append(desc.charAt(desc.length() - 1) == ';' ? "O" : desc);
    if (isOptimistic() && optimistic) {
        sb.append(OPT_IDENTIFIER);
        final int pp = ((Optimistic)this).getProgramPoint();
        if (UnwarrantedOptimismException.isValid(pp)) {
            sb.append('_').append(pp);
        }
    }
    sb.append('}');
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:16,代码来源:Expression.java

示例2: debug

import jdk.nashorn.internal.codegen.types.Type; //导入方法依赖的package包/类
private void debug(final int padConstant, final Object... args) {
    if (debug) {
        final StringBuilder sb = new StringBuilder();
        int pad;

        sb.append('#');
        sb.append(++linePrefix);

        pad = 5 - sb.length();
        while (pad > 0) {
            sb.append(' ');
            pad--;
        }

        if (isReachable() && !stack.isEmpty()) {
            sb.append("{");
            sb.append(stack.size());
            sb.append(":");
            for (int pos = 0; pos < stack.size(); pos++) {
                final Type t = stack.peek(pos);

                if (t == Type.SCOPE) {
                    sb.append("scope");
                } else if (t == Type.THIS) {
                    sb.append("this");
                } else if (t.isObject()) {
                    String desc = t.getDescriptor();
                    int i;
                    for (i = 0; desc.charAt(i) == '[' && i < desc.length(); i++) {
                        sb.append('[');
                    }
                    desc = desc.substring(i);
                    final int slash = desc.lastIndexOf('/');
                    if (slash != -1) {
                        desc = desc.substring(slash + 1, desc.length() - 1);
                    }
                    if ("Object".equals(desc)) {
                        sb.append('O');
                    } else {
                        sb.append(desc);
                    }
                } else {
                    sb.append(t.getDescriptor());
                }
                final int loadIndex = stack.localLoads[stack.sp - 1 - pos];
                if(loadIndex != Label.Stack.NON_LOAD) {
                    sb.append('(').append(loadIndex).append(')');
                }
                if (pos + 1 < stack.size()) {
                    sb.append(' ');
                }
            }
            sb.append('}');
            sb.append(' ');
        }

        pad = padConstant - sb.length();
        while (pad > 0) {
            sb.append(' ');
            pad--;
        }

        for (final Object arg : args) {
            sb.append(arg);
            sb.append(' ');
        }

        if (context.getEnv() != null) { //early bootstrap code doesn't have inited context yet
            log.info(sb);
            if (DEBUG_TRACE_LINE == linePrefix) {
                new Throwable().printStackTrace(log.getOutputStream());
            }
        }
    }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:76,代码来源:MethodEmitter.java


注:本文中的jdk.nashorn.internal.codegen.types.Type.getDescriptor方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。