/*! bxs-vue-ui v3.3.0 */
'use strict';

var entryVirtual = require('./entry-virtual.js');
var stringTrim = require('./string-trim.js');

var non = '\u200B\u0085\u180E';

// check that a method works with the correct list
// of whitespaces and has a correct name
var forcedStringTrimMethod = function (METHOD_NAME) {
  return entryVirtual.fails(function () {
    return !!stringTrim.whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || stringTrim.whitespaces[METHOD_NAME].name !== METHOD_NAME;
  });
};

var $trim = stringTrim.require$$0.trim;


// `String.prototype.trim` method
// https://tc39.github.io/ecma262/#sec-string.prototype.trim
entryVirtual.$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {
  trim: function trim() {
    return $trim(this);
  }
});

var trim = entryVirtual.entryVirtual('String').trim;

var StringPrototype = String.prototype;

var trim_1 = function (it) {
  var own = it.trim;
  return typeof it === 'string' || it === StringPrototype
    || (it instanceof String && own === StringPrototype.trim) ? trim : own;
};

var trim$1 = trim_1;

var trim$2 = trim$1;

exports._trimInstanceProperty = trim$2;
