old_contents: 'use strict';
  
  var implementation = require('./implementation');
  
  var supportsDescriptors = require('define-properties').supportsDescriptors;
  var gOPD = Object.getOwnPropertyDescriptor;
  var TypeErr = TypeError;
  
  module.exports = function getPolyfill() {
  	if (!supportsDescriptors) {
  		throw new TypeErr('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');
  	}
  	if (/a/mig.flags === 'gim') {
  		return gOPD(RegExp.prototype, 'flags').get;
  	}
  	return implementation;
  };
  
new_contents: 'use strict';
  
  var implementation = require('./implementation');
  
  var supportsDescriptors = require('define-properties').supportsDescriptors;
  var gOPD = Object.getOwnPropertyDescriptor;
  var TypeErr = TypeError;
  
  module.exports = function getPolyfill() {
  	if (!supportsDescriptors) {
  		throw new TypeErr('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');
  	}
  	if (/a/mig.flags === 'gim') {
  		var descriptor = gOPD(RegExp.prototype, 'flags');
  		if (descriptor && typeof descriptor.get === 'function') {
  			return descriptor.get;
  		}
  	}
  	return implementation;
  };
  
subject: cover the case where there is no descriptor on the prototype