日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

[WebKit] JavaScriptCore解析

發布時間:2023/12/19 javascript 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [WebKit] JavaScriptCore解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  • Chakra(Microsoft Internet Explorer)
  • Nitro/JavaScript Core?(Safari)
  • Carakan?(Opera)
  • SpiderMonkey?(Firefox)
  • V8?(Chrome, Chromium)

先看一下官方的基本介紹,短短幾句就塞滿了關鍵字。

SquirrelFish,正式名稱是JavaScriptCore,包括register-based(基于寄存器的虛擬機), direct-threaded, high-level bytecode engine(字節碼引擎).它使用基于內置copy propagation(復制性傳播算法)的一次性編譯器(one-pass compiler),能夠延遲從語法樹(Syntax Tree)上生成字節碼(Bytecodes)。

由此可見JavaScriptCore實現的復雜度。做為一個正在努力學習的菜鳥,我愿意給自己這樣一個挑戰,通過記錄和總結學習內容,分成兩個大的段落從內部視角來解析JavaScriptCore。首先是基礎篇,目的是了解JavaScriptCore是如何與WebKit一起工作的,會涉及一些JavaScript引擎的一些基本概念。然后是高級篇,嘗試解釋JavaScriptCore中的核心技術,如Byte Code Compiler, JIT, VM以及GC等。

內容或許會顯得晦澀,如果只是想簡單地了解瀏覽器JS引擎的一些基本內容,推薦讀讀下面的文章。它們對于理解后面的內容也會非常有幫助。相對于這些資料,這個系列則側重于從基礎及從實例來分析JSC的實現。沒辦法做到高層次,只能追求貼近實現。

1、JavaScriptCore, WebKit的JS實現(一)

2、JavaScriptCore, WebKit的JS實現(完)

3、為什么V8引擎這么快?

當然,JavaScript的知識是必不可少的,推薦閱讀一篇(JavaScript核心指南),如果有時間可以深入學習一下其中提到的鏈接。

一. JavaScriptCore與WebCore

兩者的關系可以簡單的用下圖來表示:

JSC為WebCore提供兩個重要功能:

1. JS腳本的解析執行 (ScriptController)

主要是通過調用JavaScriptCore提供的兩個C接口來實現的, checkSyntax和evaluate.

2. DOM節點的JS Bindings

DOM節點所對應的JS Bindings都可以回溯到JSC::JSNonFinalObject,再到JSObject,以實現和JSC綁定在一起。

*關于JS Binding,可以先看一下這篇文章: 為JavaScript Binding添加新DOM對象的三種方式及實作。至于JSC實現的細節,以后再展開。

二. JavaScriptCore基本工作過程

JSC最簡單的執行過程如下,再如之后JIT等在這個基礎上的優化。

三. JavaScript腳本的執行

以下分層說明腳本執行的步驟。 對于涉及到編譯及執行的細節,則在后續解釋。

3.1 接口層的交互

JSC和其它幾個主要的JS Engine一樣,都是一個庫,通過提供簡單的API來供調用者使用。

從JSC接口來看,一個完整的JavaScript腳本的解析執行過程,可以概述以下:

過程很簡單,可是很明顯有些關鍵詞必須要理解一下,如VM, Global Object, ExecState. 它們的關系也可以通過一張圖來解釋:

VM -> Virtual Machine, JavaScript要借助于一個運行時(Runtime)環境來運行。 SpiderMonkey就稱之為Runtime.

GlobalObject -> 腳本執行時的全局對象。一個全局負責組織管理執行環境以及各個子對象。

ExecState -> 用于記錄腳本執行上下文或環境, 也由GlobalObject管理。SpiderMoney以及Apple封裝后的JavaScriptCore.framework都稱之為上下文(Context). 可以將其視為一個執行腳本的對象來理解,只是它所產生和使用的Objects是共享的,并可以由GlobalObject來訪問。

JS解釋器各自實現的方式略有不同,JSC是由一個全局變量(Global Object)來創建上下文環境(ExecState), 而SpiderMonkey則是由執行上下文來創建全局變量。但無論哪種實現,全局變量和上下文都一一對應的,雖然原則上是允許一對多的情況出現。

最后看下JSC執行JS腳本的接口定義, 就很好理解了:

JSValue evaluate(ExecState* exec,constSourceCode& source,JSValue thisValue,JSValue* returnedException);

*thisValue就是JavaScript的this, 代表的是執行者, 但不一定是創建者。

*使用JSC的示例代碼,可以看看WebKit里的jsc.cpp就可以了。

*如果覺得沒有講清楚,建議讀讀這里(JavaScript核心指南)。

3.2 JSC API執行腳本的步驟

下圖是JSC API函數evaluate的活動圖:

重點在于它會使用要執行的腳本內容建立一個ProgramExecutable對象,然后調用Interpreter執行這個代表腳本的ProgramExecutable對象。

ProgramExecutable和Interpreter都是JSC核心類,ProgramExecutable負責編譯代碼為ByteCode,屬于解釋器功能組, 而Interpreter則負責解析執行ByteCode,則屬于VM功能組.

*Interpreter提供的兩個dump函數對于分析代碼也很有用, dumpCallFrame和dumpRegisters。

四. DOM Bindings的響應

實現上的解析在這里:WebKit的JS Binding解析

以及另一篇可以加深理解:為JavaScript Binding添加新DOM對象的三種方式及實作

這一篇主要說明解釋器的基本工作過程和JSC的核心組件的實現。

作為一個語言,就像人在的平時交流時一樣,當接收到信息后,包含兩個過程:先理解再行動。理解的過程就是語言解析的過程,行動就是根據解析的結果執行對應的行為。在計算機領域,理解就是編譯或解釋,這個已經被研究的很透徹了,并且有了工具來輔助。而執行則千變萬化,也是性能優化的重心。下面就來看看JSC是如何來理解、執行JavaScript腳本的。

解釋器工作過程

JavaScriptCore基本的工作過程如下:

