| Index: LayoutTests/webaudio/resources/audiobuffersource-testing.js | 
| diff --git a/LayoutTests/webaudio/resources/audiobuffersource-testing.js b/LayoutTests/webaudio/resources/audiobuffersource-testing.js | 
| index 06e122e7baf8e222c02baacf9ca6fe66556cf625..ed8fa80e198ea1d7b48ad44db27b2dcabc212273 100644 | 
| --- a/LayoutTests/webaudio/resources/audiobuffersource-testing.js | 
| +++ b/LayoutTests/webaudio/resources/audiobuffersource-testing.js | 
| @@ -29,7 +29,15 @@ function checkSingleTest(renderedBuffer, i) { | 
| description += " with playbackRate of " + test.playbackRate; | 
| } | 
|  | 
| -    for (var j = 0; j < test.renderFrames; ++j) { | 
| +    var framesToTest; | 
| + | 
| +    if (test.renderFrames) | 
| +        framesToTest = test.renderFrames; | 
| +    else if (test.durationFrames) | 
| +        framesToTest = test.durationFrames; | 
| + | 
| +    // Verify that the output matches | 
| +    for (var j = 0; j < framesToTest; ++j) { | 
| if (expected[j] != renderedData[offsetFrame + j]) { | 
| // Copy from Float32Array to regular JavaScript array for error message. | 
| var renderedArray = new Array(); | 
| @@ -43,6 +51,21 @@ function checkSingleTest(renderedBuffer, i) { | 
| } | 
| } | 
|  | 
| +    // Verify that we get all zeroes after the buffer (or duration) has passed. | 
| +    for (var j = framesToTest; j < testSpacingFrames; ++j) { | 
| +        if (renderedData[offsetFrame + j]) { | 
| +            // Copy from Float32Array to regular JavaScript array for error message. | 
| +            var renderedArray = new Array(); | 
| +            for (var j = framesToTest; j < testSpacingFrames; ++j) | 
| +                renderedArray[j - framesToTest] = renderedData[offsetFrame + j]; | 
| + | 
| +            var s = description + ": expected: all zeroes actual: " + renderedArray; | 
| +            testFailed(s); | 
| +            success = false; | 
| +            break; | 
| +        } | 
| +    } | 
| + | 
| if (success) | 
| testPassed(description); | 
|  | 
|  |