blob: 7ff60277cb98c40fd05875fc1582a003e2b627fe [file] [log] [blame]
'use strict';
require('./es6.regexp.flags');
var anObject = require('./_an-object')
, $flags = require('./_flags')
, DESCRIPTORS = require('./_descriptors')
, TO_STRING = 'toString'
, $toString = /./[TO_STRING];
var define = function(fn){
require('./_redefine')(RegExp.prototype, TO_STRING, fn, true);
};
// 21.2.5.14 RegExp.prototype.toString()
if(require('./_fails')(function(){ return $toString.call({source: 'a', flags: 'b'}) != '/a/b'; })){
define(function toString(){
var R = anObject(this);
return '/'.concat(R.source, '/',
'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);
});
// FF44- RegExp#toString has a wrong name
} else if($toString.name != TO_STRING){
define(function toString(){
return $toString.call(this);
});
}