13af6ab5fSopenharmony_ci#  Usage of standard library is restricted
23af6ab5fSopenharmony_ci
33af6ab5fSopenharmony_ciRule ``arkts-limited-stdlib``
43af6ab5fSopenharmony_ci
53af6ab5fSopenharmony_ci**Severity: error**
63af6ab5fSopenharmony_ci
73af6ab5fSopenharmony_ciArkTS does not allow using some APIs from the TypeScript/JavaScript standard library.
83af6ab5fSopenharmony_ciThe most part of the restricted APIs relates to manipulating objects in a
93af6ab5fSopenharmony_cidynamic manner, which is not compatible with static typing. The usage of
103af6ab5fSopenharmony_cithe following APIs is prohibited:
113af6ab5fSopenharmony_ci
123af6ab5fSopenharmony_ciProperties and functions of the global object: ``eval``
133af6ab5fSopenharmony_ci
143af6ab5fSopenharmony_ci``Object``: ``__proto__``, ``__defineGetter__``, ``__defineSetter__``,
153af6ab5fSopenharmony_ci``__lookupGetter__``, ``__lookupSetter__``, ``assign``, ``create``,
163af6ab5fSopenharmony_ci``defineProperties``, ``defineProperty``, ``freeze``,
173af6ab5fSopenharmony_ci``fromEntries``, ``getOwnPropertyDescriptor``, ``getOwnPropertyDescriptors``,
183af6ab5fSopenharmony_ci``getOwnPropertySymbols``, ``getPrototypeOf``,
193af6ab5fSopenharmony_ci``hasOwnProperty``, ``is``, ``isExtensible``, ``isFrozen``,
203af6ab5fSopenharmony_ci``isPrototypeOf``, ``isSealed``, ``preventExtensions``,
213af6ab5fSopenharmony_ci``propertyIsEnumerable``, ``seal``, ``setPrototypeOf``
223af6ab5fSopenharmony_ci
233af6ab5fSopenharmony_ci``Reflect``: ``apply``, ``construct``, ``defineProperty``, ``deleteProperty``,
243af6ab5fSopenharmony_ci``getOwnPropertyDescriptor``, ``getPrototypeOf``, ``isExtensible``,
253af6ab5fSopenharmony_ci``preventExtensions``, ``setPrototypeOf``
263af6ab5fSopenharmony_ci
273af6ab5fSopenharmony_ci``Proxy``: ``handler.apply()``, ``handler.construct()``,
283af6ab5fSopenharmony_ci``handler.defineProperty()``, ``handler.deleteProperty()``, ``handler.get()``,
293af6ab5fSopenharmony_ci``handler.getOwnPropertyDescriptor()``, ``handler.getPrototypeOf()``,
303af6ab5fSopenharmony_ci``handler.has()``, ``handler.isExtensible()``, ``handler.ownKeys()``,
313af6ab5fSopenharmony_ci``handler.preventExtensions()``, ``handler.set()``, ``handler.setPrototypeOf()``
323af6ab5fSopenharmony_ci
333af6ab5fSopenharmony_ci
343af6ab5fSopenharmony_ci## See also
353af6ab5fSopenharmony_ci
363af6ab5fSopenharmony_ci- Recipe 001:  Objects with property names that are not identifiers are not supported (``arkts-identifiers-as-prop-names``)
373af6ab5fSopenharmony_ci- Recipe 002:  ``Symbol()`` API is not supported (``arkts-no-symbol``)
383af6ab5fSopenharmony_ci- Recipe 029:  Indexed access is not supported for fields (``arkts-no-props-by-index``)
393af6ab5fSopenharmony_ci- Recipe 060:  ``typeof`` operator is allowed only in expression contexts (``arkts-no-type-query``)
403af6ab5fSopenharmony_ci- Recipe 066:  ``in`` operator is not supported (``arkts-no-in``)
413af6ab5fSopenharmony_ci- Recipe 137:  ``globalThis`` is not supported (``arkts-no-globalthis``)
423af6ab5fSopenharmony_ci
433af6ab5fSopenharmony_ci
44