mirror of https://github.com/nodejs/node.git
tools: enable no-proto rule for linter
Enable `no-proto` in `.eslintrc`. Use `Object.setPrototypeOf()` and `Object.getPrototypeOf()` instead of. PR-URL: https://github.com/nodejs/node/pull/5140 Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com> Reviewed-By: Roman Reiss <me@silverwind.io> Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
parent
826844e27e
commit
cc195bf37b
|
@ -17,6 +17,8 @@ ecmaFeatures:
|
|||
rules:
|
||||
# Possible Errors
|
||||
# list: https://github.com/eslint/eslint/tree/master/docs/rules#possible-errors
|
||||
## Disallow Use of __proto__
|
||||
no-proto: 2
|
||||
## disallow control characters in regular expressions
|
||||
no-control-regex: 2
|
||||
## check debugger sentence
|
||||
|
|
|
@ -190,7 +190,7 @@ exports.hasIPv6 = Object.keys(ifaces).some(function(name) {
|
|||
|
||||
function protoCtrChain(o) {
|
||||
var result = [];
|
||||
for (; o; o = o.__proto__) { result.push(o.constructor); }
|
||||
for (; o; o = Object.getPrototypeOf(o)) { result.push(o.constructor); }
|
||||
return result.join();
|
||||
}
|
||||
|
||||
|
|
|
@ -40,8 +40,8 @@ assert.equal(dv.getFloat64(8, true), 3.1415);
|
|||
|
||||
assert.throws(function() {
|
||||
function AB() { }
|
||||
AB.__proto__ = ArrayBuffer;
|
||||
AB.prototype.__proto__ = ArrayBuffer.prototype;
|
||||
Object.setPrototypeOf(AB, ArrayBuffer);
|
||||
Object.setPrototypeOf(AB.prototype, ArrayBuffer.prototype);
|
||||
new Buffer(new AB());
|
||||
}, TypeError);
|
||||
|
||||
|
|
|
@ -5,8 +5,8 @@ const assert = require('assert');
|
|||
const Buffer = require('buffer').Buffer;
|
||||
|
||||
function FakeBuffer() { }
|
||||
FakeBuffer.__proto__ = Buffer;
|
||||
FakeBuffer.prototype.__proto__ = Buffer.prototype;
|
||||
Object.setPrototypeOf(FakeBuffer, Buffer);
|
||||
Object.setPrototypeOf(FakeBuffer.prototype, Buffer.prototype);
|
||||
|
||||
const fb = new FakeBuffer();
|
||||
|
||||
|
|
|
@ -24,8 +24,9 @@ const vals = [new T(4), T(4)];
|
|||
|
||||
vals.forEach(function(t) {
|
||||
assert.equal(t.constructor, T);
|
||||
assert.equal(t.__proto__, T.prototype);
|
||||
assert.equal(t.__proto__.__proto__, Buffer.prototype);
|
||||
assert.equal(Object.getPrototypeOf(t), T.prototype);
|
||||
assert.equal(Object.getPrototypeOf(Object.getPrototypeOf(t)),
|
||||
Buffer.prototype);
|
||||
|
||||
t.fill(5);
|
||||
let cntr = 0;
|
||||
|
|
|
@ -7,9 +7,9 @@ var spawn = require('child_process').spawn;
|
|||
var env = {
|
||||
'HELLO': 'WORLD'
|
||||
};
|
||||
env.__proto__ = {
|
||||
Object.setPrototypeOf(env, {
|
||||
'FOO': 'BAR'
|
||||
};
|
||||
});
|
||||
|
||||
var child;
|
||||
if (common.isWindows) {
|
||||
|
|
Loading…
Reference in New Issue