var BUGNUMBER = 1184922;
var summary = "Array destructuring with various default values in various context - class expression and super/new.target";

print(BUGNUMBER + ": " + summary);

testDestructuringArrayDefault(`class E {
  constructor() {}
  method() {}
  get v() {}
  set v(_) {}
  static method() {}
  static get v() {}
  static set v(_) {}
}`);

testDestructuringArrayDefault(`class E extends C {
  constructor() {}
  method() {}
  get v() {}
  set v(_) {}
  static method() {}
  static get v() {}
  static set v(_) {}
}`);

var opt = {
    no_plain: true,
    no_func: true,
    no_func_arg: true,
    no_gen: true,
    no_gen_arg: true,
    no_ctor: true,
    no_method: true,
    no_pre_super: true,
    no_comp: true,

    no_derived_ctor: false,
};
testDestructuringArrayDefault("super()", opt);

opt = {
    no_plain: true,
    no_func: true,
    no_func_arg: true,
    no_gen: true,
    no_gen_arg: true,
    no_ctor: true,
    no_comp: true,

    no_derived_ctor: false,
    no_method: false,
    no_pre_super: false,
};
testDestructuringArrayDefault("super.foo()", opt);

opt = {
    no_plain: true,

    no_func: false,
    no_func_arg: false,
    no_gen: false,
    no_gen_arg: false,
    no_ctor: false,
    no_derived_ctor: false,
    no_method: false,
    no_pre_super: false,
    no_comp: false,
};
testDestructuringArrayDefault("new.target", opt);

if (typeof reportCompare === "function")
  reportCompare(true, true);