Deprecated and obsolete features
================================

Esta página lista funcionalidades do JavaScript que foram descontinuadas (ou seja, continuam disponíveis mas têm remoção planejada) e obsoletas (ou seja, não estão mais disponíveis).

*Funcionalidades* descontinuadas
--------------------------------

Estas *features* descontinuadas ainda podem ser usadas, mas com cautela, porque espera-se que sejam removidas por completo no futuro. Aconselha-se que remova-as do seu código.

### Propriedades RegExp

As propriedades a seguir foram descontinuadas. Isto não afeta o uso delas em replacement strings:

| Propriedade | Descrição |
| --- | --- |
| `$1-$9` (en-US) | Encontra *substrings* dentro de parênteses. **Atenção:** Usar estas propriedades pode resultar em problemas, porque extensões do navegador podem modifica-las. Evite-as! |
| `$_` (en-US) | Ver `input`. |
| `$*` (en-US) | Ver `multiline`. |
| `$&` (en-US) | Ver `lastMatch`. |
| `$+` (en-US) | Ver `lastParen`. |
| `$`` (en-US) | Ver `leftContext`. |
| `$'` (en-US) | Ver `rightContext`. |
| `input` (en-US) | A string encontrada por uma expressão regular. |
| `lastMatch` (en-US) | Os últimos caracteres encontrados. |
| `lastParen` (en-US) | A última *substring* entre parênteses que foi encontrada. |
| `leftContext` (en-US) | A penúltima *substring* encontrada. |
| `rightContext` (en-US) | A *substring* que segue a que foi encontrada por último. |

As propriedades a seguir pertencem a instâncias de um `RegExp`, não mais ao objeto `RegExp`:

| Propriedades | Descrição |
| --- | --- |
| `global` (en-US) | Determina se deve ou não testar a expressão regular com todas as combinações possíveis em uma *string* ou só com a primeira. |
| `ignoreCase` | Determina se deve ou não ignorar a capitalização ao tentar encontrar uma combinação em uma *string*. |
| `lastIndex` (en-US) | O índince que aponta o começo da próxima combinação. |
| `multiline` (en-US) | Determina se deve ou não procurar por *strings* em várias linhas diferentes. |
| `source` (en-US) | O texto do padrão. |

### Métodos RegExp

* O método `compile()` foi descontinuado.
* O método `valueOf` não é mais especializado para `RegExp`. Use `Object.valueOf()`.
### Propriedades de Função

* As propriedades `caller` e `arguments` foram descontinuadas, porque elas estouram o chamador de funções. Ao invés da propriedade *arguments*, deve-se usar o objeto `arguments` dentro dos fechamentos da função.
### Legacy generator

* `Legacy generator function statement` (en-US) e `Legacy generator function expression` (en-US) foram descontinuados. No lugar deles, use `function* statement` e `function* expression`.
* O `JS1.7/JS1.8 Array comprehension` (en-US) e o `JS1.7/JS1.8 Generator comprehension` (en-US) foram descontinuados.
### Iterador

* `StopIteration` foi descontinuado.
* `Iterator` (en-US) foi descontinuado.
### Métodos de objeto

* `watch` e `unwatch` foram descontinuados. No lugar deles, use `Proxy` .
* `__iterator__` foi descontinuado.
* `Object.prototype.__noSuchMethod__` foi descontinuado. Use `Proxy` em seu lugar.
### Métodos de data

* `getYear` e `setYear` foram afetados pelo Bug do Milênio e foram reagrupados em `getFullYear` e `setFullYear`.
* Deve-se usar `toISOString` ao invés do método descontinuado `toGMTString` em códigos novos.
* `toLocaleFormat` foi descontinuado.
### Funções

* Expression closures foram descontinuadas. Use `functions` normais ou arrow functions no lugar delas.
### Proxy

* Proxy.create e Proxy.createFunction foram descontinuadas. Use `Proxy` no lugar delas.
* As armadilhas a seguir ficaram obsoletas:
    + `hasOwn` (Erro do Firefox 980565, Firefox 33).
    + `getEnumerablePropertyKeys` (Erro do Firefox 783829, Firefox 37)
    + `getOwnPropertyNames` (Erro do Firefox 1007334, Firefox 33)
    + `keys` (Erro do Firefox 1007334, Firefox 33)
### let

* `let blocks` e `let expressions` foram descontinuados.
### Sequências de escape

* Sequências de escape octais (\ seguido por um, dois ou três dígitos octais) foram descontinuadas em literais *string* e expressões regulares.
* As funções `escape` e `unescape` foram descontinuadas. Use `encodeURI`, `encodeURIComponent`, `decodeURI` ou `decodeURIComponent` para codificar e decodificar sequências de escape para caracteres especiais.
### Métodos de *string*

* HTML wrapper methods como `String.prototype.fontsize` e `String.prototype.big`.
* `String.prototype.quote` foi removido do Firefox 37.
* parâmetros flag não padrões em `String.prototype.search`, `String.prototype.match`, e `String.prototype.replace` foram depreciados.
*Features* obsoletas
--------------------

Estas *features* obsoletas foram totamente removidas do JavaScript e não podem ser usadas a partir da versão indicada do JavaScript.

### Object

* The `Object.prototype.__proto__` accessors are deprecated. Use `Object.getPrototypeOf` and `Object.setPrototypeOf` instead. This does not apply to the `__proto__` literal key in object literals.
* The `Object.prototype.__defineGetter__`, `Object.prototype.__defineSetter__`, `Object.prototype.__lookupGetter__`, and `Object.prototype.__lookupSetter__` methods are deprecated. Use `Object.getOwnPropertyDescriptor` and `Object.defineProperty` instead.
### Function

| Property | Description |
| --- | --- |
| `arity` | Number of formal arguments. |

### Array

| Property | Description |
| --- | --- |
| `Array.observe()` | Asynchronously observing changes to Arrays. |
| `Array.unobserve()` | Remove observers. |

### Number

* `Number.toInteger()`
### ParallelArray

* `ParallelArray`
### Statements

* `for each...in` is deprecated. Use `for...of` instead.
* Destructuring `for...in` is deprecated. Use `for...of` instead.
### E4X

See E4X for more information.

### Sharp variables

See Sharp variables in JavaScript for more information.