sdk
sdk copied to clipboard
Confusing error message when dynamically calling a null value
dcall(f, args, [@undefined named]) => _checkAndCall(
f, null, JS('', 'void 0'), null, args, named, JS('', 'f.name'));
dgcall(f, typeArgs, args, [@undefined named]) => _checkAndCall(f, null,
JS('', 'void 0'), typeArgs, args, named, JS('', "f.name || 'call'"));
Both of these methods attempt to pass f.name as the displayName argument to _checkAndCall(). When f is null the error messages are misleading and the code in _checkAndCall() meant to handle null and provide a more helpful error message is not being executed.
ex:
Uncaught TypeError: Cannot read properties of null (reading 'name')
at Object.dcall (dart_sdk.js:4914:69)
at Object.main (test_05.js:37:10)
at test_05.html:19:17
at Object.execCb (require.js:1696:33)
at Module.check (require.js:883:51)
at Module.<anonymous> (require.js:1139:34)
at require.js:134:23
at require.js:1189:21
at each (require.js:59:31)
at Module.emit (require.js:1188:17)
at Module.check (require.js:938:30)
at Module.<anonymous> (require.js:1139:34)
at require.js:134:23
at require.js:1189:21
at each (require.js:59:31)
at Module.emit (require.js:1188:17)
at Module.check (require.js:938:30)
at Module.enable (require.js:1176:22)
at Module.init (require.js:788:26)
at callGetModule (require.js:1203:63)
at Object.completeLoad (require.js:1590:21)
at HTMLScriptElement.onScriptLoad (require.js:1717:29)
We should add additional test cases to https://github.com/dart-lang/sdk/blob/7e86f2e71cdfa17761ae418ae471f49fb0b72269/tests/dartdevc/no_such_method_errors_test.dart