Add Object values helper method to fix IE (#3005)

This commit is contained in:
Sam El-Husseini
2019-09-11 17:44:41 -07:00
committed by GitHub
parent 8ab51c8639
commit fb74181589
2 changed files with 18 additions and 2 deletions

View File

@@ -28,6 +28,7 @@
goog.provide('Blockly.user.keyMap');
goog.require('Blockly.utils.KeyCodes');
goog.require('Blockly.utils.object');
/**
@@ -118,7 +119,7 @@ Blockly.user.keyMap.getKeyByAction = function(action) {
* @return {!string} A string containing the serialized key event.
*/
Blockly.user.keyMap.serializeKeyEvent = function(e) {
var modifiers = Object.values(Blockly.user.keyMap.modifierKeys);
var modifiers = Blockly.utils.object.values(Blockly.user.keyMap.modifierKeys);
var key = '';
for (var i = 0, keyName; keyName = modifiers[i]; i++) {
if (e.getModifierState(keyName)) {
@@ -138,7 +139,7 @@ Blockly.user.keyMap.serializeKeyEvent = function(e) {
*/
Blockly.user.keyMap.createSerializedKey = function(keyCode, modifiers) {
var key = '';
var validModifiers = Object.values(Blockly.user.keyMap.modifierKeys);
var validModifiers = Blockly.utils.object.values(Blockly.user.keyMap.modifierKeys);
for (var i = 0, keyName; keyName = modifiers[i]; i++) {
if (validModifiers.indexOf(keyName) > -1) {
key += keyName;

View File

@@ -50,3 +50,18 @@ Blockly.utils.object.mixin = function(target, source) {
target[x] = source[x];
}
};
/**
* Returns an array of a given object's own enumerable property values.
* @param {!Object} obj Object containing values.
* @return {!Array} Array of values.
*/
Blockly.utils.object.values = function(obj) {
if (Object.values) {
return Object.values(obj);
}
// Fallback for IE.
return Object.keys(obj).map(function(e) {
return obj[e];
});
};