askql icon indicating copy to clipboard operation
askql copied to clipboard

'set' resource doesn't handle type mismatch

Open czerwinskilukasz1 opened this issue 4 years ago • 2 comments

When trying to use set on an object, it fails with an Uncaught TypeError: arr.slice is not a function. We should add type validation and our own error handling.

🦄 .editor
// Entering editor mode (^D to finish, ^C to cancel)
let a = {}
a:set('a', 'value')

Uncaught TypeError: arr.slice is not a function
    at Resource.<anonymous> (/Users/milimetr/Desktop/askql/askql/dist/askvm/resources/list/set.js:18:32)
    at Generator.next (<anonymous>)
    at /Users/milimetr/Desktop/askql/askql/dist/askvm/resources/list/set.js:8:71
    at new Promise (<anonymous>)
    at __awaiter (/Users/milimetr/Desktop/askql/askql/dist/askvm/resources/list/set.js:4:12)
    at Resource.resolver (/Users/milimetr/Desktop/askql/askql/dist/askvm/resources/list/set.js:17:16)
🦄 

czerwinskilukasz1 avatar Jun 27 '20 09:06 czerwinskilukasz1

a:set('a', 'value') is set(a, 'a', 'value') is set({}, 'a', 'value') is {} = 'a' so no wonder this throws. Error message should be more informative though

mhagmajer avatar Jun 27 '20 09:06 mhagmajer

Blocked on https://github.com/xFAANG/askql/issues/45

czerwinskilukasz1 avatar Jul 01 '20 14:07 czerwinskilukasz1