What does "value" refer to in the instructions ? "Record Collection" challenge

Tell us what’s happening:

Your code so far

// Setup
var collection = {
    "2548": {
      "album": "Slippery When Wet",
      "artist": "Bon Jovi",
      "tracks": [ 
        "Let It Rock", 
        "You Give Love a Bad Name" 
    "2468": {
      "album": "1999",
      "artist": "Prince",
      "tracks": [ 
        "Little Red Corvette" 
    "1245": {
      "artist": "Robert Palmer",
      "tracks": [ ]
    "5439": {
      "album": "ABBA Gold"
// Keep a copy of the collection for tests
var collectionCopy = JSON.parse(JSON.stringify(collection));

// Only change code below this line
function updateRecords(id, prop, value) {
  if (prop !== "tracks" && value!==""){
    collection[id][prop] = value;
  else if (prop === "tracks" && collection[id].hasOwnProperty("tracks")==false && value!==""){
    collection[id][prop]= [];
    collection[id][prop]= value;
  else if (prop==="tracks" && value!=="") {
  else if (value===""){
    delete collection[id][prop];
  return collection;

// Alter values below to test your code
updateRecords(5439, "artist", "ABBA");

Hello. Only 1 test doesnt complete with current code. im guessing its because of the push condition.

More importantly, can someone tell me, in the instructions, whenever " value is or isnt empty("") " is mentioned, does it refer to the “value” argument of the function or does it sometimes refer to the value of the property of the object selected by functions “prop” argument ?
The following line is confusing me:
Either im misunderstanding it, or it should refer to the property value inside the object…

let object = {key: value}

you have too many if statements.

  1. find the id
  2. find the key with that id
  3. set the value for that key

found the problem with one failed test:
should be