Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
yma16
yma16_miniprogram
提交
2cff6620
Y
yma16_miniprogram
项目概览
yma16
/
yma16_miniprogram
通知
11
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Y
yma16_miniprogram
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
2cff6620
编写于
5月 14, 2023
作者:
yma16
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update
上级
d9f8feae
变更
20
展开全部
隐藏空白更改
内联
并排
Showing
20 changed file
with
2555 addition
and
30 deletion
+2555
-30
miniprogram/app.js
miniprogram/app.js
+2
-0
miniprogram/eval-pack/define-function/LICENSE
miniprogram/eval-pack/define-function/LICENSE
+21
-0
miniprogram/eval-pack/define-function/README.md
miniprogram/eval-pack/define-function/README.md
+156
-0
miniprogram/eval-pack/define-function/__s__.d.ts
miniprogram/eval-pack/define-function/__s__.d.ts
+9
-0
miniprogram/eval-pack/define-function/define-function.js
miniprogram/eval-pack/define-function/define-function.js
+617
-0
miniprogram/eval-pack/define-function/eval.wasm
miniprogram/eval-pack/define-function/eval.wasm
+0
-0
miniprogram/eval-pack/define-function/index.browser.js
miniprogram/eval-pack/define-function/index.browser.js
+15
-0
miniprogram/eval-pack/define-function/index.d.ts
miniprogram/eval-pack/define-function/index.d.ts
+23
-0
miniprogram/eval-pack/define-function/index.node.js
miniprogram/eval-pack/define-function/index.node.js
+11
-0
miniprogram/eval-pack/define-function/load-eval-wasm.js
miniprogram/eval-pack/define-function/load-eval-wasm.js
+487
-0
miniprogram/eval-pack/define-function/package.json
miniprogram/eval-pack/define-function/package.json
+32
-0
miniprogram/eval-pack/define-function/wechat/define-function.js
...ogram/eval-pack/define-function/wechat/define-function.js
+617
-0
miniprogram/eval-pack/define-function/wechat/eval.wasm.br
miniprogram/eval-pack/define-function/wechat/eval.wasm.br
+0
-0
miniprogram/eval-pack/define-function/wechat/index.js
miniprogram/eval-pack/define-function/wechat/index.js
+11
-0
miniprogram/eval-pack/define-function/wechat/load-eval-wasm.js
...rogram/eval-pack/define-function/wechat/load-eval-wasm.js
+487
-0
miniprogram/pages/codeOnline/codeOnline.js
miniprogram/pages/codeOnline/codeOnline.js
+38
-9
miniprogram/pages/codeOnline/codeOnline.wxml
miniprogram/pages/codeOnline/codeOnline.wxml
+21
-19
miniprogram/pages/codeOnline/codeOnline.wxss
miniprogram/pages/codeOnline/codeOnline.wxss
+3
-2
miniprogram/pages/home/home.wxss
miniprogram/pages/home/home.wxss
+3
-0
miniprogram/pages/index/index.wxml
miniprogram/pages/index/index.wxml
+2
-0
未找到文件。
miniprogram/app.js
浏览文件 @
2cff6620
...
@@ -81,6 +81,8 @@ App({
...
@@ -81,6 +81,8 @@ App({
},
},
// 引入`towxml3.0`解析方法
// 引入`towxml3.0`解析方法
towxml
:
require
(
'
/towxml/index
'
),
towxml
:
require
(
'
/towxml/index
'
),
// 引入eval 自定义的eval
eval_des
:
require
(
'
/eval-pack/define-function/define-function
'
),
/**
/**
* 转换text
* 转换text
* @param {string} text
* @param {string} text
...
...
miniprogram/eval-pack/define-function/LICENSE
0 → 100644
浏览文件 @
2cff6620
MIT License
Copyright (c) 2022 Tao Wen
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
miniprogram/eval-pack/define-function/README.md
0 → 100644
浏览文件 @
2cff6620
# About
[
quick.js
](
https://bellard.org/quickjs/
)
based sandbox
```
npm install define-function
```
works in any WebAssembly environment
*
node
*
browser
*
wechat miniprogram
# Usage
define a function dynamically with javascript source code
```
js
const
def
=
require
(
'
define-function
'
)
const
f
=
await
def
(
`
return 'hello';
`
)
f
()
// 'hello'
```
function can have argument
```
js
const
def
=
require
(
'
define-function
'
)
const
f
=
await
def
(
`
const [hello, world] = arguments;
return hello + ' ' + world;
`
)
f
(
'
hello
'
,
'
world
'
)
// 'hello world'
```
argument can be function
```
js
const
def
=
require
(
'
define-function
'
)
const
f
=
await
def
(
`
const [print] = arguments;
print('hello')
`
)
f
((
msg
)
=>
{
console
.
log
(
msg
)
})
// 'hello'
```
argument can be async function
```
js
const
def
=
require
(
'
define-function
'
)
const
f
=
await
def
(
`
const [print, sleep] = arguments;
(async() => {
print('hello')
await sleep(1000);
print('world')
})();
`
)
f
(
msg
=>
console
.
log
(
msg
),
milliseconds
=>
new
Promise
(
resolve
=>
setTimeout
(
resolve
,
milliseconds
))
)
// hello
// world
```
can return promise back to host
```
js
const
def
=
require
(
'
define-function
'
)
const
f
=
await
def
(
`
const [print, sleep] = arguments;
return (async() => {
print('hello')
await sleep(1000);
print('world')
})();
`
)
await
f
(
msg
=>
console
.
log
(
msg
),
milliseconds
=>
new
Promise
(
resolve
=>
setTimeout
(
resolve
,
milliseconds
))
)
console
.
log
(
'
done
'
)
// hello
// world
// done
```
share context between multiple invocations
```
js
const
{
context
}
=
require
(
'
define-function
'
)
const
ctx
=
context
()
const
f
=
await
ctx
.
def
(
`
global.counter = (global.counter || 0)+1;
return counter; // counter can be referenced globally
`
)
f
()
// 1
f
()
// 2
f
()
// 3
ctx
.
dispose
()
```
inject value and callbacks into global
```
js
const
{
context
}
=
require
(
'
define-function
'
)
const
ctx
=
context
({
global
:
{
console
,
anwerOfEverything
()
{
return
42
;
}
}
})
// inject console and anwerOfEverything to global
const
f
=
await
ctx
.
def
(
`
console.log(anwerOfEverything());
`
)
f
()
// 42
ctx
.
dispose
();
```
import and export es module
```
js
const
{
context
}
=
require
(
'
define-function
'
)
const
ctx
=
context
({
loadModuleContent
(
moduleName
)
{
if
(
moduleName
!==
'
xxx
'
)
{
throw
new
Error
(
'
expect xxx
'
);
}
return
`export function sayHello() { return 'hello' }`
}
});
const
{
hello
}
=
await
ctx
.
load
(
`
import { sayHello } from 'xxx';
export const hello = sayHello();
`
)
console
.
log
(
hello
)
// hello
ctx
.
dispose
();
```
# Limit
*
function argument does not support Set/Map/Class or anything that can not survive JSON.parse(JSON.stringify), except the argument is a function
*
function return value does not support Set/Map/Class or anything that can not survive JSON.parse(JSON.stringify), except promise object
*
JSON.stringify and JSON.parse takes time, so the arguments and return value should be as small as possible for best performance
# Similar projects
*
https://github.com/justjake/quickjs-emscripten/
*
https://github.com/maple3142/wasm-jseval
define-function has a simpler API and support async/await
miniprogram/eval-pack/define-function/__s__.d.ts
0 → 100644
浏览文件 @
2cff6620
type
sandboxFunctionToken
=
{
__brand
:
'
sandboxFunctionToken
'
}
declare
const
__s__
:
{
wrapSandboxFunction
(
f
:
Function
,
extra
?:
{
once
?:
boolean
}):
sandboxFunctionToken
;
deleteSandboxFunction
(
token
:
sandboxFunctionToken
);
getProp
(
hostObj
:
any
,
prop
:
string
):
any
;
setProp
(
hostObj
:
any
,
prop
:
string
,
value
:
any
):
void
;
callMethod
(
hostObj
:
any
,
method
:
string
,
...
args
:
any
[]):
any
;
deleteHostObject
(
hostObj
:
any
):
void
;
};
\ No newline at end of file
miniprogram/eval-pack/define-function/define-function.js
0 → 100644
浏览文件 @
2cff6620
此差异已折叠。
点击以展开。
miniprogram/eval-pack/define-function/eval.wasm
0 → 100644
浏览文件 @
2cff6620
文件已添加
miniprogram/eval-pack/define-function/index.browser.js
0 → 100644
浏览文件 @
2cff6620
此差异已折叠。
点击以展开。
miniprogram/eval-pack/define-function/index.d.ts
0 → 100644
浏览文件 @
2cff6620
declare
function
defineFunction
<
T
extends
(...
args
:
any
[])
=>
any
>
(
script
:
string
,
options
?:
{
timeout
?:
number
,
disposeManually
?:
boolean
,
}):
Promise
<
T
>
;
declare
interface
Context
{
def
:
typeof
defineFunction
;
load
(
script
:
string
,
options
?:
{
filename
?:
string
,
meta
?:
Record
<
string
,
any
>
}):
Promise
<
any
>
;
currentStack
:
string
;
wrapHostFunction
(
f
:
Function
,
options
?:
{
returnsHostObject
?:
boolean
;
nowrap
?:
boolean
;
}):
any
;
inject
(
target
:
string
,
obj
:
Record
<
string
,
any
>
):
void
;
dispose
():
void
;
}
declare
namespace
defineFunction
{
var
context
:
(
options
?:
{
wasmFile
?:
string
,
loadModuleContent
?:
(
moduleName
:
string
,
extra
?:
{
basename
:
string
,
filename
:
string
})
=>
Promise
<
string
>
,
global
?:
Record
<
string
,
any
>
})
=>
Context
;
}
export
default
defineFunction
;
\ No newline at end of file
miniprogram/eval-pack/define-function/index.node.js
0 → 100644
浏览文件 @
2cff6620
function
loadWasm
(
options
)
{
return
require
(
'
./load-eval-wasm
'
)({
async
instantiateWasm
(
info
,
receiveInstance
)
{
const
buff
=
require
(
'
fs
'
).
readFileSync
(
options
?.
wasmFile
||
require
(
'
path
'
).
join
(
__dirname
,
'
eval.wasm
'
));
const
{
instance
,
module
}
=
await
WebAssembly
.
instantiate
(
buff
,
info
);
receiveInstance
(
instance
,
module
);
}
});
}
module
.
exports
=
require
(
'
./define-function
'
)(
loadWasm
);
\ No newline at end of file
miniprogram/eval-pack/define-function/load-eval-wasm.js
0 → 100644
浏览文件 @
2cff6620
var
Module
=
(()
=>
{
return
(
function
(
Module
)
{
Module
=
Module
||
{};
var
Module
=
typeof
Module
!=
"
undefined
"
?
Module
:
{};
var
readyPromiseResolve
,
readyPromiseReject
;
Module
[
"
ready
"
]
=
new
Promise
(
function
(
resolve
,
reject
)
{
readyPromiseResolve
=
resolve
;
readyPromiseReject
=
reject
;
});
var
moduleOverrides
=
Object
.
assign
({},
Module
);
var
arguments_
=
[];
Object
.
assign
(
Module
,
moduleOverrides
);
moduleOverrides
=
null
;
var
wasmMemory
;
var
ABORT
=
false
;
var
UTF8Decoder
=
typeof
TextDecoder
!=
"
undefined
"
?
new
TextDecoder
(
"
utf8
"
)
:
undefined
;
function
UTF8ArrayToString
(
heap
,
idx
,
maxBytesToRead
)
{
var
endIdx
=
idx
+
maxBytesToRead
;
var
endPtr
=
idx
;
while
(
heap
[
endPtr
]
&&
!
(
endPtr
>=
endIdx
))
++
endPtr
;
if
(
endPtr
-
idx
>
16
&&
heap
.
subarray
&&
UTF8Decoder
)
{
return
UTF8Decoder
.
decode
(
heap
.
subarray
(
idx
,
endPtr
));
}
else
{
var
str
=
""
;
while
(
idx
<
endPtr
)
{
var
u0
=
heap
[
idx
++
];
if
(
!
(
u0
&
128
))
{
str
+=
String
.
fromCharCode
(
u0
);
continue
;
}
var
u1
=
heap
[
idx
++
]
&
63
;
if
((
u0
&
224
)
==
192
)
{
str
+=
String
.
fromCharCode
((
u0
&
31
)
<<
6
|
u1
);
continue
;
}
var
u2
=
heap
[
idx
++
]
&
63
;
if
((
u0
&
240
)
==
224
)
{
u0
=
(
u0
&
15
)
<<
12
|
u1
<<
6
|
u2
;
}
else
{
u0
=
(
u0
&
7
)
<<
18
|
u1
<<
12
|
u2
<<
6
|
heap
[
idx
++
]
&
63
;
}
if
(
u0
<
65536
)
{
str
+=
String
.
fromCharCode
(
u0
);
}
else
{
var
ch
=
u0
-
65536
;
str
+=
String
.
fromCharCode
(
55296
|
ch
>>
10
,
56320
|
ch
&
1023
);
}
}
}
return
str
;
}
function
UTF8ToString
(
ptr
,
maxBytesToRead
)
{
return
ptr
?
UTF8ArrayToString
(
HEAPU8
,
ptr
,
maxBytesToRead
)
:
""
;
}
function
stringToUTF8Array
(
str
,
heap
,
outIdx
,
maxBytesToWrite
)
{
if
(
!
(
maxBytesToWrite
>
0
))
return
0
;
var
startIdx
=
outIdx
;
var
endIdx
=
outIdx
+
maxBytesToWrite
-
1
;
for
(
var
i
=
0
;
i
<
str
.
length
;
++
i
)
{
var
u
=
str
.
charCodeAt
(
i
);
if
(
u
>=
55296
&&
u
<=
57343
)
{
var
u1
=
str
.
charCodeAt
(
++
i
);
u
=
65536
+
((
u
&
1023
)
<<
10
)
|
u1
&
1023
;
}
if
(
u
<=
127
)
{
if
(
outIdx
>=
endIdx
)
break
;
heap
[
outIdx
++
]
=
u
;
}
else
if
(
u
<=
2047
)
{
if
(
outIdx
+
1
>=
endIdx
)
break
;
heap
[
outIdx
++
]
=
192
|
u
>>
6
;
heap
[
outIdx
++
]
=
128
|
u
&
63
;
}
else
if
(
u
<=
65535
)
{
if
(
outIdx
+
2
>=
endIdx
)
break
;
heap
[
outIdx
++
]
=
224
|
u
>>
12
;
heap
[
outIdx
++
]
=
128
|
u
>>
6
&
63
;
heap
[
outIdx
++
]
=
128
|
u
&
63
;
}
else
{
if
(
outIdx
+
3
>=
endIdx
)
break
;
heap
[
outIdx
++
]
=
240
|
u
>>
18
;
heap
[
outIdx
++
]
=
128
|
u
>>
12
&
63
;
heap
[
outIdx
++
]
=
128
|
u
>>
6
&
63
;
heap
[
outIdx
++
]
=
128
|
u
&
63
;
}
}
heap
[
outIdx
]
=
0
;
return
outIdx
-
startIdx
;
}
function
lengthBytesUTF8
(
str
)
{
var
len
=
0
;
for
(
var
i
=
0
;
i
<
str
.
length
;
++
i
)
{
var
u
=
str
.
charCodeAt
(
i
);
if
(
u
>=
55296
&&
u
<=
57343
)
u
=
65536
+
((
u
&
1023
)
<<
10
)
|
str
.
charCodeAt
(
++
i
)
&
1023
;
if
(
u
<=
127
)
++
len
;
else
if
(
u
<=
2047
)
len
+=
2
;
else
if
(
u
<=
65535
)
len
+=
3
;
else
len
+=
4
;
}
return
len
;
}
function
allocateUTF8
(
str
)
{
var
size
=
lengthBytesUTF8
(
str
)
+
1
;
var
ret
=
_malloc
(
size
);
if
(
ret
)
stringToUTF8Array
(
str
,
HEAP8
,
ret
,
size
);
return
ret
;
}
var
buffer
,
HEAP8
,
HEAPU8
,
HEAP16
,
HEAPU16
,
HEAP32
,
HEAPU32
,
HEAPF32
,
HEAPF64
;
function
updateGlobalBufferAndViews
(
buf
)
{
buffer
=
buf
;
Module
[
"
HEAP8
"
]
=
HEAP8
=
new
Int8Array
(
buf
);
Module
[
"
HEAP16
"
]
=
HEAP16
=
new
Int16Array
(
buf
);
Module
[
"
HEAP32
"
]
=
HEAP32
=
new
Int32Array
(
buf
);
Module
[
"
HEAPU8
"
]
=
HEAPU8
=
new
Uint8Array
(
buf
);
Module
[
"
HEAPU16
"
]
=
HEAPU16
=
new
Uint16Array
(
buf
);
Module
[
"
HEAPU32
"
]
=
HEAPU32
=
new
Uint32Array
(
buf
);
Module
[
"
HEAPF32
"
]
=
HEAPF32
=
new
Float32Array
(
buf
);
Module
[
"
HEAPF64
"
]
=
HEAPF64
=
new
Float64Array
(
buf
);
}
var
wasmTable
;
var
__ATPRERUN__
=
[];
var
__ATINIT__
=
[];
var
__ATPOSTRUN__
=
[];
function
preRun
()
{
callRuntimeCallbacks
(
__ATPRERUN__
);
}
function
initRuntime
()
{
callRuntimeCallbacks
(
__ATINIT__
);
}
function
postRun
()
{
callRuntimeCallbacks
(
__ATPOSTRUN__
);
}
function
addOnInit
(
cb
)
{
__ATINIT__
.
unshift
(
cb
);
}
var
runDependencies
=
0
;
var
runDependencyWatcher
=
null
;
var
dependenciesFulfilled
=
null
;
function
addRunDependency
(
id
)
{
runDependencies
++
;
}
function
removeRunDependency
(
id
)
{
runDependencies
--
;
if
(
runDependencies
==
0
)
{
if
(
runDependencyWatcher
!==
null
)
{
clearInterval
(
runDependencyWatcher
);
runDependencyWatcher
=
null
;
}
if
(
dependenciesFulfilled
)
{
var
callback
=
dependenciesFulfilled
;
dependenciesFulfilled
=
null
;
callback
();
}
}
}
Module
[
"
preloadedImages
"
]
=
{};
Module
[
"
preloadedAudios
"
]
=
{};
function
abort
(
what
)
{
what
=
"
Aborted(
"
+
what
+
"
)
"
;
ABORT
=
true
;
EXITSTATUS
=
1
;
what
+=
"
. Build with -s ASSERTIONS=1 for more info.
"
;
var
e
=
new
Error
(
what
);
readyPromiseReject
(
e
);
throw
e
;
}
function
createWasm
()
{
var
info
=
{
"
a
"
:
asmLibraryArg
};
function
receiveInstance
(
instance
,
module
)
{
var
exports
=
instance
.
exports
;
Module
[
"
asm
"
]
=
exports
;
wasmMemory
=
Module
[
"
asm
"
][
"
l
"
];
updateGlobalBufferAndViews
(
wasmMemory
.
buffer
);
wasmTable
=
Module
[
"
asm
"
][
"
p
"
];
addOnInit
(
Module
[
"
asm
"
][
"
m
"
]);
removeRunDependency
(
"
wasm-instantiate
"
);
}
addRunDependency
(
"
wasm-instantiate
"
);
if
(
Module
[
"
instantiateWasm
"
])
{
try
{
var
exports
=
Module
[
"
instantiateWasm
"
](
info
,
receiveInstance
);
return
exports
;
}
catch
(
e
)
{
err
(
"
Module.instantiateWasm callback failed with error:
"
+
e
);
return
false
;
}
}
throw
new
Error
(
'
missing instantiateWasm
'
);
}
function
_dynamicImport
(
ctx
,
argc
,
argv
,
resolveFunc
,
rejectFunc
,
basename
,
filename
)
{
return
Module
.
dynamicImport
(
ctx
,
argc
,
argv
,
resolveFunc
,
rejectFunc
,
basename
,
filename
);
}
function
_getModuleContent
(
ctx
,
module_name
)
{
return
Module
.
getModuleContent
(
ctx
,
module_name
);
}
function
_invokeHostFunction
(
ctx
,
token
,
args
)
{
return
Module
.
invokeHostFunction
(
ctx
,
token
,
args
);
}
function
callRuntimeCallbacks
(
callbacks
)
{
while
(
callbacks
.
length
>
0
)
{
var
callback
=
callbacks
.
shift
();
if
(
typeof
callback
==
"
function
"
)
{
callback
(
Module
);
continue
;
}
var
func
=
callback
.
func
;
if
(
typeof
func
==
"
number
"
)
{
if
(
callback
.
arg
===
undefined
)
{
getWasmTableEntry
(
func
)();
}
else
{
getWasmTableEntry
(
func
)(
callback
.
arg
);
}
}
else
{
func
(
callback
.
arg
===
undefined
?
null
:
callback
.
arg
);
}
}
}
var
wasmTableMirror
=
[];
function
getWasmTableEntry
(
funcPtr
)
{
var
func
=
wasmTableMirror
[
funcPtr
];
if
(
!
func
)
{
if
(
funcPtr
>=
wasmTableMirror
.
length
)
wasmTableMirror
.
length
=
funcPtr
+
1
;
wasmTableMirror
[
funcPtr
]
=
func
=
wasmTable
.
get
(
funcPtr
);
}
return
func
;
}
function
___assert_fail
(
condition
,
filename
,
line
,
func
)
{
abort
(
"
Assertion failed:
"
+
UTF8ToString
(
condition
)
+
"
, at:
"
+
[
filename
?
UTF8ToString
(
filename
)
:
"
unknown filename
"
,
line
,
func
?
UTF8ToString
(
func
)
:
"
unknown function
"
]);
}
function
__localtime_js
(
time
,
tmPtr
)
{
var
date
=
new
Date
(
HEAP32
[
time
>>
2
]
*
1
e3
);
HEAP32
[
tmPtr
>>
2
]
=
date
.
getSeconds
();
HEAP32
[
tmPtr
+
4
>>
2
]
=
date
.
getMinutes
();
HEAP32
[
tmPtr
+
8
>>
2
]
=
date
.
getHours
();
HEAP32
[
tmPtr
+
12
>>
2
]
=
date
.
getDate
();
HEAP32
[
tmPtr
+
16
>>
2
]
=
date
.
getMonth
();
HEAP32
[
tmPtr
+
20
>>
2
]
=
date
.
getFullYear
()
-
1900
;
HEAP32
[
tmPtr
+
24
>>
2
]
=
date
.
getDay
();
var
start
=
new
Date
(
date
.
getFullYear
(),
0
,
1
);
var
yday
=
(
date
.
getTime
()
-
start
.
getTime
())
/
(
1
e3
*
60
*
60
*
24
)
|
0
;
HEAP32
[
tmPtr
+
28
>>
2
]
=
yday
;
HEAP32
[
tmPtr
+
36
>>
2
]
=
-
(
date
.
getTimezoneOffset
()
*
60
);
var
summerOffset
=
new
Date
(
date
.
getFullYear
(),
6
,
1
).
getTimezoneOffset
();
var
winterOffset
=
start
.
getTimezoneOffset
();
var
dst
=
(
summerOffset
!=
winterOffset
&&
date
.
getTimezoneOffset
()
==
Math
.
min
(
winterOffset
,
summerOffset
))
|
0
;
HEAP32
[
tmPtr
+
32
>>
2
]
=
dst
;
}
function
_tzset_impl
(
timezone
,
daylight
,
tzname
)
{
var
currentYear
=
new
Date
().
getFullYear
();
var
winter
=
new
Date
(
currentYear
,
0
,
1
);
var
summer
=
new
Date
(
currentYear
,
6
,
1
);
var
winterOffset
=
winter
.
getTimezoneOffset
();
var
summerOffset
=
summer
.
getTimezoneOffset
();
var
stdTimezoneOffset
=
Math
.
max
(
winterOffset
,
summerOffset
);
HEAP32
[
timezone
>>
2
]
=
stdTimezoneOffset
*
60
;
HEAP32
[
daylight
>>
2
]
=
Number
(
winterOffset
!=
summerOffset
);
function
extractZone
(
date
)
{
var
match
=
date
.
toTimeString
().
match
(
/
\(([
A-Za-z
]
+
)\)
$/
);
return
match
?
match
[
1
]
:
"
GMT
"
;
}
var
winterName
=
extractZone
(
winter
);
var
summerName
=
extractZone
(
summer
);
var
winterNamePtr
=
allocateUTF8
(
winterName
);
var
summerNamePtr
=
allocateUTF8
(
summerName
);
if
(
summerOffset
<
winterOffset
)
{
HEAP32
[
tzname
>>
2
]
=
winterNamePtr
;
HEAP32
[
tzname
+
4
>>
2
]
=
summerNamePtr
;
}
else
{
HEAP32
[
tzname
>>
2
]
=
summerNamePtr
;
HEAP32
[
tzname
+
4
>>
2
]
=
winterNamePtr
;
}
}
function
__tzset_js
(
timezone
,
daylight
,
tzname
)
{
if
(
__tzset_js
.
called
)
return
;
__tzset_js
.
called
=
true
;
_tzset_impl
(
timezone
,
daylight
,
tzname
);
}
function
_abort
()
{
abort
(
""
);
}
function
_emscripten_memcpy_big
(
dest
,
src
,
num
)
{
HEAPU8
.
copyWithin
(
dest
,
src
,
src
+
num
);
}
function
_emscripten_get_heap_max
()
{
return
2147483648
;
}
function
emscripten_realloc_buffer
(
size
)
{
try
{
wasmMemory
.
grow
(
size
-
buffer
.
byteLength
+
65535
>>>
16
);
updateGlobalBufferAndViews
(
wasmMemory
.
buffer
);
return
1
;
}
catch
(
e
)
{}
}
function
_emscripten_resize_heap
(
requestedSize
)
{
var
oldSize
=
HEAPU8
.
length
;
requestedSize
=
requestedSize
>>>
0
;
var
maxHeapSize
=
_emscripten_get_heap_max
();
if
(
requestedSize
>
maxHeapSize
)
{
return
false
;
}
let
alignUp
=
(
x
,
multiple
)
=>
x
+
(
multiple
-
x
%
multiple
)
%
multiple
;
for
(
var
cutDown
=
1
;
cutDown
<=
4
;
cutDown
*=
2
)
{
var
overGrownHeapSize
=
oldSize
*
(
1
+
.
2
/
cutDown
);
overGrownHeapSize
=
Math
.
min
(
overGrownHeapSize
,
requestedSize
+
100663296
);
var
newSize
=
Math
.
min
(
maxHeapSize
,
alignUp
(
Math
.
max
(
requestedSize
,
overGrownHeapSize
),
65536
));
var
replacement
=
emscripten_realloc_buffer
(
newSize
);
if
(
replacement
)
{
return
true
;
}
}
return
false
;
}
function
_fd_write
(
fd
,
iov
,
iovcnt
,
pnum
)
{
var
num
=
0
;
for
(
var
i
=
0
;
i
<
iovcnt
;
i
++
)
{
var
ptr
=
HEAP32
[
iov
>>
2
];
var
len
=
HEAP32
[
iov
+
4
>>
2
];
iov
+=
8
;
if
(
typeof
process
!==
'
undefined
'
)
{
process
.
stdout
.
write
(
UTF8ToString
(
ptr
,
len
))
}
num
+=
len
;
}
HEAP32
[
pnum
>>
2
]
=
num
;
}
function
_gettimeofday
(
ptr
)
{
var
now
=
Date
.
now
();
HEAP32
[
ptr
>>
2
]
=
now
/
1
e3
|
0
;
HEAP32
[
ptr
+
4
>>
2
]
=
now
%
1
e3
*
1
e3
|
0
;
return
0
;
}
var
asmLibraryArg
=
{
"
a
"
:
___assert_fail
,
"
h
"
:
_dynamicImport
,
"
i
"
:
_getModuleContent
,
"
j
"
:
_invokeHostFunction
,
"
e
"
:
__localtime_js
,
"
f
"
:
__tzset_js
,
"
b
"
:
_abort
,
"
g
"
:
_emscripten_memcpy_big
,
"
k
"
:
_emscripten_resize_heap
,
"
d
"
:
_fd_write
,
"
c
"
:
_gettimeofday
};
var
asm
=
createWasm
();
var
___wasm_call_ctors
=
Module
[
"
___wasm_call_ctors
"
]
=
function
()
{
return
(
___wasm_call_ctors
=
Module
[
"
___wasm_call_ctors
"
]
=
Module
[
"
asm
"
][
"
m
"
]).
apply
(
null
,
arguments
);
};
var
_malloc
=
Module
[
"
_malloc
"
]
=
function
()
{
return
(
_malloc
=
Module
[
"
_malloc
"
]
=
Module
[
"
asm
"
][
"
n
"
]).
apply
(
null
,
arguments
);
};
var
_free
=
Module
[
"
_free
"
]
=
function
()
{
return
(
_free
=
Module
[
"
_free
"
]
=
Module
[
"
asm
"
][
"
o
"
]).
apply
(
null
,
arguments
);
};
var
_newContext
=
Module
[
"
_newContext
"
]
=
function
()
{
return
(
_newContext
=
Module
[
"
_newContext
"
]
=
Module
[
"
asm
"
][
"
q
"
]).
apply
(
null
,
arguments
);
};
var
_freeContext
=
Module
[
"
_freeContext
"
]
=
function
()
{
return
(
_freeContext
=
Module
[
"
_freeContext
"
]
=
Module
[
"
asm
"
][
"
r
"
]).
apply
(
null
,
arguments
);
};
var
_doDynamicImport
=
Module
[
"
_doDynamicImport
"
]
=
function
()
{
return
(
_doDynamicImport
=
Module
[
"
_doDynamicImport
"
]
=
Module
[
"
asm
"
][
"
s
"
]).
apply
(
null
,
arguments
);
};
var
_pathJoin
=
Module
[
"
_pathJoin
"
]
=
function
()
{
return
(
_pathJoin
=
Module
[
"
_pathJoin
"
]
=
Module
[
"
asm
"
][
"
t
"
]).
apply
(
null
,
arguments
);
};
var
_load
=
Module
[
"
_load
"
]
=
function
()
{
return
(
_load
=
Module
[
"
_load
"
]
=
Module
[
"
asm
"
][
"
u
"
]).
apply
(
null
,
arguments
);
};
var
_call
=
Module
[
"
_call
"
]
=
function
()
{
return
(
_call
=
Module
[
"
_call
"
]
=
Module
[
"
asm
"
][
"
v
"
]).
apply
(
null
,
arguments
);
};
var
_freeJsValue
=
Module
[
"
_freeJsValue
"
]
=
function
()
{
return
(
_freeJsValue
=
Module
[
"
_freeJsValue
"
]
=
Module
[
"
asm
"
][
"
w
"
]).
apply
(
null
,
arguments
);
};
Module
[
"
UTF8ToString
"
]
=
UTF8ToString
;
Module
[
"
allocateUTF8
"
]
=
allocateUTF8
;
var
calledRun
;
dependenciesFulfilled
=
function
runCaller
()
{
if
(
!
calledRun
)
run
();
if
(
!
calledRun
)
dependenciesFulfilled
=
runCaller
;
};
function
run
(
args
)
{
args
=
args
||
arguments_
;
if
(
runDependencies
>
0
)
{
return
;
}
preRun
();
if
(
runDependencies
>
0
)
{
return
;
}
function
doRun
()
{
if
(
calledRun
)
return
;
calledRun
=
true
;
Module
[
"
calledRun
"
]
=
true
;
if
(
ABORT
)
return
;
initRuntime
();
readyPromiseResolve
(
Module
);
postRun
();
}
{
doRun
();
}
}
Module
[
"
run
"
]
=
run
;
run
();
return
Module
.
ready
}
);
})();
if
(
typeof
exports
===
'
object
'
&&
typeof
module
===
'
object
'
)
module
.
exports
=
Module
;
else
if
(
typeof
define
===
'
function
'
&&
define
[
'
amd
'
])
define
([],
function
()
{
return
Module
;
});
else
if
(
typeof
exports
===
'
object
'
)
exports
[
"
Module
"
]
=
Module
;
\ No newline at end of file
miniprogram/eval-pack/define-function/package.json
0 → 100644
浏览文件 @
2cff6620
{
"name"
:
"define-function"
,
"version"
:
"2.0.0"
,
"repository"
:
"https://github.com/taowen/define-function"
,
"license"
:
"MIT"
,
"miniprogram"
:
"wechat"
,
"main"
:
"index.node.js"
,
"browser"
:
"index.browser.js"
,
"types"
:
"index.d.ts"
,
"devDependencies"
:
{
"webpack"
:
"^5.69.1"
,
"webpack-dev-server"
:
"^4.7.4"
,
"webpack-cli"
:
"^4.9.2"
,
"html-webpack-plugin"
:
"^5.5.0"
,
"typescript"
:
"^4.6.2"
},
"scripts"
:
{
"test:browser"
:
"webpack serve"
,
"test:node"
:
"node test.node.js"
,
"test:ts"
:
"cd test-ts && tsc"
},
"files"
:
[
"index.node.js"
,
"index.browser.js"
,
"index.d.ts"
,
"__s__.d.ts"
,
"define-function.js"
,
"load-eval-wasm.js"
,
"eval.wasm"
,
"wechat/*"
]
}
miniprogram/eval-pack/define-function/wechat/define-function.js
0 → 100644
浏览文件 @
2cff6620
此差异已折叠。
点击以展开。
miniprogram/eval-pack/define-function/wechat/eval.wasm.br
0 → 100644
浏览文件 @
2cff6620
文件已添加
miniprogram/eval-pack/define-function/wechat/index.js
0 → 100644
浏览文件 @
2cff6620
function
loadWasm
(
options
)
{
return
require
(
'
./load-eval-wasm
'
)({
async
instantiateWasm
(
info
,
receiveInstance
)
{
const
{
instance
,
module
}
=
await
WXWebAssembly
.
instantiate
(
options
?.
wasmFile
||
'
/miniprogram_npm/define-function/eval.wasm.br
'
,
info
);
receiveInstance
(
instance
,
module
);
}
});
}
module
.
exports
=
require
(
'
./define-function
'
)(
loadWasm
);
\ No newline at end of file
miniprogram/eval-pack/define-function/wechat/load-eval-wasm.js
0 → 100644
浏览文件 @
2cff6620
var
Module
=
(()
=>
{
return
(
function
(
Module
)
{
Module
=
Module
||
{};
var
Module
=
typeof
Module
!=
"
undefined
"
?
Module
:
{};
var
readyPromiseResolve
,
readyPromiseReject
;
Module
[
"
ready
"
]
=
new
Promise
(
function
(
resolve
,
reject
)
{
readyPromiseResolve
=
resolve
;
readyPromiseReject
=
reject
;
});
var
moduleOverrides
=
Object
.
assign
({},
Module
);
var
arguments_
=
[];
Object
.
assign
(
Module
,
moduleOverrides
);
moduleOverrides
=
null
;
var
wasmMemory
;
var
ABORT
=
false
;
var
UTF8Decoder
=
typeof
TextDecoder
!=
"
undefined
"
?
new
TextDecoder
(
"
utf8
"
)
:
undefined
;
function
UTF8ArrayToString
(
heap
,
idx
,
maxBytesToRead
)
{
var
endIdx
=
idx
+
maxBytesToRead
;
var
endPtr
=
idx
;
while
(
heap
[
endPtr
]
&&
!
(
endPtr
>=
endIdx
))
++
endPtr
;
if
(
endPtr
-
idx
>
16
&&
heap
.
subarray
&&
UTF8Decoder
)
{
return
UTF8Decoder
.
decode
(
heap
.
subarray
(
idx
,
endPtr
));
}
else
{
var
str
=
""
;
while
(
idx
<
endPtr
)
{
var
u0
=
heap
[
idx
++
];
if
(
!
(
u0
&
128
))
{
str
+=
String
.
fromCharCode
(
u0
);
continue
;
}
var
u1
=
heap
[
idx
++
]
&
63
;
if
((
u0
&
224
)
==
192
)
{
str
+=
String
.
fromCharCode
((
u0
&
31
)
<<
6
|
u1
);
continue
;
}
var
u2
=
heap
[
idx
++
]
&
63
;
if
((
u0
&
240
)
==
224
)
{
u0
=
(
u0
&
15
)
<<
12
|
u1
<<
6
|
u2
;
}
else
{
u0
=
(
u0
&
7
)
<<
18
|
u1
<<
12
|
u2
<<
6
|
heap
[
idx
++
]
&
63
;
}
if
(
u0
<
65536
)
{
str
+=
String
.
fromCharCode
(
u0
);
}
else
{
var
ch
=
u0
-
65536
;
str
+=
String
.
fromCharCode
(
55296
|
ch
>>
10
,
56320
|
ch
&
1023
);
}
}
}
return
str
;
}
function
UTF8ToString
(
ptr
,
maxBytesToRead
)
{
return
ptr
?
UTF8ArrayToString
(
HEAPU8
,
ptr
,
maxBytesToRead
)
:
""
;
}
function
stringToUTF8Array
(
str
,
heap
,
outIdx
,
maxBytesToWrite
)
{
if
(
!
(
maxBytesToWrite
>
0
))
return
0
;
var
startIdx
=
outIdx
;
var
endIdx
=
outIdx
+
maxBytesToWrite
-
1
;
for
(
var
i
=
0
;
i
<
str
.
length
;
++
i
)
{
var
u
=
str
.
charCodeAt
(
i
);
if
(
u
>=
55296
&&
u
<=
57343
)
{
var
u1
=
str
.
charCodeAt
(
++
i
);
u
=
65536
+
((
u
&
1023
)
<<
10
)
|
u1
&
1023
;
}
if
(
u
<=
127
)
{
if
(
outIdx
>=
endIdx
)
break
;
heap
[
outIdx
++
]
=
u
;
}
else
if
(
u
<=
2047
)
{
if
(
outIdx
+
1
>=
endIdx
)
break
;
heap
[
outIdx
++
]
=
192
|
u
>>
6
;
heap
[
outIdx
++
]
=
128
|
u
&
63
;
}
else
if
(
u
<=
65535
)
{
if
(
outIdx
+
2
>=
endIdx
)
break
;
heap
[
outIdx
++
]
=
224
|
u
>>
12
;
heap
[
outIdx
++
]
=
128
|
u
>>
6
&
63
;
heap
[
outIdx
++
]
=
128
|
u
&
63
;
}
else
{
if
(
outIdx
+
3
>=
endIdx
)
break
;
heap
[
outIdx
++
]
=
240
|
u
>>
18
;
heap
[
outIdx
++
]
=
128
|
u
>>
12
&
63
;
heap
[
outIdx
++
]
=
128
|
u
>>
6
&
63
;
heap
[
outIdx
++
]
=
128
|
u
&
63
;
}
}
heap
[
outIdx
]
=
0
;
return
outIdx
-
startIdx
;
}
function
lengthBytesUTF8
(
str
)
{
var
len
=
0
;
for
(
var
i
=
0
;
i
<
str
.
length
;
++
i
)
{
var
u
=
str
.
charCodeAt
(
i
);
if
(
u
>=
55296
&&
u
<=
57343
)
u
=
65536
+
((
u
&
1023
)
<<
10
)
|
str
.
charCodeAt
(
++
i
)
&
1023
;
if
(
u
<=
127
)
++
len
;
else
if
(
u
<=
2047
)
len
+=
2
;
else
if
(
u
<=
65535
)
len
+=
3
;
else
len
+=
4
;
}
return
len
;
}
function
allocateUTF8
(
str
)
{
var
size
=
lengthBytesUTF8
(
str
)
+
1
;
var
ret
=
_malloc
(
size
);
if
(
ret
)
stringToUTF8Array
(
str
,
HEAP8
,
ret
,
size
);
return
ret
;
}
var
buffer
,
HEAP8
,
HEAPU8
,
HEAP16
,
HEAPU16
,
HEAP32
,
HEAPU32
,
HEAPF32
,
HEAPF64
;
function
updateGlobalBufferAndViews
(
buf
)
{
buffer
=
buf
;
Module
[
"
HEAP8
"
]
=
HEAP8
=
new
Int8Array
(
buf
);
Module
[
"
HEAP16
"
]
=
HEAP16
=
new
Int16Array
(
buf
);
Module
[
"
HEAP32
"
]
=
HEAP32
=
new
Int32Array
(
buf
);
Module
[
"
HEAPU8
"
]
=
HEAPU8
=
new
Uint8Array
(
buf
);
Module
[
"
HEAPU16
"
]
=
HEAPU16
=
new
Uint16Array
(
buf
);
Module
[
"
HEAPU32
"
]
=
HEAPU32
=
new
Uint32Array
(
buf
);
Module
[
"
HEAPF32
"
]
=
HEAPF32
=
new
Float32Array
(
buf
);
Module
[
"
HEAPF64
"
]
=
HEAPF64
=
new
Float64Array
(
buf
);
}
var
wasmTable
;
var
__ATPRERUN__
=
[];
var
__ATINIT__
=
[];
var
__ATPOSTRUN__
=
[];
function
preRun
()
{
callRuntimeCallbacks
(
__ATPRERUN__
);
}
function
initRuntime
()
{
callRuntimeCallbacks
(
__ATINIT__
);
}
function
postRun
()
{
callRuntimeCallbacks
(
__ATPOSTRUN__
);
}
function
addOnInit
(
cb
)
{
__ATINIT__
.
unshift
(
cb
);
}
var
runDependencies
=
0
;
var
runDependencyWatcher
=
null
;
var
dependenciesFulfilled
=
null
;
function
addRunDependency
(
id
)
{
runDependencies
++
;
}
function
removeRunDependency
(
id
)
{
runDependencies
--
;
if
(
runDependencies
==
0
)
{
if
(
runDependencyWatcher
!==
null
)
{
clearInterval
(
runDependencyWatcher
);
runDependencyWatcher
=
null
;
}
if
(
dependenciesFulfilled
)
{
var
callback
=
dependenciesFulfilled
;
dependenciesFulfilled
=
null
;
callback
();
}
}
}
Module
[
"
preloadedImages
"
]
=
{};
Module
[
"
preloadedAudios
"
]
=
{};
function
abort
(
what
)
{
what
=
"
Aborted(
"
+
what
+
"
)
"
;
ABORT
=
true
;
EXITSTATUS
=
1
;
what
+=
"
. Build with -s ASSERTIONS=1 for more info.
"
;
var
e
=
new
Error
(
what
);
readyPromiseReject
(
e
);
throw
e
;
}
function
createWasm
()
{
var
info
=
{
"
a
"
:
asmLibraryArg
};
function
receiveInstance
(
instance
,
module
)
{
var
exports
=
instance
.
exports
;
Module
[
"
asm
"
]
=
exports
;
wasmMemory
=
Module
[
"
asm
"
][
"
l
"
];
updateGlobalBufferAndViews
(
wasmMemory
.
buffer
);
wasmTable
=
Module
[
"
asm
"
][
"
p
"
];
addOnInit
(
Module
[
"
asm
"
][
"
m
"
]);
removeRunDependency
(
"
wasm-instantiate
"
);
}
addRunDependency
(
"
wasm-instantiate
"
);
if
(
Module
[
"
instantiateWasm
"
])
{
try
{
var
exports
=
Module
[
"
instantiateWasm
"
](
info
,
receiveInstance
);
return
exports
;
}
catch
(
e
)
{
err
(
"
Module.instantiateWasm callback failed with error:
"
+
e
);
return
false
;
}
}
throw
new
Error
(
'
missing instantiateWasm
'
);
}
function
_dynamicImport
(
ctx
,
argc
,
argv
,
resolveFunc
,
rejectFunc
,
basename
,
filename
)
{
return
Module
.
dynamicImport
(
ctx
,
argc
,
argv
,
resolveFunc
,
rejectFunc
,
basename
,
filename
);
}
function
_getModuleContent
(
ctx
,
module_name
)
{
return
Module
.
getModuleContent
(
ctx
,
module_name
);
}
function
_invokeHostFunction
(
ctx
,
token
,
args
)
{
return
Module
.
invokeHostFunction
(
ctx
,
token
,
args
);
}
function
callRuntimeCallbacks
(
callbacks
)
{
while
(
callbacks
.
length
>
0
)
{
var
callback
=
callbacks
.
shift
();
if
(
typeof
callback
==
"
function
"
)
{
callback
(
Module
);
continue
;
}
var
func
=
callback
.
func
;
if
(
typeof
func
==
"
number
"
)
{
if
(
callback
.
arg
===
undefined
)
{
getWasmTableEntry
(
func
)();
}
else
{
getWasmTableEntry
(
func
)(
callback
.
arg
);
}
}
else
{
func
(
callback
.
arg
===
undefined
?
null
:
callback
.
arg
);
}
}
}
var
wasmTableMirror
=
[];
function
getWasmTableEntry
(
funcPtr
)
{
var
func
=
wasmTableMirror
[
funcPtr
];
if
(
!
func
)
{
if
(
funcPtr
>=
wasmTableMirror
.
length
)
wasmTableMirror
.
length
=
funcPtr
+
1
;
wasmTableMirror
[
funcPtr
]
=
func
=
wasmTable
.
get
(
funcPtr
);
}
return
func
;
}
function
___assert_fail
(
condition
,
filename
,
line
,
func
)
{
abort
(
"
Assertion failed:
"
+
UTF8ToString
(
condition
)
+
"
, at:
"
+
[
filename
?
UTF8ToString
(
filename
)
:
"
unknown filename
"
,
line
,
func
?
UTF8ToString
(
func
)
:
"
unknown function
"
]);
}
function
__localtime_js
(
time
,
tmPtr
)
{
var
date
=
new
Date
(
HEAP32
[
time
>>
2
]
*
1
e3
);
HEAP32
[
tmPtr
>>
2
]
=
date
.
getSeconds
();
HEAP32
[
tmPtr
+
4
>>
2
]
=
date
.
getMinutes
();
HEAP32
[
tmPtr
+
8
>>
2
]
=
date
.
getHours
();
HEAP32
[
tmPtr
+
12
>>
2
]
=
date
.
getDate
();
HEAP32
[
tmPtr
+
16
>>
2
]
=
date
.
getMonth
();
HEAP32
[
tmPtr
+
20
>>
2
]
=
date
.
getFullYear
()
-
1900
;
HEAP32
[
tmPtr
+
24
>>
2
]
=
date
.
getDay
();
var
start
=
new
Date
(
date
.
getFullYear
(),
0
,
1
);
var
yday
=
(
date
.
getTime
()
-
start
.
getTime
())
/
(
1
e3
*
60
*
60
*
24
)
|
0
;
HEAP32
[
tmPtr
+
28
>>
2
]
=
yday
;
HEAP32
[
tmPtr
+
36
>>
2
]
=
-
(
date
.
getTimezoneOffset
()
*
60
);
var
summerOffset
=
new
Date
(
date
.
getFullYear
(),
6
,
1
).
getTimezoneOffset
();
var
winterOffset
=
start
.
getTimezoneOffset
();
var
dst
=
(
summerOffset
!=
winterOffset
&&
date
.
getTimezoneOffset
()
==
Math
.
min
(
winterOffset
,
summerOffset
))
|
0
;
HEAP32
[
tmPtr
+
32
>>
2
]
=
dst
;
}
function
_tzset_impl
(
timezone
,
daylight
,
tzname
)
{
var
currentYear
=
new
Date
().
getFullYear
();
var
winter
=
new
Date
(
currentYear
,
0
,
1
);
var
summer
=
new
Date
(
currentYear
,
6
,
1
);
var
winterOffset
=
winter
.
getTimezoneOffset
();
var
summerOffset
=
summer
.
getTimezoneOffset
();
var
stdTimezoneOffset
=
Math
.
max
(
winterOffset
,
summerOffset
);
HEAP32
[
timezone
>>
2
]
=
stdTimezoneOffset
*
60
;
HEAP32
[
daylight
>>
2
]
=
Number
(
winterOffset
!=
summerOffset
);
function
extractZone
(
date
)
{
var
match
=
date
.
toTimeString
().
match
(
/
\(([
A-Za-z
]
+
)\)
$/
);
return
match
?
match
[
1
]
:
"
GMT
"
;
}
var
winterName
=
extractZone
(
winter
);
var
summerName
=
extractZone
(
summer
);
var
winterNamePtr
=
allocateUTF8
(
winterName
);
var
summerNamePtr
=
allocateUTF8
(
summerName
);
if
(
summerOffset
<
winterOffset
)
{
HEAP32
[
tzname
>>
2
]
=
winterNamePtr
;
HEAP32
[
tzname
+
4
>>
2
]
=
summerNamePtr
;
}
else
{
HEAP32
[
tzname
>>
2
]
=
summerNamePtr
;
HEAP32
[
tzname
+
4
>>
2
]
=
winterNamePtr
;
}
}
function
__tzset_js
(
timezone
,
daylight
,
tzname
)
{
if
(
__tzset_js
.
called
)
return
;
__tzset_js
.
called
=
true
;
_tzset_impl
(
timezone
,
daylight
,
tzname
);
}
function
_abort
()
{
abort
(
""
);
}
function
_emscripten_memcpy_big
(
dest
,
src
,
num
)
{
HEAPU8
.
copyWithin
(
dest
,
src
,
src
+
num
);
}
function
_emscripten_get_heap_max
()
{
return
2147483648
;
}
function
emscripten_realloc_buffer
(
size
)
{
try
{
wasmMemory
.
grow
(
size
-
buffer
.
byteLength
+
65535
>>>
16
);
updateGlobalBufferAndViews
(
wasmMemory
.
buffer
);
return
1
;
}
catch
(
e
)
{}
}
function
_emscripten_resize_heap
(
requestedSize
)
{
var
oldSize
=
HEAPU8
.
length
;
requestedSize
=
requestedSize
>>>
0
;
var
maxHeapSize
=
_emscripten_get_heap_max
();
if
(
requestedSize
>
maxHeapSize
)
{
return
false
;
}
let
alignUp
=
(
x
,
multiple
)
=>
x
+
(
multiple
-
x
%
multiple
)
%
multiple
;
for
(
var
cutDown
=
1
;
cutDown
<=
4
;
cutDown
*=
2
)
{
var
overGrownHeapSize
=
oldSize
*
(
1
+
.
2
/
cutDown
);
overGrownHeapSize
=
Math
.
min
(
overGrownHeapSize
,
requestedSize
+
100663296
);
var
newSize
=
Math
.
min
(
maxHeapSize
,
alignUp
(
Math
.
max
(
requestedSize
,
overGrownHeapSize
),
65536
));
var
replacement
=
emscripten_realloc_buffer
(
newSize
);
if
(
replacement
)
{
return
true
;
}
}
return
false
;
}
function
_fd_write
(
fd
,
iov
,
iovcnt
,
pnum
)
{
var
num
=
0
;
for
(
var
i
=
0
;
i
<
iovcnt
;
i
++
)
{
var
ptr
=
HEAP32
[
iov
>>
2
];
var
len
=
HEAP32
[
iov
+
4
>>
2
];
iov
+=
8
;
if
(
typeof
process
!==
'
undefined
'
)
{
process
.
stdout
.
write
(
UTF8ToString
(
ptr
,
len
))
}
num
+=
len
;
}
HEAP32
[
pnum
>>
2
]
=
num
;
}
function
_gettimeofday
(
ptr
)
{
var
now
=
Date
.
now
();
HEAP32
[
ptr
>>
2
]
=
now
/
1
e3
|
0
;
HEAP32
[
ptr
+
4
>>
2
]
=
now
%
1
e3
*
1
e3
|
0
;
return
0
;
}
var
asmLibraryArg
=
{
"
a
"
:
___assert_fail
,
"
h
"
:
_dynamicImport
,
"
i
"
:
_getModuleContent
,
"
j
"
:
_invokeHostFunction
,
"
e
"
:
__localtime_js
,
"
f
"
:
__tzset_js
,
"
b
"
:
_abort
,
"
g
"
:
_emscripten_memcpy_big
,
"
k
"
:
_emscripten_resize_heap
,
"
d
"
:
_fd_write
,
"
c
"
:
_gettimeofday
};
var
asm
=
createWasm
();
var
___wasm_call_ctors
=
Module
[
"
___wasm_call_ctors
"
]
=
function
()
{
return
(
___wasm_call_ctors
=
Module
[
"
___wasm_call_ctors
"
]
=
Module
[
"
asm
"
][
"
m
"
]).
apply
(
null
,
arguments
);
};
var
_malloc
=
Module
[
"
_malloc
"
]
=
function
()
{
return
(
_malloc
=
Module
[
"
_malloc
"
]
=
Module
[
"
asm
"
][
"
n
"
]).
apply
(
null
,
arguments
);
};
var
_free
=
Module
[
"
_free
"
]
=
function
()
{
return
(
_free
=
Module
[
"
_free
"
]
=
Module
[
"
asm
"
][
"
o
"
]).
apply
(
null
,
arguments
);
};
var
_newContext
=
Module
[
"
_newContext
"
]
=
function
()
{
return
(
_newContext
=
Module
[
"
_newContext
"
]
=
Module
[
"
asm
"
][
"
q
"
]).
apply
(
null
,
arguments
);
};
var
_freeContext
=
Module
[
"
_freeContext
"
]
=
function
()
{
return
(
_freeContext
=
Module
[
"
_freeContext
"
]
=
Module
[
"
asm
"
][
"
r
"
]).
apply
(
null
,
arguments
);
};
var
_doDynamicImport
=
Module
[
"
_doDynamicImport
"
]
=
function
()
{
return
(
_doDynamicImport
=
Module
[
"
_doDynamicImport
"
]
=
Module
[
"
asm
"
][
"
s
"
]).
apply
(
null
,
arguments
);
};
var
_pathJoin
=
Module
[
"
_pathJoin
"
]
=
function
()
{
return
(
_pathJoin
=
Module
[
"
_pathJoin
"
]
=
Module
[
"
asm
"
][
"
t
"
]).
apply
(
null
,
arguments
);
};
var
_load
=
Module
[
"
_load
"
]
=
function
()
{
return
(
_load
=
Module
[
"
_load
"
]
=
Module
[
"
asm
"
][
"
u
"
]).
apply
(
null
,
arguments
);
};
var
_call
=
Module
[
"
_call
"
]
=
function
()
{
return
(
_call
=
Module
[
"
_call
"
]
=
Module
[
"
asm
"
][
"
v
"
]).
apply
(
null
,
arguments
);
};
var
_freeJsValue
=
Module
[
"
_freeJsValue
"
]
=
function
()
{
return
(
_freeJsValue
=
Module
[
"
_freeJsValue
"
]
=
Module
[
"
asm
"
][
"
w
"
]).
apply
(
null
,
arguments
);
};
Module
[
"
UTF8ToString
"
]
=
UTF8ToString
;
Module
[
"
allocateUTF8
"
]
=
allocateUTF8
;
var
calledRun
;
dependenciesFulfilled
=
function
runCaller
()
{
if
(
!
calledRun
)
run
();
if
(
!
calledRun
)
dependenciesFulfilled
=
runCaller
;
};
function
run
(
args
)
{
args
=
args
||
arguments_
;
if
(
runDependencies
>
0
)
{
return
;
}
preRun
();
if
(
runDependencies
>
0
)
{
return
;
}
function
doRun
()
{
if
(
calledRun
)
return
;
calledRun
=
true
;
Module
[
"
calledRun
"
]
=
true
;
if
(
ABORT
)
return
;
initRuntime
();
readyPromiseResolve
(
Module
);
postRun
();
}
{
doRun
();
}
}
Module
[
"
run
"
]
=
run
;
run
();
return
Module
.
ready
}
);
})();
if
(
typeof
exports
===
'
object
'
&&
typeof
module
===
'
object
'
)
module
.
exports
=
Module
;
else
if
(
typeof
define
===
'
function
'
&&
define
[
'
amd
'
])
define
([],
function
()
{
return
Module
;
});
else
if
(
typeof
exports
===
'
object
'
)
exports
[
"
Module
"
]
=
Module
;
\ No newline at end of file
miniprogram/pages/codeOnline/codeOnline.js
浏览文件 @
2cff6620
...
@@ -8,8 +8,6 @@ Component({
...
@@ -8,8 +8,6 @@ Component({
addGlobalClass
:
true
,
addGlobalClass
:
true
,
},
},
/**
/**
* 组件的属性列表
* 组件的属性列表
*/
*/
...
@@ -22,19 +20,21 @@ Component({
...
@@ -22,19 +20,21 @@ Component({
*/
*/
data
:
{
data
:
{
baseUrl
:
'
https://yongma16.xyz
'
,
baseUrl
:
'
https://yongma16.xyz
'
,
runJsPath
:
'
/common-api/
searchOpenAiText
/
'
,
runJsPath
:
'
/common-api/
runJs
/
'
,
config
:
{
config
:
{
title
:
'
运行js
'
,
title
:
'
运行js
'
,
runCodePlaceholderText
:
'
请输入js
'
,
runCodePlaceholderText
:
'
请输入js
'
,
loading
:
true
,
loading
:
true
,
runBtnText
:
'
运行
'
,
runBtnText
:
'
运行
'
,
formatBtnText
:
'
格式化
'
,
formatBtnText
:
'
格式化
'
,
clearBtnText
:
'
清空
'
,
htmlNode
:
''
htmlNode
:
''
},
},
codeVal
:
''
,
codeVal
:
''
,
loading
:
false
,
loading
:
false
,
runCodeRes
:
'
结果集
'
,
runCodeRes
:
'
空
'
,
htmlNode
:
'
结果集
'
htmlNode
:
'
空
'
,
prefixRes
:
'
结果:
'
},
},
...
@@ -50,22 +50,51 @@ Component({
...
@@ -50,22 +50,51 @@ Component({
htmlNode
:
app
.
changeHtmlText
(
val
)
htmlNode
:
app
.
changeHtmlText
(
val
)
})
})
},
},
async
eval_js
(
val
)
{
try
{
const
res
=
await
app
.
eval_des
(
`
${
val
}
`
)
console
.
log
(
res
,
'
res
'
)
console
.
log
(
res
())
this
.
setData
({
runCodeRes
:
res
,
htmlNode
:
app
.
changeHtmlText
(
res
)
})
}
catch
(
r
)
{
const
rText
=
JSON
.
stringify
(
r
)
this
.
setData
({
runCodeRes
:
rText
,
htmlNode
:
app
.
changeHtmlText
(
rText
)
})
}
},
formatCode
(){
},
clearCode
(){
this
.
setData
({
codeVal
:
''
})
},
runCode
()
{
runCode
()
{
const
codeVal
=
this
.
data
.
codeVal
const
codeVal
=
this
.
data
.
codeVal
console
.
log
(
'
运行代码
'
,
codeVal
)
console
.
log
(
'
运行代码
'
,
codeVal
)
const
thisBack
=
this
const
thisBack
=
this
if
(
codeVal
)
{
if
(
codeVal
)
{
//
let obj =(new Function("return "+""+codeVal+""))();
//
this.eval_js(codeVal)
const
data
=
{
const
data
=
{
co
o
ntent
:
codeVal
content
:
codeVal
}
}
const
headers
=
{
'
Content-Type
'
:
'
application/json;charset=UTF-8
'
}
wx
.
request
({
wx
.
request
({
url
:
this
.
data
.
baseUrl
+
this
.
data
.
runJsPath
,
url
:
this
.
data
.
baseUrl
+
this
.
data
.
runJsPath
,
headers
:
headers
,
method
:
'
POST
'
,
method
:
'
POST
'
,
data
:
data
,
data
:
data
,
success
:
res
=>
{
success
:
res
=>
{
console
.
log
(
res
,
'
res
'
)
let
resText
=
res
.
data
.
data
const
resText
=
res
.
data
if
(
res
.
data
.
code
===
0
){
resText
=
res
.
data
.
msg
}
thisBack
.
setData
({
thisBack
.
setData
({
runCodeRes
:
resText
,
runCodeRes
:
resText
,
htmlNode
:
app
.
changeHtmlText
(
resText
)
htmlNode
:
app
.
changeHtmlText
(
resText
)
...
...
miniprogram/pages/codeOnline/codeOnline.wxml
浏览文件 @
2cff6620
<!--pages/codeOnline/codeOnline.wxml-->
<!--pages/codeOnline/codeOnline.wxml-->
<view class="container">
<view class="container">
<view class="container-header">
<view class="container-header">
{{config.title}}
{{config.title}}
</view>
</view>
<view class="container-box">
<view class="container-box">
<view class="container-box-show">
<view class="container-box-show">
<view class="container-box-show-btn">
<view class="container-box-show-btn">
<button type="primary" loading="{{loading}}" size="mini" bindtap="runCode">{{config.runBtnText}}</button>
<button type="primary" loading="{{loading}}" size="mini" bindtap="runCode">{{config.runBtnText}}</button>
<button type="primary" loading="{{loading}}" size="mini" bindtap="runCode" class="format-btn">{{config.formatBtnText}}</button>
<button type="primary" loading="{{loading}}" size="mini" bindtap="formatCode" class="format-btn">{{config.formatBtnText}}</button>
</view>
<button type="primary" loading="{{loading}}" size="mini" bindtap="clearCode" class="format-btn">{{config.clearBtnText}}</button>
<view class="container-box-show-response">
</view>
<view class="container-html">
<view class="container-box-show-response">
<towxml nodes="{{htmlNode}}" />
<view class="container-html">
{{prefixRes}}{{runCodeRes}}
<!-- <towxml nodes="{{htmlNode}}" /> -->
</view>
</view>
</view>
<view class="container-box-edit">
<view class="section">
<textarea loading="{{loading}}" bindinput="bindKeyInput" value="{{codeVal}}" placeholder="{{config.runCodePlaceholderText}}" auto-focus />
</view>
</view>
</view>
</view>
</view>
<view class="container-box-edit">
<view class="section">
<textarea loading="{{loading}}" bindinput="bindKeyInput" value="{{codeVal}}" placeholder="{{config.runCodePlaceholderText}}" auto-focus />
</view>
</view>
</view>
</view>
</view>
</view>
\ No newline at end of file
miniprogram/pages/codeOnline/codeOnline.wxss
浏览文件 @
2cff6620
...
@@ -51,8 +51,9 @@
...
@@ -51,8 +51,9 @@
width: 100%;
width: 100%;
height: 50%;
height: 50%;
background: rgba(255, 255, 255, .2);
background: rgba(255, 255, 255, .2);
border: 1px solid rgb
(8, 183, 252
);
border: 1px solid rgb
a(16, 116, 187
);
box-shadow: 0 2rpx 5rpx 5rpx rgba(255, 255, 255, .2);
box-shadow: 0 2rpx 5rpx 5rpx rgba(255, 255, 255, .2);
padding: 2px;
}
}
.section{
.section{
position: relative;
position: relative;
...
@@ -67,5 +68,5 @@
...
@@ -67,5 +68,5 @@
color: #333;
color: #333;
user-select: text;
user-select: text;
overflow: auto;
overflow: auto;
border: 1px solid rgb
(8, 183, 252
);
border: 1px solid rgb
a(16, 116, 187
);
}
}
\ No newline at end of file
miniprogram/pages/home/home.wxss
浏览文件 @
2cff6620
...
@@ -62,6 +62,7 @@ page {
...
@@ -62,6 +62,7 @@ page {
left: 0;
left: 0;
z-index: 1;
z-index: 1;
width:50%;
width:50%;
transition: 2s;
font-size: 12px;
font-size: 12px;
height:100%;
height:100%;
background-color: rgba(0, 0, 0,.8);
background-color: rgba(0, 0, 0,.8);
...
@@ -76,6 +77,7 @@ page {
...
@@ -76,6 +77,7 @@ page {
right: 0;
right: 0;
z-index: 1;
z-index: 1;
width:50%;
width:50%;
transition: 2s;
height:100%;
height:100%;
background-color: rgba(0, 0, 0,.5);
background-color: rgba(0, 0, 0,.5);
overflow: hidden;
overflow: hidden;
...
@@ -84,6 +86,7 @@ page {
...
@@ -84,6 +86,7 @@ page {
.container-menu-expand{
.container-menu-expand{
position: absolute;
position: absolute;
transition: 2s;
left: 0;
left: 0;
z-index: 1;
z-index: 1;
}
}
...
...
miniprogram/pages/index/index.wxml
浏览文件 @
2cff6620
...
@@ -15,9 +15,11 @@
...
@@ -15,9 +15,11 @@
<image class="avatar" class="user-image" src="{{userImageUrl}}"></image>
<image class="avatar" class="user-image" src="{{userImageUrl}}"></image>
</button>
</button>
<view style="display: flex;width:100%;text-align: center;">
<view style="display: flex;width:100%;text-align: center;">
<!-- <view style="width: 30%;text-align: right;">
<!-- <view style="width: 30%;text-align: right;">
{{userPrefix}}
{{userPrefix}}
</view> -->
</view> -->
<view style="width:100%;text-align: center;">
<view style="width:100%;text-align: center;">
<input type="nickname" class="weui-input" value="{{userName}}" bindinput="bindKeyInput" placeholder-style="color: #fff" style="width: 100%;border-bottom: 1px solid #ffffff;" placeholder="{{designPlaceholder}}" />
<input type="nickname" class="weui-input" value="{{userName}}" bindinput="bindKeyInput" placeholder-style="color: #fff" style="width: 100%;border-bottom: 1px solid #ffffff;" placeholder="{{designPlaceholder}}" />
</view>
</view>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录