Skip to content
← Back to rules

eslint/no-proto Restriction

🚧 An auto-fix is planned for this rule, but not implemented at this time.

What it does ​

Disallow the use of the __proto__ property.

Why is this bad? ​

The __proto__ property has been deprecated as of ECMAScript 3.1 and shouldn’t be used in new code. Use Object.getPrototypeOf and Object.setPrototypeOf instead.

For more information, see the MDN documentation.

Examples ​

Examples of incorrect code for this rule:

javascript
var a = obj.__proto__;

var a = obj["__proto__"];

obj.__proto__ = b;

obj["__proto__"] = b;

How to use ​

To enable this rule using the config file or in the CLI, you can use:

json
{
  "rules": {
    "no-proto": "error"
  }
}
ts
import { defineConfig } from "oxlint";

export default defineConfig({
  rules: {
    "no-proto": "error",
  },
});
bash
oxlint --deny no-proto

Version ​

This rule was added in v0.2.14.

References ​