26 lines
		
	
	
		
			826 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			826 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
'use strict';
 | 
						|
require('./es6.regexp.flags');
 | 
						|
var anObject = require('./_an-object');
 | 
						|
var $flags = require('./_flags');
 | 
						|
var DESCRIPTORS = require('./_descriptors');
 | 
						|
var TO_STRING = 'toString';
 | 
						|
var $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);
 | 
						|
  });
 | 
						|
}
 |