Callback parameter needs an extra check
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 48/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Ferma
- Stack tecnologico
- javascript
- Ambito
- tooling
Direzione di ricerca
Riproduci l’esempio di callback fornito con l’entry point static-eval e ispeziona index.js intorno alla riga 134, dove lo stack trace mostra il fallimento dell’accesso alla proprietà. Traccia il modo in cui gli argomenti del callback vengono passati all’evaluator, quindi aggiungi un test di regressione che copra l’input oggetto fornito e verifica che venga completato senza il TypeError segnalato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
My test code looks like this:
var evaluate = require('static-eval');
var parse = require('esprima').parse;
var src = 'foo(function (obj) { return obj.x })';
var ast = parse(src).body[0].expression;
var result = evaluate(ast, {
foo: function (func) {
return func({x: 1})
},
});
console.log(result);
When I run it, I get:
$ node test.js
/home/stathis/src/jellyfish-jellyscript/node_modules/static-eval/index.js:134
return obj[node.property.name];
^
TypeError: Cannot read property 'x' of null
at walk (/home/stathis/src/jellyfish-jellyscript/node_modules/static-eval/index.js:134:27)
at walk (/home/stathis/src/jellyfish-jellyscript/node_modules/static-eval/index.js:152:20)
at walk (/home/stathis/src/jellyfish-jellyscript/node_modules/static-eval/index.js:171:20)
at walk (/home/stathis/src/jellyfish-jellyscript/node_modules/static-eval/index.js:112:25)
at module.exports (/home/stathis/src/jellyfish-jellyscript/node_modules/static-eval/index.js:204:7)
at Object.<anonymous> (/home/stathis/src/jellyfish-jellyscript/test.js:6:14)
at Module._compile (internal/modules/cjs/loader.js:1068:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1097:10)
at Module.load (internal/modules/cjs/loader.js:933:32)
at Function.Module._load (internal/modules/cjs/loader.js:774:14)
whereas when I change
var src = 'foo(function (obj) { return obj.x })';`
to
var src = 'foo(function (obj) { return obj && obj.x })';`
I get a successful result:
$ node test.js
1
This looks like a bug to me, as my callback's input here is just {x: 1}, why would I need to make sure obj exists?
- Lingua principale
- JavaScript
- Stelle
- 177
- Fork
- 27
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di browserify/static-eval
-
CVE in word-wrap Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
browserify/static-eval#42 · 1 commento · 2 reazioni ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
browserify/static-eval#41 · 1 commento ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
browserify/static-eval#39 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
browserify/static-eval#34 · 20 commenti · 3 reazioni ·
-
Sandbox Escape Aperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
browserify/static-eval#32 · 1 commento · 3 reazioni ·
Tutte le issue di browserify/static-eval
Issue simili
-
documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
githubnext/gh-aw-workshop#3692 ·
-
agent/guide documentation hive/hosted-available-lke648397-260827-5n31
Difficoltà 2/5 1-3 ore Idoneità per principianti 90/100
-
Add: BuyPass TV Apertachannels:add check:passed
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
S: triage
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
-
bug
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
apache/cloudstack#14222 ·