mirror of
https://github.com/wgh136/flutter_qjs.git
synced 2025-09-27 05:27:23 +00:00
coverage
This commit is contained in:
BIN
coverage/amber.png
Normal file
BIN
coverage/amber.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 141 B |
BIN
coverage/emerald.png
Normal file
BIN
coverage/emerald.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 141 B |
519
coverage/gcov.css
Normal file
519
coverage/gcov.css
Normal file
@@ -0,0 +1,519 @@
|
||||
/* All views: initial background and text color */
|
||||
body
|
||||
{
|
||||
color: #000000;
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
|
||||
/* All views: standard link format*/
|
||||
a:link
|
||||
{
|
||||
color: #284FA8;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/* All views: standard link - visited format */
|
||||
a:visited
|
||||
{
|
||||
color: #00CB40;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/* All views: standard link - activated format */
|
||||
a:active
|
||||
{
|
||||
color: #FF0040;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/* All views: main title format */
|
||||
td.title
|
||||
{
|
||||
text-align: center;
|
||||
padding-bottom: 10px;
|
||||
font-family: sans-serif;
|
||||
font-size: 20pt;
|
||||
font-style: italic;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* All views: header item format */
|
||||
td.headerItem
|
||||
{
|
||||
text-align: right;
|
||||
padding-right: 6px;
|
||||
font-family: sans-serif;
|
||||
font-weight: bold;
|
||||
vertical-align: top;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
/* All views: header item value format */
|
||||
td.headerValue
|
||||
{
|
||||
text-align: left;
|
||||
color: #284FA8;
|
||||
font-family: sans-serif;
|
||||
font-weight: bold;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
/* All views: header item coverage table heading */
|
||||
td.headerCovTableHead
|
||||
{
|
||||
text-align: center;
|
||||
padding-right: 6px;
|
||||
padding-left: 6px;
|
||||
padding-bottom: 0px;
|
||||
font-family: sans-serif;
|
||||
font-size: 80%;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
/* All views: header item coverage table entry */
|
||||
td.headerCovTableEntry
|
||||
{
|
||||
text-align: right;
|
||||
color: #284FA8;
|
||||
font-family: sans-serif;
|
||||
font-weight: bold;
|
||||
white-space: nowrap;
|
||||
padding-left: 12px;
|
||||
padding-right: 4px;
|
||||
background-color: #DAE7FE;
|
||||
}
|
||||
|
||||
/* All views: header item coverage table entry for high coverage rate */
|
||||
td.headerCovTableEntryHi
|
||||
{
|
||||
text-align: right;
|
||||
color: #000000;
|
||||
font-family: sans-serif;
|
||||
font-weight: bold;
|
||||
white-space: nowrap;
|
||||
padding-left: 12px;
|
||||
padding-right: 4px;
|
||||
background-color: #A7FC9D;
|
||||
}
|
||||
|
||||
/* All views: header item coverage table entry for medium coverage rate */
|
||||
td.headerCovTableEntryMed
|
||||
{
|
||||
text-align: right;
|
||||
color: #000000;
|
||||
font-family: sans-serif;
|
||||
font-weight: bold;
|
||||
white-space: nowrap;
|
||||
padding-left: 12px;
|
||||
padding-right: 4px;
|
||||
background-color: #FFEA20;
|
||||
}
|
||||
|
||||
/* All views: header item coverage table entry for ow coverage rate */
|
||||
td.headerCovTableEntryLo
|
||||
{
|
||||
text-align: right;
|
||||
color: #000000;
|
||||
font-family: sans-serif;
|
||||
font-weight: bold;
|
||||
white-space: nowrap;
|
||||
padding-left: 12px;
|
||||
padding-right: 4px;
|
||||
background-color: #FF0000;
|
||||
}
|
||||
|
||||
/* All views: header legend value for legend entry */
|
||||
td.headerValueLeg
|
||||
{
|
||||
text-align: left;
|
||||
color: #000000;
|
||||
font-family: sans-serif;
|
||||
font-size: 80%;
|
||||
white-space: nowrap;
|
||||
padding-top: 4px;
|
||||
}
|
||||
|
||||
/* All views: color of horizontal ruler */
|
||||
td.ruler
|
||||
{
|
||||
background-color: #6688D4;
|
||||
}
|
||||
|
||||
/* All views: version string format */
|
||||
td.versionInfo
|
||||
{
|
||||
text-align: center;
|
||||
padding-top: 2px;
|
||||
font-family: sans-serif;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
/* Directory view/File view (all)/Test case descriptions:
|
||||
table headline format */
|
||||
td.tableHead
|
||||
{
|
||||
text-align: center;
|
||||
color: #FFFFFF;
|
||||
background-color: #6688D4;
|
||||
font-family: sans-serif;
|
||||
font-size: 120%;
|
||||
font-weight: bold;
|
||||
white-space: nowrap;
|
||||
padding-left: 4px;
|
||||
padding-right: 4px;
|
||||
}
|
||||
|
||||
span.tableHeadSort
|
||||
{
|
||||
padding-right: 4px;
|
||||
}
|
||||
|
||||
/* Directory view/File view (all): filename entry format */
|
||||
td.coverFile
|
||||
{
|
||||
text-align: left;
|
||||
padding-left: 10px;
|
||||
padding-right: 20px;
|
||||
color: #284FA8;
|
||||
background-color: #DAE7FE;
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
/* Directory view/File view (all): bar-graph entry format*/
|
||||
td.coverBar
|
||||
{
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
background-color: #DAE7FE;
|
||||
}
|
||||
|
||||
/* Directory view/File view (all): bar-graph outline color */
|
||||
td.coverBarOutline
|
||||
{
|
||||
background-color: #000000;
|
||||
}
|
||||
|
||||
/* Directory view/File view (all): percentage entry for files with
|
||||
high coverage rate */
|
||||
td.coverPerHi
|
||||
{
|
||||
text-align: right;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
background-color: #A7FC9D;
|
||||
font-weight: bold;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
/* Directory view/File view (all): line count entry for files with
|
||||
high coverage rate */
|
||||
td.coverNumHi
|
||||
{
|
||||
text-align: right;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
background-color: #A7FC9D;
|
||||
white-space: nowrap;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
/* Directory view/File view (all): percentage entry for files with
|
||||
medium coverage rate */
|
||||
td.coverPerMed
|
||||
{
|
||||
text-align: right;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
background-color: #FFEA20;
|
||||
font-weight: bold;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
/* Directory view/File view (all): line count entry for files with
|
||||
medium coverage rate */
|
||||
td.coverNumMed
|
||||
{
|
||||
text-align: right;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
background-color: #FFEA20;
|
||||
white-space: nowrap;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
/* Directory view/File view (all): percentage entry for files with
|
||||
low coverage rate */
|
||||
td.coverPerLo
|
||||
{
|
||||
text-align: right;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
background-color: #FF0000;
|
||||
font-weight: bold;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
/* Directory view/File view (all): line count entry for files with
|
||||
low coverage rate */
|
||||
td.coverNumLo
|
||||
{
|
||||
text-align: right;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
background-color: #FF0000;
|
||||
white-space: nowrap;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
/* File view (all): "show/hide details" link format */
|
||||
a.detail:link
|
||||
{
|
||||
color: #B8D0FF;
|
||||
font-size:80%;
|
||||
}
|
||||
|
||||
/* File view (all): "show/hide details" link - visited format */
|
||||
a.detail:visited
|
||||
{
|
||||
color: #B8D0FF;
|
||||
font-size:80%;
|
||||
}
|
||||
|
||||
/* File view (all): "show/hide details" link - activated format */
|
||||
a.detail:active
|
||||
{
|
||||
color: #FFFFFF;
|
||||
font-size:80%;
|
||||
}
|
||||
|
||||
/* File view (detail): test name entry */
|
||||
td.testName
|
||||
{
|
||||
text-align: right;
|
||||
padding-right: 10px;
|
||||
background-color: #DAE7FE;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
/* File view (detail): test percentage entry */
|
||||
td.testPer
|
||||
{
|
||||
text-align: right;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
background-color: #DAE7FE;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
/* File view (detail): test lines count entry */
|
||||
td.testNum
|
||||
{
|
||||
text-align: right;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
background-color: #DAE7FE;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
/* Test case descriptions: test name format*/
|
||||
dt
|
||||
{
|
||||
font-family: sans-serif;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* Test case descriptions: description table body */
|
||||
td.testDescription
|
||||
{
|
||||
padding-top: 10px;
|
||||
padding-left: 30px;
|
||||
padding-bottom: 10px;
|
||||
padding-right: 30px;
|
||||
background-color: #DAE7FE;
|
||||
}
|
||||
|
||||
/* Source code view: function entry */
|
||||
td.coverFn
|
||||
{
|
||||
text-align: left;
|
||||
padding-left: 10px;
|
||||
padding-right: 20px;
|
||||
color: #284FA8;
|
||||
background-color: #DAE7FE;
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
/* Source code view: function entry zero count*/
|
||||
td.coverFnLo
|
||||
{
|
||||
text-align: right;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
background-color: #FF0000;
|
||||
font-weight: bold;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
/* Source code view: function entry nonzero count*/
|
||||
td.coverFnHi
|
||||
{
|
||||
text-align: right;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
background-color: #DAE7FE;
|
||||
font-weight: bold;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
/* Source code view: source code format */
|
||||
pre.source
|
||||
{
|
||||
font-family: monospace;
|
||||
white-space: pre;
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
/* Source code view: line number format */
|
||||
span.lineNum
|
||||
{
|
||||
background-color: #EFE383;
|
||||
}
|
||||
|
||||
/* Source code view: format for lines which were executed */
|
||||
td.lineCov,
|
||||
span.lineCov
|
||||
{
|
||||
background-color: #CAD7FE;
|
||||
}
|
||||
|
||||
/* Source code view: format for Cov legend */
|
||||
span.coverLegendCov
|
||||
{
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
padding-bottom: 2px;
|
||||
background-color: #CAD7FE;
|
||||
}
|
||||
|
||||
/* Source code view: format for lines which were not executed */
|
||||
td.lineNoCov,
|
||||
span.lineNoCov
|
||||
{
|
||||
background-color: #FF6230;
|
||||
}
|
||||
|
||||
/* Source code view: format for NoCov legend */
|
||||
span.coverLegendNoCov
|
||||
{
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
padding-bottom: 2px;
|
||||
background-color: #FF6230;
|
||||
}
|
||||
|
||||
/* Source code view (function table): standard link - visited format */
|
||||
td.lineNoCov > a:visited,
|
||||
td.lineCov > a:visited
|
||||
{
|
||||
color: black;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/* Source code view: format for lines which were executed only in a
|
||||
previous version */
|
||||
span.lineDiffCov
|
||||
{
|
||||
background-color: #B5F7AF;
|
||||
}
|
||||
|
||||
/* Source code view: format for branches which were executed
|
||||
* and taken */
|
||||
span.branchCov
|
||||
{
|
||||
background-color: #CAD7FE;
|
||||
}
|
||||
|
||||
/* Source code view: format for branches which were executed
|
||||
* but not taken */
|
||||
span.branchNoCov
|
||||
{
|
||||
background-color: #FF6230;
|
||||
}
|
||||
|
||||
/* Source code view: format for branches which were not executed */
|
||||
span.branchNoExec
|
||||
{
|
||||
background-color: #FF6230;
|
||||
}
|
||||
|
||||
/* Source code view: format for the source code heading line */
|
||||
pre.sourceHeading
|
||||
{
|
||||
white-space: pre;
|
||||
font-family: monospace;
|
||||
font-weight: bold;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
/* All views: header legend value for low rate */
|
||||
td.headerValueLegL
|
||||
{
|
||||
font-family: sans-serif;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
padding-left: 4px;
|
||||
padding-right: 2px;
|
||||
background-color: #FF0000;
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
/* All views: header legend value for med rate */
|
||||
td.headerValueLegM
|
||||
{
|
||||
font-family: sans-serif;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
padding-left: 2px;
|
||||
padding-right: 2px;
|
||||
background-color: #FFEA20;
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
/* All views: header legend value for hi rate */
|
||||
td.headerValueLegH
|
||||
{
|
||||
font-family: sans-serif;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
padding-left: 2px;
|
||||
padding-right: 4px;
|
||||
background-color: #A7FC9D;
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
/* All views except source code view: legend format for low coverage */
|
||||
span.coverLegendCovLo
|
||||
{
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
padding-top: 2px;
|
||||
background-color: #FF0000;
|
||||
}
|
||||
|
||||
/* All views except source code view: legend format for med coverage */
|
||||
span.coverLegendCovMed
|
||||
{
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
padding-top: 2px;
|
||||
background-color: #FFEA20;
|
||||
}
|
||||
|
||||
/* All views except source code view: legend format for hi coverage */
|
||||
span.coverLegendCovHi
|
||||
{
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
padding-top: 2px;
|
||||
background-color: #A7FC9D;
|
||||
}
|
BIN
coverage/glass.png
Normal file
BIN
coverage/glass.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 167 B |
93
coverage/index-sort-f.html
Normal file
93
coverage/index-sort-f.html
Normal file
@@ -0,0 +1,93 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>LCOV - lcov.info</title>
|
||||
<link rel="stylesheet" type="text/css" href="gcov.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="title">LCOV - code coverage report</td></tr>
|
||||
<tr><td class="ruler"><img src="glass.png" width=3 height=3 alt=""></td></tr>
|
||||
|
||||
<tr>
|
||||
<td width="100%">
|
||||
<table cellpadding=1 border=0 width="100%">
|
||||
<tr>
|
||||
<td width="10%" class="headerItem">Current view:</td>
|
||||
<td width="35%" class="headerValue">top level</td>
|
||||
<td width="5%"></td>
|
||||
<td width="15%"></td>
|
||||
<td width="10%" class="headerCovTableHead">Hit</td>
|
||||
<td width="10%" class="headerCovTableHead">Total</td>
|
||||
<td width="15%" class="headerCovTableHead">Coverage</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Test:</td>
|
||||
<td class="headerValue">lcov.info</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Lines:</td>
|
||||
<td class="headerCovTableEntry">652</td>
|
||||
<td class="headerCovTableEntry">736</td>
|
||||
<td class="headerCovTableEntryMed">88.6 %</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Date:</td>
|
||||
<td class="headerValue">2021-03-31 22:28:15</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Functions:</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntryHi">-</td>
|
||||
</tr>
|
||||
<tr><td><img src="glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr><td class="ruler"><img src="glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
|
||||
<center>
|
||||
<table width="80%" cellpadding=1 cellspacing=1 border=0>
|
||||
|
||||
<tr>
|
||||
<td width="50%"><br></td>
|
||||
<td width="10%"></td>
|
||||
<td width="10%"></td>
|
||||
<td width="10%"></td>
|
||||
<td width="10%"></td>
|
||||
<td width="10%"></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="tableHead">Directory <span class="tableHeadSort"><a href="index.html"><img src="updown.png" width=10 height=14 alt="Sort by name" title="Sort by name" border=0></a></span></td>
|
||||
<td class="tableHead" colspan=3>Line Coverage <span class="tableHeadSort"><a href="index-sort-l.html"><img src="updown.png" width=10 height=14 alt="Sort by line coverage" title="Sort by line coverage" border=0></a></span></td>
|
||||
<td class="tableHead" colspan=2>Functions <span class="tableHeadSort"><img src="glass.png" width=10 height=14 alt="Sort by function coverage" title="Sort by function coverage" border=0></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="coverFile"><a href="src/index.html">src</a></td>
|
||||
<td class="coverBar" align="center">
|
||||
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="amber.png" width=89 height=10 alt="88.6%"><img src="snow.png" width=11 height=10 alt="88.6%"></td></tr></table>
|
||||
</td>
|
||||
<td class="coverPerMed">88.6 %</td>
|
||||
<td class="coverNumMed">652 / 736</td>
|
||||
<td class="coverPerHi">-</td>
|
||||
<td class="coverNumHi">0 / 0</td>
|
||||
</tr>
|
||||
</table>
|
||||
</center>
|
||||
<br>
|
||||
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="ruler"><img src="glass.png" width=3 height=3 alt=""></td></tr>
|
||||
<tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php">LCOV version 1.14</a></td></tr>
|
||||
</table>
|
||||
<br>
|
||||
|
||||
</body>
|
||||
</html>
|
93
coverage/index-sort-l.html
Normal file
93
coverage/index-sort-l.html
Normal file
@@ -0,0 +1,93 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>LCOV - lcov.info</title>
|
||||
<link rel="stylesheet" type="text/css" href="gcov.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="title">LCOV - code coverage report</td></tr>
|
||||
<tr><td class="ruler"><img src="glass.png" width=3 height=3 alt=""></td></tr>
|
||||
|
||||
<tr>
|
||||
<td width="100%">
|
||||
<table cellpadding=1 border=0 width="100%">
|
||||
<tr>
|
||||
<td width="10%" class="headerItem">Current view:</td>
|
||||
<td width="35%" class="headerValue">top level</td>
|
||||
<td width="5%"></td>
|
||||
<td width="15%"></td>
|
||||
<td width="10%" class="headerCovTableHead">Hit</td>
|
||||
<td width="10%" class="headerCovTableHead">Total</td>
|
||||
<td width="15%" class="headerCovTableHead">Coverage</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Test:</td>
|
||||
<td class="headerValue">lcov.info</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Lines:</td>
|
||||
<td class="headerCovTableEntry">652</td>
|
||||
<td class="headerCovTableEntry">736</td>
|
||||
<td class="headerCovTableEntryMed">88.6 %</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Date:</td>
|
||||
<td class="headerValue">2021-03-31 22:28:15</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Functions:</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntryHi">-</td>
|
||||
</tr>
|
||||
<tr><td><img src="glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr><td class="ruler"><img src="glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
|
||||
<center>
|
||||
<table width="80%" cellpadding=1 cellspacing=1 border=0>
|
||||
|
||||
<tr>
|
||||
<td width="50%"><br></td>
|
||||
<td width="10%"></td>
|
||||
<td width="10%"></td>
|
||||
<td width="10%"></td>
|
||||
<td width="10%"></td>
|
||||
<td width="10%"></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="tableHead">Directory <span class="tableHeadSort"><a href="index.html"><img src="updown.png" width=10 height=14 alt="Sort by name" title="Sort by name" border=0></a></span></td>
|
||||
<td class="tableHead" colspan=3>Line Coverage <span class="tableHeadSort"><img src="glass.png" width=10 height=14 alt="Sort by line coverage" title="Sort by line coverage" border=0></span></td>
|
||||
<td class="tableHead" colspan=2>Functions <span class="tableHeadSort"><a href="index-sort-f.html"><img src="updown.png" width=10 height=14 alt="Sort by function coverage" title="Sort by function coverage" border=0></a></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="coverFile"><a href="src/index.html">src</a></td>
|
||||
<td class="coverBar" align="center">
|
||||
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="amber.png" width=89 height=10 alt="88.6%"><img src="snow.png" width=11 height=10 alt="88.6%"></td></tr></table>
|
||||
</td>
|
||||
<td class="coverPerMed">88.6 %</td>
|
||||
<td class="coverNumMed">652 / 736</td>
|
||||
<td class="coverPerHi">-</td>
|
||||
<td class="coverNumHi">0 / 0</td>
|
||||
</tr>
|
||||
</table>
|
||||
</center>
|
||||
<br>
|
||||
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="ruler"><img src="glass.png" width=3 height=3 alt=""></td></tr>
|
||||
<tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php">LCOV version 1.14</a></td></tr>
|
||||
</table>
|
||||
<br>
|
||||
|
||||
</body>
|
||||
</html>
|
93
coverage/index.html
Normal file
93
coverage/index.html
Normal file
@@ -0,0 +1,93 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>LCOV - lcov.info</title>
|
||||
<link rel="stylesheet" type="text/css" href="gcov.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="title">LCOV - code coverage report</td></tr>
|
||||
<tr><td class="ruler"><img src="glass.png" width=3 height=3 alt=""></td></tr>
|
||||
|
||||
<tr>
|
||||
<td width="100%">
|
||||
<table cellpadding=1 border=0 width="100%">
|
||||
<tr>
|
||||
<td width="10%" class="headerItem">Current view:</td>
|
||||
<td width="35%" class="headerValue">top level</td>
|
||||
<td width="5%"></td>
|
||||
<td width="15%"></td>
|
||||
<td width="10%" class="headerCovTableHead">Hit</td>
|
||||
<td width="10%" class="headerCovTableHead">Total</td>
|
||||
<td width="15%" class="headerCovTableHead">Coverage</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Test:</td>
|
||||
<td class="headerValue">lcov.info</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Lines:</td>
|
||||
<td class="headerCovTableEntry">652</td>
|
||||
<td class="headerCovTableEntry">736</td>
|
||||
<td class="headerCovTableEntryMed">88.6 %</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Date:</td>
|
||||
<td class="headerValue">2021-03-31 22:28:15</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Functions:</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntryHi">-</td>
|
||||
</tr>
|
||||
<tr><td><img src="glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr><td class="ruler"><img src="glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
|
||||
<center>
|
||||
<table width="80%" cellpadding=1 cellspacing=1 border=0>
|
||||
|
||||
<tr>
|
||||
<td width="50%"><br></td>
|
||||
<td width="10%"></td>
|
||||
<td width="10%"></td>
|
||||
<td width="10%"></td>
|
||||
<td width="10%"></td>
|
||||
<td width="10%"></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="tableHead">Directory <span class="tableHeadSort"><img src="glass.png" width=10 height=14 alt="Sort by name" title="Sort by name" border=0></span></td>
|
||||
<td class="tableHead" colspan=3>Line Coverage <span class="tableHeadSort"><a href="index-sort-l.html"><img src="updown.png" width=10 height=14 alt="Sort by line coverage" title="Sort by line coverage" border=0></a></span></td>
|
||||
<td class="tableHead" colspan=2>Functions <span class="tableHeadSort"><a href="index-sort-f.html"><img src="updown.png" width=10 height=14 alt="Sort by function coverage" title="Sort by function coverage" border=0></a></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="coverFile"><a href="src/index.html">src</a></td>
|
||||
<td class="coverBar" align="center">
|
||||
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="amber.png" width=89 height=10 alt="88.6%"><img src="snow.png" width=11 height=10 alt="88.6%"></td></tr></table>
|
||||
</td>
|
||||
<td class="coverPerMed">88.6 %</td>
|
||||
<td class="coverNumMed">652 / 736</td>
|
||||
<td class="coverPerHi">-</td>
|
||||
<td class="coverNumHi">0 / 0</td>
|
||||
</tr>
|
||||
</table>
|
||||
</center>
|
||||
<br>
|
||||
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="ruler"><img src="glass.png" width=3 height=3 alt=""></td></tr>
|
||||
<tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php">LCOV version 1.14</a></td></tr>
|
||||
</table>
|
||||
<br>
|
||||
|
||||
</body>
|
||||
</html>
|
756
coverage/lcov.info
Normal file
756
coverage/lcov.info
Normal file
@@ -0,0 +1,756 @@
|
||||
SF:lib/src/object.dart
|
||||
DA:14,3
|
||||
DA:15,3
|
||||
DA:17,3
|
||||
DA:18,3
|
||||
DA:25,3
|
||||
DA:27,3
|
||||
DA:31,15
|
||||
DA:33,8
|
||||
DA:34,3
|
||||
DA:35,3
|
||||
DA:39,0
|
||||
DA:41,0
|
||||
DA:44,0
|
||||
DA:53,3
|
||||
DA:54,3
|
||||
DA:55,3
|
||||
DA:56,6
|
||||
DA:57,15
|
||||
DA:60,3
|
||||
DA:61,18
|
||||
DA:65,0
|
||||
DA:67,0
|
||||
DA:68,0
|
||||
DA:71,3
|
||||
DA:73,3
|
||||
DA:74,3
|
||||
DA:75,3
|
||||
DA:76,3
|
||||
DA:78,15
|
||||
DA:79,6
|
||||
DA:87,2
|
||||
DA:88,2
|
||||
DA:89,0
|
||||
DA:90,0
|
||||
DA:92,4
|
||||
DA:93,5
|
||||
DA:97,0
|
||||
DA:99,0
|
||||
DA:102,3
|
||||
DA:103,3
|
||||
DA:104,6
|
||||
DA:108,2
|
||||
DA:110,2
|
||||
DA:111,2
|
||||
DA:112,2
|
||||
DA:124,3
|
||||
DA:125,3
|
||||
DA:126,6
|
||||
DA:127,9
|
||||
DA:128,9
|
||||
DA:131,3
|
||||
DA:133,3
|
||||
DA:134,3
|
||||
DA:135,3
|
||||
DA:136,3
|
||||
DA:138,6
|
||||
DA:139,9
|
||||
DA:140,3
|
||||
DA:143,1
|
||||
DA:145,2
|
||||
DA:146,3
|
||||
DA:152,6
|
||||
DA:154,3
|
||||
DA:156,3
|
||||
DA:157,3
|
||||
DA:158,9
|
||||
DA:160,0
|
||||
DA:161,0
|
||||
DA:163,3
|
||||
DA:164,3
|
||||
DA:168,3
|
||||
DA:169,3
|
||||
DA:170,3
|
||||
DA:172,0
|
||||
DA:174,3
|
||||
DA:175,6
|
||||
DA:177,3
|
||||
DA:178,3
|
||||
DA:179,3
|
||||
DA:180,3
|
||||
DA:181,6
|
||||
DA:182,3
|
||||
DA:187,2
|
||||
DA:189,4
|
||||
DA:198,3
|
||||
DA:200,3
|
||||
DA:201,6
|
||||
DA:203,3
|
||||
DA:206,6
|
||||
DA:208,3
|
||||
DA:210,3
|
||||
DA:211,6
|
||||
DA:212,3
|
||||
DA:214,6
|
||||
DA:215,12
|
||||
DA:217,0
|
||||
DA:218,12
|
||||
DA:219,3
|
||||
DA:221,0
|
||||
DA:223,0
|
||||
DA:229,3
|
||||
DA:232,3
|
||||
DA:233,3
|
||||
DA:234,1
|
||||
DA:235,3
|
||||
DA:236,6
|
||||
DA:237,3
|
||||
DA:239,3
|
||||
DA:241,6
|
||||
DA:242,5
|
||||
DA:243,0
|
||||
DA:244,3
|
||||
DA:247,2
|
||||
DA:248,4
|
||||
DA:249,4
|
||||
DA:250,2
|
||||
DA:253,3
|
||||
DA:255,3
|
||||
DA:256,6
|
||||
DA:258,3
|
||||
DA:259,6
|
||||
DA:260,8
|
||||
DA:262,3
|
||||
DA:263,0
|
||||
DA:266,6
|
||||
DA:267,6
|
||||
DA:268,6
|
||||
DA:272,3
|
||||
DA:273,3
|
||||
DA:274,3
|
||||
DA:275,6
|
||||
DA:281,3
|
||||
DA:282,3
|
||||
DA:283,3
|
||||
DA:284,3
|
||||
DA:285,3
|
||||
DA:290,3
|
||||
DA:292,3
|
||||
DA:293,6
|
||||
DA:294,6
|
||||
DA:300,3
|
||||
DA:302,3
|
||||
DA:305,3
|
||||
DA:307,3
|
||||
DA:310,0
|
||||
DA:312,0
|
||||
LF:146
|
||||
LH:126
|
||||
end_of_record
|
||||
SF:lib/src/isolate.dart
|
||||
DA:11,9
|
||||
DA:20,3
|
||||
DA:21,3
|
||||
DA:22,5
|
||||
DA:23,6
|
||||
DA:24,3
|
||||
DA:25,3
|
||||
DA:26,3
|
||||
DA:27,9
|
||||
DA:28,9
|
||||
DA:32,3
|
||||
DA:33,2
|
||||
DA:34,2
|
||||
DA:35,4
|
||||
DA:36,6
|
||||
DA:37,4
|
||||
DA:41,3
|
||||
DA:42,2
|
||||
DA:43,4
|
||||
DA:44,6
|
||||
DA:45,2
|
||||
DA:46,4
|
||||
DA:48,2
|
||||
DA:49,6
|
||||
DA:50,2
|
||||
DA:51,6
|
||||
DA:54,2
|
||||
DA:55,2
|
||||
DA:61,3
|
||||
DA:62,3
|
||||
DA:63,5
|
||||
DA:64,3
|
||||
DA:65,3
|
||||
DA:66,3
|
||||
DA:67,9
|
||||
DA:68,9
|
||||
DA:72,3
|
||||
DA:73,6
|
||||
DA:74,3
|
||||
DA:77,2
|
||||
DA:78,2
|
||||
DA:79,2
|
||||
DA:80,4
|
||||
DA:81,2
|
||||
DA:82,6
|
||||
DA:83,6
|
||||
DA:84,2
|
||||
DA:85,4
|
||||
DA:86,6
|
||||
DA:88,4
|
||||
DA:91,2
|
||||
DA:93,2
|
||||
DA:94,2
|
||||
DA:95,4
|
||||
DA:96,6
|
||||
DA:97,4
|
||||
DA:104,2
|
||||
DA:105,2
|
||||
DA:106,2
|
||||
DA:107,4
|
||||
DA:108,2
|
||||
DA:109,2
|
||||
DA:110,1
|
||||
DA:111,2
|
||||
DA:113,1
|
||||
DA:116,0
|
||||
DA:118,0
|
||||
DA:119,0
|
||||
DA:122,0
|
||||
DA:124,0
|
||||
DA:125,0
|
||||
DA:126,0
|
||||
DA:127,0
|
||||
DA:128,0
|
||||
DA:129,0
|
||||
DA:133,4
|
||||
DA:135,2
|
||||
DA:137,2
|
||||
DA:138,2
|
||||
DA:139,4
|
||||
DA:140,2
|
||||
DA:141,2
|
||||
DA:142,2
|
||||
DA:145,2
|
||||
DA:147,4
|
||||
DA:148,2
|
||||
DA:149,2
|
||||
DA:153,4
|
||||
DA:156,0
|
||||
DA:157,0
|
||||
DA:161,4
|
||||
DA:182,1
|
||||
DA:188,1
|
||||
DA:189,1
|
||||
DA:190,1
|
||||
DA:191,1
|
||||
DA:193,1
|
||||
DA:194,1
|
||||
DA:195,1
|
||||
DA:199,1
|
||||
DA:200,2
|
||||
DA:201,2
|
||||
DA:202,1
|
||||
DA:205,1
|
||||
DA:206,1
|
||||
DA:208,2
|
||||
DA:209,1
|
||||
DA:210,2
|
||||
DA:212,0
|
||||
DA:215,0
|
||||
DA:218,0
|
||||
DA:219,0
|
||||
DA:221,0
|
||||
DA:223,0
|
||||
DA:227,0
|
||||
DA:228,0
|
||||
DA:229,0
|
||||
DA:230,0
|
||||
DA:232,2
|
||||
DA:236,1
|
||||
DA:237,1
|
||||
DA:238,1
|
||||
DA:240,2
|
||||
DA:241,1
|
||||
DA:242,2
|
||||
DA:244,1
|
||||
DA:246,2
|
||||
DA:247,1
|
||||
DA:248,1
|
||||
DA:249,0
|
||||
DA:250,1
|
||||
DA:256,1
|
||||
DA:261,1
|
||||
DA:262,1
|
||||
DA:263,2
|
||||
DA:264,2
|
||||
DA:269,1
|
||||
DA:271,2
|
||||
DA:272,1
|
||||
DA:273,2
|
||||
DA:274,0
|
||||
DA:275,1
|
||||
LF:142
|
||||
LH:118
|
||||
end_of_record
|
||||
SF:lib/src/wrapper.dart
|
||||
DA:10,2
|
||||
DA:11,2
|
||||
DA:14,2
|
||||
DA:18,1
|
||||
DA:22,2
|
||||
DA:29,2
|
||||
DA:30,4
|
||||
DA:31,4
|
||||
DA:35,2
|
||||
DA:38,4
|
||||
DA:39,2
|
||||
DA:42,3
|
||||
DA:48,3
|
||||
DA:49,6
|
||||
DA:50,6
|
||||
DA:51,6
|
||||
DA:52,3
|
||||
DA:56,3
|
||||
DA:58,6
|
||||
DA:59,3
|
||||
DA:60,3
|
||||
DA:61,3
|
||||
DA:62,4
|
||||
DA:63,2
|
||||
DA:64,4
|
||||
DA:65,4
|
||||
DA:68,12
|
||||
DA:69,3
|
||||
DA:70,9
|
||||
DA:72,12
|
||||
DA:73,6
|
||||
DA:74,3
|
||||
DA:75,3
|
||||
DA:76,3
|
||||
DA:77,3
|
||||
DA:78,3
|
||||
DA:79,3
|
||||
DA:80,3
|
||||
DA:81,3
|
||||
DA:82,3
|
||||
DA:83,6
|
||||
DA:84,6
|
||||
DA:85,2
|
||||
DA:86,4
|
||||
DA:87,6
|
||||
DA:88,3
|
||||
DA:89,3
|
||||
DA:93,3
|
||||
DA:94,7
|
||||
DA:95,7
|
||||
DA:96,7
|
||||
DA:97,6
|
||||
DA:98,3
|
||||
DA:99,0
|
||||
DA:100,0
|
||||
DA:101,0
|
||||
DA:102,0
|
||||
DA:103,0
|
||||
DA:106,3
|
||||
DA:107,6
|
||||
DA:109,3
|
||||
DA:110,4
|
||||
DA:111,2
|
||||
DA:112,6
|
||||
DA:113,4
|
||||
DA:117,3
|
||||
DA:118,4
|
||||
DA:119,2
|
||||
DA:120,4
|
||||
DA:121,6
|
||||
DA:126,3
|
||||
DA:128,15
|
||||
DA:129,3
|
||||
DA:130,6
|
||||
DA:133,6
|
||||
DA:135,3
|
||||
DA:136,6
|
||||
DA:137,3
|
||||
DA:143,3
|
||||
DA:145,3
|
||||
DA:146,6
|
||||
DA:147,9
|
||||
DA:148,4
|
||||
DA:151,3
|
||||
DA:152,6
|
||||
DA:153,3
|
||||
DA:154,4
|
||||
DA:155,3
|
||||
DA:156,3
|
||||
DA:157,3
|
||||
DA:158,6
|
||||
DA:159,9
|
||||
DA:161,3
|
||||
DA:162,6
|
||||
DA:163,3
|
||||
DA:166,6
|
||||
DA:167,3
|
||||
DA:168,3
|
||||
DA:169,6
|
||||
DA:170,0
|
||||
DA:172,6
|
||||
DA:173,3
|
||||
DA:174,2
|
||||
DA:176,9
|
||||
DA:177,3
|
||||
DA:178,9
|
||||
DA:179,2
|
||||
DA:180,2
|
||||
DA:182,8
|
||||
DA:183,2
|
||||
DA:184,2
|
||||
DA:185,9
|
||||
DA:186,3
|
||||
DA:188,3
|
||||
DA:189,3
|
||||
DA:190,3
|
||||
DA:191,8
|
||||
DA:192,3
|
||||
DA:193,6
|
||||
DA:194,3
|
||||
DA:195,3
|
||||
DA:196,6
|
||||
DA:198,2
|
||||
DA:199,2
|
||||
DA:200,4
|
||||
DA:203,3
|
||||
DA:204,3
|
||||
DA:205,9
|
||||
DA:206,3
|
||||
DA:207,0
|
||||
DA:208,3
|
||||
DA:209,6
|
||||
DA:210,2
|
||||
DA:211,4
|
||||
DA:212,2
|
||||
DA:213,2
|
||||
DA:214,4
|
||||
DA:215,2
|
||||
DA:216,4
|
||||
DA:217,2
|
||||
DA:223,8
|
||||
DA:224,0
|
||||
DA:225,0
|
||||
DA:228,2
|
||||
DA:229,2
|
||||
DA:230,2
|
||||
DA:231,2
|
||||
DA:232,4
|
||||
DA:233,6
|
||||
DA:234,4
|
||||
DA:235,4
|
||||
DA:236,4
|
||||
DA:237,2
|
||||
DA:238,2
|
||||
DA:239,2
|
||||
DA:240,4
|
||||
DA:242,6
|
||||
DA:243,2
|
||||
LF:158
|
||||
LH:149
|
||||
end_of_record
|
||||
SF:lib/src/engine.dart
|
||||
DA:33,3
|
||||
DA:39,3
|
||||
DA:40,3
|
||||
DA:41,6
|
||||
DA:44,3
|
||||
DA:45,3
|
||||
DA:46,9
|
||||
DA:47,3
|
||||
DA:48,6
|
||||
DA:49,6
|
||||
DA:51,3
|
||||
DA:52,15
|
||||
DA:56,3
|
||||
DA:58,3
|
||||
DA:60,3
|
||||
DA:62,3
|
||||
DA:64,6
|
||||
DA:66,3
|
||||
DA:67,1
|
||||
DA:68,2
|
||||
DA:69,2
|
||||
DA:70,1
|
||||
DA:71,2
|
||||
DA:72,1
|
||||
DA:74,1
|
||||
DA:75,3
|
||||
DA:76,2
|
||||
DA:77,2
|
||||
DA:78,4
|
||||
DA:80,0
|
||||
DA:82,2
|
||||
DA:83,3
|
||||
DA:84,3
|
||||
DA:85,9
|
||||
DA:86,3
|
||||
DA:88,0
|
||||
DA:90,0
|
||||
DA:91,0
|
||||
DA:92,0
|
||||
DA:94,0
|
||||
DA:95,0
|
||||
DA:96,0
|
||||
DA:98,0
|
||||
DA:99,0
|
||||
DA:100,0
|
||||
DA:101,0
|
||||
DA:102,0
|
||||
DA:103,0
|
||||
DA:107,3
|
||||
DA:108,3
|
||||
DA:109,3
|
||||
DA:110,3
|
||||
DA:111,6
|
||||
DA:115,3
|
||||
DA:116,3
|
||||
DA:117,3
|
||||
DA:118,3
|
||||
DA:119,3
|
||||
DA:120,6
|
||||
DA:122,3
|
||||
DA:124,3
|
||||
DA:125,1
|
||||
DA:126,1
|
||||
DA:130,3
|
||||
DA:131,3
|
||||
DA:132,3
|
||||
DA:135,6
|
||||
DA:136,3
|
||||
DA:137,3
|
||||
DA:144,3
|
||||
DA:145,9
|
||||
DA:146,3
|
||||
DA:151,3
|
||||
DA:156,3
|
||||
DA:157,3
|
||||
DA:158,3
|
||||
DA:164,9
|
||||
DA:165,1
|
||||
DA:166,1
|
||||
DA:168,3
|
||||
DA:169,3
|
||||
LF:81
|
||||
LH:67
|
||||
end_of_record
|
||||
SF:lib/src/ffi.dart
|
||||
DA:14,3
|
||||
DA:16,3
|
||||
DA:17,3
|
||||
DA:25,3
|
||||
DA:26,6
|
||||
DA:29,3
|
||||
DA:30,6
|
||||
DA:31,9
|
||||
DA:36,3
|
||||
DA:37,7
|
||||
DA:40,3
|
||||
DA:41,7
|
||||
DA:44,3
|
||||
DA:51,3
|
||||
DA:52,3
|
||||
DA:53,3
|
||||
DA:54,12
|
||||
DA:56,3
|
||||
DA:57,2
|
||||
DA:58,10
|
||||
DA:60,3
|
||||
DA:61,2
|
||||
DA:116,15
|
||||
DA:117,3
|
||||
DA:118,3
|
||||
DA:119,0
|
||||
DA:120,0
|
||||
DA:121,0
|
||||
DA:122,0
|
||||
DA:123,0
|
||||
DA:124,0
|
||||
DA:125,0
|
||||
DA:126,0
|
||||
DA:132,0
|
||||
DA:142,0
|
||||
DA:147,9
|
||||
DA:148,3
|
||||
DA:159,9
|
||||
DA:160,3
|
||||
DA:172,3
|
||||
DA:174,6
|
||||
DA:176,9
|
||||
DA:178,9
|
||||
DA:180,3
|
||||
DA:181,6
|
||||
DA:185,9
|
||||
DA:187,3
|
||||
DA:192,3
|
||||
DA:193,3
|
||||
DA:194,6
|
||||
DA:195,12
|
||||
DA:198,3
|
||||
DA:202,6
|
||||
DA:203,9
|
||||
DA:211,0
|
||||
DA:223,9
|
||||
DA:224,3
|
||||
DA:231,3
|
||||
DA:234,3
|
||||
DA:235,6
|
||||
DA:238,12
|
||||
DA:240,3
|
||||
DA:241,12
|
||||
DA:243,6
|
||||
DA:244,2
|
||||
DA:245,2
|
||||
DA:246,4
|
||||
DA:247,1
|
||||
DA:248,6
|
||||
DA:249,1
|
||||
DA:252,6
|
||||
DA:253,6
|
||||
DA:254,1
|
||||
DA:255,1
|
||||
DA:263,9
|
||||
DA:264,3
|
||||
DA:275,9
|
||||
DA:276,3
|
||||
DA:283,3
|
||||
DA:284,6
|
||||
DA:285,6
|
||||
DA:286,0
|
||||
DA:287,6
|
||||
DA:294,9
|
||||
DA:295,3
|
||||
DA:305,9
|
||||
DA:306,3
|
||||
DA:320,9
|
||||
DA:321,3
|
||||
DA:332,3
|
||||
DA:338,3
|
||||
DA:339,3
|
||||
DA:340,6
|
||||
DA:343,3
|
||||
DA:347,3
|
||||
DA:348,3
|
||||
DA:349,21
|
||||
DA:356,9
|
||||
DA:357,3
|
||||
DA:367,9
|
||||
DA:368,3
|
||||
DA:378,9
|
||||
DA:379,3
|
||||
DA:390,6
|
||||
DA:391,2
|
||||
DA:403,6
|
||||
DA:404,2
|
||||
DA:416,6
|
||||
DA:417,2
|
||||
DA:429,9
|
||||
DA:430,3
|
||||
DA:438,3
|
||||
DA:442,3
|
||||
DA:443,6
|
||||
DA:444,3
|
||||
DA:453,0
|
||||
DA:466,6
|
||||
DA:467,2
|
||||
DA:477,6
|
||||
DA:478,2
|
||||
DA:490,9
|
||||
DA:491,3
|
||||
DA:500,3
|
||||
DA:505,6
|
||||
DA:513,0
|
||||
DA:523,0
|
||||
DA:528,0
|
||||
DA:535,9
|
||||
DA:536,3
|
||||
DA:548,0
|
||||
DA:561,6
|
||||
DA:562,2
|
||||
DA:574,6
|
||||
DA:575,2
|
||||
DA:587,6
|
||||
DA:588,2
|
||||
DA:600,9
|
||||
DA:601,3
|
||||
DA:613,9
|
||||
DA:614,3
|
||||
DA:622,3
|
||||
DA:626,6
|
||||
DA:627,6
|
||||
DA:628,3
|
||||
DA:629,6
|
||||
DA:637,9
|
||||
DA:638,3
|
||||
DA:646,3
|
||||
DA:650,3
|
||||
DA:651,6
|
||||
DA:655,3
|
||||
DA:664,9
|
||||
DA:665,3
|
||||
DA:678,9
|
||||
DA:679,3
|
||||
DA:692,9
|
||||
DA:693,3
|
||||
DA:706,9
|
||||
DA:707,3
|
||||
DA:719,9
|
||||
DA:720,3
|
||||
DA:732,6
|
||||
DA:733,2
|
||||
DA:745,9
|
||||
DA:746,3
|
||||
DA:757,6
|
||||
DA:758,2
|
||||
DA:771,9
|
||||
DA:772,3
|
||||
DA:789,6
|
||||
DA:790,2
|
||||
DA:805,9
|
||||
DA:806,3
|
||||
DA:818,9
|
||||
DA:819,3
|
||||
DA:831,6
|
||||
DA:832,2
|
||||
DA:848,6
|
||||
DA:849,2
|
||||
DA:864,6
|
||||
DA:865,2
|
||||
DA:874,9
|
||||
DA:875,3
|
||||
DA:878,12
|
||||
DA:885,9
|
||||
DA:886,3
|
||||
DA:903,9
|
||||
DA:904,3
|
||||
DA:915,3
|
||||
DA:922,15
|
||||
DA:923,3
|
||||
DA:924,9
|
||||
DA:925,3
|
||||
DA:926,6
|
||||
DA:928,6
|
||||
DA:930,9
|
||||
DA:931,3
|
||||
DA:932,3
|
||||
DA:933,21
|
||||
DA:940,9
|
||||
DA:941,3
|
||||
DA:951,3
|
||||
DA:952,1
|
||||
DA:962,9
|
||||
DA:963,3
|
||||
DA:974,9
|
||||
DA:975,3
|
||||
DA:987,6
|
||||
DA:988,2
|
||||
LF:209
|
||||
LH:192
|
||||
end_of_record
|
BIN
coverage/ruby.png
Normal file
BIN
coverage/ruby.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 141 B |
BIN
coverage/snow.png
Normal file
BIN
coverage/snow.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 141 B |
72
coverage/src/engine.dart.func-sort-c.html
Normal file
72
coverage/src/engine.dart.func-sort-c.html
Normal file
@@ -0,0 +1,72 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>LCOV - lcov.info - src/engine.dart - functions</title>
|
||||
<link rel="stylesheet" type="text/css" href="../gcov.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="title">LCOV - code coverage report</td></tr>
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
|
||||
<tr>
|
||||
<td width="100%">
|
||||
<table cellpadding=1 border=0 width="100%">
|
||||
<tr>
|
||||
<td width="10%" class="headerItem">Current view:</td>
|
||||
<td width="35%" class="headerValue"><a href="../index.html">top level</a> - <a href="index.html">src</a> - engine.dart<span style="font-size: 80%;"> (<a href="engine.dart.gcov.html">source</a> / functions)</span></td>
|
||||
<td width="5%"></td>
|
||||
<td width="15%"></td>
|
||||
<td width="10%" class="headerCovTableHead">Hit</td>
|
||||
<td width="10%" class="headerCovTableHead">Total</td>
|
||||
<td width="15%" class="headerCovTableHead">Coverage</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Test:</td>
|
||||
<td class="headerValue">lcov.info</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Lines:</td>
|
||||
<td class="headerCovTableEntry">67</td>
|
||||
<td class="headerCovTableEntry">81</td>
|
||||
<td class="headerCovTableEntryMed">82.7 %</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Date:</td>
|
||||
<td class="headerValue">2021-03-31 22:28:15</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Functions:</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntryHi">-</td>
|
||||
</tr>
|
||||
<tr><td><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
|
||||
<center>
|
||||
<table width="60%" cellpadding=1 cellspacing=1 border=0>
|
||||
<tr><td><br></td></tr>
|
||||
<tr>
|
||||
<td width="80%" class="tableHead">Function Name <span class="tableHeadSort"><a href="engine.dart.func.html"><img src="../updown.png" width=10 height=14 alt="Sort by function name" title="Sort by function name" border=0></a></span></td>
|
||||
<td width="20%" class="tableHead">Hit count <span class="tableHeadSort"><img src="../glass.png" width=10 height=14 alt="Sort by hit count" title="Sort by hit count" border=0></span></td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
</center>
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
<tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LCOV version 1.14</a></td></tr>
|
||||
</table>
|
||||
<br>
|
||||
|
||||
</body>
|
||||
</html>
|
72
coverage/src/engine.dart.func.html
Normal file
72
coverage/src/engine.dart.func.html
Normal file
@@ -0,0 +1,72 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>LCOV - lcov.info - src/engine.dart - functions</title>
|
||||
<link rel="stylesheet" type="text/css" href="../gcov.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="title">LCOV - code coverage report</td></tr>
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
|
||||
<tr>
|
||||
<td width="100%">
|
||||
<table cellpadding=1 border=0 width="100%">
|
||||
<tr>
|
||||
<td width="10%" class="headerItem">Current view:</td>
|
||||
<td width="35%" class="headerValue"><a href="../index.html">top level</a> - <a href="index.html">src</a> - engine.dart<span style="font-size: 80%;"> (<a href="engine.dart.gcov.html">source</a> / functions)</span></td>
|
||||
<td width="5%"></td>
|
||||
<td width="15%"></td>
|
||||
<td width="10%" class="headerCovTableHead">Hit</td>
|
||||
<td width="10%" class="headerCovTableHead">Total</td>
|
||||
<td width="15%" class="headerCovTableHead">Coverage</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Test:</td>
|
||||
<td class="headerValue">lcov.info</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Lines:</td>
|
||||
<td class="headerCovTableEntry">67</td>
|
||||
<td class="headerCovTableEntry">81</td>
|
||||
<td class="headerCovTableEntryMed">82.7 %</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Date:</td>
|
||||
<td class="headerValue">2021-03-31 22:28:15</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Functions:</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntryHi">-</td>
|
||||
</tr>
|
||||
<tr><td><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
|
||||
<center>
|
||||
<table width="60%" cellpadding=1 cellspacing=1 border=0>
|
||||
<tr><td><br></td></tr>
|
||||
<tr>
|
||||
<td width="80%" class="tableHead">Function Name <span class="tableHeadSort"><img src="../glass.png" width=10 height=14 alt="Sort by function name" title="Sort by function name" border=0></span></td>
|
||||
<td width="20%" class="tableHead">Hit count <span class="tableHeadSort"><a href="engine.dart.func-sort-c.html"><img src="../updown.png" width=10 height=14 alt="Sort by hit count" title="Sort by hit count" border=0></a></span></td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
</center>
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
<tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LCOV version 1.14</a></td></tr>
|
||||
</table>
|
||||
<br>
|
||||
|
||||
</body>
|
||||
</html>
|
248
coverage/src/engine.dart.gcov.html
Normal file
248
coverage/src/engine.dart.gcov.html
Normal file
@@ -0,0 +1,248 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>LCOV - lcov.info - src/engine.dart</title>
|
||||
<link rel="stylesheet" type="text/css" href="../gcov.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="title">LCOV - code coverage report</td></tr>
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
|
||||
<tr>
|
||||
<td width="100%">
|
||||
<table cellpadding=1 border=0 width="100%">
|
||||
<tr>
|
||||
<td width="10%" class="headerItem">Current view:</td>
|
||||
<td width="35%" class="headerValue"><a href="../index.html">top level</a> - <a href="index.html">src</a> - engine.dart<span style="font-size: 80%;"> (source / <a href="engine.dart.func-sort-c.html">functions</a>)</span></td>
|
||||
<td width="5%"></td>
|
||||
<td width="15%"></td>
|
||||
<td width="10%" class="headerCovTableHead">Hit</td>
|
||||
<td width="10%" class="headerCovTableHead">Total</td>
|
||||
<td width="15%" class="headerCovTableHead">Coverage</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Test:</td>
|
||||
<td class="headerValue">lcov.info</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Lines:</td>
|
||||
<td class="headerCovTableEntry">67</td>
|
||||
<td class="headerCovTableEntry">81</td>
|
||||
<td class="headerCovTableEntryMed">82.7 %</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Date:</td>
|
||||
<td class="headerValue">2021-03-31 22:28:15</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Functions:</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntryHi">-</td>
|
||||
</tr>
|
||||
<tr><td><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
|
||||
<table cellpadding=0 cellspacing=0 border=0>
|
||||
<tr>
|
||||
<td><br></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<pre class="sourceHeading"> Line data Source code</pre>
|
||||
<pre class="source">
|
||||
<a name="1"><span class="lineNum"> 1 </span> : /*</a>
|
||||
<a name="2"><span class="lineNum"> 2 </span> : * @Description: quickjs engine</a>
|
||||
<a name="3"><span class="lineNum"> 3 </span> : * @Author: ekibun</a>
|
||||
<a name="4"><span class="lineNum"> 4 </span> : * @Date: 2020-08-08 08:29:09</a>
|
||||
<a name="5"><span class="lineNum"> 5 </span> : * @LastEditors: ekibun</a>
|
||||
<a name="6"><span class="lineNum"> 6 </span> : * @LastEditTime: 2020-10-06 23:47:13</a>
|
||||
<a name="7"><span class="lineNum"> 7 </span> : */</a>
|
||||
<a name="8"><span class="lineNum"> 8 </span> : part of '../flutter_qjs.dart';</a>
|
||||
<a name="9"><span class="lineNum"> 9 </span> : </a>
|
||||
<a name="10"><span class="lineNum"> 10 </span> : /// Handler function to manage js module.</a>
|
||||
<a name="11"><span class="lineNum"> 11 </span> : typedef _JsModuleHandler = String Function(String name);</a>
|
||||
<a name="12"><span class="lineNum"> 12 </span> : </a>
|
||||
<a name="13"><span class="lineNum"> 13 </span> : /// Handler to manage unhandled promise rejection.</a>
|
||||
<a name="14"><span class="lineNum"> 14 </span> : typedef _JsHostPromiseRejectionHandler = void Function(dynamic reason);</a>
|
||||
<a name="15"><span class="lineNum"> 15 </span> : </a>
|
||||
<a name="16"><span class="lineNum"> 16 </span> : /// Quickjs engine for flutter.</a>
|
||||
<a name="17"><span class="lineNum"> 17 </span> : class FlutterQjs {</a>
|
||||
<a name="18"><span class="lineNum"> 18 </span> : Pointer<JSRuntime>? _rt;</a>
|
||||
<a name="19"><span class="lineNum"> 19 </span> : Pointer<JSContext>? _ctx;</a>
|
||||
<a name="20"><span class="lineNum"> 20 </span> : </a>
|
||||
<a name="21"><span class="lineNum"> 21 </span> : /// Max stack size for quickjs.</a>
|
||||
<a name="22"><span class="lineNum"> 22 </span> : final int? stackSize;</a>
|
||||
<a name="23"><span class="lineNum"> 23 </span> : </a>
|
||||
<a name="24"><span class="lineNum"> 24 </span> : /// Message Port for event loop. Close it to stop dispatching event loop.</a>
|
||||
<a name="25"><span class="lineNum"> 25 </span> : ReceivePort port = ReceivePort();</a>
|
||||
<a name="26"><span class="lineNum"> 26 </span> : </a>
|
||||
<a name="27"><span class="lineNum"> 27 </span> : /// Handler function to manage js module.</a>
|
||||
<a name="28"><span class="lineNum"> 28 </span> : final _JsModuleHandler? moduleHandler;</a>
|
||||
<a name="29"><span class="lineNum"> 29 </span> : </a>
|
||||
<a name="30"><span class="lineNum"> 30 </span> : /// Handler function to manage js module.</a>
|
||||
<a name="31"><span class="lineNum"> 31 </span> : final _JsHostPromiseRejectionHandler? hostPromiseRejectionHandler;</a>
|
||||
<a name="32"><span class="lineNum"> 32 </span> : </a>
|
||||
<a name="33"><span class="lineNum"> 33 </span><span class="lineCov"> 3 : FlutterQjs({</span></a>
|
||||
<a name="34"><span class="lineNum"> 34 </span> : this.moduleHandler,</a>
|
||||
<a name="35"><span class="lineNum"> 35 </span> : this.stackSize,</a>
|
||||
<a name="36"><span class="lineNum"> 36 </span> : this.hostPromiseRejectionHandler,</a>
|
||||
<a name="37"><span class="lineNum"> 37 </span> : });</a>
|
||||
<a name="38"><span class="lineNum"> 38 </span> : </a>
|
||||
<a name="39"><span class="lineNum"> 39 </span><span class="lineCov"> 3 : _ensureEngine() {</span></a>
|
||||
<a name="40"><span class="lineNum"> 40 </span><span class="lineCov"> 3 : if (_rt != null) return;</span></a>
|
||||
<a name="41"><span class="lineNum"> 41 </span><span class="lineCov"> 6 : final rt = jsNewRuntime((ctx, type, ptr) {</span></a>
|
||||
<a name="42"><span class="lineNum"> 42 </span> : try {</a>
|
||||
<a name="43"><span class="lineNum"> 43 </span> : switch (type) {</a>
|
||||
<a name="44"><span class="lineNum"> 44 </span><span class="lineCov"> 3 : case JSChannelType.METHON:</span></a>
|
||||
<a name="45"><span class="lineNum"> 45 </span><span class="lineCov"> 3 : final pdata = ptr.cast<Pointer<JSValue>>();</span></a>
|
||||
<a name="46"><span class="lineNum"> 46 </span><span class="lineCov"> 9 : final argc = pdata.elementAt(1).value.cast<Int32>().value;</span></a>
|
||||
<a name="47"><span class="lineNum"> 47 </span><span class="lineCov"> 3 : final pargs = [];</span></a>
|
||||
<a name="48"><span class="lineNum"> 48 </span><span class="lineCov"> 6 : for (var i = 0; i < argc; ++i) {</span></a>
|
||||
<a name="49"><span class="lineNum"> 49 </span><span class="lineCov"> 6 : pargs.add(_jsToDart(</span></a>
|
||||
<a name="50"><span class="lineNum"> 50 </span> : ctx,</a>
|
||||
<a name="51"><span class="lineNum"> 51 </span><span class="lineCov"> 3 : Pointer.fromAddress(</span></a>
|
||||
<a name="52"><span class="lineNum"> 52 </span><span class="lineCov"> 15 : pdata.elementAt(2).value.address + sizeOfJSValue * i,</span></a>
|
||||
<a name="53"><span class="lineNum"> 53 </span> : ),</a>
|
||||
<a name="54"><span class="lineNum"> 54 </span> : ));</a>
|
||||
<a name="55"><span class="lineNum"> 55 </span> : }</a>
|
||||
<a name="56"><span class="lineNum"> 56 </span><span class="lineCov"> 3 : final JSInvokable func = _jsToDart(</span></a>
|
||||
<a name="57"><span class="lineNum"> 57 </span> : ctx,</a>
|
||||
<a name="58"><span class="lineNum"> 58 </span><span class="lineCov"> 3 : pdata.elementAt(3).value,</span></a>
|
||||
<a name="59"><span class="lineNum"> 59 </span> : );</a>
|
||||
<a name="60"><span class="lineNum"> 60 </span><span class="lineCov"> 3 : return _dartToJs(</span></a>
|
||||
<a name="61"><span class="lineNum"> 61 </span> : ctx,</a>
|
||||
<a name="62"><span class="lineNum"> 62 </span><span class="lineCov"> 3 : func.invoke(</span></a>
|
||||
<a name="63"><span class="lineNum"> 63 </span> : pargs,</a>
|
||||
<a name="64"><span class="lineNum"> 64 </span><span class="lineCov"> 6 : _jsToDart(ctx, pdata.elementAt(0).value),</span></a>
|
||||
<a name="65"><span class="lineNum"> 65 </span> : ));</a>
|
||||
<a name="66"><span class="lineNum"> 66 </span><span class="lineCov"> 3 : case JSChannelType.MODULE:</span></a>
|
||||
<a name="67"><span class="lineNum"> 67 </span><span class="lineCov"> 1 : if (moduleHandler == null) throw JSError('No ModuleHandler');</span></a>
|
||||
<a name="68"><span class="lineNum"> 68 </span><span class="lineCov"> 2 : final ret = moduleHandler!(</span></a>
|
||||
<a name="69"><span class="lineNum"> 69 </span><span class="lineCov"> 2 : ptr.cast<Utf8>().toDartString(),</span></a>
|
||||
<a name="70"><span class="lineNum"> 70 </span><span class="lineCov"> 1 : ).toNativeUtf8();</span></a>
|
||||
<a name="71"><span class="lineNum"> 71 </span><span class="lineCov"> 2 : Future.microtask(() {</span></a>
|
||||
<a name="72"><span class="lineNum"> 72 </span><span class="lineCov"> 1 : malloc.free(ret);</span></a>
|
||||
<a name="73"><span class="lineNum"> 73 </span> : });</a>
|
||||
<a name="74"><span class="lineNum"> 74 </span><span class="lineCov"> 1 : return ret.cast();</span></a>
|
||||
<a name="75"><span class="lineNum"> 75 </span><span class="lineCov"> 3 : case JSChannelType.PROMISE_TRACK:</span></a>
|
||||
<a name="76"><span class="lineNum"> 76 </span><span class="lineCov"> 2 : final err = _parseJSException(ctx, ptr);</span></a>
|
||||
<a name="77"><span class="lineNum"> 77 </span><span class="lineCov"> 2 : if (hostPromiseRejectionHandler != null) {</span></a>
|
||||
<a name="78"><span class="lineNum"> 78 </span><span class="lineCov"> 4 : hostPromiseRejectionHandler!(err);</span></a>
|
||||
<a name="79"><span class="lineNum"> 79 </span> : } else {</a>
|
||||
<a name="80"><span class="lineNum"> 80 </span><span class="lineNoCov"> 0 : print('unhandled promise rejection: $err');</span></a>
|
||||
<a name="81"><span class="lineNum"> 81 </span> : }</a>
|
||||
<a name="82"><span class="lineNum"> 82 </span><span class="lineCov"> 2 : return nullptr;</span></a>
|
||||
<a name="83"><span class="lineNum"> 83 </span><span class="lineCov"> 3 : case JSChannelType.FREE_OBJECT:</span></a>
|
||||
<a name="84"><span class="lineNum"> 84 </span><span class="lineCov"> 3 : final rt = ctx.cast<JSRuntime>();</span></a>
|
||||
<a name="85"><span class="lineNum"> 85 </span><span class="lineCov"> 9 : _DartObject.fromAddress(rt, ptr.address)?.free();</span></a>
|
||||
<a name="86"><span class="lineNum"> 86 </span><span class="lineCov"> 3 : return nullptr;</span></a>
|
||||
<a name="87"><span class="lineNum"> 87 </span> : }</a>
|
||||
<a name="88"><span class="lineNum"> 88 </span><span class="lineNoCov"> 0 : throw JSError('call channel with wrong type');</span></a>
|
||||
<a name="89"><span class="lineNum"> 89 </span> : } catch (e) {</a>
|
||||
<a name="90"><span class="lineNum"> 90 </span><span class="lineNoCov"> 0 : if (type == JSChannelType.FREE_OBJECT) {</span></a>
|
||||
<a name="91"><span class="lineNum"> 91 </span><span class="lineNoCov"> 0 : print('DartObject release error: $e');</span></a>
|
||||
<a name="92"><span class="lineNum"> 92 </span><span class="lineNoCov"> 0 : return nullptr;</span></a>
|
||||
<a name="93"><span class="lineNum"> 93 </span> : }</a>
|
||||
<a name="94"><span class="lineNum"> 94 </span><span class="lineNoCov"> 0 : if (type == JSChannelType.MODULE) {</span></a>
|
||||
<a name="95"><span class="lineNum"> 95 </span><span class="lineNoCov"> 0 : print('host Promise Rejection Handler error: $e');</span></a>
|
||||
<a name="96"><span class="lineNum"> 96 </span><span class="lineNoCov"> 0 : return nullptr;</span></a>
|
||||
<a name="97"><span class="lineNum"> 97 </span> : }</a>
|
||||
<a name="98"><span class="lineNum"> 98 </span><span class="lineNoCov"> 0 : final throwObj = _dartToJs(ctx, e);</span></a>
|
||||
<a name="99"><span class="lineNum"> 99 </span><span class="lineNoCov"> 0 : final err = jsThrow(ctx, throwObj);</span></a>
|
||||
<a name="100"><span class="lineNum"> 100 </span><span class="lineNoCov"> 0 : jsFreeValue(ctx, throwObj);</span></a>
|
||||
<a name="101"><span class="lineNum"> 101 </span><span class="lineNoCov"> 0 : if (type == JSChannelType.MODULE) {</span></a>
|
||||
<a name="102"><span class="lineNum"> 102 </span><span class="lineNoCov"> 0 : jsFreeValue(ctx, err);</span></a>
|
||||
<a name="103"><span class="lineNum"> 103 </span><span class="lineNoCov"> 0 : return nullptr;</span></a>
|
||||
<a name="104"><span class="lineNum"> 104 </span> : }</a>
|
||||
<a name="105"><span class="lineNum"> 105 </span> : return err;</a>
|
||||
<a name="106"><span class="lineNum"> 106 </span> : }</a>
|
||||
<a name="107"><span class="lineNum"> 107 </span><span class="lineCov"> 3 : }, port);</span></a>
|
||||
<a name="108"><span class="lineNum"> 108 </span><span class="lineCov"> 3 : final stackSize = this.stackSize ?? 0;</span></a>
|
||||
<a name="109"><span class="lineNum"> 109 </span><span class="lineCov"> 3 : if (stackSize > 0) jsSetMaxStackSize(rt, stackSize);</span></a>
|
||||
<a name="110"><span class="lineNum"> 110 </span><span class="lineCov"> 3 : _rt = rt;</span></a>
|
||||
<a name="111"><span class="lineNum"> 111 </span><span class="lineCov"> 6 : _ctx = jsNewContext(rt);</span></a>
|
||||
<a name="112"><span class="lineNum"> 112 </span> : }</a>
|
||||
<a name="113"><span class="lineNum"> 113 </span> : </a>
|
||||
<a name="114"><span class="lineNum"> 114 </span> : /// Free Runtime and Context which can be recreate when evaluate again.</a>
|
||||
<a name="115"><span class="lineNum"> 115 </span><span class="lineCov"> 3 : close() {</span></a>
|
||||
<a name="116"><span class="lineNum"> 116 </span><span class="lineCov"> 3 : final rt = _rt;</span></a>
|
||||
<a name="117"><span class="lineNum"> 117 </span><span class="lineCov"> 3 : final ctx = _ctx;</span></a>
|
||||
<a name="118"><span class="lineNum"> 118 </span><span class="lineCov"> 3 : _rt = null;</span></a>
|
||||
<a name="119"><span class="lineNum"> 119 </span><span class="lineCov"> 3 : _ctx = null;</span></a>
|
||||
<a name="120"><span class="lineNum"> 120 </span><span class="lineCov"> 6 : if (ctx != null) jsFreeContext(ctx);</span></a>
|
||||
<a name="121"><span class="lineNum"> 121 </span> : if (rt == null) return;</a>
|
||||
<a name="122"><span class="lineNum"> 122 </span><span class="lineCov"> 3 : _executePendingJob();</span></a>
|
||||
<a name="123"><span class="lineNum"> 123 </span> : try {</a>
|
||||
<a name="124"><span class="lineNum"> 124 </span><span class="lineCov"> 3 : jsFreeRuntime(rt);</span></a>
|
||||
<a name="125"><span class="lineNum"> 125 </span><span class="lineCov"> 1 : } on String catch (e) {</span></a>
|
||||
<a name="126"><span class="lineNum"> 126 </span><span class="lineCov"> 1 : throw JSError(e);</span></a>
|
||||
<a name="127"><span class="lineNum"> 127 </span> : }</a>
|
||||
<a name="128"><span class="lineNum"> 128 </span> : }</a>
|
||||
<a name="129"><span class="lineNum"> 129 </span> : </a>
|
||||
<a name="130"><span class="lineNum"> 130 </span><span class="lineCov"> 3 : void _executePendingJob() {</span></a>
|
||||
<a name="131"><span class="lineNum"> 131 </span><span class="lineCov"> 3 : final rt = _rt;</span></a>
|
||||
<a name="132"><span class="lineNum"> 132 </span><span class="lineCov"> 3 : final ctx = _ctx;</span></a>
|
||||
<a name="133"><span class="lineNum"> 133 </span> : if (rt == null || ctx == null) return;</a>
|
||||
<a name="134"><span class="lineNum"> 134 </span> : while (true) {</a>
|
||||
<a name="135"><span class="lineNum"> 135 </span><span class="lineCov"> 6 : int err = jsExecutePendingJob(rt);</span></a>
|
||||
<a name="136"><span class="lineNum"> 136 </span><span class="lineCov"> 3 : if (err <= 0) {</span></a>
|
||||
<a name="137"><span class="lineNum"> 137 </span><span class="lineCov"> 3 : if (err < 0) print(_parseJSException(ctx));</span></a>
|
||||
<a name="138"><span class="lineNum"> 138 </span> : break;</a>
|
||||
<a name="139"><span class="lineNum"> 139 </span> : }</a>
|
||||
<a name="140"><span class="lineNum"> 140 </span> : }</a>
|
||||
<a name="141"><span class="lineNum"> 141 </span> : }</a>
|
||||
<a name="142"><span class="lineNum"> 142 </span> : </a>
|
||||
<a name="143"><span class="lineNum"> 143 </span> : /// Dispatch JavaScript Event loop.</a>
|
||||
<a name="144"><span class="lineNum"> 144 </span><span class="lineCov"> 3 : Future<void> dispatch() async {</span></a>
|
||||
<a name="145"><span class="lineNum"> 145 </span><span class="lineCov"> 9 : await for (final _ in port) {</span></a>
|
||||
<a name="146"><span class="lineNum"> 146 </span><span class="lineCov"> 3 : _executePendingJob();</span></a>
|
||||
<a name="147"><span class="lineNum"> 147 </span> : }</a>
|
||||
<a name="148"><span class="lineNum"> 148 </span> : }</a>
|
||||
<a name="149"><span class="lineNum"> 149 </span> : </a>
|
||||
<a name="150"><span class="lineNum"> 150 </span> : /// Evaluate js script.</a>
|
||||
<a name="151"><span class="lineNum"> 151 </span><span class="lineCov"> 3 : dynamic evaluate(</span></a>
|
||||
<a name="152"><span class="lineNum"> 152 </span> : String command, {</a>
|
||||
<a name="153"><span class="lineNum"> 153 </span> : String? name,</a>
|
||||
<a name="154"><span class="lineNum"> 154 </span> : int? evalFlags,</a>
|
||||
<a name="155"><span class="lineNum"> 155 </span> : }) {</a>
|
||||
<a name="156"><span class="lineNum"> 156 </span><span class="lineCov"> 3 : _ensureEngine();</span></a>
|
||||
<a name="157"><span class="lineNum"> 157 </span><span class="lineCov"> 3 : final ctx = _ctx!;</span></a>
|
||||
<a name="158"><span class="lineNum"> 158 </span><span class="lineCov"> 3 : final jsval = jsEval(</span></a>
|
||||
<a name="159"><span class="lineNum"> 159 </span> : ctx,</a>
|
||||
<a name="160"><span class="lineNum"> 160 </span> : command,</a>
|
||||
<a name="161"><span class="lineNum"> 161 </span> : name ?? '<eval>',</a>
|
||||
<a name="162"><span class="lineNum"> 162 </span> : evalFlags ?? JSEvalFlag.GLOBAL,</a>
|
||||
<a name="163"><span class="lineNum"> 163 </span> : );</a>
|
||||
<a name="164"><span class="lineNum"> 164 </span><span class="lineCov"> 9 : if (jsIsException(jsval) != 0) {</span></a>
|
||||
<a name="165"><span class="lineNum"> 165 </span><span class="lineCov"> 1 : jsFreeValue(ctx, jsval);</span></a>
|
||||
<a name="166"><span class="lineNum"> 166 </span><span class="lineCov"> 1 : throw _parseJSException(ctx);</span></a>
|
||||
<a name="167"><span class="lineNum"> 167 </span> : }</a>
|
||||
<a name="168"><span class="lineNum"> 168 </span><span class="lineCov"> 3 : final result = _jsToDart(ctx, jsval);</span></a>
|
||||
<a name="169"><span class="lineNum"> 169 </span><span class="lineCov"> 3 : jsFreeValue(ctx, jsval);</span></a>
|
||||
<a name="170"><span class="lineNum"> 170 </span> : return result;</a>
|
||||
<a name="171"><span class="lineNum"> 171 </span> : }</a>
|
||||
<a name="172"><span class="lineNum"> 172 </span> : }</a>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
<tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LCOV version 1.14</a></td></tr>
|
||||
</table>
|
||||
<br>
|
||||
|
||||
</body>
|
||||
</html>
|
72
coverage/src/ffi.dart.func-sort-c.html
Normal file
72
coverage/src/ffi.dart.func-sort-c.html
Normal file
@@ -0,0 +1,72 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>LCOV - lcov.info - src/ffi.dart - functions</title>
|
||||
<link rel="stylesheet" type="text/css" href="../gcov.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="title">LCOV - code coverage report</td></tr>
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
|
||||
<tr>
|
||||
<td width="100%">
|
||||
<table cellpadding=1 border=0 width="100%">
|
||||
<tr>
|
||||
<td width="10%" class="headerItem">Current view:</td>
|
||||
<td width="35%" class="headerValue"><a href="../index.html">top level</a> - <a href="index.html">src</a> - ffi.dart<span style="font-size: 80%;"> (<a href="ffi.dart.gcov.html">source</a> / functions)</span></td>
|
||||
<td width="5%"></td>
|
||||
<td width="15%"></td>
|
||||
<td width="10%" class="headerCovTableHead">Hit</td>
|
||||
<td width="10%" class="headerCovTableHead">Total</td>
|
||||
<td width="15%" class="headerCovTableHead">Coverage</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Test:</td>
|
||||
<td class="headerValue">lcov.info</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Lines:</td>
|
||||
<td class="headerCovTableEntry">192</td>
|
||||
<td class="headerCovTableEntry">209</td>
|
||||
<td class="headerCovTableEntryHi">91.9 %</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Date:</td>
|
||||
<td class="headerValue">2021-03-31 22:28:15</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Functions:</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntryHi">-</td>
|
||||
</tr>
|
||||
<tr><td><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
|
||||
<center>
|
||||
<table width="60%" cellpadding=1 cellspacing=1 border=0>
|
||||
<tr><td><br></td></tr>
|
||||
<tr>
|
||||
<td width="80%" class="tableHead">Function Name <span class="tableHeadSort"><a href="ffi.dart.func.html"><img src="../updown.png" width=10 height=14 alt="Sort by function name" title="Sort by function name" border=0></a></span></td>
|
||||
<td width="20%" class="tableHead">Hit count <span class="tableHeadSort"><img src="../glass.png" width=10 height=14 alt="Sort by hit count" title="Sort by hit count" border=0></span></td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
</center>
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
<tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LCOV version 1.14</a></td></tr>
|
||||
</table>
|
||||
<br>
|
||||
|
||||
</body>
|
||||
</html>
|
72
coverage/src/ffi.dart.func.html
Normal file
72
coverage/src/ffi.dart.func.html
Normal file
@@ -0,0 +1,72 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>LCOV - lcov.info - src/ffi.dart - functions</title>
|
||||
<link rel="stylesheet" type="text/css" href="../gcov.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="title">LCOV - code coverage report</td></tr>
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
|
||||
<tr>
|
||||
<td width="100%">
|
||||
<table cellpadding=1 border=0 width="100%">
|
||||
<tr>
|
||||
<td width="10%" class="headerItem">Current view:</td>
|
||||
<td width="35%" class="headerValue"><a href="../index.html">top level</a> - <a href="index.html">src</a> - ffi.dart<span style="font-size: 80%;"> (<a href="ffi.dart.gcov.html">source</a> / functions)</span></td>
|
||||
<td width="5%"></td>
|
||||
<td width="15%"></td>
|
||||
<td width="10%" class="headerCovTableHead">Hit</td>
|
||||
<td width="10%" class="headerCovTableHead">Total</td>
|
||||
<td width="15%" class="headerCovTableHead">Coverage</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Test:</td>
|
||||
<td class="headerValue">lcov.info</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Lines:</td>
|
||||
<td class="headerCovTableEntry">192</td>
|
||||
<td class="headerCovTableEntry">209</td>
|
||||
<td class="headerCovTableEntryHi">91.9 %</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Date:</td>
|
||||
<td class="headerValue">2021-03-31 22:28:15</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Functions:</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntryHi">-</td>
|
||||
</tr>
|
||||
<tr><td><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
|
||||
<center>
|
||||
<table width="60%" cellpadding=1 cellspacing=1 border=0>
|
||||
<tr><td><br></td></tr>
|
||||
<tr>
|
||||
<td width="80%" class="tableHead">Function Name <span class="tableHeadSort"><img src="../glass.png" width=10 height=14 alt="Sort by function name" title="Sort by function name" border=0></span></td>
|
||||
<td width="20%" class="tableHead">Hit count <span class="tableHeadSort"><a href="ffi.dart.func-sort-c.html"><img src="../updown.png" width=10 height=14 alt="Sort by hit count" title="Sort by hit count" border=0></a></span></td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
</center>
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
<tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LCOV version 1.14</a></td></tr>
|
||||
</table>
|
||||
<br>
|
||||
|
||||
</body>
|
||||
</html>
|
1070
coverage/src/ffi.dart.gcov.html
Normal file
1070
coverage/src/ffi.dart.gcov.html
Normal file
File diff suppressed because it is too large
Load Diff
133
coverage/src/index-sort-f.html
Normal file
133
coverage/src/index-sort-f.html
Normal file
@@ -0,0 +1,133 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>LCOV - lcov.info - src</title>
|
||||
<link rel="stylesheet" type="text/css" href="../gcov.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="title">LCOV - code coverage report</td></tr>
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
|
||||
<tr>
|
||||
<td width="100%">
|
||||
<table cellpadding=1 border=0 width="100%">
|
||||
<tr>
|
||||
<td width="10%" class="headerItem">Current view:</td>
|
||||
<td width="35%" class="headerValue"><a href="../index.html">top level</a> - src</td>
|
||||
<td width="5%"></td>
|
||||
<td width="15%"></td>
|
||||
<td width="10%" class="headerCovTableHead">Hit</td>
|
||||
<td width="10%" class="headerCovTableHead">Total</td>
|
||||
<td width="15%" class="headerCovTableHead">Coverage</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Test:</td>
|
||||
<td class="headerValue">lcov.info</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Lines:</td>
|
||||
<td class="headerCovTableEntry">652</td>
|
||||
<td class="headerCovTableEntry">736</td>
|
||||
<td class="headerCovTableEntryMed">88.6 %</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Date:</td>
|
||||
<td class="headerValue">2021-03-31 22:28:15</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Functions:</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntryHi">-</td>
|
||||
</tr>
|
||||
<tr><td><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
|
||||
<center>
|
||||
<table width="80%" cellpadding=1 cellspacing=1 border=0>
|
||||
|
||||
<tr>
|
||||
<td width="50%"><br></td>
|
||||
<td width="10%"></td>
|
||||
<td width="10%"></td>
|
||||
<td width="10%"></td>
|
||||
<td width="10%"></td>
|
||||
<td width="10%"></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="tableHead">Filename <span class="tableHeadSort"><a href="index.html"><img src="../updown.png" width=10 height=14 alt="Sort by name" title="Sort by name" border=0></a></span></td>
|
||||
<td class="tableHead" colspan=3>Line Coverage <span class="tableHeadSort"><a href="index-sort-l.html"><img src="../updown.png" width=10 height=14 alt="Sort by line coverage" title="Sort by line coverage" border=0></a></span></td>
|
||||
<td class="tableHead" colspan=2>Functions <span class="tableHeadSort"><img src="../glass.png" width=10 height=14 alt="Sort by function coverage" title="Sort by function coverage" border=0></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="coverFile"><a href="isolate.dart.gcov.html">isolate.dart</a></td>
|
||||
<td class="coverBar" align="center">
|
||||
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../amber.png" width=83 height=10 alt="83.1%"><img src="../snow.png" width=17 height=10 alt="83.1%"></td></tr></table>
|
||||
</td>
|
||||
<td class="coverPerMed">83.1 %</td>
|
||||
<td class="coverNumMed">118 / 142</td>
|
||||
<td class="coverPerHi">-</td>
|
||||
<td class="coverNumHi">0 / 0</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="coverFile"><a href="ffi.dart.gcov.html">ffi.dart</a></td>
|
||||
<td class="coverBar" align="center">
|
||||
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../emerald.png" width=92 height=10 alt="91.9%"><img src="../snow.png" width=8 height=10 alt="91.9%"></td></tr></table>
|
||||
</td>
|
||||
<td class="coverPerHi">91.9 %</td>
|
||||
<td class="coverNumHi">192 / 209</td>
|
||||
<td class="coverPerHi">-</td>
|
||||
<td class="coverNumHi">0 / 0</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="coverFile"><a href="wrapper.dart.gcov.html">wrapper.dart</a></td>
|
||||
<td class="coverBar" align="center">
|
||||
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../emerald.png" width=94 height=10 alt="94.3%"><img src="../snow.png" width=6 height=10 alt="94.3%"></td></tr></table>
|
||||
</td>
|
||||
<td class="coverPerHi">94.3 %</td>
|
||||
<td class="coverNumHi">149 / 158</td>
|
||||
<td class="coverPerHi">-</td>
|
||||
<td class="coverNumHi">0 / 0</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="coverFile"><a href="engine.dart.gcov.html">engine.dart</a></td>
|
||||
<td class="coverBar" align="center">
|
||||
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../amber.png" width=83 height=10 alt="82.7%"><img src="../snow.png" width=17 height=10 alt="82.7%"></td></tr></table>
|
||||
</td>
|
||||
<td class="coverPerMed">82.7 %</td>
|
||||
<td class="coverNumMed">67 / 81</td>
|
||||
<td class="coverPerHi">-</td>
|
||||
<td class="coverNumHi">0 / 0</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="coverFile"><a href="object.dart.gcov.html">object.dart</a></td>
|
||||
<td class="coverBar" align="center">
|
||||
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../amber.png" width=86 height=10 alt="86.3%"><img src="../snow.png" width=14 height=10 alt="86.3%"></td></tr></table>
|
||||
</td>
|
||||
<td class="coverPerMed">86.3 %</td>
|
||||
<td class="coverNumMed">126 / 146</td>
|
||||
<td class="coverPerHi">-</td>
|
||||
<td class="coverNumHi">0 / 0</td>
|
||||
</tr>
|
||||
</table>
|
||||
</center>
|
||||
<br>
|
||||
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
<tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php">LCOV version 1.14</a></td></tr>
|
||||
</table>
|
||||
<br>
|
||||
|
||||
</body>
|
||||
</html>
|
133
coverage/src/index-sort-l.html
Normal file
133
coverage/src/index-sort-l.html
Normal file
@@ -0,0 +1,133 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>LCOV - lcov.info - src</title>
|
||||
<link rel="stylesheet" type="text/css" href="../gcov.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="title">LCOV - code coverage report</td></tr>
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
|
||||
<tr>
|
||||
<td width="100%">
|
||||
<table cellpadding=1 border=0 width="100%">
|
||||
<tr>
|
||||
<td width="10%" class="headerItem">Current view:</td>
|
||||
<td width="35%" class="headerValue"><a href="../index.html">top level</a> - src</td>
|
||||
<td width="5%"></td>
|
||||
<td width="15%"></td>
|
||||
<td width="10%" class="headerCovTableHead">Hit</td>
|
||||
<td width="10%" class="headerCovTableHead">Total</td>
|
||||
<td width="15%" class="headerCovTableHead">Coverage</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Test:</td>
|
||||
<td class="headerValue">lcov.info</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Lines:</td>
|
||||
<td class="headerCovTableEntry">652</td>
|
||||
<td class="headerCovTableEntry">736</td>
|
||||
<td class="headerCovTableEntryMed">88.6 %</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Date:</td>
|
||||
<td class="headerValue">2021-03-31 22:28:15</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Functions:</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntryHi">-</td>
|
||||
</tr>
|
||||
<tr><td><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
|
||||
<center>
|
||||
<table width="80%" cellpadding=1 cellspacing=1 border=0>
|
||||
|
||||
<tr>
|
||||
<td width="50%"><br></td>
|
||||
<td width="10%"></td>
|
||||
<td width="10%"></td>
|
||||
<td width="10%"></td>
|
||||
<td width="10%"></td>
|
||||
<td width="10%"></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="tableHead">Filename <span class="tableHeadSort"><a href="index.html"><img src="../updown.png" width=10 height=14 alt="Sort by name" title="Sort by name" border=0></a></span></td>
|
||||
<td class="tableHead" colspan=3>Line Coverage <span class="tableHeadSort"><img src="../glass.png" width=10 height=14 alt="Sort by line coverage" title="Sort by line coverage" border=0></span></td>
|
||||
<td class="tableHead" colspan=2>Functions <span class="tableHeadSort"><a href="index-sort-f.html"><img src="../updown.png" width=10 height=14 alt="Sort by function coverage" title="Sort by function coverage" border=0></a></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="coverFile"><a href="engine.dart.gcov.html">engine.dart</a></td>
|
||||
<td class="coverBar" align="center">
|
||||
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../amber.png" width=83 height=10 alt="82.7%"><img src="../snow.png" width=17 height=10 alt="82.7%"></td></tr></table>
|
||||
</td>
|
||||
<td class="coverPerMed">82.7 %</td>
|
||||
<td class="coverNumMed">67 / 81</td>
|
||||
<td class="coverPerHi">-</td>
|
||||
<td class="coverNumHi">0 / 0</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="coverFile"><a href="isolate.dart.gcov.html">isolate.dart</a></td>
|
||||
<td class="coverBar" align="center">
|
||||
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../amber.png" width=83 height=10 alt="83.1%"><img src="../snow.png" width=17 height=10 alt="83.1%"></td></tr></table>
|
||||
</td>
|
||||
<td class="coverPerMed">83.1 %</td>
|
||||
<td class="coverNumMed">118 / 142</td>
|
||||
<td class="coverPerHi">-</td>
|
||||
<td class="coverNumHi">0 / 0</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="coverFile"><a href="object.dart.gcov.html">object.dart</a></td>
|
||||
<td class="coverBar" align="center">
|
||||
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../amber.png" width=86 height=10 alt="86.3%"><img src="../snow.png" width=14 height=10 alt="86.3%"></td></tr></table>
|
||||
</td>
|
||||
<td class="coverPerMed">86.3 %</td>
|
||||
<td class="coverNumMed">126 / 146</td>
|
||||
<td class="coverPerHi">-</td>
|
||||
<td class="coverNumHi">0 / 0</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="coverFile"><a href="ffi.dart.gcov.html">ffi.dart</a></td>
|
||||
<td class="coverBar" align="center">
|
||||
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../emerald.png" width=92 height=10 alt="91.9%"><img src="../snow.png" width=8 height=10 alt="91.9%"></td></tr></table>
|
||||
</td>
|
||||
<td class="coverPerHi">91.9 %</td>
|
||||
<td class="coverNumHi">192 / 209</td>
|
||||
<td class="coverPerHi">-</td>
|
||||
<td class="coverNumHi">0 / 0</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="coverFile"><a href="wrapper.dart.gcov.html">wrapper.dart</a></td>
|
||||
<td class="coverBar" align="center">
|
||||
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../emerald.png" width=94 height=10 alt="94.3%"><img src="../snow.png" width=6 height=10 alt="94.3%"></td></tr></table>
|
||||
</td>
|
||||
<td class="coverPerHi">94.3 %</td>
|
||||
<td class="coverNumHi">149 / 158</td>
|
||||
<td class="coverPerHi">-</td>
|
||||
<td class="coverNumHi">0 / 0</td>
|
||||
</tr>
|
||||
</table>
|
||||
</center>
|
||||
<br>
|
||||
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
<tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php">LCOV version 1.14</a></td></tr>
|
||||
</table>
|
||||
<br>
|
||||
|
||||
</body>
|
||||
</html>
|
133
coverage/src/index.html
Normal file
133
coverage/src/index.html
Normal file
@@ -0,0 +1,133 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>LCOV - lcov.info - src</title>
|
||||
<link rel="stylesheet" type="text/css" href="../gcov.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="title">LCOV - code coverage report</td></tr>
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
|
||||
<tr>
|
||||
<td width="100%">
|
||||
<table cellpadding=1 border=0 width="100%">
|
||||
<tr>
|
||||
<td width="10%" class="headerItem">Current view:</td>
|
||||
<td width="35%" class="headerValue"><a href="../index.html">top level</a> - src</td>
|
||||
<td width="5%"></td>
|
||||
<td width="15%"></td>
|
||||
<td width="10%" class="headerCovTableHead">Hit</td>
|
||||
<td width="10%" class="headerCovTableHead">Total</td>
|
||||
<td width="15%" class="headerCovTableHead">Coverage</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Test:</td>
|
||||
<td class="headerValue">lcov.info</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Lines:</td>
|
||||
<td class="headerCovTableEntry">652</td>
|
||||
<td class="headerCovTableEntry">736</td>
|
||||
<td class="headerCovTableEntryMed">88.6 %</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Date:</td>
|
||||
<td class="headerValue">2021-03-31 22:28:15</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Functions:</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntryHi">-</td>
|
||||
</tr>
|
||||
<tr><td><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
|
||||
<center>
|
||||
<table width="80%" cellpadding=1 cellspacing=1 border=0>
|
||||
|
||||
<tr>
|
||||
<td width="50%"><br></td>
|
||||
<td width="10%"></td>
|
||||
<td width="10%"></td>
|
||||
<td width="10%"></td>
|
||||
<td width="10%"></td>
|
||||
<td width="10%"></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="tableHead">Filename <span class="tableHeadSort"><img src="../glass.png" width=10 height=14 alt="Sort by name" title="Sort by name" border=0></span></td>
|
||||
<td class="tableHead" colspan=3>Line Coverage <span class="tableHeadSort"><a href="index-sort-l.html"><img src="../updown.png" width=10 height=14 alt="Sort by line coverage" title="Sort by line coverage" border=0></a></span></td>
|
||||
<td class="tableHead" colspan=2>Functions <span class="tableHeadSort"><a href="index-sort-f.html"><img src="../updown.png" width=10 height=14 alt="Sort by function coverage" title="Sort by function coverage" border=0></a></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="coverFile"><a href="engine.dart.gcov.html">engine.dart</a></td>
|
||||
<td class="coverBar" align="center">
|
||||
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../amber.png" width=83 height=10 alt="82.7%"><img src="../snow.png" width=17 height=10 alt="82.7%"></td></tr></table>
|
||||
</td>
|
||||
<td class="coverPerMed">82.7 %</td>
|
||||
<td class="coverNumMed">67 / 81</td>
|
||||
<td class="coverPerHi">-</td>
|
||||
<td class="coverNumHi">0 / 0</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="coverFile"><a href="ffi.dart.gcov.html">ffi.dart</a></td>
|
||||
<td class="coverBar" align="center">
|
||||
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../emerald.png" width=92 height=10 alt="91.9%"><img src="../snow.png" width=8 height=10 alt="91.9%"></td></tr></table>
|
||||
</td>
|
||||
<td class="coverPerHi">91.9 %</td>
|
||||
<td class="coverNumHi">192 / 209</td>
|
||||
<td class="coverPerHi">-</td>
|
||||
<td class="coverNumHi">0 / 0</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="coverFile"><a href="isolate.dart.gcov.html">isolate.dart</a></td>
|
||||
<td class="coverBar" align="center">
|
||||
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../amber.png" width=83 height=10 alt="83.1%"><img src="../snow.png" width=17 height=10 alt="83.1%"></td></tr></table>
|
||||
</td>
|
||||
<td class="coverPerMed">83.1 %</td>
|
||||
<td class="coverNumMed">118 / 142</td>
|
||||
<td class="coverPerHi">-</td>
|
||||
<td class="coverNumHi">0 / 0</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="coverFile"><a href="object.dart.gcov.html">object.dart</a></td>
|
||||
<td class="coverBar" align="center">
|
||||
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../amber.png" width=86 height=10 alt="86.3%"><img src="../snow.png" width=14 height=10 alt="86.3%"></td></tr></table>
|
||||
</td>
|
||||
<td class="coverPerMed">86.3 %</td>
|
||||
<td class="coverNumMed">126 / 146</td>
|
||||
<td class="coverPerHi">-</td>
|
||||
<td class="coverNumHi">0 / 0</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="coverFile"><a href="wrapper.dart.gcov.html">wrapper.dart</a></td>
|
||||
<td class="coverBar" align="center">
|
||||
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../emerald.png" width=94 height=10 alt="94.3%"><img src="../snow.png" width=6 height=10 alt="94.3%"></td></tr></table>
|
||||
</td>
|
||||
<td class="coverPerHi">94.3 %</td>
|
||||
<td class="coverNumHi">149 / 158</td>
|
||||
<td class="coverPerHi">-</td>
|
||||
<td class="coverNumHi">0 / 0</td>
|
||||
</tr>
|
||||
</table>
|
||||
</center>
|
||||
<br>
|
||||
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
<tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php">LCOV version 1.14</a></td></tr>
|
||||
</table>
|
||||
<br>
|
||||
|
||||
</body>
|
||||
</html>
|
72
coverage/src/isolate.dart.func-sort-c.html
Normal file
72
coverage/src/isolate.dart.func-sort-c.html
Normal file
@@ -0,0 +1,72 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>LCOV - lcov.info - src/isolate.dart - functions</title>
|
||||
<link rel="stylesheet" type="text/css" href="../gcov.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="title">LCOV - code coverage report</td></tr>
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
|
||||
<tr>
|
||||
<td width="100%">
|
||||
<table cellpadding=1 border=0 width="100%">
|
||||
<tr>
|
||||
<td width="10%" class="headerItem">Current view:</td>
|
||||
<td width="35%" class="headerValue"><a href="../index.html">top level</a> - <a href="index.html">src</a> - isolate.dart<span style="font-size: 80%;"> (<a href="isolate.dart.gcov.html">source</a> / functions)</span></td>
|
||||
<td width="5%"></td>
|
||||
<td width="15%"></td>
|
||||
<td width="10%" class="headerCovTableHead">Hit</td>
|
||||
<td width="10%" class="headerCovTableHead">Total</td>
|
||||
<td width="15%" class="headerCovTableHead">Coverage</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Test:</td>
|
||||
<td class="headerValue">lcov.info</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Lines:</td>
|
||||
<td class="headerCovTableEntry">118</td>
|
||||
<td class="headerCovTableEntry">142</td>
|
||||
<td class="headerCovTableEntryMed">83.1 %</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Date:</td>
|
||||
<td class="headerValue">2021-03-31 22:28:15</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Functions:</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntryHi">-</td>
|
||||
</tr>
|
||||
<tr><td><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
|
||||
<center>
|
||||
<table width="60%" cellpadding=1 cellspacing=1 border=0>
|
||||
<tr><td><br></td></tr>
|
||||
<tr>
|
||||
<td width="80%" class="tableHead">Function Name <span class="tableHeadSort"><a href="isolate.dart.func.html"><img src="../updown.png" width=10 height=14 alt="Sort by function name" title="Sort by function name" border=0></a></span></td>
|
||||
<td width="20%" class="tableHead">Hit count <span class="tableHeadSort"><img src="../glass.png" width=10 height=14 alt="Sort by hit count" title="Sort by hit count" border=0></span></td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
</center>
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
<tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LCOV version 1.14</a></td></tr>
|
||||
</table>
|
||||
<br>
|
||||
|
||||
</body>
|
||||
</html>
|
72
coverage/src/isolate.dart.func.html
Normal file
72
coverage/src/isolate.dart.func.html
Normal file
@@ -0,0 +1,72 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>LCOV - lcov.info - src/isolate.dart - functions</title>
|
||||
<link rel="stylesheet" type="text/css" href="../gcov.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="title">LCOV - code coverage report</td></tr>
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
|
||||
<tr>
|
||||
<td width="100%">
|
||||
<table cellpadding=1 border=0 width="100%">
|
||||
<tr>
|
||||
<td width="10%" class="headerItem">Current view:</td>
|
||||
<td width="35%" class="headerValue"><a href="../index.html">top level</a> - <a href="index.html">src</a> - isolate.dart<span style="font-size: 80%;"> (<a href="isolate.dart.gcov.html">source</a> / functions)</span></td>
|
||||
<td width="5%"></td>
|
||||
<td width="15%"></td>
|
||||
<td width="10%" class="headerCovTableHead">Hit</td>
|
||||
<td width="10%" class="headerCovTableHead">Total</td>
|
||||
<td width="15%" class="headerCovTableHead">Coverage</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Test:</td>
|
||||
<td class="headerValue">lcov.info</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Lines:</td>
|
||||
<td class="headerCovTableEntry">118</td>
|
||||
<td class="headerCovTableEntry">142</td>
|
||||
<td class="headerCovTableEntryMed">83.1 %</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Date:</td>
|
||||
<td class="headerValue">2021-03-31 22:28:15</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Functions:</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntryHi">-</td>
|
||||
</tr>
|
||||
<tr><td><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
|
||||
<center>
|
||||
<table width="60%" cellpadding=1 cellspacing=1 border=0>
|
||||
<tr><td><br></td></tr>
|
||||
<tr>
|
||||
<td width="80%" class="tableHead">Function Name <span class="tableHeadSort"><img src="../glass.png" width=10 height=14 alt="Sort by function name" title="Sort by function name" border=0></span></td>
|
||||
<td width="20%" class="tableHead">Hit count <span class="tableHeadSort"><a href="isolate.dart.func-sort-c.html"><img src="../updown.png" width=10 height=14 alt="Sort by hit count" title="Sort by hit count" border=0></a></span></td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
</center>
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
<tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LCOV version 1.14</a></td></tr>
|
||||
</table>
|
||||
<br>
|
||||
|
||||
</body>
|
||||
</html>
|
353
coverage/src/isolate.dart.gcov.html
Normal file
353
coverage/src/isolate.dart.gcov.html
Normal file
@@ -0,0 +1,353 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>LCOV - lcov.info - src/isolate.dart</title>
|
||||
<link rel="stylesheet" type="text/css" href="../gcov.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="title">LCOV - code coverage report</td></tr>
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
|
||||
<tr>
|
||||
<td width="100%">
|
||||
<table cellpadding=1 border=0 width="100%">
|
||||
<tr>
|
||||
<td width="10%" class="headerItem">Current view:</td>
|
||||
<td width="35%" class="headerValue"><a href="../index.html">top level</a> - <a href="index.html">src</a> - isolate.dart<span style="font-size: 80%;"> (source / <a href="isolate.dart.func-sort-c.html">functions</a>)</span></td>
|
||||
<td width="5%"></td>
|
||||
<td width="15%"></td>
|
||||
<td width="10%" class="headerCovTableHead">Hit</td>
|
||||
<td width="10%" class="headerCovTableHead">Total</td>
|
||||
<td width="15%" class="headerCovTableHead">Coverage</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Test:</td>
|
||||
<td class="headerValue">lcov.info</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Lines:</td>
|
||||
<td class="headerCovTableEntry">118</td>
|
||||
<td class="headerCovTableEntry">142</td>
|
||||
<td class="headerCovTableEntryMed">83.1 %</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Date:</td>
|
||||
<td class="headerValue">2021-03-31 22:28:15</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Functions:</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntryHi">-</td>
|
||||
</tr>
|
||||
<tr><td><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
|
||||
<table cellpadding=0 cellspacing=0 border=0>
|
||||
<tr>
|
||||
<td><br></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<pre class="sourceHeading"> Line data Source code</pre>
|
||||
<pre class="source">
|
||||
<a name="1"><span class="lineNum"> 1 </span> : /*</a>
|
||||
<a name="2"><span class="lineNum"> 2 </span> : * @Description: isolate</a>
|
||||
<a name="3"><span class="lineNum"> 3 </span> : * @Author: ekibun</a>
|
||||
<a name="4"><span class="lineNum"> 4 </span> : * @Date: 2020-10-02 13:49:03</a>
|
||||
<a name="5"><span class="lineNum"> 5 </span> : * @LastEditors: ekibun</a>
|
||||
<a name="6"><span class="lineNum"> 6 </span> : * @LastEditTime: 2020-10-03 22:21:31</a>
|
||||
<a name="7"><span class="lineNum"> 7 </span> : */</a>
|
||||
<a name="8"><span class="lineNum"> 8 </span> : part of '../flutter_qjs.dart';</a>
|
||||
<a name="9"><span class="lineNum"> 9 </span> : </a>
|
||||
<a name="10"><span class="lineNum"> 10 </span> : typedef dynamic _Decode(Map obj);</a>
|
||||
<a name="11"><span class="lineNum"> 11 </span><span class="lineCov"> 9 : List<_Decode> _decoders = [</span></a>
|
||||
<a name="12"><span class="lineNum"> 12 </span> : JSError._decode,</a>
|
||||
<a name="13"><span class="lineNum"> 13 </span> : IsolateFunction._decode,</a>
|
||||
<a name="14"><span class="lineNum"> 14 </span> : ];</a>
|
||||
<a name="15"><span class="lineNum"> 15 </span> : </a>
|
||||
<a name="16"><span class="lineNum"> 16 </span> : abstract class _IsolateEncodable {</a>
|
||||
<a name="17"><span class="lineNum"> 17 </span> : Map _encode();</a>
|
||||
<a name="18"><span class="lineNum"> 18 </span> : }</a>
|
||||
<a name="19"><span class="lineNum"> 19 </span> : </a>
|
||||
<a name="20"><span class="lineNum"> 20 </span><span class="lineCov"> 3 : dynamic _encodeData(dynamic data, {Map<dynamic, dynamic>? cache}) {</span></a>
|
||||
<a name="21"><span class="lineNum"> 21 </span><span class="lineCov"> 3 : if (cache == null) cache = Map();</span></a>
|
||||
<a name="22"><span class="lineNum"> 22 </span><span class="lineCov"> 5 : if (cache.containsKey(data)) return cache[data];</span></a>
|
||||
<a name="23"><span class="lineNum"> 23 </span><span class="lineCov"> 6 : if (data is _IsolateEncodable) return data._encode();</span></a>
|
||||
<a name="24"><span class="lineNum"> 24 </span><span class="lineCov"> 3 : if (data is List) {</span></a>
|
||||
<a name="25"><span class="lineNum"> 25 </span><span class="lineCov"> 3 : final ret = [];</span></a>
|
||||
<a name="26"><span class="lineNum"> 26 </span><span class="lineCov"> 3 : cache[data] = ret;</span></a>
|
||||
<a name="27"><span class="lineNum"> 27 </span><span class="lineCov"> 9 : for (int i = 0; i < data.length; ++i) {</span></a>
|
||||
<a name="28"><span class="lineNum"> 28 </span><span class="lineCov"> 9 : ret.add(_encodeData(data[i], cache: cache));</span></a>
|
||||
<a name="29"><span class="lineNum"> 29 </span> : }</a>
|
||||
<a name="30"><span class="lineNum"> 30 </span> : return ret;</a>
|
||||
<a name="31"><span class="lineNum"> 31 </span> : }</a>
|
||||
<a name="32"><span class="lineNum"> 32 </span><span class="lineCov"> 3 : if (data is Map) {</span></a>
|
||||
<a name="33"><span class="lineNum"> 33 </span><span class="lineCov"> 2 : final ret = {};</span></a>
|
||||
<a name="34"><span class="lineNum"> 34 </span><span class="lineCov"> 2 : cache[data] = ret;</span></a>
|
||||
<a name="35"><span class="lineNum"> 35 </span><span class="lineCov"> 4 : for (final entry in data.entries) {</span></a>
|
||||
<a name="36"><span class="lineNum"> 36 </span><span class="lineCov"> 6 : ret[_encodeData(entry.key, cache: cache)] =</span></a>
|
||||
<a name="37"><span class="lineNum"> 37 </span><span class="lineCov"> 4 : _encodeData(entry.value, cache: cache);</span></a>
|
||||
<a name="38"><span class="lineNum"> 38 </span> : }</a>
|
||||
<a name="39"><span class="lineNum"> 39 </span> : return ret;</a>
|
||||
<a name="40"><span class="lineNum"> 40 </span> : }</a>
|
||||
<a name="41"><span class="lineNum"> 41 </span><span class="lineCov"> 3 : if (data is Future) {</span></a>
|
||||
<a name="42"><span class="lineNum"> 42 </span><span class="lineCov"> 2 : final futurePort = ReceivePort();</span></a>
|
||||
<a name="43"><span class="lineNum"> 43 </span><span class="lineCov"> 4 : data.then((value) {</span></a>
|
||||
<a name="44"><span class="lineNum"> 44 </span><span class="lineCov"> 6 : futurePort.first.then((port) {</span></a>
|
||||
<a name="45"><span class="lineNum"> 45 </span><span class="lineCov"> 2 : futurePort.close();</span></a>
|
||||
<a name="46"><span class="lineNum"> 46 </span><span class="lineCov"> 4 : (port as SendPort).send(_encodeData(value));</span></a>
|
||||
<a name="47"><span class="lineNum"> 47 </span> : });</a>
|
||||
<a name="48"><span class="lineNum"> 48 </span><span class="lineCov"> 2 : }, onError: (e) {</span></a>
|
||||
<a name="49"><span class="lineNum"> 49 </span><span class="lineCov"> 6 : futurePort.first.then((port) {</span></a>
|
||||
<a name="50"><span class="lineNum"> 50 </span><span class="lineCov"> 2 : futurePort.close();</span></a>
|
||||
<a name="51"><span class="lineNum"> 51 </span><span class="lineCov"> 6 : (port as SendPort).send({#error: _encodeData(e)});</span></a>
|
||||
<a name="52"><span class="lineNum"> 52 </span> : });</a>
|
||||
<a name="53"><span class="lineNum"> 53 </span> : });</a>
|
||||
<a name="54"><span class="lineNum"> 54 </span><span class="lineCov"> 2 : return {</span></a>
|
||||
<a name="55"><span class="lineNum"> 55 </span><span class="lineCov"> 2 : #jsFuturePort: futurePort.sendPort,</span></a>
|
||||
<a name="56"><span class="lineNum"> 56 </span> : };</a>
|
||||
<a name="57"><span class="lineNum"> 57 </span> : }</a>
|
||||
<a name="58"><span class="lineNum"> 58 </span> : return data;</a>
|
||||
<a name="59"><span class="lineNum"> 59 </span> : }</a>
|
||||
<a name="60"><span class="lineNum"> 60 </span> : </a>
|
||||
<a name="61"><span class="lineNum"> 61 </span><span class="lineCov"> 3 : dynamic _decodeData(dynamic data, {Map<dynamic, dynamic>? cache}) {</span></a>
|
||||
<a name="62"><span class="lineNum"> 62 </span><span class="lineCov"> 3 : if (cache == null) cache = Map();</span></a>
|
||||
<a name="63"><span class="lineNum"> 63 </span><span class="lineCov"> 5 : if (cache.containsKey(data)) return cache[data];</span></a>
|
||||
<a name="64"><span class="lineNum"> 64 </span><span class="lineCov"> 3 : if (data is List) {</span></a>
|
||||
<a name="65"><span class="lineNum"> 65 </span><span class="lineCov"> 3 : final ret = [];</span></a>
|
||||
<a name="66"><span class="lineNum"> 66 </span><span class="lineCov"> 3 : cache[data] = ret;</span></a>
|
||||
<a name="67"><span class="lineNum"> 67 </span><span class="lineCov"> 9 : for (int i = 0; i < data.length; ++i) {</span></a>
|
||||
<a name="68"><span class="lineNum"> 68 </span><span class="lineCov"> 9 : ret.add(_decodeData(data[i], cache: cache));</span></a>
|
||||
<a name="69"><span class="lineNum"> 69 </span> : }</a>
|
||||
<a name="70"><span class="lineNum"> 70 </span> : return ret;</a>
|
||||
<a name="71"><span class="lineNum"> 71 </span> : }</a>
|
||||
<a name="72"><span class="lineNum"> 72 </span><span class="lineCov"> 3 : if (data is Map) {</span></a>
|
||||
<a name="73"><span class="lineNum"> 73 </span><span class="lineCov"> 6 : for (final decoder in _decoders) {</span></a>
|
||||
<a name="74"><span class="lineNum"> 74 </span><span class="lineCov"> 3 : final decodeObj = decoder(data);</span></a>
|
||||
<a name="75"><span class="lineNum"> 75 </span> : if (decodeObj != null) return decodeObj;</a>
|
||||
<a name="76"><span class="lineNum"> 76 </span> : }</a>
|
||||
<a name="77"><span class="lineNum"> 77 </span><span class="lineCov"> 2 : if (data.containsKey(#jsFuturePort)) {</span></a>
|
||||
<a name="78"><span class="lineNum"> 78 </span><span class="lineCov"> 2 : SendPort port = data[#jsFuturePort];</span></a>
|
||||
<a name="79"><span class="lineNum"> 79 </span><span class="lineCov"> 2 : final futurePort = ReceivePort();</span></a>
|
||||
<a name="80"><span class="lineNum"> 80 </span><span class="lineCov"> 4 : port.send(futurePort.sendPort);</span></a>
|
||||
<a name="81"><span class="lineNum"> 81 </span><span class="lineCov"> 2 : final futureCompleter = Completer();</span></a>
|
||||
<a name="82"><span class="lineNum"> 82 </span><span class="lineCov"> 6 : futureCompleter.future.catchError((e) {});</span></a>
|
||||
<a name="83"><span class="lineNum"> 83 </span><span class="lineCov"> 6 : futurePort.first.then((value) {</span></a>
|
||||
<a name="84"><span class="lineNum"> 84 </span><span class="lineCov"> 2 : futurePort.close();</span></a>
|
||||
<a name="85"><span class="lineNum"> 85 </span><span class="lineCov"> 4 : if (value is Map && value.containsKey(#error)) {</span></a>
|
||||
<a name="86"><span class="lineNum"> 86 </span><span class="lineCov"> 6 : futureCompleter.completeError(_decodeData(value[#error]));</span></a>
|
||||
<a name="87"><span class="lineNum"> 87 </span> : } else {</a>
|
||||
<a name="88"><span class="lineNum"> 88 </span><span class="lineCov"> 4 : futureCompleter.complete(_decodeData(value));</span></a>
|
||||
<a name="89"><span class="lineNum"> 89 </span> : }</a>
|
||||
<a name="90"><span class="lineNum"> 90 </span> : });</a>
|
||||
<a name="91"><span class="lineNum"> 91 </span><span class="lineCov"> 2 : return futureCompleter.future;</span></a>
|
||||
<a name="92"><span class="lineNum"> 92 </span> : }</a>
|
||||
<a name="93"><span class="lineNum"> 93 </span><span class="lineCov"> 2 : final ret = {};</span></a>
|
||||
<a name="94"><span class="lineNum"> 94 </span><span class="lineCov"> 2 : cache[data] = ret;</span></a>
|
||||
<a name="95"><span class="lineNum"> 95 </span><span class="lineCov"> 4 : for (final entry in data.entries) {</span></a>
|
||||
<a name="96"><span class="lineNum"> 96 </span><span class="lineCov"> 6 : ret[_decodeData(entry.key, cache: cache)] =</span></a>
|
||||
<a name="97"><span class="lineNum"> 97 </span><span class="lineCov"> 4 : _decodeData(entry.value, cache: cache);</span></a>
|
||||
<a name="98"><span class="lineNum"> 98 </span> : }</a>
|
||||
<a name="99"><span class="lineNum"> 99 </span> : return ret;</a>
|
||||
<a name="100"><span class="lineNum"> 100 </span> : }</a>
|
||||
<a name="101"><span class="lineNum"> 101 </span> : return data;</a>
|
||||
<a name="102"><span class="lineNum"> 102 </span> : }</a>
|
||||
<a name="103"><span class="lineNum"> 103 </span> : </a>
|
||||
<a name="104"><span class="lineNum"> 104 </span><span class="lineCov"> 2 : void _runJsIsolate(Map spawnMessage) async {</span></a>
|
||||
<a name="105"><span class="lineNum"> 105 </span><span class="lineCov"> 2 : SendPort sendPort = spawnMessage[#port];</span></a>
|
||||
<a name="106"><span class="lineNum"> 106 </span><span class="lineCov"> 2 : ReceivePort port = ReceivePort();</span></a>
|
||||
<a name="107"><span class="lineNum"> 107 </span><span class="lineCov"> 4 : sendPort.send(port.sendPort);</span></a>
|
||||
<a name="108"><span class="lineNum"> 108 </span><span class="lineCov"> 2 : final qjs = FlutterQjs(</span></a>
|
||||
<a name="109"><span class="lineNum"> 109 </span><span class="lineCov"> 2 : stackSize: spawnMessage[#stackSize],</span></a>
|
||||
<a name="110"><span class="lineNum"> 110 </span><span class="lineCov"> 1 : hostPromiseRejectionHandler: (reason) {</span></a>
|
||||
<a name="111"><span class="lineNum"> 111 </span><span class="lineCov"> 2 : sendPort.send({</span></a>
|
||||
<a name="112"><span class="lineNum"> 112 </span> : #type: #hostPromiseRejection,</a>
|
||||
<a name="113"><span class="lineNum"> 113 </span><span class="lineCov"> 1 : #reason: _encodeData(reason),</span></a>
|
||||
<a name="114"><span class="lineNum"> 114 </span> : });</a>
|
||||
<a name="115"><span class="lineNum"> 115 </span> : },</a>
|
||||
<a name="116"><span class="lineNum"> 116 </span><span class="lineNoCov"> 0 : moduleHandler: (name) {</span></a>
|
||||
<a name="117"><span class="lineNum"> 117 </span> : final ptr = calloc<Pointer<Utf8>>();</a>
|
||||
<a name="118"><span class="lineNum"> 118 </span><span class="lineNoCov"> 0 : ptr.value = Pointer.fromAddress(ptr.address);</span></a>
|
||||
<a name="119"><span class="lineNum"> 119 </span><span class="lineNoCov"> 0 : sendPort.send({</span></a>
|
||||
<a name="120"><span class="lineNum"> 120 </span> : #type: #module,</a>
|
||||
<a name="121"><span class="lineNum"> 121 </span> : #name: name,</a>
|
||||
<a name="122"><span class="lineNum"> 122 </span><span class="lineNoCov"> 0 : #ptr: ptr.address,</span></a>
|
||||
<a name="123"><span class="lineNum"> 123 </span> : });</a>
|
||||
<a name="124"><span class="lineNum"> 124 </span><span class="lineNoCov"> 0 : while (ptr.value.address == ptr.address) sleep(Duration(microseconds: 1));</span></a>
|
||||
<a name="125"><span class="lineNum"> 125 </span><span class="lineNoCov"> 0 : final ret = ptr.value;</span></a>
|
||||
<a name="126"><span class="lineNum"> 126 </span><span class="lineNoCov"> 0 : malloc.free(ptr);</span></a>
|
||||
<a name="127"><span class="lineNum"> 127 </span><span class="lineNoCov"> 0 : if (ret.address == -1) throw JSError('Module Not found');</span></a>
|
||||
<a name="128"><span class="lineNum"> 128 </span><span class="lineNoCov"> 0 : final retString = ret.toDartString();</span></a>
|
||||
<a name="129"><span class="lineNum"> 129 </span><span class="lineNoCov"> 0 : malloc.free(ret);</span></a>
|
||||
<a name="130"><span class="lineNum"> 130 </span> : return retString;</a>
|
||||
<a name="131"><span class="lineNum"> 131 </span> : },</a>
|
||||
<a name="132"><span class="lineNum"> 132 </span> : );</a>
|
||||
<a name="133"><span class="lineNum"> 133 </span><span class="lineCov"> 4 : port.listen((msg) async {</span></a>
|
||||
<a name="134"><span class="lineNum"> 134 </span> : var data;</a>
|
||||
<a name="135"><span class="lineNum"> 135 </span><span class="lineCov"> 2 : SendPort? msgPort = msg[#port];</span></a>
|
||||
<a name="136"><span class="lineNum"> 136 </span> : try {</a>
|
||||
<a name="137"><span class="lineNum"> 137 </span><span class="lineCov"> 2 : switch (msg[#type]) {</span></a>
|
||||
<a name="138"><span class="lineNum"> 138 </span><span class="lineCov"> 2 : case #evaluate:</span></a>
|
||||
<a name="139"><span class="lineNum"> 139 </span><span class="lineCov"> 4 : data = await qjs.evaluate(</span></a>
|
||||
<a name="140"><span class="lineNum"> 140 </span><span class="lineCov"> 2 : msg[#command],</span></a>
|
||||
<a name="141"><span class="lineNum"> 141 </span><span class="lineCov"> 2 : name: msg[#name],</span></a>
|
||||
<a name="142"><span class="lineNum"> 142 </span><span class="lineCov"> 2 : evalFlags: msg[#flag],</span></a>
|
||||
<a name="143"><span class="lineNum"> 143 </span> : );</a>
|
||||
<a name="144"><span class="lineNum"> 144 </span> : break;</a>
|
||||
<a name="145"><span class="lineNum"> 145 </span><span class="lineCov"> 2 : case #close:</span></a>
|
||||
<a name="146"><span class="lineNum"> 146 </span> : data = false;</a>
|
||||
<a name="147"><span class="lineNum"> 147 </span><span class="lineCov"> 4 : qjs.port.close();</span></a>
|
||||
<a name="148"><span class="lineNum"> 148 </span><span class="lineCov"> 2 : qjs.close();</span></a>
|
||||
<a name="149"><span class="lineNum"> 149 </span><span class="lineCov"> 2 : port.close();</span></a>
|
||||
<a name="150"><span class="lineNum"> 150 </span> : data = true;</a>
|
||||
<a name="151"><span class="lineNum"> 151 </span> : break;</a>
|
||||
<a name="152"><span class="lineNum"> 152 </span> : }</a>
|
||||
<a name="153"><span class="lineNum"> 153 </span><span class="lineCov"> 4 : if (msgPort != null) msgPort.send(_encodeData(data));</span></a>
|
||||
<a name="154"><span class="lineNum"> 154 </span> : } catch (e) {</a>
|
||||
<a name="155"><span class="lineNum"> 155 </span> : if (msgPort != null)</a>
|
||||
<a name="156"><span class="lineNum"> 156 </span><span class="lineNoCov"> 0 : msgPort.send({</span></a>
|
||||
<a name="157"><span class="lineNum"> 157 </span><span class="lineNoCov"> 0 : #error: _encodeData(e),</span></a>
|
||||
<a name="158"><span class="lineNum"> 158 </span> : });</a>
|
||||
<a name="159"><span class="lineNum"> 159 </span> : }</a>
|
||||
<a name="160"><span class="lineNum"> 160 </span> : });</a>
|
||||
<a name="161"><span class="lineNum"> 161 </span><span class="lineCov"> 4 : await qjs.dispatch();</span></a>
|
||||
<a name="162"><span class="lineNum"> 162 </span> : }</a>
|
||||
<a name="163"><span class="lineNum"> 163 </span> : </a>
|
||||
<a name="164"><span class="lineNum"> 164 </span> : typedef _JsAsyncModuleHandler = Future<String> Function(String name);</a>
|
||||
<a name="165"><span class="lineNum"> 165 </span> : </a>
|
||||
<a name="166"><span class="lineNum"> 166 </span> : class IsolateQjs {</a>
|
||||
<a name="167"><span class="lineNum"> 167 </span> : Future<SendPort>? _sendPort;</a>
|
||||
<a name="168"><span class="lineNum"> 168 </span> : </a>
|
||||
<a name="169"><span class="lineNum"> 169 </span> : /// Max stack size for quickjs.</a>
|
||||
<a name="170"><span class="lineNum"> 170 </span> : final int? stackSize;</a>
|
||||
<a name="171"><span class="lineNum"> 171 </span> : </a>
|
||||
<a name="172"><span class="lineNum"> 172 </span> : /// Asynchronously handler to manage js module.</a>
|
||||
<a name="173"><span class="lineNum"> 173 </span> : final _JsAsyncModuleHandler? moduleHandler;</a>
|
||||
<a name="174"><span class="lineNum"> 174 </span> : </a>
|
||||
<a name="175"><span class="lineNum"> 175 </span> : /// Handler function to manage js module.</a>
|
||||
<a name="176"><span class="lineNum"> 176 </span> : final _JsHostPromiseRejectionHandler? hostPromiseRejectionHandler;</a>
|
||||
<a name="177"><span class="lineNum"> 177 </span> : </a>
|
||||
<a name="178"><span class="lineNum"> 178 </span> : /// Quickjs engine runing on isolate thread.</a>
|
||||
<a name="179"><span class="lineNum"> 179 </span> : ///</a>
|
||||
<a name="180"><span class="lineNum"> 180 </span> : /// Pass handlers to implement js-dart interaction and resolving modules. The `methodHandler` is</a>
|
||||
<a name="181"><span class="lineNum"> 181 </span> : /// used in isolate, so **the handler function must be a top-level function or a static method**.</a>
|
||||
<a name="182"><span class="lineNum"> 182 </span><span class="lineCov"> 1 : IsolateQjs({</span></a>
|
||||
<a name="183"><span class="lineNum"> 183 </span> : this.moduleHandler,</a>
|
||||
<a name="184"><span class="lineNum"> 184 </span> : this.stackSize,</a>
|
||||
<a name="185"><span class="lineNum"> 185 </span> : this.hostPromiseRejectionHandler,</a>
|
||||
<a name="186"><span class="lineNum"> 186 </span> : });</a>
|
||||
<a name="187"><span class="lineNum"> 187 </span> : </a>
|
||||
<a name="188"><span class="lineNum"> 188 </span><span class="lineCov"> 1 : _ensureEngine() {</span></a>
|
||||
<a name="189"><span class="lineNum"> 189 </span><span class="lineCov"> 1 : if (_sendPort != null) return;</span></a>
|
||||
<a name="190"><span class="lineNum"> 190 </span><span class="lineCov"> 1 : ReceivePort port = ReceivePort();</span></a>
|
||||
<a name="191"><span class="lineNum"> 191 </span><span class="lineCov"> 1 : Isolate.spawn(</span></a>
|
||||
<a name="192"><span class="lineNum"> 192 </span> : _runJsIsolate,</a>
|
||||
<a name="193"><span class="lineNum"> 193 </span><span class="lineCov"> 1 : {</span></a>
|
||||
<a name="194"><span class="lineNum"> 194 </span><span class="lineCov"> 1 : #port: port.sendPort,</span></a>
|
||||
<a name="195"><span class="lineNum"> 195 </span><span class="lineCov"> 1 : #stackSize: stackSize,</span></a>
|
||||
<a name="196"><span class="lineNum"> 196 </span> : },</a>
|
||||
<a name="197"><span class="lineNum"> 197 </span> : errorsAreFatal: true,</a>
|
||||
<a name="198"><span class="lineNum"> 198 </span> : );</a>
|
||||
<a name="199"><span class="lineNum"> 199 </span><span class="lineCov"> 1 : final completer = Completer<SendPort>();</span></a>
|
||||
<a name="200"><span class="lineNum"> 200 </span><span class="lineCov"> 2 : port.listen((msg) async {</span></a>
|
||||
<a name="201"><span class="lineNum"> 201 </span><span class="lineCov"> 2 : if (msg is SendPort && !completer.isCompleted) {</span></a>
|
||||
<a name="202"><span class="lineNum"> 202 </span><span class="lineCov"> 1 : completer.complete(msg);</span></a>
|
||||
<a name="203"><span class="lineNum"> 203 </span> : return;</a>
|
||||
<a name="204"><span class="lineNum"> 204 </span> : }</a>
|
||||
<a name="205"><span class="lineNum"> 205 </span><span class="lineCov"> 1 : switch (msg[#type]) {</span></a>
|
||||
<a name="206"><span class="lineNum"> 206 </span><span class="lineCov"> 1 : case #hostPromiseRejection:</span></a>
|
||||
<a name="207"><span class="lineNum"> 207 </span> : try {</a>
|
||||
<a name="208"><span class="lineNum"> 208 </span><span class="lineCov"> 2 : final err = _decodeData(msg[#reason]);</span></a>
|
||||
<a name="209"><span class="lineNum"> 209 </span><span class="lineCov"> 1 : if (hostPromiseRejectionHandler != null) {</span></a>
|
||||
<a name="210"><span class="lineNum"> 210 </span><span class="lineCov"> 2 : hostPromiseRejectionHandler!(err);</span></a>
|
||||
<a name="211"><span class="lineNum"> 211 </span> : } else {</a>
|
||||
<a name="212"><span class="lineNum"> 212 </span><span class="lineNoCov"> 0 : print('unhandled promise rejection: $err');</span></a>
|
||||
<a name="213"><span class="lineNum"> 213 </span> : }</a>
|
||||
<a name="214"><span class="lineNum"> 214 </span> : } catch (e) {</a>
|
||||
<a name="215"><span class="lineNum"> 215 </span><span class="lineNoCov"> 0 : print('host Promise Rejection Handler error: $e');</span></a>
|
||||
<a name="216"><span class="lineNum"> 216 </span> : }</a>
|
||||
<a name="217"><span class="lineNum"> 217 </span> : break;</a>
|
||||
<a name="218"><span class="lineNum"> 218 </span><span class="lineNoCov"> 0 : case #module:</span></a>
|
||||
<a name="219"><span class="lineNum"> 219 </span><span class="lineNoCov"> 0 : final ptr = Pointer<Pointer>.fromAddress(msg[#ptr]);</span></a>
|
||||
<a name="220"><span class="lineNum"> 220 </span> : try {</a>
|
||||
<a name="221"><span class="lineNum"> 221 </span><span class="lineNoCov"> 0 : ptr.value = (await moduleHandler!(msg[#name])).toNativeUtf8();</span></a>
|
||||
<a name="222"><span class="lineNum"> 222 </span> : } catch (e) {</a>
|
||||
<a name="223"><span class="lineNum"> 223 </span><span class="lineNoCov"> 0 : ptr.value = Pointer.fromAddress(-1);</span></a>
|
||||
<a name="224"><span class="lineNum"> 224 </span> : }</a>
|
||||
<a name="225"><span class="lineNum"> 225 </span> : break;</a>
|
||||
<a name="226"><span class="lineNum"> 226 </span> : }</a>
|
||||
<a name="227"><span class="lineNum"> 227 </span><span class="lineNoCov"> 0 : }, onDone: () {</span></a>
|
||||
<a name="228"><span class="lineNum"> 228 </span><span class="lineNoCov"> 0 : close();</span></a>
|
||||
<a name="229"><span class="lineNum"> 229 </span><span class="lineNoCov"> 0 : if (!completer.isCompleted)</span></a>
|
||||
<a name="230"><span class="lineNum"> 230 </span><span class="lineNoCov"> 0 : completer.completeError(JSError('isolate close'));</span></a>
|
||||
<a name="231"><span class="lineNum"> 231 </span> : });</a>
|
||||
<a name="232"><span class="lineNum"> 232 </span><span class="lineCov"> 2 : _sendPort = completer.future;</span></a>
|
||||
<a name="233"><span class="lineNum"> 233 </span> : }</a>
|
||||
<a name="234"><span class="lineNum"> 234 </span> : </a>
|
||||
<a name="235"><span class="lineNum"> 235 </span> : /// Free Runtime and close isolate thread that can be recreate when evaluate again.</a>
|
||||
<a name="236"><span class="lineNum"> 236 </span><span class="lineCov"> 1 : close() {</span></a>
|
||||
<a name="237"><span class="lineNum"> 237 </span><span class="lineCov"> 1 : final sendPort = _sendPort;</span></a>
|
||||
<a name="238"><span class="lineNum"> 238 </span><span class="lineCov"> 1 : _sendPort = null;</span></a>
|
||||
<a name="239"><span class="lineNum"> 239 </span> : if (sendPort == null) return;</a>
|
||||
<a name="240"><span class="lineNum"> 240 </span><span class="lineCov"> 2 : final ret = sendPort.then((sendPort) async {</span></a>
|
||||
<a name="241"><span class="lineNum"> 241 </span><span class="lineCov"> 1 : final closePort = ReceivePort();</span></a>
|
||||
<a name="242"><span class="lineNum"> 242 </span><span class="lineCov"> 2 : sendPort.send({</span></a>
|
||||
<a name="243"><span class="lineNum"> 243 </span> : #type: #close,</a>
|
||||
<a name="244"><span class="lineNum"> 244 </span><span class="lineCov"> 1 : #port: closePort.sendPort,</span></a>
|
||||
<a name="245"><span class="lineNum"> 245 </span> : });</a>
|
||||
<a name="246"><span class="lineNum"> 246 </span><span class="lineCov"> 2 : final result = await closePort.first;</span></a>
|
||||
<a name="247"><span class="lineNum"> 247 </span><span class="lineCov"> 1 : closePort.close();</span></a>
|
||||
<a name="248"><span class="lineNum"> 248 </span><span class="lineCov"> 1 : if (result is Map && result.containsKey(#error))</span></a>
|
||||
<a name="249"><span class="lineNum"> 249 </span><span class="lineNoCov"> 0 : throw _decodeData(result[#error]);</span></a>
|
||||
<a name="250"><span class="lineNum"> 250 </span><span class="lineCov"> 1 : return _decodeData(result);</span></a>
|
||||
<a name="251"><span class="lineNum"> 251 </span> : });</a>
|
||||
<a name="252"><span class="lineNum"> 252 </span> : return ret;</a>
|
||||
<a name="253"><span class="lineNum"> 253 </span> : }</a>
|
||||
<a name="254"><span class="lineNum"> 254 </span> : </a>
|
||||
<a name="255"><span class="lineNum"> 255 </span> : /// Evaluate js script.</a>
|
||||
<a name="256"><span class="lineNum"> 256 </span><span class="lineCov"> 1 : Future<dynamic> evaluate(</span></a>
|
||||
<a name="257"><span class="lineNum"> 257 </span> : String command, {</a>
|
||||
<a name="258"><span class="lineNum"> 258 </span> : String? name,</a>
|
||||
<a name="259"><span class="lineNum"> 259 </span> : int? evalFlags,</a>
|
||||
<a name="260"><span class="lineNum"> 260 </span> : }) async {</a>
|
||||
<a name="261"><span class="lineNum"> 261 </span><span class="lineCov"> 1 : _ensureEngine();</span></a>
|
||||
<a name="262"><span class="lineNum"> 262 </span><span class="lineCov"> 1 : final evaluatePort = ReceivePort();</span></a>
|
||||
<a name="263"><span class="lineNum"> 263 </span><span class="lineCov"> 2 : final sendPort = await _sendPort!;</span></a>
|
||||
<a name="264"><span class="lineNum"> 264 </span><span class="lineCov"> 2 : sendPort.send({</span></a>
|
||||
<a name="265"><span class="lineNum"> 265 </span> : #type: #evaluate,</a>
|
||||
<a name="266"><span class="lineNum"> 266 </span> : #command: command,</a>
|
||||
<a name="267"><span class="lineNum"> 267 </span> : #name: name,</a>
|
||||
<a name="268"><span class="lineNum"> 268 </span> : #flag: evalFlags,</a>
|
||||
<a name="269"><span class="lineNum"> 269 </span><span class="lineCov"> 1 : #port: evaluatePort.sendPort,</span></a>
|
||||
<a name="270"><span class="lineNum"> 270 </span> : });</a>
|
||||
<a name="271"><span class="lineNum"> 271 </span><span class="lineCov"> 2 : final result = await evaluatePort.first;</span></a>
|
||||
<a name="272"><span class="lineNum"> 272 </span><span class="lineCov"> 1 : evaluatePort.close();</span></a>
|
||||
<a name="273"><span class="lineNum"> 273 </span><span class="lineCov"> 2 : if (result is Map && result.containsKey(#error))</span></a>
|
||||
<a name="274"><span class="lineNum"> 274 </span><span class="lineNoCov"> 0 : throw _decodeData(result[#error]);</span></a>
|
||||
<a name="275"><span class="lineNum"> 275 </span><span class="lineCov"> 1 : return _decodeData(result);</span></a>
|
||||
<a name="276"><span class="lineNum"> 276 </span> : }</a>
|
||||
<a name="277"><span class="lineNum"> 277 </span> : }</a>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
<tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LCOV version 1.14</a></td></tr>
|
||||
</table>
|
||||
<br>
|
||||
|
||||
</body>
|
||||
</html>
|
72
coverage/src/object.dart.func-sort-c.html
Normal file
72
coverage/src/object.dart.func-sort-c.html
Normal file
@@ -0,0 +1,72 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>LCOV - lcov.info - src/object.dart - functions</title>
|
||||
<link rel="stylesheet" type="text/css" href="../gcov.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="title">LCOV - code coverage report</td></tr>
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
|
||||
<tr>
|
||||
<td width="100%">
|
||||
<table cellpadding=1 border=0 width="100%">
|
||||
<tr>
|
||||
<td width="10%" class="headerItem">Current view:</td>
|
||||
<td width="35%" class="headerValue"><a href="../index.html">top level</a> - <a href="index.html">src</a> - object.dart<span style="font-size: 80%;"> (<a href="object.dart.gcov.html">source</a> / functions)</span></td>
|
||||
<td width="5%"></td>
|
||||
<td width="15%"></td>
|
||||
<td width="10%" class="headerCovTableHead">Hit</td>
|
||||
<td width="10%" class="headerCovTableHead">Total</td>
|
||||
<td width="15%" class="headerCovTableHead">Coverage</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Test:</td>
|
||||
<td class="headerValue">lcov.info</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Lines:</td>
|
||||
<td class="headerCovTableEntry">126</td>
|
||||
<td class="headerCovTableEntry">146</td>
|
||||
<td class="headerCovTableEntryMed">86.3 %</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Date:</td>
|
||||
<td class="headerValue">2021-03-31 22:28:15</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Functions:</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntryHi">-</td>
|
||||
</tr>
|
||||
<tr><td><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
|
||||
<center>
|
||||
<table width="60%" cellpadding=1 cellspacing=1 border=0>
|
||||
<tr><td><br></td></tr>
|
||||
<tr>
|
||||
<td width="80%" class="tableHead">Function Name <span class="tableHeadSort"><a href="object.dart.func.html"><img src="../updown.png" width=10 height=14 alt="Sort by function name" title="Sort by function name" border=0></a></span></td>
|
||||
<td width="20%" class="tableHead">Hit count <span class="tableHeadSort"><img src="../glass.png" width=10 height=14 alt="Sort by hit count" title="Sort by hit count" border=0></span></td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
</center>
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
<tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LCOV version 1.14</a></td></tr>
|
||||
</table>
|
||||
<br>
|
||||
|
||||
</body>
|
||||
</html>
|
72
coverage/src/object.dart.func.html
Normal file
72
coverage/src/object.dart.func.html
Normal file
@@ -0,0 +1,72 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>LCOV - lcov.info - src/object.dart - functions</title>
|
||||
<link rel="stylesheet" type="text/css" href="../gcov.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="title">LCOV - code coverage report</td></tr>
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
|
||||
<tr>
|
||||
<td width="100%">
|
||||
<table cellpadding=1 border=0 width="100%">
|
||||
<tr>
|
||||
<td width="10%" class="headerItem">Current view:</td>
|
||||
<td width="35%" class="headerValue"><a href="../index.html">top level</a> - <a href="index.html">src</a> - object.dart<span style="font-size: 80%;"> (<a href="object.dart.gcov.html">source</a> / functions)</span></td>
|
||||
<td width="5%"></td>
|
||||
<td width="15%"></td>
|
||||
<td width="10%" class="headerCovTableHead">Hit</td>
|
||||
<td width="10%" class="headerCovTableHead">Total</td>
|
||||
<td width="15%" class="headerCovTableHead">Coverage</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Test:</td>
|
||||
<td class="headerValue">lcov.info</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Lines:</td>
|
||||
<td class="headerCovTableEntry">126</td>
|
||||
<td class="headerCovTableEntry">146</td>
|
||||
<td class="headerCovTableEntryMed">86.3 %</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Date:</td>
|
||||
<td class="headerValue">2021-03-31 22:28:15</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Functions:</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntryHi">-</td>
|
||||
</tr>
|
||||
<tr><td><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
|
||||
<center>
|
||||
<table width="60%" cellpadding=1 cellspacing=1 border=0>
|
||||
<tr><td><br></td></tr>
|
||||
<tr>
|
||||
<td width="80%" class="tableHead">Function Name <span class="tableHeadSort"><img src="../glass.png" width=10 height=14 alt="Sort by function name" title="Sort by function name" border=0></span></td>
|
||||
<td width="20%" class="tableHead">Hit count <span class="tableHeadSort"><a href="object.dart.func-sort-c.html"><img src="../updown.png" width=10 height=14 alt="Sort by hit count" title="Sort by hit count" border=0></a></span></td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
</center>
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
<tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LCOV version 1.14</a></td></tr>
|
||||
</table>
|
||||
<br>
|
||||
|
||||
</body>
|
||||
</html>
|
390
coverage/src/object.dart.gcov.html
Normal file
390
coverage/src/object.dart.gcov.html
Normal file
@@ -0,0 +1,390 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>LCOV - lcov.info - src/object.dart</title>
|
||||
<link rel="stylesheet" type="text/css" href="../gcov.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="title">LCOV - code coverage report</td></tr>
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
|
||||
<tr>
|
||||
<td width="100%">
|
||||
<table cellpadding=1 border=0 width="100%">
|
||||
<tr>
|
||||
<td width="10%" class="headerItem">Current view:</td>
|
||||
<td width="35%" class="headerValue"><a href="../index.html">top level</a> - <a href="index.html">src</a> - object.dart<span style="font-size: 80%;"> (source / <a href="object.dart.func-sort-c.html">functions</a>)</span></td>
|
||||
<td width="5%"></td>
|
||||
<td width="15%"></td>
|
||||
<td width="10%" class="headerCovTableHead">Hit</td>
|
||||
<td width="10%" class="headerCovTableHead">Total</td>
|
||||
<td width="15%" class="headerCovTableHead">Coverage</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Test:</td>
|
||||
<td class="headerValue">lcov.info</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Lines:</td>
|
||||
<td class="headerCovTableEntry">126</td>
|
||||
<td class="headerCovTableEntry">146</td>
|
||||
<td class="headerCovTableEntryMed">86.3 %</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Date:</td>
|
||||
<td class="headerValue">2021-03-31 22:28:15</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Functions:</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntryHi">-</td>
|
||||
</tr>
|
||||
<tr><td><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
|
||||
<table cellpadding=0 cellspacing=0 border=0>
|
||||
<tr>
|
||||
<td><br></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<pre class="sourceHeading"> Line data Source code</pre>
|
||||
<pre class="source">
|
||||
<a name="1"><span class="lineNum"> 1 </span> : /*</a>
|
||||
<a name="2"><span class="lineNum"> 2 </span> : * @Description: wrap object</a>
|
||||
<a name="3"><span class="lineNum"> 3 </span> : * @Author: ekibun</a>
|
||||
<a name="4"><span class="lineNum"> 4 </span> : * @Date: 2020-10-02 13:49:03</a>
|
||||
<a name="5"><span class="lineNum"> 5 </span> : * @LastEditors: ekibun</a>
|
||||
<a name="6"><span class="lineNum"> 6 </span> : * @LastEditTime: 2020-10-03 22:21:31</a>
|
||||
<a name="7"><span class="lineNum"> 7 </span> : */</a>
|
||||
<a name="8"><span class="lineNum"> 8 </span> : part of '../flutter_qjs.dart';</a>
|
||||
<a name="9"><span class="lineNum"> 9 </span> : </a>
|
||||
<a name="10"><span class="lineNum"> 10 </span> : /// js invokable</a>
|
||||
<a name="11"><span class="lineNum"> 11 </span> : abstract class JSInvokable extends JSRef {</a>
|
||||
<a name="12"><span class="lineNum"> 12 </span> : dynamic invoke(List args, [dynamic thisVal]);</a>
|
||||
<a name="13"><span class="lineNum"> 13 </span> : </a>
|
||||
<a name="14"><span class="lineNum"> 14 </span><span class="lineCov"> 3 : static dynamic _wrap(dynamic func) {</span></a>
|
||||
<a name="15"><span class="lineNum"> 15 </span><span class="lineCov"> 3 : return func is JSInvokable</span></a>
|
||||
<a name="16"><span class="lineNum"> 16 </span> : ? func</a>
|
||||
<a name="17"><span class="lineNum"> 17 </span><span class="lineCov"> 3 : : func is Function</span></a>
|
||||
<a name="18"><span class="lineNum"> 18 </span><span class="lineCov"> 3 : ? _DartFunction(func)</span></a>
|
||||
<a name="19"><span class="lineNum"> 19 </span> : : func;</a>
|
||||
<a name="20"><span class="lineNum"> 20 </span> : }</a>
|
||||
<a name="21"><span class="lineNum"> 21 </span> : }</a>
|
||||
<a name="22"><span class="lineNum"> 22 </span> : </a>
|
||||
<a name="23"><span class="lineNum"> 23 </span> : class _DartFunction extends JSInvokable {</a>
|
||||
<a name="24"><span class="lineNum"> 24 </span> : final Function _func;</a>
|
||||
<a name="25"><span class="lineNum"> 25 </span><span class="lineCov"> 3 : _DartFunction(this._func);</span></a>
|
||||
<a name="26"><span class="lineNum"> 26 </span> : </a>
|
||||
<a name="27"><span class="lineNum"> 27 </span><span class="lineCov"> 3 : @override</span></a>
|
||||
<a name="28"><span class="lineNum"> 28 </span> : invoke(List args, [thisVal]) {</a>
|
||||
<a name="29"><span class="lineNum"> 29 </span> : /// wrap this into function</a>
|
||||
<a name="30"><span class="lineNum"> 30 </span> : final passThis =</a>
|
||||
<a name="31"><span class="lineNum"> 31 </span><span class="lineCov"> 15 : RegExp('{.*thisVal.*}').hasMatch(_func.runtimeType.toString());</span></a>
|
||||
<a name="32"><span class="lineNum"> 32 </span> : final ret =</a>
|
||||
<a name="33"><span class="lineNum"> 33 </span><span class="lineCov"> 8 : Function.apply(_func, args, passThis ? {#thisVal: thisVal} : null);</span></a>
|
||||
<a name="34"><span class="lineNum"> 34 </span><span class="lineCov"> 3 : JSRef.freeRecursive(args);</span></a>
|
||||
<a name="35"><span class="lineNum"> 35 </span><span class="lineCov"> 3 : JSRef.freeRecursive(thisVal);</span></a>
|
||||
<a name="36"><span class="lineNum"> 36 </span> : return ret;</a>
|
||||
<a name="37"><span class="lineNum"> 37 </span> : }</a>
|
||||
<a name="38"><span class="lineNum"> 38 </span> : </a>
|
||||
<a name="39"><span class="lineNum"> 39 </span><span class="lineNoCov"> 0 : @override</span></a>
|
||||
<a name="40"><span class="lineNum"> 40 </span> : String toString() {</a>
|
||||
<a name="41"><span class="lineNum"> 41 </span><span class="lineNoCov"> 0 : return _func.toString();</span></a>
|
||||
<a name="42"><span class="lineNum"> 42 </span> : }</a>
|
||||
<a name="43"><span class="lineNum"> 43 </span> : </a>
|
||||
<a name="44"><span class="lineNum"> 44 </span><span class="lineNoCov"> 0 : @override</span></a>
|
||||
<a name="45"><span class="lineNum"> 45 </span> : destroy() {}</a>
|
||||
<a name="46"><span class="lineNum"> 46 </span> : }</a>
|
||||
<a name="47"><span class="lineNum"> 47 </span> : </a>
|
||||
<a name="48"><span class="lineNum"> 48 </span> : /// implement this to capture js object release.</a>
|
||||
<a name="49"><span class="lineNum"> 49 </span> : </a>
|
||||
<a name="50"><span class="lineNum"> 50 </span> : class _DartObject extends JSRef implements JSRefLeakable {</a>
|
||||
<a name="51"><span class="lineNum"> 51 </span> : Object? _obj;</a>
|
||||
<a name="52"><span class="lineNum"> 52 </span> : Pointer<JSContext>? _ctx;</a>
|
||||
<a name="53"><span class="lineNum"> 53 </span><span class="lineCov"> 3 : _DartObject(Pointer<JSContext> ctx, dynamic obj) {</span></a>
|
||||
<a name="54"><span class="lineNum"> 54 </span><span class="lineCov"> 3 : _ctx = ctx;</span></a>
|
||||
<a name="55"><span class="lineNum"> 55 </span><span class="lineCov"> 3 : _obj = obj;</span></a>
|
||||
<a name="56"><span class="lineNum"> 56 </span><span class="lineCov"> 6 : if (obj is JSRef) obj.dup();</span></a>
|
||||
<a name="57"><span class="lineNum"> 57 </span><span class="lineCov"> 15 : runtimeOpaques[jsGetRuntime(ctx)]?.addRef(this);</span></a>
|
||||
<a name="58"><span class="lineNum"> 58 </span> : }</a>
|
||||
<a name="59"><span class="lineNum"> 59 </span> : </a>
|
||||
<a name="60"><span class="lineNum"> 60 </span><span class="lineCov"> 3 : static _DartObject? fromAddress(Pointer<JSRuntime> rt, int val) {</span></a>
|
||||
<a name="61"><span class="lineNum"> 61 </span><span class="lineCov"> 18 : return runtimeOpaques[rt]?.getRef((e) => identityHashCode(e) == val)</span></a>
|
||||
<a name="62"><span class="lineNum"> 62 </span> : as _DartObject?;</a>
|
||||
<a name="63"><span class="lineNum"> 63 </span> : }</a>
|
||||
<a name="64"><span class="lineNum"> 64 </span> : </a>
|
||||
<a name="65"><span class="lineNum"> 65 </span><span class="lineNoCov"> 0 : @override</span></a>
|
||||
<a name="66"><span class="lineNum"> 66 </span> : String toString() {</a>
|
||||
<a name="67"><span class="lineNum"> 67 </span><span class="lineNoCov"> 0 : if (_ctx == null) return "DartObject(released)";</span></a>
|
||||
<a name="68"><span class="lineNum"> 68 </span><span class="lineNoCov"> 0 : return _obj.toString();</span></a>
|
||||
<a name="69"><span class="lineNum"> 69 </span> : }</a>
|
||||
<a name="70"><span class="lineNum"> 70 </span> : </a>
|
||||
<a name="71"><span class="lineNum"> 71 </span><span class="lineCov"> 3 : @override</span></a>
|
||||
<a name="72"><span class="lineNum"> 72 </span> : void destroy() {</a>
|
||||
<a name="73"><span class="lineNum"> 73 </span><span class="lineCov"> 3 : final ctx = _ctx;</span></a>
|
||||
<a name="74"><span class="lineNum"> 74 </span><span class="lineCov"> 3 : final obj = _obj;</span></a>
|
||||
<a name="75"><span class="lineNum"> 75 </span><span class="lineCov"> 3 : _ctx = null;</span></a>
|
||||
<a name="76"><span class="lineNum"> 76 </span><span class="lineCov"> 3 : _obj = null;</span></a>
|
||||
<a name="77"><span class="lineNum"> 77 </span> : if (ctx == null) return;</a>
|
||||
<a name="78"><span class="lineNum"> 78 </span><span class="lineCov"> 15 : runtimeOpaques[jsGetRuntime(ctx)]?.removeRef(this);</span></a>
|
||||
<a name="79"><span class="lineNum"> 79 </span><span class="lineCov"> 6 : if (obj is JSRef) obj.free();</span></a>
|
||||
<a name="80"><span class="lineNum"> 80 </span> : }</a>
|
||||
<a name="81"><span class="lineNum"> 81 </span> : }</a>
|
||||
<a name="82"><span class="lineNum"> 82 </span> : </a>
|
||||
<a name="83"><span class="lineNum"> 83 </span> : /// JS Error wrapper</a>
|
||||
<a name="84"><span class="lineNum"> 84 </span> : class JSError extends _IsolateEncodable {</a>
|
||||
<a name="85"><span class="lineNum"> 85 </span> : late String message;</a>
|
||||
<a name="86"><span class="lineNum"> 86 </span> : late String stack;</a>
|
||||
<a name="87"><span class="lineNum"> 87 </span><span class="lineCov"> 2 : JSError(message, [stack]) {</span></a>
|
||||
<a name="88"><span class="lineNum"> 88 </span><span class="lineCov"> 2 : if (message is JSError) {</span></a>
|
||||
<a name="89"><span class="lineNum"> 89 </span><span class="lineNoCov"> 0 : this.message = message.message;</span></a>
|
||||
<a name="90"><span class="lineNum"> 90 </span><span class="lineNoCov"> 0 : this.stack = message.stack;</span></a>
|
||||
<a name="91"><span class="lineNum"> 91 </span> : } else {</a>
|
||||
<a name="92"><span class="lineNum"> 92 </span><span class="lineCov"> 4 : this.message = message.toString();</span></a>
|
||||
<a name="93"><span class="lineNum"> 93 </span><span class="lineCov"> 5 : this.stack = (stack ?? StackTrace.current).toString();</span></a>
|
||||
<a name="94"><span class="lineNum"> 94 </span> : }</a>
|
||||
<a name="95"><span class="lineNum"> 95 </span> : }</a>
|
||||
<a name="96"><span class="lineNum"> 96 </span> : </a>
|
||||
<a name="97"><span class="lineNum"> 97 </span><span class="lineNoCov"> 0 : @override</span></a>
|
||||
<a name="98"><span class="lineNum"> 98 </span> : String toString() {</a>
|
||||
<a name="99"><span class="lineNum"> 99 </span><span class="lineNoCov"> 0 : return stack.isEmpty ? message.toString() : "$message\n$stack";</span></a>
|
||||
<a name="100"><span class="lineNum"> 100 </span> : }</a>
|
||||
<a name="101"><span class="lineNum"> 101 </span> : </a>
|
||||
<a name="102"><span class="lineNum"> 102 </span><span class="lineCov"> 3 : static JSError? _decode(Map obj) {</span></a>
|
||||
<a name="103"><span class="lineNum"> 103 </span><span class="lineCov"> 3 : if (obj.containsKey(#jsError))</span></a>
|
||||
<a name="104"><span class="lineNum"> 104 </span><span class="lineCov"> 6 : return JSError(obj[#jsError], obj[#jsErrorStack]);</span></a>
|
||||
<a name="105"><span class="lineNum"> 105 </span> : return null;</a>
|
||||
<a name="106"><span class="lineNum"> 106 </span> : }</a>
|
||||
<a name="107"><span class="lineNum"> 107 </span> : </a>
|
||||
<a name="108"><span class="lineNum"> 108 </span><span class="lineCov"> 2 : @override</span></a>
|
||||
<a name="109"><span class="lineNum"> 109 </span> : Map _encode() {</a>
|
||||
<a name="110"><span class="lineNum"> 110 </span><span class="lineCov"> 2 : return {</span></a>
|
||||
<a name="111"><span class="lineNum"> 111 </span><span class="lineCov"> 2 : #jsError: message,</span></a>
|
||||
<a name="112"><span class="lineNum"> 112 </span><span class="lineCov"> 2 : #jsErrorStack: stack,</span></a>
|
||||
<a name="113"><span class="lineNum"> 113 </span> : };</a>
|
||||
<a name="114"><span class="lineNum"> 114 </span> : }</a>
|
||||
<a name="115"><span class="lineNum"> 115 </span> : }</a>
|
||||
<a name="116"><span class="lineNum"> 116 </span> : </a>
|
||||
<a name="117"><span class="lineNum"> 117 </span> : /// JS Object reference</a>
|
||||
<a name="118"><span class="lineNum"> 118 </span> : /// call [release] to release js object.</a>
|
||||
<a name="119"><span class="lineNum"> 119 </span> : class _JSObject extends JSRef {</a>
|
||||
<a name="120"><span class="lineNum"> 120 </span> : Pointer<JSValue>? _val;</a>
|
||||
<a name="121"><span class="lineNum"> 121 </span> : Pointer<JSContext>? _ctx;</a>
|
||||
<a name="122"><span class="lineNum"> 122 </span> : </a>
|
||||
<a name="123"><span class="lineNum"> 123 </span> : /// Create</a>
|
||||
<a name="124"><span class="lineNum"> 124 </span><span class="lineCov"> 3 : _JSObject(Pointer<JSContext> ctx, Pointer<JSValue> val) {</span></a>
|
||||
<a name="125"><span class="lineNum"> 125 </span><span class="lineCov"> 3 : this._ctx = ctx;</span></a>
|
||||
<a name="126"><span class="lineNum"> 126 </span><span class="lineCov"> 6 : final rt = jsGetRuntime(ctx);</span></a>
|
||||
<a name="127"><span class="lineNum"> 127 </span><span class="lineCov"> 9 : this._val = jsDupValue(ctx, val);</span></a>
|
||||
<a name="128"><span class="lineNum"> 128 </span><span class="lineCov"> 9 : runtimeOpaques[rt]?.addRef(this);</span></a>
|
||||
<a name="129"><span class="lineNum"> 129 </span> : }</a>
|
||||
<a name="130"><span class="lineNum"> 130 </span> : </a>
|
||||
<a name="131"><span class="lineNum"> 131 </span><span class="lineCov"> 3 : @override</span></a>
|
||||
<a name="132"><span class="lineNum"> 132 </span> : void destroy() {</a>
|
||||
<a name="133"><span class="lineNum"> 133 </span><span class="lineCov"> 3 : final ctx = _ctx;</span></a>
|
||||
<a name="134"><span class="lineNum"> 134 </span><span class="lineCov"> 3 : final val = _val;</span></a>
|
||||
<a name="135"><span class="lineNum"> 135 </span><span class="lineCov"> 3 : _val = null;</span></a>
|
||||
<a name="136"><span class="lineNum"> 136 </span><span class="lineCov"> 3 : _ctx = null;</span></a>
|
||||
<a name="137"><span class="lineNum"> 137 </span> : if (ctx == null || val == null) return;</a>
|
||||
<a name="138"><span class="lineNum"> 138 </span><span class="lineCov"> 6 : final rt = jsGetRuntime(ctx);</span></a>
|
||||
<a name="139"><span class="lineNum"> 139 </span><span class="lineCov"> 9 : runtimeOpaques[rt]?.removeRef(this);</span></a>
|
||||
<a name="140"><span class="lineNum"> 140 </span><span class="lineCov"> 3 : jsFreeValue(ctx, val);</span></a>
|
||||
<a name="141"><span class="lineNum"> 141 </span> : }</a>
|
||||
<a name="142"><span class="lineNum"> 142 </span> : </a>
|
||||
<a name="143"><span class="lineNum"> 143 </span><span class="lineCov"> 1 : @override</span></a>
|
||||
<a name="144"><span class="lineNum"> 144 </span> : String toString() {</a>
|
||||
<a name="145"><span class="lineNum"> 145 </span><span class="lineCov"> 2 : if (_ctx == null || _val == null) return "JSObject(released)";</span></a>
|
||||
<a name="146"><span class="lineNum"> 146 </span><span class="lineCov"> 3 : return jsToCString(_ctx!, _val!);</span></a>
|
||||
<a name="147"><span class="lineNum"> 147 </span> : }</a>
|
||||
<a name="148"><span class="lineNum"> 148 </span> : }</a>
|
||||
<a name="149"><span class="lineNum"> 149 </span> : </a>
|
||||
<a name="150"><span class="lineNum"> 150 </span> : /// JS function wrapper</a>
|
||||
<a name="151"><span class="lineNum"> 151 </span> : class _JSFunction extends _JSObject implements JSInvokable, _IsolateEncodable {</a>
|
||||
<a name="152"><span class="lineNum"> 152 </span><span class="lineCov"> 6 : _JSFunction(Pointer<JSContext> ctx, Pointer<JSValue> val) : super(ctx, val);</span></a>
|
||||
<a name="153"><span class="lineNum"> 153 </span> : </a>
|
||||
<a name="154"><span class="lineNum"> 154 </span><span class="lineCov"> 3 : @override</span></a>
|
||||
<a name="155"><span class="lineNum"> 155 </span> : invoke(List<dynamic> arguments, [dynamic thisVal]) {</a>
|
||||
<a name="156"><span class="lineNum"> 156 </span><span class="lineCov"> 3 : final jsRet = _invoke(arguments, thisVal);</span></a>
|
||||
<a name="157"><span class="lineNum"> 157 </span><span class="lineCov"> 3 : final ctx = _ctx!;</span></a>
|
||||
<a name="158"><span class="lineNum"> 158 </span><span class="lineCov"> 9 : bool isException = jsIsException(jsRet) != 0;</span></a>
|
||||
<a name="159"><span class="lineNum"> 159 </span> : if (isException) {</a>
|
||||
<a name="160"><span class="lineNum"> 160 </span><span class="lineNoCov"> 0 : jsFreeValue(ctx, jsRet);</span></a>
|
||||
<a name="161"><span class="lineNum"> 161 </span><span class="lineNoCov"> 0 : throw _parseJSException(ctx);</span></a>
|
||||
<a name="162"><span class="lineNum"> 162 </span> : }</a>
|
||||
<a name="163"><span class="lineNum"> 163 </span><span class="lineCov"> 3 : final ret = _jsToDart(ctx, jsRet);</span></a>
|
||||
<a name="164"><span class="lineNum"> 164 </span><span class="lineCov"> 3 : jsFreeValue(ctx, jsRet);</span></a>
|
||||
<a name="165"><span class="lineNum"> 165 </span> : return ret;</a>
|
||||
<a name="166"><span class="lineNum"> 166 </span> : }</a>
|
||||
<a name="167"><span class="lineNum"> 167 </span> : </a>
|
||||
<a name="168"><span class="lineNum"> 168 </span><span class="lineCov"> 3 : Pointer<JSValue> _invoke(List<dynamic> arguments, [dynamic thisVal]) {</span></a>
|
||||
<a name="169"><span class="lineNum"> 169 </span><span class="lineCov"> 3 : final ctx = _ctx;</span></a>
|
||||
<a name="170"><span class="lineNum"> 170 </span><span class="lineCov"> 3 : final val = _val;</span></a>
|
||||
<a name="171"><span class="lineNum"> 171 </span> : if (ctx == null || val == null)</a>
|
||||
<a name="172"><span class="lineNum"> 172 </span><span class="lineNoCov"> 0 : throw JSError("InternalError: JSValue released");</span></a>
|
||||
<a name="173"><span class="lineNum"> 173 </span> : final args = arguments</a>
|
||||
<a name="174"><span class="lineNum"> 174 </span><span class="lineCov"> 3 : .map(</span></a>
|
||||
<a name="175"><span class="lineNum"> 175 </span><span class="lineCov"> 6 : (e) => _dartToJs(ctx, e),</span></a>
|
||||
<a name="176"><span class="lineNum"> 176 </span> : )</a>
|
||||
<a name="177"><span class="lineNum"> 177 </span><span class="lineCov"> 3 : .toList();</span></a>
|
||||
<a name="178"><span class="lineNum"> 178 </span><span class="lineCov"> 3 : final jsThis = _dartToJs(ctx, thisVal);</span></a>
|
||||
<a name="179"><span class="lineNum"> 179 </span><span class="lineCov"> 3 : final jsRet = jsCall(ctx, val, jsThis, args);</span></a>
|
||||
<a name="180"><span class="lineNum"> 180 </span><span class="lineCov"> 3 : jsFreeValue(ctx, jsThis);</span></a>
|
||||
<a name="181"><span class="lineNum"> 181 </span><span class="lineCov"> 6 : for (final jsArg in args) {</span></a>
|
||||
<a name="182"><span class="lineNum"> 182 </span><span class="lineCov"> 3 : jsFreeValue(ctx, jsArg);</span></a>
|
||||
<a name="183"><span class="lineNum"> 183 </span> : }</a>
|
||||
<a name="184"><span class="lineNum"> 184 </span> : return jsRet;</a>
|
||||
<a name="185"><span class="lineNum"> 185 </span> : }</a>
|
||||
<a name="186"><span class="lineNum"> 186 </span> : </a>
|
||||
<a name="187"><span class="lineNum"> 187 </span><span class="lineCov"> 2 : @override</span></a>
|
||||
<a name="188"><span class="lineNum"> 188 </span> : Map _encode() {</a>
|
||||
<a name="189"><span class="lineNum"> 189 </span><span class="lineCov"> 4 : return IsolateFunction._new(this)._encode();</span></a>
|
||||
<a name="190"><span class="lineNum"> 190 </span> : }</a>
|
||||
<a name="191"><span class="lineNum"> 191 </span> : }</a>
|
||||
<a name="192"><span class="lineNum"> 192 </span> : </a>
|
||||
<a name="193"><span class="lineNum"> 193 </span> : /// Dart function wrapper for isolate</a>
|
||||
<a name="194"><span class="lineNum"> 194 </span> : class IsolateFunction extends JSInvokable implements _IsolateEncodable {</a>
|
||||
<a name="195"><span class="lineNum"> 195 </span> : int? _isolateId;</a>
|
||||
<a name="196"><span class="lineNum"> 196 </span> : SendPort? _port;</a>
|
||||
<a name="197"><span class="lineNum"> 197 </span> : JSInvokable? _invokable;</a>
|
||||
<a name="198"><span class="lineNum"> 198 </span><span class="lineCov"> 3 : IsolateFunction._fromId(this._isolateId, this._port);</span></a>
|
||||
<a name="199"><span class="lineNum"> 199 </span> : </a>
|
||||
<a name="200"><span class="lineNum"> 200 </span><span class="lineCov"> 3 : IsolateFunction._new(this._invokable) {</span></a>
|
||||
<a name="201"><span class="lineNum"> 201 </span><span class="lineCov"> 6 : _handlers.add(this);</span></a>
|
||||
<a name="202"><span class="lineNum"> 202 </span> : }</a>
|
||||
<a name="203"><span class="lineNum"> 203 </span><span class="lineCov"> 3 : IsolateFunction(Function func) : this._new(_DartFunction(func));</span></a>
|
||||
<a name="204"><span class="lineNum"> 204 </span> : </a>
|
||||
<a name="205"><span class="lineNum"> 205 </span> : static ReceivePort? _invokeHandler;</a>
|
||||
<a name="206"><span class="lineNum"> 206 </span><span class="lineCov"> 6 : static Set<IsolateFunction> _handlers = Set();</span></a>
|
||||
<a name="207"><span class="lineNum"> 207 </span> : </a>
|
||||
<a name="208"><span class="lineNum"> 208 </span><span class="lineCov"> 3 : static get _handlePort {</span></a>
|
||||
<a name="209"><span class="lineNum"> 209 </span> : if (_invokeHandler == null) {</a>
|
||||
<a name="210"><span class="lineNum"> 210 </span><span class="lineCov"> 3 : _invokeHandler = ReceivePort();</span></a>
|
||||
<a name="211"><span class="lineNum"> 211 </span><span class="lineCov"> 6 : _invokeHandler!.listen((msg) async {</span></a>
|
||||
<a name="212"><span class="lineNum"> 212 </span><span class="lineCov"> 3 : final msgPort = msg[#port];</span></a>
|
||||
<a name="213"><span class="lineNum"> 213 </span> : try {</a>
|
||||
<a name="214"><span class="lineNum"> 214 </span><span class="lineCov"> 6 : final handler = _handlers.firstWhereOrNull(</span></a>
|
||||
<a name="215"><span class="lineNum"> 215 </span><span class="lineCov"> 12 : (v) => identityHashCode(v) == msg[#handler],</span></a>
|
||||
<a name="216"><span class="lineNum"> 216 </span> : );</a>
|
||||
<a name="217"><span class="lineNum"> 217 </span><span class="lineNoCov"> 0 : if (handler == null) throw JSError('handler released');</span></a>
|
||||
<a name="218"><span class="lineNum"> 218 </span><span class="lineCov"> 12 : final ret = _encodeData(await handler._handle(msg[#msg]));</span></a>
|
||||
<a name="219"><span class="lineNum"> 219 </span><span class="lineCov"> 3 : if (msgPort != null) msgPort.send(ret);</span></a>
|
||||
<a name="220"><span class="lineNum"> 220 </span> : } catch (e) {</a>
|
||||
<a name="221"><span class="lineNum"> 221 </span><span class="lineNoCov"> 0 : final err = _encodeData(e);</span></a>
|
||||
<a name="222"><span class="lineNum"> 222 </span> : if (msgPort != null)</a>
|
||||
<a name="223"><span class="lineNum"> 223 </span><span class="lineNoCov"> 0 : msgPort.send({</span></a>
|
||||
<a name="224"><span class="lineNum"> 224 </span> : #error: err,</a>
|
||||
<a name="225"><span class="lineNum"> 225 </span> : });</a>
|
||||
<a name="226"><span class="lineNum"> 226 </span> : }</a>
|
||||
<a name="227"><span class="lineNum"> 227 </span> : });</a>
|
||||
<a name="228"><span class="lineNum"> 228 </span> : }</a>
|
||||
<a name="229"><span class="lineNum"> 229 </span><span class="lineCov"> 3 : return _invokeHandler!.sendPort;</span></a>
|
||||
<a name="230"><span class="lineNum"> 230 </span> : }</a>
|
||||
<a name="231"><span class="lineNum"> 231 </span> : </a>
|
||||
<a name="232"><span class="lineNum"> 232 </span><span class="lineCov"> 3 : _send(msg) async {</span></a>
|
||||
<a name="233"><span class="lineNum"> 233 </span><span class="lineCov"> 3 : final port = _port;</span></a>
|
||||
<a name="234"><span class="lineNum"> 234 </span><span class="lineCov"> 1 : if (port == null) return _handle(msg);</span></a>
|
||||
<a name="235"><span class="lineNum"> 235 </span><span class="lineCov"> 3 : final evaluatePort = ReceivePort();</span></a>
|
||||
<a name="236"><span class="lineNum"> 236 </span><span class="lineCov"> 6 : port.send({</span></a>
|
||||
<a name="237"><span class="lineNum"> 237 </span><span class="lineCov"> 3 : #handler: _isolateId,</span></a>
|
||||
<a name="238"><span class="lineNum"> 238 </span> : #msg: msg,</a>
|
||||
<a name="239"><span class="lineNum"> 239 </span><span class="lineCov"> 3 : #port: evaluatePort.sendPort,</span></a>
|
||||
<a name="240"><span class="lineNum"> 240 </span> : });</a>
|
||||
<a name="241"><span class="lineNum"> 241 </span><span class="lineCov"> 6 : final result = await evaluatePort.first;</span></a>
|
||||
<a name="242"><span class="lineNum"> 242 </span><span class="lineCov"> 5 : if (result is Map && result.containsKey(#error))</span></a>
|
||||
<a name="243"><span class="lineNum"> 243 </span><span class="lineNoCov"> 0 : throw _decodeData(result[#error]);</span></a>
|
||||
<a name="244"><span class="lineNum"> 244 </span><span class="lineCov"> 3 : return _decodeData(result);</span></a>
|
||||
<a name="245"><span class="lineNum"> 245 </span> : }</a>
|
||||
<a name="246"><span class="lineNum"> 246 </span> : </a>
|
||||
<a name="247"><span class="lineNum"> 247 </span><span class="lineCov"> 2 : _destroy() {</span></a>
|
||||
<a name="248"><span class="lineNum"> 248 </span><span class="lineCov"> 4 : _handlers.remove(this);</span></a>
|
||||
<a name="249"><span class="lineNum"> 249 </span><span class="lineCov"> 4 : _invokable?.free();</span></a>
|
||||
<a name="250"><span class="lineNum"> 250 </span><span class="lineCov"> 2 : _invokable = null;</span></a>
|
||||
<a name="251"><span class="lineNum"> 251 </span> : }</a>
|
||||
<a name="252"><span class="lineNum"> 252 </span> : </a>
|
||||
<a name="253"><span class="lineNum"> 253 </span><span class="lineCov"> 3 : _handle(msg) async {</span></a>
|
||||
<a name="254"><span class="lineNum"> 254 </span> : switch (msg) {</a>
|
||||
<a name="255"><span class="lineNum"> 255 </span><span class="lineCov"> 3 : case #dup:</span></a>
|
||||
<a name="256"><span class="lineNum"> 256 </span><span class="lineCov"> 6 : _refCount++;</span></a>
|
||||
<a name="257"><span class="lineNum"> 257 </span> : return null;</a>
|
||||
<a name="258"><span class="lineNum"> 258 </span><span class="lineCov"> 3 : case #free:</span></a>
|
||||
<a name="259"><span class="lineNum"> 259 </span><span class="lineCov"> 6 : _refCount--;</span></a>
|
||||
<a name="260"><span class="lineNum"> 260 </span><span class="lineCov"> 8 : if (_refCount < 0) _destroy();</span></a>
|
||||
<a name="261"><span class="lineNum"> 261 </span> : return null;</a>
|
||||
<a name="262"><span class="lineNum"> 262 </span><span class="lineCov"> 3 : case #destroy:</span></a>
|
||||
<a name="263"><span class="lineNum"> 263 </span><span class="lineNoCov"> 0 : _destroy();</span></a>
|
||||
<a name="264"><span class="lineNum"> 264 </span> : return null;</a>
|
||||
<a name="265"><span class="lineNum"> 265 </span> : }</a>
|
||||
<a name="266"><span class="lineNum"> 266 </span><span class="lineCov"> 6 : final List args = _decodeData(msg[#args]);</span></a>
|
||||
<a name="267"><span class="lineNum"> 267 </span><span class="lineCov"> 6 : final thisVal = _decodeData(msg[#thisVal]);</span></a>
|
||||
<a name="268"><span class="lineNum"> 268 </span><span class="lineCov"> 6 : return _invokable?.invoke(args, thisVal);</span></a>
|
||||
<a name="269"><span class="lineNum"> 269 </span> : }</a>
|
||||
<a name="270"><span class="lineNum"> 270 </span> : </a>
|
||||
<a name="271"><span class="lineNum"> 271 </span> : @override</a>
|
||||
<a name="272"><span class="lineNum"> 272 </span><span class="lineCov"> 3 : Future invoke(List positionalArguments, [thisVal]) async {</span></a>
|
||||
<a name="273"><span class="lineNum"> 273 </span><span class="lineCov"> 3 : final List dArgs = _encodeData(positionalArguments);</span></a>
|
||||
<a name="274"><span class="lineNum"> 274 </span><span class="lineCov"> 3 : final dThisVal = _encodeData(thisVal);</span></a>
|
||||
<a name="275"><span class="lineNum"> 275 </span><span class="lineCov"> 6 : return _send({</span></a>
|
||||
<a name="276"><span class="lineNum"> 276 </span> : #args: dArgs,</a>
|
||||
<a name="277"><span class="lineNum"> 277 </span> : #thisVal: dThisVal,</a>
|
||||
<a name="278"><span class="lineNum"> 278 </span> : });</a>
|
||||
<a name="279"><span class="lineNum"> 279 </span> : }</a>
|
||||
<a name="280"><span class="lineNum"> 280 </span> : </a>
|
||||
<a name="281"><span class="lineNum"> 281 </span><span class="lineCov"> 3 : static IsolateFunction? _decode(Map obj) {</span></a>
|
||||
<a name="282"><span class="lineNum"> 282 </span><span class="lineCov"> 3 : if (obj.containsKey(#jsFunctionPort))</span></a>
|
||||
<a name="283"><span class="lineNum"> 283 </span><span class="lineCov"> 3 : return IsolateFunction._fromId(</span></a>
|
||||
<a name="284"><span class="lineNum"> 284 </span><span class="lineCov"> 3 : obj[#jsFunctionId],</span></a>
|
||||
<a name="285"><span class="lineNum"> 285 </span><span class="lineCov"> 3 : obj[#jsFunctionPort],</span></a>
|
||||
<a name="286"><span class="lineNum"> 286 </span> : );</a>
|
||||
<a name="287"><span class="lineNum"> 287 </span> : return null;</a>
|
||||
<a name="288"><span class="lineNum"> 288 </span> : }</a>
|
||||
<a name="289"><span class="lineNum"> 289 </span> : </a>
|
||||
<a name="290"><span class="lineNum"> 290 </span><span class="lineCov"> 3 : @override</span></a>
|
||||
<a name="291"><span class="lineNum"> 291 </span> : Map _encode() {</a>
|
||||
<a name="292"><span class="lineNum"> 292 </span><span class="lineCov"> 3 : return {</span></a>
|
||||
<a name="293"><span class="lineNum"> 293 </span><span class="lineCov"> 6 : #jsFunctionId: _isolateId ?? identityHashCode(this),</span></a>
|
||||
<a name="294"><span class="lineNum"> 294 </span><span class="lineCov"> 6 : #jsFunctionPort: _port ?? IsolateFunction._handlePort,</span></a>
|
||||
<a name="295"><span class="lineNum"> 295 </span> : };</a>
|
||||
<a name="296"><span class="lineNum"> 296 </span> : }</a>
|
||||
<a name="297"><span class="lineNum"> 297 </span> : </a>
|
||||
<a name="298"><span class="lineNum"> 298 </span> : int _refCount = 0;</a>
|
||||
<a name="299"><span class="lineNum"> 299 </span> : </a>
|
||||
<a name="300"><span class="lineNum"> 300 </span><span class="lineCov"> 3 : @override</span></a>
|
||||
<a name="301"><span class="lineNum"> 301 </span> : dup() {</a>
|
||||
<a name="302"><span class="lineNum"> 302 </span><span class="lineCov"> 3 : _send(#dup);</span></a>
|
||||
<a name="303"><span class="lineNum"> 303 </span> : }</a>
|
||||
<a name="304"><span class="lineNum"> 304 </span> : </a>
|
||||
<a name="305"><span class="lineNum"> 305 </span><span class="lineCov"> 3 : @override</span></a>
|
||||
<a name="306"><span class="lineNum"> 306 </span> : free() {</a>
|
||||
<a name="307"><span class="lineNum"> 307 </span><span class="lineCov"> 3 : _send(#free);</span></a>
|
||||
<a name="308"><span class="lineNum"> 308 </span> : }</a>
|
||||
<a name="309"><span class="lineNum"> 309 </span> : </a>
|
||||
<a name="310"><span class="lineNum"> 310 </span><span class="lineNoCov"> 0 : @override</span></a>
|
||||
<a name="311"><span class="lineNum"> 311 </span> : void destroy() {</a>
|
||||
<a name="312"><span class="lineNum"> 312 </span><span class="lineNoCov"> 0 : _send(#destroy);</span></a>
|
||||
<a name="313"><span class="lineNum"> 313 </span> : }</a>
|
||||
<a name="314"><span class="lineNum"> 314 </span> : }</a>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
<tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LCOV version 1.14</a></td></tr>
|
||||
</table>
|
||||
<br>
|
||||
|
||||
</body>
|
||||
</html>
|
72
coverage/src/wrapper.dart.func-sort-c.html
Normal file
72
coverage/src/wrapper.dart.func-sort-c.html
Normal file
@@ -0,0 +1,72 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>LCOV - lcov.info - src/wrapper.dart - functions</title>
|
||||
<link rel="stylesheet" type="text/css" href="../gcov.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="title">LCOV - code coverage report</td></tr>
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
|
||||
<tr>
|
||||
<td width="100%">
|
||||
<table cellpadding=1 border=0 width="100%">
|
||||
<tr>
|
||||
<td width="10%" class="headerItem">Current view:</td>
|
||||
<td width="35%" class="headerValue"><a href="../index.html">top level</a> - <a href="index.html">src</a> - wrapper.dart<span style="font-size: 80%;"> (<a href="wrapper.dart.gcov.html">source</a> / functions)</span></td>
|
||||
<td width="5%"></td>
|
||||
<td width="15%"></td>
|
||||
<td width="10%" class="headerCovTableHead">Hit</td>
|
||||
<td width="10%" class="headerCovTableHead">Total</td>
|
||||
<td width="15%" class="headerCovTableHead">Coverage</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Test:</td>
|
||||
<td class="headerValue">lcov.info</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Lines:</td>
|
||||
<td class="headerCovTableEntry">149</td>
|
||||
<td class="headerCovTableEntry">158</td>
|
||||
<td class="headerCovTableEntryHi">94.3 %</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Date:</td>
|
||||
<td class="headerValue">2021-03-31 22:28:15</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Functions:</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntryHi">-</td>
|
||||
</tr>
|
||||
<tr><td><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
|
||||
<center>
|
||||
<table width="60%" cellpadding=1 cellspacing=1 border=0>
|
||||
<tr><td><br></td></tr>
|
||||
<tr>
|
||||
<td width="80%" class="tableHead">Function Name <span class="tableHeadSort"><a href="wrapper.dart.func.html"><img src="../updown.png" width=10 height=14 alt="Sort by function name" title="Sort by function name" border=0></a></span></td>
|
||||
<td width="20%" class="tableHead">Hit count <span class="tableHeadSort"><img src="../glass.png" width=10 height=14 alt="Sort by hit count" title="Sort by hit count" border=0></span></td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
</center>
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
<tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LCOV version 1.14</a></td></tr>
|
||||
</table>
|
||||
<br>
|
||||
|
||||
</body>
|
||||
</html>
|
72
coverage/src/wrapper.dart.func.html
Normal file
72
coverage/src/wrapper.dart.func.html
Normal file
@@ -0,0 +1,72 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>LCOV - lcov.info - src/wrapper.dart - functions</title>
|
||||
<link rel="stylesheet" type="text/css" href="../gcov.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="title">LCOV - code coverage report</td></tr>
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
|
||||
<tr>
|
||||
<td width="100%">
|
||||
<table cellpadding=1 border=0 width="100%">
|
||||
<tr>
|
||||
<td width="10%" class="headerItem">Current view:</td>
|
||||
<td width="35%" class="headerValue"><a href="../index.html">top level</a> - <a href="index.html">src</a> - wrapper.dart<span style="font-size: 80%;"> (<a href="wrapper.dart.gcov.html">source</a> / functions)</span></td>
|
||||
<td width="5%"></td>
|
||||
<td width="15%"></td>
|
||||
<td width="10%" class="headerCovTableHead">Hit</td>
|
||||
<td width="10%" class="headerCovTableHead">Total</td>
|
||||
<td width="15%" class="headerCovTableHead">Coverage</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Test:</td>
|
||||
<td class="headerValue">lcov.info</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Lines:</td>
|
||||
<td class="headerCovTableEntry">149</td>
|
||||
<td class="headerCovTableEntry">158</td>
|
||||
<td class="headerCovTableEntryHi">94.3 %</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Date:</td>
|
||||
<td class="headerValue">2021-03-31 22:28:15</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Functions:</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntryHi">-</td>
|
||||
</tr>
|
||||
<tr><td><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
|
||||
<center>
|
||||
<table width="60%" cellpadding=1 cellspacing=1 border=0>
|
||||
<tr><td><br></td></tr>
|
||||
<tr>
|
||||
<td width="80%" class="tableHead">Function Name <span class="tableHeadSort"><img src="../glass.png" width=10 height=14 alt="Sort by function name" title="Sort by function name" border=0></span></td>
|
||||
<td width="20%" class="tableHead">Hit count <span class="tableHeadSort"><a href="wrapper.dart.func-sort-c.html"><img src="../updown.png" width=10 height=14 alt="Sort by hit count" title="Sort by hit count" border=0></a></span></td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
</center>
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
<tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LCOV version 1.14</a></td></tr>
|
||||
</table>
|
||||
<br>
|
||||
|
||||
</body>
|
||||
</html>
|
325
coverage/src/wrapper.dart.gcov.html
Normal file
325
coverage/src/wrapper.dart.gcov.html
Normal file
@@ -0,0 +1,325 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>LCOV - lcov.info - src/wrapper.dart</title>
|
||||
<link rel="stylesheet" type="text/css" href="../gcov.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="title">LCOV - code coverage report</td></tr>
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
|
||||
<tr>
|
||||
<td width="100%">
|
||||
<table cellpadding=1 border=0 width="100%">
|
||||
<tr>
|
||||
<td width="10%" class="headerItem">Current view:</td>
|
||||
<td width="35%" class="headerValue"><a href="../index.html">top level</a> - <a href="index.html">src</a> - wrapper.dart<span style="font-size: 80%;"> (source / <a href="wrapper.dart.func-sort-c.html">functions</a>)</span></td>
|
||||
<td width="5%"></td>
|
||||
<td width="15%"></td>
|
||||
<td width="10%" class="headerCovTableHead">Hit</td>
|
||||
<td width="10%" class="headerCovTableHead">Total</td>
|
||||
<td width="15%" class="headerCovTableHead">Coverage</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Test:</td>
|
||||
<td class="headerValue">lcov.info</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Lines:</td>
|
||||
<td class="headerCovTableEntry">149</td>
|
||||
<td class="headerCovTableEntry">158</td>
|
||||
<td class="headerCovTableEntryHi">94.3 %</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="headerItem">Date:</td>
|
||||
<td class="headerValue">2021-03-31 22:28:15</td>
|
||||
<td></td>
|
||||
<td class="headerItem">Functions:</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntry">0</td>
|
||||
<td class="headerCovTableEntryHi">-</td>
|
||||
</tr>
|
||||
<tr><td><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
</table>
|
||||
|
||||
<table cellpadding=0 cellspacing=0 border=0>
|
||||
<tr>
|
||||
<td><br></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<pre class="sourceHeading"> Line data Source code</pre>
|
||||
<pre class="source">
|
||||
<a name="1"><span class="lineNum"> 1 </span> : /*</a>
|
||||
<a name="2"><span class="lineNum"> 2 </span> : * @Description: wrapper</a>
|
||||
<a name="3"><span class="lineNum"> 3 </span> : * @Author: ekibun</a>
|
||||
<a name="4"><span class="lineNum"> 4 </span> : * @Date: 2020-09-19 22:07:47</a>
|
||||
<a name="5"><span class="lineNum"> 5 </span> : * @LastEditors: ekibun</a>
|
||||
<a name="6"><span class="lineNum"> 6 </span> : * @LastEditTime: 2020-12-02 11:14:03</a>
|
||||
<a name="7"><span class="lineNum"> 7 </span> : */</a>
|
||||
<a name="8"><span class="lineNum"> 8 </span> : part of '../flutter_qjs.dart';</a>
|
||||
<a name="9"><span class="lineNum"> 9 </span> : </a>
|
||||
<a name="10"><span class="lineNum"> 10 </span><span class="lineCov"> 2 : dynamic _parseJSException(Pointer<JSContext> ctx, [Pointer<JSValue>? perr]) {</span></a>
|
||||
<a name="11"><span class="lineNum"> 11 </span><span class="lineCov"> 2 : final e = perr ?? jsGetException(ctx);</span></a>
|
||||
<a name="12"><span class="lineNum"> 12 </span> : var err;</a>
|
||||
<a name="13"><span class="lineNum"> 13 </span> : try {</a>
|
||||
<a name="14"><span class="lineNum"> 14 </span><span class="lineCov"> 2 : err = _jsToDart(ctx, e);</span></a>
|
||||
<a name="15"><span class="lineNum"> 15 </span> : } catch (exception) {</a>
|
||||
<a name="16"><span class="lineNum"> 16 </span> : err = exception;</a>
|
||||
<a name="17"><span class="lineNum"> 17 </span> : }</a>
|
||||
<a name="18"><span class="lineNum"> 18 </span><span class="lineCov"> 1 : if (perr == null) jsFreeValue(ctx, e);</span></a>
|
||||
<a name="19"><span class="lineNum"> 19 </span> : return err;</a>
|
||||
<a name="20"><span class="lineNum"> 20 </span> : }</a>
|
||||
<a name="21"><span class="lineNum"> 21 </span> : </a>
|
||||
<a name="22"><span class="lineNum"> 22 </span><span class="lineCov"> 2 : void _definePropertyValue(</span></a>
|
||||
<a name="23"><span class="lineNum"> 23 </span> : Pointer<JSContext> ctx,</a>
|
||||
<a name="24"><span class="lineNum"> 24 </span> : Pointer<JSValue> obj,</a>
|
||||
<a name="25"><span class="lineNum"> 25 </span> : dynamic key,</a>
|
||||
<a name="26"><span class="lineNum"> 26 </span> : dynamic val, {</a>
|
||||
<a name="27"><span class="lineNum"> 27 </span> : Map<dynamic, Pointer<JSValue>>? cache,</a>
|
||||
<a name="28"><span class="lineNum"> 28 </span> : }) {</a>
|
||||
<a name="29"><span class="lineNum"> 29 </span><span class="lineCov"> 2 : final jsAtomVal = _dartToJs(ctx, key, cache: cache);</span></a>
|
||||
<a name="30"><span class="lineNum"> 30 </span><span class="lineCov"> 4 : final jsAtom = jsValueToAtom(ctx, jsAtomVal);</span></a>
|
||||
<a name="31"><span class="lineNum"> 31 </span><span class="lineCov"> 4 : jsDefinePropertyValue(</span></a>
|
||||
<a name="32"><span class="lineNum"> 32 </span> : ctx,</a>
|
||||
<a name="33"><span class="lineNum"> 33 </span> : obj,</a>
|
||||
<a name="34"><span class="lineNum"> 34 </span> : jsAtom,</a>
|
||||
<a name="35"><span class="lineNum"> 35 </span><span class="lineCov"> 2 : _dartToJs(ctx, val, cache: cache),</span></a>
|
||||
<a name="36"><span class="lineNum"> 36 </span> : JSProp.C_W_E,</a>
|
||||
<a name="37"><span class="lineNum"> 37 </span> : );</a>
|
||||
<a name="38"><span class="lineNum"> 38 </span><span class="lineCov"> 4 : jsFreeAtom(ctx, jsAtom);</span></a>
|
||||
<a name="39"><span class="lineNum"> 39 </span><span class="lineCov"> 2 : jsFreeValue(ctx, jsAtomVal);</span></a>
|
||||
<a name="40"><span class="lineNum"> 40 </span> : }</a>
|
||||
<a name="41"><span class="lineNum"> 41 </span> : </a>
|
||||
<a name="42"><span class="lineNum"> 42 </span><span class="lineCov"> 3 : Pointer<JSValue> _jsGetPropertyValue(</span></a>
|
||||
<a name="43"><span class="lineNum"> 43 </span> : Pointer<JSContext> ctx,</a>
|
||||
<a name="44"><span class="lineNum"> 44 </span> : Pointer<JSValue> obj,</a>
|
||||
<a name="45"><span class="lineNum"> 45 </span> : dynamic key, {</a>
|
||||
<a name="46"><span class="lineNum"> 46 </span> : Map<dynamic, Pointer<JSValue>>? cache,</a>
|
||||
<a name="47"><span class="lineNum"> 47 </span> : }) {</a>
|
||||
<a name="48"><span class="lineNum"> 48 </span><span class="lineCov"> 3 : final jsAtomVal = _dartToJs(ctx, key, cache: cache);</span></a>
|
||||
<a name="49"><span class="lineNum"> 49 </span><span class="lineCov"> 6 : final jsAtom = jsValueToAtom(ctx, jsAtomVal);</span></a>
|
||||
<a name="50"><span class="lineNum"> 50 </span><span class="lineCov"> 6 : final jsProp = jsGetProperty(ctx, obj, jsAtom);</span></a>
|
||||
<a name="51"><span class="lineNum"> 51 </span><span class="lineCov"> 6 : jsFreeAtom(ctx, jsAtom);</span></a>
|
||||
<a name="52"><span class="lineNum"> 52 </span><span class="lineCov"> 3 : jsFreeValue(ctx, jsAtomVal);</span></a>
|
||||
<a name="53"><span class="lineNum"> 53 </span> : return jsProp;</a>
|
||||
<a name="54"><span class="lineNum"> 54 </span> : }</a>
|
||||
<a name="55"><span class="lineNum"> 55 </span> : </a>
|
||||
<a name="56"><span class="lineNum"> 56 </span><span class="lineCov"> 3 : Pointer<JSValue> _dartToJs(Pointer<JSContext> ctx, dynamic val,</span></a>
|
||||
<a name="57"><span class="lineNum"> 57 </span> : {Map<dynamic, Pointer<JSValue>>? cache}) {</a>
|
||||
<a name="58"><span class="lineNum"> 58 </span><span class="lineCov"> 6 : if (val == null) return jsUNDEFINED();</span></a>
|
||||
<a name="59"><span class="lineNum"> 59 </span><span class="lineCov"> 3 : if (val is Error) return _dartToJs(ctx, JSError(val, val.stackTrace));</span></a>
|
||||
<a name="60"><span class="lineNum"> 60 </span><span class="lineCov"> 3 : if (val is Exception) return _dartToJs(ctx, JSError(val));</span></a>
|
||||
<a name="61"><span class="lineNum"> 61 </span><span class="lineCov"> 3 : if (val is JSError) {</span></a>
|
||||
<a name="62"><span class="lineNum"> 62 </span><span class="lineCov"> 4 : final ret = jsNewError(ctx);</span></a>
|
||||
<a name="63"><span class="lineNum"> 63 </span><span class="lineCov"> 2 : _definePropertyValue(ctx, ret, "name", "");</span></a>
|
||||
<a name="64"><span class="lineNum"> 64 </span><span class="lineCov"> 4 : _definePropertyValue(ctx, ret, "message", val.message);</span></a>
|
||||
<a name="65"><span class="lineNum"> 65 </span><span class="lineCov"> 4 : _definePropertyValue(ctx, ret, "stack", val.stack);</span></a>
|
||||
<a name="66"><span class="lineNum"> 66 </span> : return ret;</a>
|
||||
<a name="67"><span class="lineNum"> 67 </span> : }</a>
|
||||
<a name="68"><span class="lineNum"> 68 </span><span class="lineCov"> 12 : if (val is _JSObject) return jsDupValue(ctx, val._val!);</span></a>
|
||||
<a name="69"><span class="lineNum"> 69 </span><span class="lineCov"> 3 : if (val is Future) {</span></a>
|
||||
<a name="70"><span class="lineNum"> 70 </span><span class="lineCov"> 9 : final resolvingFunc = malloc<Uint8>(sizeOfJSValue * 2).cast<JSValue>();</span></a>
|
||||
<a name="71"><span class="lineNum"> 71 </span> : final resolvingFunc2 =</a>
|
||||
<a name="72"><span class="lineNum"> 72 </span><span class="lineCov"> 12 : Pointer<JSValue>.fromAddress(resolvingFunc.address + sizeOfJSValue);</span></a>
|
||||
<a name="73"><span class="lineNum"> 73 </span><span class="lineCov"> 6 : final ret = jsNewPromiseCapability(ctx, resolvingFunc);</span></a>
|
||||
<a name="74"><span class="lineNum"> 74 </span><span class="lineCov"> 3 : final _JSFunction res = _jsToDart(ctx, resolvingFunc);</span></a>
|
||||
<a name="75"><span class="lineNum"> 75 </span><span class="lineCov"> 3 : final _JSFunction rej = _jsToDart(ctx, resolvingFunc2);</span></a>
|
||||
<a name="76"><span class="lineNum"> 76 </span><span class="lineCov"> 3 : jsFreeValue(ctx, resolvingFunc, free: false);</span></a>
|
||||
<a name="77"><span class="lineNum"> 77 </span><span class="lineCov"> 3 : jsFreeValue(ctx, resolvingFunc2, free: false);</span></a>
|
||||
<a name="78"><span class="lineNum"> 78 </span><span class="lineCov"> 3 : malloc.free(resolvingFunc);</span></a>
|
||||
<a name="79"><span class="lineNum"> 79 </span><span class="lineCov"> 3 : final refRes = _DartObject(ctx, res);</span></a>
|
||||
<a name="80"><span class="lineNum"> 80 </span><span class="lineCov"> 3 : final refRej = _DartObject(ctx, rej);</span></a>
|
||||
<a name="81"><span class="lineNum"> 81 </span><span class="lineCov"> 3 : res.free();</span></a>
|
||||
<a name="82"><span class="lineNum"> 82 </span><span class="lineCov"> 3 : rej.free();</span></a>
|
||||
<a name="83"><span class="lineNum"> 83 </span><span class="lineCov"> 6 : val.then((value) {</span></a>
|
||||
<a name="84"><span class="lineNum"> 84 </span><span class="lineCov"> 6 : res.invoke([value]);</span></a>
|
||||
<a name="85"><span class="lineNum"> 85 </span><span class="lineCov"> 2 : }, onError: (e) {</span></a>
|
||||
<a name="86"><span class="lineNum"> 86 </span><span class="lineCov"> 4 : rej.invoke([e]);</span></a>
|
||||
<a name="87"><span class="lineNum"> 87 </span><span class="lineCov"> 6 : }).whenComplete(() {</span></a>
|
||||
<a name="88"><span class="lineNum"> 88 </span><span class="lineCov"> 3 : refRes.free();</span></a>
|
||||
<a name="89"><span class="lineNum"> 89 </span><span class="lineCov"> 3 : refRej.free();</span></a>
|
||||
<a name="90"><span class="lineNum"> 90 </span> : });</a>
|
||||
<a name="91"><span class="lineNum"> 91 </span> : return ret;</a>
|
||||
<a name="92"><span class="lineNum"> 92 </span> : }</a>
|
||||
<a name="93"><span class="lineNum"> 93 </span><span class="lineCov"> 3 : if (cache == null) cache = Map();</span></a>
|
||||
<a name="94"><span class="lineNum"> 94 </span><span class="lineCov"> 7 : if (val is bool) return jsNewBool(ctx, val ? 1 : 0);</span></a>
|
||||
<a name="95"><span class="lineNum"> 95 </span><span class="lineCov"> 7 : if (val is int) return jsNewInt64(ctx, val);</span></a>
|
||||
<a name="96"><span class="lineNum"> 96 </span><span class="lineCov"> 7 : if (val is double) return jsNewFloat64(ctx, val);</span></a>
|
||||
<a name="97"><span class="lineNum"> 97 </span><span class="lineCov"> 6 : if (val is String) return jsNewString(ctx, val);</span></a>
|
||||
<a name="98"><span class="lineNum"> 98 </span><span class="lineCov"> 3 : if (val is Uint8List) {</span></a>
|
||||
<a name="99"><span class="lineNum"> 99 </span><span class="lineNoCov"> 0 : final ptr = malloc<Uint8>(val.length);</span></a>
|
||||
<a name="100"><span class="lineNum"> 100 </span><span class="lineNoCov"> 0 : final byteList = ptr.asTypedList(val.length);</span></a>
|
||||
<a name="101"><span class="lineNum"> 101 </span><span class="lineNoCov"> 0 : byteList.setAll(0, val);</span></a>
|
||||
<a name="102"><span class="lineNum"> 102 </span><span class="lineNoCov"> 0 : final ret = jsNewArrayBufferCopy(ctx, ptr, val.length);</span></a>
|
||||
<a name="103"><span class="lineNum"> 103 </span><span class="lineNoCov"> 0 : malloc.free(ptr);</span></a>
|
||||
<a name="104"><span class="lineNum"> 104 </span> : return ret;</a>
|
||||
<a name="105"><span class="lineNum"> 105 </span> : }</a>
|
||||
<a name="106"><span class="lineNum"> 106 </span><span class="lineCov"> 3 : if (cache.containsKey(val)) {</span></a>
|
||||
<a name="107"><span class="lineNum"> 107 </span><span class="lineCov"> 6 : return jsDupValue(ctx, cache[val]!);</span></a>
|
||||
<a name="108"><span class="lineNum"> 108 </span> : }</a>
|
||||
<a name="109"><span class="lineNum"> 109 </span><span class="lineCov"> 3 : if (val is List) {</span></a>
|
||||
<a name="110"><span class="lineNum"> 110 </span><span class="lineCov"> 4 : final ret = jsNewArray(ctx);</span></a>
|
||||
<a name="111"><span class="lineNum"> 111 </span><span class="lineCov"> 2 : cache[val] = ret;</span></a>
|
||||
<a name="112"><span class="lineNum"> 112 </span><span class="lineCov"> 6 : for (int i = 0; i < val.length; ++i) {</span></a>
|
||||
<a name="113"><span class="lineNum"> 113 </span><span class="lineCov"> 4 : _definePropertyValue(ctx, ret, i, val[i], cache: cache);</span></a>
|
||||
<a name="114"><span class="lineNum"> 114 </span> : }</a>
|
||||
<a name="115"><span class="lineNum"> 115 </span> : return ret;</a>
|
||||
<a name="116"><span class="lineNum"> 116 </span> : }</a>
|
||||
<a name="117"><span class="lineNum"> 117 </span><span class="lineCov"> 3 : if (val is Map) {</span></a>
|
||||
<a name="118"><span class="lineNum"> 118 </span><span class="lineCov"> 4 : final ret = jsNewObject(ctx);</span></a>
|
||||
<a name="119"><span class="lineNum"> 119 </span><span class="lineCov"> 2 : cache[val] = ret;</span></a>
|
||||
<a name="120"><span class="lineNum"> 120 </span><span class="lineCov"> 4 : for (MapEntry<dynamic, dynamic> entry in val.entries) {</span></a>
|
||||
<a name="121"><span class="lineNum"> 121 </span><span class="lineCov"> 6 : _definePropertyValue(ctx, ret, entry.key, entry.value, cache: cache);</span></a>
|
||||
<a name="122"><span class="lineNum"> 122 </span> : }</a>
|
||||
<a name="123"><span class="lineNum"> 123 </span> : return ret;</a>
|
||||
<a name="124"><span class="lineNum"> 124 </span> : }</a>
|
||||
<a name="125"><span class="lineNum"> 125 </span> : // wrap Function to JSInvokable</a>
|
||||
<a name="126"><span class="lineNum"> 126 </span><span class="lineCov"> 3 : final valWrap = JSInvokable._wrap(val);</span></a>
|
||||
<a name="127"><span class="lineNum"> 127 </span> : final dartObjectClassId =</a>
|
||||
<a name="128"><span class="lineNum"> 128 </span><span class="lineCov"> 15 : runtimeOpaques[jsGetRuntime(ctx)]?.dartObjectClassId ?? 0;</span></a>
|
||||
<a name="129"><span class="lineNum"> 129 </span><span class="lineCov"> 3 : if (dartObjectClassId == 0) return jsUNDEFINED();</span></a>
|
||||
<a name="130"><span class="lineNum"> 130 </span><span class="lineCov"> 6 : final dartObject = jsNewObjectClass(</span></a>
|
||||
<a name="131"><span class="lineNum"> 131 </span> : ctx,</a>
|
||||
<a name="132"><span class="lineNum"> 132 </span> : dartObjectClassId,</a>
|
||||
<a name="133"><span class="lineNum"> 133 </span><span class="lineCov"> 6 : identityHashCode(_DartObject(ctx, valWrap)),</span></a>
|
||||
<a name="134"><span class="lineNum"> 134 </span> : );</a>
|
||||
<a name="135"><span class="lineNum"> 135 </span><span class="lineCov"> 3 : if (valWrap is JSInvokable) {</span></a>
|
||||
<a name="136"><span class="lineNum"> 136 </span><span class="lineCov"> 6 : final ret = jsNewCFunction(ctx, dartObject);</span></a>
|
||||
<a name="137"><span class="lineNum"> 137 </span><span class="lineCov"> 3 : jsFreeValue(ctx, dartObject);</span></a>
|
||||
<a name="138"><span class="lineNum"> 138 </span> : return ret;</a>
|
||||
<a name="139"><span class="lineNum"> 139 </span> : }</a>
|
||||
<a name="140"><span class="lineNum"> 140 </span> : return dartObject;</a>
|
||||
<a name="141"><span class="lineNum"> 141 </span> : }</a>
|
||||
<a name="142"><span class="lineNum"> 142 </span> : </a>
|
||||
<a name="143"><span class="lineNum"> 143 </span><span class="lineCov"> 3 : dynamic _jsToDart(Pointer<JSContext> ctx, Pointer<JSValue> val,</span></a>
|
||||
<a name="144"><span class="lineNum"> 144 </span> : {Map<int, dynamic>? cache}) {</a>
|
||||
<a name="145"><span class="lineNum"> 145 </span><span class="lineCov"> 3 : if (cache == null) cache = Map();</span></a>
|
||||
<a name="146"><span class="lineNum"> 146 </span><span class="lineCov"> 6 : final tag = jsValueGetTag(val);</span></a>
|
||||
<a name="147"><span class="lineNum"> 147 </span><span class="lineCov"> 9 : if (jsTagIsFloat64(tag) != 0) {</span></a>
|
||||
<a name="148"><span class="lineNum"> 148 </span><span class="lineCov"> 4 : return jsToFloat64(ctx, val);</span></a>
|
||||
<a name="149"><span class="lineNum"> 149 </span> : }</a>
|
||||
<a name="150"><span class="lineNum"> 150 </span> : switch (tag) {</a>
|
||||
<a name="151"><span class="lineNum"> 151 </span><span class="lineCov"> 3 : case JSTag.BOOL:</span></a>
|
||||
<a name="152"><span class="lineNum"> 152 </span><span class="lineCov"> 6 : return jsToBool(ctx, val) != 0;</span></a>
|
||||
<a name="153"><span class="lineNum"> 153 </span><span class="lineCov"> 3 : case JSTag.INT:</span></a>
|
||||
<a name="154"><span class="lineNum"> 154 </span><span class="lineCov"> 4 : return jsToInt64(ctx, val);</span></a>
|
||||
<a name="155"><span class="lineNum"> 155 </span><span class="lineCov"> 3 : case JSTag.STRING:</span></a>
|
||||
<a name="156"><span class="lineNum"> 156 </span><span class="lineCov"> 3 : return jsToCString(ctx, val);</span></a>
|
||||
<a name="157"><span class="lineNum"> 157 </span><span class="lineCov"> 3 : case JSTag.OBJECT:</span></a>
|
||||
<a name="158"><span class="lineNum"> 158 </span><span class="lineCov"> 6 : final rt = jsGetRuntime(ctx);</span></a>
|
||||
<a name="159"><span class="lineNum"> 159 </span><span class="lineCov"> 9 : final dartObjectClassId = runtimeOpaques[rt]?.dartObjectClassId;</span></a>
|
||||
<a name="160"><span class="lineNum"> 160 </span> : if (dartObjectClassId != null) {</a>
|
||||
<a name="161"><span class="lineNum"> 161 </span><span class="lineCov"> 3 : final dartObject = _DartObject.fromAddress(</span></a>
|
||||
<a name="162"><span class="lineNum"> 162 </span><span class="lineCov"> 6 : rt, jsGetObjectOpaque(val, dartObjectClassId));</span></a>
|
||||
<a name="163"><span class="lineNum"> 163 </span><span class="lineCov"> 3 : if (dartObject != null) return dartObject._obj;</span></a>
|
||||
<a name="164"><span class="lineNum"> 164 </span> : }</a>
|
||||
<a name="165"><span class="lineNum"> 165 </span> : final psize = malloc<IntPtr>();</a>
|
||||
<a name="166"><span class="lineNum"> 166 </span><span class="lineCov"> 6 : final buf = jsGetArrayBuffer(ctx, psize, val);</span></a>
|
||||
<a name="167"><span class="lineNum"> 167 </span><span class="lineCov"> 3 : final size = psize.value;</span></a>
|
||||
<a name="168"><span class="lineNum"> 168 </span><span class="lineCov"> 3 : malloc.free(psize);</span></a>
|
||||
<a name="169"><span class="lineNum"> 169 </span><span class="lineCov"> 6 : if (buf.address != 0) {</span></a>
|
||||
<a name="170"><span class="lineNum"> 170 </span><span class="lineNoCov"> 0 : return Uint8List.fromList(buf.asTypedList(size));</span></a>
|
||||
<a name="171"><span class="lineNum"> 171 </span> : }</a>
|
||||
<a name="172"><span class="lineNum"> 172 </span><span class="lineCov"> 6 : final valptr = jsValueGetPtr(val);</span></a>
|
||||
<a name="173"><span class="lineNum"> 173 </span><span class="lineCov"> 3 : if (cache.containsKey(valptr)) {</span></a>
|
||||
<a name="174"><span class="lineNum"> 174 </span><span class="lineCov"> 2 : return cache[valptr];</span></a>
|
||||
<a name="175"><span class="lineNum"> 175 </span> : }</a>
|
||||
<a name="176"><span class="lineNum"> 176 </span><span class="lineCov"> 9 : if (jsIsFunction(ctx, val) != 0) {</span></a>
|
||||
<a name="177"><span class="lineNum"> 177 </span><span class="lineCov"> 3 : return _JSFunction(ctx, val);</span></a>
|
||||
<a name="178"><span class="lineNum"> 178 </span><span class="lineCov"> 9 : } else if (jsIsError(ctx, val) != 0) {</span></a>
|
||||
<a name="179"><span class="lineNum"> 179 </span><span class="lineCov"> 2 : final err = jsToCString(ctx, val);</span></a>
|
||||
<a name="180"><span class="lineNum"> 180 </span><span class="lineCov"> 2 : final pstack = _jsGetPropertyValue(ctx, val, 'stack');</span></a>
|
||||
<a name="181"><span class="lineNum"> 181 </span> : final stack =</a>
|
||||
<a name="182"><span class="lineNum"> 182 </span><span class="lineCov"> 8 : jsToBool(ctx, pstack) != 0 ? jsToCString(ctx, pstack) : null;</span></a>
|
||||
<a name="183"><span class="lineNum"> 183 </span><span class="lineCov"> 2 : jsFreeValue(ctx, pstack);</span></a>
|
||||
<a name="184"><span class="lineNum"> 184 </span><span class="lineCov"> 2 : return JSError(err, stack);</span></a>
|
||||
<a name="185"><span class="lineNum"> 185 </span><span class="lineCov"> 9 : } else if (jsIsPromise(ctx, val) != 0) {</span></a>
|
||||
<a name="186"><span class="lineNum"> 186 </span><span class="lineCov"> 3 : final jsPromiseThen = _jsGetPropertyValue(ctx, val, 'then');</span></a>
|
||||
<a name="187"><span class="lineNum"> 187 </span> : final _JSFunction promiseThen =</a>
|
||||
<a name="188"><span class="lineNum"> 188 </span><span class="lineCov"> 3 : _jsToDart(ctx, jsPromiseThen, cache: cache);</span></a>
|
||||
<a name="189"><span class="lineNum"> 189 </span><span class="lineCov"> 3 : jsFreeValue(ctx, jsPromiseThen);</span></a>
|
||||
<a name="190"><span class="lineNum"> 190 </span><span class="lineCov"> 3 : final completer = Completer();</span></a>
|
||||
<a name="191"><span class="lineNum"> 191 </span><span class="lineCov"> 8 : completer.future.catchError((e) {});</span></a>
|
||||
<a name="192"><span class="lineNum"> 192 </span><span class="lineCov"> 3 : final jsPromise = _JSObject(ctx, val);</span></a>
|
||||
<a name="193"><span class="lineNum"> 193 </span><span class="lineCov"> 6 : final jsRet = promiseThen._invoke([</span></a>
|
||||
<a name="194"><span class="lineNum"> 194 </span><span class="lineCov"> 3 : (v) {</span></a>
|
||||
<a name="195"><span class="lineNum"> 195 </span><span class="lineCov"> 3 : JSRef.dupRecursive(v);</span></a>
|
||||
<a name="196"><span class="lineNum"> 196 </span><span class="lineCov"> 6 : if (!completer.isCompleted) completer.complete(v);</span></a>
|
||||
<a name="197"><span class="lineNum"> 197 </span> : },</a>
|
||||
<a name="198"><span class="lineNum"> 198 </span><span class="lineCov"> 2 : (e) {</span></a>
|
||||
<a name="199"><span class="lineNum"> 199 </span><span class="lineCov"> 2 : JSRef.dupRecursive(e);</span></a>
|
||||
<a name="200"><span class="lineNum"> 200 </span><span class="lineCov"> 4 : if (!completer.isCompleted) completer.completeError(e);</span></a>
|
||||
<a name="201"><span class="lineNum"> 201 </span> : },</a>
|
||||
<a name="202"><span class="lineNum"> 202 </span> : ], jsPromise);</a>
|
||||
<a name="203"><span class="lineNum"> 203 </span><span class="lineCov"> 3 : jsPromise.free();</span></a>
|
||||
<a name="204"><span class="lineNum"> 204 </span><span class="lineCov"> 3 : promiseThen.free();</span></a>
|
||||
<a name="205"><span class="lineNum"> 205 </span><span class="lineCov"> 9 : final isException = jsIsException(jsRet) != 0;</span></a>
|
||||
<a name="206"><span class="lineNum"> 206 </span><span class="lineCov"> 3 : jsFreeValue(ctx, jsRet);</span></a>
|
||||
<a name="207"><span class="lineNum"> 207 </span><span class="lineNoCov"> 0 : if (isException) throw _parseJSException(ctx);</span></a>
|
||||
<a name="208"><span class="lineNum"> 208 </span><span class="lineCov"> 3 : return completer.future;</span></a>
|
||||
<a name="209"><span class="lineNum"> 209 </span><span class="lineCov"> 6 : } else if (jsIsArray(ctx, val) != 0) {</span></a>
|
||||
<a name="210"><span class="lineNum"> 210 </span><span class="lineCov"> 2 : final jslength = _jsGetPropertyValue(ctx, val, 'length');</span></a>
|
||||
<a name="211"><span class="lineNum"> 211 </span><span class="lineCov"> 4 : final length = jsToInt64(ctx, jslength);</span></a>
|
||||
<a name="212"><span class="lineNum"> 212 </span><span class="lineCov"> 2 : final ret = [];</span></a>
|
||||
<a name="213"><span class="lineNum"> 213 </span><span class="lineCov"> 2 : cache[valptr] = ret;</span></a>
|
||||
<a name="214"><span class="lineNum"> 214 </span><span class="lineCov"> 4 : for (var i = 0; i < length; ++i) {</span></a>
|
||||
<a name="215"><span class="lineNum"> 215 </span><span class="lineCov"> 2 : final jsProp = _jsGetPropertyValue(ctx, val, i);</span></a>
|
||||
<a name="216"><span class="lineNum"> 216 </span><span class="lineCov"> 4 : ret.add(_jsToDart(ctx, jsProp, cache: cache));</span></a>
|
||||
<a name="217"><span class="lineNum"> 217 </span><span class="lineCov"> 2 : jsFreeValue(ctx, jsProp);</span></a>
|
||||
<a name="218"><span class="lineNum"> 218 </span> : }</a>
|
||||
<a name="219"><span class="lineNum"> 219 </span> : return ret;</a>
|
||||
<a name="220"><span class="lineNum"> 220 </span> : } else {</a>
|
||||
<a name="221"><span class="lineNum"> 221 </span> : final ptab = malloc<Pointer<JSPropertyEnum>>();</a>
|
||||
<a name="222"><span class="lineNum"> 222 </span> : final plen = malloc<Uint32>();</a>
|
||||
<a name="223"><span class="lineNum"> 223 </span><span class="lineCov"> 8 : if (jsGetOwnPropertyNames(ctx, ptab, plen, val, -1) != 0) {</span></a>
|
||||
<a name="224"><span class="lineNum"> 224 </span><span class="lineNoCov"> 0 : malloc.free(plen);</span></a>
|
||||
<a name="225"><span class="lineNum"> 225 </span><span class="lineNoCov"> 0 : malloc.free(ptab);</span></a>
|
||||
<a name="226"><span class="lineNum"> 226 </span> : return null;</a>
|
||||
<a name="227"><span class="lineNum"> 227 </span> : }</a>
|
||||
<a name="228"><span class="lineNum"> 228 </span><span class="lineCov"> 2 : final len = plen.value;</span></a>
|
||||
<a name="229"><span class="lineNum"> 229 </span><span class="lineCov"> 2 : malloc.free(plen);</span></a>
|
||||
<a name="230"><span class="lineNum"> 230 </span><span class="lineCov"> 2 : final ret = Map();</span></a>
|
||||
<a name="231"><span class="lineNum"> 231 </span><span class="lineCov"> 2 : cache[valptr] = ret;</span></a>
|
||||
<a name="232"><span class="lineNum"> 232 </span><span class="lineCov"> 4 : for (var i = 0; i < len; ++i) {</span></a>
|
||||
<a name="233"><span class="lineNum"> 233 </span><span class="lineCov"> 6 : final jsAtom = jsPropertyEnumGetAtom(ptab.value, i);</span></a>
|
||||
<a name="234"><span class="lineNum"> 234 </span><span class="lineCov"> 4 : final jsAtomValue = jsAtomToValue(ctx, jsAtom);</span></a>
|
||||
<a name="235"><span class="lineNum"> 235 </span><span class="lineCov"> 4 : final jsProp = jsGetProperty(ctx, val, jsAtom);</span></a>
|
||||
<a name="236"><span class="lineNum"> 236 </span><span class="lineCov"> 4 : ret[_jsToDart(ctx, jsAtomValue, cache: cache)] =</span></a>
|
||||
<a name="237"><span class="lineNum"> 237 </span><span class="lineCov"> 2 : _jsToDart(ctx, jsProp, cache: cache);</span></a>
|
||||
<a name="238"><span class="lineNum"> 238 </span><span class="lineCov"> 2 : jsFreeValue(ctx, jsAtomValue);</span></a>
|
||||
<a name="239"><span class="lineNum"> 239 </span><span class="lineCov"> 2 : jsFreeValue(ctx, jsProp);</span></a>
|
||||
<a name="240"><span class="lineNum"> 240 </span><span class="lineCov"> 4 : jsFreeAtom(ctx, jsAtom);</span></a>
|
||||
<a name="241"><span class="lineNum"> 241 </span> : }</a>
|
||||
<a name="242"><span class="lineNum"> 242 </span><span class="lineCov"> 6 : jsFree(ctx, ptab.value);</span></a>
|
||||
<a name="243"><span class="lineNum"> 243 </span><span class="lineCov"> 2 : malloc.free(ptab);</span></a>
|
||||
<a name="244"><span class="lineNum"> 244 </span> : return ret;</a>
|
||||
<a name="245"><span class="lineNum"> 245 </span> : }</a>
|
||||
<a name="246"><span class="lineNum"> 246 </span> : default:</a>
|
||||
<a name="247"><span class="lineNum"> 247 </span> : }</a>
|
||||
<a name="248"><span class="lineNum"> 248 </span> : return null;</a>
|
||||
<a name="249"><span class="lineNum"> 249 </span> : }</a>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
|
||||
<table width="100%" border=0 cellspacing=0 cellpadding=0>
|
||||
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
|
||||
<tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LCOV version 1.14</a></td></tr>
|
||||
</table>
|
||||
<br>
|
||||
|
||||
</body>
|
||||
</html>
|
BIN
coverage/updown.png
Normal file
BIN
coverage/updown.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 117 B |
@@ -7,27 +7,11 @@ mkdir ./cxx
|
||||
sed 's/\#include \"quickjs\/quickjs.h\"/\#include \"quickjs.h\"/g' ../cxx/ffi.h > ./cxx/ffi.h
|
||||
cp ../cxx/ffi.cpp ./cxx/ffi.cpp
|
||||
|
||||
cp ../cxx/quickjs/*.h ./cxx/
|
||||
cp ../cxx/quickjs/*.c ./cxx/
|
||||
|
||||
quickjs_version=$(cat ../cxx/quickjs/VERSION)
|
||||
|
||||
sed '1i\
|
||||
\#define CONFIG_VERSION \"'$quickjs_version'\"\
|
||||
' ../cxx/quickjs/quickjs.c > ./cxx/quickjs.c
|
||||
|
||||
quickjs_src=(
|
||||
"list.h"
|
||||
"cutils.c"
|
||||
"libregexp.c"
|
||||
"libunicode.c"
|
||||
"cutils.h"
|
||||
"libregexp.h"
|
||||
"libunicode.h"
|
||||
"quickjs.h"
|
||||
"quickjs-atom.h"
|
||||
"quickjs-opcode.h"
|
||||
"libregexp-opcode.h"
|
||||
"libunicode-table.h"
|
||||
)
|
||||
for item in ${quickjs_src[*]}
|
||||
do
|
||||
cp ../cxx/quickjs/$item ./cxx/$item
|
||||
done
|
Submodule cxx/quickjs updated: d5bd943ea9...9ac134fd3f
@@ -5,58 +5,58 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: async
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.5.0"
|
||||
version: "2.8.2"
|
||||
boolean_selector:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: boolean_selector
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.1.0"
|
||||
characters:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: characters
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.1.0"
|
||||
version: "1.2.0"
|
||||
charcode:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: charcode
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.2.0"
|
||||
version: "1.3.1"
|
||||
clock:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: clock
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.1.0"
|
||||
collection:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: collection
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.15.0"
|
||||
fake_async:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: fake_async
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.2.0"
|
||||
ffi:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: ffi
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.0"
|
||||
version: "1.1.2"
|
||||
flutter:
|
||||
dependency: "direct main"
|
||||
description: flutter
|
||||
@@ -66,7 +66,7 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_highlight
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.6.0"
|
||||
flutter_qjs:
|
||||
@@ -85,28 +85,28 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: highlight
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.6.0"
|
||||
matcher:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: matcher
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.12.10"
|
||||
version: "0.12.11"
|
||||
meta:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: meta
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.3.0"
|
||||
version: "1.7.0"
|
||||
path:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.8.0"
|
||||
sky_engine:
|
||||
@@ -118,58 +118,58 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: source_span
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.8.1"
|
||||
stack_trace:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stack_trace
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.10.0"
|
||||
stream_channel:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stream_channel
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.1.0"
|
||||
string_scanner:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: string_scanner
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.1.0"
|
||||
term_glyph:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: term_glyph
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.2.0"
|
||||
test_api:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: test_api
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.2.19"
|
||||
version: "0.4.3"
|
||||
typed_data:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: typed_data
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.3.0"
|
||||
vector_math:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vector_math
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.1.0"
|
||||
version: "2.1.1"
|
||||
sdks:
|
||||
dart: ">=2.12.0-259.9.beta <3.0.0"
|
||||
dart: ">=2.14.0 <3.0.0"
|
||||
flutter: ">=1.20.0"
|
||||
|
@@ -2,6 +2,8 @@
|
||||
// Generated file. Do not edit.
|
||||
//
|
||||
|
||||
// clang-format off
|
||||
|
||||
#include "generated_plugin_registrant.h"
|
||||
|
||||
#include <flutter_qjs/flutter_qjs_plugin.h>
|
||||
|
@@ -2,6 +2,8 @@
|
||||
// Generated file. Do not edit.
|
||||
//
|
||||
|
||||
// clang-format off
|
||||
|
||||
#ifndef GENERATED_PLUGIN_REGISTRANT_
|
||||
#define GENERATED_PLUGIN_REGISTRANT_
|
||||
|
||||
|
54
pubspec.lock
54
pubspec.lock
@@ -5,58 +5,58 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: async
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.5.0"
|
||||
version: "2.8.2"
|
||||
boolean_selector:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: boolean_selector
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.1.0"
|
||||
characters:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: characters
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.1.0"
|
||||
version: "1.2.0"
|
||||
charcode:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: charcode
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.2.0"
|
||||
version: "1.3.1"
|
||||
clock:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: clock
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.1.0"
|
||||
collection:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: collection
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.15.0"
|
||||
fake_async:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: fake_async
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.2.0"
|
||||
ffi:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: ffi
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.0"
|
||||
version: "1.1.2"
|
||||
flutter:
|
||||
dependency: "direct main"
|
||||
description: flutter
|
||||
@@ -71,21 +71,21 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: matcher
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.12.10"
|
||||
version: "0.12.11"
|
||||
meta:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: meta
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.3.0"
|
||||
version: "1.7.0"
|
||||
path:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.8.0"
|
||||
sky_engine:
|
||||
@@ -97,58 +97,58 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: source_span
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.8.1"
|
||||
stack_trace:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stack_trace
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.10.0"
|
||||
stream_channel:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stream_channel
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.1.0"
|
||||
string_scanner:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: string_scanner
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.1.0"
|
||||
term_glyph:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: term_glyph
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.2.0"
|
||||
test_api:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: test_api
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.2.19"
|
||||
version: "0.4.3"
|
||||
typed_data:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: typed_data
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.3.0"
|
||||
vector_math:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vector_math
|
||||
url: "https://pub.flutter-io.cn"
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.1.0"
|
||||
sdks:
|
||||
dart: ">=2.12.0-259.9.beta <3.0.0"
|
||||
dart: ">=2.12.0 <3.0.0"
|
||||
flutter: ">=1.20.0"
|
||||
|
Reference in New Issue
Block a user