reindexing-in-classes.js 2.14 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
// Copyright 2019 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.

// Test the reindexer visiting classes, avoiding repeat visits of the same
// function.
//
// For each test, create function literals inside a class, where the functions
// have to be reindexed due to the whole thing being inside an arrow head scope.

((arg = (function wrapper() {
  // Class with field that has computed property name with a function in the
  // computation.
  class g {
    [{b: function in_computed_field_name() {}}]
  }
})) => {})();

((arg = (function wrapper() {
  // Class with initialized field that has computed property name with a
  // function in the computation.
  class g {
    [{b: function in_computed_field_name_with_init() {}}] = ""
  }
})) => {})();

((arg = (function wrapper() {
  // Class with initialized field that has literal property name with a function
  // in the initializer value.
  class g {
    b = (function in_init_value_of_field(){})()
  }
})) => {})();

((arg = (function wrapper() {
  // Class with initialized field that has private property name with a function
  // in the initializer value.
  class g {
    #b = (function in_init_value_of_private_field(){})()
  }
})) => {})();

((arg = (function wrapper() {
  // Class with initialized field that has computed property name with a
  // function in the initializer value.
  class g {
    ["b"] = (function in_init_value_of_computed_field_name(){})()
  }
})) => {})();

((arg = (function wrapper() {
  // Class with method that has computed property name with a function in the
  // computation.
  class g {
    [{b: function in_computed_method_name() {}}] () {}
  }
})) => {})();

((arg = (function wrapper() {
  // Class with method that has an argument with a default function init.
  class g {
    b(arg = function in_method_arg_default_init() {}) {}
  }
})) => {})();

((arg = (function wrapper() {
  // Class with method that has a computed property name and an argument with a
  // default function init.
  class g {
    ["b"] (arg = function in_computed_method_arg_default_init() {}) {}
  }
})) => {})();