whole_func_string: function StringMatchJS(pattern) {
    CHECK_OBJECT_COERCIBLE(this, "String.prototype.match");
  
    if (!IS_NULL_OR_UNDEFINED(pattern)) {
      var matcher = pattern[matchSymbol];
      if (!IS_UNDEFINED(matcher)) {
        return %_Call(matcher, pattern, this);
      }
    }
  
    var subject = TO_STRING(this);
  
    // Equivalent to RegExpCreate (ES#sec-regexpcreate)
    var regexp = %_NewObject(GlobalRegExp, GlobalRegExp);
    RegExpInitialize(regexp, pattern);
    return regexp[matchSymbol](subject);
  }
func_code_string: function StringMatchJS(pattern) {
    CHECK_OBJECT_COERCIBLE(this, "String.prototype.match");
  
    if (!IS_NULL_OR_UNDEFINED(pattern)) {
      var matcher = pattern[matchSymbol];
      if (!IS_UNDEFINED(matcher)) {
        return %_Call(matcher, pattern, this);
      }
    }
  
    var subject = TO_STRING(this);
  
    // Equivalent to RegExpCreate (ES#sec-regexpcreate)
    var regexp = %_NewObject(GlobalRegExp, GlobalRegExp);
    RegExpInitialize(regexp, pattern);
    return regexp[matchSymbol](subject);
  }
func_documentation_string: ES6 21.1.3.11.