亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? dim.java

?? 主要的怎么樣結(jié)合java 和 javascript!
?? JAVA
?? 第 1 頁 / 共 3 頁
字號(hào):
/* -*- Mode: java; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- * * The contents of this file are subject to the Netscape Public * License Version 1.1 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.mozilla.org/NPL/ * * Software distributed under the License is distributed on an "AS * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or * implied. See the License for the specific language governing * rights and limitations under the License. * * The Original Code is Rhino JavaScript Debugger code, released * November 21, 2000. * * The Initial Developer of the Original Code is SeeBeyond Corporation. * Portions created by SeeBeyond are * Copyright (C) 2000 SeeBeyond Technology Corporation. All * Rights Reserved. * * Contributor(s): * Igor Bukanov * Matt Gould * Christopher Oliver * * Alternatively, the contents of this file may be used under the * terms of the GNU Public License (the "GPL"), in which case the * provisions of the GPL are applicable instead of those above. * If you wish to allow use of your version of this file only * under the terms of the GPL and not to allow others to use your * version of this file under the NPL, indicate your decision by * deleting the provisions above and replace them with the notice * and other provisions required by the GPL.  If you do not delete * the provisions above, a recipient may use your version of this * file under either the NPL or the GPL. */package org.mozilla.javascript.tools.debugger;import org.mozilla.javascript.*;import org.mozilla.javascript.debug.*;import java.util.*;import java.io.*;import java.net.URL;/** * Dim or Debugger Implementation for Rhino.*/class Dim {    static final int STEP_OVER = 0;    static final int STEP_INTO = 1;    static final int STEP_OUT = 2;    static final int GO = 3;    static final int BREAK = 4;    static final int EXIT = 5;    GuiCallback callback;    boolean breakFlag = false;    ScopeProvider scopeProvider;    int frameIndex = -1;    private volatile ContextData interruptedContextData = null;    ContextFactory contextFactory;    private Object monitor = new Object();    private Object eventThreadMonitor = new Object();    private volatile int returnValue = -1;    private boolean insideInterruptLoop;    private String evalRequest;    private StackFrame evalFrame;    private String evalResult;    boolean breakOnExceptions;    boolean breakOnEnter;    boolean breakOnReturn;    private final Hashtable urlToSourceInfo = new Hashtable();    private final Hashtable functionNames = new Hashtable();    private final Hashtable functionToSource = new Hashtable();    static class ContextData    {        static ContextData get(Context cx) {            return (ContextData)cx.getDebuggerContextData();        }        int frameCount() {            return frameStack.size();        }        StackFrame getFrame(int frameNumber) {            return (StackFrame) frameStack.get(frameStack.size() - frameNumber - 1);        }        void pushFrame(StackFrame frame) {            frameStack.push(frame);        }        void popFrame() {            frameStack.pop();        }        ObjArray frameStack = new ObjArray();        boolean breakNextLine;        int stopAtFrameDepth = -1;        boolean eventThreadFlag;        Throwable lastProcessedException;    }    static class StackFrame implements DebugFrame {        StackFrame(Context cx, Dim dim, FunctionSource fsource)        {            this.dim = dim;            this.contextData = ContextData.get(cx);            this.fsource = fsource;            this.breakpoints = fsource.sourceInfo().breakpoints;            this.lineNumber = fsource.firstLine();        }        public void onEnter(Context cx, Scriptable scope,                            Scriptable thisObj, Object[] args)        {            contextData.pushFrame(this);            this.scope = scope;            this.thisObj = thisObj;            if (dim.breakOnEnter) {                dim.handleBreakpointHit(this, cx);            }        }        public void onLineChange(Context cx, int lineno)        {            this.lineNumber = lineno;            if (!breakpoints[lineno] && !dim.breakFlag) {                boolean lineBreak = contextData.breakNextLine;                if (lineBreak && contextData.stopAtFrameDepth >= 0) {                    lineBreak = (contextData.frameCount()                                 <= contextData.stopAtFrameDepth);                }                if (!lineBreak) {                    return;                }                contextData.stopAtFrameDepth = -1;                contextData.breakNextLine = false;            }            dim.handleBreakpointHit(this, cx);        }        public void onExceptionThrown(Context cx, Throwable exception)        {            dim.handleExceptionThrown(cx, exception, this);        }        public void onExit(Context cx, boolean byThrow, Object resultOrException)        {            if (dim.breakOnReturn && !byThrow) {                dim.handleBreakpointHit(this, cx);            }            contextData.popFrame();        }        SourceInfo sourceInfo() {            return fsource.sourceInfo();        }        ContextData contextData()        {            return contextData;        }        Object scope()        {            return scope;        }        Object thisObj()        {            return thisObj;        }        String getUrl()        {            return fsource.sourceInfo().url();        }        int getLineNumber() {            return lineNumber;        }        private Dim dim;        private ContextData contextData;        private Scriptable scope;        private Scriptable thisObj;        private FunctionSource fsource;        private boolean[] breakpoints;        private int lineNumber;    }    static class FunctionSource    {        private SourceInfo sourceInfo;        private int firstLine;        private String name;        FunctionSource(SourceInfo sourceInfo, int firstLine, String name)        {            if (name == null) throw new IllegalArgumentException();            this.sourceInfo = sourceInfo;            this.firstLine = firstLine;            this.name = name;        }        SourceInfo sourceInfo()        {            return sourceInfo;        }        int firstLine()        {            return firstLine;        }        String name()        {            return name;        }    }    static class SourceInfo    {        private String source;        private String url;        private int minLine;        private boolean[] breakableLines;        boolean[] breakpoints;        private static final boolean[] EMPTY_BOOLEAN_ARRAY = new boolean[0];        private FunctionSource[] functionSources;        SourceInfo(String source, DebuggableScript[] functions,                   String normilizedUrl)        {            this.source = source;            this.url = normilizedUrl;            int N = functions.length;            int[][] lineArrays = new int[N][];            for (int i = 0; i != N; ++i) {                lineArrays[i] = functions[i].getLineNumbers();            }            int minAll = 0, maxAll = -1;            int[] firstLines = new int[N];            for (int i = 0; i != N; ++i) {                int[] lines = lineArrays[i];                if (lines == null || lines.length == 0) {                    firstLines[i] = -1;                } else {                    int min, max;                    min = max = lines[0];                    for (int j = 1; j != lines.length; ++j) {                        int line = lines[j];                        if (line < min) {                            min = line;                        } else if (line > max) {                            max = line;                        }                    }                    firstLines[i] = min;                    if (minAll > maxAll) {                        minAll = min;                        maxAll = max;                    } else {                        if (min < minAll) {                            minAll = min;                        }                        if (max > maxAll) {                            maxAll = max;                        }                    }                }            }            if (minAll > maxAll) {                // No line information                this.minLine = -1;                this.breakableLines = EMPTY_BOOLEAN_ARRAY;                this.breakpoints = EMPTY_BOOLEAN_ARRAY;            } else {                if (minAll < 0) {                    // Line numbers can not be negative                    throw new IllegalStateException(String.valueOf(minAll));                }                this.minLine = minAll;                int linesTop = maxAll + 1;                this.breakableLines = new boolean[linesTop];                this.breakpoints = new boolean[linesTop];                for (int i = 0; i != N; ++i) {                    int[] lines = lineArrays[i];                    if (lines != null && lines.length != 0) {                        for (int j = 0; j != lines.length; ++j) {                            int line = lines[j];                            this.breakableLines[line] = true;                        }                    }                }            }            this.functionSources = new FunctionSource[N];            for (int i = 0; i != N; ++i) {                String name = functions[i].getFunctionName();                if (name == null) {                    name = "";                }                this.functionSources[i]                    = new FunctionSource(this, firstLines[i], name);            }        }        String source()        {            return this.source;        }        String url()        {            return this.url;        }        int functionSourcesTop()        {            return functionSources.length;        }        FunctionSource functionSource(int i)        {            return functionSources[i];        }        void copyBreakpointsFrom(SourceInfo old)        {            int end = old.breakpoints.length;            if (end > this.breakpoints.length) {                end = this.breakpoints.length;            }            for (int line = 0; line != end; ++line) {                if (old.breakpoints[line]) {                    this.breakpoints[line] = true;                }            }        }        boolean breakableLine(int line)        {            return (line < this.breakableLines.length)                   && this.breakableLines[line];        }        boolean breakpoint(int line)        {            if (!breakableLine(line)) {                throw new IllegalArgumentException(String.valueOf(line));            }            return line < this.breakpoints.length && this.breakpoints[line];        }        boolean breakpoint(int line, boolean value)        {            if (!breakableLine(line)) {                throw new IllegalArgumentException(String.valueOf(line));

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人在线影院| 一区二区三区高清不卡| 男人的天堂久久精品| 精品成人一区二区| 久久亚洲免费视频| 一区二区三区四区国产精品| 在线观看中文字幕不卡| 色先锋久久av资源部| 欧美亚洲国产一区二区三区| 欧美自拍偷拍一区| 91精品国产乱| 久久99在线观看| 国产乱码精品1区2区3区| 国产成人免费视频| 91香蕉视频mp4| 欧美情侣在线播放| 精品国产精品网麻豆系列| 国产网站一区二区| 成熟亚洲日本毛茸茸凸凹| 成人性色生活片免费看爆迷你毛片| 国产传媒日韩欧美成人| 91在线看国产| 91精品国产丝袜白色高跟鞋| 亚洲最色的网站| 男男视频亚洲欧美| 福利视频网站一区二区三区| 99久久精品国产一区| 久久99深爱久久99精品| 一区二区久久久久| 亚洲国产三级在线| 激情综合色综合久久综合| 国产成人精品免费一区二区| 不卡一区中文字幕| 日韩欧美国产综合一区| 国产精品嫩草99a| 日本不卡的三区四区五区| 一区二区三区在线视频观看| 精品在线你懂的| 日本丶国产丶欧美色综合| 日本亚洲视频在线| 91在线观看一区二区| 日韩欧美一二三区| 亚洲成年人网站在线观看| 激情亚洲综合在线| 欧美日韩精品专区| 国产精品久久久久久福利一牛影视| 亚洲午夜久久久久久久久久久 | 免费av网站大全久久| 国产成人精品亚洲日本在线桃色| 日本道在线观看一区二区| 欧美成人三级在线| 国产精品不卡一区二区三区| 久草这里只有精品视频| 欧美日韩小视频| 亚洲人成精品久久久久久| 国产一级精品在线| 欧美不卡123| 免费观看在线综合| 91麻豆精品91久久久久同性| 一区二区三区免费观看| 精品一区二区三区蜜桃| 亚洲国产精品嫩草影院| 99riav久久精品riav| 中文字幕精品一区| 国产成人精品免费网站| 久久久不卡网国产精品二区| 麻豆精品久久精品色综合| 欧美另类久久久品| 亚洲电影第三页| 欧美视频三区在线播放| 亚洲午夜久久久久久久久电影网| 亚洲精品一线二线三线无人区| 奇米色一区二区| 欧美一级高清片在线观看| 国产老女人精品毛片久久| 日产欧产美韩系列久久99| 欧美二区三区的天堂| 日韩电影一二三区| 欧美一区二区三区日韩视频| 日韩精品91亚洲二区在线观看| 欧美日韩1234| 免费久久精品视频| 久久精品这里都是精品| 国产电影一区在线| 成人欧美一区二区三区| 91蝌蚪国产九色| 亚洲午夜激情网站| 欧美久久久久久久久中文字幕| 舔着乳尖日韩一区| 日韩一级精品视频在线观看| 美女视频黄频大全不卡视频在线播放 | 欧美成人精品福利| 蜜臀久久99精品久久久画质超高清| 欧美精品少妇一区二区三区| 午夜伊人狠狠久久| 色综合久久久久久久| 亚洲色图欧美偷拍| 色综合色综合色综合色综合色综合| 一本到不卡免费一区二区| 国产午夜久久久久| 国产伦精品一区二区三区在线观看| 久久66热偷产精品| 日本高清不卡一区| 中文字幕在线不卡国产视频| 捆绑调教美女网站视频一区| 欧美性猛交xxxxxx富婆| 97久久超碰国产精品电影| 精品日韩一区二区| 亚洲国产视频a| 色播五月激情综合网| 亚洲男人电影天堂| 一本到一区二区三区| 亚洲狠狠爱一区二区三区| 91视频.com| 在线看日本不卡| 亚洲成人一区在线| 日韩欧美电影一二三| 五月天激情综合网| 欧美喷水一区二区| 麻豆精品久久精品色综合| 欧美日韩国产天堂| 秋霞av亚洲一区二区三| 精品国产乱码久久久久久久| 激情综合网天天干| 91日韩在线专区| 亚洲午夜私人影院| 日韩一级成人av| 久久99精品久久久久久| 久久亚洲影视婷婷| 欧美一级精品在线| 国产伦理精品不卡| 亚洲男人天堂一区| 91在线观看下载| 亚洲国产欧美日韩另类综合| 一本色道久久综合亚洲91| 亚洲大片在线观看| 久久婷婷久久一区二区三区| 国产黄色精品视频| 中文字幕中文乱码欧美一区二区 | 在线观看亚洲专区| 奇米色一区二区三区四区| 欧美大白屁股肥臀xxxxxx| 99免费精品在线观看| 亚洲三级在线看| 欧美一区二区三区男人的天堂| 激情都市一区二区| 亚洲国产一区视频| 国产精品久久夜| 日韩一级大片在线观看| 国产成人在线视频免费播放| 亚洲精品一区二区在线观看| 欧美自拍丝袜亚洲| 国内外成人在线| 亚洲日本乱码在线观看| 久久综合狠狠综合久久激情| 精品视频在线看| 中文字幕一区二区三区不卡在线 | 久久午夜羞羞影院免费观看| 91免费观看在线| 日韩国产高清影视| 日韩美女视频一区| 琪琪一区二区三区| 中文字幕精品综合| 91精品国产综合久久福利软件 | 91精品免费观看| 激情综合色综合久久综合| 国产亚洲欧美色| 日韩一二在线观看| 精品视频一区二区不卡| 国产91精品精华液一区二区三区| 一区二区欧美在线观看| 久久综合九色综合97婷婷女人| 五月天精品一区二区三区| 日韩欧美在线123| 欧美日韩在线不卡| 国产成人丝袜美腿| 蜜臀av性久久久久蜜臀aⅴ| 99久久综合狠狠综合久久| 日韩精品国产欧美| 成人免费视频在线观看| 国产亚洲一区二区在线观看| 精品久久久久一区二区国产| 色综合天天综合网天天看片| 成人中文字幕电影| 成人丝袜18视频在线观看| 国产乱码一区二区三区| 亚洲一区二区在线视频| 国产精品午夜免费| 国产精品色呦呦| 国产欧美精品区一区二区三区| 欧美三级午夜理伦三级中视频| 在线精品国精品国产尤物884a| av在线一区二区三区| 岛国精品在线播放| 99久久久久久| 成人午夜电影久久影院| 精品一区二区三区在线播放| 麻豆国产精品视频| 福利一区在线观看| 91网站黄www|