Shorthand method definition fails to serialize and eval property
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 42/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Ferma
- Stack tecnologico
- javascript
- Ambito
- tooling
Direzione di ricerca
Riproduci il problema con la chiamata a serialize-javascript mostrata nel report, concentrandoti sull’output del metodo abbreviato fn3. Confronta la sua forma serializzata con fn1 e fn2, quindi valuta il risultato per confermare che l’errore di sintassi sia scomparso. Il lavoro è completato quando i metodi abbreviati vengono serializzati in JavaScript valido ed eseguibile, mantenendo il nome del metodo.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
*properly
When using shorthand to define a function as a method in an object literal, serialization assigns a named function expression, which fails to evaluate.
$ var testSer = { fn1: function(a) { console.log(a); return this; }, fn2: (d) => { console.log(d); return this; }, fn3(r) { console.log(r); return this; } };
Validate the functions first:
test 1
{ fn1: [Function], fn2: [Function], fn3: [Function: fn3] }
$ testSer.fn2('test 2')
test 2
<context>
$ testSer.fn3('test 3')
test 3
{ fn1: [Function], fn2: [Function], fn3: [Function: fn3] }
Do the serialization:
$ ca
'{"fn1":function (a) { console.log(a); return this; },"fn2":(d) => { console.log(d); return this; },"fn3":fn3(r) { console.log(r); return this; }}'
Note how it has created a "fn3" entry as a named function, but has neglected to add the function keyword.
Now try to eval:
$ var c = eval('('+ca+')');
SyntaxError: Unexpected token {
at repl:1:20
at REPLServer.defaultEval (repl.js:262:27)
at bound (domain.js:287:14)
at REPLServer.runBound [as eval] (domain.js:300:12)
at REPLServer.<anonymous> (repl.js:431:12)
at emitOne (events.js:82:20)
at REPLServer.emit (events.js:169:7)
at REPLServer.Interface._onLine (readline.js:211:10)
at REPLServer.Interface._line (readline.js:550:8)
at REPLServer.Interface._ttyWrite (readline.js:827:14)
at ReadStream.onkeypress (readline.js:106:10)
at emitTwo (events.js:87:13)
at ReadStream.emit (events.js:172:7)
at emitKeys (readline.js:1251:14)
at next (native)
at ReadStream.onData (readline.js:919:36)
at emitOne (events.js:77:13)
at ReadStream.emit (events.js:169:7)
at readableAddChunk (_stream_readable.js:153:18)
at ReadStream.Readable.push (_stream_readable.js:111:10)
at TTY.onread (net.js:531:20)
All it needs to do is add the function keyword:
'{"fn1":function (a) { console.log(a); return this; },"fn2":(d) => { console.log(d); return this; },"fn3": function fn3(r) { console.log(r); return this; }}'
Node version:
$ node -v
v4.4.3
- Lingua principale
- JavaScript
- Stelle
- 2.9k
- Fork
- 215
- Merge medio
- 1g 12h
- PR unite (30g)
- 2
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 yahoo/serialize-javascript
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 72/100
yahoo/serialize-javascript#230 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
yahoo/serialize-javascript#229 ·
-
Ad java script Aperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
yahoo/serialize-javascript#212 · 1 commento ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
yahoo/serialize-javascript#208 · 10 commenti · 25 reazioni ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
yahoo/serialize-javascript#195 ·
Tutte le issue di yahoo/serialize-javascript
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
avniproject/avni-client#2135 ·
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
babalae/bettergi-scripts-list#3674 ·
-
A-Release-Notes C-Editing D-Modest S-Ready-For-Implementation
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
bevyengine/bevy-website#2595 ·
-
ecosystem wording
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
matrix-org/matrix.org#3649 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
vadimdemedes/ink#1029 ·