shackpank / marsha

Ruby Marshal serializer/deserializer for JS
10 stars 2 forks source link

TypeError: Cannot call method 'toString' of undefined #3

Open zhongfox opened 9 years ago

zhongfox commented 9 years ago

Hi, there is another sample:

2.1.1 :021 >   a = 'BAh7DEkiD3Nlc3Npb25faWQGOgZFRkkiJWI5MTRlNTJiYzhiNzgyNTJiZDlhNmE3ODA2M2UxMzk2BjsAVEkiB2N1BjsARkkiLTU0ODU0NTUsdXNlcl8xMDQ0ODkzMzYzYjY1ZSwsMTgwOTU1OTUzMjAGOwBUSSIZd2FyZGVuLnVzZXIudXNlci5rZXkGOwBUWwhJIglVc2VyBjsARlsGaQOPs1NJIhl5QzZYcHVBOEtmNloyRWZlZGR5VAY7AFRJIg9zaWduaW5fd2F5BjsARmkISSIRX3NpZ25faW5fd2F5BjsARmkISSIMY2FwdGNoYQY7AEYiGWMzODAxN2FlMDljNWEzMTM4Mzk5SSIQX2NzcmZfdG9rZW4GOwBGSSIxU2RGNzU0N21ReXc4RmN6RmJKV2lWTWR3eENrcXI2VU9qTVJObkMxbW9PMD0GOwBG'
 => "BAh7DEkiD3Nlc3Npb25faWQGOgZFRkkiJWI5MTRlNTJiYzhiNzgyNTJiZDlhNmE3ODA2M2UxMzk2BjsAVEkiB2N1BjsARkkiLTU0ODU0NTUsdXNlcl8xMDQ0ODkzMzYzYjY1ZSwsMTgwOTU1OTUzMjAGOwBUSSIZd2FyZGVuLnVzZXIudXNlci5rZXkGOwBUWwhJIglVc2VyBjsARlsGaQOPs1NJIhl5QzZYcHVBOEtmNloyRWZlZGR5VAY7AFRJIg9zaWduaW5fd2F5BjsARmkISSIRX3NpZ25faW5fd2F5BjsARmkISSIMY2FwdGNoYQY7AEYiGWMzODAxN2FlMDljNWEzMTM4Mzk5SSIQX2NzcmZfdG9rZW4GOwBGSSIxU2RGNzU0N21ReXc4RmN6RmJKV2lWTWR3eENrcXI2VU9qTVJObkMxbW9PMD0GOwBG"
2.1.1 :022 > Marshal.load(Base64.decode64(a))
 => {"session_id"=>"b914e52bc8b78252bd9a6a78063e1396", "cu"=>"5485455,user_1044893363b65e,,18095595320", "warden.user.user.key"=>["User", [5485455], "yC6XpuA8Kf6Z2EfeddyT"], "signin_way"=>3, "_sign_in_way"=>3, "captcha"=>"c38017ae09c5a3138399", "_csrf_token"=>"SdF7547mQyw8FczFbJWiVMdwxCkqr6UOjMRNnC1moO0="}
> a = 'BAh7DEkiD3Nlc3Npb25faWQGOgZFRkkiJWI5MTRlNTJiYzhiNzgyNTJiZDlhNmE3ODA2M2UxMzk2BjsAVEkiB2N1BjsARkkiLTU0ODU0NTUsdXNlcl8xMDQ0ODkzMzYzYjY1ZSwsMTgwOTU1OTUzMjAGOwBUSSIZd2FyZGVuLnVzZXIudXNlci5rZXkGOwBUWwhJIglVc2VyBjsARlsGaQOPs1NJIhl5QzZYcHVBOEtmNloyRWZlZGR5VAY7AFRJIg9zaWduaW5fd2F5BjsARmkISSIRX3NpZ25faW5fd2F5BjsARmkISSIMY2FwdGNoYQY7AEYiGWMzODAxN2FlMDljNWEzMTM4Mzk5SSIQX2NzcmZfdG9rZW4GOwBGSSIxU2RGNzU0N21ReXc4RmN6RmJKV2lWTWR3eENrcXI2VU9qTVJObkMxbW9PMD0GOwBG'
'BAh7DEkiD3Nlc3Npb25faWQGOgZFRkkiJWI5MTRlNTJiYzhiNzgyNTJiZDlhNmE3ODA2M2UxMzk2BjsAVEkiB2N1BjsARkkiLTU0ODU0NTUsdXNlcl8xMDQ0ODkzMzYzYjY1ZSwsMTgwOTU1OTUzMjAGOwBUSSIZd2FyZGVuLnVzZXIudXNlci5rZXkGOwBUWwhJIglVc2VyBjsARlsGaQOPs1NJIhl5QzZYcHVBOEtmNloyRWZlZGR5VAY7AFRJIg9zaWduaW5fd2F5BjsARmkISSIRX3NpZ25faW5fd2F5BjsARmkISSIMY2FwdGNoYQY7AEYiGWMzODAxN2FlMDljNWEzMTM4Mzk5SSIQX2NzcmZfdG9rZW4GOwBGSSIxU2RGNzU0N21ReXc4RmN6RmJKV2lWTWR3eENrcXI2VU9qTVJObkMxbW9PMD0GOwBG'
>
undefined
> marsha.load(a, 'base64')
TypeError: Cannot call method 'toString' of undefined
    at _identifyNextToken (/Users/zhonghua/code/work/zhe800_node/node_modules/marsha/index.js:111:68)
    at _identifyNextToken (/Users/zhonghua/code/work/zhe800_node/node_modules/marsha/index.js:104:21)
    at _parse (/Users/zhonghua/code/work/zhe800_node/node_modules/marsha/index.js:117:10)
    at Object.module.exports.load (/Users/zhonghua/code/work/zhe800_node/node_modules/marsha/index.js:222:12)
    at repl:1:9
    at REPLServer.self.eval (repl.js:112:21)
    at Interface.<anonymous> (repl.js:239:12)
    at Interface.EventEmitter.emit (events.js:117:20)
    at Interface._onLine (readline.js:202:10)
    at Interface._line (readline.js:531:8)
zhongfox commented 9 years ago

Hello, @shackpank , is there any update about the 2 issues? thanks

shackpank commented 9 years ago

@zhongfox this looks like a similar issue to #2 - there is nothing sketchy-looking on the ruby side, it is likely metadata against the strings tripping up the parser. Will look into it, with the caveats already mentioned on that issue!