FIX: prevents errors on /tags when a tag constructor exists (#10449)

This is due to js objects having a constructor property:

```
const obj = {};
obj['constructor'] // return [native code] and not undefined
```
This commit is contained in:
Joffrey JAFFEUX 2020-08-17 17:40:34 +02:00 committed by GitHub
parent ef9af004f7
commit 6d0eb7178d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 4 deletions

View File

@ -25,21 +25,21 @@ function storeMap(type, id, obj) {
function fromMap(type, id) { function fromMap(type, id) {
const byType = _identityMap[type]; const byType = _identityMap[type];
if (byType) { if (byType && byType.hasOwnProperty(id)) {
return byType[id]; return byType[id];
} }
} }
function removeMap(type, id) { function removeMap(type, id) {
const byType = _identityMap[type]; const byType = _identityMap[type];
if (byType) { if (byType && byType.hasOwnProperty(id)) {
delete byType[id]; delete byType[id];
} }
} }
function findAndRemoveMap(type, id) { function findAndRemoveMap(type, id) {
const byType = _identityMap[type]; const byType = _identityMap[type];
if (byType) { if (byType && byType.hasOwnProperty(id)) {
const result = byType[id]; const result = byType[id];
delete byType[id]; delete byType[id];
return result; return result;

View File

@ -5,7 +5,8 @@ class Tag < ActiveRecord::Base
include HasDestroyedWebHook include HasDestroyedWebHook
RESERVED_TAGS = [ RESERVED_TAGS = [
'none' 'none',
'constructor' # prevents issues with javascript's constructor of objects
] ]
validates :name, validates :name,