diff --git a/src/error/GraphQLError.js b/src/error/GraphQLError.js index 3040787939..670bef58be 100644 --- a/src/error/GraphQLError.js +++ b/src/error/GraphQLError.js @@ -2,7 +2,6 @@ // flowlint uninitialized-instance-property:off import isObjectLike from '../jsutils/isObjectLike'; -import { SYMBOL_TO_STRING_TAG } from '../polyfills/symbols'; import type { ASTNode } from '../language/ast'; import type { Source } from '../language/source'; @@ -213,7 +212,7 @@ export class GraphQLError extends Error { // FIXME: workaround to not break chai comparisons, should be remove in v16 // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet - get [SYMBOL_TO_STRING_TAG](): string { + get [Symbol.toStringTag](): string { return 'Object'; } } diff --git a/src/jsutils/isAsyncIterable.js b/src/jsutils/isAsyncIterable.js index 813da5770a..604f9e446e 100644 --- a/src/jsutils/isAsyncIterable.js +++ b/src/jsutils/isAsyncIterable.js @@ -1,5 +1,3 @@ -import { SYMBOL_ASYNC_ITERATOR } from '../polyfills/symbols'; - /** * Returns true if the provided object implements the AsyncIterator protocol via * either implementing a `Symbol.asyncIterator` or `"@@asyncIterator"` method. @@ -9,5 +7,5 @@ declare function isAsyncIterable(value: mixed): boolean %checks(value instanceof // eslint-disable-next-line no-redeclare export default function isAsyncIterable(maybeAsyncIterable) { - return typeof maybeAsyncIterable?.[SYMBOL_ASYNC_ITERATOR] === 'function'; + return typeof maybeAsyncIterable?.[Symbol.asyncIterator] === 'function'; } diff --git a/src/jsutils/isCollection.js b/src/jsutils/isCollection.js index a1d2b0ace0..b120bda73d 100644 --- a/src/jsutils/isCollection.js +++ b/src/jsutils/isCollection.js @@ -1,5 +1,3 @@ -import { SYMBOL_ITERATOR } from '../polyfills/symbols'; - /** * Returns true if the provided object is an Object (i.e. not a string literal) * and is either Iterable or Array-like. @@ -37,5 +35,5 @@ export default function isCollection(obj) { } // Is Iterable? - return typeof obj[SYMBOL_ITERATOR] === 'function'; + return typeof obj[Symbol.iterator] === 'function'; } diff --git a/src/language/source.js b/src/language/source.js index a7181f4df7..ae08ee8e9a 100644 --- a/src/language/source.js +++ b/src/language/source.js @@ -1,5 +1,3 @@ -import { SYMBOL_TO_STRING_TAG } from '../polyfills/symbols'; - import inspect from '../jsutils/inspect'; import devAssert from '../jsutils/devAssert'; import instanceOf from '../jsutils/instanceOf'; @@ -45,7 +43,7 @@ export class Source { } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet - get [SYMBOL_TO_STRING_TAG]() { + get [Symbol.toStringTag]() { return 'Source'; } } diff --git a/src/polyfills/symbols.js b/src/polyfills/symbols.js deleted file mode 100644 index e13d8b4f3a..0000000000 --- a/src/polyfills/symbols.js +++ /dev/null @@ -1,19 +0,0 @@ -// In ES2015 (or a polyfilled) environment, this will be Symbol.iterator -// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317') -export const SYMBOL_ITERATOR: string = - typeof Symbol === 'function' && Symbol.iterator != null - ? Symbol.iterator - : '@@iterator'; - -// In ES2017 (or a polyfilled) environment, this will be Symbol.asyncIterator -// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317') -export const SYMBOL_ASYNC_ITERATOR: string = - typeof Symbol === 'function' && Symbol.asyncIterator != null - ? Symbol.asyncIterator - : '@@asyncIterator'; - -// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317') -export const SYMBOL_TO_STRING_TAG: string = - typeof Symbol === 'function' && Symbol.toStringTag != null - ? Symbol.toStringTag - : '@@toStringTag'; diff --git a/src/subscription/mapAsyncIterator.js b/src/subscription/mapAsyncIterator.js index 8ab691d391..5a64de54f1 100644 --- a/src/subscription/mapAsyncIterator.js +++ b/src/subscription/mapAsyncIterator.js @@ -1,5 +1,3 @@ -import { SYMBOL_ASYNC_ITERATOR } from '../polyfills/symbols'; - import type { PromiseOrValue } from '../jsutils/PromiseOrValue'; /** @@ -12,7 +10,7 @@ export default function mapAsyncIterator( rejectCallback?: (any) => PromiseOrValue, ): AsyncGenerator { // $FlowFixMe[prop-missing] - const iteratorMethod = iterable[SYMBOL_ASYNC_ITERATOR]; + const iteratorMethod = iterable[Symbol.asyncIterator]; const iterator: any = iteratorMethod.call(iterable); let $return: any; let abruptClose; @@ -55,7 +53,7 @@ export default function mapAsyncIterator( } return Promise.reject(error).catch(abruptClose); }, - [SYMBOL_ASYNC_ITERATOR]() { + [Symbol.asyncIterator]() { return this; }, }: $FlowFixMe); diff --git a/src/type/definition.js b/src/type/definition.js index 6ffaa4f906..f68a2efebb 100644 --- a/src/type/definition.js +++ b/src/type/definition.js @@ -1,5 +1,4 @@ import objectEntries from '../polyfills/objectEntries'; -import { SYMBOL_TO_STRING_TAG } from '../polyfills/symbols'; import type { Path } from '../jsutils/Path'; import type { PromiseOrValue } from '../jsutils/PromiseOrValue'; @@ -366,7 +365,7 @@ export class GraphQLList<+T: GraphQLType> { } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet - get [SYMBOL_TO_STRING_TAG]() { + get [Symbol.toStringTag]() { return 'GraphQLList'; } } @@ -415,7 +414,7 @@ export class GraphQLNonNull<+T: GraphQLNullableType> { } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet - get [SYMBOL_TO_STRING_TAG]() { + get [Symbol.toStringTag]() { return 'GraphQLNonNull'; } } @@ -627,7 +626,7 @@ export class GraphQLScalarType { } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet - get [SYMBOL_TO_STRING_TAG]() { + get [Symbol.toStringTag]() { return 'GraphQLScalarType'; } } @@ -774,7 +773,7 @@ export class GraphQLObjectType { } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet - get [SYMBOL_TO_STRING_TAG]() { + get [Symbol.toStringTag]() { return 'GraphQLObjectType'; } } @@ -1094,7 +1093,7 @@ export class GraphQLInterfaceType { } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet - get [SYMBOL_TO_STRING_TAG]() { + get [Symbol.toStringTag]() { return 'GraphQLInterfaceType'; } } @@ -1204,7 +1203,7 @@ export class GraphQLUnionType { } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet - get [SYMBOL_TO_STRING_TAG]() { + get [Symbol.toStringTag]() { return 'GraphQLUnionType'; } } @@ -1385,7 +1384,7 @@ export class GraphQLEnumType /* */ { } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet - get [SYMBOL_TO_STRING_TAG]() { + get [Symbol.toStringTag]() { return 'GraphQLEnumType'; } } @@ -1537,7 +1536,7 @@ export class GraphQLInputObjectType { } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet - get [SYMBOL_TO_STRING_TAG]() { + get [Symbol.toStringTag]() { return 'GraphQLInputObjectType'; } } diff --git a/src/type/directives.js b/src/type/directives.js index d35069f691..cb26388caf 100644 --- a/src/type/directives.js +++ b/src/type/directives.js @@ -1,5 +1,4 @@ import objectEntries from '../polyfills/objectEntries'; -import { SYMBOL_TO_STRING_TAG } from '../polyfills/symbols'; import type { ReadOnlyObjMap, ReadOnlyObjMapLike } from '../jsutils/ObjMap'; import inspect from '../jsutils/inspect'; @@ -105,7 +104,7 @@ export class GraphQLDirective { } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet - get [SYMBOL_TO_STRING_TAG]() { + get [Symbol.toStringTag]() { return 'GraphQLDirective'; } } diff --git a/src/type/schema.js b/src/type/schema.js index e20e769077..efb66462c9 100644 --- a/src/type/schema.js +++ b/src/type/schema.js @@ -1,5 +1,4 @@ import objectValues from '../polyfills/objectValues'; -import { SYMBOL_TO_STRING_TAG } from '../polyfills/symbols'; import type { ObjMap, @@ -346,7 +345,7 @@ export class GraphQLSchema { } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet - get [SYMBOL_TO_STRING_TAG]() { + get [Symbol.toStringTag]() { return 'GraphQLSchema'; } }