<commit_before>﻿#pragma warning disable 0660
#pragma warning disable 0661

using System;
using System.Collections.Generic;
using JSIL.Meta;
using JSIL.Proxy;

namespace JSIL.Proxies {
    [JSProxy(
        typeof(String),
        JSProxyMemberPolicy.ReplaceDeclared
    )]
    public abstract class StringProxy {
        [JSExternal]
        [JSRuntimeDispatch]
        [JSIsPure]
        public static string Format (params AnyType[] arguments) {
            throw new InvalidOperationException();
        }

        [JSReplacement("JSIL.ConcatString.apply(null, $arguments)")]
        [JSIsPure]
        public static string Concat (params string[] arguments) {
            throw new InvalidOperationException();
        }

        [JSReplacement("JSIL.ConcatString.apply(null, $arguments)")]
        [JSIsPure]
        public static string Concat (params object[] arguments) {
            throw new InvalidOperationException();
        }

        [JSReplacement("String($value)")]
        [JSIsPure]
        public static string Concat (object value) {
            throw new InvalidOperationException();
        }

        [JSReplacement("JSIL.ConcatString($a, $b)")]
        [JSIsPure]
        public static string Concat (object a, object b) {
            throw new InvalidOperationException();
        }

        [JSReplacement("JSIL.ConcatString($a, $b)")]
        [JSIsPure]
        public static string Concat (string a, string b) {
            throw new InvalidOperationException();
        }

        [JSReplacement("JSIL.ConcatString($a, $b, $c)")]
        [JSIsPure]
        public static string Concat (object a, object b, object c) {
            throw new InvalidOperationException();
        }

        [JSReplacement("($a + $b + $c)")]
        [JSIsPure]
        public static string Concat (string a, string b, string c) {
            throw new InvalidOperationException();
        }

        [JSReplacement("JSIL.ConcatString($a, $b, $c, $d)")]
        [JSIsPure]
        public static string Concat (object a, object b, object c, object d) {
            throw new InvalidOperationException();
        }

        [JSReplacement("($a + $b + $c + $d)")]
        [JSIsPure]
        public static string Concat (string a, string b, string c, string d) {
            throw new InvalidOperationException();
        }

        [JSReplacement("$lhs + $ch")]
        [JSIsPure]
        public static string Concat (string lhs, char ch) {
            throw new InvalidOperationException();
        }

        [JSIsPure]
        [JSReplacement("JSIL.SplitString($this, $dividers)")]
        public abstract string[] Split (AnyType[] dividers);

        [JSIsPure]
        [JSReplacement("JSIL.SplitString($this, $dividers, $options)")]
        public abstract string[] Split (AnyType[] dividers, StringSplitOptions options);

        [JSIsPure]
        [JSReplacement("JSIL.JoinEnumerable($separator, $values)")]
        public abstract string Join<T> (string separator, IEnumerable<T> values);

        [JSIsPure]
        [JSReplacement("JSIL.JoinStrings($separator, $values)")]
        public abstract string Join (string separator, params string[] values);

        [JSChangeName("length")]
        [JSAlwaysAccessAsProperty]
        [JSNeverReplace]<commit_msg>Fix the proxies for String.Join<commit_after>﻿#pragma warning disable 0660
#pragma warning disable 0661

using System;
using System.Collections.Generic;
using JSIL.Meta;
using JSIL.Proxy;

namespace JSIL.Proxies {
    [JSProxy(
        typeof(String),
        JSProxyMemberPolicy.ReplaceDeclared
    )]
    public abstract class StringProxy {
        [JSExternal]
        [JSRuntimeDispatch]
        [JSIsPure]
        public static string Format (params AnyType[] arguments) {
            throw new InvalidOperationException();
        }

        [JSReplacement("JSIL.ConcatString.apply(null, $arguments)")]
        [JSIsPure]
        public static string Concat (params string[] arguments) {
            throw new InvalidOperationException();
        }

        [JSReplacement("JSIL.ConcatString.apply(null, $arguments)")]
        [JSIsPure]
        public static string Concat (params object[] arguments) {
            throw new InvalidOperationException();
        }

        [JSReplacement("String($value)")]
        [JSIsPure]
        public static string Concat (object value) {
            throw new InvalidOperationException();
        }

        [JSReplacement("JSIL.ConcatString($a, $b)")]
        [JSIsPure]
        public static string Concat (object a, object b) {
            throw new InvalidOperationException();
        }

        [JSReplacement("JSIL.ConcatString($a, $b)")]
        [JSIsPure]
        public static string Concat (string a, string b) {
            throw new InvalidOperationException();
        }

        [JSReplacement("JSIL.ConcatString($a, $b, $c)")]
        [JSIsPure]
        public static string Concat (object a, object b, object c) {
            throw new InvalidOperationException();
        }

        [JSReplacement("($a + $b + $c)")]
        [JSIsPure]
        public static string Concat (string a, string b, string c) {
            throw new InvalidOperationException();
        }

        [JSReplacement("JSIL.ConcatString($a, $b, $c, $d)")]
        [JSIsPure]
        public static string Concat (object a, object b, object c, object d) {
            throw new InvalidOperationException();
        }

        [JSReplacement("($a + $b + $c + $d)")]
        [JSIsPure]
        public static string Concat (string a, string b, string c, string d) {
            throw new InvalidOperationException();
        }

        [JSReplacement("$lhs + $ch")]
        [JSIsPure]
        public static string Concat (string lhs, char ch) {
            throw new InvalidOperationException();
        }

        [JSIsPure]
        [JSReplacement("JSIL.SplitString($this, $dividers)")]
        public abstract string[] Split (AnyType[] dividers);

        [JSIsPure]
        [JSReplacement("JSIL.SplitString($this, $dividers, $options)")]
        public abstract string[] Split (AnyType[] dividers, StringSplitOptions options);

        [JSIsPure]
        [JSReplacement("JSIL.JoinEnumerable($separator, $values)")]
        public static string Join<T> (string separator, IEnumerable<T> values) {
            throw new NotImplementedException();
        }

        [JSIsPure]
        [JSReplacement("JSIL.JoinStrings($separator, $values)")]
        public static string Join (string separator, params string[] values) {
            throw new NotImplementedException();
        }

        [JSChangeName("length")]
        [JSAlwaysAccessAsProperty]
        [JSNeverReplace]
{'fraction_non_alphanumeric': 0.11152694610778444, 'fraction_numerical': 0.0023952095808383233, 'mean_word_length': 2.440267765190525, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '869096', 'n_tokens_mistral': 1880, 'n_tokens_neox': 1826, 'n_words': 485}