The FCC editor will now catch un-closed comments! This can be extended to catch quotes as well if needed. Fix #1839

This commit is contained in:
benmcmahon100
2015-08-17 15:43:36 +01:00
parent 4b2a53f974
commit 1bdb40bcaf
2 changed files with 25 additions and 1 deletions

View File

@ -71,6 +71,17 @@ editor.on("keyup", function () {
var nodeEnv = prodOrDev === 'production' ? 'http://www.freecodecamp.com' : 'http://localhost:3001';
function updatePreview() {
editorValueForIFrame = editor.getValue();
var failedCommentTest = false;
if(editorValueForIFrame.match(/\<\!\-\-/gi) && editorValueForIFrame.match(/\-\-\>/gi) == null){
failedCommentTest = true;
}
else if(editorValueForIFrame.match(/\<\!\-\-/gi) && editorValueForIFrame.match(/\<\!\-\-/gi).length > editorValueForIFrame.match(/\-\-\>/gi).length){
failedCommentTest = true;
}
if(failedCommentTest){
editor.setValue(editor.getValue()+ "-->");
editorValueForIFrame = editorValueForIFrame + "-->";
}
goodTests = 0;
var previewFrame = document.getElementById('preview');
var preview = previewFrame.contentDocument || previewFrame.contentWindow.document;

View File

@ -100,12 +100,25 @@ function bonfireExecute() {
userTests = null;
$('#codeOutput').empty();
var userJavaScript = myCodeMirror.getValue();
var failedCommentTest = false;
if(userJavaScript.match(/\/\*/gi) && userJavaScript.match(/\*\//gi) == null){
failedCommentTest = true;
}
else if(!failedCommentTest && userJavaScript.match(/\/\*/gi) && userJavaScript.match(/\/\*/gi).length > userJavaScript.match(/\*\//gi).length){
failedCommentTest = true;
}
userJavaScript = removeComments(userJavaScript);
userJavaScript = scrapeTests(userJavaScript);
// simple fix in case the user forgets to invoke their function
submit(userJavaScript, function(cls, message) {
if (cls) {
if(failedCommentTest){
myCodeMirror.setValue(myCodeMirror.getValue() + "*/");
console.log('Caught Unfinished Comment');
codeOutput.setValue("Unfinished mulit-line comment");
failedCommentTest = false;
}
else if (cls) {
codeOutput.setValue(message.error);
runTests('Error', null);
} else {