• Patrick Thier's avatar
    Improve error messages for property access on null/undefined · 24c626c1
    Patrick Thier authored
    Only print the property name when accessing null/undefined if we can
    convert it to a string without causing side effects.
    If we can't, omit the property name in the error message.
    This should avoid confusion when the key is an object with toString().
    E.g. undefined[{toString:()=>'a'}] doesn't print 'read property [object
    Object]' anymore, which was misleading since the property accessed would
    be 'a', but we can't evaluate the key without side effects.
    
    Bug: v8:11365
    Change-Id: If82d1adb42561d4851e2bd2ca297a1c71738aee8
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2960211Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
    Commit-Queue: Patrick Thier <pthier@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#75250}
    24c626c1
Name
Last commit
Last update
..
compiler Loading commit data...
es6 Loading commit data...
es8 Loading commit data...
harmony Loading commit data...
ignition Loading commit data...
regress Loading commit data...
side-effect Loading commit data...
wasm Loading commit data...
debug-allscopes-on-debugger.js Loading commit data...
debug-backtrace.js Loading commit data...
debug-bigint.js Loading commit data...
debug-break-class-fields.js Loading commit data...
debug-break-inline.js Loading commit data...
debug-break-microtask.js Loading commit data...
debug-break-native.js Loading commit data...
debug-break-return.js Loading commit data...
debug-breakpoints.js Loading commit data...
debug-clearbreakpoint.js Loading commit data...
debug-compile-event.js Loading commit data...
debug-compile-optimized.js Loading commit data...
debug-conditional-breakpoints.js Loading commit data...
debug-constructor.js Loading commit data...
debug-enable-disable-breakpoints.js Loading commit data...
debug-eval-scope.js Loading commit data...
debug-evaluate-arguments.js Loading commit data...
debug-evaluate-bool-constructor.js Loading commit data...
debug-evaluate-closure.js Loading commit data...
debug-evaluate-dead-function-fails.js Loading commit data...
debug-evaluate-declaration.js Loading commit data...
debug-evaluate-function-var.js Loading commit data...
debug-evaluate-local-repl-hole.js Loading commit data...
debug-evaluate-locals-capturing.js Loading commit data...
debug-evaluate-locals-optimized-double.js Loading commit data...
debug-evaluate-locals-optimized.js Loading commit data...
debug-evaluate-locals.js Loading commit data...
debug-evaluate-modify-catch-block-scope.js Loading commit data...
debug-evaluate-modify-this.js Loading commit data...
debug-evaluate-nested-let.js Loading commit data...
debug-evaluate-repl-mode-await.js Loading commit data...
debug-evaluate-repl-mode-optimized.js Loading commit data...
debug-evaluate-repl-mode.js Loading commit data...
debug-evaluate-shadowed-context-2.js Loading commit data...
debug-evaluate-shadowed-context-3.js Loading commit data...
debug-evaluate-shadowed-context.js Loading commit data...
debug-evaluate-with.js Loading commit data...
debug-evaluate.js Loading commit data...
debug-event-listener.js Loading commit data...
debug-exceptions.js Loading commit data...
debug-function-scopes.js Loading commit data...
debug-generator-break-on-stack.js Loading commit data...
debug-generator-break.js Loading commit data...
debug-liveedit-1.js Loading commit data...
debug-liveedit-2.js Loading commit data...
debug-liveedit-3.js Loading commit data...
debug-liveedit-4.js Loading commit data...
debug-liveedit-arrow-function-at-start.js Loading commit data...
debug-liveedit-check-stack.js Loading commit data...
debug-liveedit-compile-error.js Loading commit data...
debug-liveedit-inline.js Loading commit data...
debug-liveedit-literals.js Loading commit data...
debug-liveedit-newsource.js Loading commit data...
debug-liveedit-patch-positions-replace.js Loading commit data...
debug-liveedit-recursion.js Loading commit data...
debug-materialized.js Loading commit data...
debug-modules-set-variable-value.mjs Loading commit data...
debug-multiple-breakpoints.js Loading commit data...
debug-multiple-var-decl.js Loading commit data...
debug-negative-break-points.js Loading commit data...
debug-optimize.js Loading commit data...
debug-print.js Loading commit data...
debug-receiver.js Loading commit data...
debug-return-value.js Loading commit data...
debug-scopes-suspended-generators.js Loading commit data...
debug-scopes.js Loading commit data...
debug-set-variable-value.js Loading commit data...
debug-stack-check-position.js Loading commit data...
debug-step-2.js Loading commit data...
debug-step-3.js Loading commit data...
debug-step-4.js Loading commit data...
debug-step-end-of-script.js Loading commit data...
debug-step-into-json.js Loading commit data...
debug-step-into-valueof.js Loading commit data...
debug-step-microtask.js Loading commit data...
debug-step-stub-callfunction.js Loading commit data...
debug-step-turbofan.js Loading commit data...
debug-step.js Loading commit data...
debug-stepin-accessor-ic.js Loading commit data...
debug-stepin-accessor.js Loading commit data...
debug-stepin-builtin-callback-opt.js Loading commit data...
debug-stepin-builtin-callback.js Loading commit data...
debug-stepin-builtin.js Loading commit data...
debug-stepin-call-function-stub.js Loading commit data...
debug-stepin-construct-call.js Loading commit data...
debug-stepin-constructor.js Loading commit data...
debug-stepin-foreach.js Loading commit data...
debug-stepin-function-call.js Loading commit data...
debug-stepin-property-function-call.js Loading commit data...
debug-stepnext-do-while.js Loading commit data...
debug-stepout-recursive-function.js Loading commit data...
debug-stepout-scope-part1.js Loading commit data...
debug-stepout-scope-part2.js Loading commit data...
debug-stepout-scope-part3.js Loading commit data...
debug-stepout-scope-part4.js Loading commit data...
debug-stepout-scope-part5.js Loading commit data...
debug-stepout-scope-part6.js Loading commit data...
debug-stepout-scope-part7.js Loading commit data...
debug-stepout-scope-part8.js Loading commit data...
debug-stepout-to-builtin.js Loading commit data...
deserialize-script-id.js Loading commit data...
for-in-opt.js Loading commit data...
function-source.js Loading commit data...
lazy-deopt-then-flush-bytecode.js Loading commit data...
regress-3225.js Loading commit data...
regress-5207.js Loading commit data...