-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
dart2js: default toString method crashes on Firefox #3389
Comments
This comment was originally written by ngeoffray@google.com |
This seems very much related to issue #3240. Set owner to @kasperl. |
I meant to suggest using Object.prototype.toString.call(receiver) only when object.constructor.name fails. My suggestion is not a great solution, just a crash fix. The default toString should never crash. Consider: The interface name is 'Window' The result of object.constructor.name is either undefined or 'Window' or 'DOMWindow' or ... While it is possible to provide toString implementations for all the dart:html types, that would add ~20K to every program. I'd rather explain the differences in names between browsers as 'each browser implements the library a little differently'. The implementation class names are different on Dartium too. |
This no longer crashes. Marking as fixed. Feel free to open another bug with suggestions on how to make the default toString even better! Added Fixed label. |
…n, sse, stream_channel, test, tools, usage, webdev Revisions updated by `dart tools/rev_sdk_deps.dart`. async (https://github.com/dart-lang/async/compare/0127813..ce650b0): ce650b0 2023-04-19 Nate Bosch Regression test for error rejecting transaction (#230) characters (https://github.com/dart-lang/characters/compare/ba8d557..b306414): b306414 2023-04-19 Lasse R.H. Nielsen Add tools to update and generate tables and tests. (#72) convert (https://github.com/dart-lang/convert/compare/8812e40..855aeac): 855aeac 2023-04-10 Kevin Moore Require Dart 2.19, fix override param name, update lints (#81) crypto (https://github.com/dart-lang/crypto/compare/1cb1528..77491f5): 77491f5 2023-04-19 Lasse R.H. Nielsen Make `DigestSink` implement `Sink` (#146) dartdoc (https://github.com/dart-lang/dartdoc/compare/a0755f5..8e8b36e): 8e8b36e3 2023-04-19 Janice Collins Fix up documentation on comment reference parser to align with wiki (#2851) b9178fce 2023-04-19 dependabot[bot] Bump github/codeql-action from 2.2.11 to 2.2.12 (#3390) 37b981c4 2023-04-19 dependabot[bot] Bump actions/checkout from 3.5.0 to 3.5.2 (#3389) dadef24a 2023-04-10 dependabot[bot] Bump github/codeql-action from 2.2.9 to 2.2.11 (#3386) dda699a7 2023-04-10 Sam Rawlins Prepare mixin-like classes for Dart 3.0.0 (#3385) intl (https://github.com/dart-lang/intl/compare/a958db0..5d65e38): 5d65e38 2023-04-19 Moritz Update README.md 9972a89 2023-04-19 Moritz Update README.md 5c14faa 2023-04-18 Copybara-Service Merge pull request #584 from dart-lang:fixDateFormattingUrl 4ea644e 2023-04-17 Moritz Merge branch 'master' into fixDateFormattingUrl b0d5687 2023-04-17 dependabot[bot] Bump dart-lang/setup-dart from 1.4.0 to 1.5.0 (#574) 92149be 2023-04-17 Moritz Merge branch 'master' into fixDateFormattingUrl 5203d6e 2023-04-17 Googler Internal change bab667f 2023-04-17 Moritz Typo b0896b1 2023-04-17 Moritz Fix bug 43507e1 2023-04-14 Googler Internal change d8844a0 2023-04-14 dependabot[bot] Bump actions/checkout from 3.3.0 to 3.5.2 (#579) 99ed16f 2023-04-13 Copybara-Service Merge pull request #572 from dart-lang:adaptBrowserTest 34e824c 2023-03-30 Moritz Adapt test to browser CLDR update markdown (https://github.com/dart-lang/markdown/compare/d437c85..5f98aea): 5f98aea 2023-04-20 Jonas Finnemann Jensen Throw, if `BlockSyntax.parseLines` loops indefinitely (#533) 86ebc2c 2023-04-19 Zhiguang Chen Fix `linkReferenceDefinitionPattern` (#532) sse (https://github.com/dart-lang/sse/compare/11e83a0..f947c3d): f947c3d 2023-04-10 Kevin Moore Require Dart 2.19, bump lints (#82) stream_channel (https://github.com/dart-lang/stream_channel/compare/74646ea..71d4690): 71d4690 2023-04-11 Tobe Osakwe Add example/example.dart (#52) test (https://github.com/dart-lang/test/compare/7832931..7fab079): 7fab0792 2023-04-19 Oleh Prypin Dart 3 compatibility: change `extends Iterator` to `implements Iterator` (#1997) 8f7682a5 2023-04-18 Nate Bosch Remove deprecation of test_api top level libraries (#1994) 7151486c 2023-04-14 Simon Binder Add support for Microsoft Edge (#1992) c1d686aa 2023-04-12 Parker Lougheed Fix "Improvements" link in `package:checks` migration guide (#1991) tools (https://github.com/dart-lang/tools/compare/545d7e1..5c9f45c): 5c9f45c 2023-04-20 Elias Yishak Move `dateStamp` getter to `utils.dart` (#83) usage (https://github.com/dart-lang/usage/compare/0698711..f97752f): f97752f 2023-04-10 Devon Carew update readme for deprecation (#192) webdev (https://github.com/dart-lang/webdev/compare/7546291..8b42c95): 8b42c950 2023-04-21 Anna Gringauze Cleanup record types display (#2070) 1cfb3bd6 2023-04-20 Elliott Brooks Update CONTRIBUTING docs (#2097) 941eda5b 2023-04-19 Elliott Brooks Add a test to make sure proper release procedure is followed for `dwds` and `webdev` (#2095) 2eb7c3ee 2023-04-17 Elliott Brooks Add Github workflow for Dart Code Metrics (#2092) 79a9bc9b 2023-04-17 Elliott Brooks Fix DCM analyzer warnings (#2094) 2a625039 2023-04-14 Elliott Brooks Add `vm_service` git package dependency override (#2078) 1fa19603 2023-04-12 Elliott Brooks Add CI check to remind contributor to update CHANGELOG (#2090) c7bb19e1 2023-04-12 Elliott Brooks Prevent PRs labeled `do-not-submit` from being merged (#2088) 3781ef9b 2023-04-10 Elliott Brooks Run mono_repo generate with version 6.5.3 (#2084) 843890c6 2023-04-10 Anna Gringauze Refactor record shape processing out of calculating record bound fields (#2074) Change-Id: I4ce65f9f79d5086c33c575e57eff300216392510 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/297800 Auto-Submit: Devon Carew <devoncarew@google.com> Reviewed-by: Moritz Sümmermann <mosum@google.com> Commit-Queue: Moritz Sümmermann <mosum@google.com>
This code is trying to say "Instance of 'foo'"
Not all objects have a constructor with a name, so name$ is 'undefined'.
This causes an error in $.charCodeAt.
$.objectToString = function(object) {$.charCodeAt(name$ , 0) === 36) {$.stringToString(name$ ) + ''';
var name$ = (object.constructor.name);
if (
name$ = $.substring$1(name$, 1);
}
return 'Instance of '' +
};
Several tests print objects and fail because of this problem.
I suggest taking the name out of the string returned by Object.prototype.toString.call(receiver)
The text was updated successfully, but these errors were encountered: