/*
 * Copyright (c) 2022 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

(() => {
	let result;
  function TestObjectNull() {
    result = new Object(null);
  }

  function TestObjectUndefined() {
    result = new Object(undefined);
  }

  function TestObjectNumber() {
    result = new Object();
  }

  TestObjectNull();
  print(result)

  TestObjectUndefined();
  print(result)

  TestObjectNumber();
  print(result)

})();

let v0 = [1, 2, 3];

function f3() {
  return v0;
}

class C7 {
  constructor(a9, a10, a11) {
    a11 / a11;
    return v0;
  }
  static toString(a21, a22) {
    this["toString"] = a22;
    const v23 = "2Al" / f3;
    v0 &= a22;
    const v24 = new f3();
    Reflect.construct(C7, [], C7);
    return "toString";
  }
}

try {
  const v39 = new C7("toString", "toString", C7);
} catch(e) {
  print(e);
}

class C27 extends Uint8ClampedArray {
  constructor(a29) {
    super(a29);
    print("hello world");
  }
}
new C27(1);
function test(){}
try {
  Reflect.construct(C27, [-1], test);
} catch(e) {
  print(e);
}