Version 1
[yaffs-website] / node_modules / core-js / modules / es6.regexp.to-string.js
1 'use strict';
2 require('./es6.regexp.flags');
3 var anObject    = require('./_an-object')
4   , $flags      = require('./_flags')
5   , DESCRIPTORS = require('./_descriptors')
6   , TO_STRING   = 'toString'
7   , $toString   = /./[TO_STRING];
8
9 var define = function(fn){
10   require('./_redefine')(RegExp.prototype, TO_STRING, fn, true);
11 };
12
13 // 21.2.5.14 RegExp.prototype.toString()
14 if(require('./_fails')(function(){ return $toString.call({source: 'a', flags: 'b'}) != '/a/b'; })){
15   define(function toString(){
16     var R = anObject(this);
17     return '/'.concat(R.source, '/',
18       'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);
19   });
20 // FF44- RegExp#toString has a wrong name
21 } else if($toString.name != TO_STRING){
22   define(function toString(){
23     return $toString.call(this);
24   });
25 }