/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 * License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */
export function initialExceptionsState mutableExceptionsMap.set(sourceActorId, exceptions); return { // Store exception objects created by actions/exceptions.js's addExceptionFromResources()
lineNumber == exception.lineNumber &&
mutableExceptionsMap: new Map ) ) { // Avoid adding duplicated exceptions for the same line/column
};
}
function update(state // which coalesce multiple arrays and always return new array instance, switch (action.type) { case exceptions return };
}
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0 return removeExceptionsFromThread // All exceptions relates to the same source actor, and so, the same thread actor.
}
} return }
} }
let exceptions = mutableExceptionsMap.get(sourceActorId); if (!exceptions) {
exceptions = [];
mutableExceptionsMap.set(sourceActorId, exceptions);
} elseif (
exceptions.some(({ lineNumber, columnNumber }) => { return (
lineNumber == exception.lineNumber &&
columnNumber == exception.columnNumber
);
})
) { // Avoid adding duplicated exceptions for the same line/column return state;
}
// As these arrays are only used by getSelectedSourceExceptions selector method, // which coalesce multiple arrays and always return new array instance, // it isn't important to clone these array in case of modification.
exceptions.push(exception);
return {
...state,
};
}
function removeExceptionsFromThread(state, action) { const { mutableExceptionsMap } = state; const { threadActorID } = action; const sizeBefore = mutableExceptionsMap.size; for (const [sourceActorId, exceptions] of mutableExceptionsMap) { // All exceptions relates to the same source actor, and so, the same thread actor. if (exceptions[0].threadActorId == threadActorID) {
mutableExceptionsMap.delete(sourceActorId);
}
} if (sizeBefore != mutableExceptionsMap.size) { return {
...state,
};
} return state;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.