<commit_before>import Vue from 'vue'
import { mergeData } from 'vue-functional-data-merge'

// --- Constants ---
const COMPONENT_UID_KEY = '_uid'

const isVue3 = Vue.version.startsWith('3')

export const REF_FOR_KEY = isVue3 ? 'ref_for' : 'refInFor'

const ALLOWED_FIELDS_IN_DATA = [
  'class',
  'staticClass',
  'style',
  'attrs',
  'props',
  'domProps',
  'on',
  'nativeOn',
  'directives',
  'scopedSlots',
  'slot',
  'key',
  'ref',
  'refInFor'
]

let extend = Vue.extend.bind(Vue)

if (isVue3) {
  const { extend: originalExtend } = Vue
  const KNOWN_COMPONENTS = ['router-link', 'transition']
  const originalVModelDynamicCreated = Vue.vModelDynamic.created
  const originalVModelDynamicBeforeUpdate = Vue.vModelDynamic.beforeUpdate

  // See https://github.com/vuejs/vue-next/pull/4121 for details
  Vue.vModelDynamic.created = function(el, binding, vnode) {
    originalVModelDynamicCreated.call(this, el, binding, vnode)
    if (!el._assign) {
      el._assign = () => {}
    }
  }
  Vue.vModelDynamic.beforeUpdate = function(el, binding, vnode) {
    originalVModelDynamicBeforeUpdate.call(this, el, binding, vnode)
    if (!el._assign) {
      el._assign = () => {}
    }
  }
  extend = function patchedBootstrapVueExtend(definition) {
    if (typeof definition === 'object' && definition.render && !definition.__alreadyPatched) {
      const originalRender = definition.render
      definition.__alreadyPatched = true
      definition.render = function(h) {
        const patchedH = function(tag, dataObjOrChildren, rawSlots) {
          const slots =
            rawSlots === undefined
              ? []
              : [Array.isArray(rawSlots) ? rawSlots.filter(Boolean) : rawSlots]

          const isTag = typeof tag === 'string' && !KNOWN_COMPONENTS.includes(tag)
          const isSecondArgumentDataObject =
            dataObjOrChildren &&
            typeof dataObjOrChildren === 'object' &&<commit_msg>Add transition-group to known components<commit_after>import Vue from 'vue'
import { mergeData } from 'vue-functional-data-merge'

// --- Constants ---
const COMPONENT_UID_KEY = '_uid'

const isVue3 = Vue.version.startsWith('3')

export const REF_FOR_KEY = isVue3 ? 'ref_for' : 'refInFor'

const ALLOWED_FIELDS_IN_DATA = [
  'class',
  'staticClass',
  'style',
  'attrs',
  'props',
  'domProps',
  'on',
  'nativeOn',
  'directives',
  'scopedSlots',
  'slot',
  'key',
  'ref',
  'refInFor'
]

let extend = Vue.extend.bind(Vue)

if (isVue3) {
  const { extend: originalExtend } = Vue
  const KNOWN_COMPONENTS = ['router-link', 'transition', 'transition-group']
  const originalVModelDynamicCreated = Vue.vModelDynamic.created
  const originalVModelDynamicBeforeUpdate = Vue.vModelDynamic.beforeUpdate

  // See https://github.com/vuejs/vue-next/pull/4121 for details
  Vue.vModelDynamic.created = function(el, binding, vnode) {
    originalVModelDynamicCreated.call(this, el, binding, vnode)
    if (!el._assign) {
      el._assign = () => {}
    }
  }
  Vue.vModelDynamic.beforeUpdate = function(el, binding, vnode) {
    originalVModelDynamicBeforeUpdate.call(this, el, binding, vnode)
    if (!el._assign) {
      el._assign = () => {}
    }
  }
  extend = function patchedBootstrapVueExtend(definition) {
    if (typeof definition === 'object' && definition.render && !definition.__alreadyPatched) {
      const originalRender = definition.render
      definition.__alreadyPatched = true
      definition.render = function(h) {
        const patchedH = function(tag, dataObjOrChildren, rawSlots) {
          const slots =
            rawSlots === undefined
              ? []
              : [Array.isArray(rawSlots) ? rawSlots.filter(Boolean) : rawSlots]

          const isTag = typeof tag === 'string' && !KNOWN_COMPONENTS.includes(tag)
          const isSecondArgumentDataObject =
            dataObjOrChildren &&
            typeof dataObjOrChildren === 'object' &&
{'fraction_non_alphanumeric': 0.1297670847197338, 'fraction_numerical': 0.004095213718965958, 'mean_word_length': 3.2945054945054943, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 7, 'https://': 2, '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': '1239518', 'n_tokens_mistral': 1276, 'n_tokens_neox': 1263, 'n_words': 249}