對于一個解釋器,首先必須要明確所支持的語言, JSC所支持的是EMCAScript-262規范。

詞法分析和語法分析就是理解的過程,將輸入的文本轉為一種它可以理解的語義形式(抽象語法樹), 或者更進一步的生成供后續使用的中間代碼(字節碼,ByteCode)。

解釋器就是負責執行解析輸出的結果。正因為執行是優化的重心,所以有JIT來提高執行效能。根據資料,V8還會優化Parser的輸出,省去了bytecode, 當解釋器有能力直接基于AST執行。

詞法分析及語法分析,最著名的工具就是lex/yacc,以及后繼者flex/bison(The LEX&YACC Page)。它們為很多軟件提供了語言或文本解析的功能,相當強大,也很有趣。雖然JavaScriptCore并沒有使用它們,而是自行編寫實現的,但基本思路是相似的。

詞法分析(lexer),其實就是一個掃描器,依據語言的定義,提取出源文件中的內容變為一個個語法可以識別的token,比如關鍵字,操作符,常量等。在一個文件中定義好規則就可以了。

語法分析(paser), 它的功能就是根據語法(token的順序組合),識別出不同的語義(目標操作)。

比如:

i=3;

經過lexer可能被識別為以下的tokens:

VARIABLE EQUAL CONSTANT END

經過parser一分析,就了解這是一個"賦值操作,向變量i賦值常量3"。隨后再調用對應的操作加以執行。

如果你對lexer和parser還不太熟悉,可參考的資料很多,這里有一個基本的入門指引:Yacc與Lex快速入門。

執行的基礎環境(Register-based VM)

JSC解析生成的代碼放到一個虛擬機上來執行(廣義上講JSC主身就是一個虛擬機)。JSC使用的是一個基于寄存器的虛擬機(register-based VM),另一種實現方式是基于棧的虛擬機(stack-based VM)。兩者的差異可以簡單的理解為指令集傳遞參數的方式,是使用寄存器,還是使用棧。

相對于基于棧的虛擬機,因為不需要頻繁的壓、出棧,以及對三元操作的支持,register-based VM的效率更高,但可移植性相對弱一些。所謂的三元操作符,其中add就是一個三元操作,add dst, src1, src2,功能是將src1與src2相加,將結果保存在dst中。dst, src1,src2都是寄存器。

為了方便和<<深入理解Java虛擬機>>中的示例進行對比,也利用JSC輸出以下腳本的ByteCode如下:

[ 0] enter [ 1] mov r0, Cell: 0133FC40(@k0) [ 4] put_by_id r0, a(@id0), Int32: 100(@k1) [ 13] mov r0, Cell: 0133FC40(@k0) [ 16] put_by_id r0, b(@id1), Int32: 200(@k2) [ 25] mov r0, Cell: 0133FC40(@k0) [ 28] put_by_id r0, c(@id2), Int32: 300(@k3) [ 37] resolve_global r0, a(@id0) [ 43] resolve_global r1, b(@id1) [ 49] add r0, r0, r1 [ 54] resolve_global r1, c(@id2) [ 60] mul r0, r0, r1 [ 65] ret r0

*參考: JSC字節碼規格 (WebKit沒有及時更新,只做為參考,最新的內容還是要看代碼.)

而基于棧的虛擬機的生成的字節碼如下:

0: bipush 100 2: istore_1 3: sipush 200 6: istore_2 7: sipush 300 10: istore_3 11: iload_1 12: iload_2 13: iadd 14: iload_3 15: imul 16: ireturn

可以幫助理解它們之間的差異。

核心組件

*這部分基本上譯自WebKit官網的JavaScriptCore說明的前半部分。

JavaScriptCore?是一個正在演進的虛擬機(virtual machine), 包含了以下模塊: lexer, parser, start-up interpreter (LLInt), baseline JIT, and an optimizing JIT (DFG).

Lexer?負責詞法解析(lexical analysis) , 就是將腳本分解為一系列的tokens. JavaScriptCore的 lexer是手動撰寫的,大部分代碼在parser/Lexer.h 和 parser/Lexer.cpp 中.

Parser?處理語法分析(syntactic analysis), 也就是基于來自Lexer的tokens創建語法樹(syntax tree). JavaScriptCore 使用的是一個手動編寫的遞歸下降解析器(recursive descent parser), 代碼位于parser/JSParser.h 和 parser/JSParser.cpp .

LLInt,?全稱為Low Level Interpreter, 負責執行由Paser生成的字節碼(bytecodes). 代碼在llint/ 目錄里, 使用一個可移植的匯編實現,也被為offlineasm (代碼在offlineasm/目錄下), 它可以編譯為x86和ARMv7的匯編以及C代碼。LLInt除了詞法解析和語法解釋外,JIT編譯器所執行的調用、棧、以及寄存器轉換都是基本沒有啟動開銷(start-up cost)的。比如,調用一個LLInt函數就和調用一個已經被編譯原始代碼的函數相似, 除非機器碼的入口正是一個共用的LLInt Prologue(公共函數頭,shared LLInt prologue). LLInt還包括了一些優化,比如使用inline cacheing來加速屬性訪問.

Baseline JIT?在函數被調用了6次,或者某段代碼循環了100次后(也可能是一些組合,比如3次帶有50次枚舉的調用)就會觸發Baseline JIT。這些數字只是大概的估計,實際上的啟發(heuristics)過程是依賴于函數大小和當時內存狀況的。當JIT卡在一個循環時,它會執行On-Stack-Replace(OSR)將函數的所有調用者重新指向新的編譯代碼。Baseline JIT同時也是函數進一步優化的后備,如果無法優化代碼時,它還會通過OSR調整到Baseline JIT. BaseLine JIT的代碼在 jit/ . 基線JIT也為inline caching執行幾乎所有的堆訪問。

