-
Notifications
You must be signed in to change notification settings - Fork 34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ホストが標準関数を上書きできるようにしたい #671
Comments
上書きしたいのはなぜ? |
関数にバグやパフォーマンス上の問題があった時に自力救済ができるというのと、 |
stdをデフォルトから分離して、ホスト側がプリセット的なものを選択してconstsと一緒にインタプリタに渡すようにしてもいいなと思いました。 |
同パッケージ内でも、ファイルを分けてお互いに参照しない状態にすればtree-shakingは効きましたっけ? |
ファイル分けてなくても変数が参照されていなければ効きますね。 // aiscript.ts
export const stdPresetSafe = {
'Safe:function': FN_NATIVE(/* implements */),
};
export const stdPresetAll = {
...stdPresetSafe,
'Unsafe:function': FN_NATIVE(/* implements */),
};
export class Interpreter {
constructor(consts, options) {
// ...
}
// ...
}
// host.ts
import { Interpleter, stdPresetSafe } from './aiscript';
const interpreter = new Interpreter(stdPresetSafe); |
すいません、駄目な気がして試したらファイル分けてなくてもは嘘でした。 export const stdPresetSafe = () => ({
'Safe:function': FN_NATIVE(/* implements */),
});
export const stdPresetAll = () => ({
...stdPresetSafe(),
'Unsafe:function': FN_NATIVE(/* implements */),
}); |
aiscript/src/interpreter/index.ts
Lines 50 to 54 in 38f36ef
ここの
...consts,
を一番下にすればホストが同名の関数を提供することで既存の関数を上書きできるようになるはずなのでそうしたいThe text was updated successfully, but these errors were encountered: