'use strict';

module.exports = function () {
	var symbol;
	if (typeof Symbol !== 'function') return false;
	symbol = Symbol('test symbol');
	try { String(symbol); } catch (e) { return false; }
	if ((typeof Symbol.iterator === 'symbol') &&
			(typeof Symbol.toPrimitive === 'symbol') &&
			(typeof Symbol.toStringTag === 'symbol')) {
		return true;
	}

	// Return 'true' for polyfills
	if (typeof Symbol.isConcatSpreadable !== 'object') return false;
	if (typeof Symbol.iterator !== 'object') return false;
	if (typeof Symbol.toPrimitive !== 'object') return false;
	if (typeof Symbol.toStringTag !== 'object') return false;
	if (typeof Symbol.unscopables !== 'object') return false;

	return true;
};

@@ -8,16 +8,66 @@
 rict';%0A%0A
+var validTypes = %7B object: true, symbol: true %7D;%0A%0A
 module.e
@@ -429,24 +429,36 @@
 yfills%0A%09if (
+!validTypes%5B
 typeof Symbo
@@ -477,29 +477,17 @@
 readable
- !== 'object'
+%5D
 ) return
@@ -491,32 +491,44 @@
 urn false;%0A%09if (
+!validTypes%5B
 typeof Symbol.it
@@ -533,29 +533,17 @@
 iterator
- !== 'object'
+%5D
 ) return
@@ -547,32 +547,44 @@
 urn false;%0A%09if (
+!validTypes%5B
 typeof Symbol.to
@@ -592,29 +592,17 @@
 rimitive
- !== 'object'
+%5D
 ) return
@@ -606,32 +606,44 @@
 urn false;%0A%09if (
+!validTypes%5B
 typeof Symbol.to
@@ -651,29 +651,17 @@
 tringTag
- !== 'object'
+%5D
 ) return
@@ -669,24 +669,36 @@
 false;%0A%09if (
+!validTypes%5B
 typeof Symbo
@@ -714,21 +714,9 @@
 bles
- !== 'object'
+%5D
 ) re

Fix isImplemented