Skip to content

Commit

Permalink
make sure using .set throws a warning with the property name
Browse files Browse the repository at this point in the history
  • Loading branch information
justinbmeyer committed Jan 4, 2018
1 parent a322c22 commit 46bcb95
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 0 deletions.
4 changes: 4 additions & 0 deletions define-helpers/define-helpers.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ var queues = require("can-queues");


var defineHelpers = {
// returns `true` if the value was defined and set
defineExpando: function(map, prop, value) {
// first check if it's already a constructor define
var constructorDefines = map._define.definitions;
Expand All @@ -13,6 +14,9 @@ var defineHelpers = {
// next if it's already on this instances
var instanceDefines = map._instanceDefinitions;
if(!instanceDefines) {
if(Object.isSealed(map)) {
return;
}
Object.defineProperty(map, "_instanceDefinitions", {
configurable: true,
enumerable: false,
Expand Down
12 changes: 12 additions & 0 deletions map/map-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -1125,3 +1125,15 @@ QUnit.test("async getters derived from other properties should have correct keyD
vm.on('derived', function(){});
QUnit.ok(vm._computed.derived.compute.observation.newDependencies.keyDependencies.get(vm).has('source'), 'getter should depend on vm.source');
});

QUnit.test("setting a property gives a nice error", function(){
"use strict;"
var VM = DefineMap.extend({});
var vm = new VM();

try {
vm.set("fooxyz","bar");
} catch(e) {
QUnit.ok( e.message.indexOf("fooxyz") >= 0, "talks about the right property being set");
}
});
1 change: 1 addition & 0 deletions map/map.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
"use strict";
var Construct = require("can-construct");
var define = require("can-define");
var defineHelpers = require("../define-helpers/define-helpers");
Expand Down

0 comments on commit 46bcb95

Please sign in to comment.