diff options
Diffstat (limited to 'js/src/tests/non262/regress/regress-459389.js')
-rw-r--r-- | js/src/tests/non262/regress/regress-459389.js | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/js/src/tests/non262/regress/regress-459389.js b/js/src/tests/non262/regress/regress-459389.js new file mode 100644 index 0000000000..e63e064a0c --- /dev/null +++ b/js/src/tests/non262/regress/regress-459389.js @@ -0,0 +1,119 @@ +/* -*- tab-width: 2; indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * 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/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 459389; +var summary = 'Do not crash with JIT'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +print('mmmm, food!'); + + +var SNI = {}; +SNI.MetaData={}; +SNI.MetaData.Parameter=function() +{ +var parameters={}; +this.addParameter=function(key,value) +{ +parameters[key]=[]; +parameters[key].push(value); +}; +this.getParameter=function(key,separator){ +if(!parameters[key]) +{ +return; +} +return parameters[key].join(separator); +}; +this.getKeys=function() +{ +return parameters; +}; +}; +SNI.MetaData.Manager=function(){ +var m=new SNI.MetaData.Parameter(); +this.getParameter=m.getParameter; +}; +var MetaDataManager=SNI.MetaData.Manager; +SNI.Ads={ }; +SNI.Ads.Url=function(){ +var p=new SNI.MetaData.Parameter(); +this.addParameter=p.addParameter; +this.getParameter=p.getParameter; +}; +function Ad() { +var url=new SNI.Ads.Url(); +this.addParameter=url.addParameter; +this.getParameter=url.getParameter; +} +function DartAd() { + return AdUrl.prototype=new Ad(); +} +function AdUrl() { } +function AdRestriction() { +var p=new SNI.MetaData.Parameter(); +this.addParameter=p.addParameter; +this.getParameter=p.getParameter; +this.getKeys=p.getKeys; +} +function AdRestrictionManager(){ +this.restriction=[]; +this.isActive=isActive; +this.isMatch=isMatch; +this.startMatch=startMatch; +function isActive(ad,mdm){ +var value=false; +for(var i=0;i<this.restriction.length;i++) +{ +adRestriction=this.restriction[i]; +value=this.startMatch(ad,mdm,adRestriction); +} +} +function startMatch(ad,mdm,adRestriction){ +for(var key in adRestriction.getKeys()){ +var restrictions=adRestriction.getParameter(key,','); +var value=mdm.getParameter(key,''); +match=this.isMatch(value,restrictions); +if(!match){ +value=ad.getParameter(key,'') +match=this.isMatch(value,restrictions); +} +} +} +function isMatch(value,restrictions){ +var match=false; +if(value) +{ +splitValue=value.split(''); +for(var x=0;x<splitValue.length;x++){ +for(var a;a<restrictions.length;a++){ } +} +} +return match; +} +} +var adRestrictionManager = new AdRestrictionManager(); +var restrictionLeader6 = new AdRestriction(); +restrictionLeader6.addParameter("", ""); +adRestrictionManager.restriction.push(restrictionLeader6); +var restrictionLeader7 = new AdRestriction(); +restrictionLeader7.addParameter("", ""); +adRestrictionManager.restriction.push(restrictionLeader7); +function FoodAd(adtype) +{ + ad=new DartAd() + ad.addParameter("",adtype) + adRestrictionManager.isActive(ad, mdManager) +} +var mdManager = new MetaDataManager() ; + FoodAd('P') + + +reportCompare(expect, actual, summary); |