This commit is contained in:
cilame 2022-03-24 13:39:07 +08:00
parent cfedcd1db0
commit 6b2b1c0896

View File

@ -320,7 +320,7 @@ function make_v(envs, keys){
} }
return ret return ret
} }
function make_s(renv, clazz_f){ function make_s(renv, clazz_f, isout){
var clazz = clazz_f[0] var clazz = clazz_f[0]
var father = clazz_f[1] var father = clazz_f[1]
if (!renv[clazz]){ if (!renv[clazz]){
@ -379,6 +379,9 @@ function make_v(envs, keys){
var ls = [ var ls = [
`${clazz} = v_saf(function ${clazz}(){${cannew?'':'if (!v_new_toggle){ throw TypeError("Illegal constructor") }'};${init}})` + (father?`; _inherits(${clazz}, ${father})`:''), `${clazz} = v_saf(function ${clazz}(){${cannew?'':'if (!v_new_toggle){ throw TypeError("Illegal constructor") }'};${init}})` + (father?`; _inherits(${clazz}, ${father})`:''),
] ]
if (isout){
return [ls, inner]
}
defines.push(...ls) defines.push(...ls)
definepros.push(...inner) definepros.push(...inner)
// return ls.join('\n') // return ls.join('\n')
@ -453,12 +456,18 @@ function make_v(envs, keys){
function patcher(name){ function patcher(name){
var list = make_chain(name) var list = make_chain(name)
if (list.length >= 3){ if (list.length >= 3){
var lsinner = []
for (var i = 0; i < list.length-1; i++) { for (var i = 0; i < list.length-1; i++) {
if (!dicter[list[i]]){ if (!dicter[list[i]]){
dicter[list[i]] = 1; dicter[list[i]] = 1;
make_s(renv, [list[i], list[i+1]]) lsinner.push(make_s(renv, [list[i], list[i+1]], true))
} }
} }
for (var i = lsinner.length - 1; i >= 0; i--) {
var _lsin = lsinner[i]
defines.push(..._lsin[0])
definepros.push(..._lsin[1])
}
}else{ }else{
if (!dicter[name]){ if (!dicter[name]){
dicter[name] = 1; dicter[name] = 1;