<commit_before>var personFactory = function (firstName, lastName, age) {
	return mobx.observable({
		firstName: firstName,
		lastName: lastName,
		age: age,
		fullName: function () {
			console.count('fullName');
			return this.firstName + ' ' + this.lastName;
			}
	});
};

var person = personFactory('Matt', 'Ruby', 0);

mobx.autorun(function () {
	console.log(person.fullName + ' ' + person.age);
});

mobx.extendObservable(person, { nickname: 'Ruby'});

mobx.autorun(function () {
	console.log('Nickname: ' + person.nickname + ' ' + person.age);
});

person.firstName = 'Mike';
person.firstName = 'Lissy';
person.nickname = 'Red';<commit_msg>Tightened up the observable example<commit_after>var person = mobx.observable({
	firstName: 'Matt',
	lastName: 'Ruby',
	age: 34,
	fullName: function () {
		console.count('fullName');
		return this.firstName + ' ' + this.lastName;
	}
});

mobx.autorun(function () {
	console.log(person.fullName + ' ' + person.age);
});

person.firstName = 'Mike';
person.firstName = 'Lissy';
{'fraction_non_alphanumeric': 0.1784313725490196, 'fraction_numerical': 0.0029411764705882353, 'mean_word_length': 4.6722222222222225, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7233074', 'n_tokens_mistral': 389, 'n_tokens_neox': 363, 'n_words': 66}