無論是LLInt和Baseline JIT者會收集一些輕量級的性能信息,以便擇機到更高一層級(DFG)執行。收集的信息包括最近從參數、堆,以及返回值中的數據。另外,所有inline caching也做了些處理,以方便DFG進行類型判斷,例如,通過查詢inline cache的狀態,可以檢測到使用特定類理進行堆訪問的頻率。這個可以用于決定是否進入DFG (文中稱這個行為叫speculation, 有點賭一把的意思,能優化獲得更高的性能最好,不然就退回來)。在下一節中著重講述JavaScriptCore類型推斷。

DFG JIT?在函數被調用了至少60次,或者代碼循環了1000次,就會觸發DFG JIT。同樣,這些都是近似數,整個過程也是趨向于啟發式的。DFG積極地基于前面(baseline JIT&Interpreter)收集的數據進行類型推測,這樣就可以盡早獲得類型信息(forward-propagate type information),從而減少了大量的類型檢查。DFG也會自行進行推測,比如為了啟用inlining, 可能會將從heap中加載的內容識別出一個已知的函數對象。如果推測失敗,DFG取消優化(Deoptimization),也稱為"OSR exit". Deoptimization可能是同步的(某個類型檢測分支正在執行),也可能是異步的(比如runtime觀察到某個值變化了,并且與DFG的假設是沖突的),后者也被稱為"watchpointing"。 Baseline JIT和DFG JIT共用一個雙向的OSR:Baseline可以在一個函數被頻繁調用時OSR進入DFG, 而DFG則會在deoptimization時OSR回到Baseline JIT. 反復的OSR退出(OSR exits)還有一個統計功能: DFG OSR退出會像記錄發生頻率一樣記錄下退出的理由(比如對值的類型推測失敗), 如果退出一定次數后,就會引發重新優化(reoptimization), 函數的調用者會重新被定位到Baseline JIT,然后會收集更多的統計信息,也許根據需要再次調用DFG。重新優化使用了指數式的回退策略(exponential back-off,會越來越來)來應對一些奇葩代碼。DFG代碼在dfg/.

任何時候,函數, eval代碼塊,以及全局代碼(global code)都可能會由LLInt, Baseline JIT和DFG三者同時運行。一個極端的例子是遞歸函數,因為有多個stack frames,就可能一個運行在LLInt下,另一個運行在Baseline JIT里,其它的可能正運行在DFG里。更為極端的情況是當重新優化在執行過程被觸發時,就會出現一個stack frame正在執行原來舊的DFG編譯,而另一個則正執行新的DFG編譯。為此三者設計成維護相同的執行語義(execution semantics), 它們的混合使用也是為了帶來明顯的效能提升。

*如果想要觀察它們的工作,可以在WebKit中的子工程jsc的jsc.cpp中,使用JSC::Options添加一部分log輸出。

前面說了一些解析、生成ByteCode直至JIT的基本概念,下面是對照JavaScriptCore源代碼來大致了解它的實現。

從JS Script到Byte Code

首先說明Lexer, Parser和ByteCode的生成都是由ProgramExecutable初始化過程完成的。首先在JSC的API evaluate()中會創建ProgramExecutable并指定腳本代碼。然后傳入Interpreter時,再透過CodeCache獲取的UnlinkedProgramCodeBlock就是已經生成ByteCode后的Code Block了。

下圖是CodeCache調用Parser和ByteCodeGenerator的序列圖:

而Lexer則是在Parser過程中調用的,如下圖:

再從類圖來觀察所涉及的幾個類之間的關系:

關于CodeBlock、UnlinkedCodeBlock和ScriptExecutable

CodeBlock可以理解為代碼管理的類,按類型分為GlobalCodeBlock, ProgramCodeBlock, FunctionCodeBlock及EvalCodeBlock, 與之對應的UnlinkedCodeBlock和ScriptExecutable也有相似的繼承體系,如下所示:

UnlinkedCodeBlock存儲的是編譯后的ByteCode,而CodeBlock則會用于LLint和JIT。

ProgramExecutable則可以理解為當前所執行腳本的大總管,從其名字上可以看出來是代表一個可執行程序。

它們的作用也很容易理解。

關于LLint的slow path

前面說過了LLint是基于offlineasm的匯編語言,這里只是介紹一下它的slow path. 為了處理一些操作,需要在LLint執行指令時調用一些C函數進行擴展處理,比如后面要說明的JIT統計功能,LLint提供一個調用C函數的接口,并將所有會被調用的C函數稱為slow path,如下圖所示:

代碼可以在LowLevelInterpreterXXX.asm中看到。所以可以C函數聲明看到帶有SLOW_PATH的宏。

關于JIT優化的觸發

首先JSC使用的是基于計數器的熱點探測方法。前面提到函數或循環體被執行若干次后會觸發JIT, 首先這個次數是可以通過JSC::Options中的thresholdForOptimizeSoon來設定的。然后在LLint在執行循環的ByteCode指令loop_hint和函數返回指令ret時會調用slow path中的C函數,進行次數統計和判斷,過程如下:

其中會根據checkIfJITThresholdReached()返回結果來決定是否進行jitCompile.一旦要進行JIT編譯時,也是根據當前CodeBlock的類型,而執行針對不同函數或代碼段的優化。下面顯示的是對一個頻繁使用的函數進行JIT編譯的操作:

其中計數的功能并非由CodeBlock直接實現,而是通過ExecutionCounter來管理的。主要關系如下:

總結

以上是生活随笔為你收集整理的[WebKit] JavaScriptCore解析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

