google / google/closure-compiler

JSC_INEXISTENT_PROPERTY if lends is used with object reference

Open
#747 9 comments 0 reactions 0 assignees View on GitHub
Types
Dominant language
JavaScript
Stars
7.7k
Forks
1.2k
Avg merge
2d 12h
Merged PRs (30d)
6

Description

If we use '@lends' with object definition it works but if we re-use this object reference at some other place in the code for 'lends' it does not work.

This will throw the warning: JSC_INEXISTENT_PROPERTY: Property getJerseyNumber never defined on player

var getDetails = {
getJerseyNumber: function() {
return Math.random();
}
};

function mixIn(source, delta) {
for (var i in delta) {
source[i] = delta[i];
}
}
var player = {
name: 'Tom',
sport: 'Football'
};

alert(player.sport);

mixIn(player, /*\* @lends {player} */ getDetails);

alert(player.getJerseyNumber());

/////

But this works.
mixIn(player, /*\* @lends {player} */ {
getJerseyNumber: function(){}
});

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.