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:
@ -71,6 +71,17 @@ editor.on("keyup", function () {
|
|||||||
var nodeEnv = prodOrDev === 'production' ? 'http://www.freecodecamp.com' : 'http://localhost:3001';
|
var nodeEnv = prodOrDev === 'production' ? 'http://www.freecodecamp.com' : 'http://localhost:3001';
|
||||||
function updatePreview() {
|
function updatePreview() {
|
||||||
editorValueForIFrame = editor.getValue();
|
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;
|
goodTests = 0;
|
||||||
var previewFrame = document.getElementById('preview');
|
var previewFrame = document.getElementById('preview');
|
||||||
var preview = previewFrame.contentDocument || previewFrame.contentWindow.document;
|
var preview = previewFrame.contentDocument || previewFrame.contentWindow.document;
|
||||||
|
@ -100,12 +100,25 @@ function bonfireExecute() {
|
|||||||
userTests = null;
|
userTests = null;
|
||||||
$('#codeOutput').empty();
|
$('#codeOutput').empty();
|
||||||
var userJavaScript = myCodeMirror.getValue();
|
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 = removeComments(userJavaScript);
|
||||||
userJavaScript = scrapeTests(userJavaScript);
|
userJavaScript = scrapeTests(userJavaScript);
|
||||||
// simple fix in case the user forgets to invoke their function
|
// simple fix in case the user forgets to invoke their function
|
||||||
|
|
||||||
submit(userJavaScript, function(cls, message) {
|
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);
|
codeOutput.setValue(message.error);
|
||||||
runTests('Error', null);
|
runTests('Error', null);
|
||||||
} else {
|
} else {
|
||||||
|
Reference in New Issue
Block a user