欧美a视频在线观看 | 99av国产精品欲麻豆 | 五月婷婷中文网 | 欧美日本啪啪无遮挡网站 | www天天操 | 免费的国产精品 | 成人黄色大片在线免费观看 | 免费日韩 | 成人在线视频免费 | 日韩在线中文字幕视频 | 国产在线播放观看 | 日韩一区二区三区在线看 | 996久久国产精品线观看 | 免费精品国产va自在自线 | 92国产精品久久久久首页 | 亚洲国产欧美一区二区三区丁香婷 | 国产精品99页 | 色婷婷六月 | 久久精品免费 | 久草国产视频 | 色婷婷www | 久草免费在线视频 | 97日日碰人人模人人澡分享吧 | 久久综合偷偷噜噜噜色 | 久久久久国产精品午夜一区 | 在线免费av网 | 99久久精品无免国产免费 | av大全在线看 | 激情五月五月婷婷 | 天天曰 | 91麻豆网站 | 深夜福利视频一区二区 | 天天se天天cao天天干 | 亚洲欧美一区二区三区孕妇写真 | 少妇精品久久久一区二区免费 | 国产一区二区三区久久久 | 日韩欧美电影网 | 成人久久国产 | 亚洲片在线 | 97超碰人人澡 | 免费97视频| 在线观看岛国 | 天天狠狠操 | 免费视频三区 | 九九热只有精品 | 婷婷久久网站 | 精品一区二区免费视频 | 97国产在线视频 | 69亚洲乱| 久久视频免费看 | 99热日本| 中文字幕亚洲精品在线观看 | 九九热精 | 超碰人在线 | 国产资源精品在线观看 | 超碰97在线资源 | 天天av综合网 | 一区二区激情 | 成人h视频在线 | 国产精品麻豆三级一区视频 | 在线观看aa | 中文字幕国内精品 | 香蕉影视在线观看 | 国产精品24小时在线观看 | 国产精品一区一区三区 | 美女久久久 | 日韩在线观看视频在线 | 四虎成人精品在永久免费 | 国产一二三在线视频 | 美女视频黄频大全免费 | 日本字幕网 | 成人久久毛片 | 久久精品电影院 | 青青河边草观看完整版高清 | 亚洲精品国产精品国自 | 国内精品一区二区 | www.夜色321.com| 91天堂在线观看 | 91成人在线看 | 中文字幕在线看视频国产中文版 | 99久久er热在这里只有精品15 | 激情六月婷婷久久 | 日韩欧美高清在线 | 色综合天天射 | 波多野结衣视频一区 | 深爱激情五月婷婷 | 国产精品久久久久婷婷二区次 | 一级理论片在线观看 | 天天干天天干天天干天天干天天干天天干 | 日韩在线免费视频观看 | 成人aⅴ视频 | 香蕉视频导航 | 久久天天躁夜夜躁狠狠85麻豆 | 成人黄色在线观看视频 | 精品国精品自拍自在线 | 国产999精品久久久影片官网 | 久久电影国产免费久久电影 | 国产美女主播精品一区二区三区 | 久久香蕉国产精品麻豆粉嫩av | 亚洲日b视频 | 免费高清在线视频一区· | 99综合电影在线视频 | 精品国产亚洲一区二区麻豆 | 欧美日韩精品网站 | a级国产乱理论片在线观看 特级毛片在线观看 | 91精品天码美女少妇 | 国产99久久久国产精品免费看 | 亚洲观看黄色网 | 久久影院一区 | 日韩网| 成人av视屏 | 天天色棕合合合合合合 | bbbbb女女女女女bbbbb国产 | av在线播放亚洲 | 色综合天天综合 | a黄色影院| 国产视频一区二区在线观看 | www.国产在线视频 | 日韩精品在线视频免费观看 | 色橹橹欧美在线观看视频高清 | av一级网站 | 丝袜网站在线观看 | 亚洲最新精品 | 亚洲女人天堂成人av在线 | av黄在线播放| 国产在线欧美 | 久久五月天综合 | 亚洲 综合 专区 | 久久精品欧美一区 | 奇米影音四色 | 日韩丝袜 | 天天摸天天干天天操天天射 | 欧美日韩高清 | 日韩欧美精品一区二区三区经典 | 成人综合婷婷国产精品久久免费 | 日韩免费视频网站 | 国产91精品看黄网站 | 在线观看免费91 | 久草免费色站 | 四虎成人精品永久免费av | 亚洲精品综合久久 | 亚洲激精日韩激精欧美精品 | 天天舔天天射天天操 | 伊人亚洲精品 | av黄色在线 | 在线中文字幕视频 | 视频一区二区视频 | 亚洲精品国产精品国自产观看浪潮 | 国产午夜麻豆影院在线观看 | 欧美日韩1区 | 久久婷婷一区二区三区 | 欧美一级电影在线观看 | 亚洲男女精品 | 免费视频网 | 欧美成人91 | 成人久久影院 | 国产精品成人一区二区三区吃奶 | 久久少妇av | 又黄又爽又刺激的视频 | 成人小视频在线观看免费 | 2024av在线播放 | 福利视频网址 | 午夜久久福利影院 | 91精品爽啪蜜夜国产在线播放 | 在线视频专区 | 国产色在线视频 | 亚洲综合婷婷 | 国内久久| 蜜臀久久99精品久久久无需会员 | 最新动作电影 | 国产一区二区高清不卡 | 亚洲一区二区三区在线看 | 亚洲特级毛片 | 国产美女主播精品一区二区三区 | 国产精品中文久久久久久久 | 久久久久亚洲精品国产 | 国产在线观看a | 久久久综合香蕉尹人综合网 | 久草在线99| 国产精品99精品久久免费 | 免费久久片 | 天天干天天插伊人网 | 最新av网站在线观看 | 色婷婷福利视频 | 六月色丁 | 中文字幕五区 | 色综合激情久久 | 99热精品国产一区二区在线观看 | 狠狠操影视 | 天天综合人人 | 91插插插网站 | 久久精品这里热有精品 | 色偷偷97 | 欧美成年人在线视频 | 亚洲狠狠丁香婷婷综合久久久 | 国产福利免费在线观看 | 97精产国品一二三产区在线 | 日韩欧美精品一区二区三区经典 | 欧美性生活免费 | 久久久久久久久久久久av | 亚洲人成在线观看 | 免费色视频网址 | 亚洲成av人影片在线观看 | 久草久草视频 | 国产资源av | 国产视频美女 | 国产精品一区二区无线 | 久久精品精品电影网 | 中文字幕你懂的 | 九九热在线免费观看 | 成人久久久久久久久 | 超碰在线观看av.com | 亚洲激精日韩激精欧美精品 | 国产精品尤物视频 | 伊人婷婷综合 | 狠狠躁夜夜a产精品视频 | 中文字幕丝袜一区二区 | 天天天在线综合网 | 成人免费视频免费观看 | 欧美一级特黄高清视频 | 亚洲国产视频直播 | 精品在线观看视频 | 狠狠干天天操 | 91在线小视频 | 九九热.com | 91视频在线观看下载 | 蜜桃视频日本 | 91精品婷婷国产综合久久蝌蚪 | 麻豆免费在线播放 | 深爱开心激情网 | 夜夜夜精品 | 久久99精品一区二区三区三区 | 日韩精品视频在线免费观看 | 日日爽夜夜操 | www.888.av| 91av手机在线 | 全久久久久久久久久久电影 | 成年人在线视频观看 | 97人人爽人人 | 美女黄频网站 | av大全在线播放 | 最近中文字幕在线播放 | 四虎影视精品 | 色婷婷激情五月 | 久久视频免费观看 | 中文字幕欧美日韩va免费视频 | 天天干天天操天天干 | 激情小说 五月 | 亚洲精品视频在 | 久久av伊人| 久久99国产精品自在自在app | 日韩v在线91成人自拍 | 久久y| 久 久久影院 | 精品视频免费播放 | 欧美伦理一区二区 | 婷婷激情5月天 | 成人国产一区二区 | 蜜臀aⅴ国产精品久久久国产 | 久久免费视频在线观看30 | 夜夜狠狠 | 国产精品正在播放 | 亚洲 欧洲 国产 精品 | 国产一级片免费观看 | 在线观看的av| 夜夜干夜夜 | 中文字幕欧美三区 | 91看片看淫黄大片 | 91激情在线视频 | 精品在线一区二区 | 国产理论一区二区三区 | 91久久丝袜国产露脸动漫 | 久久久综合精品 | 免费观看www7722午夜电影 | 久久精品毛片基地 | 人人网av| 久久tv | 日韩网站在线免费观看 | 五月婷av| 国产91勾搭技师精品 | 亚洲天堂网在线播放 | 久久国产精品免费看 | 久久久久久久久久久电影 | 青青草国产精品视频 | 成人xxxx| 色久网 | 日日夜夜天天射 | 欧美日韩国产免费视频 | 最新av网址在线观看 | 91一区一区三区 | 少妇精69xxtheporn| 成人av播放 | 亚洲国产三级在线观看 | 欧美日韩精品在线免费观看 | 亚洲伊人色 | av一区二区三区在线播放 | 久久久精品视频网站 | 精品一区二区日韩 | 一区二区三区四区不卡 | 久草在线资源观看 | 久久影院中文字幕 | 国产午夜麻豆影院在线观看 | 国产一区二区三区免费观看视频 | 中文字幕精品三级久久久 | 欧美日韩高清在线一区 | 99精品一级欧美片免费播放 | 99精品欧美一区二区 | 超碰大片 | 最近中文字幕国语免费高清6 | 日韩在线电影一区二区 | 国产成人精品一区二区三区网站观看 | 色夜视频 | 99这里只有久久精品视频 | 中文字幕在线播放一区二区 | 国产小视频免费观看 | 国产精品ssss在线亚洲 | 亚洲视频一级 | 国产91在线免费视频 | 最近中文字幕mv | 日本护士三级少妇三级999 | 麻豆视频免费在线观看 | 国产麻豆精品一区二区 | 精品综合久久 | 狠狠综合 | 欧美精品久久久久久久久免 | 视频国产在线观看18 | 欧美在线观看小视频 | av免费观看在线 | 色婷婷久久一区二区 | 欧美极品少妇xbxb性爽爽视频 | 日日干视频| www.亚洲黄色 | 天堂av在线网址 | 精品久久久免费 | 91视频免费看网站 | 国产精品久久久久9999 | 国产不卡在线 | 亚洲一区 影院 | 黄网站色视频免费观看 | 日韩剧情| 欧美大片在线观看一区 | 久久久久综合精品福利啪啪 | av在线a | 中文字幕av影院 | 99久久99久久综合 | 色综合久久久久久久久五月 | 五月天久久综合网 | 亚洲一级影院 | 国产精品一区二区av麻豆 | 六月色婷| 久久久精品免费观看 | 日韩在线观看你懂的 | 欧美日韩在线观看一区二区三区 | 99久久免费看 | 首页av在线 | 免费在线观看毛片网站 | 国产精品嫩草55av | 久久久久草 | 久久国语| 国产福利精品在线观看 | 国产精品欧美久久久久无广告 | 免费在线观看av网站 | 婷婷综合国产 | 激情文学丁香 | 精品一区二区av | 99精品热视频只有精品10 | 久草网站在线观看 | 久久草精品 | 欧美精品被| 亚洲蜜桃av | 国产成人三级在线观看 | 日本91在线 | www免费网站在线观看 | 国产少妇在线观看 | 亚洲97在线 | а中文在线天堂 | 999成人免费视频 | 国产精品久久久网站 | 99re久久精品国产 | 在线网址你懂得 | 亚洲精品男女 | 久久久久9999亚洲精品 | 天天射综合网视频 | 国产在线传媒 | 99视频 | 免费视频你懂的 | av一级免费 | 懂色av一区二区在线播放 | 五月天色网站 | 国产免费影院 | 97国产大学生情侣白嫩酒店 | 成人观看视频 | 一区二区三区免费在线 | 黄色免费大片 | 日韩在线观看 | 天天插夜夜操 | 丝袜美女在线 | 国产手机av | 国产精品成人久久久久久久 | 精品久久久久久久久久久久久 | 一级理论片在线观看 | 五月婷婷,六月丁香 | 人人澡人人舔 | 青春草免费视频 | 久久福利综合 | 日本中文字幕在线播放 | 久久不卡免费视频 | 成人久久久久久久久 | 国产永久免费 | 成人视屏免费看 | 一区二区精 | 91九色国产视频 | 日日夜操 | 超碰97人人射妻 | 国产精品久久久久久久毛片 | 亚洲精区二区三区四区麻豆 | 亚洲精品视频大全 | 视频一区视频二区在线观看 | 免费人成网ww44kk44 | 99精品视频在线观看免费 | 中文字幕乱码视频 | 亚洲福利精品 | 精品在线99 | 日韩在线网址 | 日韩中文字幕免费视频 | 四虎国产精 | 亚洲永久av | 91传媒在线播放 | 天天色综合1 | 欧美大片第1页 | 欧美午夜理伦三级在线观看 | 在线有码中文字幕 | 免费网站黄色 | 婷婷丁香激情 | 国产+日韩欧美 | 精品久久影院 | 在线视频 影院 | 国产欧美精品一区二区三区 | 手机在线观看国产精品 | 中文字幕91视频 | 亚洲一区二区三区在线看 | 国产麻豆视频网站 | 深爱开心激情网 | 久久深夜 | 91麻豆精品国产91久久久久久 | 免费看av片网站 | 国产精品一区二区你懂的 | 免费福利在线观看 | 开心婷婷色| 欧美激情视频一区二区三区免费 | 国产精品色视频 | 亚洲天堂精品视频在线观看 | 久久久精品免费看 | 91精品国产乱码久久桃 | 精品国产一二三四区 | 精品一二三区视频 | 欧美精品免费在线观看 | 国产精品男女啪啪 | 国产剧情在线一区 | 国产精品久久久区三区天天噜 | 97福利 | 国产国语在线 | 欧美黑人巨大xxxxx | 少妇超碰在线 | 91精品视频在线免费观看 | 日韩大片在线免费观看 | 欧美成人区 | 成人免费一级 | 免费福利视频导航 | 韩国精品在线观看 | 国内精品久久久久影院男同志 | 国产亚洲精品久久网站 | 久产久精国产品 | 天海翼一区二区三区免费 | 欧美大jb| 美女黄频在线观看 | 麻豆久久久久 | 91精品一区二区三区蜜桃 | 中文字幕在线资源 | 中文字幕欧美激情 | 久久久久免费观看 | 国产精品久久艹 | 亚洲精品久久久久久国 | 久久99国产精品久久99 | 99久久综合精品五月天 | 欧美日韩久久一区 | 成人视屏免费看 | 天天做天天爱天天综合网 | 69夜色精品国产69乱 | 国产精品久久久久久久久久99 | x99av成人免费 | 精品国产一区二区三区免费 | 亚洲欧美日韩一二三区 | 久久久麻豆精品一区二区 | 日本特黄一级 | 在线免费观看黄色小说 | 夜夜躁天天躁很躁波 | 激情欧美网| 国产亲近乱来精品 | 国产裸体视频bbbbb | 久久综合九色综合97婷婷女人 | 中文字幕国产精品一区二区 | 精品女同一区二区三区在线观看 | 欧美日韩国产综合网 | 四虎伊人 | 久久成人亚洲欧美电影 | 精品日韩av| 国产精品18久久久久久首页狼 | 在线观看亚洲视频 | 日本视频久久久 | www黄com | 手机在线视频福利 | 伊人午夜| 色婷婷综合久色 | 日韩在线观看免费 | 久久综合九色综合97_ 久久久 | 久久久久网站 | 婷婷色综合 | 91精品爽啪蜜夜国产在线播放 | 一级一片免费看 | 欧美一级性生活片 | 精品成人在线 | 亚洲精品777 | 天天做日日做天天爽视频免费 | 国产成人三级在线观看 | 国产成人在线观看 | 日韩在线小视频 | 一 级 黄 色 片免费看的 | 98福利在线 | 色综合天天狠天天透天天伊人 | 中文字幕频道 | av在线播放免费 | 久久在线影院 | 人人爱爱| 免费看片网址 | 国产91成人在在线播放 | av视屏在线播放 | 国产一区二区在线播放视频 | 伊甸园av在线 | 久久伊人色综合 | 99热最新在线| 精品国产一区二区三区久久影院 | 久久精品一区二区三 | 久久久久久综合网天天 | www.香蕉视频在线观看 | 91视频麻豆视频 | 色婷婷www | 99看视频在线观看 | 日韩不卡高清视频 | av中文字幕av | 亚洲日本三级 | 欧美亚洲免费在线一区 | 国产亚洲一区二区三区 | 人人干干人人 | 99精品偷拍视频一区二区三区 | 久久在现视频 | 亚洲不卡av一区二区三区 | 国产又粗又猛又色又黄视频 | 日本精品久久 | 97色在线 | 国产资源av| 国产在线va | 久久精品这里热有精品 | 免费久久99精品国产婷婷六月 | 免费 在线 中文 日本 | 欧美福利久久 | 天天躁天天操 | 正在播放国产精品 | 99精品视频免费观看视频 | 色婷婷免费视频 | 国产精品久久久久久久免费观看 | 激情五月开心 | 1000部国产精品成人观看 | 国产高清久久久 | 国产成人精品亚洲精品 | 久久久久国产精品一区 | 成人一级片视频 | 亚洲国产精品va在线看黑人 | 久久av中文字幕片 | 免费开视频 | 一区二区三区四区不卡 | 欧美激情视频久久 | 国产91成人| 亚洲黄色av一区 | 中文字幕在线观看91 | 欧美日韩中文在线观看 | 国产一级片播放 | 91男人影院 | 婷婷丁香激情综合 | 亚洲五月婷 | 日韩亚洲在线视频 | 在线观看日韩精品视频 | 99久久久久久 | 夜夜操天天 | 私人av | 国产精品久久久久久久久久免费看 | 免费在线观看av不卡 | 日本在线中文 | 中文字幕专区高清在线观看 | 久久女教师 | 中文字幕在线影院 | 午夜三级毛片 | 婷婷综合激情 | 91精品啪在线观看国产 | 国产乱码精品一区二区三区介绍 | 超碰成人网 | 麻豆成人精品 | 日韩av图片 | 免费视频一区 | 99在线免费视频观看 | 久久99精品久久久久久 | 三级黄色片子 | 成人黄色大片在线免费观看 | 亚洲国产精品小视频 | 日韩亚洲国产精品 | 免费观看特级毛片 | 久久综合免费视频 | 欧美在线日韩在线 | 91网址在线观看 | 激情av综合 | 成人a视频片观看免费 | 久久国产精品影视 | 久久久久久国产一区二区三区 | av免费在线看网站 | www免费视频com━ | 毛片在线网 | 国产丝袜 | 黄色一级在线免费观看 | 亚洲砖区区免费 | 天天干天天插 | 亚洲精品99久久久久久 | 国产自制av| 欧美一区在线看 | 四虎国产精品成人免费4hu | 精品国产欧美一区二区 | 国产99久久久国产精品免费二区 | 久久九九视频 | 最新国产福利 | 999色视频 | 波多野结衣在线观看视频 | 99这里只有久久精品视频 | 男女免费视频观看 | 日产av在线播放 | 日韩精品一区二区在线观看 | 狠狠干天天操 | 一本色道久久精品 | 97成人精品区在线播放 | 91视频免费| 久久伊人免费视频 | 黄视频色网站 | 在线播放 日韩专区 | 激情综合网五月婷婷 | 久久狠狠干 | www.99av| 久久精品最新 | 亚洲精品国产电影 | 国产精品va在线观看入 | 香蕉在线视频播放网站 | 又黄又爽又刺激 | www.xxxx欧美 | 99国产成+人+综合+亚洲 欧美 | 久久人人97超碰精品888 | 美女免费黄视频网站 | 99人久久精品视频最新地址 | 国产成人三级在线观看 | 国产视频不卡 | 亚洲激情在线视频 | 亚洲色图激情文学 | 天天操天天射天天插 | 国产永久免费高清在线观看视频 | 日韩高清不卡一区二区三区 | 欧美日韩一区三区 | 激情婷婷色 | 中文字幕在线视频精品 | 手机av电影在线 | 久久免费视频网站 | 二区三区在线 | 日韩电影在线观看一区二区 | 欧美 日韩 性 | 黄a网站 | 五月天av在线 | 九九视频免费在线观看 | 国产日韩精品一区二区三区 | 综合久久精品 | 成年人在线视频观看 | 国内外成人在线视频 | 精品 一区 在线 | 国内外成人在线 | 免费人成网ww44kk44 | 久草精品在线观看 | 手机av永久免费 | 很黄很黄的网站免费的 | 国产一区在线精品 | 日韩一区精品 | 美女视频免费一区二区 | 色夜影院 | 五月天激情综合 | 成人动漫一区二区 | 中文字幕在线日亚洲9 | 欧美日韩性视频 | 中文字幕日本电影 | 亚洲免费成人 | 色.com| 中文字幕在线观看完整版 | 日韩精品视频第一页 | 99视频精品视频高清免费 | www.超碰| 99re8这里有精品热视频免费 | 久久夜视频| 7799av| av一区二区三区在线播放 | 久久九九久久九九 | 午夜美女wwww | 99久久er热在这里只有精品15 | 在线观看视频在线 | 激情偷乱人伦小说视频在线观看 | 日韩在线播放欧美字幕 | 99久久精品无码一区二区毛片 | 九九热精品视频在线观看 | 日韩一区二区免费在线观看 | 国产精品久久久久一区二区三区 | 久久大片网站 | 日韩精品资源 | 天天天射 | 精品国产不卡 | 久久99热这里只有精品 | 正在播放一区二区 | 久久综合九色综合97_ 久久久 | 天天操综合 | 精品国产乱码久久久久久三级人 | 国产成人亚洲精品自产在线 | 在线视频观看你懂的 | 中文字幕av播放 | 免费男女羞羞的视频网站中文字幕 | 丁香激情综合久久伊人久久 | 97精品国产91久久久久久久 | 美女视频黄是免费的 | 国产h在线播放 | 国产精品字幕 | 婷婷丁香狠狠爱 | 香蕉影视在线观看 | 国产成人av在线影院 | 五月天九九 | 99精品国产成人一区二区 | 欧美日韩精品在线 | 婷婷日韩| 国产成人精品久久久 | 日韩午夜大片 | av品善网| 久久天堂精品视频 | 免费一级特黄录像 | 国产玖玖精品视频 | 在线视频app | 日韩免费专区 | 日韩欧美视频免费看 | 操操操com| 久久精品3 | 99中文字幕在线观看 | 黄色免费观看网址 | 色婷婷国产精品一区在线观看 | 成人少妇影院yyyy | 美女视频黄是免费的 | 国产成人精品免高潮在线观看 | 欧美日韩国产一区二区三区在线观看 | 在线97| 在线观看免费av网 | 亚洲高清不卡av | 国产探花在线看 | 91精品欧美一区二区三区 | 免费高清男女打扑克视频 | 国产精品av免费 | 国产黄在线免费观看 | 香蕉影院在线播放 | 久久国产日韩 | 成人久久免费 | 91精品视频导航 | 日韩电影一区二区在线观看 | 国产一级a毛片视频爆浆 | 高清视频一区 | 偷拍区另类综合在线 | 免费av在线网 | 日本电影黄色 | 久久视频免费在线 | 国产香蕉97碰碰碰视频在线观看 | 欧美精品久久久久久久亚洲调教 | 亚洲我射av | 黄色软件视频大全免费下载 | 国产中文字幕大全 | 青草视频免费观看 | 日韩有码中文字幕在线 | 天天操天天透 | 免费观看黄 | 亚洲精品中文在线观看 | 一区 二区电影免费在线观看 | 天天综合网在线 | 久久人人添人人爽添人人88v | 日日夜夜综合网 | 国产一区在线视频播放 | 成人黄色在线 | 最近中文字幕大全中文字幕免费 | 免费看的黄色的网站 | 国产伦精品一区二区三区免费 | 亚洲欧美在线视频免费 | 久久精品9| 日韩在线观看 | 人人爽人人澡人人添人人人人 | 久久免费av| 91中文字幕 | 特级西西444www大精品视频免费看 | 免费在线播放av电影 | 黄色精品一区二区 | 色婷婷www | 九九视频免费在线观看 | 婷婷五月色综合 | 国产精品永久在线 | 国产精品久久久久久久久久久久冷 | 一级性视频 | 久久久久亚洲天堂 | 国产精品一区二区三区在线看 | 91在线porny国产在线看 | 中文字幕在线电影 | 久久国产精品99精国产 | 97超碰免费在线观看 | 欧美色婷 | 超碰人人在线观看 | 91色蜜桃 | 国产一及片| 国产成人精品在线观看 | 亚洲精品久久久久999中文字幕 | 久久精品男人的天堂 | 国产一区成人在线 | 99精品国产99久久久久久福利 | 韩日精品在线观看 | 天天天天爽 | 欧美精品v国产精品v日韩精品 | 三级黄色大片在线观看 | 免费网站在线观看人 | 狠狠插狠狠操 | 91天堂影院 | 欧美视频在线观看免费网址 | 在线视频欧美日韩 | 中文字幕一区二区三区四区 | 成人久久精品视频 | 国产在线探花 | 国产精品一区二区免费看 | 99精品国产在热久久下载 | 黄色三级免费片 | 国产高清在线精品 | 国产一区二区精品在线 | 91精品国产自产在线观看永久 | 狠狠狠色丁香婷婷综合久久五月 | 在线观看免费版高清版 | 亚洲区另类春色综合小说校园片 | 免费a级毛片在线看 | 99热精品在线观看 | 精品久久久久国产 | 日本免费久久高清视频 | 黄色天堂在线观看 | 999国产| 国产精品视频在线观看 | 美女视频黄色免费 | 久久久久久久久久久久久久av | 免费在线观看成人av | 欧美激情视频一二三区 | 日韩专区一区二区 | 国产中文字幕视频在线观看 | 日韩欧美在线综合网 | 久久国产精品第一页 | 色激情五月 | 五月婷丁香网 | 天天综合狠狠精品 | 欧美日韩精品在线免费观看 | 91精品国自产在线观看 | 亚洲作爱视频 | 中文字幕精品久久 | 99精品免费久久久久久久久日本 | 久久女同性恋中文字幕 | 久草免费电影 | 超碰97免费 | 欧美 日韩 性 | 波多野结衣电影一区二区三区 | 免费成人黄色片 | 天天干天天插伊人网 | 国产精品久99 | 久久精品xxx | 欧美韩国日本在线 | 黄色精品久久久 | 毛片黄色一级 | 99视频国产精品 | 国产福利av在线 | 黄色免费在线视频 | 国产美女视频网站 | 亚洲国产69 | 欧美日韩中文国产一区发布 | 波多野结衣在线播放视频 | 丁香婷五月 | 亚洲在线成人精品 | 香蕉视频在线免费 | 最新日韩中文字幕 | 99热免费在线| 久久九九视频 | 精品伊人久久久 | 国产精品免费不 | 97精品国自产拍在线观看 | 久草精品视频在线观看 | 国产黄免费在线观看 | 精品国产精品久久一区免费式 | 丁香久久综合 | 亚洲成aⅴ人片久久青草影院 | 国产看片免费 | 久久久久久久久久久久亚洲 | 久草在线网址 | 91精品伦理| 亚洲免费在线观看视频 | 婷婷久操| 国产成人亚洲在线观看 | 亚洲欧洲一级 | 日韩午夜视频在线观看 | 丁香激情综合久久伊人久久 | 人人看看人人 | 中文字幕在线久一本久 | 国产精品久久久久久久久久 | 久久色视频 | 久久精品亚洲综合专区 | 激情五月激情综合网 | 视频成人免费 | 中字幕视频在线永久在线观看免费 | 五月婷久久 | 99热最新在线 | 国产精品永久在线 | 三上悠亚一区二区在线观看 | 久久久www成人免费毛片 | 天天天干天天射天天天操 | 免费在线观看中文字幕 | 尤物九九久久国产精品的分类 | 亚洲免费国产视频 | 久久综合九色综合欧美狠狠 | 欧美日韩高清不卡 | 亚洲精品无| 亚洲一区网站 | 欧美伊人网 | 中文字幕欧美三区 | 欧美资源在线观看 | 欧美一级视频免费看 | 国产传媒中文字幕 | 久久电影日韩 | 国产一卡久久电影永久 | www.香蕉视频 | 久久五月婷婷综合 | 国产精品美女久久久久久免费 | 精品视频在线看 | 欧美婷婷色 | 涩涩网站免费 | 99久久精品久久久久久动态片 | 久久精品日产第一区二区三区乱码 | 黄色网www | 久热香蕉视频 | 精品二区视频 | 一级片在线 | 欧美色888 | www操操| 国产91免费观看 | 成人一区二区三区在线观看 | 永久免费av在线播放 | 亚洲精品久久久久中文字幕二区 | 天天射成人 | 91成人久久 | 天天干天天怕 | 香蕉视频在线免费看 | 国产成人精品免高潮在线观看 | 91精品影视 | 波多野结衣电影一区二区三区 | 日韩中文字幕免费在线观看 | 天天爽天天搞 | 91完整版在线观看 | 中文字幕日韩电影 | 久久激情片 | 国产亚洲精品v | 狠狠夜夜| 天天射天天干 | 久草在线视频新 | 欧美成人xxxx | 国产成人久久av免费高清密臂 | av电影免费看 | 97av视频在线观看 | 中文字幕一区二区三区乱码不卡 | 欧美日韩破处 | 色婷婷亚洲婷婷 | 在线99视频 | 国产精品原创在线 | 黄色影院在线播放 | 91日韩精品 | 日本精品视频一区 | 亚洲精品视频在线 | 亚洲精品视频一 | 在线观看岛国av | 国产精品久免费的黄网站 | 中文字幕第一页在线播放 |