# Copyright 2020 the V8 project authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
*%(basename)s:9: TypeError: Object must be an instance of class C
  test(obj) { obj.#a(); }
                  ^
TypeError: Object must be an instance of class C
    at C.test (*%(basename)s:9:19)
    at *%(basename)s:11:9 